salome-kernel-6.5.0/000077500000000000000000000000001177004724000142625ustar00rootroot00000000000000salome-kernel-6.5.0/AUTHORS000077500000000000000000000000001177004724000153230ustar00rootroot00000000000000salome-kernel-6.5.0/COPYING000077500000000000000000000634761177004724000153400ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! salome-kernel-6.5.0/ChangeLog000077500000000000000000000000001177004724000160250ustar00rootroot00000000000000salome-kernel-6.5.0/DEPRECATED/000077500000000000000000000000001177004724000156625ustar00rootroot00000000000000salome-kernel-6.5.0/DEPRECATED/Makefile.in000077500000000000000000000100461177004724000177330ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Patrick GOLDBRONN (CEA) # Date : 28/06/2001 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/DEPRECATED/Makefile.in,v 1.5.32.2.12.1 2012-04-12 14:04:56 vsr Exp $ # source path # top_srcdir=@top_srcdir@ top_builddir=. srcdir=@srcdir@ VPATH=.:@srcdir@:@top_srcdir@/bin:./bin/salome:@top_srcdir@/resources:./bin:@top_srcdir@/idl @COMMENCE@ SUBDIRS = idl src doc salome_adm RESOURCES_FILES = \ CatalogDataType.xml \ KERNELCatalog.xml \ CatalogResources.xml \ close.png \ config \ channel.cfg \ SALOMEDS_Resources BIN_SCRIPT= \ runIDLparser \ VERSION \ orbmodule.py \ runSalome.py \ killSalome.py \ killSalomeWithPort.py \ runSalome \ runSalome.csh \ runNS.sh \ createAppli.sh \ launchConfigureParser.py \ salome.launch \ envSalome.py \ salomeConsole.py \ showNS.py \ addToKillList.py # copy header files in common directory include_list=\ include/salome/SALOMEconfig.h inc: idl $(include_list) include/salome/SALOMEconfig.h: salome_adm/unix/SALOMEconfig.ref -$(RM) $@ $(LN_S) ../../$< $@ # test if SALOMEconfig.h has changed (contents) salome_adm/unix/SALOMEconfig.ref: salome_adm/unix/SALOMEconfig.h @if ! [ -a $@ ]; then \ cp -p $< $@; \ fi; \ if ! cmp $< $@; then \ cp -p $< $@; \ fi; \ depend: depend_idl depend_idl: (cd idl ; $(MAKE) $@) || exit 1 # doc is already build : if you want to had documents, go manually to doc and run 'make doc' DOCFILES=\ README.FIRST.html rstdoc: $(DOCFILES) (cd doc && $(MAKE) $@) || exit 1 # Install make_commence make_conclude ... for other modules install-make: ($(INSTALL) -d $(incmakedir) || exit 1); (sed 's/^prefix=/#prefix=/' $(top_builddir)/salome_adm/unix/make_commence > $(incmakedir)/make_commence || exit 1); (sed 's/^prefix=/#prefix=/' $(top_builddir)/salome_adm/unix/make_conclude > $(incmakedir)/make_conclude || exit 1); install-end: # finish libtool install # @$(LT) --mode=finish $(libdir) install-include: $(include_list) $(INSTALL) -d $(includedir) @for f in X $(include_list); do \ if test $$f != X; then \ (cp -p $$f $(includedir) || exit 1); \ fi; \ done # install script in $(bindir) : install-appliskel: $(INSTALL) -d $(bindir) if test -d $(top_builddir)/bin/salome/appliskel; then \ cp -rp $(top_builddir)/bin/salome/appliskel $(bindir); \ fi; install-bin: $(BIN_SCRIPT) $(INSTALL) -d $(bindir) $(INSTALL_PROGRAM) $^ $(bindir) # install Plugin file install-plugin: $(top_builddir)/share/salome/resources/Plugin ($(INSTALL_DATA) $^ $(datadir)/resources/. || exit 1); \ uninstall: uninstall-idl uninstall-idl: $(RM) $(idldir)/*.idl distclean: distclean-other distclean-other: -$(RM) salome_adm/unix/*~ salome_adm/unix/*% salome_adm/unix/*.bak salome_adm/unix/*.new salome_adm/unix/*.old -$(RM) salome_adm/unix/make_* -$(RM) salome_adm/unix/depend salome_adm/unix/SALOMEconfig.h -$(RM) config.cache config.log config.status @MODULE@ $(top_builddir)/share/salome/resources/Plugin: resources/Plugin cp -f $< $@ ; \ resources: $(top_builddir)/share/salome/resources/Plugin install: install-bin install-appliskel install-include install-make install-plugin install-end salome-kernel-6.5.0/DEPRECATED/configure.in.base000077500000000000000000000257741177004724000211260ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # 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 # AS_SHELL_SANITIZES AC_INIT(src) AC_CONFIG_AUX_DIR(salome_adm/unix/config_files) AC_CANONICAL_HOST PACKAGE=salome AC_SUBST(PACKAGE) VERSION=3.2.1 AC_SUBST(VERSION) XVERSION=0x030201 AC_SUBST(XVERSION) # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) MODULE_NAME=kernel AC_SUBST(MODULE_NAME) 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 dnl Modification B. Secher portage sur osf AC_CHECK_PROG(SHELL,sh) AC_SUBST(SHELL) 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="${ROOT_SRCDIR}/salome_adm/unix/config_files/install-sh -c" ;; esac echo echo --------------------------------------------- echo testing C/C++ echo --------------------------------------------- echo cc_ok=no dnl inutil car libtool dnl AC_PROG_CC AC_PROG_CXX AC_CXX_WARNINGS AC_CXX_TEMPLATE_OPTIONS AC_DEPEND_FLAG # AC_CC_WARNINGS([ansi]) cc_ok=yes dnl Library libdl : AC_CHECK_LIB(dl,dlopen) dnl Library librt : for alpha/osf AC_CHECK_LIB(rt,nanosleep) dnl add library libm : AC_CHECK_LIB(m,ceil) AC_CXX_USE_STD_IOSTREAM AC_CXX_HAVE_SSTREAM dnl dnl --------------------------------------------- dnl testing linker dnl --------------------------------------------- dnl AC_LINKER_OPTIONS echo echo --------------------------------------------- echo testing threads echo --------------------------------------------- echo ENABLE_PTHREADS dnl dnl --------------------------------------------- dnl testing WITHIHM dnl --------------------------------------------- dnl CHECK_WITHIHM echo echo --------------------------------------------- echo BOOST Library echo --------------------------------------------- echo CHECK_BOOST dnl dnl --------------------------------------------- dnl testing MPI dnl --------------------------------------------- dnl CHECK_MPI dnl dnl --------------------------------------------- dnl testing sockets dnl --------------------------------------------- dnl CHECK_SOCKETS dnl dnl --------------------------------------------- dnl testing OpenPBS dnl --------------------------------------------- dnl echo echo --------------------------------------------- echo testing OpenPBS echo --------------------------------------------- echo openpbs_ok=no CHECK_OPENPBS dnl openpbs_ok is set to yes by CHECK_OPENPBS dnl dnl --------------------------------------------- dnl testing LSF dnl --------------------------------------------- dnl echo echo --------------------------------------------- echo testing LSF echo --------------------------------------------- echo lsf_ok=no CHECK_LSF dnl lsf_ok is set to yes by CHECK_LSF dnl dnl --------------------------------------------- dnl testing Batch dnl --------------------------------------------- dnl WITH_BATCH=no test x$openpbs_ok = xyes || test x$lsf_ok = xyes && WITH_BATCH=yes AC_SUBST(WITH_BATCH) 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 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 QT echo --------------------------------------------- echo CHECK_QT echo echo ---------------------------------------------- echo testing CPPUNIT only required for unit testing echo ---------------------------------------------- echo CHECK_CPPUNIT if test "X$WITHIHM" = "Xyes"; then echo echo --------------------------------------------- echo Testing sip echo --------------------------------------------- echo CHECK_SIP echo echo --------------------------------------------- echo testing openGL echo --------------------------------------------- echo CHECK_OPENGL echo echo --------------------------------------------- echo testing VTK echo --------------------------------------------- echo CHECK_VTK echo echo --------------------------------------------- echo Testing pyqt echo --------------------------------------------- echo CHECK_PYQT echo echo --------------------------------------------- echo Testing qwt echo --------------------------------------------- echo CHECK_QWT fi echo echo --------------------------------------------- echo testing HDF5 echo --------------------------------------------- echo CHECK_HDF5 echo echo --------------------------------------------- echo Testing OpenCascade echo --------------------------------------------- echo CHECK_CAS echo echo --------------------------------------------- echo Testing html generators echo --------------------------------------------- echo CHECK_HTML_GENERATORS echo echo --------------------------------------------- echo Summary echo --------------------------------------------- echo echo Configure variables="cc_ok boost_ok lex_yacc_ok mpi_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok sip_ok pyqt_ok qwt_ok doxygen_ok graphviz_ok" for var in $variables do eval toto=\$$var if test x$toto != "x"; then printf " %10s : " `echo \$var | sed -e "s,_ok,,"` eval echo \$$var fi done echo "---Optional:" variables="cppunit_ok openpbs_ok lsf_ok" for var in $variables do eval toto=\$$var if test x$toto != "x"; then printf " %10s : " `echo \$var | sed -e "s,_ok,,"` eval echo \$$var fi 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${LIB_LOCATION_SUFFIX}/salome share/salome/resources/${MODULE_NAME} idl # 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 mkdir -p bin/salome cd bin/salome for i in `find $ROOT_SRCDIR/bin` do local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR/bin,.,"` case "$local_bin" in *.in | *~) ;; . | */CVS | */CVS/* | ./salome) ;; ./appliskel |./appliskel/env.d) $INSTALL -d $local_bin ; echo $local_bin ;; *) $INSTALL $i $local_bin; 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/*; \ chmod +x ./bin/salome/* \ ]) ## do not delete this line salome-kernel-6.5.0/DEPRECATED/make_config.in000077500000000000000000000062001177004724000204550ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # make_config.in: template for make_config script # make_config is used by check_cas.m4 to generate # config.h file in case it cannot be found in OCC # and SALOME include paths #================================================= # dnl Process this file with autoconf to produce a configure script. AC_INIT(salome_adm/unix) AC_CONFIG_SRCDIR(salome_adm/unix/config.h.in) AC_CONFIG_AUX_DIR(salome_adm/unix/config_files) AC_CANONICAL_HOST AC_CONFIG_HEADERS(./salome_adm/unix/config.h) AC_ISC_POSIX AC_C_BIGENDIAN dnl Checks for programs. AC_PROG_CXX AC_PROG_CC_C_O AC_PROG_AWK AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_YACC AC_PROG_MAKE_SET dnl Replace `main' with a function in -le: AC_CHECK_LIB(e, main) dnl Replace `main' with a function in -links: AC_CHECK_LIB(inks, main) dnl Checks for X window system directories. AC_PATH_X if test "x$ac_x_includes" = "x"; then X_INCLUDE="" else X_INCLUDE="-I$ac_x_includes" fi if test "x$ac_x_libraries" = "x"; then X_LIBS="-lXt -lX11" else X_LIBS="-L$ac_x_libraries -lXt -lX11" fi dnl Checks for header files. AC_HEADER_STDC AC_LANG([C]) AC_MSG_CHECKING([ for C header files ]) AC_CHECK_HEADERS(dlfcn.h dl.h ieeefp.h time.h sys/time.h pwd.h) AC_CHECK_HEADERS(sys/statvfs.h sys/vfs.h sys/param.h osfcn.h netdb.h) AC_CHECK_HEADERS(sys/ioctl.h net/if.h sys/systeminfo.h sys/utsname.h) AC_CHECK_HEADERS(sysent.h unistd.h sys/unistd.h sys/socket.h) AC_CHECK_HEADERS(ndir.h sys/ndir.h sys/dir.h signal.h sys/signal.h) AC_CHECK_HEADERS(sigfpe.h floatingpoint.h sys/machsig.h sys/siginfo.h) AC_CHECK_HEADERS(malloc.h strings.h sys/stat.h sys/sem.h sys/ipc.h) AC_CHECK_HEADERS(sys/times.h dirent.h getopt.h sys/vnode.h) AC_LANG([C++]) AC_MSG_CHECKING([ for C++ header files ]) AC_CHECK_HEADERS(istream ostream istream fstream ios iomanip iostream ) AC_CHECK_HEADERS(stream.h strstream.h istream.h ostream.h fstream.h stdlib.h ios.h iostream.h) AC_CHECK_HEADERS(iomanip.h limits.h values.h float.h) AC_CHECK_HEADERS(siginfo.h bits/sigset.h bstring.h sys/types.h sys/select.h) AC_CHECK_HEADERS(X11/extensions/transovl.h X11/extensions/readdisplay.h) AC_CHECK_HEADERS(X11/extensions/multibuf.h) AC_CHECK_HEADERS(sys/filio.h sys/mman.h libc.h) dnl Checks for library functions. AC_TYPE_SIGNAL AC_OUTPUT() salome-kernel-6.5.0/INSTALL000077500000000000000000000000641177004724000153160ustar00rootroot00000000000000See ./doc/INSTALL.txt for installation instructions.salome-kernel-6.5.0/KERNEL_version.h.in000077500000000000000000000024651177004724000175770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : KERNEL_version.h // Author : Vadim SANDLER // Module : SALOME // #if !defined(__KERNEL_VERSION_H__) #define __KERNEL_VERSION_H__ /* KERNEL_VERSION is (major << 16) + (minor << 8) + patch. */ #define KERNEL_VERSION_STR "@VERSION@" #define KERNEL_VERSION @XVERSION@ #define KERNEL_DEVELOPMENT @VERSION_DEV@ #endif // __KERNEL_VERSION_H__ salome-kernel-6.5.0/LICENCE000077500000000000000000000634761177004724000152720ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! salome-kernel-6.5.0/Makefile.am000077500000000000000000000044611177004724000163260ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Guillaume BOULANT (CSSI) # Date : 09/11/2005 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/Makefile.am,v 1.6.2.1.14.6.2.1 2012-04-12 14:04:56 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # if CORBA_GEN IDLDIR = idl endif ACLOCAL_AMFLAGS = -I salome_adm/unix/config_files if WITHONLYLAUNCHER SUBDIRS = src resources else SUBDIRS = salome_adm $(IDLDIR) src bin doc resources endif DIST_SUBDIRS= salome_adm idl src doc bin resources DISTCLEANFILES = a.out local-install.sh hack_libtool aclocal.m4 configure salome_adm/unix/config_files/config.guess salome_adm/unix/config_files/config.sub salome_adm/unix/config_files/depcomp salome_adm/unix/config_files/install-sh salome_adm/unix/config_files/libtool.m4 salome_adm/unix/config_files/ltmain.sh salome_adm/unix/config_files/ltoptions.m4 salome_adm/unix/config_files/ltsugar.m4 salome_adm/unix/config_files/ltversion.m4 salome_adm/unix/config_files/lt~obsolete.m4 salome_adm/unix/config_files/missing salome_adm/unix/config_files/py-compile salomeinclude_DATA = KERNEL_version.h EXTRA_DIST = \ build_cmake \ build_cmake.bat \ build_configure \ clean_configure \ LICENCE \ README.FIRST.txt \ DEPRECATED dist-hook: rm -rf `find $(distdir) -name CVS` usr_docs: (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs) docs:usr_docs dev_docs: (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs) salome-kernel-6.5.0/Makefile.in000077500000000000000000001060571177004724000163430ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/KERNEL_version.h.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure \ $(top_srcdir)/doc/salome/gui/static/header.html.in \ $(top_srcdir)/doc/salome/tui/static/header.html.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am AUTHORS \ COPYING ChangeLog INSTALL NEWS subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = KERNEL_version.h \ doc/salome/tui/static/header.html \ doc/salome/gui/static/header.html CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomeincludedir)" DATA = $(salomeinclude_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # -* Makefile *- # Author : Guillaume BOULANT (CSSI) # Date : 09/11/2005 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/Makefile.am,v 1.6.2.1.14.6.2.1 2012-04-12 14:04:56 vsr Exp $ # # @CORBA_GEN_TRUE@IDLDIR = idl ACLOCAL_AMFLAGS = -I salome_adm/unix/config_files @WITHONLYLAUNCHER_FALSE@SUBDIRS = salome_adm $(IDLDIR) src bin doc resources @WITHONLYLAUNCHER_TRUE@SUBDIRS = src resources DIST_SUBDIRS = salome_adm idl src doc bin resources DISTCLEANFILES = a.out local-install.sh hack_libtool aclocal.m4 configure salome_adm/unix/config_files/config.guess salome_adm/unix/config_files/config.sub salome_adm/unix/config_files/depcomp salome_adm/unix/config_files/install-sh salome_adm/unix/config_files/libtool.m4 salome_adm/unix/config_files/ltmain.sh salome_adm/unix/config_files/ltoptions.m4 salome_adm/unix/config_files/ltsugar.m4 salome_adm/unix/config_files/ltversion.m4 salome_adm/unix/config_files/lt~obsolete.m4 salome_adm/unix/config_files/missing salome_adm/unix/config_files/py-compile salomeinclude_DATA = KERNEL_version.h EXTRA_DIST = \ build_cmake \ build_cmake.bat \ build_configure \ clean_configure \ LICENCE \ README.FIRST.txt \ DEPRECATED all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): KERNEL_version.h: $(top_builddir)/config.status $(srcdir)/KERNEL_version.h.in cd $(top_builddir) && $(SHELL) ./config.status $@ doc/salome/tui/static/header.html: $(top_builddir)/config.status $(top_srcdir)/doc/salome/tui/static/header.html.in cd $(top_builddir) && $(SHELL) ./config.status $@ doc/salome/gui/static/header.html: $(top_builddir)/config.status $(top_srcdir)/doc/salome/gui/static/header.html.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-salomeincludeDATA: $(salomeinclude_DATA) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_DATA)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeDATA: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_DATA)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-salomeincludeDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-salomeincludeDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-salomeincludeDATA install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-salomeincludeDATA dist-hook: rm -rf `find $(distdir) -name CVS` usr_docs: (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs) docs:usr_docs dev_docs: (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/NEWS000077500000000000000000000000001177004724000147520ustar00rootroot00000000000000salome-kernel-6.5.0/README000077500000000000000000000000001177004724000151330ustar00rootroot00000000000000salome-kernel-6.5.0/README.FIRST.txt000077500000000000000000000045551177004724000166620ustar00rootroot00000000000000Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com ================================================================= General information, for developpers and users ================================================================= *html version of this document is produced with docutils*:: rest2html < doc.txt > doc.html This document corresponds to SALOME2 3.1. (alpha version) +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ How to install SALOME --------------------- See INSTALL_ for general information on required configuration and prerequisites, compilation procedure, setting environment principles. .. _INSTALL: ./doc/INSTALL.html How to run SALOME on one or more computers, SALOME Application concept ---------------------------------------------------------------------- See SALOME_Application_ to define your own configuration of SALOME and run it on one or several computers. This is the recommended way of configuration. .. _SALOME_Application: ./doc/SALOME_Application.html Source code structuration and Unit Tests ---------------------------------------- See UnitTests_ for general information on code directories structure, unit tests associated to the different kind of classes, and how to run the unit tests. .. _UnitTests: ./doc/UnitTests.html End User documentation ---------------------- link to end user documentation. Developper documentation ------------------------ How to generate the developper documentation. salome-kernel-6.5.0/aclocal.m4000077500000000000000000011773441177004724000161460ustar00rootroot00000000000000# generated automatically by aclocal 1.11 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, [m4_warning([this file was generated for autoconf 2.64. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH 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 # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. 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' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # 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 _LT_EOF ;; esac _LT_PROG_LTMAIN # 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? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_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 <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then 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 && { 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' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # 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. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_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' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "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 configure 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' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "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 echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "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-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; 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_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) 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 ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; 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 _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) 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 AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != 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 "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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 _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" 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" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) 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. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH 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" # 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* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") 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}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 ;; esac fi rm -rf conftest* ;; esac sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH 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" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[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]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&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 _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname 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(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_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]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_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 # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # 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]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && 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 $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp 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'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # 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. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # 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 "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=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 _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # 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. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=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*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='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 $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) 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. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) 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 ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=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 _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) 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 ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) 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 ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) ac_compile='$CC -c $GCJFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD' ac_link='$CC -o conftest$ac_exeext --main=conftest $GCJFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD' # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [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. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [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. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [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. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3012 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6]) m4_define([LT_PACKAGE_REVISION], [1.3012]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6' macro_revision='1.3012' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------------- # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 2.0 are not dnl supported. (2.0 was released on October 16, 2000). m4_define_default([_AM_PYTHON_INTERPRETER_LIST], [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl python2.1 python2.0]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR(too old)]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; esac ]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; esac ]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([salome_adm/unix/config_files/ac_check_sizeof_fortran.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_depend_flag.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_have_sstream.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_namespaces.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_option.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_template_options.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4]) m4_include([salome_adm/unix/config_files/ac_cxx_warnings.m4]) m4_include([salome_adm/unix/config_files/ac_linker_options.m4]) m4_include([salome_adm/unix/config_files/acx_pthread.m4]) m4_include([salome_adm/unix/config_files/check_boost.m4]) m4_include([salome_adm/unix/config_files/check_calcium.m4]) m4_include([salome_adm/unix/config_files/check_corba.m4]) m4_include([salome_adm/unix/config_files/check_cppunit.m4]) m4_include([salome_adm/unix/config_files/check_f77.m4]) m4_include([salome_adm/unix/config_files/check_hdf5.m4]) m4_include([salome_adm/unix/config_files/check_htmlgen.m4]) m4_include([salome_adm/unix/config_files/check_lam.m4]) m4_include([salome_adm/unix/config_files/check_libbatch.m4]) m4_include([salome_adm/unix/config_files/check_libxml.m4]) m4_include([salome_adm/unix/config_files/check_mpi.m4]) m4_include([salome_adm/unix/config_files/check_mpich.m4]) m4_include([salome_adm/unix/config_files/check_omniorb.m4]) m4_include([salome_adm/unix/config_files/check_openmpi.m4]) m4_include([salome_adm/unix/config_files/check_paco++.m4]) m4_include([salome_adm/unix/config_files/check_sockets.m4]) m4_include([salome_adm/unix/config_files/check_sphinx.m4]) m4_include([salome_adm/unix/config_files/check_swig.m4]) m4_include([salome_adm/unix/config_files/enable_pthreads.m4]) m4_include([salome_adm/unix/config_files/hack_libtool.m4]) m4_include([salome_adm/unix/config_files/local_install.m4]) m4_include([salome_adm/unix/config_files/production.m4]) m4_include([salome_adm/unix/config_files/python.m4]) salome-kernel-6.5.0/bin/000077500000000000000000000000001177004724000150325ustar00rootroot00000000000000salome-kernel-6.5.0/bin/Makefile.am000077500000000000000000000045421177004724000170760ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/bin/Makefile.am,v 1.7.2.3.14.3.12.1 2012-04-12 14:04:56 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am SUBDIRS = appliskel # # =============================================================== # Files to be installed # =============================================================== # # These files are data, module or lib files dist_salomescript_DATA = \ config_appli.xml \ salome.launch nodist_salomescript_DATA = \ VERSION # These files are executable scripts dist_salomescript_SCRIPTS = \ appli_clean.sh \ appli_install.sh \ createAppli.sh \ runIDLparser \ runNS.sh \ runSalome \ runSalome.csh \ runSalome.ksh \ runSalome.bat \ waitNS.sh # These files are python files dist_salomescript_PYTHON = \ addToKillList.py \ appli_gen.py \ envSalome.py \ killSalome.py \ killSalomeWithPort.py \ launchConfigureParser.py \ launchSalome.py \ nameserver.py \ NSparam.py \ orbmodule.py \ runNS.py \ runSalome.py \ salomeConsole.py \ salome_session.py \ salome_utils.py \ server.py \ setenv.py \ showNS.py \ shutdownSalome.py \ virtual_salome.py \ waitContainers.py \ waitNS.py install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done salome-kernel-6.5.0/bin/Makefile.in000077500000000000000000001050051177004724000171030ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_DATA) $(dist_salomescript_PYTHON) \ $(dist_salomescript_SCRIPTS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/VERSION.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = bin ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = VERSION CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salomescriptdir)" SCRIPTS = $(dist_salomescript_SCRIPTS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile DATA = $(dist_salomescript_DATA) $(nodist_salomescript_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # -* Makefile *- # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/bin/Makefile.am,v 1.7.2.3.14.3.12.1 2012-04-12 14:04:56 vsr Exp $ # SUBDIRS = appliskel # # =============================================================== # Files to be installed # =============================================================== # # These files are data, module or lib files dist_salomescript_DATA = \ config_appli.xml \ salome.launch nodist_salomescript_DATA = \ VERSION # These files are executable scripts dist_salomescript_SCRIPTS = \ appli_clean.sh \ appli_install.sh \ createAppli.sh \ runIDLparser \ runNS.sh \ runSalome \ runSalome.csh \ runSalome.ksh \ runSalome.bat \ waitNS.sh # These files are python files dist_salomescript_PYTHON = \ addToKillList.py \ appli_gen.py \ envSalome.py \ killSalome.py \ killSalomeWithPort.py \ launchConfigureParser.py \ launchSalome.py \ nameserver.py \ NSparam.py \ orbmodule.py \ runNS.py \ runSalome.py \ salomeConsole.py \ salome_session.py \ salome_utils.py \ server.py \ setenv.py \ showNS.py \ shutdownSalome.py \ virtual_salome.py \ waitContainers.py \ waitNS.py all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bin/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): VERSION: $(top_builddir)/config.status $(srcdir)/VERSION.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(salomescriptdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(salomescriptdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_salomescriptSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-dist_salomescriptDATA: $(dist_salomescript_DATA) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_DATA)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done uninstall-dist_salomescriptDATA: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_DATA)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files install-nodist_salomescriptDATA: $(nodist_salomescript_DATA) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(nodist_salomescript_DATA)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done uninstall-nodist_salomescriptDATA: @$(NORMAL_UNINSTALL) @list='$(nodist_salomescript_DATA)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dist_salomescriptDATA \ install-dist_salomescriptPYTHON \ install-dist_salomescriptSCRIPTS \ install-nodist_salomescriptDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_salomescriptDATA \ uninstall-dist_salomescriptPYTHON \ uninstall-dist_salomescriptSCRIPTS \ uninstall-nodist_salomescriptDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-data-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-hook \ install-dist_salomescriptDATA install-dist_salomescriptPYTHON \ install-dist_salomescriptSCRIPTS install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man \ install-nodist_salomescriptDATA install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-dist_salomescriptDATA \ uninstall-dist_salomescriptPYTHON \ uninstall-dist_salomescriptSCRIPTS \ uninstall-nodist_salomescriptDATA install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/bin/NSparam.py000077500000000000000000000044601177004724000167540ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys,os def getNSparams(info=""): """ check environment for omniORB configuration file. parse the file to find the line defining naming service host and port, set environment variables NSPORT and NSHOST, get host and port, if info==host print host elif info==port print host else print 2 strings on stdout on one line: host port """ from salome_utils import getORBcfgInfo my_version, my_host, my_port = getORBcfgInfo() if info=='host': # keep print, stdout used in shell print my_host os.environ['NSHOST']=my_host return my_host pass elif info=='port': # keep print, stdout used in shell print my_port os.environ['NSPORT']=my_port return my_port pass else: # keep print, stdout used in shell print my_host, my_port return my_host, my_port pass # ------------------------------------------------------------------------ if __name__ == "__main__": if len(sys.argv) >1: if sys.argv[1]=='host': getNSparams('host') pass elif sys.argv[1]=='port': getNSparams('port') pass else: getNSparams() pass pass else: getNSparams() pass pass salome-kernel-6.5.0/bin/VERSION.in000077500000000000000000000000721177004724000165110ustar00rootroot00000000000000[SALOME KERNEL] : @VERSION@ [DEVELOPMENT] : @VERSION_DEV@ salome-kernel-6.5.0/bin/addToKillList.py000077500000000000000000000105311177004724000201120ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os, sys, pickle, string, signal from launchConfigureParser import verbose ########## adds to the kill list of SALOME one more process ########## def findFileDict(): """ Detect current SALOME session's port number. Returns port number. """ from salome_utils import getPortNumber port = getPortNumber() if verbose(): print "myport = ", port return port def addToKillList(command_pid, command, port=None): """ Add the process to the SALOME processes dictionary file. Parameters: - command_pid : command PID - command : command (string or list of strings) - [port] : SALOME port number; if this parameter is None (default), it is detected automatically """ # retrieve current processes dictionary from killSalomeWithPort import getPiDict if port is None: port=findFileDict() filedict=getPiDict(port) try: fpid=open(filedict, 'r') process_ids=pickle.load(fpid) fpid.close() except: process_ids=[] pass # check if PID is already in dictionary already_in=False for process_id in process_ids: for pid, cmd in process_id.items(): if int(pid) == int(command_pid): already_in=True break pass if already_in: break pass # add process to the dictionary if not already_in: import types if type(command) == types.ListType: command=" ".join([str(c) for c in command]) command=command.split()[0] try: if verbose(): print "addToKillList: %s : %s" % ( str(command_pid), command ) process_ids.append({int(command_pid): [command]}) dir = os.path.dirname(filedict) if not os.path.exists(dir): os.makedirs(dir, 0777) fpid = open(filedict,'w') pickle.dump(process_ids, fpid) fpid.close() except: if verbose(): print "addToKillList: can not add command %s : %s to the kill list" % ( str(command_pid), command ) pass pass pass def killList(port=None): """ Kill all the processes listed in the SALOME processes dictionary file. - [port] : SALOME port number; if this parameter is None (default), it is detected automatically """ # retrieve processes dictionary from killSalomeWithPort import getPiDict if port is None: port=findFileDict() # new-style dot-prefixed pidict file filedict=getPiDict(port, hidden=True) # provide compatibility with old-style pidict file (not dot-prefixed) if not os.path.exists(filedict): filedict = getPiDict(port, hidden=False) try: fpid=open(filedict, 'r') process_ids=pickle.load(fpid) fpid.close() except: process_ids=[] pass # kill processes for process_id in process_ids: #print process_id for pid, cmd in process_id.items(): print "stop process %s : %s"% (pid, cmd[0]) try: os.kill(int(pid),signal.SIGKILL) except: print " ------------------ process %s : %s inexistant"% (pid, cmd[0]) pass pass pass # remove processes dictionary file os.remove(filedict) pass if __name__ == "__main__": if verbose(): print sys.argv addToKillList(sys.argv[1], sys.argv[2]) pass salome-kernel-6.5.0/bin/appli_clean.sh000077500000000000000000000031221177004724000176360ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #clean appli DELCOM="rm -rf bin lib share doc idl env.d envd USERS getAppliPath.py searchFreePort.sh runAppli runConsole runSession runRemote.sh runTests SalomeApp.xml runSalomeScript update_catalogs.py kill_remote_containers.py *.pyc *~ .bashrc" DOIT="false" if [ $# -gt 0 ] then if [ "x$1" == "x-f" ] then DOIT="true" fi fi if [ $DOIT == "false" ] then echo "Do you want to delete a SALOME application in this directory ? " `pwd` echo "command to execute: " $DELCOM echo "enter yes or no" read ANSWER echo "ANSWER="$ANSWER if [ "x$ANSWER" == "xyes" ] then DOIT="true" fi fi if [ $DOIT == "true" ] then $DELCOM fi salome-kernel-6.5.0/bin/appli_gen.py000077500000000000000000000243271177004724000173550ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file appli_gen.py # Create a %SALOME application (virtual Salome installation) # usage="""usage: %prog [options] Typical use is: python appli_gen.py Typical use with options is: python appli_gen.py --verbose --prefix= --config= """ import os, glob, string, sys, re import shutil import xml.sax import optparse import virtual_salome # --- names of tags in XML configuration file appli_tag = "application" prereq_tag = "prerequisites" modules_tag = "modules" module_tag = "module" samples_tag = "samples" resources_tag = "resources" # --- names of attributes in XML configuration file nam_att = "name" path_att = "path" gui_att = "gui" # ----------------------------------------------------------------------------- # --- xml reader for SALOME application configuration file class xml_parser: def __init__(self, fileName ): print "Configure parser: processing %s ..." % fileName self.space = [] self.config = {} self.config["modules"] = [] self.config["guimodules"] = [] parser = xml.sax.make_parser() parser.setContentHandler(self) parser.parse(fileName) pass def boolValue( self, str ): if str in ("yes", "y", "1"): return 1 elif str in ("no", "n", "0"): return 0 else: return str pass def startElement(self, name, attrs): self.space.append(name) self.current = None # --- if we are analyzing "prerequisites" element then store its "path" attribute if self.space == [appli_tag, prereq_tag] and path_att in attrs.getNames(): self.config["prereq_path"] = attrs.getValue( path_att ) pass # --- if we are analyzing "resources" element then store its "path" attribute if self.space == [appli_tag, resources_tag] and path_att in attrs.getNames(): self.config["resources_path"] = attrs.getValue( path_att ) pass # --- if we are analyzing "samples" element then store its "path" attribute if self.space == [appli_tag, samples_tag] and path_att in attrs.getNames(): self.config["samples_path"] = attrs.getValue( path_att ) pass # --- if we are analyzing "module" element then store its "name" and "path" attributes elif self.space == [appli_tag,modules_tag,module_tag] and \ nam_att in attrs.getNames() and \ path_att in attrs.getNames(): nam = attrs.getValue( nam_att ) path = attrs.getValue( path_att ) gui = 1 if gui_att in attrs.getNames(): gui = self.boolValue(attrs.getValue( gui_att )) pass self.config["modules"].append(nam) self.config[nam]=path if gui: self.config["guimodules"].append(nam) pass pass pass def endElement(self, name): p = self.space.pop() self.current = None pass def characters(self, content): pass def processingInstruction(self, target, data): pass def setDocumentLocator(self, locator): pass def startDocument(self): self.read = None pass def endDocument(self): self.read = None pass # ----------------------------------------------------------------------------- class params: pass # ----------------------------------------------------------------------------- def makedirs(namedir): if os.path.exists(namedir): dirbak=namedir+".bak" if os.path.exists(dirbak): shutil.rmtree(dirbak) os.rename(namedir,dirbak) os.listdir(dirbak) #sert seulement a mettre a jour le systeme de fichier sur certaines machines os.makedirs(namedir) def install(prefix,config_file,verbose=0): home_dir=os.path.abspath(os.path.expanduser(prefix)) filename=os.path.abspath(os.path.expanduser(config_file)) _config={} try: p = xml_parser(filename) _config = p.config except xml.sax.SAXParseException, inst: print inst.getMessage() print "Configure parser: parse error in configuration file %s" % filename pass except xml.sax.SAXException, inst: print inst.args print "Configure parser: error in configuration file %s" % filename pass except: print "Configure parser: Error : can not read configuration file %s, check existence and rights" % filename pass if verbose: for cle in _config.keys(): print cle, _config[cle] pass for module in _config["modules"]: print "--- add module ", module, _config[module] options = params() options.verbose=verbose options.clear=0 options.prefix=home_dir options.module=_config[module] virtual_salome.link_module(options) pass appliskel_dir=os.path.join(home_dir,'bin','salome','appliskel') for fn in ('envd', 'getAppliPath.py', 'searchFreePort.sh', 'runRemote.sh', 'runAppli', 'runConsole', 'runSession', 'runSalomeScript', 'runTests', 'update_catalogs.py', 'kill_remote_containers.py', '.bashrc', ): virtual_salome.symlink("./bin/salome/appliskel/"+fn,os.path.join(home_dir, fn)) pass if filename != os.path.join(home_dir,"config_appli.xml"): command = "cp -p " + filename + ' ' + os.path.join(home_dir,"config_appli.xml") os.system(command) pass virtual_salome.mkdir(os.path.join(home_dir,'env.d')) if os.path.isfile(_config["prereq_path"]): command='cp -p ' + _config["prereq_path"] + ' ' + os.path.join(home_dir,'env.d','envProducts.sh') os.system(command) pass else: print "WARNING: prerequisite file does not exist" pass #environment file: configSalome.sh f =open(os.path.join(home_dir,'env.d','configSalome.sh'),'w') for module in _config["modules"]: command='export '+ module + '_ROOT_DIR=${HOME}/${APPLI}\n' f.write(command) pass if _config.has_key("samples_path"): command='export DATA_DIR=' + _config["samples_path"] +'\n' f.write(command) pass if _config.has_key("resources_path") and os.path.isfile(_config["resources_path"]): command='export USER_CATALOG_RESOURCES_FILE=' + os.path.abspath(_config["resources_path"]) +'\n' f.write(command) f.close() #environment file: configGUI.sh f =open(os.path.join(home_dir,'env.d','configGUI.sh'),'w') command = """export SalomeAppConfig=${HOME}/${APPLI} export SUITRoot=${HOME}/${APPLI}/share/salome export DISABLE_FPE=1 export MMGT_REENTRANT=1 """ f.write(command) f.close() #SalomeApp.xml file f =open(os.path.join(home_dir,'SalomeApp.xml'),'w') command="""
""" mods=[] #Keep all modules except KERNEL and GUI for m in _config["modules"]: if m in ("KERNEL","GUI"):continue mods.append(m) f.write(command % ",".join(mods)) f.close() #Add default CatalogResources.xml file f =open(os.path.join(home_dir,'CatalogResources.xml'),'w') command=""" """ f.write(command) f.close() #Add USERS directory with 777 permission to store users configuration files users_dir=os.path.join(home_dir,'USERS') makedirs(users_dir) os.chmod(users_dir, 0777) def main(): parser = optparse.OptionParser(usage=usage) parser.add_option('--prefix', dest="prefix", default='.', help="Installation directory (default .)") parser.add_option('--config', dest="config", default='config_appli.xml', help="XML configuration file (default config_appli.xml)") parser.add_option('-v', '--verbose', action='count', dest='verbose', default=0, help="Increase verbosity") options, args = parser.parse_args() if not os.path.exists(options.config): print "ERROR: config file %s does not exist. It is mandatory." % options.config sys.exit(1) install(prefix=options.prefix,config_file=options.config,verbose=options.verbose) pass # ----------------------------------------------------------------------------- if __name__ == '__main__': main() pass salome-kernel-6.5.0/bin/appli_install.sh000077500000000000000000000060461177004724000202320ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # SALOME_ROOT=${HOME}/SALOME2 INSTALL_ROOT=${SALOME_ROOT}/Install APPLI_ROOT=`pwd` # --- clean appli rm -rf bin lib share doc envd getAppliPath.py searchFreePort.sh runAppli runConsole runSession env.d # --- install appli mkdir -p env.d ln -fs bin/salome/appliskel/envd . ln -fs bin/salome/appliskel/getAppliPath.py . ln -fs bin/salome/appliskel/searchFreePort.sh . ln -fs bin/salome/appliskel/runRemote.sh . ln -fs bin/salome/appliskel/runAppli . ln -fs bin/salome/appliskel/runConsole . ln -fs bin/salome/appliskel/runSession . ln -fs bin/salome/appliskel/runTests . ln -fs bin/salome/appliskel/.bashrc . # --- prerequisites if [ x${PREREQUISITE_SH} != x ]; then cp ${PREREQUISITE_SH} env.d/envProducts.sh; else # --- unless PREREQUISITE_SH defines the prerequisite script, # edit and uncomment the following line to set it, and comment the echo and exit lines #ln -fs myPathForSalomePrerequisiteScriptToBeSourced env.d/envProducts.sh echo "The file to source for SALOME prerequisite definition is not known:" echo "--> Edit the corresponding line in " $0 ",Comment this message and the following exit command," exit 1; fi # --- symbolic links creation, from modules_root_dir VERSION=V3_2_0 for module in KERNEL MED GUI GEOM SMESH VISU LIGHT NETGENPLUGIN PYCALCULATOR; do echo " ========= " ${module}; python virtual_salome.py -v --prefix="." --module=$INSTALL_ROOT/${module}_${VERSION} echo "export ${module}_ROOT_DIR=$APPLI_ROOT" >> env.d/configSalome.sh done # --- HELLO module echo " ========= HELLO1"; python virtual_salome.py -v --prefix="." --module=$INSTALL_ROOT/HELLO1_${VERSION} echo "export HELLO_ROOT_DIR=$APPLI_ROOT" >> env.d/configSalome.sh # --- PYHELLO module echo " ========= PYHELLO1"; python virtual_salome.py -v --prefix="." --module=$INSTALL_ROOT/PYHELLO1_${VERSION} echo "export PYHELLO_ROOT_DIR=$APPLI_ROOT" >> env.d/configSalome.sh # --- GUI config echo "export config_var=$APPLI_ROOT:$APPLI_ROOT/share/salome/resources/gui" >> env.d/configGUI.sh # --- SAMPLES directory echo "export DATA_DIR=$INSTALL_ROOT/SAMPLES/${VERSION}/SAMPLES_SRC" >> env.d/configSalome.sh # --- salome-kernel-6.5.0/bin/appliskel/000077500000000000000000000000001177004724000170165ustar00rootroot00000000000000salome-kernel-6.5.0/bin/appliskel/.bashrc000077500000000000000000000021661177004724000202710ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # If not running interactively, don't do anything: [ -z "$PS1" ] && return # prefix prompt with naming server hostname and port export PS1='[NS='${NSHOST}':'${NSPORT}']'${PS1} salome-kernel-6.5.0/bin/appliskel/Makefile.am000077500000000000000000000036741177004724000210670ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Renaud Barate (EDF R&D) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/bin/appliskel/Attic/Makefile.am,v 1.1.2.1.4.1 2012-04-12 14:04:57 vsr Exp $ include $(top_srcdir)/salome_adm/unix/make_common_starter.am appliskeldir = $(salomescriptdir)/appliskel # # =============================================================== # Files to be installed # =============================================================== # # These files are executable scripts dist_appliskel_SCRIPTS = \ envd \ searchFreePort.sh \ runRemote.sh \ runAppli \ runConsole \ runSession \ runSalomeScript \ runTests \ .bashrc # These files are python files dist_appliskel_PYTHON = \ getAppliPath.py \ update_catalogs.py \ kill_remote_containers.py install-data-hook: @for f in $(dist_appliskel_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(appliskeldir)/$$f ; \ done salome-kernel-6.5.0/bin/appliskel/Makefile.in000077500000000000000000000610741177004724000210760ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Renaud Barate (EDF R&D) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/bin/appliskel/Attic/Makefile.am,v 1.1.2.1.4.1 2012-04-12 14:04:57 vsr Exp $ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = README $(dist_appliskel_PYTHON) \ $(dist_appliskel_SCRIPTS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = bin/appliskel ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(appliskeldir)" \ "$(DESTDIR)$(appliskeldir)" SCRIPTS = $(dist_appliskel_SCRIPTS) SOURCES = DIST_SOURCES = py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules appliskeldir = $(salomescriptdir)/appliskel # # =============================================================== # Files to be installed # =============================================================== # # These files are executable scripts dist_appliskel_SCRIPTS = \ envd \ searchFreePort.sh \ runRemote.sh \ runAppli \ runConsole \ runSession \ runSalomeScript \ runTests \ .bashrc # These files are python files dist_appliskel_PYTHON = \ getAppliPath.py \ update_catalogs.py \ kill_remote_containers.py all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/appliskel/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bin/appliskel/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_appliskelSCRIPTS: $(dist_appliskel_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(appliskeldir)" || $(MKDIR_P) "$(DESTDIR)$(appliskeldir)" @list='$(dist_appliskel_SCRIPTS)'; test -n "$(appliskeldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(appliskeldir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(appliskeldir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_appliskelSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_appliskel_SCRIPTS)'; test -n "$(appliskeldir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(appliskeldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(appliskeldir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_appliskelPYTHON: $(dist_appliskel_PYTHON) @$(NORMAL_INSTALL) test -z "$(appliskeldir)" || $(MKDIR_P) "$(DESTDIR)$(appliskeldir)" @list='$(dist_appliskel_PYTHON)'; dlist=; list2=; test -n "$(appliskeldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appliskeldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(appliskeldir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(appliskeldir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(appliskeldir)" $$dlist; \ fi; \ else :; fi uninstall-dist_appliskelPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_appliskel_PYTHON)'; test -n "$(appliskeldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(appliskeldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(appliskeldir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(appliskeldir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(appliskeldir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(appliskeldir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(appliskeldir)" && rm -f $$fileso tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(appliskeldir)" "$(DESTDIR)$(appliskeldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_appliskelPYTHON \ install-dist_appliskelSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_appliskelPYTHON \ uninstall-dist_appliskelSCRIPTS .MAKE: install-am install-data-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook \ install-dist_appliskelPYTHON install-dist_appliskelSCRIPTS \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-dist_appliskelPYTHON \ uninstall-dist_appliskelSCRIPTS install-data-hook: @for f in $(dist_appliskel_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(appliskeldir)/$$f ; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/bin/appliskel/README000077500000000000000000000106731177004724000177100ustar00rootroot00000000000000Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com ======================================= Set of scripts for a SALOME application ======================================= This document corresponds to SALOME 6.4.0 SALOME Application concept -------------------------- See the documentation of KERNEL module for more information on SALOME Application concept and to learn how to define your own configuration of SALOME and run it on one or several computers. The recommended way to create a new application is with the script appli_gen.py that can be found in KERNEL installation. An application has probably already been generated for you if you downloaded a binary version of SALOME. To find all the files described below, please refer to a generated application as some of them are generated automatically and thus are not present in this appliskel directory. User run scripts ---------------- The SALOME user can use the following scripts: runAppli Launches a SALOME Session (similar to ${KERNEL_ROOT_DIR}/bin/salome/runSalome but with a different name to avoid confusions). runSession Launches a shell script in the SALOME application environment, with access to the current SALOME session (naming service), if any. Without arguments, the script is interactive. With arguments, the script executes the command in the SALOME application environment. runConsole Gives a python console connected to the current SALOME Session. It is also possible to use runSession, then python. runTests Similar to runSession, used for unit testing. runTests defines a new configuration for naming service (new port number) to avoid interferences with a running SALOME session. runSession tries to use an already existing naming service definition from a running session (hostname & port number). SALOME internal run scripts --------------------------- envd Sets SALOME application environment, envd is sourced by other scripts. getAppliPath.py Used by other scripts to define the Application Path. searchFreePort.sh Used by other scripts to find a free port for naming service. For remote calls, SALOME uses one script. runRemote.sh This script is mainly used to launch containers. The first 2 arguments define the hostname and port userd for naming service, the remaining arguments define the command to execute. The following files can be adapted to your environment and SALOME Application ------------------------------------------------------------------------------ - CatalogResources.xml - SalomeApp.xml - env.d/atFirst.sh - env.d/envProducts.sh - env.d/envSalome.sh CatalogResources.xml This files describes all the computers the application can use. The default file is minimal. A specific application directory can be set on a particular computer with a line:: appliPath="my/specific/path/on/this/computer" SalomeApp.xml This file is similar to the default given in ${GUI_ROOT_DIR}/share/salome/resources/gui Proposal for env.d scripts ~~~~~~~~~~~~~~~~~~~~~~~~~~ Each user can define his own configuration for these scripts, following the above rules. The generated files are good examples to start with. envProducts.sh Sets the SALOME prerequisites. configSalome.sh Sets all the MODULE_ROOT_DIR that can be used in the SALOME application. configGUI.sh Sets variables necessary for SALOME GUI. SalomeAppConfig is defined by:: export SalomeAppConfig=${HOME}/${APPLI} where SalomeAppConfig designates the directory containing SalomeApp.xml. Note that ${APPLI} is already defined by the calling scripts when env.d/configGUI.sh is sourced. salome-kernel-6.5.0/bin/appliskel/envd000077500000000000000000000017611177004724000177050ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # for i in $1/env.d/*.sh; do source ${i}; done salome-kernel-6.5.0/bin/appliskel/getAppliPath.py000077500000000000000000000036571177004724000217700ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os def relpath(target, base): """ Find relative path from base to target if target== "/local/chris/appli" and base== "/local/chris" the result is appli if target== /tmp/appli and base /local/chris the result is ../../tmp/appli """ target=target.split(os.path.sep) base=base.split(os.path.sep) for i in xrange(len(base)): if base[i] != target[i]: i=i-1 #not in base break p=['..']*(len(base)-i-1)+target[i+1:] if p == []: return '.' return os.path.join( *p ) def set_var(VAR, strpath): """Set VAR environment variable """ value = "%r" % strpath shell = os.getenv('SHELL') if shell and shell.endswith('csh'): return "setenv %s %s" % (VAR, value) else: return "export %s=%s" % (VAR, value) if __name__ == "__main__": applipath=relpath(os.path.realpath(os.path.dirname(__file__)),os.path.realpath(os.getenv('HOME'))) print applipath salome-kernel-6.5.0/bin/appliskel/kill_remote_containers.py000077500000000000000000000106761177004724000241400ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ """ import sys,os,shutil,glob,socket import optparse import getAppliPath appli_local=os.path.realpath(os.path.dirname(__file__)) APPLI=getAppliPath.relpath(appli_local,os.path.realpath(os.getenv('HOME'))) usage="""usage: %prog [options] This procedure kill all containers that have been launched in a SALOME session on remote machines. A SALOME session is identified by a machine name and a port number. You need to have a well installed SALOME application with a CatalogResources.xml file. This file is used (parsed) to collect all remote resources. Remote resources are all the resources on remote machines not including the main local SALOME application. """ try: # cElementTree from Python 2.5+ import xml.etree.cElementTree as etree_ except ImportError: try: import xml.etree.ElementTree as etree_ except ImportError: try: import cElementTree as etree_ except ImportError: try: # normal ElementTree install import elementtree.ElementTree as etree_ except ImportError: raise class ParseError(Exception): pass catalog_file=os.path.join(appli_local,"CatalogResources.xml") SEP=":" if sys.platform == "win32":SEP=";" def get_hostname(): return socket.gethostname().split('.')[0] class Resource: """Define a SALOME resource - components : the list of available components of the resource """ def __init__(self,node): self.node=node self.components=[] self.resource_dir=None def get_rcp(self): protocol= self.node.get("protocol") if protocol and protocol[0]=='s':return "scp" else:return "rcp" def get_rsh(self): protocol= self.node.get("protocol") if protocol and protocol[0]=='s':return "ssh" else:return "rsh" def get_user(self): userName= self.node.get("userName") if not userName: userName=os.getenv('USER') return userName def get_host(self): hostname= self.node.get("hostname") return hostname def get_name(self): name= self.node.get("name") if name:return name return self.get_host() def get_appliPath(self): appliPath= self.node.get("appliPath") if appliPath is None: appliPath=APPLI return appliPath def main(): parser = optparse.OptionParser(usage=usage) parser.add_option('-p','--port', dest="port", help="The SALOME session port (default NSPORT or 2810)") options, args = parser.parse_args() if not os.path.exists(catalog_file): print "ERROR: the catalog file %s is mandatory" % catalog_file_base sys.exit(1) #Parse CatalogResource.xml doc = etree_.parse(catalog_file) rootNode = doc.getroot() if rootNode.tag != "resources": raise ParseError("First level tag must be resources not %s" % rootNode.tag) resources=[] #Extract resources for child in rootNode: if child.tag != "machine": raise ParseError("Second level tag must be machine not %s" % child.tag) resources.append(Resource(child)) local_names=("localhost",get_hostname()) for resource in resources: if resource.get_host() in local_names:continue command=resource.get_rsh() +" -l "+resource.get_user()+" "+resource.get_host() command=command+ " " + os.path.join(resource.get_appliPath(),"runRemote.sh") if options.port: port=options.port else: port=os.getenv("NSPORT") or "2810" command=command+ " " + get_hostname() + " " + port +" killSalomeWithPort.py " + port print command os.system(command) if __name__ == '__main__': main() salome-kernel-6.5.0/bin/appliskel/runAppli000077500000000000000000000032511177004724000205370ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # APPLI_HOME=`dirname $0` # --- retrieve APPLI path, relative to $HOME, set ${APPLI} export APPLI=`${APPLI_HOME}/getAppliPath.py` # --- set the SALOME environment (prerequisites, MODULES_ROOT_DIR...) . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} # --- if mpi lam, start lam (seems safe to be done several times) # (manual stop with lamhalt) if [ "$LAMBHOST" ]; then lamboot fi # --- run SALOME # (default arguments defined in local SalomeApp.xml could be completed # by arguments to this command) if [ $# -ne 0 ] ; then ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py $* else ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py fi salome-kernel-6.5.0/bin/appliskel/runConsole000077500000000000000000000025301177004724000210730ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # APPLI_HOME=`dirname $0` # --- retrieve APPLI path, relative to $HOME, set ${APPLI} export APPLI=`${APPLI_HOME}/getAppliPath.py` # --- set the SALOME environment (prerequisites, MODULES_ROOT_DIR...) . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} # --- open a Python interpreter with SALOME environment ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i ${KERNEL_ROOT_DIR}/bin/salome/salomeConsole.py $* salome-kernel-6.5.0/bin/appliskel/runRemote.sh000077500000000000000000000067171177004724000213500ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # --- run command in SALOME environment from remote call, ssh or rsh # - SALOME configuration is defined by : # - list of MODULE_ROOT_DIR # - prerequisite environment # - specific configuration for a particular SALOME application # - These elements of configuration are defined locally on each computer # in the directory APPLI: # - A SALOME application distributed on several computers needs APPLI # directories on the same path ($APPLI) relative to $HOME directory # of the user, on each computer. # --- call example (from cli76cd to cli76ce): # ssh cli76ce ${APPLI}/runRemote.sh cli76cd 2810 SALOME_Container myContainerName # --- local arguments # $0 : ${APPLI}/runRemote.sh: from arg name, rebuild and export $APPLI variable # $1 : computer name for CORBA name service (where SALOME was launched) # $2 : port for CORBA name service # $3 : WORKINGDIR (if $3 == WORKINDIR a working dir is given in $4. If not the working dir is $HOME) # $4 : if $3 == WORKINGDIR, the path to the workingdir # $5 (or $3 if no workingdir given) and following : local command to execute, with args # --- retrieve APPLI path, relative to $HOME, set ${APPLI} APPLI_HOME=`dirname $0` export APPLI=`${APPLI_HOME}/getAppliPath.py` # --- set the SALOME environment (prerequisites, MODULES_ROOT_DIR...) . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} # --- set the OMNIORB_CONFIG file and environment relative to this run of SALOME OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_$1_$2.cfg export OMNIORB_CONFIG NSHOST=$1 export NSHOST NSPORT=$2 export NSPORT initref="NameService=corbaname::"$1":$2" echo "InitRef = $initref" > $OMNIORB_CONFIG #go to the requested working directory if any if test "x$3" == "xWORKINGDIR"; then if test "x$4" = "x\$TEMPDIR"; then #create a temp working dir and change to it WDIR=`mktemp -d` && { cd $WDIR } else if test -d $4; then #the dir exists, go to it cd $4 else if test -a $4; then # It's a file do nothing echo $4 "is an existing file. Can't use it as a working directory" else #It does not exists, create it mkdir -p $4 && { cd $4 } fi fi fi shift 4 else shift 2 fi # --- execute the command in the SALOME environment # suppress --rcfile option because of problem on Mandriva2006 - B Secher mai 2007 #${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/sh --rcfile $HOME/$APPLI/.bashrc -c "$*" ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/sh -c "$*" salome-kernel-6.5.0/bin/appliskel/runSalomeScript000077500000000000000000000200671177004724000221030ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os,sys,optparse import socket,shutil import re usage=""" Connect to a SALOME session (local or remote) and execute a Python script with data files in argument (optional) Usage: %prog [ options ] script script : The Python script to execute in the SALOME session SALOME SESSION -------------- If PORT and MACHINE are not given, try to connect to the last active session on the local machine If PORT and MACHINE are given, try to connect to the remote session associated with PORT on MACHINE If MACHINE is not given, try to connect to the session associated to PORT on the local machine If PORT is not given, try to connect to the remote session associated to port 2810 on MACHINE If MACHINE isn't localhost or hostname, USER is needed If Salome isn't installed on the local machine, use APPLI_DIST to execute a distant session INPUTS AND OUPUTS ----------------- script is needed in all case INPUT and OUTPUT are used only when Salome isn't on local machine. It defines a list of script (full path, blank separated) Actions done with these two lists are : - adjustment of path in a temporary script file - copy of the input files and script file on the distant machine """ appli_local=os.path.realpath(os.path.dirname(__file__)) def get_hostname(): return socket.gethostname().split('.')[0] def vararg_callback(option, opt_str, value, parser): """optparse callback for variable length arguments""" assert value is None done = 0 value = [] rargs = parser.rargs while rargs: arg = rargs[0] # Stop if we hit an arg like "--foo", "-a", "-fx", "--file=f", # etc. Note that this also stops on "-3" or "-3.0", so if # your option takes numeric values, you will need to handle this. if ((arg[:2] == "--" and len(arg) > 2) or (arg[:1] == "-" and len(arg) > 1 and arg[1] != "-")): break else: value.append(arg) del rargs[0] setattr(parser.values, option.dest, value) def parse_args(): """parse arguments, check validity and set defaults""" parser = optparse.OptionParser(usage=usage) parser.add_option('-p','--port', dest="port", default='', help="The port to connect to") parser.add_option('-m','--machine', dest="machine", default='', help="The computer to connect to") parser.add_option('-d','--directory', dest="directory", help="[Distant Mode] The APPLI_HOME path on the distant machine (must be used if Salome isn't on the local machine)") parser.add_option('-u','--user', dest="user", default='', help="[Distant Mode] The user on the computer to connect to") parser.add_option('-i','--infiles', dest="infiles", default=[], action="callback", callback=vararg_callback, help="[Distant Mode] The list of input files (blank separated) used in the Python script") parser.add_option('-o','--outfiles', dest="outfiles", default=[], action="callback", callback=vararg_callback, help="[Distant Mode] The list of output files (blank separated) generated by the Python script") args=sys.argv[1:] script="" if args: script=args.pop() options, args = parser.parse_args(args) #check the arguments if not os.path.exists(script): print "ERROR: the script file is mandatory" sys.exit(1) machine=options.machine port=options.port user=options.user infiles = options.infiles outfiles = options.outfiles directory=options.directory mode="local" if machine: here=get_hostname() if machine != here and machine != "localhost": #SALOME server is on a remote computer mode="remote" if not user: print "ERROR: the remote execution needs -u user argument" sys.exit(1) if not os.path.exists(os.path.join(appli_local,"runSession")): if not directory: print "ERROR: the remote execution without SALOME installation needs -d directory argument" sys.exit(1) return mode,user,machine,port,directory,infiles,outfiles,script def copy_files(user,machine,script,infiles,outfiles,directory): """modify script, copy files to remote computer and return lists of copied files""" namescript=os.path.basename(script) logname=os.getenv("LOGNAME",user) tmp_script="/tmp/%s_%s_%s" % (logname,os.getpid(),namescript) fscript=open(script) script_text=fscript.read() fscript.close() list_infiles=[] list_outfiles=[] n=0 for infile in infiles: # generate a temporary file name namefile=os.path.basename(infile) tmp_file="/tmp/%s_%s_i%s_%s" % (logname,os.getpid(),n,namefile) #modify the salome script script_text = re.sub(infile,tmp_file,script_text) # copy the infile to the remote server (into /tmp) cmd="scp %s %s@%s:%s" % (infile,user,machine,tmp_file) print "[ SCP ]",cmd os.system(cmd) list_infiles.append(tmp_file) n=n+1 n=0 for outfile in outfiles: # generate a temporary file name namefile=os.path.basename(outfile) tmp_file="/tmp/%s_%s_o%s_%s" % (logname,os.getpid(),n,namefile) #modify the salome script script_text = re.sub(outfile,tmp_file,script_text) list_outfiles.append(tmp_file) n=n+1 fscript=open(tmp_script,'w') fscript.write(script_text) fscript.close() if directory: #copy the salome script on the remote server cmd="scp %s %s@%s:%s" % (tmp_script,user,machine,tmp_script) print "[ SCP ]",cmd os.system(cmd) return list_infiles, list_outfiles, tmp_script def main(): mode,user,machine,port,directory,infiles,outfiles,script = parse_args() tmp_script=script print "mode:",mode if mode == "remote": list_infiles, list_outfiles, tmp_script = copy_files(user,machine,script,infiles,outfiles,directory) ################################################# # Execution # ################################################# if directory: print "[ REMOTE ]" # execute runSession from the remote SALOME application cmd="ssh %s@%s %s/runSession " % (user,machine,directory) if port: cmd=cmd+"-p %s "%port cmd = cmd +"python " + tmp_script print '[ SSH ] ' + cmd os.system(cmd) else: print "[ LOCAL ]" # execute runSession from the local SALOME application cmd="%s/runSession " % appli_local if machine: cmd=cmd+"-m %s "%machine if port: cmd=cmd+"-p %s "%port cmd = cmd +"python " + tmp_script print '[ SH ] ' + cmd os.system(cmd) ################################################# # Get remote files and clean # ################################################# if mode == "remote": temp_files=list_infiles+list_outfiles #get the outfiles for outfile in outfiles: remote_outfile=list_outfiles.pop(0) cmd="scp %s@%s:%s %s" %(user,machine,remote_outfile,outfile) print "[ SCP ] "+cmd os.system(cmd) #clean temporary files cmd="ssh %s@%s \\rm -f %s" % (user,machine," ".join(temp_files)) print '[ SSH ] ' + cmd os.system(cmd) os.remove(tmp_script) if __name__ == '__main__': main() salome-kernel-6.5.0/bin/appliskel/runSession000077500000000000000000000104421177004724000211150ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Useful shell to run executable progs or shells under Salome env # Use it with args to run a program : runSession python -i myprog.py # Use it without args to run an interactive shell under Salome env APPLI_HOME=`dirname $0` NSPORT=last NSHOST=localhost usage() { echo "Connect to a SALOME session (local or remote)" echo "" echo "Usage: $(basename $0) [ -p PORT ] [ -m MACHINE ] [ -h ] [command]" echo "" echo " -p PORT : The port to connect to " echo " -m MACHINE : The machine to connect to " echo " -h : Print this message" echo " command : The command to execute in the SALOME session" echo "" echo "If the command is not given a shell is opened" echo "If PORT and MACHINE are not given, try to connect to the last active session on the local machine" echo "If PORT and MACHINE are given, try to connect to the remote session associated with PORT on MACHINE" echo "If MACHINE is not given, try to connect to the session associated to PORT on the local machine" echo "If PORT is not given, try to connect to the remote session associated to port 2810 on MACHINE" echo "" } while getopts 'm:p:h' OPTION do case $OPTION in m)NSHOST="$OPTARG" ;; p)NSPORT="$OPTARG" ;; h|?) usage exit 1 ;; esac done shift $(($OPTIND - 1)) # --- retrieve APPLI path, relative to $HOME, set ${APPLI} export APPLI=`${APPLI_HOME}/getAppliPath.py` # --- set the SALOME environment (prerequisites, MODULES_ROOT_DIR...) . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} if test "x${NSPORT}" == "xlast"; then #PORT is not given if test "x${NSHOST}" == "xlocalhost"; then #MACHINE and PORT are not given # --- set omniORB configuration to current session if any fileOmniConfig=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg if [ -f $fileOmniConfig ]; then OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg export OMNIORB_CONFIG # --- set environment variables for port and hostname of NamingService NSHOST=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py host` NSPORT=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py port` export NSPORT export NSHOST fi else #MACHINE is given PORT is not given NSPORT=2810 OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${NSHOST}_${NSPORT}.cfg export OMNIORB_CONFIG #if omniorb config file exists do not override (perhaps too conservative) if [ ! -f ${OMNIORB_CONFIG} ]; then echo "InitRef = NameService=corbaname::${NSHOST}:${NSPORT}" > ${OMNIORB_CONFIG} fi export NSPORT export NSHOST fi else #PORT is given if test "x${NSHOST}" == "xlocalhost"; then #MACHINE is not given PORT is given NSHOST=`hostname` fi OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${NSHOST}_${NSPORT}.cfg export OMNIORB_CONFIG #if omniorb config file exists do not override (perhaps too conservative) if [ ! -f ${OMNIORB_CONFIG} ]; then echo "InitRef = NameService=corbaname::${NSHOST}:${NSPORT}" > ${OMNIORB_CONFIG} fi export NSPORT export NSHOST fi # --- invoke shell with or without args if [ $# -ne 0 ] ; then ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py -exec $* else ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc fi salome-kernel-6.5.0/bin/appliskel/runTests000077500000000000000000000056271177004724000206050ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # --- retrieve APPLI path, relative to $HOME, set ${APPLI} APPLI_HOME=`dirname $0` export APPLI=`${APPLI_HOME}/getAppliPath.py` # --- set the SALOME environment (prerequisites, MODULES_ROOT_DIR...) . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} # --- define port for CORBA naming service searchFreePort() { echo -n "Searching for a free port for naming service: " export NSPORT=2810 local limit=$NSPORT let limit=limit+100 while [ 1 ] do aRes=`netstat -ltn | grep -E :${NSPORT}` if [ -z "$aRes" ]; then echo ${NSPORT} - Ok local myhost=`hostname` OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${myhost}_${NSPORT}.cfg export OMNIORB_CONFIG export NSPORT NSHOST=${myhost} export NSHOST local initref="NameService=corbaname::"`hostname`":$NSPORT" #echo "ORBInitRef $initref" > $OMNIORB_CONFIG echo "InitRef = $initref" > $OMNIORB_CONFIG LAST_RUNNING_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${myhost}_test.cfg export LAST_RUNNING_CONFIG rm ${LAST_RUNNING_CONFIG} ln -s ${OMNIORB_CONFIG} ${LAST_RUNNING_CONFIG} break fi echo -n "${NSPORT} " if [[ $NSPORT -eq $limit ]] ; then echo echo "Can't find a free port to launch omniNames" echo "Try to kill the running servers and then launch SALOME again." exit fi let NSPORT=NSPORT+1 done } # --- if mpi lam, start lam (seems safe to be done several times) # arret manuel avec lamhalt if [ "$LAMBHOST" ]; then lamboot fi # --- invoque shell with or without args searchFreePort if [ $# -ne 0 ] ; then ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc -c "$*" else ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc fi rm ${OMNIORB_CONFIG} rm ${LAST_RUNNING_CONFIG} salome-kernel-6.5.0/bin/appliskel/searchFreePort.sh000077500000000000000000000043231177004724000222730ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # --- define port for CORBA naming service searchFreePort() { echo -n "Searching for a free port for naming service: " NSPORT=2810 export NSPORT local limit=$NSPORT let limit=limit+100 while [ 1 ] do aRes=`netstat -ltn | grep -E :${NSPORT}` if [ -z "$aRes" ]; then echo ${NSPORT} - Ok local myhost=`hostname` OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${myhost}_${NSPORT}.cfg export OMNIORB_CONFIG export NSPORT NSHOST=${myhost} export NSHOST local initref="NameService=corbaname::"`hostname`":$NSPORT" #echo "ORBInitRef $initref" > $OMNIORB_CONFIG echo "InitRef = $initref" > $OMNIORB_CONFIG LAST_RUNNING_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg export LAST_RUNNING_CONFIG rm ${LAST_RUNNING_CONFIG} ln -s ${OMNIORB_CONFIG} ${LAST_RUNNING_CONFIG} break fi echo -n "${NSPORT} " if [[ $NSPORT -eq $limit ]] ; then echo echo "Can't find a free port to launch omniNames" echo "Try to kill the running servers and then launch SALOME again." exit fi let NSPORT=NSPORT+1 done } salome-kernel-6.5.0/bin/appliskel/update_catalogs.py000077500000000000000000000210341177004724000225320ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ """ import sys,os,shutil,glob,socket import optparse import getAppliPath appli_local=os.path.realpath(os.path.dirname(__file__)) APPLI=getAppliPath.relpath(appli_local,os.path.realpath(os.getenv('HOME'))) usage="""usage: %prog [options] Typical use is: python update_catalogs.py You need to have a well installed SALOME application with a CatalogResources.base.xml file. This file is used (parsed) to collect all module catalogs from distant resources and put them in the directory "remote_catalogs" with sub-directories with same name as the distant resource. Distant resources are all the resources except the main SALOME application. Module catalogs from distant resources are copied by the remote protocol declared in the catalog (rcp or rsh) except for the user resources on the local machine (local copy: cp). In a second time, this procedure generates a ready to use CatalogResources.xml with all available components for each resource. """ try: # cElementTree from Python 2.5+ import xml.etree.cElementTree as etree_ except ImportError: try: import xml.etree.ElementTree as etree_ except ImportError: try: import cElementTree as etree_ except ImportError: try: # normal ElementTree install import elementtree.ElementTree as etree_ except ImportError: raise class ParseError(Exception): pass catalog_file_base=os.path.join(appli_local,"CatalogResources.base.xml") catalog_file=os.path.join(appli_local,"CatalogResources.xml") cata_dir=os.path.join(appli_local,"remote_catalogs") cata_dir_bak=os.path.join(appli_local,"remote_catalogs.bak") SEP=":" if sys.platform == "win32":SEP=";" def get_hostname(): return socket.gethostname().split('.')[0] class Component: """Define a SALOME component - name : component name - moduleName : module name """ def __init__(self,name,moduleName): self.name=name self.moduleName=moduleName class Resource: """Define a SALOME resource - components : the list of available components of the resource """ def __init__(self,node): self.node=node self.components=[] self.resource_dir=None self.build() def build(self): self.attrs=self.node.attrib #remove all children (components and modules) for child in list(self.node): self.node.remove(child) def update(self): for compo in self.components: child=etree_.Element("component",name=compo.name,moduleName=compo.moduleName) child.tail="\n" self.node.append(child) def get_rcp(self): protocol= self.node.get("protocol") if protocol and protocol[0]=='s':return "scp" else:return "rcp" def get_user(self): userName= self.node.get("userName") if not userName: userName=os.getenv('USER') return userName def get_host(self): hostname= self.node.get("hostname") return hostname def get_name(self): name= self.node.get("name") if name:return name return self.get_host() def get_appliPath(self): appliPath= self.node.get("appliPath") if appliPath is None: appliPath=APPLI return appliPath def get_catalogs(self): """Get module catalogs file from the resource and copy them locally in remote_catalogs/""" hostname=self.get_host() appliPath= self.get_appliPath() userName = self.get_user() rcopy=self.get_rcp() resource_dir=os.path.join(cata_dir,self.get_name()) if hostname == "localhost" or hostname == get_hostname() and userName == os.getenv("USER"): #local machine, use cp if appliPath[0]!='/': #relative path appliPath=os.path.join(os.getenv("HOME"),appliPath) if appliPath == appli_local: return os.mkdir(resource_dir) cata_path=os.path.join(appliPath,"share","salome","resources","*Catalog.xml") cmd="cp %s %s" % (cata_path,resource_dir) print cmd os.system(cmd) cata_path=os.path.join(appliPath,"share","salome","resources","*","*Catalog.xml") cmd="cp %s %s" % (cata_path,resource_dir) print cmd os.system(cmd) else: #remote machine, use rcopy os.mkdir(resource_dir) cata_path=os.path.join(appliPath,"share","salome","resources","*Catalog.xml") cmd="%s %s@%s:%s %s" cmd= cmd%(rcopy,userName,hostname,cata_path,resource_dir) print cmd os.system(cmd) cata_path=os.path.join(appliPath,"share","salome","resources","*","*Catalog.xml") cmd="%s %s@%s:%s %s" cmd= cmd%(rcopy,userName,hostname,cata_path,resource_dir) print cmd os.system(cmd) schema_cata=os.path.join(resource_dir,"*SchemaCatalog.xml") os.system("rm %s"% schema_cata) self.resource_dir=os.path.abspath(resource_dir) def get_components(self): """Retrieve all components declared in module catalogs of the resource""" appliPath= self.get_appliPath() userName = self.get_user() hostname=self.get_host() resource_dir=os.path.join(cata_dir,self.get_name()) catalogs_list=glob.glob(os.path.join(resource_dir,"*Catalog.xml")) if hostname == "localhost" or hostname == get_hostname() and userName == os.getenv("USER"): #user local resource if appliPath[0]!='/': appliPath=os.path.join(os.getenv("HOME"),appliPath) if appliPath == appli_local: #main local resource: get catalogs in share/salome/resources catalogs_list=glob.glob(os.path.join(appliPath,"share","salome","resources","*","*Catalog.xml")) catalogs_list=catalogs_list + glob.glob(os.path.join(appliPath,"share","salome","resources","*Catalog.xml")) for cata in catalogs_list: moduleName= os.path.basename(cata)[:-11] #Parse module catalog doc = etree_.parse(cata) rootNode = doc.getroot() for componentName in rootNode.findall("component-list/component/component-name"): self.components.append(Component(componentName.text,moduleName)) def main(): parser = optparse.OptionParser(usage=usage) options, args = parser.parse_args() if not os.path.exists(catalog_file_base): print "ERROR: the base catalog file %s is mandatory" % catalog_file_base sys.exit(1) #Parse CatalogResource.xml doc = etree_.parse(catalog_file_base) rootNode = doc.getroot() if rootNode.tag != "resources": raise ParseError("First level tag must be resources not %s" % rootNode.tag) resources=[] #Extract resources for child in rootNode: if child.tag != "machine": raise ParseError("Second level tag must be machine not %s" % child.tag) resources.append(Resource(child)) # Remove remote_catalogs directory and create a new empty one if os.path.exists(cata_dir): if os.path.exists(cata_dir_bak): shutil.rmtree(cata_dir_bak) os.rename(cata_dir,cata_dir_bak) os.mkdir(cata_dir) #Get catalogs from remote resources and copy them in remote_catalogs for mach in resources: mach.get_catalogs() #Get the list of SALOME components that are defined in catalogs for mach in resources: mach.get_components() #Update the resource catalog dom object for further dump for mach in resources: mach.update() #dump new CatalogResources.xml f=open(catalog_file,'w') f.write('\n') doc.write(f) f.write('\n') f.close() print "%s updated" % catalog_file #update configRemote.sh in env.d directory (environment variable SALOME_CATALOGS_PATH) path=[] for mach in resources: if mach.resource_dir: path.append(mach.resource_dir) f=open(os.path.join(appli_local,"env.d","configRemote.sh"),'w') f.write("export SALOME_CATALOGS_PATH=%s\n" % SEP.join(path)) f.close() if __name__ == '__main__': main() salome-kernel-6.5.0/bin/config_appli.xml000077500000000000000000000027611177004724000202170ustar00rootroot00000000000000 salome-kernel-6.5.0/bin/createAppli.sh000077500000000000000000000025251177004724000176260ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # comName=`which $0` rep=`dirname $comName` if [ $# -ne 1 ]; then echo "--- usage:" echo $0 AppliName echo "--- In which AppliName is a directory to create with SALOME application scripts" elif [ -d $1 ]; then echo $1 "directory already exists, nothing done" else mkdir -p $1 mkdir -p $1/USERS cp -r $rep/appliskel/* $1 cp $rep/appliskel/.bashrc $1 chmod +x $1/*.sh $1/run* $1/envd fi salome-kernel-6.5.0/bin/envSalome.py000077500000000000000000000026541177004724000173470ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os import sys import setenv kernel_root=os.getenv("KERNEL_ROOT_DIR") sys.path[:0]=[kernel_root+"/bin/salome"] argv = sys.argv[1:] sys.argv = argv[1:] if argv[0] == "-exec": #keep options only for execution del argv[0] sys.argv = [] setenv.main(True); if sys.platform == "win32": if len(argv) >= 2: # Fix a problem of spaces in argv[1] argv[1] = '"%s"'%(argv[1]) pass pass os.execvp(argv[0],argv) salome-kernel-6.5.0/bin/killSalome.py000077500000000000000000000062571177004724000175150ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file killSalome.py # Stop all %SALOME servers from all sessions by killing them # import os, sys, re, signal from killSalomeWithPort import killMyPort, getPiDict #from salome_utils import getHostName, getShortHostName def killAllPorts(): """ Kill all SALOME sessions belonging to the user. """ user = os.getenv('USER') #hostname = getHostName() #shostname = getShortHostName() # new-style dot-prefixed pidict file #fpidict = getPiDict('(\d*)',hidden=True) #problem with WIN32 path slashes fpidict = getPiDict('#####',hidden=True) dirpidict = os.path.dirname(fpidict) fpidict = os.path.basename(fpidict) #if hostname in fpidict: # fpidict = fpidict.replace(hostname, shostname+".*") fpidict = fpidict.replace('#####', '(\d*)') fnamere = re.compile("^%s$" % fpidict) try: for f in os.listdir(dirpidict): mo = fnamere.match(f) try: killMyPort(mo.group(1)) except: pass pass pass except: pass # provide compatibility with old-style pidict file (not dot-prefixed) #fpidict = getPiDict('(\d*)',hidden=False) fpidict = getPiDict('#####',hidden=False) dirpidict = os.path.dirname(fpidict) fpidict = os.path.basename(fpidict) #if hostname in fpidict: # fpidict = fpidict.replace(hostname, shostname+".*") fpidict = fpidict.replace('#####', '(\d*)') fnamere = re.compile("^%s$" % fpidict) try: for f in os.listdir(dirpidict): mo = fnamere.match(f) try: killMyPort(mo.group(1)) except: pass pass pass except: pass # kill other processes if sys.platform != 'win32': import commands cmd = "ps -fea | grep '%s' | grep 'ghs3d' | grep 'f /tmp/GHS3D_' | grep -v 'grep' | awk '{print $2}'" % user prc = commands.getoutput(cmd) for field in prc.split(): try: os.kill(int(field), signal.SIGKILL) except: pass pass pass pass if __name__ == "__main__": killAllPorts() pass salome-kernel-6.5.0/bin/killSalomeWithPort.py000077500000000000000000000317531177004724000212150ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file killSalomeWithPort.py # Stop all %SALOME servers from given sessions by killing them # # The sessions are indicated by their ports on the command line as in : # \code # killSalomeWithPort.py 2811 2815 # \endcode # import os, sys, pickle, signal, commands,glob from salome_utils import verbose import Utils_Identity import salome_utils def getPiDict(port,appname='salome',full=True,hidden=True,hostname=None): """ Get file with list of SALOME processes. This file is located in the user's home directory and named .___SALOME_pidict where is user name is host name is port number Parameters: - port : port number - appname : application name (default is 'SALOME') - full : if True, full path to the file is returned, otherwise only file name is returned - hidden : if True, file name is prefixed with . (dot) symbol; this internal parameter is used to support compatibility with older versions of SALOME """ from salome_utils import generateFileName, getTmpDir dir = "" if not hostname: hostname = os.getenv("NSHOST") if hostname: hostname = hostname.split(".")[0] pass if full: # full path to the pidict file is requested if hidden: # new-style dot-prefixed pidict files # are in the system-dependant temporary diretory dir = getTmpDir() else: # old-style non-dot-prefixed pidict files # are in the user's home directory dir = os.getenv("HOME") pass pass return generateFileName(dir, suffix="pidict", hidden=hidden, with_username=True, with_hostname=hostname or True, with_port=port, with_app=appname.upper()) def appliCleanOmniOrbConfig(port): """ Remove omniorb config files related to the port in SALOME application: - ${HOME}/${APPLI}/USERS/.omniORB_${USER}_${HOSTNAME}_${NSPORT}.cfg - ${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg the last is removed only if the link points to the first file. """ from salome_utils import generateFileName, getUserName home = os.getenv("HOME") appli = os.getenv("APPLI") if appli is None: #Run outside application context pass else: dir = os.path.join(home, appli,"USERS") omniorb_config = generateFileName(dir, prefix="omniORB", extension="cfg", hidden=True, with_username=True, with_hostname=True, with_port=port) last_running_config = generateFileName(dir, prefix="omniORB", with_username=True, suffix="last", extension="cfg", hidden=True) if os.access(last_running_config,os.F_OK): pointedPath = os.readlink(last_running_config) if pointedPath[0] != '/': pointedPath=os.path.join(os.path.dirname(last_running_config), pointedPath) if pointedPath == omniorb_config: os.unlink(last_running_config) pass pass if os.access(omniorb_config,os.F_OK): os.remove(omniorb_config) pass if os.path.lexists(last_running_config):return #try to relink last.cfg to an existing config file if any files = glob.glob(os.path.join(os.environ["HOME"],Utils_Identity.getapplipath(), "USERS",".omniORB_"+getUserName()+"_*.cfg")) current_config=None current=0 for f in files: stat=os.stat(f) if stat.st_atime > current: current=stat.st_atime current_config=f if current_config: os.symlink(os.path.normpath(current_config), last_running_config) pass pass ########## kills all salome processes with the given port ########## def shutdownMyPort(port): """ Shutdown SALOME session running on the specified port. Parameters: - port - port number """ if not port: return from salome_utils import generateFileName # set OMNIORB_CONFIG variable to the proper file home = os.getenv("HOME") appli = os.getenv("APPLI") kwargs = {} if appli is not None: home = os.path.join(home, appli,"USERS") kwargs["with_username"]=True pass omniorb_config = generateFileName(home, prefix="omniORB", extension="cfg", hidden=True, with_hostname=True, with_port=port, **kwargs) os.environ['OMNIORB_CONFIG'] = omniorb_config # give the chance to the servers to shutdown properly try: import time import salome_kernel orb, lcc, naming_service, cm = salome_kernel.salome_kernel_init() # shutdown all lcc.shutdownServers() # give some time to shutdown to complete time.sleep(1) # shutdown omniNames and notifd salome_kernel.LifeCycleCORBA.killOmniNames() except: pass pass def killMyPort(port): """ Kill SALOME session running on the specified port. Parameters: - port - port number """ from salome_utils import getShortHostName, getHostName # try to shutdown session nomally import threading, time threading.Thread(target=shutdownMyPort, args=(port,)).start() time.sleep(3) # wait a little, then kill processes (should be done if shutdown procedure hangs up) # new-style dot-prefixed pidict file filedict = getPiDict(port, hidden=True) # provide compatibility with old-style pidict file (not dot-prefixed) if not os.path.exists(filedict): filedict = getPiDict(port, hidden=False) # provide compatibility with old-style pidict file (short hostname) if not os.path.exists(filedict): filedict = getPiDict(port, hidden=True, hostname=getShortHostName()) # provide compatibility with old-style pidict file (not dot-prefixed, short hostname) if not os.path.exists(filedict): filedict = getPiDict(port, hidden=False, hostname=getShortHostName()) # provide compatibility with old-style pidict file (long hostname) if not os.path.exists(filedict): filedict = getPiDict(port, hidden=True, hostname=getHostName()) # provide compatibility with old-style pidict file (not dot-prefixed, long hostname) if not os.path.exists(filedict): filedict = getPiDict(port, hidden=False, hostname=getHostName()) # try: fpid = open(filedict, 'r') # from salome_utils import generateFileName if sys.platform == "win32": username = os.getenv( "USERNAME" ) else: username = os.getenv('USER') path = os.path.join('/tmp/logs', username) fpidomniNames = generateFileName(path, prefix="", suffix="Pid_omniNames", extension="log", with_port=port) if not sys.platform == 'win32': cmd = 'pid=`ps -eo pid,command | egrep "[0-9] omniNames -start %s"` ; echo $pid > %s' % ( str(port), fpidomniNames ) a = os.system(cmd) pass try: fpidomniNamesFile = open(fpidomniNames) lines = fpidomniNamesFile.readlines() fpidomniNamesFile.close() os.remove(fpidomniNames) for l in lines: try: pidfield = l.split()[0] # pid should be at the first position if sys.platform == "win32": import win32pm if verbose(): print 'stop process '+pidfield+' : omniNames' win32pm.killpid(int(pidfield),0) else: if verbose(): print 'stop process '+pidfield+' : omniNames' os.kill(int(pidfield),signal.SIGKILL) pass pass except: pass pass pass except: pass # try: process_ids=pickle.load(fpid) fpid.close() for process_id in process_ids: for pid, cmd in process_id.items(): if verbose(): print "stop process %s : %s"% (pid, cmd[0]) try: if sys.platform == "win32": import win32pm win32pm.killpid(int(pid),0) else: os.kill(int(pid),signal.SIGKILL) pass pass except: if verbose(): print " ------------------ process %s : %s not found"% (pid, cmd[0]) pass pass # for pid, cmd ... pass # for process_id ... pass # try... except: pass # os.remove(filedict) cmd='ps -eo pid,command | egrep "[0-9] omniNames -start '+str(port)+'" | sed -e "s%[^0-9]*\([0-9]*\) .*%\\1%g"' pid = commands.getoutput(cmd) a = "" while pid and len(a.split()) < 2: a = commands.getoutput("kill -9 " + pid) pid = commands.getoutput(cmd) #print pid pass pass except: print "Cannot find or open SALOME PIDs file for port", port pass # appliCleanOmniOrbConfig(port) pass def killNotifdAndClean(port): """ Kill notifd daemon and clean application running on the specified port. Parameters: - port - port number """ try: filedict=getPiDict(port) f=open(filedict, 'r') pids=pickle.load(f) for d in pids: for pid,process in d.items(): if 'notifd' in process: cmd='kill -9 %d'% pid os.system(cmd) os.remove(filedict) except: #import traceback #traceback.print_exc() pass appliCleanOmniOrbConfig(port) def killMyPortSpy(pid, port): dt = 1.0 while 1: if sys.platform == "win32": from win32pm import killpid if killpid(int(pid), 0) != 0: return else: from os import kill try: kill(int(pid), 0) except OSError, e: if e.errno != 3: return break pass from time import sleep sleep(dt) pass filedict = getPiDict(port, hidden=True) if not os.path.exists(filedict): return try: import omniORB orb = omniORB.CORBA.ORB_init(sys.argv, omniORB.CORBA.ORB_ID) import SALOME_NamingServicePy ns = SALOME_NamingServicePy.SALOME_NamingServicePy_i(orb) import SALOME session = ns.Resolve("/Kernel/Session") assert session except: return try: status = session.GetStatSession() except: # -- session is in naming service but has crash status = None pass if status: if not status.activeGUI: return pass killMyPort(port) return if __name__ == "__main__": if sys.argv[1] == "--spy": pid = sys.argv[2] port = sys.argv[3] killMyPortSpy(pid, port) sys.exit(0) pass for port in sys.argv[1:]: killMyPort(port) pass pass salome-kernel-6.5.0/bin/launchConfigureParser.py000077500000000000000000001274151177004724000217120ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os, glob, string, sys, re import xml.sax import optparse import types from salome_utils import verbose, setVerbose, getPortNumber, getHomeDir # names of tags in XML configuration file doc_tag = "document" sec_tag = "section" par_tag = "parameter" import_tag = "import" # names of attributes in XML configuration file nam_att = "name" val_att = "value" # certain values in XML configuration file ("launch" section) lanch_nam = "launch" help_nam = "help" gui_nam = "gui" splash_nam = "splash" logger_nam = "logger" xterm_nam = "xterm" file_nam = "file" portkill_nam = "portkill" killall_nam = "killall" modules_nam = "modules" embedded_nam = "embedded" standalone_nam = "standalone" key_nam = "key" terminal_nam = "terminal" interp_nam = "interp" except_nam = "noexcepthandler" terminal_nam = "terminal" pinter_nam = "pinter" batch_nam = "batch" test_nam = "test" play_nam = "play" gdb_session_nam = "gdb_session" ddd_session_nam = "ddd_session" valgrind_session_nam = "valgrind_session" shutdown_servers_nam = "shutdown_servers" foreground_nam = "foreground" wake_up_session_nam = "wake_up_session" # values in XML configuration file giving specific module parameters ( section) # which are stored in opts with key _ (eg SMESH_plugins) plugins_nam = "plugins" # values passed as arguments, NOT read from XML config file, but set from within this script appname_nam = "appname" port_nam = "port" salomecfgname = "salome" salomeappname = "SalomeApp" script_nam = "pyscript" # possible choices for the "embedded" and "standalone" parameters embedded_choices = [ "registry", "study", "moduleCatalog", "cppContainer", "SalomeAppEngine" ] standalone_choices = [ "registry", "study", "moduleCatalog", "cppContainer", "pyContainer"] # values of boolean type (must be '0' or '1'). # xml_parser.boolValue() is used for correct setting boolKeys = ( gui_nam, splash_nam, logger_nam, file_nam, xterm_nam, portkill_nam, killall_nam, except_nam, pinter_nam, shutdown_servers_nam ) intKeys = ( interp_nam, ) # values of list type listKeys = ( embedded_nam, key_nam, modules_nam, standalone_nam, plugins_nam ) ### # Get the application version # Uses GUI_ROOT_DIR (or KERNEL_ROOT_DIR in batch mode) +/bin/salome/VERSION file ### def version(): try: filename = None root_dir = os.environ.get( 'KERNEL_ROOT_DIR', '' ) # KERNEL_ROOT_DIR or "" if not found if root_dir and os.path.exists( root_dir + "/bin/salome/VERSION" ): filename = root_dir + "/bin/salome/VERSION" root_dir = os.environ.get( 'GUI_ROOT_DIR', '' ) # GUI_ROOT_DIR "" if not found if root_dir and os.path.exists( root_dir + "/bin/salome/VERSION" ): filename = root_dir + "/bin/salome/VERSION" if filename: str = open( filename, "r" ).readline() # str = "THIS IS SALOME - SALOMEGUI VERSION: 3.0.0" match = re.search( r':\s+([a-zA-Z0-9.]+)\s*$', str ) if match : return match.group( 1 ) except: pass return '' ### # Calculate and return configuration file unique ID # For example: for SALOME version 3.1.0a1 the id is 300999701 ### def version_id(fname): major = minor = release = dev1 = dev2 = 0 vers = fname.split(".") if len(vers) > 0: major = int(vers[0]) if len(vers) > 1: minor = int(vers[1]) if len(vers) > 2: mr = re.search(r'^([0-9]+)([A-Za-z]?)([0-9]*)',vers[2]) if mr: release = int(mr.group(1)) if mr.group(2).strip(): dev1 = ord(mr.group(2).strip()) if mr.group(3).strip(): dev2 = int(mr.group(3).strip()) pass pass dev = dev1 * 100 + dev2 ver = major ver = ver * 100 + minor ver = ver * 100 + release ver = ver * 10000 if dev > 0: ver = ver - 10000 + dev return ver ### # Get default user configuration file name # For SALOME, it is: # - on Linux: ~/.config/salome/.SalomeApprc.[version] # - on Windows: ~/SalomeApp.xml.[version] # where [version] is a version number ### def defaultUserFile(appname=salomeappname, cfgname=salomecfgname): v = version() if v: v = ".%s" % v if sys.platform == "win32": filename = os.path.join(getHomeDir(), "%s.xml%s" % (appname, v)) else: if cfgname: filename = os.path.join(getHomeDir(), ".config", cfgname, ".%src%s" % (appname, v)) pass else: filename = os.path.join(getHomeDir(), ".%src%s" % (appname, v)) pass pass return filename ### # Get user configuration file name ### def userFile(appname, cfgname): # get app version v = version() if not v: return None # unknown version # get default user file name filename = defaultUserFile(appname, cfgname) if not filename: return None # default user file name is bad # check that default user file exists if os.path.exists(filename): return filename # user file is found # otherwise try to detect any appropriate user file # ... calculate default version id id0 = version_id(v) if not id0: return None # bad version id -> can't detect appropriate file # ... get all existing user preferences files if sys.platform == "win32": files = glob.glob(os.path.join(getHomeDir(), "%s.xml.*" % appname)) else: files = [] if cfgname: files += glob.glob(os.path.join(getHomeDir(), ".config", cfgname, ".%src.*" % appname)) files += glob.glob(os.path.join(getHomeDir(), ".%src.*" % appname)) pass # ... loop through all files and find most appopriate file (with closest id) appr_id = -1 appr_file = "" for f in files: if sys.platform == "win32": match = re.search( r'%s\.xml\.([a-zA-Z0-9.]+)$'%appname, f ) else: match = re.search( r'\.%src\.([a-zA-Z0-9.]+)$'%appname, f ) if match: ver = version_id(match.group(1)) if not ver: continue # bad version id -> skip file if appr_id < 0 or abs(appr_id-id0) > abs(ver-id0): appr_id = ver appr_file = f pass pass pass return appr_file # -- def process_containers_params( standalone, embedded ): # 1. filter inappropriate containers names if standalone is not None: standalone = filter( lambda x: x in standalone_choices, standalone ) if embedded is not None: embedded = filter( lambda x: x in embedded_choices, embedded ) # 2. remove containers appearing in 'standalone' parameter from the 'embedded' # parameter --> i.e. 'standalone' parameter has higher priority if standalone is not None and embedded is not None: embedded = filter( lambda x: x not in standalone, embedded ) # 3. return corrected parameters values return standalone, embedded # ----------------------------------------------------------------------------- ### # XML reader for launch configuration file usage ### section_to_skip = "" class xml_parser: def __init__(self, fileName, _opts, _importHistory=[] ): if verbose(): print "Configure parser: processing %s ..." % fileName self.fileName = os.path.abspath(fileName) self.importHistory = _importHistory self.importHistory.append(self.fileName) self.space = [] self.opts = _opts self.section = section_to_skip parser = xml.sax.make_parser() parser.setContentHandler(self) parser.parse(fileName) standalone, embedded = process_containers_params( self.opts.get( standalone_nam ), self.opts.get( embedded_nam ) ) if standalone is not None: self.opts[ standalone_nam ] = standalone if embedded is not None: self.opts[ embedded_nam ] = embedded pass def boolValue( self, str ): strloc = str if isinstance(strloc, types.UnicodeType): strloc = strloc.encode().strip() if isinstance(strloc, types.StringType): strlow = strloc.lower() if strlow in ("1", "yes", "y", "on", "true", "ok"): return True elif strlow in ("0", "no", "n", "off", "false", "cancel"): return False return strloc pass def intValue( self, str ): strloc = str if isinstance(strloc, types.UnicodeType): strloc = strloc.encode().strip() if isinstance(strloc, types.StringType): strlow = strloc.lower() if strlow in ("1", "yes", "y", "on", "true", "ok"): return 1 elif strlow in ("0", "no", "n", "off", "false", "cancel"): return 0 else: return string.atoi(strloc) return strloc pass def startElement(self, name, attrs): self.space.append(name) self.current = None # if we are importing file if self.space == [doc_tag, import_tag] and nam_att in attrs.getNames(): self.importFile( attrs.getValue(nam_att) ) # if we are analyzing "section" element and its "name" attribute is # either "launch" or module name -- set section_name if self.space == [doc_tag, sec_tag] and nam_att in attrs.getNames(): section_name = attrs.getValue( nam_att ) if section_name == lanch_nam: self.section = section_name # launch section elif self.opts.has_key( modules_nam ) and \ section_name in self.opts[ modules_nam ]: self.section = section_name # section else: self.section = section_to_skip # any other section pass # if we are analyzing "parameter" elements - children of either # "section launch" or "section """ element, then store them # in self.opts assiciative array (key = [_ + ] value of "name" attribute) elif self.section != section_to_skip and \ self.space == [doc_tag, sec_tag, par_tag] and \ nam_att in attrs.getNames() and \ val_att in attrs.getNames(): nam = attrs.getValue( nam_att ) val = attrs.getValue( val_att ) if self.section == lanch_nam: # key for launch section key = nam else: # key for section key = self.section + "_" + nam if nam in boolKeys: self.opts[key] = self.boolValue( val ) # assign boolean value: 0 or 1 elif nam in intKeys: self.opts[key] = self.intValue( val ) # assign integer value elif nam in listKeys: self.opts[key] = filter( lambda a: a.strip(), re.split( "[:;,]", val ) ) # assign list value: [] else: self.opts[key] = val pass pass def endElement(self, name): p = self.space.pop() self.current = None if self.section != section_to_skip and name == sec_tag: self.section = section_to_skip pass def characters(self, content): pass def processingInstruction(self, target, data): pass def setDocumentLocator(self, locator): pass def startDocument(self): self.read = None pass def endDocument(self): self.read = None pass def importFile(self, fname): # get absolute name if os.path.isabs (fname) : absfname = fname else: absfname = os.path.join(os.path.dirname(self.fileName), fname) # check existing and registry file for ext in ["", ".xml", ".XML"] : if os.path.exists(absfname + ext) : absfname += ext if absfname in self.importHistory : if verbose(): print "Configure parser: Warning : file %s is already imported" % absfname return # already imported break pass else: if verbose(): print "Configure parser: Error : file %s does not exist" % absfname return # importing file try: # copy current options import copy opts = copy.deepcopy(self.opts) # import file imp = xml_parser(absfname, opts, self.importHistory) # merge results for key in imp.opts.keys(): if not self.opts.has_key(key): self.opts[key] = imp.opts[key] pass pass pass except: if verbose(): print "Configure parser: Error : can not read configuration file %s" % absfname pass # ----------------------------------------------------------------------------- booleans = { '1': True , 'yes': True , 'y': True , 'on' : True , 'true' : True , 'ok' : True, '0': False, 'no' : False, 'n': False, 'off': False, 'false': False, 'cancel' : False } boolean_choices = booleans.keys() def check_embedded(option, opt, value, parser): from optparse import OptionValueError assert value is not None if parser.values.embedded: embedded = filter( lambda a: a.strip(), re.split( "[:;,]", parser.values.embedded ) ) else: embedded = [] if parser.values.standalone: standalone = filter( lambda a: a.strip(), re.split( "[:;,]", parser.values.standalone ) ) else: standalone = [] vals = filter( lambda a: a.strip(), re.split( "[:;,]", value ) ) for v in vals: if v not in embedded_choices: raise OptionValueError( "option %s: invalid choice: %r (choose from %s)" % ( opt, v, ", ".join( map( repr, embedded_choices ) ) ) ) if v not in embedded: embedded.append( v ) if v in standalone: del standalone[ standalone.index( v ) ] pass parser.values.embedded = ",".join( embedded ) parser.values.standalone = ",".join( standalone ) pass def check_standalone(option, opt, value, parser): from optparse import OptionValueError assert value is not None if parser.values.embedded: embedded = filter( lambda a: a.strip(), re.split( "[:;,]", parser.values.embedded ) ) else: embedded = [] if parser.values.standalone: standalone = filter( lambda a: a.strip(), re.split( "[:;,]", parser.values.standalone ) ) else: standalone = [] vals = filter( lambda a: a.strip(), re.split( "[:;,]", value ) ) for v in vals: if v not in standalone_choices: raise OptionValueError( "option %s: invalid choice: %r (choose from %s)" % ( opt, v, ", ".join( map( repr, standalone_choices ) ) ) ) if v not in standalone: standalone.append( v ) if v in embedded: del embedded[ embedded.index( v ) ] pass parser.values.embedded = ",".join( embedded ) parser.values.standalone = ",".join( standalone ) pass def store_boolean (option, opt, value, parser, *args): if isinstance(value, types.StringType): try: value_conv = booleans[value.strip().lower()] for attribute in args: setattr(parser.values, attribute, value_conv) except KeyError: raise optparse.OptionValueError( "option %s: invalid boolean value: %s (choose from %s)" % (opt, value, boolean_choices)) else: for attribute in args: setattr(parser.values, attribute, value) def CreateOptionParser (theAdditionalOptions=[]): # GUI/Terminal. Default: GUI help_str = "Launch without GUI (in the terminal mode)." o_t = optparse.Option("-t", "--terminal", action="store_false", dest="gui", help=help_str) help_str = "Launch in Batch Mode. (Without GUI on batch machine)" o_b = optparse.Option("-b", "--batch", action="store_true", dest="batch", help=help_str) help_str = "Launch in GUI mode [default]." o_g = optparse.Option("-g", "--gui", action="store_true", dest="gui", help=help_str) # Show Desktop (inly in GUI mode). Default: True help_str = "1 to activate GUI desktop [default], " help_str += "0 to not activate GUI desktop (Session_Server starts, but GUI is not shown). " help_str += "Ignored in the terminal mode." o_d = optparse.Option("-d", "--show-desktop", metavar="<1/0>", #type="choice", choices=boolean_choices, type="string", action="callback", callback=store_boolean, callback_args=('desktop',), dest="desktop", help=help_str) help_str = "Do not activate GUI desktop (Session_Server starts, but GUI is not shown). " help_str += "The same as --show-desktop=0." o_o = optparse.Option("-o", "--hide-desktop", action="store_false", dest="desktop", help=help_str) # Use logger or log-file. Default: nothing. help_str = "Redirect messages to the CORBA collector." #o4 = optparse.Option("-l", "--logger", action="store_true", dest="logger", help=help_str) o_l = optparse.Option("-l", "--logger", action="store_const", const="CORBA", dest="log_file", help=help_str) help_str = "Redirect messages to the " o_f = optparse.Option("-f", "--log-file", metavar="", type="string", action="store", dest="log_file", help=help_str) # Execute python scripts. Default: None. help_str = "Python script(s) to be imported. Python scripts are imported " help_str += "in the order of their appearance. In GUI mode python scripts " help_str += "are imported in the embedded python interpreter of current study, " help_str += "otherwise in an external python interpreter. " help_str += "Note: this option is obsolete. Instead you can pass Python script(s) " help_str += "directly as positional parameter." o_u = optparse.Option("-u", "--execute", metavar="", type="string", action="append", dest="py_scripts", help=help_str) # Configuration XML file. Default: see defaultUserFile() function help_str = "Parse application settings from the " help_str += "instead of default %s" % defaultUserFile() o_r = optparse.Option("-r", "--resources", metavar="", type="string", action="store", dest="resources", help=help_str) # Use own xterm for each server. Default: False. help_str = "Launch each SALOME server in own xterm console" o_x = optparse.Option("-x", "--xterm", action="store_true", dest="xterm", help=help_str) # Modules. Default: Like in configuration files. help_str = "SALOME modules list (where , are the names " help_str += "of SALOME modules which should be available in the SALOME session)" o_m = optparse.Option("-m", "--modules", metavar="", type="string", action="append", dest="modules", help=help_str) # Embedded servers. Default: Like in configuration files. help_str = "CORBA servers to be launched in the Session embedded mode. " help_str += "Valid values for : %s " % ", ".join( embedded_choices ) help_str += "[by default the value from the configuration files is used]" o_e = optparse.Option("-e", "--embedded", metavar="", type="string", action="callback", dest="embedded", callback=check_embedded, help=help_str) # Standalone servers. Default: Like in configuration files. help_str = "CORBA servers to be launched in the standalone mode (as separate processes). " help_str += "Valid values for : %s " % ", ".join( standalone_choices ) help_str += "[by default the value from the configuration files is used]" o_s = optparse.Option("-s", "--standalone", metavar="", type="string", action="callback", dest="standalone", callback=check_standalone, help=help_str) # Kill with port. Default: False. help_str = "Kill SALOME with the current port" o_p = optparse.Option("-p", "--portkill", action="store_true", dest="portkill", help=help_str) # Kill all. Default: False. help_str = "Kill all running SALOME sessions" o_k = optparse.Option("-k", "--killall", action="store_true", dest="killall", help=help_str) # Additional python interpreters. Default: 0. help_str = "The number of additional external python interpreters to run. " help_str += "Each additional python interpreter is run in separate " help_str += "xterm session with properly set SALOME environment" o_i = optparse.Option("-i", "--interp", metavar="", type="int", action="store", dest="interp", help=help_str) # Splash. Default: True. help_str = "1 to display splash screen [default], " help_str += "0 to disable splash screen. " help_str += "This option is ignored in the terminal mode. " help_str += "It is also ignored if --show-desktop=0 option is used." o_z = optparse.Option("-z", "--splash", metavar="<1/0>", #type="choice", choices=boolean_choices, type="string", action="callback", callback=store_boolean, callback_args=('splash',), dest="splash", help=help_str) # Catch exceptions. Default: True. help_str = "1 (yes,true,on,ok) to enable centralized exception handling [default], " help_str += "0 (no,false,off,cancel) to disable centralized exception handling." o_c = optparse.Option("-c", "--catch-exceptions", metavar="<1/0>", #type="choice", choices=boolean_choices, type="string", action="callback", callback=store_boolean, callback_args=('catch_exceptions',), dest="catch_exceptions", help=help_str) # Print free port and exit help_str = "Print free port and exit" o_a = optparse.Option("--print-port", action="store_true", dest="print_port", default=False, help=help_str) # Do not relink ${HOME}/.omniORB_last.cfg help_str = "Do not save current configuration ${HOME}/.omniORB_last.cfg" o_n = optparse.Option("--nosave-config", action="store_false", dest="save_config", default=True, help=help_str) # Launch with interactive python console. Default: False. help_str = "Launch with interactive python console." o_pi = optparse.Option("--pinter", action="store_true", dest="pinter", help=help_str) # Print Naming service port into a user file. Default: False. help_str = "Print Naming Service Port into a user file." o_nspl = optparse.Option("--ns-port-log", metavar="", type="string", action="store", dest="ns_port_log_file", help=help_str) # Write/read test script file with help of TestRecorder. Default: False. help_str = "Write/read test script file with help of TestRecorder." o_test = optparse.Option("--test", metavar="", type="string", action="store", dest="test_script_file", help=help_str) # Reproducing test script with help of TestRecorder. Default: False. help_str = "Reproducing test script with help of TestRecorder." o_play = optparse.Option("--play", metavar="", type="string", action="store", dest="play_script_file", help=help_str) # gdb session help_str = "Launch session with gdb" o_gdb = optparse.Option("--gdb-session", action="store_true", dest="gdb_session", default=False, help=help_str) # ddd session help_str = "Launch session with ddd" o_ddd = optparse.Option("--ddd-session", action="store_true", dest="ddd_session", default=False, help=help_str) # valgrind session help_str = "Launch session with valgrind $VALGRIND_OPTIONS" o_valgrind = optparse.Option("--valgrind-session", action="store_true", dest="valgrind_session", default=False, help=help_str) # shutdown-servers. Default: False. help_str = "1 to shutdown standalone servers when leaving python interpreter, " help_str += "0 to keep the standalone servers as daemon [default]. " help_str += "This option is only useful in batchmode " help_str += "(terminal mode or without showing desktop)." o_shutdown = optparse.Option("--shutdown-servers", metavar="<1/0>", #type="choice", choices=boolean_choices, type="string", action="callback", callback=store_boolean, callback_args=('shutdown_servers',), dest="shutdown_servers", help=help_str) # foreground. Default: True. help_str = "0 and runSalome exits after have launched the gui, " help_str += "1 to launch runSalome in foreground mode [default]." o_foreground = optparse.Option("--foreground", metavar="<1/0>", #type="choice", choices=boolean_choices, type="string", action="callback", callback=store_boolean, callback_args=('foreground',), dest="foreground", help=help_str) # wake up session help_str = "Wake up a previously closed session. " help_str += "The session object is found in the naming service pointed by the variable OMNIORB_CONFIG. " help_str += "If this variable is not setted, the last configuration is taken. " o_wake_up = optparse.Option("--wake-up-session", action="store_true", dest="wake_up_session", default=False, help=help_str) # server launch mode help_str = "Mode used to launch server processes (daemon or fork)." o_slm = optparse.Option("--server-launch-mode", metavar="", type="choice", choices=["daemon","fork"], action="store", dest="server_launch_mode", help=help_str) # All options opt_list = [o_t,o_g, # GUI/Terminal o_d,o_o, # Desktop o_b, # Batch o_l,o_f, # Use logger or log-file o_u, # Execute python scripts o_r, # Configuration XML file o_x, # xterm o_m, # Modules o_e, # Embedded servers o_s, # Standalone servers o_p, # Kill with port o_k, # Kill all o_i, # Additional python interpreters o_z, # Splash o_c, # Catch exceptions o_a, # Print free port and exit o_n, # --nosave-config o_pi, # Interactive python console o_nspl, o_test, # Write/read test script file with help of TestRecorder o_play, # Reproducing test script with help of TestRecorder o_gdb, o_ddd, o_valgrind, o_shutdown, o_foreground, o_wake_up, o_slm, # Server launch mode ] #std_options = ["gui", "desktop", "log_file", "py_scripts", "resources", # "xterm", "modules", "embedded", "standalone", # "portkill", "killall", "interp", "splash", # "catch_exceptions", "print_port", "save_config", "ns_port_log_file"] opt_list += theAdditionalOptions a_usage = "%prog [options] [STUDY_FILE] [PYTHON_FILE [PYTHON_FILE ...]]" version_str = "Salome %s" % version() pars = optparse.OptionParser(usage=a_usage, version=version_str, option_list=opt_list) return pars # ----------------------------------------------------------------------------- ### # Get the environment ### # this attribute is obsolete args = {} #def get_env(): #args = [] def get_env(theAdditionalOptions=[], appname=salomeappname, cfgname=salomecfgname): ### # Collect launch configuration files: # - The environment variable "Config" (SalomeAppConfig) which can # define a list of directories (separated by ':' or ';' symbol) is checked # - If the environment variable "Config" is not set, only # ${GUI_ROOT_DIR}/share/salome/resources/gui is inspected # - ${GUI_ROOT_DIR}/share/salome/resources/gui directory is always inspected # so it is not necessary to put it in the "Config" variable # - The directories which are inspected are checked for files ".xml" # (SalomeApp.xml) which define SALOME configuration # - These directories are analyzed beginning from the last one in the list, # so the first directory listed in "Config" environment variable # has higher priority: it means that if some configuration options # is found in the next analyzed cofiguration file - it will be replaced # - The last configuration file which is parsed is user configuration file # situated in the home directory (if it exists): # * ~/.config/salome/.rc[.]" for Linux (e.g. ~/.config/salome/.SalomeApprc.6.4.0) # * ~/.xml[.] for Windows (e.g. ~/SalomeApp.xml.6.4.0) # - Command line options have the highest priority and replace options # specified in configuration file(s) ### global args config_var = appname+'Config' separator = ":" if os.sys.platform == 'win32': separator = ";" # check KERNEL_ROOT_DIR try: kernel_root_dir=os.environ["KERNEL_ROOT_DIR"] except: print """ For each SALOME module, the environment variable _ROOT_DIR must be set. KERNEL_ROOT_DIR is mandatory. """ sys.exit(1) pass ############################ # parse command line options pars = CreateOptionParser(theAdditionalOptions) (cmd_opts, cmd_args) = pars.parse_args(sys.argv[1:]) ############################ # Process --print-port option if cmd_opts.print_port: from runSalome import searchFreePort searchFreePort({}) print "port:%s"%(os.environ['NSPORT']) sys.exit(0) pass # set resources variable SalomeAppConfig if it is not set yet dirs = [] if os.getenv(config_var): if sys.platform == 'win32': dirs += re.split(';', os.getenv(config_var)) else: dirs += re.split('[;|:]', os.getenv(config_var)) gui_available = True if os.getenv("GUI_ROOT_DIR") and os.path.isdir( os.getenv("GUI_ROOT_DIR") + "/share/salome/resources/gui" ): dirs += [os.getenv("GUI_ROOT_DIR") + "/share/salome/resources/gui"] pass else: gui_available = False if os.getenv("KERNEL_ROOT_DIR") and os.path.isdir( os.getenv("KERNEL_ROOT_DIR") + "/bin/salome/appliskel" ): dirs += [os.getenv("KERNEL_ROOT_DIR") + "/bin/salome/appliskel"] pass os.environ[config_var] = separator.join(dirs) dirs.reverse() # reverse order, like in "path" variable - FILO-style processing try: dirs.remove('') # to remove empty dirs if the variable terminate by ":" or if there are "::" inside except: pass _opts = {} # associative array of options to be filled # parse SalomeApp.xml files in directories specified by SalomeAppConfig env variable for dir in dirs: filename = os.path.join(dir, appname+'.xml') if not os.path.exists(filename): if verbose(): print "Configure parser: Warning : can not find configuration file %s" % filename else: try: p = xml_parser(filename, _opts) _opts = p.opts except: if verbose(): print "Configure parser: Error : can not read configuration file %s" % filename pass # parse user configuration file # It can be set via --resources= command line option # or is given from default location (see defaultUserFile() function) # If user file for the current version is not found the nearest to it is used user_config = cmd_opts.resources if not user_config: user_config = userFile(appname, cfgname) if verbose(): print "Configure parser: user configuration file is", user_config if not user_config or not os.path.exists(user_config): if verbose(): print "Configure parser: Warning : can not find user configuration file" else: try: p = xml_parser(user_config, _opts) _opts = p.opts except: if verbose(): print 'Configure parser: Error : can not read user configuration file' user_config = "" args = _opts args['user_config'] = user_config #print "User Configuration file: ", args['user_config'] # set default values for options which are NOT set in config files for aKey in listKeys: if not args.has_key( aKey ): args[aKey]=[] for aKey in boolKeys: if not args.has_key( aKey ): args[aKey]=0 if args[file_nam]: afile=args[file_nam] args[file_nam]=[afile] args[appname_nam] = appname # get the port number my_port = getPortNumber() args[port_nam] = my_port #################################################### # apply command-line options to the arguments # each option given in command line overrides the option from xml config file # # Options: gui, desktop, log_file, py_scripts, resources, # xterm, modules, embedded, standalone, # portkill, killall, interp, splash, # catch_exceptions, pinter # GUI/Terminal, Desktop, Splash, STUDY_HDF args["session_gui"] = False args[batch_nam] = False args["study_hdf"] = None if cmd_opts.gui is not None: args[gui_nam] = cmd_opts.gui if cmd_opts.batch is not None: args[batch_nam] = True if not gui_available: args[gui_nam] = False if args[gui_nam]: args["session_gui"] = True if cmd_opts.desktop is not None: args["session_gui"] = cmd_opts.desktop args[splash_nam] = cmd_opts.desktop if args["session_gui"]: if cmd_opts.splash is not None: args[splash_nam] = cmd_opts.splash else: args["session_gui"] = False args[splash_nam] = False # Logger/Log file if cmd_opts.log_file is not None: if cmd_opts.log_file == 'CORBA': args[logger_nam] = True else: args[file_nam] = [cmd_opts.log_file] # Naming Service port log file if cmd_opts.ns_port_log_file is not None: args["ns_port_log_file"] = cmd_opts.ns_port_log_file # Python scripts args[script_nam] = [] if cmd_opts.py_scripts is not None: listlist = cmd_opts.py_scripts for listi in listlist: if os.sys.platform == 'win32': args[script_nam] += re.split( "[;,]", listi) else: args[script_nam] += re.split( "[:;,]", listi) for arg in cmd_args: if arg[-3:] == ".py": args[script_nam].append(arg) elif not args["study_hdf"]: args["study_hdf"] = arg pass pass # xterm if cmd_opts.xterm is not None: args[xterm_nam] = cmd_opts.xterm # Modules if cmd_opts.modules is not None: args[modules_nam] = [] listlist = cmd_opts.modules for listi in listlist: args[modules_nam] += re.split( "[:;,]", listi) else: # if --modules (-m) command line option is not given # try SALOME_MODULES environment variable if os.getenv( "SALOME_MODULES" ): args[modules_nam] = re.split( "[:;,]", os.getenv( "SALOME_MODULES" ) ) pass # Embedded if cmd_opts.embedded is not None: args[embedded_nam] = filter( lambda a: a.strip(), re.split( "[:;,]", cmd_opts.embedded ) ) # Standalone if cmd_opts.standalone is not None: args[standalone_nam] = filter( lambda a: a.strip(), re.split( "[:;,]", cmd_opts.standalone ) ) # Normalize the '--standalone' and '--embedded' parameters standalone, embedded = process_containers_params( args.get( standalone_nam ), args.get( embedded_nam ) ) if standalone is not None: args[ standalone_nam ] = standalone if embedded is not None: args[ embedded_nam ] = embedded # Kill if cmd_opts.portkill is not None: args[portkill_nam] = cmd_opts.portkill if cmd_opts.killall is not None: args[killall_nam] = cmd_opts.killall # Interpreter if cmd_opts.interp is not None: args[interp_nam] = cmd_opts.interp # Exceptions if cmd_opts.catch_exceptions is not None: args[except_nam] = not cmd_opts.catch_exceptions # Relink config file if cmd_opts.save_config is not None: args['save_config'] = cmd_opts.save_config # Interactive python console if cmd_opts.pinter is not None: args[pinter_nam] = cmd_opts.pinter # Gdb session in xterm if cmd_opts.gdb_session is not None: args[gdb_session_nam] = cmd_opts.gdb_session # Ddd session in xterm if cmd_opts.ddd_session is not None: args[ddd_session_nam] = cmd_opts.ddd_session # valgrind session if cmd_opts.valgrind_session is not None: args[valgrind_session_nam] = cmd_opts.valgrind_session # Shutdown servers if cmd_opts.shutdown_servers is None: args[shutdown_servers_nam] = 0 else: args[shutdown_servers_nam] = cmd_opts.shutdown_servers pass # Foreground if cmd_opts.foreground is None: args[foreground_nam] = 1 else: args[foreground_nam] = cmd_opts.foreground pass # wake up session if cmd_opts.wake_up_session is not None: args[wake_up_session_nam] = cmd_opts.wake_up_session #################################################### # Add values to args for add_opt in theAdditionalOptions: cmd = "args[\"%s\"] = cmd_opts.%s"%(add_opt.dest,add_opt.dest) exec(cmd) #################################################### # disable signals handling if args[except_nam] == 1: os.environ["NOT_INTERCEPT_SIGNALS"] = "1" pass # now modify SalomeAppConfig environment variable # to take into account the SALOME modules if os.sys.platform == 'win32': dirs = re.split('[;]', os.environ[config_var] ) else: dirs = re.split('[;|:]', os.environ[config_var] ) for m in args[modules_nam]: if m not in ["KERNEL", "GUI", ""] and os.getenv("%s_ROOT_DIR"%m): d1 = os.getenv("%s_ROOT_DIR"%m) + "/share/salome/resources/" + m.lower() d2 = os.getenv("%s_ROOT_DIR"%m) + "/share/salome/resources" #if os.path.exists( "%s/%s.xml"%(d1, appname) ): if os.path.exists( "%s/%s.xml"%(d1, salomeappname) ): dirs.append( d1 ) #elif os.path.exists( "%s/%s.xml"%(d2, appname) ): elif os.path.exists( "%s/%s.xml"%(d2, salomeappname) ): dirs.append( d2 ) # Test if cmd_opts.test_script_file is not None: args[test_nam] = [] filename = cmd_opts.test_script_file args[test_nam] += re.split( "[:;,]", filename ) # Play if cmd_opts.play_script_file is not None: args[play_nam] = [] filename = cmd_opts.play_script_file args[play_nam] += re.split( "[:;,]", filename ) # Server launch command if cmd_opts.server_launch_mode is not None: args["server_launch_mode"] = cmd_opts.server_launch_mode # return arguments os.environ[config_var] = separator.join(dirs) #print "Args: ", args return args salome-kernel-6.5.0/bin/launchSalome.py000077500000000000000000000067031177004724000200300ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import socket import os import sys import shutil ##################################################################### def findFreePort(startPort, step) : currentPort = startPort; if step < 1: step = 1; serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM); portFound = 0; while (portFound != 1 and currentPort < 65536): try : serversocket.bind((socket.gethostname(), currentPort)); portFound = 1; print str(currentPort) + ": " + "OK"; # serversocket.shutdown(0); # serversocket.close(); except Exception, inst: print str(currentPort) + ": " + str(inst.args); currentPort = currentPort+step; if (portFound != 1) : currentPort = -1; return currentPort; ##################################################################### ## 1. Generate config file for omniORB: # content: # InitRef = NameService=corbaname::[HOST_NAME]:[PORT_NUMBER] freePort = findFreePort(2810, 1); hostName = socket.gethostname(); if (len(sys.argv) > 1) and sys.argv[1] == "-nothing" : print "port:" + str(freePort); sys.exit(0) if freePort < 0 : print print "Can't find a free port to launch omniNames" print "Try to kill the running servers and then launch SALOME again." print sys.exit(0) else : omniCfgFileContent = "InitRef = NameService=corbaname::" + str(hostName) + ":" + str(freePort); omniCfgFilePath = os.environ.get('HOME') + "/" + ".omniORB_" + str(hostName) + "_" + str(freePort) + ".cfg"; omni_file = file(omniCfgFilePath,'w+'); omni_file.write(omniCfgFileContent); omni_file.write("\n"); omni_file.close(); if (len(sys.argv) > 1) and sys.argv[1] == "--save-config" : omniCfgCurrent = os.environ.get('HOME') + "/.omniORB_current.cfg"; if os.name == "posix" : #make a symbolic link symlink(omniCfgFilePath, omniCfgCurrent); else : #copy the file shutil.copy(omniCfgFilePath, omniCfgCurrent); omniCfgFilePath = omniCfgCurrent; ## 2. Set the OMNIORB_CONFIG environment variable os.environ['OMNIORB_CONFIG']=omniCfgFilePath; ## 3. execute the file runSalome.py runSalomePyFilePath = os.environ.get('KERNEL_ROOT_DIR') + "/bin/salome/runSalome.py"; if os.path.isfile(runSalomePyFilePath) : execfile(runSalomePyFilePath); salome-kernel-6.5.0/bin/nameserver.py000077500000000000000000000141571177004724000175660ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os, re, socket #import commands from server import * from Utils_Identity import getShortHostName from launchConfigureParser import verbose # ----------------------------------------------------------------------------- class NamingServer(Server): XTERM="" USER=os.getenv('USER') if USER is None: USER='anonymous' #os.system("mkdir -m 777 -p /tmp/logs") LOGDIR="/tmp/logs/" + USER def initNSArgs(self): if sys.platform == "win32": # temporarily using home directory for Namning Service logs # to be replaced with TEMP later... os.environ["BaseDir"]=os.environ["HOME"] else: os.environ["BaseDir"]="/tmp" try: os.mkdir(os.environ["BaseDir"] + "/logs") os.chmod(os.environ["BaseDir"] + "/logs", 0777) except: #print "Can't create " + os.environ["BaseDir"] + "/logs" pass upath = os.environ["BaseDir"] + "/logs/"; if sys.platform == "win32": upath += os.environ["Username"]; else: upath += os.environ["USER"]; try: os.mkdir(upath) except: #print "Can't create " + upath pass if verbose(): print "Name Service... ", #hname=os.environ["HOST"] #commands.getoutput("hostname") if sys.platform == "win32": hname=getShortHostName(); else: hname = socket.gethostname(); #print "hname=",hname f=open(os.environ["OMNIORB_CONFIG"]) ss=re.findall("NameService=corbaname::" + hname + ":\d+", f.read()) if verbose(): print "ss = ", ss, f.close() sl=ss[0] ll = sl.split(':') aPort = ll[-1] #aPort=(ss.join().split(':'))[2]; #aPort=re.findall("\d+", ss[0])[0] # \begin{E.A.} # put the log files of omniNames in different directory with port reference, # it is cleaner on linux and it is a fix for salome since it is impossible to # remove the log files if the corresponding omniNames has not been killed. # \end{E.A.} upath += "/omniNames_%s"%(aPort) try: os.mkdir(upath) except: #print "Can't create " + upath pass #os.system("touch " + upath + "/dummy") for fname in os.listdir(upath): try: os.remove(upath + "/" + fname) except: pass #os.system("rm -f " + upath + "/omninames* " + upath + "/dummy " + upath + "/*.log") #aSedCommand="s/.*NameService=corbaname::" + hname + ":\([[:digit:]]*\)/\1/" #print "sed command = ", aSedCommand #aPort = commands.getoutput("sed -e\"" + aSedCommand + "\"" + os.environ["OMNIORB_CONFIG"]) #print "port=", aPort if sys.platform == "win32": #print "start omniNames -start " + aPort + " -logdir " + upath self.CMD=['omniNames -start ' , aPort , ' -nohostname ', ' -logdir ' , '\"' + upath + '\"', ' -errlog', '\"' + upath+'/omniNameErrors.log' + '\"'] #os.system("start omniNames -start " + aPort + " -logdir " + upath) else: #self.CMD=['omniNames -start ' , aPort , ' -logdir ' , upath , ' &'] self.CMD=['omniNames','-start' , aPort, '-logdir' , upath, '-errlog', upath+'/omniNameErrors.log'] #os.system("omniNames -start " + aPort + " -logdir " + upath + " &") if verbose(): print "... ok" if verbose(): print "to list contexts and objects bound into the context with the specified name : showNS " def initArgs(self): Server.initArgs(self) if sys.platform == "win32": env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("PATH")] else: env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")] self.CMD=['xterm', '-e']+ env_ld_library_path + ['python'] self.initNSArgs() # In LifeCycleCORBA, FactoryServer is started with rsh on the requested # computer if this Container does not exist. Default is localhost. # Others Containers are started with start_impl method of FactoryServer Container. # For using rsh it is necessary to have in the ${HOME} directory a .rhosts file # Warning : on RedHat the file /etc/hosts contains by default a line like : # 127.0.0.1 bordolex bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # (bordolex is the station name). omniNames on bordolex will be accessible from other # computers only if the computer name is removed on that line like : # 127.0.0.1 bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # To start dynamically Containers on several computers you need to # put in the ${OMNIORB_CONFIG} file a computer name instead of "localhost" # example : ORBInitRef NameService=corbaname::dm2s0017 # If you need to use several omniNames running on the same computer, you have to : #1. put in your ${OMNIORB_CONFIG} file a computer name and port number # example : ORBInitRef NameService=corbaname::dm2s0017:1515 #2. start omninames with this port number like in orbmodile.py # example : omniNames -start 1515 -logdir ${BaseDir}/logs/${Username} & salome-kernel-6.5.0/bin/orbmodule.py000077500000000000000000000171051177004724000174030ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## @package orbmodule # \brief Module that provides a client for %SALOME # import sys,os,time import string from nameserver import * from omniORB import CORBA from launchConfigureParser import verbose # Import the stubs for the Naming service import CosNaming #from runNS import * # ----------------------------------------------------------------------------- class client: """Client for SALOME""" def __init__(self,args=None): #set GIOP message size for bug 10560: impossible to get field values in TUI mode sys.argv.extend(["-ORBgiopMaxMsgSize", "104857600"]) ## = 100 * 1024 * 1024 # Initialise the ORB self.orb=CORBA.ORB_init(sys.argv, CORBA.ORB_ID) # Initialise the Naming Service self.initNS(args or {}) # -------------------------------------------------------------------------- def initNS(self,args): # Obtain a reference to the root naming context obj = self.orb.resolve_initial_references("NameService") try: self.rootContext = obj._narrow(CosNaming.NamingContext) return except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): self.rootContext = None if verbose(): print "Launch Naming Service++", # On lance le Naming Server (doit etre dans le PATH) test = True if args['wake_up_session']: test = False pass if test: NamingServer(args).run() pass print "Searching Naming Service ", ncount=0 delta=0.1 while(ncount < 100): ncount += 1 try: obj = self.orb.resolve_initial_references("NameService") self.rootContext = obj._narrow(CosNaming.NamingContext) break except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): self.rootContext = None sys.stdout.write('+') sys.stdout.flush() time.sleep(delta) if self.rootContext is None: print "Failed to narrow the root naming context" sys.exit(1) print " found in %s seconds " % ((ncount-1)*delta) # -------------------------------------------------------------------------- def showNScontext(self,context,dec=''): bl,bi=context.list(0) if bi is not None: ok,b=bi.next_one() while(ok): for s in b.binding_name : print "%s%s.%s" %(dec,s.id,s.kind) if s.kind == "dir": obj=context.resolve([s]) scontext = obj._narrow(CosNaming.NamingContext) self.showNScontext(scontext,dec=dec+' ') ok,b=bi.next_one() # -------------------------------------------------------------------------- def showNS(self): """ Show the content of SALOME naming service """ self.showNScontext(self.rootContext) # -------------------------------------------------------------------------- def Resolve(self, Path): resolve_path=string.split(Path,'/') if resolve_path[0] == '': del resolve_path[0] dir_path=resolve_path[:-1] context_name=[] for e in dir_path: context_name.append(CosNaming.NameComponent(e,"dir")) context_name.append(CosNaming.NameComponent(resolve_path[-1],"object")) try: obj = self.rootContext.resolve(context_name) except CosNaming.NamingContext.NotFound, ex: obj = None except CosNaming.NamingContext.InvalidName, ex: obj = None except CosNaming.NamingContext.CannotProceed, ex: obj = None except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): obj = None return obj # -------------------------------------------------------------------------- def waitNS(self,name,typobj=None,maxcount=240): count=0 delta=0.5 print "Searching %s in Naming Service " % name, while(1): count += 1 if count > maxcount : raise RuntimeError, "Impossible de trouver %s" % name obj=self.Resolve(name) if obj : print " found in %s seconds " % ((count-1)*delta) break else: sys.stdout.write('+') sys.stdout.flush() time.sleep(delta) if typobj is None:return obj nobj = obj._narrow(typobj) if nobj is None: print "%s exists but is not a %s" % (name,typobj) return nobj if sys.platform != "win32": def waitNSPID(self, theName, thePID, theTypObj = None): aCount = 0 aDelta = 0.5 anObj = None print "Searching %s in Naming Service " % theName, while(1): try: os.kill(thePID,0) except: raise RuntimeError, "Process %d for %s not found" % (thePID,theName) aCount += 1 anObj = self.Resolve(theName) if anObj: print " found in %s seconds " % ((aCount-1)*aDelta) break else: sys.stdout.write('+') sys.stdout.flush() time.sleep(aDelta) pass pass if theTypObj is None: return anObj anObject = anObj._narrow(theTypObj) if anObject is None: print "%s exists but is not a %s" % (theName,theTypObj) return anObject # -------------------------------------------------------------------------- def ResolveLogger(self, name): context_name=[] context_name.append(CosNaming.NameComponent(name,"")) try: obj = self.rootContext.resolve(context_name) except CosNaming.NamingContext.NotFound, ex: obj = None except CosNaming.NamingContext.InvalidName, ex: obj = None except CosNaming.NamingContext.CannotProceed, ex: obj = None except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): obj = None return obj # -------------------------------------------------------------------------- def waitLogger(self,name,typobj=None,maxcount=40): count=0 delta=0.5 print "Searching %s in Naming Service " % name, while(1): count += 1 if count > maxcount : raise RuntimeError, "Impossible de trouver %s" % name obj=self.ResolveLogger(name) if obj : print " found in %s seconds " % ((count-1)*delta) break else: sys.stdout.write('+') sys.stdout.flush() time.sleep(delta) if typobj is None:return obj nobj = obj._narrow(typobj) if nobj is None: print "%s exists but is not a %s" % (name,typobj) return nobj salome-kernel-6.5.0/bin/runIDLparser000077500000000000000000000034541177004724000173400ustar00rootroot00000000000000#! /bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # print the help message ==================================== # test $@="-h" -o -z $@ hh=0 if test "$#" = "0";then hh=1 else for a in $@; do if test "$a" = "-h"; then hh=1 fi done fi if test "$hh" = "1" ; then echo "" echo "Usage : " echo "" echo " to run IDLparser:" echo "" echo " $0 -Wbcatalog=[,icon=][,version=][,author=][,name=][,multistudy=][,remove=component_name] " echo "" echo " to have omniidl help:" echo "" echo " $0 -u " echo "" exit 1 fi #============================================================ # omiidl ==================================================== omniidl -bIDLparser -I ${KERNEL_ROOT_DIR}/idl/salome $@ #============================================================ salome-kernel-6.5.0/bin/runNS.py000077500000000000000000000110371177004724000164560ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #log files localization # import os, commands, sys, re, string, socket from Utils_Identity import getShortHostName if sys.platform == "win32": # temporarily using home directory for Namning Service logs # to be replaced with TEMP later... os.environ["BaseDir"]=os.environ["HOME"] else: os.environ["BaseDir"]="/tmp" os.environ["Username"]=os.environ["USER"] # kill OmniNames if exists #killall -q -9 omniNames # clear log files def startOmni(): try: os.mkdir(os.environ["BaseDir"] + "/logs") os.chmod(os.environ["BaseDir"] + "/logs", 0777) except: #print "Can't create " + os.environ["BaseDir"] + "/logs" pass upath = os.environ["BaseDir"] + "/logs/" + os.environ["Username"] try: os.mkdir(upath) except: #print "Can't create " + upath pass #os.system("touch " + upath + "/dummy") for fname in os.listdir(upath): try: if not fname.startswith("."): os.remove(upath + "/" + fname) except: pass #os.system("rm -f " + upath + "/omninames* " + upath + "/dummy " + upath + "/*.log") print "Name Service... " #hname=os.environ["HOST"] #commands.getoutput("hostname") if sys.platform == "win32": hname=getShortHostName() else: hname=socket.gethostname() print "hname=",hname f=open(os.environ["OMNIORB_CONFIG"]) ss=re.findall("NameService=corbaname::" + hname + ":\d+", f.read()) print "ss = ", ss f.close() aPort=re.findall("\d+", ss[0])[0] #aSedCommand="s/.*NameService=corbaname::" + hname + ":\([[:digit:]]*\)/\1/" #print "sed command = ", aSedCommand #aPort = commands.getoutput("sed -e\"" + aSedCommand + "\"" + os.environ["OMNIORB_CONFIG"]) global process_id print "port=", aPort if sys.platform == "win32": #import win32pm #command = ['omniNames -start ' , aPort , ' -logdir ' , '\"' + upath + '\"'] #os.system("start omniNames -start " + aPort + " -logdir " + "\"" + upath + "\"" ) command = "start omniNames -start " + aPort + " -logdir " + "\"" + upath + "\"" #print command pid = win32pm.spawnpid( string.join(command, " "), -nc ) process_id[pid]=command else: os.system("omniNames -start " + aPort + " -logdir " + upath + " &") print "ok" print "to list contexts and objects bound into the context with the specified name : showNS " # In LifeCycleCORBA, FactoryServer is started with rsh on the requested # computer if this Container does not exist. Default is localhost. # Others Containers are started with start_impl method of FactoryServer Container. # For using rsh it is necessary to have in the ${HOME} directory a .rhosts file # Warning : on RedHat the file /etc/hosts contains by default a line like : # 127.0.0.1 bordolex bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # (bordolex is the station name). omniNames on bordolex will be accessible from other # computers only if the computer name is removed on that line like : # 127.0.0.1 bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # To start dynamically Containers on several computers you need to # put in the ${OMNIORB_CONFIG} file a computer name instead of "localhost" # example : ORBInitRef NameService=corbaname::dm2s0017 # If you need to use several omniNames running on the same computer, you have to : #1. put in your ${OMNIORB_CONFIG} file a computer name and port number # example : ORBInitRef NameService=corbaname::dm2s0017:1515 #2. start omninames with this port number in runNS.sh # example : omniNames -start 1515 -logdir ${BaseDir}/logs/${Username} & salome-kernel-6.5.0/bin/runNS.sh000077500000000000000000000055521177004724000164450ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #log files localization # BaseDir=/tmp Username=`/usr/bin/whoami` # kill OmniNames if exists #killall -q -9 omniNames # clear log files mkdir -m 777 ${BaseDir}/logs mkdir ${BaseDir}/logs/${Username} touch ${BaseDir}/logs/${Username}/dummy \rm -f ${BaseDir}/logs/${Username}/omninames* ${BaseDir}/logs/${Username}/dummy ${BaseDir}/logs/${Username}/*.log echo "Name Service... " aSedCommand="s/.*NameService=corbaname::`hostname`:\([[:digit:]]*\)/\1/" aPort=`cat $OMNIORB_CONFIG | grep NameService | sed -e"$aSedCommand"` omniNames -start $aPort -logdir ${BaseDir}/logs/${Username} & # In LifeCycleCORBA, FactoryServer is started with rsh on the requested # computer if this Container does not exist. Default is localhost. # Others Containers are started with start_impl method of FactoryServer Container. # For using rsh it is necessary to have in the ${HOME} directory a .rhosts file # Warning : on RedHat the file /etc/hosts contains by default a line like : # 127.0.0.1 bordolex bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # (bordolex is the station name). omniNames on bordolex will be accessible from other # computers only if the computer name is removed on that line like : # 127.0.0.1 bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # To start dynamically Containers on several computers you need to # put in the ${OMNIORB_CONFIG} file a computer name instead of "localhost" # example : ORBInitRef NameService=corbaname::dm2s0017 # If you need to use several omniNames running on the same computer, you have to : #1. put in your ${OMNIORB_CONFIG} file a computer name and port number # example : ORBInitRef NameService=corbaname::dm2s0017:1515 #2. start omninames with this port number in runNS.sh # example : omniNames -start 1515 -logdir ${BaseDir}/logs/${Username} & echo ok echo "to list contexts and objects bound int the context with the specified name : showNS " salome-kernel-6.5.0/bin/runSalome000077500000000000000000000044431177004724000167320ustar00rootroot00000000000000#!/bin/bash # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py $* # ----------------------------------------------------------------------------- # examples: # --------- # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome # # - parameters for launching are taken from SalomeApp.xml; # - if the config file does not exist, it is created with default values. # # # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome --modules=GEOM,SMESH,VISU,MED --embedded=registry,study,moduleCatalog,cppContainer --standalone=pyContainer --xterm --killall # # parameters from command line supersede those from SalomeApp.xml # # Some CORBA servers can be launched in the SALOME_Session_Server's process # (embedded = same process) or in a separate process (standalone): # --> registry,study,moduleCatalog,cppContainer # Other CORBA servers could only be launched in separate process (standalone): # --> pyContainer # # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome -h # help # ----------------------------------------------------------------------------- # # l'option -i permet de garder l'interpreteur python ouvert : # par defaut, les differents serveurs ouvrent des fenêtres xterm # (cf. runSalome.py) # le serveur Logger n'est pas obligatoire (commenté dans runSalome.py) # # ----------------------------------------------------------------------------- salome-kernel-6.5.0/bin/runSalome.bat000077500000000000000000000021601177004724000174710ustar00rootroot00000000000000@REM Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE @REM @REM Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, @REM CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @REM @REM This library is free software; you can redistribute it and/or @REM modify it under the terms of the GNU Lesser General Public @REM License as published by the Free Software Foundation; either @REM version 2.1 of the License. @REM @REM This library is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of @REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @REM Lesser General Public License for more details. @REM @REM You should have received a copy of the GNU Lesser General Public @REM License along with this library; if not, write to the Free Software @REM Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA @REM @REM See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com @REM @"%PYTHONBIN%" "%KERNEL_ROOT_DIR%\bin\salome\envSalome.py" "%PYTHONBIN%" "%KERNEL_ROOT_DIR%\bin\salome\runSalome.py" %* salome-kernel-6.5.0/bin/runSalome.csh000077500000000000000000000017761177004724000175140ustar00rootroot00000000000000#!/bin/csh -f # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # runSalome --gui --modules=GEOM,SMESH,VISU,MED --killall salome-kernel-6.5.0/bin/runSalome.ksh000077500000000000000000000072071177004724000175170ustar00rootroot00000000000000#!/bin/ksh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # searchFreePort() { echo -n "Searching for a free port for naming service: " NSPORT=2810 export NSPORT local limit=$NSPORT let limit=limit+100 while [ 1 ] do aRes=`netstat -ltn | grep -E :${NSPORT}` if [ -z "$aRes" ]; then echo ${NSPORT} - Ok local myhost=`hostname` OMNIORB_CONFIG=${HOME}/.omniORB_${myhost}_${NSPORT}.cfg export OMNIORB_CONFIG local initref="NameService=corbaname::"`hostname`":$NSPORT" export NSPORT if [[ `python -c "import CORBA; print CORBA.ORB_ID"` = "omniORB4" ]]; then echo "InitRef = $initref" > $OMNIORB_CONFIG else echo "ORBInitRef $initref" > $OMNIORB_CONFIG fi break fi echo -n "${NSPORT} " if [[ $NSPORT -eq $limit ]] ; then echo echo "Can't find a free port to launch omniNames" echo "Try to kill the running servers and then launch SALOME again." exit fi let NSPORT=NSPORT+1 done } searchFreePort if [[ "$*" = "-nothing" ]]; then echo "port:$NSPORT" elif [ $# -ne 0 ] ; then python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py $* else python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py fi # ----------------------------------------------------------------------------- # examples: # --------- # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome # # - parameters for launching are taken from SalomeApp.xml; # - if the config file does not exist, it is created with default values. # # # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome --modules=GEOM,SMESH,VISU,MED --embedded=registry,study,moduleCatalog,cppContainer --standalone=pyContainer --xterm --killall # # parameters from command line supersede those from SalomeApp.xml # # Some CORBA servers can be launched in the SALOME_Session_Server's process # (embedded = same process) or in a separate process (standalone): # --> registry,study,moduleCatalog,cppContainer # Other CORBA servers could only be launched in separate process (standalone): # --> pyContainer # # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome -h # help # ----------------------------------------------------------------------------- # # l'option -i permet de garder l'interpreteur python ouvert : # par defaut, les differents serveurs ouvrent des fenêtres xterm # (cf. runSalome.py) # le serveur Logger n'est pas obligatoire (commenté dans runSalome.py) # # ----------------------------------------------------------------------------- # Example on CCRT (without ihm) : # ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py --terminal --modules=MED,CALCULATOR,COMPONENT --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall salome-kernel-6.5.0/bin/runSalome.py000077500000000000000000001050041177004724000173540ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## @package runSalome # \brief Module that provides services to launch SALOME # import sys, os, string, glob, time, pickle, re import orbmodule import setenv from launchConfigureParser import verbose from server import process_id, Server if sys.platform == "win32": SEP = ";" else: SEP = ":" # ----------------------------------------------------------------------------- from killSalome import killAllPorts def killLocalPort(): """ kill servers from a previous SALOME exection, if needed, on the CORBA port given in args of runSalome """ from killSalomeWithPort import killMyPort my_port=str(args['port']) try: killMyPort(my_port) except: print "problem in killLocalPort()" pass pass def givenPortKill(port): """ kill servers from a previous SALOME exection, if needed, on the same CORBA port """ from killSalomeWithPort import killMyPort my_port=port try: killMyPort(my_port) except: print "problem in LocalPortKill(), killMyPort("< 0: self.SCMD2+=['--pyscript=%s'%(",".join(self.args['pyscript']))] def setpath(self,modules_list,modules_root_dir): list_modules = modules_list[:] list_modules.reverse() if self.args["gui"] : list_modules = ["KERNEL", "GUI"] + list_modules else : list_modules = ["KERNEL"] + list_modules cata_path=get_cata_path(list_modules,modules_root_dir) if (self.args["gui"]) & ('moduleCatalog' in self.args['embedded']): #Use '::' instead ":" because drive path with "D:\" is invalid on windows platform self.CMD=self.SCMD1 + ['"' + string.join(cata_path,'"::"') + '"'] + self.SCMD2 else: self.CMD=self.SCMD1 + self.SCMD2 if self.args.has_key('test'): self.CMD+=['-test'] + self.args['test'] elif self.args.has_key('play'): self.CMD+=['-play'] + self.args['play'] if self.args["gdb_session"] or self.args["ddd_session"]: f = open(".gdbinit4salome", "w") f.write("set args ") args = " ".join(self.CMD[1:]) args = args.replace("(", "\(") args = args.replace(")", "\)") f.write(args) f.write("\n") f.close() if self.args["ddd_session"]: self.CMD = ["ddd", "--command=.gdbinit4salome", self.CMD[0]] elif self.args["gdb_session"]: self.CMD = ["xterm", "-e", "gdb", "--command=.gdbinit4salome", self.CMD[0]] pass pass if self.args["valgrind_session"]: l = ["valgrind"] val = os.getenv("VALGRIND_OPTIONS") if val: l += val.split() pass self.CMD = l + self.CMD pass # --- class LauncherServer(Server): def __init__(self,args): self.args=args self.initArgs() self.SCMD1=['SALOME_LauncherServer'] self.SCMD2=[] if args["gui"] : if 'registry' in self.args['embedded']: self.SCMD1+=['--with','Registry', '(','--salome_session','theSession',')'] if 'moduleCatalog' in self.args['embedded']: self.SCMD1+=['--with','ModuleCatalog','(','-common'] self.SCMD2+=['-personal', '${HOME}/Salome/resources/CatalogModulePersonnel.xml',')'] if 'study' in self.args['embedded']: self.SCMD2+=['--with','SALOMEDS','(',')'] if 'cppContainer' in self.args['embedded']: self.SCMD2+=['--with','Container','(','FactoryServer',')'] def setpath(self,modules_list,modules_root_dir): list_modules = modules_list[:] list_modules.reverse() if self.args["gui"] : list_modules = ["KERNEL", "GUI"] + list_modules else : list_modules = ["KERNEL"] + list_modules cata_path=get_cata_path(list_modules,modules_root_dir) if (self.args["gui"]) & ('moduleCatalog' in self.args['embedded']): #Use '::' instead ":" because drive path with "D:\" is invalid on windows platform self.CMD=self.SCMD1 + ['"' + string.join(cata_path,'"::"') + '"'] + self.SCMD2 else: self.CMD=self.SCMD1 + self.SCMD2 class NotifyServer(Server): def __init__(self,args,modules_root_dir): self.args=args self.initArgs() self.modules_root_dir=modules_root_dir myLogName = os.environ["LOGNAME"] self.CMD=['notifd','-c', self.modules_root_dir["KERNEL"] +'/share/salome/resources/kernel/channel.cfg', '-DFactoryIORFileName=/tmp/'+myLogName+'_rdifact.ior', '-DChannelIORFileName=/tmp/'+myLogName+'_rdichan.ior', '-DReportLogFile=/tmp/'+myLogName+'_notifd.report', '-DDebugLogFile=/tmp/'+myLogName+'_notifd.debug', ] # # ----------------------------------------------------------------------------- def startGUI(clt): """Salome Session Graphic User Interface activation""" import Engines import SALOME import SALOMEDS import SALOME_ModuleCatalog import SALOME_Session_idl session=clt.waitNS("/Kernel/Session",SALOME.Session) session.GetInterface() # ----------------------------------------------------------------------------- def startSalome(args, modules_list, modules_root_dir): """Launch all SALOME servers requested by args""" init_time = os.times() if verbose(): print "startSalome ", args # # Set server launch command # if args.has_key('server_launch_mode'): Server.set_server_launch_mode(args['server_launch_mode']) # # Wake up session option # if args['wake_up_session']: if "OMNIORB_CONFIG" not in os.environ: from salome_utils import generateFileName home = os.getenv("HOME") appli = os.getenv("APPLI") kwargs={} if appli is not None: home = os.path.join(home, appli,"USERS") kwargs["with_username"] = True pass last_running_config = generateFileName(home, prefix="omniORB", suffix="last", extension="cfg", hidden=True, **kwargs) os.environ['OMNIORB_CONFIG'] = last_running_config pass pass # # Initialisation ORB and Naming Service # clt=orbmodule.client(args) # # Wake up session option # if args['wake_up_session']: import Engines import SALOME import SALOMEDS import SALOME_ModuleCatalog import SALOME_Session_idl session = clt.waitNS("/Kernel/Session",SALOME.Session) status = session.GetStatSession() if status.activeGUI: from salome_utils import getPortNumber port = getPortNumber() msg = "Warning :" msg += "\n" msg += "Session GUI for port number %s is already active."%(port) msg += "\n" msg += "If you which to wake up another session," msg += "\n" msg += "please use variable OMNIORB_CONFIG" msg += "\n" msg += "to get the correct session object in naming service." sys.stdout.write(msg+"\n") sys.stdout.flush() return clt session.GetInterface() args["session_object"] = session return clt # Save Naming service port name into # the file args["ns_port_log_file"] if args.has_key('ns_port_log_file'): home = os.environ['HOME'] appli= os.environ.get("APPLI") if appli is not None: home = os.path.join(home, appli, "USERS") file_name = os.path.join(home, args["ns_port_log_file"]) f = open(file_name, "w") f.write(os.environ['NSPORT']) f.close() # Launch Logger Server (optional) # and wait until it is registered in naming service # if args['logger']: myServer=LoggerServer(args) myServer.run() clt.waitLogger("Logger") # Notify Server launch # if sys.platform != "win32": if verbose(): print "Notify Server to launch" myServer=NotifyServer(args,modules_root_dir) myServer.run() # Launch Session Server (to show splash ASAP) # if args["gui"]: mySessionServ = SessionServer(args,args['modules'],modules_root_dir) mySessionServ.setpath(modules_list,modules_root_dir) mySessionServ.run() # # Launch Registry Server, # and wait until it is registered in naming service # if ('registry' not in args['embedded']) | (args["gui"] == 0) : myServer=RegistryServer(args) myServer.run() if sys.platform == "win32": clt.waitNS("/Registry") else: clt.waitNSPID("/Registry",myServer.PID) # # Launch Catalog Server, # and wait until it is registered in naming service # if ('moduleCatalog' not in args['embedded']) | (args["gui"] == 0): cataServer=CatalogServer(args) cataServer.setpath(modules_list,modules_root_dir) cataServer.run() import SALOME_ModuleCatalog if sys.platform == "win32": clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog) else: clt.waitNSPID("/Kernel/ModulCatalog",cataServer.PID,SALOME_ModuleCatalog.ModuleCatalog) # # Launch SalomeDS Server, # and wait until it is registered in naming service # #print "ARGS = ",args if ('study' not in args['embedded']) | (args["gui"] == 0): print "RunStudy" myServer=SalomeDSServer(args) myServer.run() if sys.platform == "win32": clt.waitNS("/myStudyManager") else: clt.waitNSPID("/myStudyManager",myServer.PID) # # Launch LauncherServer # myCmServer = LauncherServer(args) myCmServer.setpath(modules_list,modules_root_dir) myCmServer.run() # # Launch ConnectionManagerServer # myConnectionServer = ConnectionManagerServer(args) myConnectionServer.run() from Utils_Identity import getShortHostName if os.getenv("HOSTNAME") == None: if os.getenv("HOST") == None: os.environ["HOSTNAME"]=getShortHostName() else: os.environ["HOSTNAME"]=os.getenv("HOST") theComputer = getShortHostName() # # Launch local C++ Container (FactoryServer), # and wait until it is registered in naming service # if ('cppContainer' in args['standalone']) | (args["gui"] == 0) : myServer=ContainerCPPServer(args) myServer.run() if sys.platform == "win32": clt.waitNS("/Containers/" + theComputer + "/FactoryServer") else: clt.waitNSPID("/Containers/" + theComputer + "/FactoryServer",myServer.PID) # # Launch local Python Container (FactoryServerPy), # and wait until it is registered in naming service # if 'pyContainer' in args['standalone']: myServer=ContainerPYServer(args) myServer.run() if sys.platform == "win32": clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy") else: clt.waitNSPID("/Containers/" + theComputer + "/FactoryServerPy",myServer.PID) # # Wait until Session Server is registered in naming service # if args["gui"]: ##---------------- import Engines import SALOME import SALOMEDS import SALOME_ModuleCatalog import SALOME_Session_idl if sys.platform == "win32": session=clt.waitNS("/Kernel/Session",SALOME.Session) else: session=clt.waitNSPID("/Kernel/Session",mySessionServ.PID,SALOME.Session) args["session_object"] = session end_time = os.times() if verbose(): print print "Start SALOME, elapsed time : %5.1f seconds"% (end_time[4] - init_time[4]) # ASV start GUI without Loader #if args['gui']: # session.GetInterface() # # additionnal external python interpreters # nbaddi=0 try: if 'interp' in args: nbaddi = args['interp'] except: import traceback traceback.print_exc() print "-------------------------------------------------------------" print "-- to get an external python interpreter:runSalome --interp=1" print "-------------------------------------------------------------" if verbose(): print "additional external python interpreters: ", nbaddi if nbaddi: for i in range(nbaddi): print "i=",i anInterp=InterpServer(args) anInterp.run() # set PYTHONINSPECT variable (python interpreter in interactive mode) if args['pinter']: os.environ["PYTHONINSPECT"]="1" try: import readline except ImportError: pass return clt # ----------------------------------------------------------------------------- def useSalome(args, modules_list, modules_root_dir): """ Launch all SALOME servers requested by args, save list of process, give info to user, show registered objects in Naming Service. """ global process_id clt=None try: clt = startSalome(args, modules_list, modules_root_dir) except: import traceback traceback.print_exc() print print print "--- Error during Salome launch ---" #print process_id from addToKillList import addToKillList from killSalomeWithPort import getPiDict filedict = getPiDict(args['port']) for pid, cmd in process_id.items(): addToKillList(pid, cmd, args['port']) pass if verbose(): print """ Saving of the dictionary of Salome processes in %s To kill SALOME processes from a console (kill all sessions from all ports): python killSalome.py To kill SALOME from the present interpreter, if it is not closed : killLocalPort() --> kill this session (use CORBA port from args of runSalome) givenPortKill(port) --> kill a specific session with given CORBA port killAllPorts() --> kill all sessions runSalome, with --killall option, starts with killing the processes resulting from the previous execution. """%filedict # # Print Naming Service directory list # if clt != None: if verbose(): print print " --- registered objects tree in Naming Service ---" clt.showNS() pass if not args['gui'] or not args['session_gui']: if args['shutdown_servers']: class __utils__(object): def __init__(self, port): self.port = port import killSalomeWithPort self.killSalomeWithPort = killSalomeWithPort return def __del__(self): self.killSalomeWithPort.killMyPort(self.port) return pass args['shutdown_servers'] = __utils__(args['port']) pass pass # run python scripts, passed via --execute option toimport = [] if args.has_key('pyscript'): if args.has_key('gui') and args.has_key('session_gui'): if not args['gui'] or not args['session_gui']: toimport = args['pyscript'] for srcname in toimport : if srcname == 'killall': clt.showNS() killAllPorts() sys.exit(0) else: if os.path.isabs(srcname): if os.path.exists(srcname): execScript(srcname) elif os.path.exists(srcname+".py"): execScript(srcname+".py") else: print "Can't execute file %s" % srcname pass else: found = False for path in [os.getcwd()] + sys.path: if os.path.exists(os.path.join(path,srcname)): execScript(os.path.join(path,srcname)) found = True break elif os.path.exists(os.path.join(path,srcname+".py")): execScript(os.path.join(path,srcname+".py")) found = True break pass if not found: print "Can't execute file %s" % srcname pass pass pass pass pass return clt def execScript(script_path): print 'executing', script_path sys.path.insert(0, os.path.dirname(script_path)) execfile(script_path,globals()) del sys.path[0] # ----------------------------------------------------------------------------- def registerEnv(args, modules_list, modules_root_dir): """ Register args, modules_list, modules_root_dir in a file for further use, when SALOME is launched embedded in an other application. """ if sys.platform == "win32": fileEnv = os.getenv('TEMP') else: fileEnv = '/tmp/' fileEnv += os.getenv('USER') + "_" + str(args['port']) \ + '_' + args['appname'].upper() + '_env' fenv=open(fileEnv,'w') pickle.dump((args, modules_list, modules_root_dir),fenv) fenv.close() os.environ["SALOME_LAUNCH_CONFIG"] = fileEnv # ----------------------------------------------------------------------------- def searchFreePort(args, save_config=1): print "Searching for a free port for naming service:", # if sys.platform == "win32": tmp_file = os.getenv('TEMP'); else: tmp_file = '/tmp' tmp_file = os.path.join(tmp_file, '.netstat_%s'%os.getpid()) # ###status = os.system("netstat -ltn | grep -E :%s > /dev/null 2>&1"%(NSPORT)) os.system( "netstat -a -n > %s" % tmp_file ); f = open( tmp_file, 'r' ); ports = f.readlines(); f.close(); os.remove( tmp_file ); # def portIsUsed(port, data): regObj = re.compile( ".*tcp.*:([0-9]+).*:.*listen", re.IGNORECASE ); for item in data: try: p = int(regObj.match(item).group(1)) if p == port: return True pass except: pass pass return False # NSPORT=2810 limit=NSPORT+100 # while 1: if not portIsUsed(NSPORT, ports): print "%s - OK"%(NSPORT) # from salome_utils import generateFileName, getHostName hostname = getHostName() # home = os.getenv("HOME") appli = os.getenv("APPLI") kwargs={} if appli is not None: home = os.path.join(home, appli,"USERS") kwargs["with_username"]=True # omniorb_config = generateFileName(home, prefix="omniORB", extension="cfg", hidden=True, with_hostname=True, with_port=NSPORT, **kwargs) orbdata = [] initref = "NameService=corbaname::%s:%s"%(hostname, NSPORT) from omniORB import CORBA if CORBA.ORB_ID == "omniORB4": orbdata.append("InitRef = %s"%(initref)) orbdata.append("giopMaxMsgSize = 2097152000 # 2 GBytes") orbdata.append("traceLevel = 0 # critical errors only") else: orbdata.append("ORBInitRef %s"%(initref)) orbdata.append("ORBgiopMaxMsgSize = 2097152000 # 2 GBytes") orbdata.append("ORBtraceLevel = 0 # critical errors only") pass orbdata.append("") f = open(omniorb_config, "w") f.write("\n".join(orbdata)) f.close() # os.environ['OMNIORB_CONFIG'] = omniorb_config os.environ['NSPORT'] = "%s"%(NSPORT) os.environ['NSHOST'] = "%s"%(hostname) args['port'] = os.environ['NSPORT'] # if save_config: last_running_config = generateFileName(home, prefix="omniORB", suffix="last", extension="cfg", hidden=True, **kwargs) try: if sys.platform == "win32": import shutil shutil.copyfile(omniorb_config, last_running_config) else: try: os.remove(last_running_config) except OSError: pass os.symlink(omniorb_config, last_running_config) pass pass except: pass break print "%s"%(NSPORT), if NSPORT == limit: msg = "\n" msg += "Can't find a free port to launch omniNames\n" msg += "Try to kill the running servers and then launch SALOME again.\n" raise RuntimeError, msg NSPORT=NSPORT+1 pass return # ----------------------------------------------------------------------------- def no_main(): """Salome Launch, when embedded in other application""" fileEnv = os.environ["SALOME_LAUNCH_CONFIG"] fenv=open(fileEnv,'r') args, modules_list, modules_root_dir = pickle.load(fenv) fenv.close() kill_salome(args) searchFreePort(args, 0) clt = useSalome(args, modules_list, modules_root_dir) return clt # ----------------------------------------------------------------------------- def main(): """Salome launch as a main application""" from salome_utils import getHostName print "runSalome running on %s" % getHostName() args, modules_list, modules_root_dir = setenv.get_config() kill_salome(args) save_config = True if args.has_key('save_config'): save_config = args['save_config'] # -- test = True if args['wake_up_session']: test = False pass if test: searchFreePort(args, save_config) pass # -- #setenv.main() setenv.set_env(args, modules_list, modules_root_dir) clt = useSalome(args, modules_list, modules_root_dir) return clt,args # ----------------------------------------------------------------------------- def foreGround(clt, args): # -- if "session_object" not in args: return session = args["session_object"] # -- # Wait until gui is arrived # tmax = nbtot * dt # -- gui_detected = False dt = 0.1 nbtot = 100 nb = 0 while 1: try: status = session.GetStatSession() gui_detected = status.activeGUI except: pass if gui_detected: break from time import sleep sleep(dt) nb += 1 if nb == nbtot: break pass # -- if not gui_detected: return # -- from salome_utils import getPortNumber port = getPortNumber() # -- server = Server({}) if sys.platform == "win32": server.CMD = [os.getenv("PYTHONBIN"), "-m", "killSalomeWithPort", "--spy", "%s"%(os.getpid()), "%s"%(port)] else: server.CMD = ["killSalomeWithPort.py", "--spy", "%s"%(os.getpid()), "%s"%(port)] server.run() # os.system("killSalomeWithPort.py --spy %s %s &"%(os.getpid(), port)) # -- dt = 1.0 try: while 1: try: status = session.GetStatSession() assert status.activeGUI except: break from time import sleep sleep(dt) pass pass except KeyboardInterrupt: from killSalomeWithPort import killMyPort killMyPort(port) pass return # ----------------------------------------------------------------------------- if __name__ == "__main__": import user clt,args = main() # -- test = args['gui'] and args['session_gui'] test = test or args['wake_up_session'] # -- # The next test covers the --pinter option or var PYTHONINSPECT setted # -- test = test and not os.environ.get('PYTHONINSPECT') # -- # The next test covers the python -i $KERNEL_ROOT_DIR/bin/salome/runSalome.py case # -- try: from ctypes import POINTER, c_int, cast, pythonapi iflag_ptr = cast(pythonapi.Py_InteractiveFlag, POINTER(c_int)) test = test and not iflag_ptr.contents.value except: pass # -- test = test and os.getenv("SALOME_TEST_MODE", "0") != "1" test = test and args['foreground'] # -- if test: foreGround(clt, args) pass # -- pass salome-kernel-6.5.0/bin/salome.launch000077500000000000000000000015421177004724000175130ustar00rootroot00000000000000 yes no no yes no registry study moduleCatalog cppContainer pyContainer salome-kernel-6.5.0/bin/salomeConsole.py000077500000000000000000000066631177004724000202250ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os import sys #------------------------------- # Python completion and others if you want # You should have set PYTHONSTARTUP env variable # or import user should try to import $HOME/.pythonrc.py #------------------------------- import user #------------------------------- # Get major CORBA objects #------------------------------- import CORBA import CosNaming # There are cyclic dependencies between Engines, SALOME and SALOMEDS. # import first Engines, then SALOME and then SALOMEDS # Or use reload(Engines) to be safe. import Engines import SALOME import SALOMEDS import SALOME_ModuleCatalog reload(Engines) reload(SALOME) reload(SALOMEDS) import salome_utils import LifeCycleCORBA import orbmodule from runSalome import * import Utils_Identity files = glob.glob(os.path.join(os.environ["HOME"],Utils_Identity.getapplipath(), "USERS",".omniORB_"+salome_utils.getUserName()+"_*.cfg")) filename="" if len(files)==1: filename=files[0] else: print "You have %d sessions running" % len(files) for f in files: print "Session:",f rep= raw_input("Do you want to connect to this session [y|n]") if rep == "y": filename=f break if filename != "": os.environ['OMNIORB_CONFIG']=filename else: rep= raw_input("Do you want to try a local session on port 2810 ? [y|n]") if rep == "y": # Try a local session running on port 2810 sys.argv=sys.argv+['-ORBInitRef','NameService=corbaname::localhost:2810'] else: sys.exit(1) print sys.argv #direct adress from clt.orb.object_to_string(clt.rootContext) #sys.argv=sys.argv+['-ORBInitRef','NameService=IOR:010000000100000000000000010000000000000023000000010100000a0000006c6f63616c686f737400fa0a0b0000004e616d6553657276696365'] class client(orbmodule.client): def initNS(self,args): # Obtain a reference to the root naming context obj = self.orb.resolve_initial_references("NameService") try: self.rootContext = obj._narrow(CosNaming.NamingContext) return except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): print "It's not a valid naming service" self.rootContext = None raise clt=client() print "Naming Service address: ",clt.orb.object_to_string(clt.rootContext) clt.showNS() session=clt.waitNS("/Kernel/Session") catalog=clt.waitNS("/Kernel/ModulCatalog") studyMgr=clt.waitNS("/myStudyManager") import salome salome.salome_init() from salome import lcc salome-kernel-6.5.0/bin/salome_session.py000077500000000000000000000106651177004724000204420ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## @package salome_session # \brief Module that provides the SalomeSession object that helps to launch # a SALOME script session # import os import sys import string import socket _session = None def startSession(modules=[]): global _session if _session: return searchFreePort() _session = SalomeSession(modules) return def getShortHostName(): """ gives Hostname without domain extension. SALOME naming service needs short Hostnames (without domain extension). HOSTNAME is not allways defined in environment, socket.gethostname() gives short or complete Hostname, depending on defined aliases. """ from salome_utils import getShortHostName return getShortHostName() def searchFreePort(): """ Search free port for SALOME session. Returns first found free port number. """ print "Searching a free port for naming service:", from salome_utils import generateFileName, getHostName hostname = getHostName() NSPORT = 2810 limit = NSPORT+100 while 1: print "%s "%(NSPORT), status = os.system("netstat -ltn | grep -E :%s"%(NSPORT)) if status: home = os.getenv("HOME") appli = os.getenv("APPLI") kwargs={} if appli is not None: home = os.path.join(home, appli,"USERS") kwargs["with_username"]=True omniorb_config = generateFileName(home, prefix="omniORB", extension="cfg", hidden=True, with_hostname=True, with_port=NSPORT, **kwargs) f = open(omniorb_config, "w") f.write("ORBInitRef NameService=corbaname::%s:%s\n"%(hostname, NSPORT)) f.close() os.environ['OMNIORB_CONFIG'] = omniorb_config last_running_config = generateFileName(home, prefix="omniORB", suffix="last", extension="cfg", hidden=True, **kwargs) os.environ['LAST_RUNNING_CONFIG'] = last_running_config if os.access(last_running_config,os.F_OK): os.unlink(last_running_config) pass os.symlink(omniorb_config,last_running_config) print "- Ok" break if NSPORT == limit: msg = "" msg += "Can not find a free port to launch omniNames\n" msg += "Kill the running servers and try again.\n" raise RuntimeError, msg NSPORT = NSPORT+1 pass os.environ['NSHOST'] = hostname os.environ['NSPORT'] = str(NSPORT) return NSPORT class SalomeSession(object): """Salome session launcher""" import runSalome import killSalomeWithPort import killSalome def __init__(self, modules): import runSalome sys.argv = ["dummy.py"] sys.argv += ["--terminal"] if modules: sys.argv += ['--modules=%s'%(",".join(modules))] pass runSalome.clt, runSalome.args = runSalome.main() import salome salome.salome_init() return def __del__(self): import runSalome runSalome.killLocalPort() return pass salome-kernel-6.5.0/bin/salome_utils.py000077500000000000000000000346711177004724000201220ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # --- # File : salome_utils.py # Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) # --- ## @package salome_utils # \brief Set of utility functions used by SALOME python scripts. # # Exported functions # __all__ = [ 'getORBcfgInfo', 'getHostFromORBcfg', 'getPortFromORBcfg', 'getUserName', 'getHostName', 'getShortHostName', 'getAppName', 'getPortNumber', 'getTmpDir', 'getHomeDir', 'generateFileName', 'makeTmpDir', 'uniteFiles', ] # --- def _try_bool( arg ): """ Check if specified parameter represents boolean value and returns its value. String values like 'True', 'TRUE', 'YES', 'Yes', 'y', 'NO', 'false', 'n', etc are supported. If does not represent a boolean, an exception is raised. """ import types if type( arg ) == types.BooleanType : return arg elif type( arg ) == types.StringType : v = str( arg ).lower() if v in [ "yes", "y", "true" ]: return True elif v in [ "no", "n", "false" ]: return False pass raise Exception("Not boolean value") # --- def getORBcfgInfo(): """ Get omniORB current configuration. Returns a list of three values: [ orb_version, host_name, port_number ]. The information is retrieved from the omniORB configuration file defined by the OMNIORB_CONFIG environment variable. If omniORB configuration file can not be accessed, a list of three empty strings is returned. """ import os, re ret = [ "", "", "" ] try: f = open( os.getenv( "OMNIORB_CONFIG" ) ) lines = f.readlines() f.close() regvar = re.compile( "(ORB)?InitRef.*corbaname::(.*):(\d+)\s*$" ) for l in lines: try: m = regvar.match( l ) if m: if m.group(1) is None: ret[0] = "4" else: ret[0] = "3" pass ret[1] = m.group(2) ret[2] = m.group(3) break pass except: pass pass pass except: pass return ret # --- def getHostFromORBcfg(): """ Get current omniORB host. """ return getORBcfgInfo()[1] # --- def getPortFromORBcfg(): """ Get current omniORB port. """ return getORBcfgInfo()[2] # --- def getUserName(): """ Get user name: 1. try USER environment variable 2. if fails, return 'unknown' as default user name """ import os return os.getenv( "USER", "unknown" ) # 'unknown' is default user name # --- def getHostName(): """ Get host name: 1. try socket python module gethostname() function 2. if fails, try HOSTNAME environment variable 3. if fails, try HOST environment variable 4. if fails, return 'unknown' as default host name """ import os try: import socket host = socket.gethostname() except: host = None pass if not host: host = os.getenv("HOSTNAME") if not host: host = os.getenv("HOST") if not host: host = "unknown" # 'unknown' is default host name return host # --- def getShortHostName(): """ Get short host name: 1. try socket python module gethostname() function 2. if fails, try HOSTNAME environment variable 3. if fails, try HOST environment variable 4. if fails, return 'unknown' as default host name """ try: return getHostName().split('.')[0] except: pass return "unknown" # 'unknown' is default host name # --- def getAppName(): """ Get application name: 1. try APPNAME environment variable 2. if fails, return 'SALOME' as default application name """ import os return os.getenv( "APPNAME", "SALOME" ) # 'SALOME' is default user name # --- def getPortNumber(use_default=True): """ Get current naming server port number: 1. try NSPORT environment variable 1. if fails, try to parse config file defined by OMNIORB_CONFIG environment variable 2. if fails, return 2809 as default port number (if use_default is True) or None (id use_default is False) """ import os try: return int( os.getenv( "NSPORT" ) ) except: pass port = getPortFromORBcfg() if port is not None: return port if use_default: return 2809 # '2809' is default port number return None # --- def getHomeDir(): """ Get home directory. """ import os, sys if sys.platform == "win32": # for Windows the home directory is detected in the following way: # 1. try USERPROFILE env variable # 2. try combination of HOMEDRIVE and HOMEPATH env variables # 3. try HOME env variable # TODO: on Windows, also GetUserProfileDirectoryW() system function might be used dir = os.getenv("USERPROFILE") if not dir and os.getenv("HOMEDRIVE") and os.getenv("HOMEPATH"): dir = os.path.join(os.getenv("HOMEDRIVE"), os.getenv("HOMEPATH")) if not dir: dir = os.getenv("HOME") pass else: # for Linux: use HOME variable dir = os.getenv("HOME") pass return dir # --- def getTmpDir(): """ Get directory to be used for the temporary files. """ import os, sys if sys.platform == "win32": # for Windows: temporarily using home directory for tmp files; # to be replaced with TEMP environment variable later... dir = os.getenv("HOME") else: # for Linux: use /tmp/logs/{user} folder dir = os.path.join( '/tmp', 'logs', getUserName() ) pass return dir # --- def generateFileName( dir, prefix = None, suffix = None, extension = None, unique = False, separator = "_", hidden = False, **kwargs ): """ Generate file name by sepecified parameters. If necessary, file name can be generated to be unique. Parameters: - dir : directory path - prefix : file prefix (not added by default) - suffix : file suffix (not added by default) - extension : file extension (not added by default) - unique : if this parameter is True, the unique file name is generated: in this case, if the file with the generated name already exists in the directory, an integer suffix is added to the end of the file name. This parameter is False by default. - separator : separator of the words ('_' by default) - hidden : if this parameter is True, the file name is prepended by . (dot) symbol. This parameter is False by default. Other keyword parameters are: - with_username : 'add user name' flag/option: * boolean value can be passed to determine user name automatically * string value to be used as user name - with_hostname : 'add host name' flag/option: * boolean value can be passed to determine host name automatically * string value to be used as host name - with_port : 'add port number' flag/option: * boolean value can be passed to determine port number automatically * string value to be used as port number - with_app : 'add application name' flag/option: * boolean value can be passed to determine application name automatically * string value to be used as application name All parameters are optional. """ supported = [ 'with_username', 'with_hostname', 'with_port', 'with_app' ] from launchConfigureParser import verbose filename = [] # separator if separator is None: separator = "" pass else: separator = str( separator ) pass # prefix (if specified) if prefix is not None: filename.append( str( prefix ) ) pass # additional keywords ### check unsupported parameters for kw in kwargs: if kw not in supported and verbose(): print 'Warning! salome_utilitie.py: generateFileName(): parameter %s is not supported' % kw pass pass ### process supported keywords for kw in supported: if kw not in kwargs: continue ### user name if kw == 'with_username': try: # auto user name ? if _try_bool( kwargs[kw] ): filename.append( getUserName() ) pass except: # user name given as parameter filename.append( kwargs[kw] ) pass pass ### host name elif kw == 'with_hostname': try: # auto host name ? if _try_bool( kwargs[kw] ): filename.append( getShortHostName() ) pass except: # host name given as parameter filename.append( kwargs[kw] ) pass pass ### port number elif kw == 'with_port': try: # auto port number ? if _try_bool( kwargs[kw] ): filename.append( str( getPortNumber() ) ) pass except: # port number given as parameter filename.append( str( kwargs[kw] ) ) pass pass ### application name elif kw == 'with_app': try: # auto application name ? if _try_bool( kwargs[kw] ): filename.append( getAppName() ) pass except: # application name given as parameter filename.append( kwargs[kw] ) pass pass pass # suffix (if specified) if suffix is not None: filename.append( str( suffix ) ) pass # raise an exception if file name is empty if not filename: raise Exception("Empty file name") # if extension is not None and extension.startswith("."): extension = extension[1:] # import os name = separator.join( filename ) if hidden: name = "." + name # add dot for hidden files if extension: name = name + "." + str( extension ) # add extension if defined name = os.path.join( dir, name ) if unique: # create unique file name index = 0 while os.path.exists( name ): index = index + 1 name = separator.join( filename ) + separator + str( index ) if hidden: name = "." + name # add dot for hidden files if extension: name = name + "." + str( extension ) # add extension if defined name = os.path.join( dir, name ) pass pass return os.path.normpath(name) # --- def makeTmpDir( path, mode=0777 ): """ Make temporary directory with the specified path. If the directory exists then clear its contents. Parameters: - path : absolute path to the directory to be created. - mode : access mode """ import os if os.path.exists( path ): import sys if sys.platform == "win32": os.system( "rmdir /S /Q " + '"' + path + '"' ) os.system( "mkdir " + '"' + path + '"' ) else: os.system( "rm -rf " + path + "/*" ) else: dirs = path.split("/") shift1 = shift2 = 0 if not dirs[0]: shift1 = 1 if dirs[-1]: shift2 = 1 for i in range(1+shift1,len(dirs)+shift2): p = "/".join(dirs[:i]) try: os.mkdir(p, mode) os.chmod(p, mode) except: pass # --- def uniteFiles( src_file, dest_file ): """ Unite contents of the source file with contents of the destination file and put result of the uniting to the destination file. If the destination file does not exist then the source file is simply copied to its path. Parameters: - src_file : absolute path to the source file - dest_file : absolute path to the destination file """ import os if not os.path.exists( src_file ): return pass if os.path.exists( dest_file ): # add a symbol of new line to contents of the destination file (just in case) dest = open( dest_file, 'r' ) dest_lines = dest.readlines() dest.close() dest_lines.append( "\n" ) dest = open( dest_file, 'w' ) dest.writelines( dest_lines ) dest.close() import sys if sys.platform == "win32": command = "type " + '"' + src_file + '"' + " >> " + '"' + dest_file + '"' else: command = "cat " + src_file + " >> " + dest_file pass pass else: import sys if sys.platform == "win32": command = "copy " + '"' + src_file + '"' + " " + '"' + dest_file + '"' + " > nul" else: command = "cp " + src_file + " " + dest_file pass pass os.system( command ) # -- _verbose = None def verbose(): """ Get verbosity level. Default verbosity level is specified via the environment variable SALOME_VERBOSE, e.g.: [bash %] export SALOME_VERBOSE=1 The function setVerbose() can be used to change verbosity level explicitly. """ global _verbose # verbose has already been called if _verbose is not None: return _verbose # first time try: from os import getenv _verbose = int(getenv('SALOME_VERBOSE')) except: _verbose = 0 pass # return _verbose def setVerbose(level): """ Change verbosity level. The function verbose() can be used to get current verbosity level. """ global _verbose _verbose = level return salome-kernel-6.5.0/bin/server.py000077500000000000000000000116401177004724000167170ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import os, sys, string from salome_utils import getHostName process_id = {} # ----------------------------------------------------------------------------- # # Definition des classes d'objets pour le lancement des Server CORBA # class Server: """Generic class for CORBA server launch""" server_launch_mode = "daemon" def initArgs(self): self.PID=None self.CMD=[] self.ARGS=[] if self.args.get('xterm'): if sys.platform != "win32": self.ARGS=['xterm', '-iconic', '-sb', '-sl', '500', '-hold'] else: self.ARGS=['cmd', '/c', 'start cmd.exe', '/K'] def __init__(self,args): self.args=args self.initArgs() @staticmethod def set_server_launch_mode(mode): if mode == "daemon" or mode == "fork": Server.server_launch_mode = mode else: raise Exception("Unsupported server launch mode: %s" % mode) def run(self): global process_id myargs=self.ARGS if self.args.get('xterm'): # (Debian) send LD_LIBRARY_PATH to children shells (xterm) if sys.platform != "win32": env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")] myargs = myargs +['-T']+self.CMD[:1]+['-e'] + env_ld_library_path command = myargs + self.CMD #print "command = ", command if sys.platform == "win32": import win32pm #cmd_str = "\"" + string.join(command, " ") + "\"" #print cmd_str #pid = win32pm.spawnpid( cmd_str ) pid = win32pm.spawnpid( string.join(command, " "), '-nc' ) #pid = win32pm.spawnpid( string.join(command, " ") ) elif Server.server_launch_mode == "fork": pid = os.spawnvp(os.P_NOWAIT, command[0], command) else: # Server launch mode is daemon pid=self.daemonize(command) if pid is not None: #store process pid if it really exists process_id[pid]=self.CMD self.PID = pid return pid def daemonize(self,args): # to daemonize a process need to do the UNIX double-fork magic # see Stevens, "Advanced Programming in the UNIX Environment" for details (ISBN 0201563177) # and UNIX Programming FAQ 1.7 How do I get my program to act like a daemon? # http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16 #open a pipe c2pread, c2pwrite = os.pipe() #do first fork pid=os.fork() if pid > 0: #first parent os.close(c2pwrite) #receive real pid from child data=os.read(c2pread,24) #read 24 bytes os.waitpid(pid,0) #remove zombie os.close(c2pread) # return : first parent childpid=int(data) if childpid==-1: return None try: os.kill(childpid,0) return childpid except: return None #first child # decouple from parent environment os.setsid() os.close(c2pread) # do second fork : second child not a session leader try: pid = os.fork() if pid > 0: #send real pid to parent os.write(c2pwrite,"%d" % pid) os.close(c2pwrite) # exit from second parent os._exit(0) except OSError, e: print >>sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror) os.write(c2pwrite,"-1") os.close(c2pwrite) sys.exit(1) #I am a daemon os.close(0) #close stdin os.open("/dev/null", os.O_RDWR) # redirect standard input (0) to /dev/null try: os.execvp(args[0], args) except OSError, e: if args[0] != "notifd": print >>sys.stderr, "(%s) launch failed: %d (%s)" % (args[0],e.errno, e.strerror) pass os._exit(127) salome-kernel-6.5.0/bin/setenv.py000077500000000000000000000221521177004724000167150ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os, string, glob, time, pickle import orbmodule from launchConfigureParser import verbose # this file is extraction of set_env from runSalome.py # for reusage in automated tests # salome_subdir variable is used for composing paths like $KERNEL_ROOT_DIR/share/salome/resources, etc. # before moving to SUIT-based gui, instead of salome_subdir there was args['appname'] used. # but after - 'appname' = "SalomeApp", so using it in making the subdirectory is an error. salome_subdir = "salome" # ----------------------------------------------------------------------------- def add_path(directory, variable_name): """Function helper to add environment variables""" if sys.platform == "win32": splitsym = ";" else: splitsym = ":" if not os.environ.has_key(variable_name): os.environ[variable_name] = "" pass if os.path.exists(directory): newpath=[] for _dir in os.environ[variable_name].split(splitsym): if os.path.exists(_dir): if sys.platform != "win32": if not os.path.samefile(_dir, directory): newpath.append(_dir) else: newpath.append(_dir) else: if os.path.abspath(_dir) != os.path.abspath(directory): newpath.append(_dir) pass import string newpath[:0] = [ directory ] newpath = string.join(newpath, splitsym) os.environ[variable_name] = newpath if variable_name == "PYTHONPATH": sys.path[:0] = [directory] # ----------------------------------------------------------------------------- __lib__dir__ = None def get_lib_dir(): global __lib__dir__ if __lib__dir__: return __lib__dir__ import platform __lib__dir__ = "lib" return __lib__dir__ # ----------------------------------------------------------------------------- def get_config(silent=False): """ Get list of modules, paths. Read args from launch configure xml file and command line options. Check variables _ROOT_DIR and set list of used modules. Return args, modules_list, modules_root_dir """ # read args from launch configure xml file and command line options #*** Test additional option #*** import optparse #*** help_str = "Test options addition." #*** o_j = optparse.Option("-j", "--join", action="store_true", dest="join", help=help_str) import launchConfigureParser args = launchConfigureParser.get_env() #*** Test additional option #*** args = launchConfigureParser.get_env([o_j]) #*** if args.has_key("join"): print args["join"] # Check variables _ROOT_DIR # and set list of used modules (without KERNEL) modules_list = [] if args.has_key("modules"): modules_list += args["modules"] # KERNEL must be last in the list to locate it at the first place in PATH if args["gui"] : modules_list[:0] = ["GUI"] modules_list[:0] = ["KERNEL"] modules_list.reverse() modules_root_dir = {} to_remove_list=[] for module in modules_list : module_variable=module+"_ROOT_DIR" if not os.environ.has_key(module_variable): if not silent: print "*******************************************************" print "*" print "* Environment variable",module_variable,"must be set" print "* Module", module, "will be not available" print "*" print "********************************************************" pass to_remove_list.append(module) continue pass module_root_dir = os.environ[module_variable] modules_root_dir[module]=module_root_dir for to_remove in to_remove_list: modules_list.remove(to_remove) while "KERNEL" in modules_list: modules_list.remove("KERNEL") pass while "GUI" in modules_list: modules_list.remove("GUI") pass return args, modules_list, modules_root_dir # ----------------------------------------------------------------------------- def set_env(args, modules_list, modules_root_dir, silent=False): """Add to the PATH-variables modules specific paths""" import os from salome_utils import getTmpDir, generateFileName, makeTmpDir, getPortNumber # create temporary directory for environment files needed by modules from the list port = getPortNumber(False) if port: tmp_dir = getTmpDir() env_dir = generateFileName(tmp_dir, prefix="env", with_port=True) makeTmpDir(env_dir) pass python_version="python%d.%d" % sys.version_info[0:2] modules_root_dir_list = [] if os.getenv('SALOME_BATCH') == None: os.putenv('SALOME_BATCH','0') if args["gui"] : modules_list = modules_list[:] + ["GUI"] modules_list = modules_list[:] + ["KERNEL"] for module in modules_list : if modules_root_dir.has_key(module): module_root_dir = modules_root_dir[module] modules_root_dir_list[:0] = [module_root_dir] if sys.platform == "win32": add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir), "PATH") else: add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir), "LD_LIBRARY_PATH") add_path(os.path.join(module_root_dir,"bin",salome_subdir), "PATH") if os.path.exists(module_root_dir + "/examples") : add_path(os.path.join(module_root_dir,"examples"), "PYTHONPATH") pass add_path(os.path.join(module_root_dir,"bin",salome_subdir), "PYTHONPATH") # add lib before site-packages to load script instead of dll if any (win32 platform) add_path(os.path.join(module_root_dir,get_lib_dir(),salome_subdir), "PYTHONPATH") add_path(os.path.join(module_root_dir,get_lib_dir(), python_version,"site-packages", salome_subdir), "PYTHONPATH") import platform if platform.machine() == "x86_64": add_path(os.path.join(module_root_dir,"lib64", python_version,"site-packages", salome_subdir), "PYTHONPATH") pass add_path(os.path.join(module_root_dir,get_lib_dir(), python_version,"site-packages", salome_subdir, "shared_modules"), "PYTHONPATH") # set environment by modules from the list if port: try: mod=__import__(module.lower()+"_setenv") mod.set_env(args) pass except: pass pass pass pass if sys.platform == 'win32': os.environ["SALOMEPATH"]=";".join(modules_root_dir_list) else: os.environ["SALOMEPATH"]=":".join(modules_root_dir_list) # set trace environment variable if not os.environ.has_key("SALOME_trace"): os.environ["SALOME_trace"]="local" if args['file']: os.environ["SALOME_trace"]="file:"+args['file'][0] if args['logger']: os.environ["SALOME_trace"]="with_logger" # set resources variables if not yet set os.environ["CSF_SALOMEDS_ResourcesDefaults"] \ = os.path.join(modules_root_dir["KERNEL"],"share", salome_subdir,"resources","kernel") # ----------------------------------------------------------------------------- def main(silent=False): args, modules_list, modules_root_dir = get_config(silent=silent) set_env(args, modules_list, modules_root_dir, silent=silent) return args # ----------------------------------------------------------------------------- if __name__ == "__main__": import user args = main() salome-kernel-6.5.0/bin/showNS.py000077500000000000000000000021621177004724000166310ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file showNS.py # \brief display the contents of %SALOME naming service # import orbmodule clt=orbmodule.client() clt.showNS() salome-kernel-6.5.0/bin/shutdownSalome.py000077500000000000000000000024311177004724000204230ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file shutdownSalome.py # shutdown all %SALOME servers and naming service # import time import salome_kernel orb, lcc, naming_service, cm = salome_kernel.salome_kernel_init() lcc.shutdownServers() #give some time to shutdown to complete time.sleep(1) salome_kernel.LifeCycleCORBA.killOmniNames() salome-kernel-6.5.0/bin/virtual_salome.py000077500000000000000000000277521177004724000204520ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """Create a virtual Salome installation Based on a script created by Ian Bicking. Typical use:: python virtual_salome.py -v --prefix="." --module=/local/chris/SALOME2/RELEASES/Install/KERNEL_V3_1_0b1 install module KERNEL in the current directory """ import sys, os, optparse, shutil,glob,fnmatch py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) verbose=0 # ----------------------------------------------------------------------------- def mkdir(path): """Create a directory and all the intermediate directories if path does not exist""" if not os.path.exists(path): if verbose: print 'Creating %s' % path os.makedirs(path) else: if verbose: print 'Directory %s already exists' % path pass pass # ----------------------------------------------------------------------------- def symlink(src, dest): """Create a link if it does not exist""" if not os.path.exists(dest): if os.path.lexists(dest): print "Do not create symlink %s. It already exists but it's broken" % dest return if verbose: print 'Creating symlink %s' % dest pass os.symlink(src, dest) else: if verbose: print 'Symlink %s already exists' % dest pass pass # ----------------------------------------------------------------------------- def rmtree(dir): """Remove (recursive) a directory if it exists""" if os.path.exists(dir): print 'Deleting tree %s' % dir shutil.rmtree(dir) else: if verbose: print 'Do not need to delete %s; already gone' % dir pass pass pass # ----------------------------------------------------------------------------- __lib__dir__ = None def get_lib_dir(): global __lib__dir__ if __lib__dir__: return __lib__dir__ import platform __lib__dir__ = "lib" return __lib__dir__ # ----------------------------------------------------------------------------- def link_module(options): global verbose if not options.module: print "Option module is mandatory" return module_dir=os.path.abspath(options.module) if not os.path.exists(module_dir): print "Module %s does not exist" % module_dir return verbose = options.verbose home_dir = os.path.expanduser(options.prefix) #try to find python version of salome application and put it in versio pys=[os.path.split(s)[1] for s in glob.glob(os.path.join(home_dir,get_lib_dir(),"python*.*"))] if not pys : versio=None else: versio=pys[0] pys=[os.path.split(s)[1] for s in glob.glob(os.path.join(module_dir,get_lib_dir(),"python*.*"))] #check if the module has a python version compatible with application version if not pys : pyversio=versio or py_version elif versio is None: pyversio=pys[0] elif versio in pys: pyversio=versio else: #incompatible python versions print "incompatible python versions : application has version %s and module %s has not" % (versio,module_dir) return module_bin_dir=os.path.join(module_dir,'bin','salome') module_idl_dir=os.path.join(module_dir,'idl','salome') module_lib_dir=os.path.join(module_dir,get_lib_dir(),'salome') module_lib_py_dir=os.path.join(module_dir,get_lib_dir(),pyversio,'site-packages','salome') module_lib_py_shared_dir=os.path.join(module_dir,get_lib_dir(),pyversio, 'site-packages','salome','shared_modules') module_share_dir=os.path.join(module_dir,'share','salome') module_doc_gui_dir=os.path.join(module_dir,'doc','salome','gui') module_doc_tui_dir=os.path.join(module_dir,'doc','salome','tui') module_doc_dir=os.path.join(module_dir,'doc','salome') module_sharedoc_dir=os.path.join(module_dir,'share','doc','salome') module_sharedoc_gui_dir=os.path.join(module_dir,'share','doc','salome','gui') module_sharedoc_tui_dir=os.path.join(module_dir,'share','doc','salome','tui') bin_dir=os.path.join(home_dir,'bin','salome') idl_dir=os.path.join(home_dir,'idl','salome') lib_dir=os.path.join(home_dir,'lib','salome') lib_py_dir=os.path.join(home_dir,'lib',pyversio,'site-packages','salome') lib_py_shared_dir=os.path.join(home_dir,'lib',pyversio, 'site-packages','salome','shared_modules') share_dir=os.path.join(home_dir,'share','salome') doc_gui_dir=os.path.join(home_dir,'doc','salome','gui') doc_tui_dir=os.path.join(home_dir,'doc','salome','tui') doc_dir=os.path.join(home_dir,'doc','salome') sharedoc_dir=os.path.join(home_dir,'share','doc','salome') sharedoc_gui_dir=os.path.join(home_dir,'share','doc','salome','gui') sharedoc_tui_dir=os.path.join(home_dir,'share','doc','salome','tui') if options.clear: rmtree(bin_dir) rmtree(idl_dir) rmtree(lib_dir) rmtree(lib_py_dir) rmtree(share_dir) rmtree(doc_dir) rmtree(sharedoc_dir) pass #directory bin/salome : create it and link content if os.path.exists(module_bin_dir): mkdir(bin_dir) for fn in os.listdir(module_bin_dir): symlink(os.path.join(module_bin_dir, fn), os.path.join(bin_dir, fn)) pass pass else: if verbose: print module_bin_dir, " doesn't exist" pass #directory idl/salome : create it and link content if os.path.exists(module_idl_dir): mkdir(idl_dir) for fn in os.listdir(module_idl_dir): symlink(os.path.join(module_idl_dir, fn), os.path.join(idl_dir, fn)) else: if verbose: print module_idl_dir, " doesn't exist" #directory lib/salome : create it and link content if os.path.exists(module_lib_dir): mkdir(lib_dir) for fn in os.listdir(module_lib_dir): symlink(os.path.join(module_lib_dir, fn), os.path.join(lib_dir, fn)) pass pass else: if verbose: print module_lib_dir, " doesn't exist" pass #directory lib/pyversio/site-packages/salome : create it and link content if not os.path.exists(module_lib_py_dir): print "Python directory %s does not exist" % module_lib_py_dir else: # Specific action for the package salome module_lib_pypkg_dir=os.path.join(module_lib_py_dir,"salome") lib_pypkg_dir=os.path.join(lib_py_dir,"salome") mkdir(lib_pypkg_dir) mkdir(lib_py_shared_dir) for fn in os.listdir(module_lib_py_dir): if fn == "shared_modules": continue if fn == "salome": continue symlink(os.path.join(module_lib_py_dir, fn), os.path.join(lib_py_dir, fn)) pass if os.path.exists(module_lib_py_shared_dir): for fn in os.listdir(module_lib_py_shared_dir): symlink(os.path.join(module_lib_py_shared_dir, fn), os.path.join(lib_py_shared_dir, fn)) pass pass if os.path.exists(module_lib_pypkg_dir): for fn in os.listdir(module_lib_pypkg_dir): symlink(os.path.join(module_lib_pypkg_dir, fn), os.path.join(lib_pypkg_dir, fn)) pass pass else: if verbose: print module_lib_py_shared_dir, " doesn't exist" pass #directory share/doc/salome (KERNEL doc) : create it and link content if os.path.exists(module_sharedoc_dir): mkdir(sharedoc_dir) for fn in os.listdir(module_sharedoc_dir): if fn == 'gui':continue if fn == 'tui':continue symlink(os.path.join(module_sharedoc_dir, fn), os.path.join(sharedoc_dir, fn)) pass pass #directory share/doc/salome/gui : create it and link content if os.path.exists(module_sharedoc_gui_dir): mkdir(sharedoc_gui_dir) for fn in os.listdir(module_sharedoc_gui_dir): symlink(os.path.join(module_sharedoc_gui_dir, fn), os.path.join(sharedoc_gui_dir, fn)) pass pass #directory share/doc/salome/tui : create it and link content if os.path.exists(module_sharedoc_tui_dir): mkdir(sharedoc_tui_dir) for fn in os.listdir(module_sharedoc_tui_dir): symlink(os.path.join(module_sharedoc_tui_dir, fn), os.path.join(sharedoc_tui_dir, fn)) pass pass #directory share/salome : create it and link content if os.path.exists(module_share_dir): mkdir(share_dir) for fn in os.listdir(module_share_dir): if fn in ["resources","plugins"] : # Create the directory and then link the content mkdir(os.path.join(share_dir,fn)) for ffn in os.listdir(os.path.join(module_share_dir,fn)): symlink(os.path.join(module_share_dir, fn, ffn), os.path.join(share_dir,fn, ffn)) else: #other directories (not resources) symlink(os.path.join(module_share_dir, fn), os.path.join(share_dir, fn)) else: print "share/salome directory %s does not exist" % module_share_dir pass #html files in doc/salome directory if os.path.exists(module_doc_dir): mkdir(doc_dir) for fn in os.listdir(module_doc_dir): if fn == 'gui':continue if fn == 'tui':continue symlink(os.path.join(module_doc_dir, fn), os.path.join(doc_dir, fn)) pass pass #directory doc/salome/gui : create it and link content if os.path.exists(module_doc_gui_dir): mkdir(doc_gui_dir) for fn in os.listdir(module_doc_gui_dir): symlink(os.path.join(module_doc_gui_dir, fn), os.path.join(doc_gui_dir, fn)) pass pass #directory doc/salome/tui : create it and link content if os.path.exists(module_doc_tui_dir): mkdir(doc_tui_dir) for fn in os.listdir(module_doc_tui_dir): symlink(os.path.join(module_doc_tui_dir, fn), os.path.join(doc_tui_dir, fn)) pass pass # ----------------------------------------------------------------------------- def main(): usage="""usage: %prog [options] Typical use is: python virtual_salome.py -v --prefix="." --module=/local/chris/SALOME2/RELEASES/Install/KERNEL_V3_1_0b1 """ parser = optparse.OptionParser(usage=usage) parser.add_option('-v', '--verbose', action='count', dest='verbose', default=0, help="Increase verbosity") parser.add_option('--prefix', dest="prefix", default='.', help="The base directory to install to (default .)") parser.add_option('--module', dest="module", help="The module directory to install in (mandatory)") parser.add_option('--clear', dest='clear', action='store_true', help="Clear out the install and start from scratch") options, args = parser.parse_args() link_module(options) pass # ----------------------------------------------------------------------------- if __name__ == '__main__': main() pass salome-kernel-6.5.0/bin/waitContainers.py000077500000000000000000000051011177004724000203760ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file waitContainers.py # \brief command to wait until containers are launched # # the container names (in naming service) are passed on the command line as in : # waitContainers.py FactoryServer import sys import time import orbmodule import CosNaming clt = orbmodule.client() clt.waitNS("/ContainerManager") obj = clt.orb.resolve_initial_references("NameService") rootContext = obj._narrow(CosNaming.NamingContext) cname = [] cname.append(CosNaming.NameComponent('Containers', 'dir')) while(1): try: ccontext = rootContext.resolve(cname) break except CosNaming.NamingContext.NotFound, ex: time.sleep(1) except CosNaming.NamingContext.InvalidName, ex: time.sleep(1) except CosNaming.NamingContext.CannotProceed, ex: time.sleep(1) except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): time.sleep(1) def waitContainer(mycont): while(1): bl,bi=ccontext.list(0) if bi is not None: ok,b=bi.next_one() while(ok): for s in b.binding_name : if s.kind == "dir": obj=ccontext.resolve([s]) scontext = obj._narrow(CosNaming.NamingContext) bll,bii=scontext.list(0) if bii is not None: ok,bb=bii.next_one() while(ok): for s in bb.binding_name : if s.id == mycont: print s.id return ok,bb=bii.next_one() ok,b=bi.next_one() sys.stdout.write('+') sys.stdout.flush() time.sleep(1) for cont in sys.argv: if cont != sys.argv[0]: waitContainer(cont) salome-kernel-6.5.0/bin/waitNS.py000077500000000000000000000022161177004724000166150ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## \file waitNS.py # \brief command to wait until module catalog server is launched # import orbmodule clt=orbmodule.client() clt.waitNS("/Kernel/ModulCatalog") salome-kernel-6.5.0/bin/waitNS.sh000077500000000000000000000021471177004724000166020ustar00rootroot00000000000000#! /bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # status=1 while [ $status -ne 0 ]; do ls $HOME/$APPLI/USERS/.omniORB_${USER}_last.cfg 2> /dev/null status=$? sleep 1 echo -n "#" done ./runSession waitNS.py salome-kernel-6.5.0/build_cmake000077500000000000000000000017751177004724000164610ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # CURRENT_DIR=`pwd` CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` cd ${CONF_DIR} python salome_adm/cmake_files/am2cmake.py --kernel status=$? cd ${CURRENT_DIR} exit $status salome-kernel-6.5.0/build_cmake.bat000077500000000000000000000016551177004724000172230ustar00rootroot00000000000000@REM Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE @REM @REM This library is free software; you can redistribute it and/or @REM modify it under the terms of the GNU Lesser General Public @REM License as published by the Free Software Foundation; either @REM version 2.1 of the License. @REM @REM This library is distributed in the hope that it will be useful, @REM but WITHOUT ANY WARRANTY; without even the implied warranty of @REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @REM Lesser General Public License for more details. @REM @REM You should have received a copy of the GNU Lesser General Public @REM License along with this library; if not, write to the Free Software @REM Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA @REM @REM See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com @REM %PYTHONBIN% salome_adm\cmake_files\am2cmake.py --kernel salome-kernel-6.5.0/build_configure000077500000000000000000000104121177004724000173460ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ==================================================================== # This script is just here to illustrate the procedure for preparing # the configure process. It creates configuration files (ex: # ltmain.sh) using libtoolize, the aclocal macro, the configure script # using autoconf and some scripts used in building process (ex: # install-sh) using automake. Automake is used here to creates the # files Makefile.in from the files Makefile.am. # ==================================================================== # CONF_DIR is the path containing the present script # CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` cd ${CONF_DIR} # ____________________________________________________________________ # aclocal creates the aclocal.m4 file from the standard macro and the # custom macro embedded in the directory salome_adm/unix/config_files. # output: # aclocal.m4 # autom4te.cache (directory) echo "====================================================== aclocal" aclocal -I salome_adm/unix/config_files || exit 1 # ____________________________________________________________________ # libtoolize creates some configuration files (ltmain.sh, # config.guess and config.sub). It only depends on the libtool # version. The files are created in the directory specified with the # AC_CONFIG_AUX_DIR() tag (see configure.ac). # output: # salome_adm/unix/config_files/config.guess # salome_adm/unix/config_files/config.sub # salome_adm/unix/config_files/ltmain.sh echo "====================================================== libtoolize" libtoolize --force --copy --automake || exit 1 # ____________________________________________________________________ # autoconf creates the configure script from the file configure.ac (or # configure.in if configure.ac doesn't exist) # output: # configure echo "====================================================== autoconf" autoconf # ____________________________________________________________________ # autoheader creates config.h.in # output: # configure #echo "====================================================== autoheader" #autoheader # ____________________________________________________________________ # automake creates some scripts used in building process # (install-sh, missing, ...). It only depends on the automake # version. The files are created in the directory specified with the # AC_CONFIG_AUX_DIR() tag (see configure.ac). This step also # creates the Makefile.in files from the Makefile.am files. # output: # salome_adm/unix/config_files/compile # salome_adm/unix/config_files/depcomp # salome_adm/unix/config_files/install-sh # salome_adm/unix/config_files/missing # salome_adm/unix/config_files/py-compile # Makefile.in (from Makefile.am) echo "====================================================== automake" automake --add-missing --copy --gnu # ____________________________________________________________________ # # Note that automake could be executed at last after autoconf. The # order doesn't matter. # # When modifying a Makefile.am file, after a first step of # configure+make, you just have to : # - go to the top source directory and run automake, to rebuild the Makefile.in, # - go to the top build directory and run config.status to rebuild the # Makefile from the Makefile.in, # - go to the source directory being modified, and then run make. # salome-kernel-6.5.0/clean_configure000077500000000000000000000034131177004724000173340ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # rm -rf autom4te.cache aclocal.m4 configure make_config find . -name "*~" -print -exec rm {} \; find . -name "*.pyc" -print -exec rm {} \; #exit # ==================== ON SORT AVANT here=`pwd` libdir=salome_adm/unix/config_files cd $libdir # Files created by libtoolize rm -f config.guess config.sub ltmain.sh rm -f mdate-sh texinfo.tex rm -f lt~obsolete.m4 ltversion.m4 ltsugar.m4 ltoptions.m4 libtool.m4 # Files created by automake rm -rf install-sh missing compile depcomp py-compile cd $here find bin -name Makefile.in | xargs rm -f find doc -name Makefile.in | xargs rm -f find idl -name Makefile.in | xargs rm -f find resources -name Makefile.in | xargs rm -f find salome_adm -name Makefile.in | xargs rm -f find src -name Makefile.in | xargs rm -f rm -f Makefile.in # Other files cd doc/salome rm -f Batch.info stamp-vti version.texi salome-kernel-6.5.0/configure000077500000000000000000033230211177004724000161750ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.64 for Salome2 Project 6.5.0. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software # Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and paul.rascle@edf.fr $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_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 <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then 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 && { 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' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # 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. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_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' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "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 configure 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' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "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 echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "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-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Salome2 Project' PACKAGE_TARNAME='SalomeKERNEL' PACKAGE_VERSION='6.5.0' PACKAGE_STRING='Salome2 Project 6.5.0' PACKAGE_BUGREPORT='paul.rascle@edf.fr' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS SETX SPHINX_IS_OK_FALSE SPHINX_IS_OK_TRUE SPHINX WINDOWS_FALSE WINDOWS_TRUE RST2HTML_IS_OK_FALSE RST2HTML_IS_OK_TRUE RST2HTML PDFLATEX DVIPS LATEX DOT DOXYGEN_SUPPORT_STL DOXYGEN_WITH_STL DOXYGEN_PYTHON_EXTENSION DOXYGEN_WITH_PYTHON DOXYGEN WITH_LIBBATCH_FALSE WITH_LIBBATCH_TRUE LIBBATCH_LIBS LIBBATCH_INCLUDES CPPUNIT_IS_OK_FALSE CPPUNIT_IS_OK_TRUE cppunit_ok CPPUNIT_LIBS CPPUNIT_INCLUDES WITH_PACO_PARALLEL_FALSE WITH_PACO_PARALLEL_TRUE PACO_LIBS PACO_INCLUDES PACOPATH PACO_IDL BOOST_PROGRAM_OPTIONS_LIB BOOST_LIB_REGEX BOOST_LIB_SYSTEM BOOST_LIB_SIGNALS BOOST_LIB_THREAD BOOST_LIBS BOOST_LIBSUFFIX BOOST_CPPFLAGS IDL_SRV_OBJ IDL_SRV_CXX IDL_SRV_H IDL_CLN_OBJ IDL_CLN_CXX IDL_CLN_H IDLPYFLAGS PACOIDLCXXFLAGS IDLCXXFLAGS CORBA_LIBS CORBA_CXXFLAGS CORBA_INCLUDES CORBA_ROOT IDL OMNIORB_IDL_TIE_CXX OMNIORB_IDL_TIE_H OMNIORB_IDL_SRV_OBJ OMNIORB_IDL_SRV_CXX OMNIORB_IDL_SRV_H OMNIORB_IDL_CLN_OBJ OMNIORB_IDL_CLN_CXX OMNIORB_IDL_CLN_H OMNIORB_IDLPYFLAGS OMNIORB_PACOIDLCXXFLAGS OMNIORB_IDLCXXFLAGS OMNIORB_LIBS OMNIORB_CXXFLAGS OMNIORB_INCLUDES OMNIORB_ROOT OMNIORB_IDL SOCKETFLAGS SOCKETLIBS HDF5HOME HDF5_MT_LIBS HDF5_LIBS HDF5_INCLUDES MPI2_IS_OK_FALSE MPI2_IS_OK_TRUE MPI_IS_OK_FALSE MPI_IS_OK_TRUE mpi2_ok mpi_ok MPI_LIBS MPI_INCLUDES WITHMPI LIBXML_LIBS LIBXML_INCLUDES SWIG_FLAGS SWIG pkgpyexecdir pyexecdir pkgpythondir PYTHON_EXEC_PREFIX pythondir PYTHON_SITE_INSTALL PYTHON_SITE_EXEC PYTHON_SITE_PACKAGE PYTHON_SITE PYTHON_PLATFORM PYTHON_LIBS PYTHON_INCLUDES PYTHON_VERSION PYTHONHOME PYTHON_PREFIX PYTHON PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC acx_pthread_config LONG_OR_INT CALCIUM_CORBA_INT_F77 CALCIUM_IDL_INT_F77 FLIBS ac_ct_F77 FFLAGS F77 STDLIB LDEXPDYNFLAGS LIB_LOCATION_SUFFIX HAVE_SSTREAM MACHINE CXX_DEPEND_FLAG C_DEPEND_FLAG DEPCXXFLAGS DEPCXX DEPCC CXXTMPDPTHFLAGS CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC LIBTOOL PYLOGLEVEL WITH_MPI_SEQ_CONTAINER_FALSE WITH_MPI_SEQ_CONTAINER_TRUE GLOBAL_INSTALL INSTALL AR WITHONLYLAUNCHER_FALSE WITHONLYLAUNCHER_TRUE CORBA_GEN_FALSE CORBA_GEN_TRUE ROOT_BUILDDIR ROOT_SRCDIR MODULE_NAME VERSION_DEV XVERSION am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='CORBA COMMENCE CONCLUDE MODULE DEPEND' ac_user_opts=' enable_option_checking enable_corba_gen with_onlylauncher enable_debug enable_production enable_mpi_seq_container enable_static enable_shared with_pic enable_fast_install enable_dependency_tracking with_gnu_ld enable_libtool_lock with_cal_int with_python with_python_site with_python_site_exec with_swig with_libxml with_mpi_lib with_mpi_include with_mpi with_mpich with_lam with_openmpi with_hdf5 with_boost with_paco enable_parallel_extension with_cppunit with_cppunit_inc with_libbatch ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP F77 FFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Salome2 Project 6.5.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/SalomeKERNEL] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Salome2 Project 6.5.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-corba-gen Generate CORBA stuff [default=yes] --enable-debug build with debug and trace information [default=no] --enable-production compile in optimized mode [default=no] --enable-mpi-seq-container enable mpi into seq container [default=no] --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-libtool-lock avoid locking (might break parallel builds) --enable-parallel_extension parallel kernel extension = no/yes (default is no) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-onlylauncher Build only launcher and resources manager [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-cal_int= Use for mapping a Fortran integer in C within CALCIUM C/F77 interfaces. --with-python=DIR root directory path of python installation --with-python-site=DIR Use DIR for installing platform independent Python site-packages --with-python-site-exec=DIR Use DIR for installing platform dependent Python site-packages --with-swig=EXEC swig executable --with-libxml=DIR root directory path to LIBXML library installation --with-mpi_lib=DIR directory path of MPICH lib installation --with-mpi_include=DIR directory path of MPICH header file installation --with-mpi=DIR root directory path of MPICH installation --with-mpich=DIR root directory path of MPICH installation --with-lam=DIR root directory path of LAM installation --with-openmpi=DIR root directory path of openmpi installation --with-hdf5=DIR root directory path to hdf5 installation --with-boost=DIR root directory path to BOOST library installation --with-paco=DIR root directory path of PaCO++ installation --with-cppunit=DIR directory path to CPPUNIT installation --with-cppunit_inc=DIR directory path to CPPUNIT includes --with-libbatch=DIR root directory path of libBatch installation Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Salome2 Project configure 6.5.0 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* 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_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_cxx_try_link # ac_fn_cxx_try_run LINENO # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_cxx_try_run # ac_fn_cxx_compute_int LINENO EXPR VAR INCLUDES # ---------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_cxx_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_f77_try_compile # ac_fn_f77_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_f77_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_f77_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( cat <<\_ASBOX ## --------------------------------- ## ## Report this to paul.rascle@edf.fr ## ## --------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES # --------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_cxx_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( cat <<\_ASBOX ## --------------------------------- ## ## Report this to paul.rascle@edf.fr ## ## --------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_cxx_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Salome2 Project $as_me 6.5.0, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # AC_CONFIG_AUX_DIR defines an alternative directory where to find the auxiliary # scripts such as config.guess, install-sh, ... ac_aux_dir= for ac_dir in salome_adm/unix/config_files "$srcdir"/salome_adm/unix/config_files; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in salome_adm/unix/config_files \"$srcdir\"/salome_adm/unix/config_files" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if test "${ac_cv_target+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='SalomeKERNEL' VERSION='6.5.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 $as_echo_n "checking how to create a pax tar archive... " >&6; } # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' _am_tools=${am_cv_prog_tar_pax-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x pax -w "$$tardir"' am__tar_='pax -L -x pax -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H pax -L' am__tar_='find "$tardir" -print | cpio -o -H pax -L' am__untar='cpio -i -H pax -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_pax}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if test "${am_cv_prog_tar_pax+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_pax=$_am_tool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 $as_echo "$am_cv_prog_tar_pax" >&6; } #AC_CONFIG_HEADER([config.h]) XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` VERSION_DEV=0 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) MODULE_NAME=kernel echo echo --------------------------------------------- echo Initialize source and build root directories echo --------------------------------------------- echo # # This function return on stdout the absolute path of the filename in # argument. Exemple: # $ filename="../KERNEL_SRC/configure # $ absfilename=`absolute_path $filename` function absolute_path { filename=$1 here=`pwd` apath=`dirname $filename` cd $apath apath=`pwd` cd $here echo $apath } # Build directory, where the configure script is executed. ROOT_BUILDDIR=`pwd` # Source directory, where the configure script is located. ROOT_SRCDIR=`absolute_path $0` echo echo Source root directory : $ROOT_SRCDIR echo Build root directory : $ROOT_BUILDDIR # ---------------------------------------------------------------------------- # --- test options # Check whether --enable-corba_gen was given. if test "${enable_corba_gen+set}" = set; then : enableval=$enable_corba_gen; case "${enableval}" in yes) corba_gen=true ;; no) corba_gen=false ;; *) as_fn_error "bad value ${enableval} for --enable-corba-gen" "$LINENO" 5 ;; esac else corba_gen=true fi if test x$corba_gen = xtrue; then CORBA_GEN_TRUE= CORBA_GEN_FALSE='#' else CORBA_GEN_TRUE='#' CORBA_GEN_FALSE= fi # ---- option to build only launcher and resources manager # Check whether --with-onlylauncher was given. if test "${with_onlylauncher+set}" = set; then : withval=$with_onlylauncher; else with_onlylauncher="no" fi if test x$with_onlylauncher = xyes; then WITHONLYLAUNCHER_TRUE= WITHONLYLAUNCHER_FALSE='#' else WITHONLYLAUNCHER_TRUE='#' WITHONLYLAUNCHER_FALSE= fi if test "$with_onlylauncher" != "yes"; then $as_echo "#define HAVE_SALOME_CONFIG /**/" >>confdefs.h fi # ---------------------------------------------------------------------------- echo echo echo ============================================================ echo testing general mandatory products - for all configurations echo ============================================================ echo # Extract the first word of "sh", so it can be a program name with args. set dummy sh; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_SHELL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$SHELL"; then ac_cv_prog_SHELL="$SHELL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_SHELL="" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SHELL=$ac_cv_prog_SHELL if test -n "$SHELL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHELL" >&5 $as_echo "$SHELL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$AR"; then for ac_prog in ar xar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done test -n "$AR" || AR=":" fi echo echo --------------------------------------------- echo testing make echo --------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi GLOBAL_INSTALL=$INSTALL absdir=`pwd` INSTALL=${absdir}/local-install.sh cat > ${INSTALL} << EOF #!/bin/sh nb_args=\$# args=\$* if test \$nb_args -gt 1 ; then nb=\$(expr \$nb_args - 2) shift \$nb target=\$2 if test -f \$target ; then orig=\$1 if test -f \$orig ; then diff \$orig \$target > /dev/null 2>&1 if test \$? = 0 ; then echo \$orig and \$target are identical exit 0 fi fi fi fi ${GLOBAL_INSTALL} \$args EOF chmod +x ${INSTALL} echo echo --------------------------------------------- echo Configuring production echo --------------------------------------------- echo # production.m4 # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug=$enableval else enable_debug=no fi if test "X$enable_debug" = "Xyes"; then CFLAGS="$CFLAGS -g -D_DEBUG_ " CXXFLAGS="$CXXFLAGS -g -D_DEBUG_ " fi # Check whether --enable-production was given. if test "${enable_production+set}" = set; then : enableval=$enable_production; enable_production=$enableval else enable_production=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wparentheses" >&5 $as_echo_n "checking wether $CXX accepts -Wparentheses... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wparentheses | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wparentheses" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wreturn-type" >&5 $as_echo_n "checking wether $CXX accepts -Wreturn-type... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wreturn-type | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wreturn-type" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -fmessage-length=0" >&5 $as_echo_n "checking wether $CXX accepts -fmessage-length=0... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -fmessage-length=0 | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -fmessage-length=0" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wunused" >&5 $as_echo_n "checking wether $CXX accepts -Wunused... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wunused | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wunused" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -pipe" >&5 $as_echo_n "checking wether $CXX accepts -pipe... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -pipe | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -pipe" eval fi if test "X$enable_production" = "Xyes"; then CFLAGS="$CFLAGS -O" { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wuninitialized" >&5 $as_echo_n "checking wether $CXX accepts -Wuninitialized... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wuninitialized | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wuninitialized" eval fi CXXFLAGS="$CXXFLAGS -O " else CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" fi # Check whether --enable-mpi-seq-container was given. if test "${enable_mpi_seq_container+set}" = set; then : enableval=$enable_mpi_seq_container; enable_mpi_seq_container=$enableval else enable_mpi_seq_container=no fi if test "X$enable_mpi_seq_container" = "Xyes"; then CFLAGS="$CFLAGS -D_MPI_SEQ_CONTAINER_ " CXXFLAGS="$CXXFLAGS -D_MPI_SEQ_CONTAINER_ " fi if test "x$enable_mpi_seq_container" = "xyes"; then WITH_MPI_SEQ_CONTAINER_TRUE= WITH_MPI_SEQ_CONTAINER_FALSE='#' else WITH_MPI_SEQ_CONTAINER_TRUE='#' WITH_MPI_SEQ_CONTAINER_FALSE= fi # _GBO_SALOME_PYTHON_PACKAGING_ if test "X$enable_debug" = "Xyes"; then PYLOGLEVEL=DEBUG else PYLOGLEVEL=WARNING fi echo echo --------------------------------------------- echo testing libtool echo --------------------------------------------- echo # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; 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. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi enable_dlopen=yes case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6' macro_revision='1.3012' ltmain="$ac_aux_dir/ltmain.sh" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_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 # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5787: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5790: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5793: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_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 extended 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. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_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]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # 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]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && 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 $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" 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 $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6999 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; 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" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } 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 ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; 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. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; 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. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF 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 # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. 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' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&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 _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&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 _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8493: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8497: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8832: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8836: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8937: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8941: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8992: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8996: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # 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 extended regexp 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_|_GLOBAL__F[ID]_.*' # 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. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # 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 "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': 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 $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(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=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= 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 $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : 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 ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # 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 # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -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$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; 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 $linker_flags /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 $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' 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 $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) 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 $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" 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" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) 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. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH 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" # 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* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") 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}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 10729 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 ;; esac fi rm -rf conftest* ;; esac sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH 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" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent 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 "$_LT_TAGVAR(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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; 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 if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11382 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11478 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; 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 striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&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 ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: echo echo --------------------------------------------- echo testing C/C++ echo --------------------------------------------- echo cc_ok=no ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=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_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15039: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15043: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15138: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15142: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15190: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15194: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" 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" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) 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. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH 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" # 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* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") 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}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 15812 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 ;; esac fi rm -rf conftest* ;; esac sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH 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" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != 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 "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; 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 fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wparentheses" >&5 $as_echo_n "checking wether $CXX accepts -Wparentheses... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wparentheses | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wparentheses" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wreturn-type" >&5 $as_echo_n "checking wether $CXX accepts -Wreturn-type... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wreturn-type | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wreturn-type" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -Wunused" >&5 $as_echo_n "checking wether $CXX accepts -Wunused... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -Wunused | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -Wunused" eval fi for opt in -ftemplate-depth-42 "-pending_instantiations 42" ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts $opt" >&5 $as_echo_n "checking wether $CXX accepts $opt... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo $opt | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval flag=no else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXTMPDPTHFLAGS="${CXXTMPDPTHFLAGS} $opt" eval flag=yes fi if test "$flag" = "yes"; then break fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts -tweak" >&5 $as_echo_n "checking wether $CXX accepts -tweak... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo -tweak | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } CXXFLAGS="${CXXFLAGS} -tweak" eval fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking which flag for dependency information generation" >&5 $as_echo_n "checking which flag for dependency information generation... " >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "conftest.o: conftest.c" > conftest.verif echo "int main() { return 0; }" > conftest.c f77int="F77INT32" case $host_os in irix5.* | irix6.* | osf4.* | osf5.* | linux* ) linux64="true" # porting on intel processor 64 bits expr "$host_os" : 'linux' >/dev/null && ( test ! x"$host_cpu" = x"x86_64" && test ! x"$host_cpu" = x"ia64" ) && linux64="false" if test ! x"$linux64" = "xfalse" ; then echo "$as_me:$LINENO: checking for 64bits integers size in F77/F90" >&5 echo $ECHO_N "checking for 64bits integers size in F77/F90... $ECHO_C" >&6 # Check whether --enable-int64 or --disable-int64 was given. if test "${enable_int64+set}" = set; then enableval="$enable_int64" fi; case "X-$enable_int64" in X-no) echo "$as_me:$LINENO: result: \"disabled\"" >&5 echo "${ECHO_T}\"disabled\"" >&6 SUFFIXES="_32" ;; *) echo "$as_me:$LINENO: result: \"enabled\"" >&5 echo "${ECHO_T}\"enabled\"" >&6 SUFFIXES="" f77int="F77INT64" ;; esac fi ;; *) ;; esac case $host_os in linux*) # porting on intel processor 64 bits: if 64 bits processor, by default compilation in 64 bits if test x"$linux64" = x"true"; then \ MACHINE="PCLINUX64${SUFFIXES}"; CFLAGS=" -D_OCC64 ${CXXFLAGS}"; CXXFLAGS=" -D_OCC64 ${CXXFLAGS}";\ else \ MACHINE=PCLINUX; \ fi ;; hpux*) MACHINE=HP9000 ;; aix4.*) MACHINE=RS6000 host_os_novers=aix4.x ;; irix5.*) MACHINE="IRIX64${SUFFIXES}" host_os_novers=irix5.x ;; irix6.*) MACHINE="IRIX64${SUFFIXES}" host_os_novers=irix6.x ;; osf4.*) MACHINE="OSF1${SUFFIXES}" host_os_novers=osf4.x ;; osf5.*) MACHINE="OSF1${SUFFIXES}" host_os_novers=osf5.x ;; solaris2.*) MACHINE=SUN4SOL2 host_os_novers=solaris2.x ;; uxpv*) MACHINE=VPP5000 ;; *) MACHINE= host_os_novers=$host_os ;; esac case $host_os in osf*) DEPCC=gcc DEPCXX=g++ DEPCXXFLAGS= DIFFFLAGS="-w" ;; *) DEPCC=${CC-cc} DEPCXX=${CXX-c++} DEPCXXFLAGS="\${CXXFLAGS}" DIFFFLAGS="-b -B" ;; esac C_DEPEND_FLAG= for ac_C_DEPEND_FLAG in -xM -MM -M ; do rm -f conftest.d conftest.err ${DEPCC} ${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 ${DIFFFLAGS} conftest.d conftest.verif > conftest if test ! -s conftest ; then C_DEPEND_FLAG=${ac_C_DEPEND_FLAG} break fi done rm -f conftest.d conftest.err ${DEPCC} ${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 ${DIFFFLAGS} 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 printf " C : ${DEPCC} ${C_DEPEND_FLAG}" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu 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 ${DEPCXX} ${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 ${DIFFFLAGS} conftest.d conftest.verif > conftest if test ! -s conftest ; then CXX_DEPEND_FLAG=${ac_CXX_DEPEND_FLAG} break fi done rm -f conftest.d conftest.err ${DEPCXX} ${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 ${DIFFFLAGS} 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 printf " C++ : ${DEPCXX} ${CXX_DEPEND_FLAG}" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: result: ... done" >&5 $as_echo " ... done" >&6; } # AC_CC_WARNINGS([ansi]) cc_ok=yes { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF LIBS="-ldl $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 $as_echo_n "checking for nanosleep in -lrt... " >&6; } if test "${ac_cv_lib_rt_nanosleep+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nanosleep (); int main () { return nanosleep (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_rt_nanosleep=yes else ac_cv_lib_rt_nanosleep=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 $as_echo "$ac_cv_lib_rt_nanosleep" >&6; } if test "x$ac_cv_lib_rt_nanosleep" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBRT 1 _ACEOF LIBS="-lrt $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in -lm" >&5 $as_echo_n "checking for ceil in -lm... " >&6; } if test "${ac_cv_lib_m_ceil+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ceil (); int main () { return ceil (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_m_ceil=yes else ac_cv_lib_m_ceil=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_ceil" >&5 $as_echo "$ac_cv_lib_m_ceil" >&6; } if test "x$ac_cv_lib_m_ceil" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler use std iostream" >&5 $as_echo_n "checking whether the compiler use std iostream... " >&6; } cat > conftest.cxx < int main(int argc, char **argv) {std::cout << "Hello" << std::endl; return 0;} EOF fUSE_STD_IOSTREAM=no for ac_CXX_USE_STD_IOSTREAM in "" -D__USE_STD_IOSTREAM ; do if $CXX ${ac_CXX_USE_STD_IOSTREAM} conftest.cxx > /dev/null 2>&1; then CPPFLAGS="$CPPFLAGS ${ac_CXX_USE_STD_IOSTREAM}" if test x${ac_CXX_USE_STD_IOSTREAM} = x; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_CXX_USE_STD_IOSTREAM}" >&5 $as_echo "${ac_CXX_USE_STD_IOSTREAM}" >&6; } fi fUSE_STD_IOSTREAM=yes break fi done if test $fUSE_STD_IOSTREAM = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler implements namespaces" >&5 $as_echo_n "checking whether the compiler implements namespaces... " >&6; } if test "${ac_cv_cxx_namespaces+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ namespace Outer { namespace Inner { int i = 0; }} int main () { using namespace Outer::Inner; return i; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_cxx_namespaces=yes else ac_cv_cxx_namespaces=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_namespaces" >&5 $as_echo "$ac_cv_cxx_namespaces" >&6; } if test "$ac_cv_cxx_namespaces" = yes; then $as_echo "#define HAVE_NAMESPACES /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler has stringstream" >&5 $as_echo_n "checking whether the compiler has stringstream... " >&6; } if test "${ac_cv_prog_cxx_have_sstream+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cxx_have_sstream=no ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_NAMESPACES using namespace std; #endif int main () { stringstream message; message << "Hello"; return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_have_sstream=yes else ac_cv_prog_cxx_have_sstream=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_have_sstream" >&5 $as_echo "$ac_cv_prog_cxx_have_sstream" >&6; } HAVE_SSTREAM=$ac_cv_prog_cxx_have_sstream # Testing linker { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIB_LOCATION_SUFFIX..." >&5 $as_echo "$as_me: checking for LIB_LOCATION_SUFFIX..." >&6;} LIB_LOCATION_SUFFIX="" { $as_echo "$as_me:${as_lineno-$LINENO}: result: LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX" >&5 $as_echo "LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX" >&6; } for opt in "-Xlinker -export-dynamic" -transitive_link; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts $opt" >&5 $as_echo_n "checking wether $CXX accepts $opt... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo $opt | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval flag=no else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } LDEXPDYNFLAGS="${LDEXPDYNFLAGS} $opt" eval flag=yes fi if test "$flag" = "yes"; then break fi done for opt in "-Xlinker -enable-new-dtags" ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether $CXX accepts $opt" >&5 $as_echo_n "checking wether $CXX accepts $opt... " >&6; } cat > conftest.cxx < conftest.log 2>&1 var=`echo $opt | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } eval else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } LDFLAGS="${LDFLAGS} $opt" eval fi done case $host_os in osf*) STDLIB="-lcxxstd" ;; *) STDLIB="-lstdc++" ;; esac echo echo --------------------------------------------- echo testing Fortran INTEGER size for CALCIUM echo --------------------------------------------- echo ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 $as_echo "$F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 $as_echo "$ac_ct_F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 $as_echo "$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 $as_echo_n "checking whether $F77 accepts -g... " >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then : $as_echo_n "(cached) " >&6 else FFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_cv_prog_f77_g=yes else ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 $as_echo "$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi if test $ac_compiler_gnu = yes; then G77=yes else G77= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 $as_echo "$F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 $as_echo "$ac_ct_F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 $as_echo "$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 $as_echo_n "checking whether $F77 accepts -g... " >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then : $as_echo_n "(cached) " >&6 else FFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_cv_prog_f77_g=yes else ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 $as_echo "$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi if test $ac_compiler_gnu = yes; then G77=yes else G77= fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 $as_echo_n "checking how to get verbose linking output from $F77... " >&6; } if test "${ac_cv_prog_f77_v+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" eval "set x $ac_link" shift $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_f77_v_output=`echo $ac_f77_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $F77" >&5 $as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 $as_echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_v" >&5 $as_echo "$ac_cv_prog_f77_v" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 $as_echo_n "checking for Fortran 77 libraries of $F77... " >&6; } if test "${ac_cv_f77_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" eval "set x $ac_link" shift $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_f77_v_output=`echo $ac_f77_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \ |-LANG:=* | -LIST:* | -LNO:*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuYz]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -zallextract*| -zdefaultextract) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`$as_echo "$ac_f77_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_libs" >&5 $as_echo "$ac_cv_f77_libs" >&6; } FLIBS="$ac_cv_f77_libs" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5 $as_echo_n "checking for dummy main to link with Fortran 77 libraries... " >&6; } if test "${ac_cv_f77_dummy_main+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_fortran_dummy_main=none else ac_cv_fortran_dummy_main=unknown fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_fortran_dummy_main=$ac_func; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -rf conftest* LIBS=$ac_f77_dm_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_dummy_main" >&5 $as_echo "$ac_cv_f77_dummy_main" >&6; } F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then : if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then $as_echo "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h fi fi else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "linking to Fortran libraries from C fails See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5 $as_echo_n "checking for Fortran 77 name-mangling scheme... " >&6; } if test "${ac_cv_f77_mangling+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return $ac_func (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_success=yes; break 2 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return $ac_func (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_success_extra=yes; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -rf conftest* rm -f cfortran_test* else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compile a simple Fortran program See \`config.log' for more details." "$LINENO" 5; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_mangling" >&5 $as_echo "$ac_cv_f77_mangling" >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 $as_echo "$F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 $as_echo "$ac_ct_F77" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 rm -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 $as_echo "$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 $as_echo_n "checking whether $F77 accepts -g... " >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then : $as_echo_n "(cached) " >&6 else FFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_cv_prog_f77_g=yes else ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 $as_echo "$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi if test $ac_compiler_gnu = yes; then G77=yes else G77= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_direct_absolute_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no inherit_rpath_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` GCC=$G77 if test -n "$compiler"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&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 ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } GCC_F77="$G77" LD_F77="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_F77='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_F77='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='--shared' lt_prog_compiler_static_F77='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-qpic' lt_prog_compiler_static_F77='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_F77='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; rdos*) lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_F77" >&5 $as_echo "$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18491: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18495: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_F77=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_F77" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_F77" >&6; } if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_F77=yes fi else lt_cv_prog_compiler_static_works_F77=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_F77" >&5 $as_echo "$lt_cv_prog_compiler_static_works_F77" >&6; } if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18590: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:18594: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_F77" >&5 $as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18642: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:18646: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_F77" >&5 $as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_F77= always_export_symbols_F77=no archive_cmds_F77= archive_expsym_cmds_F77= compiler_needs_object_F77=no enable_shared_with_static_runtimes_F77=no export_dynamic_flag_spec_F77= export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic_F77=no hardcode_direct_F77=no hardcode_direct_absolute_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported inherit_rpath_F77=no link_all_deplibs_F77=unknown module_cmds_F77= module_expsym_cmds_F77= old_archive_from_new_cmds_F77= old_archive_from_expsyms_cmds_F77= thread_safe_flag_spec_F77= whole_archive_flag_spec_F77= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp 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_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # 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. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # 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 "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='' ;; m68k) archive_cmds_F77='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix[3-9]*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_F77= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_F77=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec_F77='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' archive_cmds_F77='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_direct_absolute_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes file_list_spec_F77='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_F77=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_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs_F77=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_F77='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='' ;; m68k) archive_cmds_F77='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # 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_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes allow_undefined_flag_F77="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs_F77=no fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes hardcode_direct_absolute_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes hardcode_direct_absolute_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat > conftest.$ac_ext <<_ACEOF int foo(void) {} _ACEOF if ac_fn_f77_try_link "$LINENO"; then : archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: inherit_rpath_F77=yes link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no hardcode_direct_absolute_F77=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_F77=no fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi archive_cmds_need_lc_F77='no' hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='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 $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds_F77='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_F77=yes ;; sunos4*) 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_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-R,$libdir' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec_F77='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_F77" >&5 $as_echo "$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no with_gnu_ld_F77=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_F77" >&5 $as_echo "$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" 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" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) 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. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) 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' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH 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" # 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* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") 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}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_F77\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_F77\"" cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 20203 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 ;; esac fi rm -rf conftest* ;; esac sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH 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" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$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.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || test -n "$runpath_var_F77" || test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_F77" != 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 "$_LT_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_F77" >&5 $as_echo "$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink || test "$inherit_rpath_F77" = yes; 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 fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 $as_echo_n "checking how to get verbose linking output from $F77... " >&6; } if test "${ac_cv_prog_f77_v+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" eval "set x $ac_link" shift $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_f77_v_output=`echo $ac_f77_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $F77" >&5 $as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 $as_echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_v" >&5 $as_echo "$ac_cv_prog_f77_v" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 $as_echo_n "checking for Fortran 77 libraries of $F77... " >&6; } if test "${ac_cv_f77_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" eval "set x $ac_link" shift $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_f77_v_output=`echo $ac_f77_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \ |-LANG:=* | -LIST:* | -LNO:*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuYz]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -zallextract*| -zdefaultextract) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`$as_echo "$ac_f77_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_libs" >&5 $as_echo "$ac_cv_f77_libs" >&6; } FLIBS="$ac_cv_f77_libs" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") $as_echo "#define F77_FUNC(name,NAME) name" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) name" >>confdefs.h ;; "lower case, no underscore, extra underscore") $as_echo "#define F77_FUNC(name,NAME) name" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, no extra underscore") $as_echo "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, extra underscore") $as_echo "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) name ## __" >>confdefs.h ;; "upper case, no underscore, no extra underscore") $as_echo "#define F77_FUNC(name,NAME) NAME" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) NAME" >>confdefs.h ;; "upper case, no underscore, extra underscore") $as_echo "#define F77_FUNC(name,NAME) NAME" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, no extra underscore") $as_echo "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, extra underscore") $as_echo "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h $as_echo "#define F77_FUNC_(name,NAME) NAME ## __" >>confdefs.h ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 $as_echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ## Guess where as cal_int type is provided by --with-cal_int option ## or auto-detection must be used # Check whether --with-cal_int was given. if test "${with_cal_int+set}" = set; then : withval=$with_cal_int; else withval=no fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if test "${ac_cv_sizeof_long+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "cannot compute sizeof (long) See \`config.log' for more details." "$LINENO" 5; }; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } if test "${ac_cv_sizeof_int+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "cannot compute sizeof (int) See \`config.log' for more details." "$LINENO" 5; }; } else ac_cv_sizeof_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 $as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF if test "x$withval" = "xno" then { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of Fortran integer" >&5 $as_echo_n "checking size of Fortran integer... " >&6; } if test "${ac_cv_sizeof_fortran_integer+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu cat > conftest.$ac_ext <<_ACEOF subroutine fsize() integer i(2) call csize(i(1), i(2)) end _ACEOF if ac_fn_f77_try_compile "$LINENO"; then : ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cp conftest.$ac_objext conftestf.$ac_objext old_LDFLAGS="$LDFLAGS" LDFLAGS="conftestf.$ac_objext $LDFLAGS" #"$ac_cv_f77_libs" if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run test program while cross compiling See \`config.log' for more details." "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # define CSIZE F77_FUNC(csize,CSIZE) # define FSIZE F77_FUNC(fsize,FSIZE) static long size_val; /* Called by Fortran */ void CSIZE (i1p, i2p) char *i1p, *i2p; { size_val = (i2p - i1p); } main() { FILE *f=fopen ("conftestval","w"); if (!f) return 1; /* Call the Fortran function */ FSIZE (); fprintf (f, "%d\n", size_val); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LDFLAGS="$old_LDFLAGS" ac_cv_sizeof_fortran_integer=`cat conftestval` rm -f conftestval conftestf.$ac_objext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_fortran_integer" >&5 $as_echo "$ac_cv_sizeof_fortran_integer" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_FORTRAN_INTEGER $ac_cv_sizeof_fortran_integer _ACEOF if test "x$ac_cv_sizeof_fortran_integer" = "x8" ; then $as_echo "#define HAVE_F77INT64 /**/" >>confdefs.h test "x$ac_cv_sizeof_long" = "x8" || as_fn_error "Size of C type long expected to be eight bytes" "$LINENO" 5 LONG_OR_INT="long" CALCIUM_IDL_INT_F77="long long" CALCIUM_CORBA_INT_F77="CORBA::LongLong" elif test "x$ac_cv_sizeof_fortran_integer" = "x4" ; then test "x$ac_cv_sizeof_int" = "x4" || as_fn_error "Size of C type int expected to be four bytes" "$LINENO" 5 LONG_OR_INT="int" CALCIUM_IDL_INT_F77="long" CALCIUM_CORBA_INT_F77="CORBA::Long" else as_fn_error "Size of Fortran type integer is neither four nor eigth bytes" "$LINENO" 5 fi elif test "x$withval" = "xint" then LONG_OR_INT="int" CALCIUM_IDL_INT_F77="long" CALCIUM_CORBA_INT_F77="CORBA::Long" { $as_echo "$as_me:${as_lineno-$LINENO}: Using C type int for cal_int" >&5 $as_echo "$as_me: Using C type int for cal_int" >&6;} elif test "x$withval" = "xlong" then LONG_OR_INT="long" CALCIUM_IDL_INT_F77="long long" CALCIUM_CORBA_INT_F77="CORBA::LongLong" { $as_echo "$as_me:${as_lineno-$LINENO}: Using C type long for cal_int" >&5 $as_echo "$as_me: Using C type long for cal_int" >&6;} else as_fn_error "Fortran type integer must be mapped to C type int or C type long" "$LINENO" 5 fi cat >>confdefs.h <<_ACEOF #define CAL_INT $LONG_OR_INT _ACEOF echo echo --------------------------------------------- echo testing threads echo --------------------------------------------- echo ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 $as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_join (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *linux*) # On linux "none" works, but boost requires -pthread, so, try first "-pthread" acx_pthread_flags="-pthread pthreads none -Kthread -kthread lthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" ;; *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthread or # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 $as_echo_n "checking whether pthreads work without any flags... " >&6; } ;; -*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 $as_echo_n "checking whether pthreads work with $flag... " >&6; } PTHREAD_CFLAGS="$flag" ;; pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_acx_pthread_config+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$acx_pthread_config"; then ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_acx_pthread_config="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" fi fi acx_pthread_config=$ac_cv_prog_acx_pthread_config if test -n "$acx_pthread_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 $as_echo "$acx_pthread_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 $as_echo_n "checking for the pthreads library -l$flag... " >&6; } PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: threads are created detached by default # and the JOINABLE attribute has a nonstandard name (UNDETACHED). { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 $as_echo_n "checking for joinable pthread attribute... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { int attr=PTHREAD_CREATE_JOINABLE; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ok=PTHREAD_CREATE_JOINABLE else ok=unknown fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test x"$ok" = xunknown; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { int attr=PTHREAD_CREATE_UNDETACHED; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ok=PTHREAD_CREATE_UNDETACHED else ok=unknown fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then $as_echo "#define PTHREAD_CREATE_JOINABLE \$ok" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ok}" >&5 $as_echo "${ok}" >&6; } if test x"$ok" = xunknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: we do not know how to create joinable pthreads" >&5 $as_echo "$as_me: WARNING: we do not know how to create joinable pthreads" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 $as_echo_n "checking if more special flags are required for pthreads... " >&6; } flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 $as_echo "${flag}" >&6; } if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with cc_r # Extract the first word of "cc_r", so it can be a program name with args. set dummy cc_r; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PTHREAD_CC="cc_r" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_PTHREAD_CC" && ac_cv_prog_PTHREAD_CC="${CC}" fi fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 $as_echo "$PTHREAD_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else PTHREAD_CC="$CC" fi # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h : else acx_pthread_ok=no fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test x"$enable_pthreads_done" != xyes; then if test x"$acx_pthread_ok" = xyes; then CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" LIBS="$LIBS $PTHREAD_LIBS" threads_ok=yes else threads_ok=no fi enable_pthreads_done=yes fi echo echo --------------------------------------------- echo testing python echo --------------------------------------------- echo python_ok=yes # Check whether --with-python was given. if test "${with_python+set}" = set; then : withval=$with_python; PYTHON="$withval/bin/python" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select python distribution in $withval\"" >&5 $as_echo "\"select python distribution in $withval\"" >&6; } else # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PYTHON+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration..." >&5 $as_echo "$as_me: checking local Python configuration..." >&6;} PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` PYTHONHOME=$PYTHON_PREFIX PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile if test ! -f "$PY_MAKEFILE"; then if test "${build_cpu::6}" = "x86_64" ; then PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile fi fi if test ! -f "$PY_MAKEFILE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are *** missing the development portion of the python installation" >&5 $as_echo "$as_me: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are *** missing the development portion of the python installation" >&2;} python_ok=no fi PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" PYTHON_LIB=$PYTHON_LIBS PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a if test "${build_cpu::6}" = "x86_64" ; then if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" PYTHON_LIB=$PYTHON_LIBS PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a fi fi PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` # Check whether --with-python-site was given. if test "${with_python_site+set}" = set; then : withval=$with_python_site; PYTHON_SITE="$withval" python_site_given=yes else PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages python_site_given=no fi PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE # Check whether --with-python-site-exec was given. if test "${with_python_site_exec+set}" = set; then : withval=$with_python_site_exec; PYTHON_SITE_EXEC="$withval" else if test "$python_site_given" = yes; then PYTHON_SITE_EXEC=$PYTHON_SITE else PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages fi fi PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need libdb" >&5 $as_echo_n "checking if we need libdb... " >&6; } PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U` if test "x$PY_NEEDOPENDB" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbopen in -ldb" >&5 $as_echo_n "checking for dbopen in -ldb... " >&6; } if test "${ac_cv_lib_db_dbopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldb $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dbopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return dbopen (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_db_dbopen=yes else ac_cv_lib_db_dbopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_db_dbopen" >&5 $as_echo "$ac_cv_lib_db_dbopen" >&6; } if test "x$ac_cv_lib_db_dbopen" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -ldb" else db_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need libdl" >&5 $as_echo_n "checking if we need libdl... " >&6; } PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U` if test "x$PY_NEEDOPENDL" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -ldl" else dl_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need libutil" >&5 $as_echo_n "checking if we need libutil... " >&6; } PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U` if test "x$PY_NEEDOPENPTY" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 $as_echo_n "checking for openpty in -lutil... " >&6; } if test "${ac_cv_lib_util_openpty+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char openpty (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return openpty (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_util_openpty=yes else ac_cv_lib_util_openpty=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 $as_echo "$ac_cv_lib_util_openpty" >&6; } if test "x$ac_cv_lib_util_openpty" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -lutil" else openpty_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need tcltk" >&5 $as_echo_n "checking if we need tcltk... " >&6; } PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U` if test "x$PY_NEEDTCLTK" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl_Init in -ltcl" >&5 $as_echo_n "checking for Tcl_Init in -ltcl... " >&6; } if test "${ac_cv_lib_tcl_Tcl_Init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltcl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Tcl_Init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return Tcl_Init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_tcl_Tcl_Init=yes else ac_cv_lib_tcl_Tcl_Init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tcl_Tcl_Init" >&5 $as_echo "$ac_cv_lib_tcl_Tcl_Init" >&6; } if test "x$ac_cv_lib_tcl_Tcl_Init" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk" else tclinit_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$python_ok" == "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5 $as_echo "looks good" >&6; } fi echo echo --------------------------------------------- echo testing swig echo --------------------------------------------- echo # _GBO_ This definition is required. Without this definition, the pythondir # would not be defined. The version doesn't matter. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version >= 2.4" >&5 $as_echo_n "checking whether $PYTHON version >= 2.4... " >&6; } prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '2.4'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 ($PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error "too old" "$LINENO" 5 fi am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.4" >&5 $as_echo_n "checking for a Python interpreter with version >= 2.4... " >&6; } if test "${am_cv_pathless_PYTHON+set}" = set; then : $as_echo_n "(cached) " >&6 else for am_cv_pathless_PYTHON in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do test "$am_cv_pathless_PYTHON" = none && break prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '2.4'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then : break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 $as_echo "$am_cv_pathless_PYTHON" >&6; } # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. set dummy $am_cv_pathless_PYTHON; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PYTHON+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi am_display_PYTHON=$am_cv_pathless_PYTHON fi if test "$PYTHON" = :; then as_fn_error "no suitable Python interpreter found" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 $as_echo_n "checking for $am_display_PYTHON version... " >&6; } if test "${am_cv_python_version+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 $as_echo "$am_cv_python_version" >&6; } PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' PYTHON_EXEC_PREFIX='${exec_prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } if test "${am_cv_python_platform+set}" = set; then : $as_echo_n "(cached) " >&6 else am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 $as_echo "$am_cv_python_platform" >&6; } PYTHON_PLATFORM=$am_cv_python_platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } if test "${am_cv_python_pythondir+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 $as_echo "$am_cv_python_pythondir" >&6; } pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } if test "${am_cv_python_pyexecdir+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 $as_echo "$am_cv_python_pyexecdir" >&6; } pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE fi swig_ok=yes numpy_ok=no # Check whether --with-swig was given. if test "${with_swig+set}" = set; then : withval=$with_swig; SWIG="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select $withval as swig executable\"" >&5 $as_echo "\"select $withval as swig executable\"" >&6; } else # Extract the first word of "swig", so it can be a program name with args. set dummy swig; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_SWIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $SWIG in [\\/]* | ?:[\\/]*) ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SWIG=$ac_cv_path_SWIG if test -n "$SWIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5 $as_echo "$SWIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test "x$SWIG" = "x" then swig_ok=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: swig not in PATH variable" >&5 $as_echo "swig not in PATH variable" >&6; } fi if test "x$swig_ok" = "xyes" then { $as_echo "$as_me:${as_lineno-$LINENO}: checking python wrapper generation with swig" >&5 $as_echo_n "checking python wrapper generation with swig... " >&6; } 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* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_ok" >&5 $as_echo "$swig_ok" >&6; } fi numpydir=`$PYTHON -c "import numpy;print numpy.get_include()" 2>/dev/null` if test -d "$numpydir"; then numpy_ok=yes PYTHON_INCLUDES="$PYTHON_INCLUDES -I$numpydir" SWIG_FLAGS="$SWIG_FLAGS -DWITH_NUMPY=WITH_NUMPY " $as_echo "#define WITH_NUMPY /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for swig: $swig_ok" >&5 $as_echo "for swig: $swig_ok" >&6; } echo echo --------------------------------------------- echo Testing libxml2 echo --------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml library..." >&5 $as_echo "$as_me: checking for libxml library..." >&6;} ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu LIBXML_INCLUDES="" LIBXML_LIBS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml location..." >&5 $as_echo "$as_me: checking for libxml location..." >&6;} # Check whether --with-libxml was given. if test "${with_libxml+set}" = set; then : withval=$with_libxml; LIBXML_DIR="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select $withval as path to LIBXML library\"" >&5 $as_echo "\"select $withval as path to LIBXML library\"" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: \$LIBXML_DIR = ${LIBXML_DIR}" >&5 $as_echo "\$LIBXML_DIR = ${LIBXML_DIR}" >&6; } libxml_ok=no LOCAL_INCLUDES="" LOCAL_LIBS="" if test "x$LIBXML_DIR" != "x" then LOCAL_INCLUDES="-I$LIBXML_DIR/include/libxml2" if test "x$LIBXML_DIR" = "x/usr" then { $as_echo "$as_me:${as_lineno-$LINENO}: Trying native Libxml2..." >&5 $as_echo "$as_me: Trying native Libxml2..." >&6;} LOCAL_LIBS="-lxml2" else { $as_echo "$as_me:${as_lineno-$LINENO}: Trying Libxml2 from $LIBXML_DIR ..." >&5 $as_echo "$as_me: Trying Libxml2 from $LIBXML_DIR ..." >&6;} LOCAL_LIBS="-L$LIBXML_DIR/lib -lxml2" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: Trying native Libxml2..." >&5 $as_echo "$as_me: Trying native Libxml2..." >&6;} LOCAL_INCLUDES="-I/usr/include/libxml2" LOCAL_LIBS="-lxml2" fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES" ac_fn_c_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default" if test "x$ac_cv_header_libxml_parser_h" = x""yes; then : libxml_ok="yes" else libxml_ok="no" fi CPPFLAGS="$CPPFLAGS_old" if test "x$libxml_ok" = "xyes" then LIBS_old=$LIBS LIBS="$LIBS $LOCAL_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlInitParser in -lxml2" >&5 $as_echo_n "checking for xmlInitParser in -lxml2... " >&6; } if test "${ac_cv_lib_xml2_xmlInitParser+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lxml2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char xmlInitParser (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return xmlInitParser (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_xml2_xmlInitParser=yes else ac_cv_lib_xml2_xmlInitParser=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlInitParser" >&5 $as_echo "$ac_cv_lib_xml2_xmlInitParser" >&6; } if test "x$ac_cv_lib_xml2_xmlInitParser" = x""yes; then : libxml_ok="yes" else libxml_ok="no" fi LIBS=$LIBS_old fi if test "x$libxml_ok" = "xyes" then LIBXML_INCLUDES="$LOCAL_INCLUDES" LIBXML_LIBS="$LOCAL_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for libxml: $libxml_ok" >&5 $as_echo "for libxml: $libxml_ok" >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo echo --------------------------------------------- echo checking if MPI is requested by user echo --------------------------------------------- echo # Check whether --with-mpi_lib was given. if test "${with_mpi_lib+set}" = set; then : withval=$with_mpi_lib; MPILIBREQUESTED="$withval" fi # Check whether --with-mpi_include was given. if test "${with_mpi_include+set}" = set; then : withval=$with_mpi_include; MPIINCLUDEREQUESTED="$withval" fi # Check whether --with-mpi was given. if test "${with_mpi+set}" = set; then : withval=$with_mpi; MPIREQUESTED="yes" else MPIREQUESTED="no" fi MPI_INCLUDES="" MPI_LIBS="" WITHMPI=no mpi_ok=no if test x"$MPIREQUESTED" = xyes; then echo echo --------------------------------------------- echo testing mpi echo --------------------------------------------- echo if test "x$withval" != "xyes"; then MPI_HOME=$withval MPI_INCLUDES="-I$MPI_HOME/include" if test "x$MPI_HOME" = "x/usr" then MPI_LIBS="" else MPI_LIBS="-L$MPI_HOME/lib" fi fi if test x"$MPILIBREQUESTED" != x; then MPI_LIBS="-L$MPILIBREQUESTED" fi if test x"$MPIINCLUDEREQUESTED" != x; then MPI_INCLUDES="-I$MPIINCLUDEREQUESTED" fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" ac_fn_cxx_check_header_mongrel "$LINENO" "mpi.h" "ac_cv_header_mpi_h" "$ac_includes_default" if test "x$ac_cv_header_mpi_h" = x""yes; then : WITHMPI="yes" else WITHMPI="no" fi CPPFLAGS="$CPPFLAGS_old" if test "$WITHMPI" = "yes";then LIBS_old="$LIBS" LDFLAGS_old="$LDFLAGS" LDFLAGS="$MPI_LIBS $LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elan_init in -lelan" >&5 $as_echo_n "checking for elan_init in -lelan... " >&6; } if test "${ac_cv_lib_elan_elan_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lelan $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char elan_init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return elan_init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_elan_elan_init=yes else ac_cv_lib_elan_elan_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elan_elan_init" >&5 $as_echo "$ac_cv_lib_elan_elan_init" >&6; } if test "x$ac_cv_lib_elan_elan_init" = x""yes; then : MPI_LIBS="$MPI_LIBS -lelan" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 $as_echo_n "checking for MPI_Init in -lmpi... " >&6; } if test "${ac_cv_lib_mpi_MPI_Init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Init=yes else ac_cv_lib_mpi_MPI_Init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } if test "x$ac_cv_lib_mpi_MPI_Init" = x""yes; then : WITHMPI="yes" else WITHMPI="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Publish_name in -lmpi" >&5 $as_echo_n "checking for MPI_Publish_name in -lmpi... " >&6; } if test "${ac_cv_lib_mpi_MPI_Publish_name+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Publish_name (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Publish_name (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Publish_name=yes else ac_cv_lib_mpi_MPI_Publish_name=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Publish_name" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Publish_name" >&6; } if test "x$ac_cv_lib_mpi_MPI_Publish_name" = x""yes; then : WITHMPI2="yes" else WITHMPI2="no" fi LDFLAGS="$LDFLAGS_old" LIBS="$LIBS_old" fi if test "$WITHMPI" = "yes";then mpi_ok=yes MPI_LIBS="$MPI_LIBS -lmpi -lmpio -lmpiCC" else mpi_ok=no fi if test "$WITHMPI2" = "yes";then mpi2_ok=yes else mpi2_ok=no fi fi if test "$WITHMPI" = no; then # Check whether --with-mpich was given. if test "${with_mpich+set}" = set; then : withval=$with_mpich; WITHMPICH="yes" else WITHMPICH="no" fi MPI_INCLUDES="" MPI_LIBS="" if test "$WITHMPICH" = yes; then MPIREQUESTED="yes" echo echo --------------------------------------------- echo testing mpich echo --------------------------------------------- echo MPICH_HOME=$withval if test "$MPICH_HOME"; then MPI_INCLUDES="-I$MPICH_HOME/include" if test "x$MPICH_HOME" = "x/usr" then MPI_LIBS="-lmpichcxx -lmpich -lopa -lmpl -lrt -lpthread" else MPI_LIBS="-L$MPICH_HOME/lib -lmpichcxx -lmpich -lopa -lmpl -lrt -lpthread" fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" ac_fn_cxx_check_header_mongrel "$LINENO" "mpi.h" "ac_cv_header_mpi_h" "$ac_includes_default" if test "x$ac_cv_header_mpi_h" = x""yes; then : WITHMPICH="yes" else WITHMPICH="no" fi CPPFLAGS="$CPPFLAGS_old" LIBS_old="$LIBS" LIBS="$MPI_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 $as_echo_n "checking for MPI_Init in -lmpich... " >&6; } if test "${ac_cv_lib_mpich_MPI_Init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpich $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpich_MPI_Init=yes else ac_cv_lib_mpich_MPI_Init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 $as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } if test "x$ac_cv_lib_mpich_MPI_Init" = x""yes; then : WITHMPICH="yes" else WITHMPICH="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Publish_name in -lmpich" >&5 $as_echo_n "checking for MPI_Publish_name in -lmpich... " >&6; } if test "${ac_cv_lib_mpich_MPI_Publish_name+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpich $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Publish_name (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Publish_name (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpich_MPI_Publish_name=yes else ac_cv_lib_mpich_MPI_Publish_name=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Publish_name" >&5 $as_echo "$ac_cv_lib_mpich_MPI_Publish_name" >&6; } if test "x$ac_cv_lib_mpich_MPI_Publish_name" = x""yes; then : WITHMPI2="yes" else WITHMPI2="no" fi LIBS="$LIBS_old" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpich" >&5 $as_echo_n "checking for mpich... " >&6; } if test "$WITHMPICH" = "yes";then mpi_ok=yes mpi2_ok=$WITHMPI2 WITHMPI="yes" CPPFLAGS="-DWITHMPICH $CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else mpi_ok=no mpi2_ok=no WITHMPI=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test "$WITHMPICH" = no; then # Check whether --with-lam was given. if test "${with_lam+set}" = set; then : withval=$with_lam; WITHLAM="yes" else WITHLAM="no" fi MPI_INCLUDES="" MPI_LIBS="" if test "$WITHLAM" = yes; then MPIREQUESTED="yes" echo echo --------------------------------------------- echo testing lam echo --------------------------------------------- echo LAM_HOME=$withval if test "$LAM_HOME"; then MPI_INCLUDES="-I$LAM_HOME/include" if test "x$LAM_HOME" = "x/usr" then MPI_LIBS="" else MPI_LIBS="-L$LAM_HOME/lib" fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" ac_fn_cxx_check_header_mongrel "$LINENO" "mpi.h" "ac_cv_header_mpi_h" "$ac_includes_default" if test "x$ac_cv_header_mpi_h" = x""yes; then : WITHLAM="yes" else WITHLAM="no" fi if test "$WITHLAM" = "yes";then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 $as_echo_n "checking for openpty in -lutil... " >&6; } if test "${ac_cv_lib_util_openpty+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char openpty (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return openpty (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_util_openpty=yes else ac_cv_lib_util_openpty=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 $as_echo "$ac_cv_lib_util_openpty" >&6; } if test "x$ac_cv_lib_util_openpty" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBUTIL 1 _ACEOF LIBS="-lutil $LIBS" else WITHLAM="no" fi LIBS_old="$LIBS" LDFLAGS_old="$LDFLAGS" LDFLAGS="$MPI_LIBS $LDFLAGS" fi if test "$WITHLAM" = "yes";then LIBS="$LIBS -lmpi++" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi++" >&5 $as_echo_n "checking for MPI_Init in -lmpi++... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { int argc=0; char **argv=0; MPI_Init(&argc,&argv); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : WITHLAM="yes" else WITHLAM="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$WITHLAM" = "yes";then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } MPI_LIBS="$MPI_LIBS -lmpi++" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Publish_name in -lmpi++" >&5 $as_echo_n "checking for MPI_Publish_name in -lmpi++... " >&6; } if test "${ac_cv_lib_mpipp_MPI_Publish_name+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi++ $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Publish_name (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Publish_name (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpipp_MPI_Publish_name=yes else ac_cv_lib_mpipp_MPI_Publish_name=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpipp_MPI_Publish_name" >&5 $as_echo "$ac_cv_lib_mpipp_MPI_Publish_name" >&6; } if test "x$ac_cv_lib_mpipp_MPI_Publish_name" = x""yes; then : WITHMPI2="yes" else WITHMPI2="no" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } LIBS="$LIBS_old" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lam_mp_init in -llam" >&5 $as_echo_n "checking for lam_mp_init in -llam... " >&6; } if test "${ac_cv_lib_lam_lam_mp_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-llam $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lam_mp_init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return lam_mp_init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_lam_lam_mp_init=yes else ac_cv_lib_lam_lam_mp_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lam_lam_mp_init" >&5 $as_echo "$ac_cv_lib_lam_lam_mp_init" >&6; } if test "x$ac_cv_lib_lam_lam_mp_init" = x""yes; then : WITHLAM="yes" else WITHLAM="no" fi if test "$WITHLAM" = "yes";then MPI_LIBS="$MPI_LIBS -llam" LIBS="$LIBS -llam" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 $as_echo_n "checking for MPI_Init in -lmpi... " >&6; } if test "${ac_cv_lib_mpi_MPI_Init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Init=yes else ac_cv_lib_mpi_MPI_Init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } if test "x$ac_cv_lib_mpi_MPI_Init" = x""yes; then : WITHLAM="yes" else WITHLAM="no" fi if test "$WITHLAM" = "yes";then MPI_LIBS="-lmpi $MPI_LIBS" LIBS="-lmpi $LIBS" fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu LIBS="-llammpi++ $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -llammpi++" >&5 $as_echo_n "checking for MPI_Init in -llammpi++... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { MPI::Init(); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : WITHLAM="yes" else WITHLAM="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$WITHLAM" = "yes";then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } MPI_LIBS="-llammpi++ $MPI_LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Publish_name in -lmpi" >&5 $as_echo_n "checking for MPI_Publish_name in -lmpi... " >&6; } if test "${ac_cv_lib_mpi_MPI_Publish_name+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Publish_name (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Publish_name (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Publish_name=yes else ac_cv_lib_mpi_MPI_Publish_name=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Publish_name" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Publish_name" >&6; } if test "x$ac_cv_lib_mpi_MPI_Publish_name" = x""yes; then : WITHMPI2="yes" else WITHMPI2="no" fi fi fi CPPFLAGS="$CPPFLAGS_old" LDFLAGS="$LDFLAGS_old" LIBS="$LIBS_old" if test "$WITHLAM" = "yes";then WITHMPI="yes" mpi_ok=yes CPPFLAGS="-DWITHLAM $CPPFLAGS" else mpi_ok=no fi fi fi if test "$WITHLAM" = no; then # Check whether --with-openmpi was given. if test "${with_openmpi+set}" = set; then : withval=$with_openmpi; WITHOPENMPI="yes" else WITHOPENMPI="no" fi MPI_INCLUDES="" MPI_LIBS="" mpi_ok=no if test "$WITHOPENMPI" = yes; then OPENMPI_HOME=$withval if test "$OPENMPI_HOME"; then if test -f "${OPENMPI_HOME}/include/mpi.h"; then MPI_INCLUDES="-I${OPENMPI_HOME}/include" else MPI_INCLUDES=`$OPENMPI_HOME/bin/mpicxx --showme:compile` fi if test "$OPENMPI_HOME" = "/usr/lib/openmpi"; then MPI_LIBS=`mpicxx --showme:link` else MPI_LIBS=`$OPENMPI_HOME/bin/mpicxx --showme:link` fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" ac_fn_cxx_check_header_mongrel "$LINENO" "mpi.h" "ac_cv_header_mpi_h" "$ac_includes_default" if test "x$ac_cv_header_mpi_h" = x""yes; then : WITHOPENMPI="yes" else WITHOPENMPI="no" fi CPPFLAGS="$CPPFLAGS_old" LIBS_old="$LIBS" LIBS="-L${OPENMPI_HOME}/lib $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Publish_name in -lmpi" >&5 $as_echo_n "checking for MPI_Publish_name in -lmpi... " >&6; } if test "${ac_cv_lib_mpi_MPI_Publish_name+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MPI_Publish_name (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return MPI_Publish_name (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_mpi_MPI_Publish_name=yes else ac_cv_lib_mpi_MPI_Publish_name=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Publish_name" >&5 $as_echo "$ac_cv_lib_mpi_MPI_Publish_name" >&6; } if test "x$ac_cv_lib_mpi_MPI_Publish_name" = x""yes; then : WITHMPI2="yes" else WITHMPI2="no" fi LIBS="$LIBS_old" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openmpi" >&5 $as_echo_n "checking for openmpi... " >&6; } if test "$WITHOPENMPI" = "yes";then mpi_ok=yes mpi2_ok=$WITHMPI2 WITHMPI=yes CPPFLAGS="-DOMPI_IGNORE_CXX_SEEK -DWITHOPENMPI $CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else mpi_ok=no mpi2_ok=no WITHMPI=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi fi if test x$WITHMPI2 = xyes; then CPPFLAGS="-DHAVE_MPI2 $CPPFLAGS" CORBA_IDLCXXFLAGS="-DHAVE_MPI2 $CORBA_IDLCXXFLAGS" CORBA_IDLPYFLAGS="-DHAVE_MPI2 $CORBA_IDLPYFLAGS" fi if test x"$mpi_ok" = xyes; then MPI_IS_OK_TRUE= MPI_IS_OK_FALSE='#' else MPI_IS_OK_TRUE='#' MPI_IS_OK_FALSE= fi if test x"$mpi2_ok" = xyes; then MPI2_IS_OK_TRUE= MPI2_IS_OK_FALSE='#' else MPI2_IS_OK_TRUE='#' MPI2_IS_OK_FALSE= fi if test x$with_onlylauncher = xno; then echo echo --------------------------------------------- echo testing HDF5 echo --------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HDF5..." >&5 $as_echo "$as_me: checking for HDF5..." >&6;} # Check whether --with-hdf5 was given. if test "${with_hdf5+set}" = set; then : withval=$with_hdf5; HDF5HOME="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select $withval as path to hdf5\"" >&5 $as_echo "\"select $withval as path to hdf5\"" >&6; } fi HDF5_INCLUDES="" HDF5_LIBS="" HDF5_MT_LIBS="" hdf5_ok=no LOCAL_INCLUDES="" LOCAL_LIBS="" LOCAL_RLIBS="" if test -z $HDF5HOME then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: undefined HDF5HOME variable which specify hdf5 installation directory" >&5 $as_echo "$as_me: WARNING: undefined HDF5HOME variable which specify hdf5 installation directory" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: Trying native Hdf5..." >&5 $as_echo "$as_me: Trying native Hdf5..." >&6;} HDF5HOME="/usr" else LOCAL_INCLUDES="-I$HDF5HOME/include" if test "x$HDF5HOME" = "x/usr" then { $as_echo "$as_me:${as_lineno-$LINENO}: Trying native Hdf5..." >&5 $as_echo "$as_me: Trying native Hdf5..." >&6;} LOCAL_LIBS="" else { $as_echo "$as_me:${as_lineno-$LINENO}: Trying Hdf5 from $HDF5HOME ..." >&5 $as_echo "$as_me: Trying Hdf5 from $HDF5HOME ..." >&6;} LOCAL_LIBS="-L$HDF5HOME/lib" LOCAL_RLIBS="-Wl,-R$HDF5HOME/lib" fi fi if test "x$hdf5_ok" = "xno" then if test -e "$HDF5HOME/include/hdf5.h" then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if hdf5 is parallel and thus needs mpi" >&5 $as_echo_n "checking if hdf5 is parallel and thus needs mpi... " >&6; } hdf5_parallel=`grep "#define H5_HAVE_PARALLEL" $HDF5HOME/include/H5pubconf.h | awk '{i=3 ; print $i}'` if test "x$hdf5_parallel" = "x1" then LOCAL_INCLUDES="-DOMPI_SKIP_MPICXX $MPI_INCLUDES $LOCAL_INCLUDES" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: File $HDF5HOME/include/hdf5.h not present" >&5 $as_echo "$as_me: WARNING: File $HDF5HOME/include/hdf5.h not present" >&2;} fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $MPI_INCLUDES $LOCAL_INCLUDES" ac_fn_cxx_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default" if test "x$ac_cv_header_hdf5_h" = x""yes; then : hdf5_ok=yes else hdf5_ok=no fi CPPFLAGS="$CPPFLAGS_old" if test "x$hdf5_ok" = "xyes" then LIBS_old="$LIBS" LIBS="$LIBS $MPI_LIBS $LOCAL_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for H5open in -lhdf5" >&5 $as_echo_n "checking for H5open in -lhdf5... " >&6; } if test "${ac_cv_lib_hdf5_H5open+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lhdf5 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char H5open (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return H5open (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_hdf5_H5open=yes else ac_cv_lib_hdf5_H5open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_H5open" >&5 $as_echo "$ac_cv_lib_hdf5_H5open" >&6; } if test "x$ac_cv_lib_hdf5_H5open" = x""yes; then : hdf5_ok=yes else hdf5_ok=no fi LIBS="$LIBS_old" fi if test "x$hdf5_ok" = "xyes" then HDF5_INCLUDES="$MPI_INCLUDES $LOCAL_INCLUDES" HDF5_LIBS="$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS" HDF5_MT_LIBS="$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS" fi if test "x$hdf5_ok" = "xyes" then HDF5_INCLUDES="$HDF5_INCLUDES -DH5_USE_16_API" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for hdf5: $hdf5_ok" >&5 $as_echo "for hdf5: $hdf5_ok" >&6; } # ---------------------------------------------------------------------------- # --- test corba if test x$corba_gen = xtrue; then echo echo ============================================================ echo testing mandatory products for CORBA configurations echo ============================================================ echo echo echo --------------------------------------------- echo testing sockets echo --------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libraries containing socket functions" >&5 $as_echo_n "checking for libraries containing socket functions... " >&6; } if test "${ac_cv_socket_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else oCFLAGS=$CFLAGS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { struct in_addr add; int sd = socket(AF_INET, SOCK_STREAM, 0); inet_ntoa(add); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_socket_libs=-lc else ac_cv_socket_libs=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test x"$ac_cv_socket_libs" = "xno" then CFLAGS="$oCFLAGS -lsocket" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { struct in_addr add; int sd = socket(AF_INET, SOCK_STREAM, 0); inet_ntoa(add); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_socket_libs=-lsocket else ac_cv_socket_libs=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test x"$ac_cv_socket_libs" = "xno" then CFLAGS="$oCFLAGS -lsocket -lnsl" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { struct in_addr add; int sd = socket(AF_INET, SOCK_STREAM, 0); inet_ntoa(add); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_socket_libs="-lsocket -lnsl" else ac_cv_socket_libs=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CFLAGS=$oCFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_socket_libs" >&5 $as_echo "$ac_cv_socket_libs" >&6; } if test x"$ac_cv_socket_libs" = "xno" then as_fn_error "Cannot find socket libraries" "$LINENO" 5 elif test x"$ac_cv_socket_libs" = "x-lc" then SOCKETLIBS="" CPPFLAGS="-DHAVE_SOCKET $CPPFLAGS" CORBA_IDLCXXFLAGS="-DHAVE_SOCKET $CORBA_IDLCXXFLAGS" CORBA_IDLPYFLAGS="-DHAVE_SOCKET $CORBA_IDLPYFLAGS" else SOCKETLIBS="$ac_cv_socket_libs" CPPFLAGS="-DHAVE_SOCKET $CPPFLAGS" CORBA_IDLCXXFLAGS="-DHAVE_SOCKET $CORBA_IDLCXXFLAGS" CORBA_IDLPYFLAGS="-DHAVE_SOCKET $CORBA_IDLPYFLAGS" fi echo echo --------------------------------------------- echo Configuration of the ORB echo --------------------------------------------- echo echo Testing OMNIORB ... { $as_echo "$as_me:${as_lineno-$LINENO}: checking for omniORB..." >&5 $as_echo "$as_me: checking for omniORB..." >&6;} omniORB_ok=yes if test "x$PYTHON" = "x" then python_ok=yes # Check whether --with-python was given. if test "${with_python+set}" = set; then : withval=$with_python; PYTHON="$withval/bin/python" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select python distribution in $withval\"" >&5 $as_echo "\"select python distribution in $withval\"" >&6; } else # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PYTHON+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration..." >&5 $as_echo "$as_me: checking local Python configuration..." >&6;} PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` PYTHONHOME=$PYTHON_PREFIX PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile if test ! -f "$PY_MAKEFILE"; then if test "${build_cpu::6}" = "x86_64" ; then PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile fi fi if test ! -f "$PY_MAKEFILE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are *** missing the development portion of the python installation" >&5 $as_echo "$as_me: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are *** missing the development portion of the python installation" >&2;} python_ok=no fi PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" PYTHON_LIB=$PYTHON_LIBS PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a if test "${build_cpu::6}" = "x86_64" ; then if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" PYTHON_LIB=$PYTHON_LIBS PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a fi fi PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` # Check whether --with-python-site was given. if test "${with_python_site+set}" = set; then : withval=$with_python_site; PYTHON_SITE="$withval" python_site_given=yes else PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages python_site_given=no fi PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE # Check whether --with-python-site-exec was given. if test "${with_python_site_exec+set}" = set; then : withval=$with_python_site_exec; PYTHON_SITE_EXEC="$withval" else if test "$python_site_given" = yes; then PYTHON_SITE_EXEC=$PYTHON_SITE else PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages fi fi PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need libdb" >&5 $as_echo_n "checking if we need libdb... " >&6; } PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U` if test "x$PY_NEEDOPENDB" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbopen in -ldb" >&5 $as_echo_n "checking for dbopen in -ldb... " >&6; } if test "${ac_cv_lib_db_dbopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldb $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dbopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return dbopen (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_db_dbopen=yes else ac_cv_lib_db_dbopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_db_dbopen" >&5 $as_echo "$ac_cv_lib_db_dbopen" >&6; } if test "x$ac_cv_lib_db_dbopen" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -ldb" else db_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need libdl" >&5 $as_echo_n "checking if we need libdl... " >&6; } PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U` if test "x$PY_NEEDOPENDL" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -ldl" else dl_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need libutil" >&5 $as_echo_n "checking if we need libutil... " >&6; } PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U` if test "x$PY_NEEDOPENPTY" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 $as_echo_n "checking for openpty in -lutil... " >&6; } if test "${ac_cv_lib_util_openpty+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char openpty (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return openpty (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_util_openpty=yes else ac_cv_lib_util_openpty=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 $as_echo "$ac_cv_lib_util_openpty" >&6; } if test "x$ac_cv_lib_util_openpty" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -lutil" else openpty_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need tcltk" >&5 $as_echo_n "checking if we need tcltk... " >&6; } PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U` if test "x$PY_NEEDTCLTK" != "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Tcl_Init in -ltcl" >&5 $as_echo_n "checking for Tcl_Init in -ltcl... " >&6; } if test "${ac_cv_lib_tcl_Tcl_Init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltcl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Tcl_Init (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return Tcl_Init (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_tcl_Tcl_Init=yes else ac_cv_lib_tcl_Tcl_Init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tcl_Tcl_Init" >&5 $as_echo "$ac_cv_lib_tcl_Tcl_Init" >&6; } if test "x$ac_cv_lib_tcl_Tcl_Init" = x""yes; then : PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk" else tclinit_ok=no fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$python_ok" == "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5 $as_echo "looks good" >&6; } fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Extract the first word of "omniidl", so it can be a program name with args. set dummy omniidl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_OMNIORB_IDL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $OMNIORB_IDL in [\\/]* | ?:[\\/]*) ac_cv_path_OMNIORB_IDL="$OMNIORB_IDL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_OMNIORB_IDL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi OMNIORB_IDL=$ac_cv_path_OMNIORB_IDL if test -n "$OMNIORB_IDL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMNIORB_IDL" >&5 $as_echo "$OMNIORB_IDL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$OMNIORB_IDL" = "x" then omniORB_ok=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: omniORB binaries not in PATH variable" >&5 $as_echo "omniORB binaries not in PATH variable" >&6; } else omniORB_ok=yes fi if test "x$omniORB_ok" = "xyes" then OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` OMNIORB_ROOT=${OMNIORB_BIN} # one-level up OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` # # if test -d $OMNIORB_ROOT/include ; then # if $OMNIORB_ROOT/include exists, there are a lot of chance that # this is omniORB4.x installed via configure && make && make install OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"` OMNIORB_VERSION=4 else # omniORB has been installed old way OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"` # one-level up again OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` if test -d $OMNIORB_ROOT/include/omniORB4 ; then OMNIORB_VERSION=4 else OMNIORB_VERSION=3 fi fi OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS" if test x"$enable_pthreads_done" != xyes; then if test x"$acx_pthread_ok" = xyes; then CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" LIBS="$LIBS $PTHREAD_LIBS" threads_ok=yes else threads_ok=no fi enable_pthreads_done=yes fi OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION" 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 osf*) # AC_DEFINE(__osf1__) __OSVERSION__=5 $as_echo "#define __OSVERSION__ 5" >>confdefs.h OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__osf1__" ;; solaris*) # AC_DEFINE(__sunos__) __OSVERSION__=5 $as_echo "#define __OSVERSION__ 5" >>confdefs.h OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__" ;; linux*) # AC_DEFINE(__linux__) __OSVERSION__=2 $as_echo "#define __OSVERSION__ 2" >>confdefs.h OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__linux__" ;; esac CPPFLAGS_old=$CPPFLAGS CPPFLAGS="$CPPFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_fn_cxx_check_header_mongrel "$LINENO" "CORBA.h" "ac_cv_header_CORBA_h" "$ac_includes_default" if test "x$ac_cv_header_CORBA_h" = x""yes; then : omniORB_ok="yes" else omniORB_ok="no" fi CPPFLAGS=$CPPFLAGS_old fi if test "x$omniORB_ok" = "xyes" then if test "x$OMNIORB_LIB" = "x/usr/lib" then OMNIORB_LDFLAGS="" OMNIORB_RFLAGS="" else OMNIORB_LDFLAGS="-L$OMNIORB_LIB" OMNIORB_RFLAGS="-Wl,-R$OMNIORB_LIB" fi LIBS_old=$LIBS LIBS="$LIBS $OMNIORB_LDFLAGS -lomnithread" CXXFLAGS_old=$CXXFLAGS CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can link with omnithreads" >&5 $as_echo_n "checking whether we can link with omnithreads... " >&6; } if test "${salome_cv_lib_omnithreads+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { omni_mutex my_mutex ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "salome_cv_lib_omnithreads=yes" else eval "salome_cv_lib_omnithreads=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi omniORB_ok="$salome_cv_lib_omnithreads" if test "x$omniORB_ok" = "xno" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: omnithreads not found" >&5 $as_echo "omnithreads not found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi LIBS=$LIBS_old CXXFLAGS=$CXXFLAGS_old fi if test "x$omniORB_ok" = "xyes" then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 $as_echo_n "checking for socket in -lsocket... " >&6; } if test "${ac_cv_lib_socket_socket+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return socket (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_socket_socket=yes else ac_cv_lib_socket_socket=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 $as_echo "$ac_cv_lib_socket_socket" >&6; } if test "x$ac_cv_lib_socket_socket" = x""yes; then : LIBS="-lsocket $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : LIBS="-lnsl $LIBS" fi LIBS_old=$LIBS OMNIORB_LIBS="$OMNIORB_LDFLAGS" OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread" OMNIORB_LIBS="$OMNIORB_LIBS ${OMNIORB_RFLAGS}" if test $OMNIORB_VERSION = 3 ; then OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK" fi LIBS="$OMNIORB_LIBS $LIBS" CXXFLAGS_old=$CXXFLAGS CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can link with omniORB" >&5 $as_echo_n "checking whether we can link with omniORB... " >&6; } if test "${salome_cv_lib_omniorb+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { CORBA::ORB_var orb ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "salome_cv_lib_omniorb3=yes" else eval "salome_cv_lib_omniorb3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi omniORB_ok="$salome_cv_lib_omniorb3" omniORB_ok=yes if test "x$omniORB_ok" = "xno" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: omniORB library linking failed" >&5 $as_echo "omniORB library linking failed" >&6; } omniORB_ok=no else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi LIBS="$LIBS_old" CXXFLAGS=$CXXFLAGS_old fi if test "x$omniORB_ok" = "xyes" then OMNIORB_IDLCXXFLAGS="-Wba -nf -I${OMNIORB_ROOT}/idl" OMNIORB_PACOIDLCXXFLAGS="-nf -I${OMNIORB_ROOT}/idl" OMNIORB_IDLPYFLAGS_1='-bpython -nf ' OMNIORB_IDLPYFLAGS_2=" -I${OMNIORB_ROOT}/idl" OMNIORB_IDLPYFLAGS=${OMNIORB_IDLPYFLAGS_1}${OMNIORB_IDLPYFLAGS_2} OMNIORB_IDL_CLN_H=.hh OMNIORB_IDL_CLN_CXX=SK.cc OMNIORB_IDL_CLN_OBJ=SK.o OMNIORB_IDL_SRV_H=.hh OMNIORB_IDL_SRV_CXX=SK.cc OMNIORB_IDL_SRV_OBJ=SK.o OMNIORB_IDL_TIE_H= OMNIORB_IDL_TIE_CXX= $as_echo "#define OMNIORB /**/" >>confdefs.h CORBA_HAVE_POA=1 $as_echo "#define CORBA_HAVE_POA /**/" >>confdefs.h CORBA_ORB_INIT_HAVE_3_ARGS=1 $as_echo "#define CORBA_ORB_INIT_HAVE_3_ARGS /**/" >>confdefs.h CORBA_ORB_INIT_THIRD_ARG='"omniORB"' $as_echo "#define CORBA_ORB_INIT_THIRD_ARG /**/" >>confdefs.h fi omniORBpy_ok=no if test "x$omniORB_ok" = "xyes" then { $as_echo "$as_me:${as_lineno-$LINENO}: checking omniORBpy" >&5 $as_echo_n "checking omniORBpy... " >&6; } $PYTHON -c "import omniORB" &> /dev/null if test $? = 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } omniORBpy_ok=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } omniORBpy_ok=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for omniORBpy: $omniORBpy_ok" >&5 $as_echo "for omniORBpy: $omniORBpy_ok" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: for omniORB: $omniORB_ok" >&5 $as_echo "for omniORB: $omniORB_ok" >&6; } # Save cache cat >confcache <<\_ACEOF # 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, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # 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. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache CXXFLAGS_old=$CXXFLAGS CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" LIBS_old=$LIBS LIBS="$LIBS $OMNIORB_LDFLAGS $OMNIORB_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have double and CORBA::Double compatibility" >&5 $as_echo_n "checking whether we have double and CORBA::Double compatibility... " >&6; } if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run test program while cross compiling See \`config.log' for more details." "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { CORBA::Double *a=new CORBA::Double(2.5); double c=2.5; double *b; b=(double *)a; if( (c==*b) && (sizeof(double)==sizeof(CORBA::Double)) ){ delete a; exit(0); } else{ delete a; exit(1); } } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : DOUBLECOMP="yes" else DOUBLECOMP="no" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$DOUBLECOMP" = yes; then OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_DOUBLE" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have int and CORBA::Long compatibility" >&5 $as_echo_n "checking whether we have int and CORBA::Long compatibility... " >&6; } if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run test program while cross compiling See \`config.log' for more details." "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { CORBA::Long *a=new CORBA::Long(2); int c=2; int *b; b=(int *)a; if( (c==*b) && (sizeof(int)==sizeof(CORBA::Long)) ) exit(0); else exit(1); } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : LONGCOMP="yes" else LONGCOMP="no" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$LONGCOMP" = yes; then OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_LONG" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi CXXFLAGS=$CXXFLAGS_old LIBS=$LIBS_old ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo Selecting the default ORB DEFAULT_ORB=omniORB echo DEFAULT_ORB : $DEFAULT_ORB if test x"$DEFAULT_ORB" = x"omniORB" then # Contient le nom de l'ORB ORB=omniorb { $as_echo "$as_me:${as_lineno-$LINENO}: result: default orb : omniORB" >&5 $as_echo "default orb : omniORB" >&6; } IDL=$OMNIORB_IDL CORBA_ROOT=$OMNIORB_ROOT CORBA_INCLUDES=$OMNIORB_INCLUDES CORBA_CXXFLAGS=$OMNIORB_CXXFLAGS CORBA_LIBS=$OMNIORB_LIBS IDLCXXFLAGS=$OMNIORB_IDLCXXFLAGS PACOIDLCXXFLAGS=$OMNIORB_PACOIDLCXXFLAGS IDLPYFLAGS=$OMNIORB_IDLPYFLAGS IDL_CLN_H=$OMNIORB_IDL_CLN_H IDL_CLN_CXX=$OMNIORB_IDL_CLN_CXX IDL_CLN_OBJ=$OMNIORB_IDL_CLN_OBJ IDL_SRV_H=$OMNIORB_IDL_SRV_H IDL_SRV_CXX=$OMNIORB_IDL_SRV_CXX IDL_SRV_OBJ=$OMNIORB_IDL_SRV_OBJ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ORB unknown orb" >&5 $as_echo "$DEFAULT_ORB unknown orb" >&6; } fi CORBA=salome_adm/unix/make_$ORB # _CS_gbo: # The CORBA variable defines the file name that # implements the building rules to be included by Makefile to process # idl files and CORBA specific dependencies (ex: the file # salome_adm/unix/make_omniorb is the default for SALOME). The value # of ORB is defined by CHECK_CORBA. # Note that this checking process is no longer relevant for SALOME # because the possibility of changing the ORB as a plugin is probably # deprecated. The software configuration is clearly omniorb for CORBA # communication. This could be simplify in a near futur. echo echo --------------------------------------------- echo BOOST Library echo --------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BOOST Library..." >&5 $as_echo "$as_me: checking for BOOST Library..." >&6;} ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu gccver=`$CC -dumpversion | sed 's/^\([0-9]\+\)\.\([0-9]\+\).*/\1\2/g'` SUFFIXES="empty -mt -gcc -gcc-mt -gcc${gccver} -gcc${gccver}-mt" BOOST_CPPFLAGS="" BOOST_LIBSUFFIX="" BOOST_LIBS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BOOST location..." >&5 $as_echo "$as_me: checking for BOOST location..." >&6;} # Check whether --with-boost was given. if test "${with_boost+set}" = set; then : withval=$with_boost; BOOSTDIR="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select $withval as path to BOOST library\"" >&5 $as_echo "\"select $withval as path to BOOST library\"" >&6; } fi if test "x${BOOSTDIR}" = "x" ; then BOOSTDIR="/usr" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: \$BOOSTDIR = ${BOOSTDIR}" >&5 $as_echo "\$BOOSTDIR = ${BOOSTDIR}" >&6; } CPPFLAGS_old="${CPPFLAGS}" LIBS_old=$LIBS LIB_SUFFIX="${LIB_LOCATION_SUFFIX}" if test "x${BOOSTDIR}" != "x" ; then BOOST_CPPFLAGS="-I${BOOSTDIR}/include" BOOST_LIBS="-L${BOOSTDIR}/lib${LIB_SUFFIX}" fi if test "x${BOOSTDIR}" = "x/usr" ; then BOOST_CPPFLAGS="" BOOST_LIBS="" fi boost_ok=no boost_headers_ok=no boost_binaries_ok=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BOOST headers..." >&5 $as_echo "$as_me: checking for BOOST headers..." >&6;} CPPFLAGS="${CPPFLAGS_old} ${BOOST_CPPFLAGS}" boost_include_dir_ok=yes if test "x${BOOSTDIR}" != "x" ; then as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/include/boost/shared_ptr.hpp" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/include/boost/shared_ptr.hpp" >&5 $as_echo_n "checking for ${BOOSTDIR}/include/boost/shared_ptr.hpp... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/include/boost/shared_ptr.hpp"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : boost_include_dir_ok=yes else boost_include_dir_ok=no fi fi BOOST_PROGRAM_OPTIONS_LIB=no if test "x${boost_include_dir_ok}" = "xyes" ; then as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/include/boost/program_options.hpp" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/include/boost/program_options.hpp" >&5 $as_echo_n "checking for ${BOOSTDIR}/include/boost/program_options.hpp... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/include/boost/program_options.hpp"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : BOOST_PROGRAM_OPTIONS_LIB=yes else BOOST_PROGRAM_OPTIONS_LIB=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for boost program_options tool: $BOOST_PROGRAM_OPTIONS_LIB" >&5 $as_echo "for boost program_options tool: $BOOST_PROGRAM_OPTIONS_LIB" >&6; } if test "x${boost_include_dir_ok}" = "xyes" ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { boost::shared_ptr(new int) ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : boost_headers_ok=yes else boost_headers_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x${boost_headers_ok}" = "xno" ; then BOOST_CPPFLAGS="BOOST_CPPFLAGS_NOT_DEFINED" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: \$BOOST_CPPFLAGS = ${BOOST_CPPFLAGS}" >&5 $as_echo "\$BOOST_CPPFLAGS = ${BOOST_CPPFLAGS}" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for boost headers: $boost_headers_ok" >&5 $as_echo "for boost headers: $boost_headers_ok" >&6; } if test "x${boost_headers_ok}" = "xyes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BOOST binaries..." >&5 $as_echo "$as_me: checking for BOOST binaries..." >&6;} boost_lib_dir_ok=yes if test "x${BOOSTDIR}" != "x" ; then for BOOST_LIBSUFFIX in ${SUFFIXES} ; do test "${BOOST_LIBSUFFIX}" == "empty" && BOOST_LIBSUFFIX="" as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so" >&5 $as_echo_n "checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : boost_lib_dir_ok=yes else as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so" >&5 $as_echo_n "checking for ${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : boost_lib_dir_ok=yes; LIB_SUFFIX=64 else boost_lib_dir_ok=no fi fi if test "x${boost_lib_dir_ok}" = "xyes" ; then break fi done fi if test "x${boost_lib_dir_ok}" = "xyes" ; then LIBS="${LIBS_old} ${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX}" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { struct TBody{ void operator()(){} }; boost::thread(TBody()) ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : boost_binaries_ok=yes else boost_binaries_ok=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x${boost_binaries_ok}" = "xyes" ; then break fi fi fi if test "x${boost_binaries_ok}" = "xno" ; then BOOST_LIBS="BOOST_LIBS_NOT_FOUND" BOOST_LIBSUFFIX="-not-defined" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: \$BOOST_LIBSUFFIX = ${BOOST_LIBSUFFIX}" >&5 $as_echo "\$BOOST_LIBSUFFIX = ${BOOST_LIBSUFFIX}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: \$BOOST_LIBS = ${BOOST_LIBS}" >&5 $as_echo "\$BOOST_LIBS = ${BOOST_LIBS}" >&6; } as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so" >&5 $as_echo_n "checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : BOOST_LIB_THREAD="${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX}" else BOOST_LIB_THREAD="" fi as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so" >&5 $as_echo_n "checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : BOOST_LIB_SIGNALS="${BOOST_LIBS} -lboost_signals${BOOST_LIBSUFFIX}" else BOOST_LIB_SIGNALS="" fi as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so" >&5 $as_echo_n "checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : BOOST_LIB_SYSTEM="${BOOST_LIBS} -lboost_system${BOOST_LIBSUFFIX}" else BOOST_LIB_SYSTEM="" fi as_ac_File=`$as_echo "ac_cv_file_${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so" >&5 $as_echo_n "checking for ${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : BOOST_LIB_REGEX="${BOOST_LIBS} -lboost_regex${BOOST_LIBSUFFIX}" else BOOST_LIB_REGEX="" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for boost binaries: $boost_binaries_ok" >&5 $as_echo "for boost binaries: $boost_binaries_ok" >&6; } CPPFLAGS="${CPPFLAGS_old}" LIBS="${LIBS_old}" if test "x${boost_headers_ok}" = "xyes" ; then if test "x${boost_binaries_ok}" = "xyes" ; then boost_ok=yes fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for boost: $boost_ok" >&5 $as_echo "for boost: $boost_ok" >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # --- end test corba # ---------------------------------------------------------------------------- fi # --- end test ONLYLAUNCHER # ---------------------------------------------------------------------------- echo echo ============================================================ echo testing parallel products echo ============================================================ echo echo echo --------------------------------------------- echo checking if PaCO++ is requested by user echo --------------------------------------------- echo PaCO_ok=yes # Check whether --with-paco was given. if test "${with_paco+set}" = set; then : withval=$with_paco; WITHPACO="yes" else WITHPACO="no" fi if test "x$WITHPACO" = "xyes"; then PACOPATH=$withval PACO_INCLUDES="-I${PACOPATH}/include" PACO_LIBS="-L${PACOPATH}/lib -lPaCO -lGaBro -lBasicBC" # Extract the first word of "PaCOIdlTool.sh", so it can be a program name with args. set dummy PaCOIdlTool.sh; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_PACO_IDL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PACO_IDL"; then ac_cv_prog_PACO_IDL="$PACO_IDL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in ${PACOPATH}/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PACO_IDL="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_PACO_IDL" && ac_cv_prog_PACO_IDL="no" fi fi PACO_IDL=$ac_cv_prog_PACO_IDL if test -n "$PACO_IDL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACO_IDL" >&5 $as_echo "$PACO_IDL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$PACO_IDL" = "xno"; then PaCO_ok=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: PaCO++ binary not in ${PACOPATH}/bin" >&5 $as_echo "PaCO++ binary not in ${PACOPATH}/bin" >&6; } fi else PaCO_ok=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PaCO++" >&5 $as_echo_n "checking for PaCO++... " >&6; } if test "x$PaCO_ok" = "xyes" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } PACO_IDL=${PACOPATH}/bin/PaCOIdlTool.sh else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi echo echo ------------------------------------------------------------ echo checking if parallel kernel extensions are requested by user echo ------------------------------------------------------------ echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable parallel kernel extension" >&5 $as_echo_n "checking whether to enable parallel kernel extension... " >&6; } # Check whether --enable-parallel_extension was given. if test "${enable_parallel_extension+set}" = set; then : enableval=$enable_parallel_extension; parallel_extension_ok=$enableval else parallel_extension_ok=no fi if test "x$parallel_extension_ok" = "xyes" then if test "x$PaCO_ok" = "xno" then parallel_extension_ok=no fi fi if test "x$parallel_extension_ok" = "xyes" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$parallel_extension_ok" = "xyes"; then WITH_PACO_PARALLEL_TRUE= WITH_PACO_PARALLEL_FALSE='#' else WITH_PACO_PARALLEL_TRUE='#' WITH_PACO_PARALLEL_FALSE= fi echo echo ============================================================ echo testing optionnal products echo ============================================================ echo echo echo ---------------------------------------------- echo testing CPPUNIT only required for unit testing echo ---------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cppunit..." >&5 $as_echo "$as_me: checking for cppunit..." >&6;} cppunit_ok=yes # Check whether --with-cppunit was given. if test "${with_cppunit+set}" = set; then : withval=$with_cppunit; CPPUNITHOME="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select $withval as path to CPPUNIT\"" >&5 $as_echo "\"select $withval as path to CPPUNIT\"" >&6; } fi # Check whether --with-cppunit_inc was given. if test "${with_cppunit_inc+set}" = set; then : withval=$with_cppunit_inc; CPPUNIT_INCLUDES="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"select $withval as path to CPPUNIT includes\"" >&5 $as_echo "\"select $withval as path to CPPUNIT includes\"" >&6; } fi if test -z "$CPPUNITHOME"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: CPPUNITHOME not defined" >&5 $as_echo "CPPUNITHOME not defined" >&6; } exits_ok=no if test "x$exits_ok" = "xno"; then for d in /usr/local /usr ; do as_ac_File=`$as_echo "ac_cv_file_${d}/lib64/libcppunit.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${d}/lib64/libcppunit.so" >&5 $as_echo_n "checking for ${d}/lib64/libcppunit.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${d}/lib64/libcppunit.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : exits_ok=yes else exits_ok=no fi if test "x$exits_ok" = "xyes"; then CPPUNITHOME=$d { $as_echo "$as_me:${as_lineno-$LINENO}: result: libcppunit.so detected in $d/lib64" >&5 $as_echo "libcppunit.so detected in $d/lib64" >&6; } break fi as_ac_File=`$as_echo "ac_cv_file_${d}/lib/libcppunit.so" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${d}/lib/libcppunit.so" >&5 $as_echo_n "checking for ${d}/lib/libcppunit.so... " >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "${d}/lib/libcppunit.so"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval as_val=\$$as_ac_File if test "x$as_val" = x""yes; then : exits_ok=yes else exits_ok=no fi if test "x$exits_ok" = "xyes"; then CPPUNITHOME=$d { $as_echo "$as_me:${as_lineno-$LINENO}: result: libcppunit.so detected in $d/lib" >&5 $as_echo "libcppunit.so detected in $d/lib" >&6; } break fi done fi if test "x$exits_ok" = "xno"; then for d in `echo $LD_LIBRARY_PATH | sed -e "s/:/ /g"` ; do if test -f $d/libcppunit.so ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: libcppunit.so detected in $d" >&5 $as_echo "libcppunit.so detected in $d" >&6; } CPPUNITHOME=$d CPPUNITHOME=`echo ${CPPUNITHOME} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` exits_ok=yes break fi done fi if test "x$exits_ok" = "xyes"; then if test -z "$CPPUNIT_INCLUDES"; then CPPUNIT_INCLUDES=$CPPUNITHOME"/include" fi fi else if test -z "$CPPUNIT_INCLUDES"; then CPPUNIT_INCLUDES="$CPPUNITHOME/include" fi fi if test "x$cppunit_ok" = xno -o ! -d "$CPPUNITHOME" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cppunit not found" >&5 $as_echo "$as_me: WARNING: cppunit not found" >&2;} cppunit_ok=no else ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CPPFLAGS_old=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$CPPUNIT_INCLUDES" ac_fn_cxx_check_header_mongrel "$LINENO" "cppunit/extensions/HelperMacros.h" "ac_cv_header_cppunit_extensions_HelperMacros_h" "$ac_includes_default" if test "x$ac_cv_header_cppunit_extensions_HelperMacros_h" = x""yes; then : cppunit_ok=yes else cppunit_ok=no fi CPPFLAGS=$CPPFLAGS_old if test "x$cppunit_ok" = xno ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cppunit not found" >&5 $as_echo "$as_me: WARNING: cppunit not found" >&2;} else cppunit_ok=yes fi if test "x$cppunit_ok" = "xno" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: unable to found cppunit headers and library" >&5 $as_echo "unable to found cppunit headers and library" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: CPPUNITHOME environment variable may be wrong" >&5 $as_echo "CPPUNITHOME environment variable may be wrong" >&6; } else if test "x$CPPUNIT_INCLUDES" = "x/usr/include" then CPPUNIT_INCLUDES="" else CPPUNIT_INCLUDES="-I$CPPUNIT_INCLUDES" fi if test "x$CPPUNITHOME" = "x/usr" then CPPUNIT_LIBS=" -lcppunit" else CPPUNIT_LIBS="-L$CPPUNITHOME/lib -lcppunit" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi if test x"$cppunit_ok" = xyes; then CPPUNIT_IS_OK_TRUE= CPPUNIT_IS_OK_FALSE='#' else CPPUNIT_IS_OK_TRUE='#' CPPUNIT_IS_OK_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo echo -------------------------------------------------------------- echo Testing libBatch only required for batch functions in Launcher echo -------------------------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: Checking for libBatch library" >&5 $as_echo "$as_me: Checking for libBatch library" >&6;} LIBBATCH_INCLUDES="" LIBBATCH_LIBS="" libbatch_ok=no # Check whether --with-libbatch was given. if test "${with_libbatch+set}" = set; then : withval=$with_libbatch; LIBBATCH_DIR="$withval" else LIBBATCH_DIR="" fi if test "x$LIBBATCH_DIR" = "x" ; then # no --with-libbatch option used if test "x$LIBBATCH_ROOT_DIR" != "x" ; then # LIBBATCH_ROOT_DIR environment variable defined LIBBATCH_DIR=$LIBBATCH_ROOT_DIR fi fi LOCAL_INCLUDES="" LOCAL_LIBS="" if test "x$LIBBATCH_DIR" != "x" ; then LOCAL_INCLUDES="-I$LIBBATCH_DIR/include" if test "x$LIBBATCH_DIR" = "x/usr" ; then LOCAL_LIBS="-lBatch" else LOCAL_LIBS="-L$LIBBATCH_DIR/lib -lBatch" fi else LOCAL_INCLUDES="-I/usr/include" LOCAL_LIBS="-lBatch" fi # libBatch headers CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES" ac_fn_cxx_check_header_mongrel "$LINENO" "Batch/Batch_BatchManager.hxx" "ac_cv_header_Batch_Batch_BatchManager_hxx" "$ac_includes_default" if test "x$ac_cv_header_Batch_Batch_BatchManager_hxx" = x""yes; then : libbatch_ok="yes" else libbatch_ok="no" fi CPPFLAGS="$CPPFLAGS_old" if test "x$libbatch_ok" = "xyes" ; then # libBatch library LIBS_old=$LIBS LIBS="$LIBS $LOCAL_LIBS" # Can't use AC_SEARCH_LIBS or AC_CHECK_LIB here because # they don't work with C++ namespaces # AC_SEARCH_LIBS(Batch::BatchManagerCatalog::getInstance,Batch, # libbatch_ok="yes",libbatch_ok="no") { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing Batch::BatchManagerCatalog::getInstance" >&5 $as_echo_n "checking for library containing Batch::BatchManagerCatalog::getInstance... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ namespace Batch { class BatchManagerCatalog { public: static void getInstance(); }; } #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { using namespace Batch; BatchManagerCatalog::getInstance(); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : libbatch_ok="yes" else libbatch_ok="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbatch_ok" >&5 $as_echo "$libbatch_ok" >&6; } LIBS=$LIBS_old fi if test "x$libbatch_ok" = "xyes" ; then LIBBATCH_INCLUDES="$LOCAL_INCLUDES" LIBBATCH_LIBS="$LOCAL_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: for libBatch: $libbatch_ok" >&5 $as_echo "for libBatch: $libbatch_ok" >&6; } if test x"$libbatch_ok" = xyes; then WITH_LIBBATCH_TRUE= WITH_LIBBATCH_FALSE='#' else WITH_LIBBATCH_TRUE='#' WITH_LIBBATCH_FALSE= fi echo echo ============================================================ echo testing products required only for documentation generation echo ============================================================ echo echo echo --------------------------------------------- echo Testing html generators echo --------------------------------------------- echo #AC_CHECKING(for html generators) doxygen_ok=yes # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_DOXYGEN+set}" = set; then : $as_echo_n "(cached) " >&6 else case $DOXYGEN in [\\/]* | ?:[\\/]*) ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DOXYGEN=$ac_cv_path_DOXYGEN if test -n "$DOXYGEN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 $as_echo "$DOXYGEN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$DOXYGEN" = "x" then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found" >&5 $as_echo "$as_me: WARNING: doxygen not found" >&2;} doxygen_ok=no fi if test "x$doxygen_ok" = "xyes" then version=`$DOXYGEN --version` { $as_echo "$as_me:${as_lineno-$LINENO}: result: doxygen version $version" >&5 $as_echo "doxygen version $version" >&6; } case "$version" in 1.4.4*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=no ;; 1.4.5*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.6*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.7*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.8*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.9*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; [1-9].[5-9]*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; *) DOXYGEN_WITH_PYTHON=no DOXYGEN_WITH_STL=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: doxygen with support STL - $DOXYGEN_WITH_STL" >&5 $as_echo "doxygen with support STL - $DOXYGEN_WITH_STL" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: doxygen with support PYTHON - $DOXYGEN_WITH_PYTHON" >&5 $as_echo "doxygen with support PYTHON - $DOXYGEN_WITH_PYTHON" >&6; } if test "$DOXYGEN_WITH_PYTHON" == "yes" ; then DOXYGEN_PYTHON_EXTENSION="*.py" else DOXYGEN_PYTHON_EXTENSION="" fi if test "$DOXYGEN_WITH_STL" == "yes" ; then DOXYGEN_SUPPORT_STL="YES" else DOXYGEN_SUPPORT_STL="NO" fi fi graphviz_ok=yes # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_DOT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $DOT in [\\/]* | ?:[\\/]*) ac_cv_path_DOT="$DOT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DOT=$ac_cv_path_DOT if test -n "$DOT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5 $as_echo "$DOT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$DOT" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: graphviz not found" >&5 $as_echo "$as_me: WARNING: graphviz not found" >&2;} graphviz_ok=no fi # Extract the first word of "latex", so it can be a program name with args. set dummy latex; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_LATEX+set}" = set; then : $as_echo_n "(cached) " >&6 else case $LATEX in [\\/]* | ?:[\\/]*) ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi LATEX=$ac_cv_path_LATEX if test -n "$LATEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5 $as_echo "$LATEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$LATEX" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: latex not found" >&5 $as_echo "$as_me: WARNING: latex not found" >&2;} fi # Extract the first word of "dvips", so it can be a program name with args. set dummy dvips; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_DVIPS+set}" = set; then : $as_echo_n "(cached) " >&6 else case $DVIPS in [\\/]* | ?:[\\/]*) ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DVIPS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DVIPS=$ac_cv_path_DVIPS if test -n "$DVIPS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DVIPS" >&5 $as_echo "$DVIPS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$DVIPS" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dvips not found" >&5 $as_echo "$as_me: WARNING: dvips not found" >&2;} fi # Extract the first word of "pdflatex", so it can be a program name with args. set dummy pdflatex; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PDFLATEX+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PDFLATEX in [\\/]* | ?:[\\/]*) ac_cv_path_PDFLATEX="$PDFLATEX" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PDFLATEX=$ac_cv_path_PDFLATEX if test -n "$PDFLATEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PDFLATEX" >&5 $as_echo "$PDFLATEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$PDFLATEX" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pdflatex not found" >&5 $as_echo "$as_me: WARNING: pdflatex not found" >&2;} fi rst2html_ok=yes # Extract the first word of "rst2html", so it can be a program name with args. set dummy rst2html; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_RST2HTML+set}" = set; then : $as_echo_n "(cached) " >&6 else case $RST2HTML in [\\/]* | ?:[\\/]*) ac_cv_path_RST2HTML="$RST2HTML" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RST2HTML="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi RST2HTML=$ac_cv_path_RST2HTML if test -n "$RST2HTML"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RST2HTML" >&5 $as_echo "$RST2HTML" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$RST2HTML" = "x"; then # Extract the first word of "rst2html.py", so it can be a program name with args. set dummy rst2html.py; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_RST2HTML+set}" = set; then : $as_echo_n "(cached) " >&6 else case $RST2HTML in [\\/]* | ?:[\\/]*) ac_cv_path_RST2HTML="$RST2HTML" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RST2HTML="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi RST2HTML=$ac_cv_path_RST2HTML if test -n "$RST2HTML"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RST2HTML" >&5 $as_echo "$RST2HTML" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test "x$RST2HTML" = "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2html not found" >&5 $as_echo "$as_me: WARNING: rst2html not found" >&2;} rst2html_ok=no fi if test x"$rst2html_ok" = xyes; then RST2HTML_IS_OK_TRUE= RST2HTML_IS_OK_FALSE='#' else RST2HTML_IS_OK_TRUE='#' RST2HTML_IS_OK_FALSE= fi # Additional conditional to avoid compilation of non-portable code if test ; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi echo echo --------------------------------------------- echo testing sphinx echo --------------------------------------------- echo { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sphinx doc generator..." >&5 $as_echo "$as_me: checking for sphinx doc generator..." >&6;} sphinx_ok=yes # Extract the first word of "sphinx-build", so it can be a program name with args. set dummy sphinx-build; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_SPHINX+set}" = set; then : $as_echo_n "(cached) " >&6 else case $SPHINX in [\\/]* | ?:[\\/]*) ac_cv_path_SPHINX="$SPHINX" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SPHINX="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SPHINX=$ac_cv_path_SPHINX if test -n "$SPHINX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPHINX" >&5 $as_echo "$SPHINX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$SPHINX" = "x" then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sphinx not found" >&5 $as_echo "$as_me: WARNING: sphinx not found" >&2;} sphinx_ok=no fi if test x"$sphinx_ok" = xyes; then SPHINX_IS_OK_TRUE= SPHINX_IS_OK_FALSE='#' else SPHINX_IS_OK_TRUE='#' SPHINX_IS_OK_FALSE= fi echo echo ============================================================ echo Summary echo ============================================================ echo # This function displays the values of each variable given in arguments function summary { variables=$* for var in $variables do eval toto=\$$var if test x$toto != "x"; then printf " %10s : " `echo \$var | sed -e "s,_ok,,"` eval echo \$$var fi done } # -------------------------------------- function check_fatal_error { variables=$* for var in $variables do eval toto=\$$var if test x$toto != "xyes"; then echo "FATAL ERROR: some mandatory products are missing." echo "Installing the missing products is required before running the configure script". exit 1 fi done } # -------------------------------------- if test x$with_onlylauncher = xno; then if test x$corba_gen = xtrue; then basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok libxml_ok" else basic_mandatory_products="cc_ok threads_ok hdf5_ok libxml_ok" fi else basic_mandatory_products="cc_ok threads_ok libxml_ok" fi echo --- General mandatory products - Light configuration: summary $basic_mandatory_products check_fatal_error $basic_mandatory_products echo if test x$with_onlylauncher = xno; then corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok" if test x$corba_gen = xtrue; then echo --- CORBA mandatory products - default configuration: summary $corba_mandatory_products check_fatal_error $corba_mandatory_products else echo --- CORBA products not required - option --disable-corba-gen fi fi echo parallel_products="mpi_ok PaCO_ok parallel_extension_ok" echo --- Kernel parallel extensions: summary $parallel_products echo optional_products="cppunit_ok numpy_ok libbatch_ok" echo --- Optional products: echo " These products are optional because the KERNEL functions" echo " using them are built only if the products are detected." summary $optional_products echo if test x$libbatch_ok = xno; then echo " Warning: Batch functions will not be available in" echo " Salome Launcher because they require libBatch." echo fi htmldoc_products="doxygen_ok graphviz_ok rst2html_ok sphinx_ok" echo --- Html documentation products: only required for doc production summary $htmldoc_products echo if test x$with_onlylauncher = xno; then echo echo "Default ORB : $DEFAULT_ORB" echo fi COMMENCE=salome_adm/unix/make_commence CONCLUDE=salome_adm/unix/make_conclude MODULE=salome_adm/unix/make_module DEPEND=salome_adm/unix/depend if test "X$GMAKE" = "Xyes"; then SETX=":" else SETX="set -x" fi echo echo --------------------------------------------- echo generating Makefiles and configure files echo --------------------------------------------- echo cat > hack_libtool <.in to manage. When you execute # autoscan, the Makefile list is generated in the output file configure.scan. # This could be helpfull to update de configuration. ac_config_files="$ac_config_files KERNEL_version.h salome_adm/unix/SALOMEconfig.ref salome_adm/Makefile salome_adm/cmake_files/Makefile salome_adm/unix/Makefile salome_adm/unix/config_files/Makefile Makefile bin/Makefile bin/appliskel/Makefile bin/VERSION doc/Makefile doc/docutils/conf.py doc/salome/Makefile doc/salome/tui/Makefile doc/salome/tui/doxyfile doc/salome/tui/static/header.html doc/salome/gui/Makefile doc/salome/gui/doxyfile doc/salome/gui/static/header.html doc/docutils/Makefile idl/Makefile idl/Calcium_Ports.idl resources/Makefile resources/KERNELCatalog.xml resources/CatalogResources.xml src/Makefile src/Basics/Makefile src/Basics/Test/Makefile src/Communication/Makefile src/Communication_SWIG/Makefile src/Container/Makefile src/ParallelContainer/Makefile src/DF/Makefile src/DSC/Makefile src/DSC/DSC_Basic/Makefile src/DSC/DSC_User/Makefile src/DSC/DSC_User/Basic/Makefile src/DSC/DSC_User/Datastream/Makefile src/DSC/DSC_User/Datastream/Palm/Makefile src/DSC/DSC_User/Datastream/Calcium/Makefile src/DSC/DSC_User/Datastream/Calcium/calcium_integer_port_uses.hxx src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.hxx src/DSC/DSC_User/Datastream/Calcium/CalciumFortranInt.h src/DSC/ParallelDSC/Makefile src/DSC/DSC_Python/Makefile src/GenericObj/Makefile src/HDFPersist/Makefile src/KERNEL_PY/Makefile src/KERNEL_PY/kernel/Makefile src/KERNEL_PY/kernel/kernelpy_autotest.sh src/KERNEL_PY/kernel/logconfig.py src/KERNEL_PY/kernel/parametric/Makefile src/Launcher/Makefile src/LifeCycleCORBA/Makefile src/LifeCycleCORBA/Test/Makefile src/LifeCycleCORBA_SWIG/Makefile src/LifeCycleCORBA_SWIG/Test/Makefile src/Logger/Makefile src/Logger/Test/Makefile src/ModuleCatalog/Makefile src/ModuleGenerator/Makefile src/ModuleGenerator/testIDLparser src/MPIContainer/Makefile src/NamingService/Makefile src/NamingService/Test/Makefile src/Notification/Makefile src/NOTIFICATION_SWIG/Makefile src/Registry/Makefile src/ResourcesManager/Makefile src/SALOMEDS/Makefile src/SALOMEDS/Test/Makefile src/SALOMEDSClient/Makefile src/SALOMEDSImpl/Makefile src/SALOMEDSImpl/Test/Makefile src/SALOMELocalTrace/Makefile src/SALOMELocalTrace/Test/Makefile src/SALOMETraceCollector/Makefile src/SALOMETraceCollector/Test/Makefile src/TestContainer/Makefile src/TestMPIContainer/Makefile src/TOOLSDS/Makefile src/UnitTests/Makefile src/Utils/Makefile src/Utils/Test/Makefile src/KernelHelpers/Makefile src/KernelHelpers/Test/Makefile" cat >confcache <<\_ACEOF # 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, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # 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. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${CORBA_GEN_TRUE}" && test -z "${CORBA_GEN_FALSE}"; then as_fn_error "conditional \"CORBA_GEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WITHONLYLAUNCHER_TRUE}" && test -z "${WITHONLYLAUNCHER_FALSE}"; then as_fn_error "conditional \"WITHONLYLAUNCHER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WITH_MPI_SEQ_CONTAINER_TRUE}" && test -z "${WITH_MPI_SEQ_CONTAINER_FALSE}"; then as_fn_error "conditional \"WITH_MPI_SEQ_CONTAINER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MPI_IS_OK_TRUE}" && test -z "${MPI_IS_OK_FALSE}"; then as_fn_error "conditional \"MPI_IS_OK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MPI2_IS_OK_TRUE}" && test -z "${MPI2_IS_OK_FALSE}"; then as_fn_error "conditional \"MPI2_IS_OK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WITH_PACO_PARALLEL_TRUE}" && test -z "${WITH_PACO_PARALLEL_FALSE}"; then as_fn_error "conditional \"WITH_PACO_PARALLEL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CPPUNIT_IS_OK_TRUE}" && test -z "${CPPUNIT_IS_OK_FALSE}"; then as_fn_error "conditional \"CPPUNIT_IS_OK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WITH_LIBBATCH_TRUE}" && test -z "${WITH_LIBBATCH_FALSE}"; then as_fn_error "conditional \"WITH_LIBBATCH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${RST2HTML_IS_OK_TRUE}" && test -z "${RST2HTML_IS_OK_FALSE}"; then as_fn_error "conditional \"RST2HTML_IS_OK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SPHINX_IS_OK_TRUE}" && test -z "${SPHINX_IS_OK_FALSE}"; then as_fn_error "conditional \"SPHINX_IS_OK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Salome2 Project $as_me 6.5.0, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="`echo $ac_config_files`" config_commands="`echo $ac_config_commands`" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ Salome2 Project config.status 6.5.0 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' LD_F77='`$ECHO "X$LD_F77" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_F77='`$ECHO "X$old_archive_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_F77='`$ECHO "X$compiler_F77" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_F77='`$ECHO "X$GCC_F77" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_F77='`$ECHO "X$lt_prog_compiler_no_builtin_flag_F77" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_F77='`$ECHO "X$lt_prog_compiler_wl_F77" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_F77='`$ECHO "X$lt_prog_compiler_pic_F77" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_F77='`$ECHO "X$lt_prog_compiler_static_F77" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_F77='`$ECHO "X$lt_cv_prog_compiler_c_o_F77" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_F77='`$ECHO "X$archive_cmds_need_lc_F77" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_F77='`$ECHO "X$enable_shared_with_static_runtimes_F77" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_F77='`$ECHO "X$export_dynamic_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_F77='`$ECHO "X$whole_archive_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_F77='`$ECHO "X$compiler_needs_object_F77" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_F77='`$ECHO "X$old_archive_from_new_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_F77='`$ECHO "X$old_archive_from_expsyms_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_F77='`$ECHO "X$archive_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_F77='`$ECHO "X$archive_expsym_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_F77='`$ECHO "X$module_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_F77='`$ECHO "X$module_expsym_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_F77='`$ECHO "X$with_gnu_ld_F77" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_F77='`$ECHO "X$allow_undefined_flag_F77" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_F77='`$ECHO "X$no_undefined_flag_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_F77='`$ECHO "X$hardcode_libdir_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_F77='`$ECHO "X$hardcode_libdir_flag_spec_ld_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_F77='`$ECHO "X$hardcode_libdir_separator_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_F77='`$ECHO "X$hardcode_direct_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_F77='`$ECHO "X$hardcode_direct_absolute_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_F77='`$ECHO "X$hardcode_minus_L_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_F77='`$ECHO "X$hardcode_shlibpath_var_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_F77='`$ECHO "X$hardcode_automatic_F77" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_F77='`$ECHO "X$inherit_rpath_F77" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_F77='`$ECHO "X$link_all_deplibs_F77" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_F77='`$ECHO "X$fix_srcfile_path_F77" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_F77='`$ECHO "X$always_export_symbols_F77" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_F77='`$ECHO "X$export_symbols_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_F77='`$ECHO "X$exclude_expsyms_F77" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_F77='`$ECHO "X$include_expsyms_F77" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_F77='`$ECHO "X$prelink_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_F77='`$ECHO "X$file_list_spec_F77" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_F77='`$ECHO "X$hardcode_action_F77" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_F77='`$ECHO "X$compiler_lib_search_dirs_F77" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_F77='`$ECHO "X$predep_objects_F77" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_F77='`$ECHO "X$postdep_objects_F77" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_F77='`$ECHO "X$predeps_F77" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_F77='`$ECHO "X$postdeps_F77" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_F77='`$ECHO "X$compiler_lib_search_path_F77" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ LD_F77 \ compiler_CXX \ compiler_F77 \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_no_builtin_flag_F77 \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_CXX \ lt_prog_compiler_static_F77 \ lt_cv_prog_compiler_c_o_CXX \ lt_cv_prog_compiler_c_o_F77 \ export_dynamic_flag_spec_CXX \ export_dynamic_flag_spec_F77 \ whole_archive_flag_spec_CXX \ whole_archive_flag_spec_F77 \ compiler_needs_object_CXX \ compiler_needs_object_F77 \ with_gnu_ld_CXX \ with_gnu_ld_F77 \ allow_undefined_flag_CXX \ allow_undefined_flag_F77 \ no_undefined_flag_CXX \ no_undefined_flag_F77 \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_CXX \ hardcode_libdir_separator_F77 \ fix_srcfile_path_CXX \ fix_srcfile_path_F77 \ exclude_expsyms_CXX \ exclude_expsyms_F77 \ include_expsyms_CXX \ include_expsyms_F77 \ file_list_spec_CXX \ file_list_spec_F77 \ compiler_lib_search_dirs_CXX \ compiler_lib_search_dirs_F77 \ predep_objects_CXX \ predep_objects_F77 \ postdep_objects_CXX \ postdep_objects_F77 \ predeps_CXX \ predeps_F77 \ postdeps_CXX \ postdeps_F77 \ compiler_lib_search_path_CXX \ compiler_lib_search_path_F77; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_cmds_F77 \ old_archive_from_new_cmds_CXX \ old_archive_from_new_cmds_F77 \ old_archive_from_expsyms_cmds_CXX \ old_archive_from_expsyms_cmds_F77 \ archive_cmds_CXX \ archive_cmds_F77 \ archive_expsym_cmds_CXX \ archive_expsym_cmds_F77 \ module_cmds_CXX \ module_cmds_F77 \ module_expsym_cmds_CXX \ module_expsym_cmds_F77 \ export_symbols_cmds_CXX \ export_symbols_cmds_F77 \ prelink_cmds_CXX \ prelink_cmds_F77; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "hack_libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS hack_libtool" ;; "KERNEL_version.h") CONFIG_FILES="$CONFIG_FILES KERNEL_version.h" ;; "salome_adm/unix/SALOMEconfig.ref") CONFIG_FILES="$CONFIG_FILES salome_adm/unix/SALOMEconfig.ref" ;; "salome_adm/Makefile") CONFIG_FILES="$CONFIG_FILES salome_adm/Makefile" ;; "salome_adm/cmake_files/Makefile") CONFIG_FILES="$CONFIG_FILES salome_adm/cmake_files/Makefile" ;; "salome_adm/unix/Makefile") CONFIG_FILES="$CONFIG_FILES salome_adm/unix/Makefile" ;; "salome_adm/unix/config_files/Makefile") CONFIG_FILES="$CONFIG_FILES salome_adm/unix/config_files/Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; "bin/appliskel/Makefile") CONFIG_FILES="$CONFIG_FILES bin/appliskel/Makefile" ;; "bin/VERSION") CONFIG_FILES="$CONFIG_FILES bin/VERSION" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/docutils/conf.py") CONFIG_FILES="$CONFIG_FILES doc/docutils/conf.py" ;; "doc/salome/Makefile") CONFIG_FILES="$CONFIG_FILES doc/salome/Makefile" ;; "doc/salome/tui/Makefile") CONFIG_FILES="$CONFIG_FILES doc/salome/tui/Makefile" ;; "doc/salome/tui/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/salome/tui/doxyfile" ;; "doc/salome/tui/static/header.html") CONFIG_FILES="$CONFIG_FILES doc/salome/tui/static/header.html" ;; "doc/salome/gui/Makefile") CONFIG_FILES="$CONFIG_FILES doc/salome/gui/Makefile" ;; "doc/salome/gui/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/salome/gui/doxyfile" ;; "doc/salome/gui/static/header.html") CONFIG_FILES="$CONFIG_FILES doc/salome/gui/static/header.html" ;; "doc/docutils/Makefile") CONFIG_FILES="$CONFIG_FILES doc/docutils/Makefile" ;; "idl/Makefile") CONFIG_FILES="$CONFIG_FILES idl/Makefile" ;; "idl/Calcium_Ports.idl") CONFIG_FILES="$CONFIG_FILES idl/Calcium_Ports.idl" ;; "resources/Makefile") CONFIG_FILES="$CONFIG_FILES resources/Makefile" ;; "resources/KERNELCatalog.xml") CONFIG_FILES="$CONFIG_FILES resources/KERNELCatalog.xml" ;; "resources/CatalogResources.xml") CONFIG_FILES="$CONFIG_FILES resources/CatalogResources.xml" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/Basics/Makefile") CONFIG_FILES="$CONFIG_FILES src/Basics/Makefile" ;; "src/Basics/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/Basics/Test/Makefile" ;; "src/Communication/Makefile") CONFIG_FILES="$CONFIG_FILES src/Communication/Makefile" ;; "src/Communication_SWIG/Makefile") CONFIG_FILES="$CONFIG_FILES src/Communication_SWIG/Makefile" ;; "src/Container/Makefile") CONFIG_FILES="$CONFIG_FILES src/Container/Makefile" ;; "src/ParallelContainer/Makefile") CONFIG_FILES="$CONFIG_FILES src/ParallelContainer/Makefile" ;; "src/DF/Makefile") CONFIG_FILES="$CONFIG_FILES src/DF/Makefile" ;; "src/DSC/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/Makefile" ;; "src/DSC/DSC_Basic/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_Basic/Makefile" ;; "src/DSC/DSC_User/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Makefile" ;; "src/DSC/DSC_User/Basic/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Basic/Makefile" ;; "src/DSC/DSC_User/Datastream/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Datastream/Makefile" ;; "src/DSC/DSC_User/Datastream/Palm/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Datastream/Palm/Makefile" ;; "src/DSC/DSC_User/Datastream/Calcium/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Datastream/Calcium/Makefile" ;; "src/DSC/DSC_User/Datastream/Calcium/calcium_integer_port_uses.hxx") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Datastream/Calcium/calcium_integer_port_uses.hxx" ;; "src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.hxx") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.hxx" ;; "src/DSC/DSC_User/Datastream/Calcium/CalciumFortranInt.h") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_User/Datastream/Calcium/CalciumFortranInt.h" ;; "src/DSC/ParallelDSC/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/ParallelDSC/Makefile" ;; "src/DSC/DSC_Python/Makefile") CONFIG_FILES="$CONFIG_FILES src/DSC/DSC_Python/Makefile" ;; "src/GenericObj/Makefile") CONFIG_FILES="$CONFIG_FILES src/GenericObj/Makefile" ;; "src/HDFPersist/Makefile") CONFIG_FILES="$CONFIG_FILES src/HDFPersist/Makefile" ;; "src/KERNEL_PY/Makefile") CONFIG_FILES="$CONFIG_FILES src/KERNEL_PY/Makefile" ;; "src/KERNEL_PY/kernel/Makefile") CONFIG_FILES="$CONFIG_FILES src/KERNEL_PY/kernel/Makefile" ;; "src/KERNEL_PY/kernel/kernelpy_autotest.sh") CONFIG_FILES="$CONFIG_FILES src/KERNEL_PY/kernel/kernelpy_autotest.sh" ;; "src/KERNEL_PY/kernel/logconfig.py") CONFIG_FILES="$CONFIG_FILES src/KERNEL_PY/kernel/logconfig.py" ;; "src/KERNEL_PY/kernel/parametric/Makefile") CONFIG_FILES="$CONFIG_FILES src/KERNEL_PY/kernel/parametric/Makefile" ;; "src/Launcher/Makefile") CONFIG_FILES="$CONFIG_FILES src/Launcher/Makefile" ;; "src/LifeCycleCORBA/Makefile") CONFIG_FILES="$CONFIG_FILES src/LifeCycleCORBA/Makefile" ;; "src/LifeCycleCORBA/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/LifeCycleCORBA/Test/Makefile" ;; "src/LifeCycleCORBA_SWIG/Makefile") CONFIG_FILES="$CONFIG_FILES src/LifeCycleCORBA_SWIG/Makefile" ;; "src/LifeCycleCORBA_SWIG/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/LifeCycleCORBA_SWIG/Test/Makefile" ;; "src/Logger/Makefile") CONFIG_FILES="$CONFIG_FILES src/Logger/Makefile" ;; "src/Logger/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/Logger/Test/Makefile" ;; "src/ModuleCatalog/Makefile") CONFIG_FILES="$CONFIG_FILES src/ModuleCatalog/Makefile" ;; "src/ModuleGenerator/Makefile") CONFIG_FILES="$CONFIG_FILES src/ModuleGenerator/Makefile" ;; "src/ModuleGenerator/testIDLparser") CONFIG_FILES="$CONFIG_FILES src/ModuleGenerator/testIDLparser" ;; "src/MPIContainer/Makefile") CONFIG_FILES="$CONFIG_FILES src/MPIContainer/Makefile" ;; "src/NamingService/Makefile") CONFIG_FILES="$CONFIG_FILES src/NamingService/Makefile" ;; "src/NamingService/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/NamingService/Test/Makefile" ;; "src/Notification/Makefile") CONFIG_FILES="$CONFIG_FILES src/Notification/Makefile" ;; "src/NOTIFICATION_SWIG/Makefile") CONFIG_FILES="$CONFIG_FILES src/NOTIFICATION_SWIG/Makefile" ;; "src/Registry/Makefile") CONFIG_FILES="$CONFIG_FILES src/Registry/Makefile" ;; "src/ResourcesManager/Makefile") CONFIG_FILES="$CONFIG_FILES src/ResourcesManager/Makefile" ;; "src/SALOMEDS/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMEDS/Makefile" ;; "src/SALOMEDS/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMEDS/Test/Makefile" ;; "src/SALOMEDSClient/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMEDSClient/Makefile" ;; "src/SALOMEDSImpl/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMEDSImpl/Makefile" ;; "src/SALOMEDSImpl/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMEDSImpl/Test/Makefile" ;; "src/SALOMELocalTrace/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMELocalTrace/Makefile" ;; "src/SALOMELocalTrace/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMELocalTrace/Test/Makefile" ;; "src/SALOMETraceCollector/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMETraceCollector/Makefile" ;; "src/SALOMETraceCollector/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/SALOMETraceCollector/Test/Makefile" ;; "src/TestContainer/Makefile") CONFIG_FILES="$CONFIG_FILES src/TestContainer/Makefile" ;; "src/TestMPIContainer/Makefile") CONFIG_FILES="$CONFIG_FILES src/TestMPIContainer/Makefile" ;; "src/TOOLSDS/Makefile") CONFIG_FILES="$CONFIG_FILES src/TOOLSDS/Makefile" ;; "src/UnitTests/Makefile") CONFIG_FILES="$CONFIG_FILES src/UnitTests/Makefile" ;; "src/Utils/Makefile") CONFIG_FILES="$CONFIG_FILES src/Utils/Makefile" ;; "src/Utils/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/Utils/Test/Makefile" ;; "src/KernelHelpers/Makefile") CONFIG_FILES="$CONFIG_FILES src/KernelHelpers/Makefile" ;; "src/KernelHelpers/Test/Makefile") CONFIG_FILES="$CONFIG_FILES src/KernelHelpers/Test/Makefile" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then if $AWK 'BEGIN { getline <"/dev/null" }' /dev/null; then ac_cs_awk_getline=: ac_cs_awk_pipe_init= ac_cs_awk_read_file=' while ((getline aline < (F[key])) > 0) print(aline) close(F[key])' ac_cs_awk_pipe_fini= else ac_cs_awk_getline=false ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\"" ac_cs_awk_read_file=' print "|#_!!_#|" print "cat " F[key] " &&" '$ac_cs_awk_pipe_init # The final `:' finishes the AND list. ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }' fi ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF # Create commands to substitute file output variables. { echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" && echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' && echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' && echo "_ACAWK" && echo "_ACEOF" } >conf$$files.sh && . ./conf$$files.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 rm -f conf$$files.sh { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" \$ac_cs_awk_pipe_init } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } if (nfields == 3 && !substed) { key = field[2] if (F[key] != "" && line ~ /^[ ]*@.*@[ ]*$/) { \$ac_cs_awk_read_file next } } print line } \$ac_cs_awk_pipe_fini _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | if $ac_cs_awk_getline; then $AWK -f "$tmp/subs.awk" else $AWK -f "$tmp/subs.awk" | $SHELL fi >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX F77 " # ### BEGIN LIBTOOL CONFIG # Whether or not to build static libraries. build_old_libs=$enable_static # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # 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 # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_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=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$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 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # 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 # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_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=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # 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 _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # 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? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: F77 # The linker used to build libraries. LD=$lt_LD_F77 # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_F77 # A language specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU compiler? with_gcc=$GCC_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_F77 # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_F77 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_F77 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_F77 # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_F77 # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_F77 # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_F77 # Specify filename containing input files. file_list_spec=$lt_file_list_spec_F77 # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77 # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_F77 postdep_objects=$lt_postdep_objects_F77 predeps=$lt_predeps_F77 postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # ### END LIBTOOL TAG CONFIG: F77 _LT_EOF ;; "hack_libtool":C) sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\ $(pwd)/hack_libtool \1 \"\$@\" \n\ }\n\ CC=\"hack_libtool\"%g" libtool sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1 if ! test -d \$sss; then continue; fi\n\1 ssss=\$(cd \$sss; pwd)\n\1 if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1 case \$ssss in\n\1 /usr/lib | /usr/lib64 ) ;;\n\1 * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1 esac\n\1 fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi salome-kernel-6.5.0/configure.ac000077500000000000000000000426501177004724000165620ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ================================================================ # Process this file with autoconf to produce a configure script # ================================================================ #AC_PREREQ(2.59) # AC_INIT([Salome2 Project], [6.5.0], [paul.rascle@edf.fr], [SalomeKERNEL]) # AC_CONFIG_AUX_DIR defines an alternative directory where to find the auxiliary # scripts such as config.guess, install-sh, ... AC_CONFIG_AUX_DIR(salome_adm/unix/config_files) AC_CANONICAL_HOST AC_CANONICAL_TARGET AM_INIT_AUTOMAKE([tar-pax -Wno-portability]) #AC_CONFIG_HEADER([config.h]) XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` AC_SUBST(XVERSION) VERSION_DEV=0 AC_SUBST(VERSION_DEV) # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) MODULE_NAME=kernel AC_SUBST(MODULE_NAME) echo echo --------------------------------------------- echo Initialize source and build root directories echo --------------------------------------------- echo # # This function return on stdout the absolute path of the filename in # argument. Exemple: # $ filename="../KERNEL_SRC/configure # $ absfilename=`absolute_path $filename` function absolute_path { filename=$1 here=`pwd` apath=`dirname $filename` cd $apath apath=`pwd` cd $here echo $apath } # Build directory, where the configure script is executed. ROOT_BUILDDIR=`pwd` # Source directory, where the configure script is located. ROOT_SRCDIR=`absolute_path $0` AC_SUBST(ROOT_SRCDIR) AC_SUBST(ROOT_BUILDDIR) echo echo Source root directory : $ROOT_SRCDIR echo Build root directory : $ROOT_BUILDDIR # ---------------------------------------------------------------------------- # --- test options AC_ARG_ENABLE(corba_gen, [AC_HELP_STRING([--enable-corba-gen],[Generate CORBA stuff [default=yes]])], [case "${enableval}" in yes) corba_gen=true ;; no) corba_gen=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-corba-gen) ;; esac],[corba_gen=true]) AM_CONDITIONAL(CORBA_GEN, test x$corba_gen = xtrue) # ---- option to build only launcher and resources manager AC_ARG_WITH(onlylauncher, [AC_HELP_STRING([--with-onlylauncher],[Build only launcher and resources manager [default=no]])], [], [with_onlylauncher="no"]) AM_CONDITIONAL(WITHONLYLAUNCHER, test x$with_onlylauncher = xyes) if test "$with_onlylauncher" != "yes"; then AC_DEFINE([HAVE_SALOME_CONFIG], [], [True if SALOMEconfig.h file is used]) fi # ---------------------------------------------------------------------------- echo echo echo ============================================================ echo testing general mandatory products - for all configurations echo ============================================================ echo dnl Modification B. Secher portage sur osf AC_CHECK_PROG(SHELL,sh) AC_SUBST(SHELL) if test -z "$AR"; then AC_CHECK_PROGS(AR,ar xar,:,$PATH) fi AC_SUBST(AR) echo echo --------------------------------------------- echo testing make echo --------------------------------------------- echo AC_PROG_MAKE_SET AC_PROG_INSTALL AC_LOCAL_INSTALL echo echo --------------------------------------------- echo Configuring production echo --------------------------------------------- echo # production.m4 AC_ENABLE_DEBUG(no) AC_ENABLE_PRODUCTION(no) AC_ENABLE_MPI_SEQ_CONTAINER(no) # _GBO_SALOME_PYTHON_PACKAGING_ if test "X$enable_debug" = "Xyes"; then PYLOGLEVEL=DEBUG else PYLOGLEVEL=WARNING fi AC_SUBST(PYLOGLEVEL) echo echo --------------------------------------------- echo testing libtool echo --------------------------------------------- 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 echo echo --------------------------------------------- echo testing C/C++ echo --------------------------------------------- echo cc_ok=no AC_PROG_CC AC_PROG_CXX AC_LANG(C++) AC_CXX_WARNINGS AC_CXX_TEMPLATE_OPTIONS AC_DEPEND_FLAG # AC_CC_WARNINGS([ansi]) cc_ok=yes dnl Library libdl : AC_CHECK_LIB(dl,dlopen) dnl Library librt : for alpha/osf AC_CHECK_LIB(rt,nanosleep) dnl add library libm : AC_CHECK_LIB(m,ceil) AC_CXX_USE_STD_IOSTREAM AC_CXX_HAVE_SSTREAM # Testing linker AC_LINKER_OPTIONS echo echo --------------------------------------------- echo testing Fortran INTEGER size for CALCIUM echo --------------------------------------------- echo CHECK_CALCIUM echo echo --------------------------------------------- echo testing threads echo --------------------------------------------- echo ENABLE_PTHREADS echo echo --------------------------------------------- echo testing python echo --------------------------------------------- echo CHECK_PYTHON echo echo --------------------------------------------- echo testing swig echo --------------------------------------------- echo # _GBO_ This definition is required. Without this definition, the pythondir # would not be defined. The version doesn't matter. AM_PATH_PYTHON(2.4) CHECK_SWIG echo echo --------------------------------------------- echo Testing libxml2 echo --------------------------------------------- echo CHECK_LIBXML echo echo --------------------------------------------- echo checking if MPI is requested by user echo --------------------------------------------- echo CHECK_MPI if test x$with_onlylauncher = xno; then echo echo --------------------------------------------- echo testing HDF5 echo --------------------------------------------- echo CHECK_HDF5 # ---------------------------------------------------------------------------- # --- test corba if test x$corba_gen = xtrue; then echo echo ============================================================ echo testing mandatory products for CORBA configurations echo ============================================================ echo dnl dnl --------------------------------------------- dnl testing sockets dnl --------------------------------------------- dnl CHECK_SOCKETS echo echo --------------------------------------------- echo Configuration of the ORB echo --------------------------------------------- echo echo Testing OMNIORB ... CHECK_OMNIORB echo Selecting the default ORB DEFAULT_ORB=omniORB echo DEFAULT_ORB : $DEFAULT_ORB CHECK_CORBA CORBA=salome_adm/unix/make_$ORB AC_SUBST_FILE(CORBA) # _CS_gbo: # The CORBA variable defines the file name that # implements the building rules to be included by Makefile to process # idl files and CORBA specific dependencies (ex: the file # salome_adm/unix/make_omniorb is the default for SALOME). The value # of ORB is defined by CHECK_CORBA. # Note that this checking process is no longer relevant for SALOME # because the possibility of changing the ORB as a plugin is probably # deprecated. The software configuration is clearly omniorb for CORBA # communication. This could be simplify in a near futur. echo echo --------------------------------------------- echo BOOST Library echo --------------------------------------------- echo CHECK_BOOST fi # --- end test corba # ---------------------------------------------------------------------------- fi # --- end test ONLYLAUNCHER # ---------------------------------------------------------------------------- echo echo ============================================================ echo testing parallel products echo ============================================================ echo echo echo --------------------------------------------- echo checking if PaCO++ is requested by user echo --------------------------------------------- echo CHECK_PACO echo echo ------------------------------------------------------------ echo checking if parallel kernel extensions are requested by user echo ------------------------------------------------------------ echo AC_MSG_CHECKING(whether to enable parallel kernel extension) AC_ARG_ENABLE(parallel_extension, AC_HELP_STRING([--enable-parallel_extension], [parallel kernel extension = [no/yes] (default is no)]), parallel_extension_ok=$enableval, parallel_extension_ok=no) if test "x$parallel_extension_ok" = "xyes" then if test "x$PaCO_ok" = "xno" then parallel_extension_ok=no fi fi if test "x$parallel_extension_ok" = "xyes" then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi AM_CONDITIONAL([WITH_PACO_PARALLEL], [test "x$parallel_extension_ok" = "xyes"]) echo echo ============================================================ echo testing optionnal products echo ============================================================ echo echo echo ---------------------------------------------- echo testing CPPUNIT only required for unit testing echo ---------------------------------------------- echo CHECK_CPPUNIT echo echo -------------------------------------------------------------- echo Testing libBatch only required for batch functions in Launcher echo -------------------------------------------------------------- echo CHECK_LIBBATCH AM_CONDITIONAL(WITH_LIBBATCH, [test x"$libbatch_ok" = xyes]) echo echo ============================================================ echo testing products required only for documentation generation echo ============================================================ echo echo echo --------------------------------------------- echo Testing html generators echo --------------------------------------------- echo CHECK_HTML_GENERATORS # Additional conditional to avoid compilation of non-portable code AM_CONDITIONAL(WINDOWS, [ test ]) echo echo --------------------------------------------- echo testing sphinx echo --------------------------------------------- echo CHECK_SPHINX echo echo ============================================================ echo Summary echo ============================================================ echo # This function displays the values of each variable given in arguments function summary { variables=$* for var in $variables do eval toto=\$$var if test x$toto != "x"; then printf " %10s : " `echo \$var | sed -e "s,_ok,,"` eval echo \$$var fi done } # -------------------------------------- function check_fatal_error { variables=$* for var in $variables do eval toto=\$$var if test x$toto != "xyes"; then echo "FATAL ERROR: some mandatory products are missing." echo "Installing the missing products is required before running the configure script". exit 1 fi done } # -------------------------------------- if test x$with_onlylauncher = xno; then if test x$corba_gen = xtrue; then basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok libxml_ok" else basic_mandatory_products="cc_ok threads_ok hdf5_ok libxml_ok" fi else basic_mandatory_products="cc_ok threads_ok libxml_ok" fi echo --- General mandatory products - Light configuration: summary $basic_mandatory_products check_fatal_error $basic_mandatory_products echo if test x$with_onlylauncher = xno; then corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok" if test x$corba_gen = xtrue; then echo --- CORBA mandatory products - default configuration: summary $corba_mandatory_products check_fatal_error $corba_mandatory_products else echo --- CORBA products not required - option --disable-corba-gen fi fi echo parallel_products="mpi_ok PaCO_ok parallel_extension_ok" echo --- Kernel parallel extensions: summary $parallel_products echo optional_products="cppunit_ok numpy_ok libbatch_ok" echo --- Optional products: echo [" These products are optional because the KERNEL functions"] echo [" using them are built only if the products are detected."] summary $optional_products echo if test x$libbatch_ok = xno; then echo [" Warning: Batch functions will not be available in"] echo [" Salome Launcher because they require libBatch."] echo fi htmldoc_products="doxygen_ok graphviz_ok rst2html_ok sphinx_ok" echo --- Html documentation products: only required for doc production summary $htmldoc_products echo if test x$with_onlylauncher = xno; then echo echo "Default ORB : $DEFAULT_ORB" echo fi 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 echo echo --------------------------------------------- echo generating Makefiles and configure files echo --------------------------------------------- echo AC_HACK_LIBTOOL AC_CONFIG_COMMANDS([hack_libtool],[ sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\ $(pwd)/hack_libtool \1 \"\$[@]\" \n\ }\n\ CC=\"hack_libtool\"%g" libtool sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1 if ! test -d \$sss; then continue; fi\n\1 ssss=\$(cd \$sss; pwd)\n\1 if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1 case \$ssss in\n\1 /usr/lib | /usr/lib64 ) ;;\n\1 * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1 esac\n\1 fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool ],[]) # This list is initiated using autoscan and must be updated manually # when adding a new file .in to manage. When you execute # autoscan, the Makefile list is generated in the output file configure.scan. # This could be helpfull to update de configuration. AC_OUTPUT([ \ KERNEL_version.h \ salome_adm/unix/SALOMEconfig.ref \ salome_adm/Makefile \ salome_adm/cmake_files/Makefile \ salome_adm/unix/Makefile \ salome_adm/unix/config_files/Makefile \ Makefile \ bin/Makefile \ bin/appliskel/Makefile \ bin/VERSION \ doc/Makefile \ doc/docutils/conf.py \ doc/salome/Makefile \ doc/salome/tui/Makefile \ doc/salome/tui/doxyfile \ doc/salome/tui/static/header.html \ doc/salome/gui/Makefile \ doc/salome/gui/doxyfile \ doc/salome/gui/static/header.html \ doc/docutils/Makefile \ idl/Makefile \ idl/Calcium_Ports.idl \ resources/Makefile \ resources/KERNELCatalog.xml \ resources/CatalogResources.xml \ src/Makefile \ src/Basics/Makefile \ src/Basics/Test/Makefile \ src/Communication/Makefile \ src/Communication_SWIG/Makefile \ src/Container/Makefile \ src/ParallelContainer/Makefile \ src/DF/Makefile \ src/DSC/Makefile \ src/DSC/DSC_Basic/Makefile \ src/DSC/DSC_User/Makefile \ src/DSC/DSC_User/Basic/Makefile \ src/DSC/DSC_User/Datastream/Makefile \ src/DSC/DSC_User/Datastream/Palm/Makefile \ src/DSC/DSC_User/Datastream/Calcium/Makefile \ src/DSC/DSC_User/Datastream/Calcium/calcium_integer_port_uses.hxx \ src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.hxx \ src/DSC/DSC_User/Datastream/Calcium/CalciumFortranInt.h \ src/DSC/ParallelDSC/Makefile \ src/DSC/DSC_Python/Makefile \ src/GenericObj/Makefile \ src/HDFPersist/Makefile \ src/KERNEL_PY/Makefile \ src/KERNEL_PY/kernel/Makefile \ src/KERNEL_PY/kernel/kernelpy_autotest.sh \ src/KERNEL_PY/kernel/logconfig.py \ src/KERNEL_PY/kernel/parametric/Makefile \ src/Launcher/Makefile \ src/LifeCycleCORBA/Makefile \ src/LifeCycleCORBA/Test/Makefile \ src/LifeCycleCORBA_SWIG/Makefile \ src/LifeCycleCORBA_SWIG/Test/Makefile \ src/Logger/Makefile \ src/Logger/Test/Makefile \ src/ModuleCatalog/Makefile \ src/ModuleGenerator/Makefile \ src/ModuleGenerator/testIDLparser \ src/MPIContainer/Makefile \ src/NamingService/Makefile \ src/NamingService/Test/Makefile \ src/Notification/Makefile \ src/NOTIFICATION_SWIG/Makefile \ src/Registry/Makefile \ src/ResourcesManager/Makefile \ src/SALOMEDS/Makefile \ src/SALOMEDS/Test/Makefile \ src/SALOMEDSClient/Makefile \ src/SALOMEDSImpl/Makefile \ src/SALOMEDSImpl/Test/Makefile \ src/SALOMELocalTrace/Makefile \ src/SALOMELocalTrace/Test/Makefile \ src/SALOMETraceCollector/Makefile \ src/SALOMETraceCollector/Test/Makefile \ src/TestContainer/Makefile \ src/TestMPIContainer/Makefile \ src/TOOLSDS/Makefile \ src/UnitTests/Makefile \ src/Utils/Makefile \ src/Utils/Test/Makefile \ src/KernelHelpers/Makefile \ src/KernelHelpers/Test/Makefile \ ]) salome-kernel-6.5.0/doc/000077500000000000000000000000001177004724000150275ustar00rootroot00000000000000salome-kernel-6.5.0/doc/Makefile.am000077500000000000000000000024261177004724000170720ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Paul RASCLE (EDF) # Date : 06/02/2006 # include $(top_srcdir)/salome_adm/unix/make_common_starter.am SUBDIRS = salome docutils EXTRA_DIST = configuration_examples README.cluster-CCRT docs: usr_docs usr_docs: (cd salome && $(MAKE) $(AM_MAKEFLAGS) usr_docs) dev_docs: (cd salome && $(MAKE) $(AM_MAKEFLAGS) dev_docs) salome-kernel-6.5.0/doc/Makefile.in000077500000000000000000000642441177004724000171110ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Paul RASCLE (EDF) # Date : 06/02/2006 # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules SUBDIRS = salome docutils EXTRA_DIST = configuration_examples README.cluster-CCRT all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am docs: usr_docs usr_docs: (cd salome && $(MAKE) $(AM_MAKEFLAGS) usr_docs) dev_docs: (cd salome && $(MAKE) $(AM_MAKEFLAGS) dev_docs) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/doc/README.cluster-CCRT000077500000000000000000000071641177004724000201330ustar00rootroot00000000000000Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com OverView ======== That describes how to start Salome without IHM in "terminal" mode. With that "terminal" mode Salome may be started in "Batch" mode. And one or more python scripts may be executed Warnings ======== The list of needed modules must be explicited with --modules option It is not possible to use embbedded components, so we must use --standalone option After the python script(s) listed in the --terminal option, ",killall" should be added : so the processes of Salome will be killed after the execution of the python script(s). Examples ======== Sans IHM sans execution de script python (for interactive testing and developping) : --------------------------------------------- runSalome --terminal --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall --logger Sans IHM avec execution de script(s) python : --------------------------------------------- runSalome --terminal=CALCULATOR_TEST --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall --logger runSalome --terminal=CALCULATOR_TEST_WITHOUTIHM --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall --logger runSalome --terminal=CALCULATOR_TEST_STUDY_WITHOUTIHM --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall --logger runSalome --terminal=CALCULATOR_TEST_WITHOUTIHM,CALCULATOR_TEST_STUDY_WITHOUTIHM --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall --logger runSalome --terminal=CALCULATOR_TEST,killall --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall --logger after the import of CALCULATOR_TEST, killall will be executed. =================================================== Example for starting Salome in Batch mode on CCRT : =================================================== Create a shell file "runSalome.batch" with for example : -------------------------------------------------------- #BSUB -n 10 #BSUB -o runSalome.log%J #BSUB -c 0:10 runSalome --terminal=CALCULATOR_TEST,killall --modules=KERNEL,MED,CALCULATOR,COMPONENT --containers=cpp,python --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall exit Queue for execution that file (here runSalome.batch) : -------------------------------------------------------------------- bsub < runSalome.batch See the "bsub" documentation for details (or "man bsub") salome-kernel-6.5.0/doc/configuration_examples/000077500000000000000000000000001177004724000215745ustar00rootroot00000000000000salome-kernel-6.5.0/doc/configuration_examples/example_prerequis.sh000077500000000000000000000115221177004724000256660ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # --- SALOME Required packages : configuration example,SALOME2 V2_2_0 # --- all path are relative to ${INSTALLROOT} # INSTALLROOT="__INSTALL_PATH__/SALOME2/prerequis" #------ gcc 3.2.3 --- export PATH=${INSTALLROOT}/gcc-3.2.3/bin:${PATH} export LD_LIBRARY_PATH=${INSTALLROOT}/gcc-3.2.3/lib:${LD_LIBRARY_PATH} #------ Tcl/tk ------ export PATH=${INSTALLROOT}/tcl8.3/bin:${INSTALLROOT}/tk8.3/bin:${PATH} export LD_LIBRARY_PATH=${INSTALLROOT}/tcl8.3/lib:${INSTALLROOT}/tk8.3/lib:${LD_LIBRARY_PATH} export TCLHOME=${INSTALLROOT}/tcl8.3 export TKHOME=${INSTALLROOT}/tk8.3 export TCL_LIBRARY=${INSTALLROOT}/tcl8.3/lib/tcl8.3 export TK_LIBRARY=${INSTALLROOT}/tk8.3/lib/tk8.3 #------ python ------ export PYTHONHOME=${INSTALLROOT}/Python-2.2.2 export PYTHON_INCLUDE=${PYTHONHOME}/include/python2.2 export PATH=${PYTHONHOME}/bin:${PATH} export PYTHONSTARTUP=${PYTHONHOME}/.pythonrc #------ qt ------ export QTDIR=${INSTALLROOT}/qt-x11-free-3.0.5 export PATH=$QTDIR/bin:${PATH} export LD_LIBRARY_PATH=$QTDIR/lib:${LD_LIBRARY_PATH} #------ sip ------ export SIPDIR=${INSTALLROOT}/sip-3.3.2 export PYTHONPATH=${SIPDIR}:${PYTHONPATH} export PATH=${SIPDIR}:${PATH} export LD_LIBRARY_PATH=${SIPDIR}:${LD_LIBRARY_PATH} #------ pyqt ------ export PYQTDIR=${INSTALLROOT}/PyQt-3.3.2 # --- set PYQT_SIPS as below, presence required during pyqt check during configure export PYQT_SIPS=${PYQTDIR}/sip export PYTHONPATH=${PYQTDIR}:${PYTHONPATH} export PATH=${PYQTDIR}:${PATH} export LD_LIBRARY_PATH=${PYQTDIR}:${LD_LIBRARY_PATH} #------ qwt ------ export QWTHOME=${INSTALLROOT}/qwt-0.4.1 export LD_LIBRARY_PATH=${QWTHOME}/lib:${LD_LIBRARY_PATH} #------ swig ------ export SWIG_ROOT=${INSTALLROOT}/SWIG-1.3.17 export PATH=${SWIG_ROOT}/bin:${PATH} export SWIG_LIB=${SWIG_ROOT}/lib/swig1.3 export LD_LIBRARY_PATH=${SWIG_ROOT}/lib:${LD_LIBRARY_PATH} #------ cas ------ export CASROOT=${INSTALLROOT}/CAS-5.2 export LD_LIBRARY_PATH=${CASROOT}/lin/lib:${LD_LIBRARY_PATH} # Variable for Foundation Classes : export CSF_UnitsLexicon=${CASROOT}/src/UnitsAPI/Lexi_Expr.dat export CSF_UnitsDefinition=${CASROOT}/src/UnitsAPI/Units.dat # Variable for DataExchange : export CSF_SHMessageStd=${CASROOT}/src/SHMessageStd export CSF_XSMessage=${CASROOT}/src/XSMessage # Variable for Font : export CSF_MDTVFontDirectory=${CASROOT}/src/FontMFT export CSF_MDTVTexturesDirectory=${CASROOT}/src/Textures #------ hdf ------ export HDF5HOME=${INSTALLROOT}/hdf5-1.4.4 export PATH=${HDF5HOME}/bin:${PATH} export LD_LIBRARY_PATH=${HDF5HOME}/lib:${LD_LIBRARY_PATH} #------ med ------ export MED2HOME=${INSTALLROOT}/med-2.2.2. export PATH=${MED2HOME}/bin:${PATH} export LD_LIBRARY_PATH=${MED2HOME}/lib:${LD_LIBRARY_PATH} #------ vtk ------ export VTKHOME=${INSTALLROOT}/VTK-4.2.2 export PYVTK_PATH=${VTKHOME}/lib/vtk export LD_LIBRARY_PATH=${PYVTK_PATH}:${LD_LIBRARY_PATH} export PYTHONPATH=${VTKHOME}/Wrapping/Python:${PYVTK_PATH}:${PYTHONPATH} export PATH=${VTKHOME}/bin:${PATH} #------ omni ------ export OMNIORBDIR=${INSTALLROOT}/omniORB-3.0.5 # --- OMNIORB_CONFIG is often modified by user export OMNIORB_CONFIG=${HOME}/.salome.omniORB.cfg export PYTHONPATH=${OMNIORBDIR}/lib/python:${OMNIORBDIR}/lib/i586_linux_2.0_glibc2.1:${PYTHONPATH} export PATH=${OMNIORBDIR}/bin/i586_linux_2.0_glibc2.1:${PATH} export LD_LIBRARY_PATH=${OMNIORBDIR}/lib/i586_linux_2.0_glibc2.1:${LD_LIBRARY_PATH} #------ boost --------- export BOOSTDIR=${INSTALLROOT}/boost_1_31_0 #------ doxygen ------ export PATH=${INSTALLROOT}/doxygen-1.3-rc2/bin:${PATH} #------ graphviz ------ export PATH=${INSTALLROOT}/graphviz-1.9/bin:${PATH} export LD_LIBRARY_PATH=${INSTALLROOT}/graphviz-1.9/lib/graphviz:${LD_LIBRARY_PATH} # ----- tix ----------- export PATH=${INSTALLROOT}/tix8.1.4/bin:${PATH} export LD_LIBRARY_PATH=${INSTALLROOT}/tix8.1.4/lib:${LD_LIBRARY_PATH} export TIXHOME=${INSTALLROOT}/tix8.1.4 export TIX_LIBRARY=${INSTALLROOT}/tix8.1.4/lib/tix8.1 #------ netgen ------ export NETGENHOME=${INSTALLROOT}/netgen4.3/install salome-kernel-6.5.0/doc/docutils/000077500000000000000000000000001177004724000166555ustar00rootroot00000000000000salome-kernel-6.5.0/doc/docutils/Makefile.am000077500000000000000000000066611177004724000207250ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am pydocdir = $(docdir)/tui/KERNEL/docutils RSTFILES = \ index.rst \ overview.rst \ docapi.rst \ salomepypkg.rst \ kernel.rst \ parametric.rst EXTRA_DIST = archives $(RSTFILES) SPHINXOPTS = SOURCEDIR = $(srcdir) SPHINXBUILD = sphinx-build PAPEROPT_a4 = -D latex_paper_size=a4 ALLSPHINXOPTS = -d doctrees $(PAPEROPT_a4) $(SPHINXOPTS) $(SOURCEDIR) if WITH_PACO_PARALLEL SPHINX_PYTHONPATH = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/bin/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages:$(PACOPATH)/lib/python$(PYTHON_VERSION):$(PACOPATH)/lib/python else SPHINX_PYTHONPATH = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/bin/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages endif SPHINX_LD_LIBRARY_PATH = $(OMNIORB_ROOT)/lib .PHONY: latex if SPHINX_IS_OK html/index.html:$(RSTFILES) mkdir -p html doctrees PYTHONPATH=$(SPHINX_PYTHONPATH):${PYTHONPATH} \ LD_LIBRARY_PATH=$(SPHINX_LD_LIBRARY_PATH):${LD_LIBRARY_PATH} \ OMNIORB_CONFIG= \ $(SPHINXBUILD) -c $(top_builddir)/doc/docutils -W -b html $(ALLSPHINXOPTS) html @echo @echo "Build finished. The HTML pages are in html." else html/index.html: @echo "Documentation for Python package not built. Sphinx was not present at configure time." endif latex: mkdir -p latex doctrees PYTHONPATH=$(SPHINX_PYTHONPATH):${PYTHONPATH} \ LD_LIBRARY_PATH=$(SPHINX_LD_LIBRARY_PATH):${LD_LIBRARY_PATH} \ $(SPHINXBUILD) -c $(top_builddir)/doc/docutils -W -b latex $(ALLSPHINXOPTS) latex @echo @echo "Build finished; the LaTeX files are in latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." install-data-local: html/index.html test -z $(pydocdir) || mkdir -p $(DESTDIR)$(pydocdir) if test -d "html"; then b=; else b="$(srcdir)/"; fi; \ cp -rf $$b"html"/* $(pydocdir) ; \ if test -f $$b"latex"/kernelpy.pdf; then cp -f $$b"latex"/kernelpy.pdf $(pydocdir) ; fi; uninstall-local: -test -d $(pydocdir) && chmod -R +w $(pydocdir) && rm -rf $(pydocdir)/* clean-local: -rm -rf html latex doctrees if test -d "html"; then rm -rf html ; fi dist-hook: -test -d html && cp -Rp html $(distdir) salome-kernel-6.5.0/doc/docutils/Makefile.in000077500000000000000000000534331177004724000207350ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/conf.py.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = doc/docutils ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = conf.py CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules pydocdir = $(docdir)/tui/KERNEL/docutils RSTFILES = \ index.rst \ overview.rst \ docapi.rst \ salomepypkg.rst \ kernel.rst \ parametric.rst EXTRA_DIST = archives $(RSTFILES) SPHINXOPTS = SOURCEDIR = $(srcdir) SPHINXBUILD = sphinx-build PAPEROPT_a4 = -D latex_paper_size=a4 ALLSPHINXOPTS = -d doctrees $(PAPEROPT_a4) $(SPHINXOPTS) $(SOURCEDIR) @WITH_PACO_PARALLEL_FALSE@SPHINX_PYTHONPATH = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/bin/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages @WITH_PACO_PARALLEL_TRUE@SPHINX_PYTHONPATH = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/bin/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages:$(PACOPATH)/lib/python$(PYTHON_VERSION):$(PACOPATH)/lib/python SPHINX_LD_LIBRARY_PATH = $(OMNIORB_ROOT)/lib all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/docutils/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/docutils/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): conf.py: $(top_builddir)/config.status $(srcdir)/conf.py.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local dist-hook distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-local .PHONY: latex @SPHINX_IS_OK_TRUE@html/index.html:$(RSTFILES) @SPHINX_IS_OK_TRUE@ mkdir -p html doctrees @SPHINX_IS_OK_TRUE@ PYTHONPATH=$(SPHINX_PYTHONPATH):${PYTHONPATH} \ @SPHINX_IS_OK_TRUE@ LD_LIBRARY_PATH=$(SPHINX_LD_LIBRARY_PATH):${LD_LIBRARY_PATH} \ @SPHINX_IS_OK_TRUE@ OMNIORB_CONFIG= \ @SPHINX_IS_OK_TRUE@ $(SPHINXBUILD) -c $(top_builddir)/doc/docutils -W -b html $(ALLSPHINXOPTS) html @SPHINX_IS_OK_TRUE@ @echo @SPHINX_IS_OK_TRUE@ @echo "Build finished. The HTML pages are in html." @SPHINX_IS_OK_FALSE@html/index.html: @SPHINX_IS_OK_FALSE@ @echo "Documentation for Python package not built. Sphinx was not present at configure time." latex: mkdir -p latex doctrees PYTHONPATH=$(SPHINX_PYTHONPATH):${PYTHONPATH} \ LD_LIBRARY_PATH=$(SPHINX_LD_LIBRARY_PATH):${LD_LIBRARY_PATH} \ $(SPHINXBUILD) -c $(top_builddir)/doc/docutils -W -b latex $(ALLSPHINXOPTS) latex @echo @echo "Build finished; the LaTeX files are in latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." install-data-local: html/index.html test -z $(pydocdir) || mkdir -p $(DESTDIR)$(pydocdir) if test -d "html"; then b=; else b="$(srcdir)/"; fi; \ cp -rf $$b"html"/* $(pydocdir) ; \ if test -f $$b"latex"/kernelpy.pdf; then cp -f $$b"latex"/kernelpy.pdf $(pydocdir) ; fi; uninstall-local: -test -d $(pydocdir) && chmod -R +w $(pydocdir) && rm -rf $(pydocdir)/* clean-local: -rm -rf html latex doctrees if test -d "html"; then rm -rf html ; fi dist-hook: -test -d html && cp -Rp html $(distdir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/doc/docutils/archives/000077500000000000000000000000001177004724000204615ustar00rootroot00000000000000salome-kernel-6.5.0/doc/docutils/archives/INSTALL.txt000077500000000000000000000256711177004724000223460ustar00rootroot00000000000000================================================================= Installation instructions, up to date for 3.0 version ================================================================= *html version of this document is produced with docutils*:: rst2html < doc.txt > doc.html *This document corresponds to SALOME2 2.2.9.* *IT IS NOT UP TO DATE with 3.2.0* .. contents:: .. sectnum:: +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- You'll find here generic instructions for installing the SALOME2 platform. Summary ------- `1. Quick Overview`_ `2. System configuration`_ `3. Third-party dependencies`_ `4. Preparing the shell environment`_ `5. Installing the KERNEL component`_ `6. Installing the SALOME components`_ `7. Runtime`_ `8. Suggestions and advices`_ 1. Quick Overview ----------------- First of all, you have to check (or install if needed) the dependant software programs on your system. These programs are: - common development tools as gcc, automake, autoconf and libtools. - third party softwares used in SALOME building or runtime process (python, OCC, VTK, ...) Further details can be found in sections [2] and [3]. If the dependencies are installed on your system, then you have to set your shell environment to get access to the software components (cf. [4]. "Preparing the shell environment"). The next step is to install the KERNEL (cf. [5] "Installing KERNEL"): :: $ mkdir $ mkdir $ cd $ ./build_configure $ cd $ /configure --prefix= $ make $ make install Then, the SALOME components GEOM, MED, VISU, ... can be installed with a similar procedure (cf. [6]). Eventually, the platform can be run by executing the shell script runSalome (cf. [7]). Here, somme additionnal variables have to be set to describe the SALOME runtime configuration (_ROOT_DIR, OMNIORB_CONFIG) The following provides you with specific instructions for each step. 2. System configuration ----------------------- SALOME is compiled and tested on differents platforms with native packages: - Debian sarge - Mandrake 10.1 - ... If you have another platform, we suggest the following configuration for building process: - gcc-3.3.x or 3.4.x - automake-1.7 or more (only aclocal is used) - autoconf-2.59 - libtool-1.5.6 remarks: - This is the minimum level of automake, autoconf and libtool, if you need to compile all the third party softwares (included OpenCascade 5.2.x). 3. Third-party dependencies --------------------------- The SALOME platform relies on a set of third-party softwares. The current version depends on the following list (versions given here are from Debian Sarge, except OpenCascade, VTK and MED, which are not Debian packages): CAS-5.2.4 OpenCascade (try binaries,a source patch is needed) VTK-4.2.6 VTK 3D-viewer PyQt-3.13 Python-Qt Wrapper Python-2.3.5 Python interpreter SWIG-1.3.24 SWIG library boost-1_32_0 C++ library (only include templates are used) hdf5-1.6.2 Files Database library med-2.2.2 MED Data Format support for file records omniORB-4.0.5 ORB used in SALOME qt-x11-free-3.3.3 Qt library qwt-4.2 Graph components for Qt sip4-4.1.1 langage binding software And, in order to build the documentation: doxygen-1.4.2 graphviz-2.2.1 Additionnal software may be installed for optional features: netgen4.3 + patch tix8.1.4 openpbs-2.3.16 lsf-??? 3.1 To Do ~~~~~~~~~ - Instructions for installing these software programs can be found in a special note doc/configuration_examples/install-prerequis. - Installation shell scripts are also provided. These scripts have to be adapted to your own configuration. - See doc/configuration_examples/* In the following, we assume that all the third-party softwares are installed in the same root directory, named /prerequis. Then, your file system should probably look like:: /prerequis/Python-2.2.2 /prerequis/omniORB-3.0.5 /prerequis/qt-x11-free-3.0.5 ... 4. Preparing the shell environment ---------------------------------- Some variables have to be set to get acces to third-party software components (include files, executable, library, ...) during building process and runtime. The shell file prerequis.sh, embedded in the KERNEL source package, provides a template for setting those variables. In this example, all the softwares are supposed to be installed in the same root directory, named here INSTALLROOT. Copy the prerequis.sh in a working directory and adjust the settings to your own configuration. To get the shell prepared, just execute the following command in the building shell: $ source prerequis.sh (we assume here a ksh or bash mode) 5. Installing the KERNEL component ---------------------------------- We use here the notation to specify the source directory of the KERNEL component. The shell environment is supposed to have been set (cf. 4). Installing the KERNEL from a source package needs three directories: - the source directory, denoted here by . - the build directory, denoted by in the following. This directory can't be the same directory as . - the install directory, denoted by in the following. This directory can't be the same directory as or . The installing process is: STEP 1: preparing directories create the and the directories:: $ mkdir $ mkdir STEP 2: build configure script go to directory and generate the "configure" script:: $ cd $ ./build_configure If it doesn't work, check your system automake tools as specified in section [2]. STEP 3: configure the building process go to the build directory and execute the configuration process:: $ cd $ /configure --prefix= Note that must be an absolute path. When the configure process is complete, check the status of third-party softwares detection. You should have a status like:: --------------------------------------------- Summary --------------------------------------------- Configure cc : yes boost : yes lex_yacc : yes python : yes swig : yes threads : yes OpenGL : yes qt : yes vtk : yes hdf5 : yes med2 : yes omniORB : yes occ : yes sip : yes pyqt : yes qwt : yes doxygen : yes graphviz : no openpbs : no lsf : no Default ORB : omniORB ---------------------------------------------- If a software get a status "no", then it's not "seen" in the system: - the software is not installed, or - the shell environment is not set correctly. In this example, the software programs graphviz, openpbs and lsf are not installed (optional for most usages). STEP 4 : Building the binary files Execute make in the directory:: $ make STEP 5: Installing binary files, scripts and documentation Execute install target in the directory:: $ make install 6. Installing the SALOME components ----------------------------------- TInstalling a component is done by following the same instructions as given for the KERNEL, replacing KERNEL by (build_configure, configure, make, make install). You just have to be aware of the dependencies between components: - MED depends on KERNEL - GEOM depends on KERNEL - SMESH depends on KERNEL, MED, GEOM - VISU depends on KERNEL, MED - SUPERV depends on KERNEL For example, installing the component SMESH needs the previous installation of the KERNEL component, and then the GEOM and MED components. The building process uses the variables _ROOT_DIR to localize the dependant components. The variables must be set to the install path directory of the components (ex: KERNEL_ROOT_DIR=). In the above example, the three variables KERNEL_ROOT_DIR, GEOM_ROOT_DIR and MED_ROOT_DIR have to be set before configuring the building process of the SMESH component (STEP 3). 7. Runtime ---------- See SALOME_Application_ to define your own configuration of SALOME and run it on one or several computers. This is the recommended way of configuration. .. _SALOME_Application: ./SALOME_Application.html The following explains the general principles. To run the SALOME platform, the procedure is: - set the shell environment to get acces to third-party softwares:: $ source prerequis.sh - define the SALOME configuration by setting the whole set of variables _ROOT_DIR. Here, you just have to set the kernel and the components you need:: $ export KERNEL_ROOT_DIR= $ export MED_ROOT_DIR= $ ... - define the CORBA configuration file by setting the variable OMNIORB_CONFIG. This variable must be set to a writable file path. The file may be arbitrary chosen and doesn't need to exist before running. We suggest:: $ export OMNIORB_CONFIG=$HOME/.omniORB.cfg - run the SALOME platform by executing the script runSalome:: $KERNEL_ROOT_DIR/bin/salome/runSalome 8. Suggestions and advices -------------------------- For convenience or customization, we suggest the following organisation: - chose and create a root directory for the SALOME platform, say . - install the third-party softwares in a sub-directory "prerequis" - install the SALOME components in a sub-directory "SALOME2" - make personnal copies of the files prerequis.sh and runSalome in :: $ cp /prerequis.sh /. $ cp /bin/salome/runSalome /. Edit the file prerequis.sh and adjust it to your own configuration. - define the SALOME2 configuration This step consists in setting the KERNEL_ROOT_DIR, the whole set of variables _ROOT_DIR you need, and the OMNIORB_CONFIG variable. We suggest to create a shell file envSalome.sh containing those settings. Then the configuration consists in loading envSalome.sh in the runtime shell:: $ source envSalome.sh - When installed with this file organisation, running SALOME is done with the following shell commands:: $ source /prerequis.sh $ source /envSalome.sh $ ./runSalome ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/archives/KERNEL_Services.txt000077500000000000000000000307541177004724000240610ustar00rootroot00000000000000================================================================= KERNEL Services for end user (Python interface) ================================================================= *html version of this document is produced with docutils*:: rst2html < doc.txt > doc.html This document corresponds to SALOME2 3.2.0 .. contents:: .. sectnum:: +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- In a SALOME application, distributed components, servers and clients use the CORBA middleware for comunication. CORBA interfaces are defined via idl files. All the different CORBA interfaces are available for users in Python, see CORBA interfaces below. For some general purpose services, CORBA interfaces have been encapsulated in order to provide a simple interface (encapsulation is generally done in C++ classes, and a Python SWIG interface is also generated from C++, to ensure a consistent behavior between C++ modules and Python modules or user script). General purpose services ======================== SALOME services access from a Python shell ------------------------------------------ See SALOME_Application_ for detailed instructions to launch a Python interpreter with full acces to the SALOME environment and services. .. _SALOME_Application: ./SALOME_Application.txt You can use the embedded Python interpreter in Grahic User Interface, or an external interpreter, with:: ./runSession python In either cases, SALOME services access is done with:: import salome salome.salome_init() In the embedded interpreter, it is already done, but there is no problem to do it several times, so it is preferable to add these instructions systematically in your scripts, to allow them to work in all configurations. Container and component instanciation ------------------------------------- See LifeCycleCORBA_ for the C++ interface (Python interface obtained with SWIG is very similar). .. _LifeCycleCORBA: ./tui/KERNEL/classSALOME__LifeCycleCORBA.html In the following example, a test component provided in KERNEL is launched in the local container, "FactoryServer", created when SALOME starts:: import salome salome.salome_init() import LifeCycleCORBA lcc = LifeCycleCORBA.LifeCycleCORBA() obj=lcc.FindOrLoad_Component("FactoryServer","SalomeTestComponent") import Engines comp=obj._narrow(Engines.TestComponent) comp.Coucou(1) The answer is something like:: 'TestComponent_i : L = 1' The _narrow() instruction is not always mandatory in Python, but sometimes useful to be sure you have got the right type of object. Here, Testcomponent_ interface is defined in CORBA module Engines. With this example, it works also without the _narrow() instruction:: obj.Coucou(1) .. _Testcomponent: ./tui/KERNEL/interfaceEngines_1_1TestComponent.html In the next example, a component instance is created in a specific Container defined by it's computer hostname and it's name. Here we use the local computer. Note that in Utils_Identity_, getShortHostName() gives the short hostname of the computer, without domain suffixes, which is used in SALOME. The container process is created here if it does not exists, and a new component instance is created:: import salome salome.salome_init() import LifeCycleCORBA lcc = LifeCycleCORBA.LifeCycleCORBA() import Utils_Identity host = Utils_Identity.getShortHostName() import Engines params={} params['hostname']=host params['container_name']='myContainer' comp=lcc.LoadComponent(params,'SalomeTestComponent') comp.Coucou(1) .. _Utils_Identity: ./tui/KERNEL/namespaceUtils__Identity.html If you want to get a list of containers and component instances, client object from orbmodule_ provides a list:: import orbmodule clt=orbmodule.client() clt.showNS() .. _orbmodule: ./tui/KERNEL/classorbmodule_1_1client.html The list looks like:: Logger. ContainerManager.object Containers.dir cli70ac.dir FactoryServerPy.object SuperVisionContainer.object FactoryServer.object FactoryServer.dir SalomeTestComponent_inst_1.object myContainer.object myContainer.dir SalomeTestComponent_inst_1.object SalomeTestComponent_inst_2.object Registry.object Kernel.dir ModulCatalog.object Session.object Study.dir Study2.object extStudy_1.object extStudy_2.object extStudy_3.object myStudyManager.object SalomeAppEngine.object File transfer service --------------------- See FileTransferCORBA_ for the C++ interface (Python interface obtained with SWIG is very similar). .. _FileTransferCORBA: ./tui/KERNEL/classSALOME__FileTransferCORBA.html The following example shows how to tranfer a file from a remote host to the client computer. Remote hostname is 'cli76cc', we would like to copy 'tkcvs_8_0_3.tar.gz' from remote to local computer. A full pathname is required. A container is created on remote computer if it does not exist, to handle the file transfer:: import salome salome.salome_init() import LifeCycleCORBA remotefile="/home/prascle/tkcvs_8_0_3.tar.gz" aFileTransfer=LifeCycleCORBA.SALOME_FileTransferCORBA('cli76cc',remotefile) localFile=aFileTransfer.getLocalFile() CORBA Naming service access --------------------------- See SALOME_NamingService_ for the C++ interface. The Python interface SALOME_NamingServicePy_ is not yet derived from the C++ interface and offers only the most useful functions. .. _SALOME_NamingService: ./tui/KERNEL/classSALOME__NamingService.html .. _SALOME_NamingServicePy: ./tui/KERNEL/classSALOME__NamingServicePy_1_1SALOME__NamingServicePy__i.html Batch services -------------- See Batch_ documentation (in french only). .. _Batch: ./Batch.html/index.html All IDL Interfaces ================== Containers and component life cycle, File transfer service ---------------------------------------------------------- +-----------------------------+-----------------------------------------------+ | Engines_ | Engines CORBA module. | +=============================+===============================================+ | Component_ | Generic component interface. | | | All SALOME components inherit this interface | +-----------------------------+-----------------------------------------------+ | Container_ | Container: host for C++ and Python components | | | components instances | +-----------------------------+-----------------------------------------------+ | FileTransfer_ | Agent for file transfer created by a container| | | copy a local file to a distent client | +-----------------------------+-----------------------------------------------+ | FileRef_ | Reference to a file, used by a container for | | | file transfers | +-----------------------------+-----------------------------------------------+ | ContainerManager_ | Unique instance, in charge of container | | | creation on remote computers | +-----------------------------+-----------------------------------------------+ | MPIContainer_ | An exemple of parallel implementation for | | | containers and components | +-----------------------------+-----------------------------------------------+ | MPIObject_ | | +-----------------------------+-----------------------------------------------+ Study management ---------------- +-----------------------------+-----------------------------------------------+ | SALOMEDS_ | SALOMEDS CORBA module | +=============================+===============================================+ | SALOMEDSidl_ | | +-----------------------------+-----------------------------------------------+ | SALOMEDS_Attributes_ | | +-----------------------------+-----------------------------------------------+ High speed transfer, object life cycle, exceptions, GUI interface... -------------------------------------------------------------------- +-----------------------------+-----------------------------------------------+ | SALOME_ | SALOME CORBA module | +=============================+===============================================+ | SALOME_Comm_ | | +-----------------------------+-----------------------------------------------+ | SALOME_GenericObj_ | | +-----------------------------+-----------------------------------------------+ | SALOME_Exception_ | | +-----------------------------+-----------------------------------------------+ | SALOME_Session_ | | +-----------------------------+-----------------------------------------------+ Miscelleanous ------------- +-----------------------------+-----------------------------------------------+ | | other CORBA modules | +=============================+===============================================+ | SALOME_ModuleCatalog_ | | +-----------------------------+-----------------------------------------------+ | SALOME_RessourcesCatalog_ | | +-----------------------------+-----------------------------------------------+ | SALOME_Registry_ | | +-----------------------------+-----------------------------------------------+ | Logger_ | | +-----------------------------+-----------------------------------------------+ **Other idl for test purposes** nstest.idl SALOME_TestComponent.idl SALOME_TestModuleCatalog.idl SALOME_TestMPIComponent.idl TestNotif.idl .. _Engines: ./tui/KERNEL/namespaceEngines.html .. _Component: ./tui/KERNEL/interfaceEngines_1_1Component.html .. _Container: ./tui/KERNEL/interfaceEngines_1_1Container.html .. _fileTransfer: ./tui/KERNEL/interfaceEngines_1_1fileTransfer.html .. _fileRef: ./tui/KERNEL/interfaceEngines_1_1fileRef.html .. _ContainerManager: ./tui/KERNEL/interfaceEngines_1_1ContainerManager.html .. _MPIContainer: ./tui/KERNEL/interfaceEngines_1_1MPIContainer.html .. _MPIObject: ./tui/KERNEL/interfaceEngines_1_1MPIObject.html .. _SALOME: ./tui/KERNEL/namespaceSALOME.html .. _SALOMEDS: ./tui/KERNEL/namespaceSALOMEDS.html .. _SALOME_Component: ./tui/KERNEL/SALOME__Component_8idl.html .. _SALOME_ContainerManager: ./tui/KERNEL/SALOME__ContainerManager_8idl.html .. _SALOMEDSidl: ./tui/KERNEL/SALOMEDS_8idl.html .. _SALOMEDS_Attributes: ./tui/KERNEL/SALOMEDS__Attributes_8idl.html .. _SALOME_ModuleCatalog: ./tui/KERNEL/SALOME__ModuleCatalog_8idl.html .. _SALOME_RessourcesCatalog: ./tui/KERNEL/SALOME__RessourcesCatalog_8idl.html .. _SALOME_Registry: ./tui/KERNEL/SALOME__Registry_8idl.html .. _Logger: ./tui/KERNEL/Logger_8idl.html .. _SALOME_Comm: ./tui/KERNEL/SALOME__Comm_8idl.html .. _SALOME_GenericObj: ./tui/KERNEL/SALOME__GenericObj_8idl.html .. _SALOME_Exception: ./tui/KERNEL/SALOME__Exception_8idl.html .. _SALOME_Session: ./tui/KERNEL/SALOME__Session_8idl.html .. _SALOME_MPIContainer: ./tui/KERNEL/SALOME__MPIContainer_8idl.html .. _SALOME_MPIObject: ./tui/KERNEL/SALOME__MPIObject_8idl.html ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/archives/SALOME_Application.txt000077500000000000000000000312471177004724000245370ustar00rootroot00000000000000====================================================================== SALOME Application Concept. Configuration for one or more computers ====================================================================== *html version of this document is produced with docutils*:: rst2html doc.txt > doc.html This document corresponds to SALOME2 3.2.0 .. contents:: .. sectnum:: +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- The following explains how to configure your own application with your list of modules, how to define and run this application on one or more computers. General principles ------------------ A SALOME application is defined by a set of modules (GEOM, SMESH, ASTER...). A SALOME User can define several SALOME Applications. These applications are runnable from the same user account. These applications may share the same KERNEL and modules. Thus, the application configuration is independant of KERNEL and must not be put in KERNEL_ROOT_DIR. Furthermore, prerequisites may not be the same on all the applications. A SALOME Session can run on a several computers. Binary modules and prerequisites are installed on the different computers. There is no need to have all the modules on each computer (the minimum is KERNEL). There is no need of standardization or centralised information on the details of configuration on each computer (PATH, LD_LIBRARY_PATH, environment variables) provided the application modules are version - compatible. Details of configuration stay private to the computer, and are held by scripts on each computer. There is no hierarchy between the computers (for example only one master computer used to launch application). The SALOME user has an account on all the computers. Access between account@computer is via rsh or ssh and must be configured for use without password (key exchange for ssh). Account may be different on each computer. Application Directory --------------------- Two ways for creation of an application directory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ First way - references to different module directories '''''''''''''''''''''''''''''''''''''''''''''''''''''' The script createAppli.sh in ${KERNEL_ROOT_DIR}/bin/salome creates an application directory with the given path in parameter. ${APPLI} is a path relative to ${HOME}. The directory is only a skeleton, the user has to edit several files to configure his own application. These files are described after, the list is: - env.d/atFirst.sh - env.d/envProducts.sh - env.d/envSalome.sh - CatalogResources.xml - SalomeApp.xml Second and easiest way - one single virtual install directory ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' The user must create a SALOME application configuration file by modifying a copy of ${KERNEL_ROOT_DIR}/bin/salome/config_appli.xml. The file describes the list of SALOME modules used in the application, with their respective installation path. The configuration file also defines the path of an existing script which sets the SALOME prerequisites, and optionnaly, the path of samples directory (SAMPLES_SRC). The following command:: python /bin/salome/appli_gen.py --prefix= --config= creates a virtual installation of SALOME in the application directory ${APPLI} (bin, lib, doc, share...), with, for each file (executable, script, data, library, resources...), symbolic links to the actual file. Providing an existing an existing script for SALOME prerequisites (the same one used for modules compilation, or given with the modules installation), the installation works without further modification for a single computer (unless some modules needs a special environment not defined in the above script). For a distributed application (several computers), one must copy and adapt CatalogResources.xml from ${KERNEL_ROOT_DIR}/bin/salome/appliskel (see below). General rules ------------- Directory ${APPLI} must be created on each computer of the application. The easiest way is to use the same relative path (to ${HOME}) on each computer. (Sometimes it is not possible to use the same path everywhere, for instance when ${HOME} is shared with NFS, so it is possible to define different path following the computers). The ${APPLI} directory contains scripts for environment and runs. Environment scripts must be configured (by the user) on each computer. All the environment scripts are in the ${APPLI}/env.d directory. The script ${APPLI}/envd sources **all** the files (\*.sh) in ${APPLI}/env.d in alphanumeric order (after edition, think to remove backup files). the envd script is used by run scripts. env.d scripts ~~~~~~~~~~~~~ With the first way of installation, each user **must define** his own configuration for these scripts, following the above rules. With the virtual installation (second way, above), env.d scripts are built automatically. **The following is only an example proposed by createAppli.sh, (first way of installation) not working as it is**. atFirst.sh Sets the computer configuration not directly related to SALOME, like useful tools, default PATH. envProducts.sh Sets the SALOME prerequisites. envSALOME.sh Sets all the MODULE_ROOT_DIR that can be used in the SALOME application. SalomeAppConfig is also defined by:: export SalomeAppConfig=${HOME}/${APPLI} where SalomeAppConfig designates the directory containing SalomeApp.xml. Note that ${APPLI} is already defined by the calling scripts when env.d/envSalome.sh is sourced. User run scripts ~~~~~~~~~~~~~~~~ The SALOME user can use 4 scripts: runAppli Launches a SALOME Session (similar to ${KERNEL_ROOT_DIR}/bin/salome/runSalome but with a different name to avoid confusions). runSession Launches a shell script in the SALOME application environment, with access to the current (last launched) SALOME session (naming service), if any. Without arguments, the script is interactive. With arguments, the script executes the command in the SALOME application environment. runConsole Gives a python console connected to the current SALOME Session. It is also possible to use runSession, then python. runTests Similar to runSession, used for unit testing. runSession tries to use an already existing naming service definition from a running session (hostname and port number), runTests defines a new configuration for naming service (new port number). SALOME internal run scripts ~~~~~~~~~~~~~~~~~~~~~~~~~~~ envd Sets SALOME application environment, envd is sourced by other scripts. For remote calls, SALOME uses one script. runRemote.sh This script is mainly used to launch containers. The first 2 arguments define the hostname and port userd for naming service, the remaining arguments define the command to execute. Other configuration files ~~~~~~~~~~~~~~~~~~~~~~~~~ SalomeApp.xml This file is similar to the default given in ${GUI_ROOT_DIR}/share/salome/resources/gui CatalogRessources.xml This files describes all the computers the application can use. The given example is minimal and suppose ${APPLI} is the same relative path to ${HOME}, on all the computers. A different directory can be set on a particular computer with a line:: appliPath="my/specific/path/on/this/computer" Examples of use --------------- Launch a SALOME session with a GUI interface ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Launch is done with a command like:: ./runAppli --logger The --logger option means here : collect all the traces from the all the distributed process, via CORBA, in a single file : logger.log. There are a lot of options, a complete list is given by:: ./runAppli --help Note that, without argument, runAppli is a non interactive Python application, and, with arguments, runAppli is an interactive Python interpreter. Several options are already defined by default in SalomeApp.xml files. Optional arguments given in the command override the SalomeApp.xml configuration. Several sessions can run simultaneously, each session use a different port for CORBA naming service, so the sessions are totally separated from each other. When the GUI is closed, the different SALOME servers are still running. Close a SALOME session, kill all the servers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Inside the interactive python interpreter you get when you use runAppli with arguments, you can kill all the servers of your session with:: >>> killLocalPort() or the servers of all the sessions with:: >>> killAllPorts() If you have no active Python interpreter connected to your session, you can kill all the SALOME servers of **all the sessions** on a given computer:: ./runSession killSalome.py Remember! it's the same idea in *Windows (R) operating system* [#]_ : use the start menu to stop... When you use only one session at a time, you don't need more. To kill a given session (when several session are running), one needs the naming service port number:: ./runSession killSalomeWithPort 2810 Note that the port number of the last launched session can be found on Linux, in the prompt, within a runSession shell (see below). It is also possible to get the Naming Service host and port number of the last launched session with:: ./runSession NSparam.py .. [#] Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Launch a SALOME session without GUI interface ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is used to launch a SALOME Python script without GUI (no GUI server = SALOME_session_server) Example of script (test_session_geom.py):: import salome_session salome_session.startSession(modules=["GEOM"]) import GEOM_usinggeom raw_input("Press a key and the servers will be killed ...") This script is run in a non interactive way with:: ./runSession python test_session_geom.py All the process are automatically killed when Python is closed (with salome_session delete). Add an external Python interpretor to a running session ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It's often easier to develop and try Python scripts outside the GUI embedded Python interpreter. Imagine, for instance, you are writing a script involving geometry and mesh modules. first, launch a SALOME session with gui, then, on another terminal:: ./runSession python Import salome module. salome_init() without arguments creates a new study in the running session (note: salome_init(n) attachs to a running session whose studyId is n):: import salome salome.salome_init() An example of script given with SMESH:: import ex01_cube2build It is possible to connect the GUI interface to the study created in the above script with the file/connect menu, then browse study and display objects. Further modifications on study can be done either with GUI or external script (use refresh popup in GUI object browser to see study modifications generated by the external script). **AVOID modifications with GUI when a Python script is running**. Not all the modules are protected against concurrent actions... Different uses of the runSession shell interpreter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ runSession invoked without arguments gives an interactive shell with the full environment of SALOME (PATH, LD_LIBRARY_PATH, PYTHONPATH, other variables). If there are running sessions of the same SALOME application, runSession connects to the last launched session (i.e. gets the naming service references of the session: hostname and port) On Linux, the shell prompt (bash) gives information on naming service references, hostname and port:: [NS=cli76cc:2811]prascle@cli76cc:~/SALOME2/Run/Virtual$ If there is no running session, prompt looks like:: [NS=:]prascle@cli76cc:~/SALOME2/Run/Virtual$ runSession is useful to launch any script or program which needs the complete SALOME environment, with or without a session already running. For instance, to launch the ddd debugger interface on the gui server, first launch a SALOME session with gui, then, on another terminal:: ./runSession ddd Then attach to the running SALOME_Session_Server process. ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/archives/UnitTests.txt000077500000000000000000000121251177004724000231700ustar00rootroot00000000000000================================================================= Source code structuration and Unit Tests ================================================================= *html version of this document is produced with docutils*:: rst2html < doc.txt > doc.html *This document corresponds to SALOME2 3.2.0* .. contents:: .. sectnum:: +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- You will find here general information on code directories structure, unit tests associated to the different kind of classes, and how to run the unit tests. SALOME KERNEL source code structuration ======================================= General structure of KERNEL_SRC ------------------------------- KERNEL_SRC Some README files and configuration tools for build KERNEL_SRC/bin Python and shell scripts used at run time. Kit to install a SALOME Application. KERNEL_SRC/doc Kit for KERNEL end user documentation production: public interfaces, Python, CORBA. Integrator and Developper documentation. KERNEL_SRC/idl All CORBA interfaces from KERNEL are regrouped here. KERNEL_SRC/resources Configuration files for servers (examples). Interfaces definitions for KERNEL test components. KERNEL_SRC/salome_adm Configuration files used by autotools (M4 macros & co.) KERNEL_SRC/src The source code (C++ and Python) Directory src: C++ and Python source code ----------------------------------------- Basic services non related to CORBA ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Basics A set of general purpose C++ services, not related to CORBA. Some general purpose services that are in Utils directory (CORBA related), are progressivley moved here, as they are not related to CORBA. SALOMELocalTrace A multithread trace system that allows message tracing on standard error or a file. CASCatch Exceptions and signal handler. HDFPersist A C++ interface to HDF. Basic CORBA services ~~~~~~~~~~~~~~~~~~~~ Logger A CORBA server that collects the trace messages from differents CORBA process. SALOMETraceCollector A multithread trace system derived from SALOMELocalTrace, that sends messages to Logger server via CORBA. Utils A set of general purpose services related to CORBA, such as basic CORBA exception system. See also Basics directory above. NamingService C++ and Python interfaces to name, store and retrieve CORBA objects GenericObj A generic CORBA interface for CORBA objects, to count distributed references, and to allow destruction by client. Miscellaneous CORBA servers ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Registry Implements SALOME_registry.idl. Provides a CORBA server library and a separate server program. ModuleCatalog Implements SALOME_moduleCatalog.idl. Provide a CORBA server library and separate server and client programs. ModuleGenerator Tool to generate a module catalog from CORBA idl ResourcesManager library included in container server Notification library included in differents servers (container) NOTIFICATION_SWIG CORBA Containers for SALOME Modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Container TestContainer LifeCycleCORBA LifeCycleCORBA_SWIG STUDY server and related interfaces and tools ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SALOMEDSClient TOOLSDS SALOMEDSImpl SALOMEDS Python interface to SALOME ~~~~~~~~~~~~~~~~~~~~~~~~~~ KERNEL_PY Efficient CORBA transfer services ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Communication Communication_SWIG A Parallel container with MPI ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MPIContainer TestMPIContainer Batch interface library ~~~~~~~~~~~~~~~~~~~~~~~ Batch Batch_SWIG Unit tests ~~~~~~~~~~ UnitTests Tools and principles used for Unit testing ========================================== **TO BE COMPLETED** Unit Testing rely on cppunit package for C++ testing, and on unittest module for Python. See these products for general principles of unit testing. The cppunit package is optional. When the prerequisite is detected, the unit tests are compiled. Unit Tests sources are in directories Test under the src/directories containing the classes to test. Test are ordered following the order of directories given above. Tests can be run as a whole, or for a particular directory. In this case, only a partial test is run (the classes to test, and the classes used, i.e. the preceding test directories). Today, only some tests are written as an example. There are not yet python scripts in KERNEL_SRC, but it's a matter of days, there are working scripts to test LifeCycleCORBA_SWIG interface. ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/archives/index.txt000077500000000000000000000070671177004724000223460ustar00rootroot00000000000000================================================================= KERNEL common Services ================================================================= *html version of this document is produced with docutils*:: rst2html < doc.txt > doc.html *This document corresponds to SALOME2 3.2.0* .. contents:: .. sectnum:: +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- **General information, for users, integrators and developers** **Users, integrators and developers, which documentation ?** Following your kind of usage of SALOME, you will find some specific introductory documentation, listed below. End user ======== How to configure a SALOME application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The end user may have to configure his own SALOME application by selection of a subset of availables SALOME modules. He also may want to install his application on several computers. See SALOME_Application_ to define your own configuration of SALOME and run it on one or several computers. This is the recommended way of configuration. .. _SALOME_Application: ./SALOME_Application.html How to launch SALOME in a SALOME application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See SALOME_Application_. How to use KERNEL services in Python scripts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The SALOME KERNEL offers offers a list of services available in Python. See KERNEL_Services_. .. _KERNEL_Services: ./KERNEL_Services.html Application Integrator ====================== Applications integrators are in charge of configuration and installation of specific SALOME applications over a local network. Application Integrators built SALOME modules binaries from sources tarballs. How to install SALOME ~~~~~~~~~~~~~~~~~~~~~ See INSTALL_ for general information on required configuration and prerequisites, compilation procedure, setting environment principles. .. _INSTALL: ./INSTALL.html How to configure a SALOME application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See SALOME_Application_ to define your own configuration of SALOME and run it on one or several computers. This is the recommended way of configuration. .. _SALOME_Application: ./SALOME_Application.html Module maintainer ================= Module maintainers are in charge of the development and debug of the SALOME modules. Each SALOME module is stored in a CVS base. CVS bases are organised in separate branches for developments and debug. All official or development releases are identified by a CVS tag. Source code structuration and Unit Tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See UnitTests_ for general information on code directories structure, unit tests associated to the different kind of classes, and how to run the unit tests. .. _UnitTests: ./UnitTests.html Some development utilities ~~~~~~~~~~~~~~~~~~~~~~~~~~ See kernel_resources_ for information on basic utilities for C++ and Python development, like trace and debug, exceptions, singleton. .. _kernel_resources: ./kernel_resources.html ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/archives/kernel_resources.txt000077500000000000000000000337701177004724000246110ustar00rootroot00000000000000====================================================================== SALOME Kernel resources for developer ====================================================================== *html version of this document is produced with docutils*:: rst2html doc.txt > doc.html *This document corresponds to SALOME2 3.2.0* :Authors: Antoine Yessayan, Paul Rascle :Version: 0.3 - february 17, 2006 +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- **Abstract** This document describes the development environment for C++ and Python. Makefiles generation and usage are introduced in another document: "using the SALOME configuration and building system environment". Development environment is intended here as: trace and debug macros usage; SALOME exceptions usage, in C++ and Python; user CORBA exceptions usage, in C++ and Python, with and without Graphical User Interface; some general purpose services such as singleton, used for CORBA connection and disconnection. .. contents:: .. sectnum:: ------------------------------------------------------------------------------- Trace and debug Utilities ========================= During the development process, an execution log is useful to identify problems. This log contains messages, variables values, source files names and line numbers. It is recommended to verify assertions on variables values and if necessary, to stop the execution at debug time, in order to validate all parts of code. Two modes: debug and release ---------------------------- The goal of debug mode is to check as many features as possible during the early stages of the development process. The purpose of the utilities provided in SALOME is to help the developer to add detailed traces and check variables values, without writing a lot of code. When the code is assumed to be valid, the release mode optimizes execution, in terms of speed, memory, and display only user level messages. But, some informations must always be displayed in both modes: especially messages concerning environment or internal errors, with version identification. When an end user is confronted to such a message, he may refer to a configuration documentation or send the message to the people in charge of SALOME installation, or to the development team, following the kind of error. C++ Macros for trace and debug ------------------------------ SALOME provides C++ macros for trace and debug. These macros are in:: KERNEL_SRC/src/SALOMELocalTrace/utilities.h This file must be included in C++ source. Some macros are activated only in debug mode, others are always activated. To activate the debug mode, ``_DEBUG_`` must be defined, which is the case when SALOME Makefiles are generated from configure, without options. When ``_DEBUG_`` is undefined (release mode: ``configure --disable-debug --enable-production``), the debug mode macros are defined empty (they do nothing). So, when switching from debug to release, it is possible (and recommended) to let the macro calls unchanged in the source. All the macros generate trace messages, stored in a circular buffer pool. A separate thread reads the messages in the buffer pool, and, depending on options given at SALOME start, writes the messages on the standard output, a file, or send them via CORBA, in case of a multi machine configuration. Three informations are systematically added in front of the information displayed: * the thread number from which the message come from; * the name of the source file in which the macros is set; * the line number of the source file at which the macro is set. Macros defined in debug and release modes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **INFOS_COMPILATION** The C++ macro INFOS_COMPILATION writes on the trace buffer pool informations about the compiling process: * the name of the compiler : g++, KCC, CC, pgCC; * the date and the time of the compiling processing process. This macro INFOS_COMPILATION does not have any argument. Moreover, it is defined in both compiling mode : _DEBUG_ and _RELEASE_. Example:: #include "utilities.h" int main(int argc , char **argv) { INFOS_COMPILATION; ... } INFOS(str) **INFOS** In both compiling mode _DEBUG_ and _RELEASE_, The C++ macro INFOS writes on the trace buffer pool the string which has been passed in argument by the user. Example:: #include "utilities.h" int main(int argc , char **argv) { ... INFOS("NORMAL END OF THE PROCESS"); return 0; } displays:: main.cxx [5] : NORMAL END OF THE PROCESS **INTERRUPTION(str)** In both compiling mode _DEBUG_ and _RELEASE_, The C++ macro INTERRUPTION writes on the trace buffer pool the string, with a special ABORT type. When the thread in charge of collecting messages finds this message, it terminates the application, after message treatment. **IMMEDIATE_ABORT(str)** In both compiling mode _DEBUG_ and _RELEASE_, The C++ macro IMMEDIATE_ABORT writes the message str immediately on standard error and exits the application. Remaining messages not treated by the message collector thread are lost. Macros defined only in debug mode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **MESSAGE(str)** In _DEBUG_ compiling mode only, the C++ macro MESSAGE writes on the trace buffer pool the string which has been passed in argument by the user. In _RELEASE_ compiling mode, this macro is blank. Example:: #include "utilities.h" #include using namespace std; int main(int argc , char **argv) { ... const char *str = "Salome"; MESSAGE(str); ... const string st; st = "Aster"; MESSAGE(c_str(st+" and CASTEM")); return 0; } displays:: - Trace main.cxx [8] : Salome - Trace main.cxx [12] : Aster and CASTEM **BEGIN_OF(func_name)** In _DEBUG_ compiling mode, The C++ macro BEGIN_OF appends the string "Begin of " to the one passed in argument by the user and displays the result on the trace buffer pool. In _RELEASE_ compiling mode, this macro is blank. Example:: #include "utilities.h" int main(int argc , char **argv) { BEGIN_OF(argv[0]); return 0; } displays:: - Trace main.cxx [3] : Begin of a.out **END_OF(func_name)** In _DEBUG_ compiling mode, The C++ macro END_OF appends the string "Normal end of " to the one passed in argument by the user and displays the result on the trace buffer pool. In _RELEASE_ compiling mode, this macro is blank. Example:: #include "utilities.h" int main(int argc , char **argv) { END_OF(argv[0]); return 0; } displays:: - Trace main.cxx [4] : Normal end of a.out **SCRUTE(var)** In _DEBUG_ compiling mode, The C++ macro SCRUTE displays its argument which is an application variable followed by the value of the variable. In _RELEASE_ compiling mode, this macro is blank. Example:: #include "utilities.h" int main(int argc , char **argv) { const int i=999; if( i > 0 ) SCRUTE(i) ; i=i+1; return 0; } displays:: - Trace main.cxx [5] : i=999 **ASSERT(condition)** In _DEBUG_ compiling mode only, The C++ macro ASSERT checks the expression passed in argument to be not NULL. If it is NULL the condition is written with the macro INTERRUPTION (see above). The process exits after trace of this last message. In _RELEASE_ compiling mode, this macro is blank. N.B. : if ASSERT is already defined, this macro is ignored. Example:: #include "utilities.h" ... const char *ptrS = fonc(); ASSERT(ptrS!=NULL); cout << strlen(ptrS); float table[10]; int k; ... ASSERT(k<10); cout << table[k]; Exceptions ========== C++ exceptions: class SALOME_Exception -------------------------------------- definition ~~~~~~~~~~ The class SALOME_Exception provides a generic method to send a message, with optional source file name and line number. This class is intended to serve as a base class for all kinds of exceptions SALOME code. All the exceptions derived from SALOME_Exception could be handled in a single catch, in which the message associated to the exception is displayed, or sent to a log file. The class SALOME_Exception inherits its behavior from the STL class exception. usage ~~~~~ The header SALOME/src/utils/utils_SALOME_Exception.hxx must be included in the C++ source, when raised or trapped:: #include "utils_SALOME_Exception.hxx" The SALOME_Exception constructor is:: SALOME_Exception( const char *text, const char *fileName=0, const unsigned int lineNumber=0 ); The exception is raised like this:: throw SALOME_Exception("my pertinent message"); or like this:: throw SALOME_Exception(LOCALIZED("my pertinent message")); where LOCALIZED is a macro provided with ``utils_SALOME_Exception.hxx`` which gives file name and line number. The exception is handled like this:: try { ... } catch (const SALOME_Exception &ex) { cerr << ex.what() <::Instance() ; assert(ptrPoint!=NULL) ; No need to delete ptrPoint. Deletion is achieved automatically at exit. If the user tries to create more than one singleton by using the class method SINGLETON_::Instance(), the pointer is returned with the same value even if this is done in different functions (threads ?):: POINT *p1=SINGLETON_::Instance() ; ... POINT *p2=SINGLETON_::Instance() ; assert(p1==p2) Design description ~~~~~~~~~~~~~~~~~~ Here are the principles features of the singleton design: * the user creates an object of class TYPE by using the class method ``SINGLETON_::Instance()`` which returns a pointer to the single object ; * to create an object, ``SINGLETON_::Instance()`` uses the default constructor of class TYPE ; * at the same time, this class method creates a destructor object which is added to the generic list of destructor objects to be executed at the end of the application (atexit) ; * at the end of the application process all the deletions are performed by the ``Nettoyage()`` C function which executes the destruction objects end then deletes the destructions objects themselves ; * the ``Nettoyage()`` C function using ``atexit()`` C function is embedded in a static single object ``ATEXIT_()``. ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/archives/rst.css000077500000000000000000000112471177004724000220130ustar00rootroot00000000000000/* :Authors: David Goodger, David Abrahams :Contact: goodger@users.sourceforge.net, dave@boost-consulting.com :date: $Date: 2010-11-25 11:43:17 $ :version: $Revision: 1.1.8.2 $ :copyright: This stylesheet has been placed in the public domain. This stylesheet is for the use of ReStructuredText in a Boost context. It is basically an agglomeration of boost.css and the default.css that comes from docutils. */ .first { margin-top: 0 } .last { margin-bottom: 0 } a.toc-backref { text-decoration: none ; color: #00008B } dd { margin-bottom: 0.5em } div.abstract { margin: 2em 5em } div.abstract p.topic-title { font-weight: bold ; text-align: center } div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning, div.admonition { margin: 2em ; border: medium outset ; padding: 1em } div.attention p.admonition-title, div.caution p.admonition-title, div.danger p.admonition-title, div.error p.admonition-title, div.warning p.admonition-title { color: red ; font-weight: bold ; font-family: sans-serif } div.hint p.admonition-title, div.important p.admonition-title, div.note p.admonition-title, div.tip p.admonition-title, div.admonition p.admonition-title { font-weight: bold ; font-family: sans-serif } div.dedication { margin: 2em 5em ; text-align: center ; font-style: italic } div.dedication p.topic-title { font-weight: bold ; font-style: normal } div.figure { margin-left: 2em } div.footer, div.header { font-size: smaller } div.sidebar { margin-left: 1em ; border: medium outset ; padding: 0em 1em ; background-color: #ffffee ; width: 40% ; float: right ; clear: right } div.sidebar p.rubric { font-family: sans-serif ; font-size: medium } div.system-messages { margin: 5em } div.system-messages h1 { color: red } div.system-message { border: medium outset ; padding: 1em } div.system-message p.system-message-title { color: red ; font-weight: bold } div.topic { margin: 2em } H1.title { FONT-SIZE: 150%; COLOR: #00008B; text-align: center } H1 { FONT-SIZE: 125%; } H2 { FONT-SIZE: 108%; } h2.subtitle { text-align: center } H3 { FONT-SIZE: 100%; } BODY { FONT-SIZE: 100%; BACKGROUND-COLOR: #ffffff; } PRE { MARGIN-LEFT: 2em; FONT-FAMILY: Courier; } CODE { FONT-FAMILY: Courier; white-space: pre; } .pre { FONT-FAMILY: Courier; white-space: pre; } .index { TEXT-ALIGN: left; } .page-index { TEXT-ALIGN: left; } .definition { TEXT-ALIGN: left; } .footnote { FONT-SIZE: 66%; VERTICAL-ALIGN: super; TEXT-DECORATION: none; } .function-semantics { CLEAR: left; } hr { width: 75% } ol.simple, ul.simple { margin-bottom: 1em } ol.arabic { list-style: decimal } ol.loweralpha { list-style: lower-alpha } ol.upperalpha { list-style: upper-alpha } ol.lowerroman { list-style: lower-roman } ol.upperroman { list-style: upper-roman } p.attribution { text-align: right ; margin-left: 50% } p.caption { font-style: italic } p.credits { font-style: italic ; font-size: smaller } p.label { white-space: nowrap } p.rubric { font-weight: bold ; font-size: larger ; color: maroon ; text-align: center } p.sidebar-title { font-family: sans-serif ; font-weight: bold ; font-size: larger } p.sidebar-subtitle { font-family: sans-serif ; font-weight: bold } p.topic-title { font-weight: bold } pre.address { margin-bottom: 0 ; margin-top: 0 ; font-family: serif ; font-size: 100% } pre.line-block { font-family: serif ; font-size: 100% } pre.literal-block, pre.doctest-block { margin-left: 2em ; margin-right: 2em ; font-size: 80%; border: solid thin gray ; background-color: #eeeeee } span.classifier { font-family: sans-serif ; font-style: oblique } span.classifier-delimiter { font-family: sans-serif ; font-weight: bold } span.interpreted { font-family: sans-serif } span.option { white-space: nowrap } span.option-argument { font-style: italic } span.pre { white-space: pre } span.problematic { color: red } table { margin-top: 0.5em ; margin-bottom: 0.5em } table.citation { border-left: solid thin gray ; padding-left: 0.5ex } table.docinfo { margin: 2em 4em } table.footnote { border-left: solid thin black ; padding-left: 0.5ex } td, th { padding-left: 0.5em ; padding-right: 0.5em ; vertical-align: top } th.docinfo-name, th.field-name { font-weight: bold ; text-align: left ; white-space: nowrap } /* dwa 2003/7/29 -- commented out so that it wouldn't override earlier styles from boost.css h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { font-size: 100% } */ ul.auto-toc { list-style-type: none } salome-kernel-6.5.0/doc/docutils/archives/txt2html.sh000077500000000000000000000040551177004724000226120ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # =================================================================== # This shell script is provided for generating the html files # from the txt files (restructured text) in the source directory. # Usage: just execute the script where it stands in the source # directory. The file list has to be updated manually when adding # a new restructured text file. # Note that the building process executes a target rstdoc that # generates the html documentation without need of this script. # The autoconficuration (check_htmlgen.m4) set the correct generator # rst2html by replacing the @RST2HTML@ tag. # =================================================================== # (CSSI - gboulant - 25/10/05) # This must be updated manually in this script (for source usage only) # RST2HTML=rst2html FILELIST="index UnitTests SALOME_Application INSTALL kernel_resources userguide" STYLESHEET=rst.css RSTOPTS="--output-encoding=latin1 --stylesheet=$STYLESHEET" for file in $FILELIST; do bfn=`basename $file .txt` echo "Generating ${bfn}.html from ${bfn}.txt ..." $RST2HTML $RSTOPTS ${bfn}.txt ${bfn}.html done salome-kernel-6.5.0/doc/docutils/archives/userguide.txt000077500000000000000000000101221177004724000232150ustar00rootroot00000000000000================================================================= User's guide, for developpers and users ================================================================= *html version of this document is produced with docutils*:: rst2html < doc.txt > doc.html *This document corresponds to SALOME2 3.1.0* *NOT UP TO DATE with 3.2.0* .. contents:: .. sectnum:: +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ ------------------------------------------------------------------------------- This guide provides you with some basic concepts for developing and using the SALOME platform. You will find some information on the general technical architecture ... Introduction ============ General information ------------------- This document has been initialized by collecting and updating an existing documentation. The restructured text format has been selected for writing. This format can be read with a basic editor except for pictures and some hypertext links. You can build the html pages using the docutils scripts provided with python packages on most platform. Definitions ----------- ``WORK IN PROGRESS`` Module definition of a module and/or link to the definition Container definition of a container General concepts ================ modules et dépendances (s'inspirer de PYHELLO) Filesystem organisation ======================== Voir doc de JR "Organisation de la plate-forme" A typical source working directory ---------------------------------- organisation type des sources d'un module standard (spécifications techniques) A typical installation directory -------------------------------- organisation type des produits installés Building process ================ Procédures de compilation (renvoie au install.sh) Developer's guide - basic concepts ========================================= Guide du développeur: éléments de conception - zoom sur certains éléments techniques bons à connaitre pour faire évoluer le KERNEL sans tout casser. - les ressources du kernel: - trace, debug, exception (cf. kernel_ressources.tex) - classes batch (présentation puis renvoi à la doc d'Ivan) - développement de tests unitaires Developer's guide - managing the development space ================================================== - Guide du développeur: gestion de l'espace de développement - principe de mise en oeuvre (rôle des étapes: build_configure, ...) - description des fichiers m4 et du principe de mise en oeuvre - les Makefile.in, ... (cf. doc guide du développeur). - évolution des procédures de construction - personalisation des procédures de construction Developer' guide - integration tools ==================================== - Guide de l'intégrateur (développeur de nouveaux modules) (on lui montre ici le principe de construction et les ressources à disposition pour faire le travail) - création d'un modules - intégration code boîte noire (perfect, solver) - intégration bibliothèque de fonctions (hxx2salome, voir avec N.Crouzet) - intégration de modèles de données (xdata) End user's guide ================ - Guide de l'utilisateur - concept d'application (renvoie doc Paul) - commandes avancées (showNS, exemple de contact de la session, d'un engine, utilisation du lifeCycle, du module salome, des modules geompy et smesh) - utilisation en mode distribué (doc de B. Sechet) - GUI and TUI documentation RST Exemples ============ See INSTALL_ for general information on required configuration and prerequisites, compilation procedure, setting environment principles. .. _INSTALL: ./INSTALL.html ------------------------------------------------------------------------------- +----------------------------------+------------------------------------------+ | `General KERNEL documentation`_ | `End User KERNEL Doxygen documentation`_ | +----------------------------------+------------------------------------------+ .. _`General KERNEL documentation`: ./index.html .. _`End User KERNEL Doxygen documentation`: ./tui/KERNEL/index.html salome-kernel-6.5.0/doc/docutils/conf.py.in000077500000000000000000000145551177004724000205760ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # # yacs documentation build configuration file, created by # sphinx-quickstart on Fri Aug 29 09:57:25 2008. # # This file is execfile()d with the current directory set to its containing dir. # # The contents of this file are pickled, so don't put values in the namespace # that aren't pickleable (module imports are okay, they're removed automatically). # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If your extensions are in another directory, add it here. If the directory # is relative to the documentation root, use os.path.abspath to make it # absolute, like shown here. #sys.path.append(os.path.abspath('.')) # General configuration # --------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc'] # Uncomment the following line to build the links with Python documentation # (you might need to set http_proxy environment variable for this to work) #extensions += ['sphinx.ext.intersphinx'] # Intersphinx mapping to add links to modules and objects in the Python # standard library documentation intersphinx_mapping = {'http://docs.python.org': None} # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = 'KERNEL python packages' copyright = '2010 EDF R&D' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '@VERSION@' # The full version, including alpha/beta/rc tags. release = '@VERSION@' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. language = 'en' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = ['.build','ref','images','CVS','.svn'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Options for HTML output # ----------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'default' #html_theme = 'nature' #html_theme = 'agogo' #html_theme = 'sphinxdoc' #html_theme = 'omadoc' # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = ['themes'] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". #html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. html_use_modindex = False # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'kernelpydoc' # Options for LaTeX output # ------------------------ # The paper size ('letter' or 'a4'). latex_paper_size = 'a4' # The font size ('10pt', '11pt' or '12pt'). latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, document class [howto/manual]). latex_documents = [ ('index', 'kernelpy.tex', 'Documentation of the KERNEL python packages', 'EDF R\&D', 'manual') ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = '../salome/tui/images/head.png' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = True # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. latex_use_modindex = False salome-kernel-6.5.0/doc/docutils/docapi.rst000077500000000000000000000006021177004724000206470ustar00rootroot00000000000000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Documentation of the programming interface (API) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% This section describes the python modules of the ``salome.kernel`` python package. The main part is generated from the code documentation included in source python files. .. toctree:: :maxdepth: 3 kernel.rst parametric.rst salome-kernel-6.5.0/doc/docutils/index.rst000077500000000000000000000005301177004724000205170ustar00rootroot00000000000000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Documentation of the KERNEL python packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main documentation ================== .. toctree:: :maxdepth: 3 overview.rst docapi.rst Additional documentation ======================== .. toctree:: :maxdepth: 3 salomepypkg.rst salome-kernel-6.5.0/doc/docutils/kernel.rst000077500000000000000000000040741177004724000206770ustar00rootroot00000000000000:mod:`salome.kernel` -- Package containing the KERNEL python utilities ====================================================================== :mod:`deprecation` -- Indication of deprecated modules and functions -------------------------------------------------------------------- .. automodule:: salome.kernel.deprecation :members: :mod:`termcolor` -- Display colored text in terminal ---------------------------------------------------- .. automodule:: salome.kernel.termcolor :members: :exclude-members: TEST_termcolor :mod:`logger` -- Logging utility -------------------------------- .. automodule:: salome.kernel.logger .. autoclass:: Logger :members: :show-inheritance: .. autoclass:: ExtLogger :members: :show-inheritance: :mod:`enumerate` -- Emulates a C-like enum for python ----------------------------------------------------- .. automodule:: salome.kernel.enumerate :members: :mod:`uiexception` -- Exception for user error management --------------------------------------------------------- .. automodule:: salome.kernel.uiexception :members: :mod:`datamodeler` -- Helper for modeling user data --------------------------------------------------- .. automodule:: salome.kernel.datamodeler :members: .. automodule:: salome.kernel.testdata :members: :mod:`diclookup` -- Smart dictionnary with key/value lookup ----------------------------------------------------------- .. automodule:: salome.kernel.diclookup :members: :mod:`service` -- Helper for using SALOME kernel services --------------------------------------------------------- .. automodule:: salome.kernel.services :members: :mod:`studyedit` -- Study editor -------------------------------- .. automodule:: salome.kernel.studyedit :members: :mod:`unittester` -- Run very basic unit tests ---------------------------------------------- .. automodule:: salome.kernel.unittester :members: :mod:`pyunittester` -- Simple wrapper of the pyunit framework ------------------------------------------------------------- .. automodule:: salome.kernel.pyunittester :members: salome-kernel-6.5.0/doc/docutils/overview.rst000077500000000000000000000032231177004724000212600ustar00rootroot00000000000000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General presentation of the KERNEL python package %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% The KERNEL python package essentially contains: * Helper functions to manipulate KERNEL objects from python. For example, the ``studyedit.py`` module facilitates the manipulation of components and items in SALOME study. * General purpose functions for logging and other recurrent stuff in python programming. Note that these functions either encapsulate the python programming interface of KERNEL core (the CORBA or SWIG interfaces for example) or extend existing utilities as the ``salome*.py`` modules. The functions are distributed in the python package ``salome.kernel``. For example, the usage of the study editor to manipulate some objects can be done with a set of instructions as: .. code-block:: python from salome.kernel.studyedit import getStudyEditor studyEditor = getStudyEditor() # Get an editor for the current study myStudyComponent = studyEditor.findOrCreateComponent( moduleName, componentName, componentIcon) myStudyItem = studyEditor.createItem( myStudyComponent, itemName, comment = itemComment, icon = itemIcon) The specification of the programming interface of this package is detailed in the part :doc:`Documentation of the programming interface (API)` of this documentation. .. note:: The main package ``salome`` contains other sub-packages that are distributed with the other SALOME modules. For example, the GEOM module provides the python package ``salome.geom`` and SMESH the package ``salome.smesh``. salome-kernel-6.5.0/doc/docutils/parametric.rst000077500000000000000000000014551177004724000215460ustar00rootroot00000000000000:mod:`salome.kernel.parametric` -- Package for parametric studies ================================================================= :mod:`study_exchange_vars` -- Handle Exchange Variables ------------------------------------------------------- .. automodule:: salome.kernel.parametric.study_exchange_vars :members: :mod:`compo_utils` -- Useful functions for SALOME components used in parametric studies --------------------------------------------------------------------------------------- .. automodule:: salome.kernel.parametric.compo_utils :members: :mod:`pyscript_utils` -- Useful functions for Python scripts used in parametric studies --------------------------------------------------------------------------------------- .. automodule:: salome.kernel.parametric.pyscript_utils :members: salome-kernel-6.5.0/doc/docutils/salomepypkg.rst000077500000000000000000000242621177004724000217530ustar00rootroot00000000000000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Complement A: Organizing the SALOME python functions in a packaged structure %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% This chapter contains the instruction notes to organise the python files of SALOME in a packaged python structure. This is the first step of the development process, whose goal is to validate the principles and show a possible way. :Contacts: Guillaume Boulant, Christian Caremoli, Renaud Barate Objectives ========== The main idea is to import SALOME python functions by doing: .. code-block:: python from salome.kernel. import instead of: .. code-block:: python from import as it must be done up to now because of the flat organisation of python files in the installation folders of SALOME modules. To reach this target, the files ``.py`` have to be organised in a packaged python structure where the main package is named ``salome``, and then sub-packages could be created for each SALOME module: * ``salome.kernel``: for kernel python functions, embedded in the KERNEL module * ``salome.gui``: for gui python functions, embedded in the GUI module * ``salome.geom``: for geom python functions, embedded in the GEOM module * and so on ... The motivations of this objective are twice: * Definitively prevent the risk of naming conflict between python modules coming from different SALOME modules. Today, the developper of a module has to take care of the names used in other modules to choose a name. * Integrate in SALOME some python modules initialy developed in the context of domain specific SALOME applications (SALOME-MECA, SALOME-CFD, OPENTURN, PANTHERE) and whose source files are organized in a packaged python structure. The starting point then is a python library named ``nepal`` that provides SALOME helper functions classified by modules (KERNEL,GEOM,...) and organized in a packaged python structure: * ``salome.kernel``: helper functions for manipulating the SALOME study and its components (SComponents and SObject). This provides also general purpose utilities for logging and threading. * ``salome.gui``: helper functions to manipulate the graphical representation of studies and the general behavior of the graphical interface. This provides also generic templates for implementing dialog box with the MVC pattern. * ``salome.geom``: essentially contains a function called "visualization of structural elements". This is used by mechanical ingeneers to create the 3D geometrical object corresponding to the numerical model of a given structural element. * ``salome.smesh``: to manipulated smesh data handled from the SObject in the SALOME study. The target point is to have the ``salome.kernel`` part in the KERNEL module, the ``salome.geom`` part in the GEOM module, and so on. And with **no impact on SALOME scripts** that already exists (import salome, and all other stuff should be imported and work as before). Problems ======== To reach this target, we have to face two problems: * A naming conflict with the instruction ``import salome``. The result is unpredictible because of the existance in the ``sys.path`` of both a file ``salome.py`` and a package ``salome``. * The dispatching of ``salome.*`` sub-packages in the different SALOME modules. Naming conflict between ``salome.py`` module and ``salome`` package ------------------------------------------------------------------- The problem is solved by installing the ``salome.py`` file under the name ``__init__.py`` in a folder named ``${salomepythondir}/salome``. By this operation, the ``${salomepythondir}/salome`` directory is transformed in a python package and the instruction ``import salome`` do the same things as before this modification, without any modification of the ``sys.path``. Dispatching of ``salome.*`` sub-packages in different SALOME modules -------------------------------------------------------------------- When we use a SALOME virtual application, the problem is naturally solved by the fact that every sub-packages are virtually installed in the same directory, the directory ``${salomepythondir}/salome`` containing the file ``__init__.py``. Nevertheless, some people doesn't use the virtual application. To get a robust configuration in any case, one can use the python namespace pattern. This consists in creating a virtual python package that aggregates all the sub-packages. Technically speaking, this consists in implementing in the file ``${salomepythondir}/salome/__init__.py`` (new version of ``salome.py``) a function that automatically extend the ``__path__`` variable with sub-packages that can be found in SALOME modules installation paths. The code looks something like that: .. code-block:: python import os, sys MATCH_ENDING_PATTERN="site-packages/salome" def extend_path(pname): for dir in sys.path: if not isinstance(dir, basestring) or not os.path.isdir(dir) or not dir.endswith(MATCH_ENDING_PATTERN): continue subdir = os.path.join(dir, pname) # WARN: This may still add duplicate entries to path on # case-insensitive filesystems if os.path.isdir(subdir) and subdir not in __path__: print "INFO - The directory %s is appended to sys.path" % subdir __path__.append(subdir) extend_path(ROOT_PYTHONPACKAGE_NAME) Adaptation of the ``apply_gen`` utility ---------------------------------------- Due to the specific above choices, the ``apply_gen`` utility must be modified so that the sub-folder ``salome`` in ``${salomepythondir}`` is not generated as a symbolic link any longer but as a real folder containing symbolic links towards the module specific python sub-packages (``kernel``, ``geom``, ``smesh``, ...) and to the single file ``__init__.py`` provided by the KERNEL module. This adaptation can be done in the ``virtual_salome.py`` script. What to do with already existing python files? ---------------------------------------------- Do nothing at this step, it works fine because the files are installed in a path included in the ``sys.path``. In a future version, it should be nice to reverse all the python files of the KERNEL library in this packaged structure. But this can't be done without impact on existing python user scripts. Instructions ============ Instructions for creating the python packages --------------------------------------------- Considering the elements described above, a procedure that works to get the packaged python structure is: * Rename the file ``salome.py`` in ``__init__.py`` (and adapt the Makefile.am). This is located in the source directory ``src/KERNEL_PY``. * Copy the sources files of the kernel part in the source directory ``src/KERNEL_PY`` starting with a stage named ``kernel`` including its own packaged structure (only python files and a file ``__init__.py`` for now) * Copy the sources files of the geom part in the source directory ``src/GEOM_PY`` (to be created) of the GEOM module. In this case, we copy the python files directly in the directory (no stage named ``geom``, it's not required for source organisation, and will be created only for installation by makefile). * Apply the same procedure for every other SALOME modules (it concerns only SMESH up to now). * Apply the "namespace pattern" by implementing and invoking the ``extend_path`` function in the newly created file ``__init__.py`` * Adapt the ``apply_gen`` utility to take into account the finer folder hierarchy in ``site-packages``. The naming convention for source folder is here the convention in place in the KERNEL module: the source code of the python packages of a SALOME module is located in the source directory ``/src/_PY``. Note also that all python files that were existing in the KERNEL module are leaft untouched but the file ``salome.py``. Instructions for the associated documentation --------------------------------------------- One special point for the documentation: * The documentation of the python package API is writen in rst (restructured text) and generated form the source code with sphinx. * The rst source files are located in the directory ``/doc/docutils``. * The html generated files are installed in the directory ``/share/doc/salome/docutils`` but are not connected to the in-line documentation of the SALOME associated module (menu help of the SALOME application). Any suggestion on this point would be appreciated. TODO (by someone): * Move all files ``*.txt`` from the ``/doc`` folder to the ``/doc/docutils`` folder and analyse what is still to date and usefull. * Integrate in this part the reference documentation of the ``salome`` utility and all documentation associated to the launching process (in particular virtual application) * Connect this part of the documentation to the main part (doxygen part). Synthesis --------- Finaly, here is a synthesis of modifications in source files. Files modified: * See the CVS patch files KERNEL.patch, GEOM.patch and SMESH.patch (the only SALOME modules modified today). Files to be added: * KERNEL: file ``src/KERNEL_PY/__init__.py`` (``salome.py`` renamed) * KERNEL: directory ``src/KERNEL_PY/kernel`` * KERNEL: directory ``doc/docutils`` * KERNEL: file ``salome_adm/unix/config_files/check_sphinx.m4`` * GEOM : directory ``src/GEOM_PY`` * GEOM : directory ``doc/docutils`` * SMESH : directory ``src/SMESH_PY`` * SMESH : directory ``doc/docutils`` Files to be delete: * file ``src/KERNEL_PY/salome.py`` Tests and usage =============== The instructions above provides you with a SALOME application whose modules embed there dedicated python packages. This installation can can be tested using some test use cases. For example, the visualisation of structural elements (provided by the package ``salome.geom`` can be tested by: .. code-block:: python from salome.geom.structelem import TEST_StructuralElement TEST_StructuralElement() This can be enter in the GUI python console or in a python interpreter executed in a SALOME session. For more details, read the API documentation in ``/share/doc/salome/docutils``. salome-kernel-6.5.0/doc/salome/000077500000000000000000000000001177004724000163075ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/Makefile.am000077500000000000000000000031371177004724000203520ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Paul RASCLE (EDF) # Date : 16/02/2006 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/doc/salome/Makefile.am,v 1.7.2.3.18.4.2.1 2012-04-12 14:04:57 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am SUBDIRS= tui gui docs:usr_docs usr_docs: echo "Making usr_docs in gui"; \ (cd gui && $(MAKE) $(AM_MAKEFLAGS) usr_docs) dev_docs: echo "Making dev_docs in tui"; \ (cd tui && $(MAKE) $(AM_MAKEFLAGS) dev_docs) EXTRA_DIST= main.dox install.dox \ kernel_resources.dox kernel_services.dox kernel_services_cpphelpers.dox \ salome_application.dox unittests.dox \ salome_file.dox kernel_salome.dox \ examples salome-kernel-6.5.0/doc/salome/Makefile.in000077500000000000000000000650061177004724000203660ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = doc/salome ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # -* Makefile *- # Author : Paul RASCLE (EDF) # Date : 16/02/2006 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/doc/salome/Makefile.am,v 1.7.2.3.18.4.2.1 2012-04-12 14:04:57 vsr Exp $ # SUBDIRS = tui gui EXTRA_DIST = main.dox install.dox \ kernel_resources.dox kernel_services.dox kernel_services_cpphelpers.dox \ salome_application.dox unittests.dox \ salome_file.dox kernel_salome.dox \ examples all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/salome/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/salome/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am docs:usr_docs usr_docs: echo "Making usr_docs in gui"; \ (cd gui && $(MAKE) $(AM_MAKEFLAGS) usr_docs) dev_docs: echo "Making dev_docs in tui"; \ (cd tui && $(MAKE) $(AM_MAKEFLAGS) dev_docs) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/doc/salome/examples/000077500000000000000000000000001177004724000201255ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/examples/example1000077500000000000000000000024501177004724000215700ustar00rootroot00000000000000 # create AttributeReal #================================= A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeReal") if A == None : raise RuntimeError, "Can't create AttributeReal attribute" A = A._narrow(SALOMEDS.AttributeReal) A.SetValue(0.0001) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" # save / restore study #================================= str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" #file = "/tmp/ggg.hdf" print " ------- We will save to", file, "-----------" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy=batchmode_geompy.myStudyManager.Open(file) if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeReal #================================= res,A=father.FindAttribute("AttributeReal") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeReal" A = A._narrow(SALOMEDS.AttributeReal) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" salome-kernel-6.5.0/doc/salome/examples/example10000077500000000000000000000027741177004724000216610ustar00rootroot00000000000000 # create AttributeExpandable #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute( batchmode_geompy.father, "AttributeExpandable") if A == None : raise RuntimeError, "Can't create AttributeExpandable attribute" A = A._narrow(SALOMEDS.AttributeExpandable) if A == None : raise RuntimeError, "Can't create AttributeExpandable attribute" A.SetExpandable(1) if A.IsExpandable() == 0: "Error: wrong value of AttributeExpandable" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeExpandable #============================================================ res,A=father.FindAttribute("AttributeExpandable") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeExpandable" A = A._narrow(SALOMEDS.AttributeExpandable) if A == None : raise RuntimeError, "Can't create AttributeExpandable attribute" if A.IsExpandable() == 0: "Error: wrong value of AttributeExpandable" salome-kernel-6.5.0/doc/salome/examples/example11000077500000000000000000000026731177004724000216600ustar00rootroot00000000000000 # create AttributeOpened #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeOpened") if A == None : raise RuntimeError, "Can't create AttributeOpened attribute" A = A._narrow(SALOMEDS.AttributeOpened) if A == None : raise RuntimeError, "Can't create AttributeOpened attribute" A.SetOpened(1) if A.IsOpened() == 0: "Error: wrong value of AttributeOpened" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy=batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeOpened #============================================================ res,A=father.FindAttribute("AttributeOpened") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeOpened" A = A._narrow(SALOMEDS.AttributeOpened) if A == None : raise RuntimeError, "Can't create AttributeOpened attribute" if A.IsOpened() == 0: "Error: wrong value of AttributeOpened" salome-kernel-6.5.0/doc/salome/examples/example12000077500000000000000000000033631177004724000216560ustar00rootroot00000000000000 #-------------------------------------------------------------------------- # create AttributeTextColor #=========================================================== import SALOMEDS_Attributes_idl color = SALOMEDS_Attributes_idl._0_SALOMEDS.Color(234,345,231) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeTextColor") if A == None : raise RuntimeError, "Can't create AttributeTextColor attribute" A = A._narrow(SALOMEDS.AttributeTextColor) if A == None : raise RuntimeError, "Can't create AttributeTextColor attribute" A.SetTextColor(color) c = A.TextColor(); if c.R != 234 or c.G != 345 or c.B != 231: print "Error: wrong value of AttributeTextColor" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeTextColor #============================================================ res,A=father.FindAttribute("AttributeTextColor") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeTextColor" A = A._narrow(SALOMEDS.AttributeTextColor) if A == None : raise RuntimeError, "Can't create AttributeTextColor attribute" c = A.TextColor(); if c.R != 234 or c.G != 345 or c.B != 231: print "Error: wrong value of AttributeTextColor" salome-kernel-6.5.0/doc/salome/examples/example13000077500000000000000000000036361177004724000216620ustar00rootroot00000000000000 #-------------------------------------------------------------------------- # create AttributeTextHighlightColor #=========================================================== import SALOMEDS_Attributes_idl highlightcolor=SALOMEDS_Attributes_idl._0_SALOMEDS.Color(256,256,256) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeTextHighlightColor") if A == None : raise RuntimeError, "Can't create AttributeTextHighlightColor attribute" A = A._narrow(SALOMEDS.AttributeTextHighlightColor) if A == None : raise RuntimeError, "Can't create AttributeTextHighlightColor attribute" A.SetTextHighlightColor(highlightcolor) c = A.TextHighlightColor(); if c.R != 256 or c.G != 256 or c.B != 256: print "Error: wrong value of AttributeTextHighlightColor" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy=batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeTextHighlightColor #============================================================ res, A = father.FindAttribute("AttributeTextHighlightColor") print res, A if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeTextHighlightColor" A = A._narrow(SALOMEDS.AttributeTextHighlightColor) if A == None : raise RuntimeError, "Can't create AttributeTextHighlightColor attribute" c = A.TextHighlightColor(); if c.R != 256 or c.G != 256 or c.B != 256: print "Error: wrong value of AttributeTextTextHighlightColor" salome-kernel-6.5.0/doc/salome/examples/example14000077500000000000000000000027731177004724000216640ustar00rootroot00000000000000 #-------------------------------------------------------------------------- # create AttributePixMap #=============================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributePixMap") if A == None : raise RuntimeError, "Can't create AttributePixMap attribute" aPixmap = A._narrow(SALOMEDS.AttributePixMap); aPixmap.SetPixMap( "ICON_OBJBROWSER_Geometry" ); if aPixmap.GetPixMap() != "ICON_OBJBROWSER_Geometry": print "Error: wrong value of AttributePixMap" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributePixMap #============================================================ res,A=father.FindAttribute("AttributePixMap") if res == 0 or A == None: raise RuntimeError, "Error: AttributePixMap not found " A = A._narrow(SALOMEDS.AttributePixMap) if A == None : raise RuntimeError, "Can't create AttributePixMap attribute" if A.GetPixMap() != "ICON_OBJBROWSER_Geometry": print "Error: wrong value of AttributePixMap" salome-kernel-6.5.0/doc/salome/examples/example15000077500000000000000000000023351177004724000216570ustar00rootroot00000000000000 # create AttributeLocalID #================================= A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeLocalID") if A == None : raise RuntimeError, "Can't create AttributeLocalID attribute" A = A._narrow(SALOMEDS.AttributeLocalID) A.SetValue(763242882) if A.Value() != 763242882: print "Error: wrong value of AttributeLocalID" # save / restore study #================================= str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeLocalID #================================= res,A=father.FindAttribute("AttributeLocalID") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeLocalID" A = A._narrow(SALOMEDS.AttributeLocalID) if A.Value() != 763242882: print "Error: wrong value of AttributeLocalID" salome-kernel-6.5.0/doc/salome/examples/example16000077500000000000000000000134211177004724000216560ustar00rootroot00000000000000 dir= os.getenv("TmpDir") if dir == None: dir = "/tmp" batchmode_geompy.myBuilder._set_UndoLimit(20) # 1st transaction ----------------------------------------- batchmode_geompy.myBuilder.NewCommand() # create AttributeSequenceOfInteger #========================================================= A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger") if A == None : raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute" A = A._narrow(SALOMEDS.AttributeSequenceOfInteger) if A == None : raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute" A.Add(100) A.Add(300) A.Add(500) A.Add(400) A.Add(700) print "First transaction goes on : HasOpenCommand() = ", batchmode_geompy.myBuilder.HasOpenCommand() batchmode_geompy.myBuilder.CommitCommand() #-------------- # 2nd transaction ------------------------------------------ batchmode_geompy.myBuilder.NewCommand() A.Remove(3) A.ChangeValue(4,500) batchmode_geompy.myBuilder.CommitCommand() #-------------- if batchmode_geompy.myBuilder.GetAvailableUndos() == 0: raise RuntimeError, "GetAvailableUndos() = 0 but must not !" if A.Length() != 4: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500: raise RuntimeError, "Wrong value of AttributeSequenceOfInteger" file1 = dir + "/test1.hdf" batchmode_geompy.myStudyManager.SaveAs(file1, batchmode_geompy.myStudy) # 1st Undo --------------------------------------- batchmode_geompy.myBuilder.Undo() res, A = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger") if A is None: raise RuntimeError, "After first 'undo' can't find AttributeSequenceOfInteger" if A.Length() != 5: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 500 or A.Value(4) != 400 or A.Value(5) != 700: print A.Value(1), A.Value(2), A.Value(3), A.Value(4), A.Value(5) raise RuntimeError, "Wrong value of AttributeSequenceOfInteger after the first 'undo'!" # save file2 = dir + "/test2.hdf" batchmode_geompy.myStudyManager.SaveAs(file2, batchmode_geompy.myStudy) #------------------------------------------------- # 2nd Undo --------------------------------------- batchmode_geompy.myBuilder.Undo() res, attr = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger") if res !=0 or attr != None : raise RuntimeError, "After the second 'undo' AttributeSequenceOfInteger exists but must not!" file3 = dir + "/test3.hdf" batchmode_geompy.myStudyManager.SaveAs(file3, batchmode_geompy.myStudy) #------------------------------------------------- #make redo twice --------------------------------- if batchmode_geompy.myBuilder.GetAvailableRedos() == 0: raise RuntimeError, "GetAvailableRedos() = 0 but must not !" batchmode_geompy.myBuilder.Redo() batchmode_geompy.myBuilder.Redo() res, A = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger") if res ==0 or A== None : raise RuntimeError, "AttributeSequenceOfInteger is not found but must be!" if A.Length() != 4: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500: raise RuntimeError, "Wrong value of AttributeSequenceOfInteger" #---------------------------------------------------------------------- openedStudy=batchmode_geompy.myStudyManager.Open(file1); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeSequenceOfInteger #====================================== res,A=father.FindAttribute("AttributeSequenceOfInteger") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeSequenceOfInteger" A = A._narrow(SALOMEDS.AttributeSequenceOfInteger) if A.Length() != 4: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500: print "Wrong value of AttributeSequenceOfInteger" #---------------------------------------------------------------------- openedStudy=batchmode_geompy.myStudyManager.Open(file2); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeSequenceOfInteger #====================================== res,A=father.FindAttribute("AttributeSequenceOfInteger") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeSequenceOfInteger" A = A._narrow(SALOMEDS.AttributeSequenceOfInteger) if A.Length() != 5: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 500 or A.Value(4) != 400 or A.Value(5) != 700: raise RuntimeError, "Wrong value of AttributeSequenceOfInteger after the first 'undo'!" #---------------------------------------------------------------------- openedStudy=batchmode_geompy.myStudyManager.Open(file3); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeSequenceOfInteger #====================================== res,A=father.FindAttribute("AttributeSequenceOfInteger") if res!=0 or A != None: raise RuntimeError, " AttributeSequenceOfInteger is found but must not!" salome-kernel-6.5.0/doc/salome/examples/example17000077500000000000000000000122121177004724000216540ustar00rootroot00000000000000 batchmode_geompy.myBuilder._set_UndoLimit(20) batchmode_geompy.myBuilder.NewCommand() child = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father) batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #========================================================== # create AttributeSequenceOfReal #========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributeSequenceOfReal") if A == None : raise RuntimeError, "Can't create AttributeSequenceOfReal attribute" A = A._narrow(SALOMEDS.AttributeSequenceOfReal) if A == None : raise RuntimeError, "_narrow returns None instead of AttributeSequenceOfReal pointer" A.Add(0.0293) A.Add(522) A.Add(98234) A.Add(83.287) batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #========================================================== # create AttributeInteger #========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributeInteger") if A == None : raise RuntimeError, "Can't create AttributeInteger attribute" A = A._narrow(SALOMEDS.AttributeInteger) A.SetValue(1000000) if A.Value() != 1000000: raise RuntimeError, "Error : wrong value of AttributeInteger" batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #=================== # create AttributeName #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) if A == None : raise RuntimeError, "Can't create AttributeName attribute" A.SetValue("AttributesTesting") if A.Value() != "AttributesTesting": print "Wrong value of AttributeName" batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #=================== # create AttributeComment #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributeComment") if A == None : raise RuntimeError, "Can't create AttributeComment attribute" A = A._narrow(SALOMEDS.AttributeComment) if A == None : raise RuntimeError, "Can't create AttributeComment attribute" A.SetValue("GEOM") batchmode_geompy.myBuilder.AbortCommand() batchmode_geompy.myBuilder.NewCommand() #=================== # create AttributePersistentRef #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributePersistentRef") if A == None : raise RuntimeError, "Can't create AttributePersistentRef attribute" A = A._narrow(SALOMEDS.AttributePersistentRef) if A == None : raise RuntimeError, "Can't create AttributePersistentRef attribute" A.SetValue("/tmp/test;1") batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #=================================== # create AttributeDrawable #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributeDrawable") if A == None : raise RuntimeError, "Can't create AttributeDrawable attribute" A = A._narrow(SALOMEDS.AttributeDrawable) if A == None : raise RuntimeError, "Can't create AttributeDrawable attribute" A.SetDrawable(1) if A.IsDrawable() == 0: "Error: wrong value of AttributeDrawable" batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #=================== # create AttributeSelectable #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child, "AttributeSelectable") if A == None : raise RuntimeError, "Can't create AttributeSelectable attribute" A = A._narrow(SALOMEDS.AttributeSelectable) if A == None : raise RuntimeError, "Can't create AttributeSelectable attribute" A.SetSelectable(1) if A.IsSelectable() == 0: "Error: wrong value of AttributeSelectable" batchmode_geompy.myBuilder.CommitCommand() batchmode_geompy.myBuilder.NewCommand() #=================== #=========================================================== batchmode_geompy.myBuilder.RemoveAttribute(child,"AttributeSelectable") batchmode_geompy.myBuilder.CommitCommand() # Control the attributes #=========================================================== res, A = batchmode_geompy.myBuilder.FindAttribute(child, "AttributeComment") print "res = ", res if A != None : print " AttributeComment was found" else: print " AttributeComment is not found. It's correct" attributes=[] attributes = child.GetAllAttributes() length = len(attributes) print "Attributes number = ", length print attributes for i in range(0, length) : attr = attributes[i] if attr is None : print i,"None item of object attributes list" if length != 5 : raise RuntimeError, "Wrong number of attributes" salome-kernel-6.5.0/doc/salome/examples/example18000077500000000000000000000142101177004724000216550ustar00rootroot00000000000000 child1 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child1,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N1") N1 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child1, "AttributeTreeNode") if N1 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child2 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child2,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N2") N2 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child2, "AttributeTreeNode") if N2 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child3 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child3,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N3") N3 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child3, "AttributeTreeNode") if N3 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child11 = batchmode_geompy.myBuilder.NewObject(child1) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child11,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N11") N11 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child11, "AttributeTreeNode") if N11 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child111 = batchmode_geompy.myBuilder.NewObject(child11) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child111, "AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N111") N111 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child111, "AttributeTreeNode") if N111 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child31 = batchmode_geompy.myBuilder.NewObject(child3) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child31,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N31") N31 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child31, "AttributeTreeNode") if N31 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child32 = batchmode_geompy.myBuilder.NewObject(child3) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child32,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N32") N32 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child32, "AttributeTreeNode") if N32 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child321 = batchmode_geompy.myBuilder.NewObject(child32) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child321,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N321") N321 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child321, "AttributeTreeNode") if N321 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child33 = batchmode_geompy.myBuilder.NewObject(child3) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child33,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N33") N33 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child33, "AttributeTreeNode") if N33 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" child34 = batchmode_geompy.myBuilder.NewObject(child3) A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child34,"AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) A.SetValue("N34") N34 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child34, "AttributeTreeNode") if N34 == None : raise RuntimeError, "Can't create AttributeTreeNode attribute" #Create links between tree nodes. # -| root # --N1 __ # | N11__ # | N111 # --N2 # | # --N3__ # N31 # N32__ # N321 # N33 # N34 N11.SetFather(N1) N11.Append(N111) N3.SetPrevious(N1) N3.Prepend(N2) N32.SetFather(N3) N32.Prepend(N31) N33.InsertAfter(N32) N33.Append(N34) print "------------- ", N1, " ------------- " print "N1.Label() = ", N1.Label() , "IsRoot() = ", N1.IsRoot(), "Depth() = ", N1.Depth() print "N11.Label() = ", N11.Label() , "IsRoot() = ", N11.IsRoot(), "Depth() = ", N11.Depth() print "N111.Label() = ", N111.Label() , "IsRoot() = ", N111.IsRoot(), "Depth() = ", N111.Depth() print "N2.Label() = ", N2.Label() , "IsRoot() = ", N2.IsRoot(), "Depth() = ", N2.Depth() print "N3.Label() = ", N3.Label() , "IsRoot() = ", N3.IsRoot(), "Depth() = ", N3.Depth() print "N31.Label() = ", N31.Label() , "IsRoot() = ", N31.IsRoot(), "Depth() = ", N31.Depth() print "N32.Label() = ", N32.Label() , "IsRoot() = ", N32.IsRoot(), "Depth() = ", N32.Depth() print "N321.Label() = ", N321.Label() , "IsRoot() = ", N321.IsRoot(), "Depth() = ", N321.Depth() print "N33.Label() = ", N33.Label() , "IsRoot() = ", N33.IsRoot(), "Depth() = ", N33.Depth() print "N34.Label() = ", N34.Label() , "IsRoot() = ", N34.IsRoot(), "Depth() = ", N34.Depth() print "N1.IsRoot()=", N1.IsRoot() print "N1.HasNext() = ",N1.HasNext() if N1.HasNext(): print N1.Next().Label() print "N32.HasPrevious() = ",N32.HasPrevious() if N32.HasPrevious(): print N32.GetPrevious().Label() print "N111.HasFirst()=",N111.HasFirst() print "N111.HasFather()=",N111.HasFather() if N111.HasFather() : print "N111.GetFather().Label()=",N111.GetFather().Label() salome-kernel-6.5.0/doc/salome/examples/example19000077500000000000000000000410231177004724000216600ustar00rootroot00000000000000 #====================================================================== #1. Create Study and add some components to it #====================================================================== #================================= # create AttributeReal #================================= A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeReal") if A == None : raise RuntimeError, "Can't create AttributeReal attribute" A = A._narrow(SALOMEDS.AttributeReal) A.SetValue(0.0001) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" # === Geometry ================================================== import batchmode_geompy #=================================== # define a box #=================================== box = batchmode_geompy.MakeBox(0., 0., 0., 100., 200., 300.) idbox = batchmode_geompy.addToStudy(box,"box") geom = batchmode_geompy.geom import SMESH import batchmode_smesh ShapeType = batchmode_smesh.ShapeType # ---- add first face of box in study subShapeList = batchmode_geompy.SubShapeAll(box,ShapeType["Face"]) face=subShapeList[0] name = "box_face" print name idface= batchmode_geompy.addToStudyInFather(box,face,name) # ---- add shell from box in study subShellList= batchmode_geompy.SubShapeAll(box,ShapeType["Shell"]) shell = subShellList[0] name = "box_shell" print name idshell= batchmode_geompy.addToStudyInFather(box,shell,name) # ---- add first edge of face in study edgeList = batchmode_geompy.SubShapeAll(face,ShapeType["Edge"]) edge=edgeList[0]; name = "face_edge" print name idedge= batchmode_geompy.addToStudyInFather(face,edge,name) # ---- launch SMESH, init a Mesh with the box smesh = batchmode_smesh.smesh # -- Init -- shape = batchmode_geompy.IDToObject(idbox) mesh=smesh.Init(geom, batchmode_geompy.myStudyId, shape) orb = batchmode_geompy.orb idmesh = batchmode_smesh.AddNewMesh( orb.object_to_string(mesh) ) batchmode_smesh.SetName(idmesh, "Meshbox"); batchmode_smesh.SetShape(idbox, idmesh); # ---- create Hypothesis print "-------------------------- create Hypothesis ----------------------" print "-------------------------- LocalLength" hyp1 = smesh.CreateHypothesis("LocalLength", batchmode_geompy.myStudyId ) hypLen1 = hyp1._narrow(SMESH.SMESH_LocalLength) hypLen1.SetLength(100) print hypLen1.GetName() print hypLen1.GetId() print hypLen1.GetLength() idlength = batchmode_smesh.AddNewHypothesis( orb.object_to_string(hypLen1) ); batchmode_smesh.SetName(idlength, "Local_Length_100"); print "-------------------------- NumberOfSegments" hyp2 = smesh.CreateHypothesis("NumberOfSegments", batchmode_geompy.myStudyId ) hypNbSeg1=hyp2._narrow(SMESH.SMESH_NumberOfSegments) hypNbSeg1.SetNumberOfSegments(7) print hypNbSeg1.GetName() print hypNbSeg1.GetId() print hypNbSeg1.GetNumberOfSegments() idseg = batchmode_smesh.AddNewHypothesis( orb.object_to_string(hypNbSeg1) ); batchmode_smesh.SetName(idseg, "NumberOfSegments_7"); print "-------------------------- MaxElementArea" hyp3 = smesh.CreateHypothesis("MaxElementArea", batchmode_geompy.myStudyId) hypArea1=hyp3._narrow(SMESH.SMESH_MaxElementArea) hypArea1.SetMaxElementArea(2500) print hypArea1.GetName() print hypArea1.GetId() print hypArea1.GetMaxElementArea() idarea1 = batchmode_smesh.AddNewHypothesis( orb.object_to_string(hypArea1) ); batchmode_smesh.SetName(idarea1, "MaxElementArea_2500"); print "-------------------------- MaxElementArea" hyp3 = smesh.CreateHypothesis("MaxElementArea", batchmode_geompy.myStudyId) hypArea2 = hyp3._narrow(SMESH.SMESH_MaxElementArea) hypArea2.SetMaxElementArea(500) print hypArea2.GetName() print hypArea2.GetId() print hypArea2.GetMaxElementArea() idarea2 = batchmode_smesh.AddNewHypothesis( orb.object_to_string(hypArea2) ); batchmode_smesh.SetName(idarea2, "MaxElementArea_500"); print "-------------------------- Regular_1D" alg1 = smesh.CreateHypothesis("Regular_1D", batchmode_geompy.myStudyId) algo1 = alg1._narrow(SMESH.SMESH_Algo) listHyp = algo1.GetCompatibleHypothesis() for hyp in listHyp: print hyp algoReg=alg1._narrow(SMESH.SMESH_Regular_1D) print algoReg.GetName() print algoReg.GetId() idreg = batchmode_smesh.AddNewAlgorithms( orb.object_to_string(algoReg) ); batchmode_smesh.SetName(idreg, "Regular_1D"); print "-------------------------- MEFISTO_2D" alg2 = smesh.CreateHypothesis("MEFISTO_2D", batchmode_geompy.myStudyId) algo2 = alg2._narrow(SMESH.SMESH_Algo) listHyp=algo2.GetCompatibleHypothesis() for hyp in listHyp: print hyp algoMef=alg2._narrow(SMESH.SMESH_MEFISTO_2D) print algoMef.GetName() print algoMef.GetId() idmef = batchmode_smesh.AddNewAlgorithms( orb.object_to_string(algoMef) ); batchmode_smesh.SetName(idmef, "MEFISTO_2D"); # ---- add hypothesis to edge print "-------------------------- add hypothesis to edge" edge = batchmode_geompy.IDToObject(idedge) submesh = mesh.GetElementsOnShape(edge) ret = mesh.AddHypothesis(edge,algoReg) print ret ret=mesh.AddHypothesis(edge,hypLen1) print ret idsm1 = batchmode_smesh.AddSubMeshOnShape( idmesh, idedge, orb.object_to_string(submesh), ShapeType["Edge"] ) batchmode_smesh.SetName(idsm1, "SubMeshEdge") batchmode_smesh.SetAlgorithms( idsm1, idreg ); batchmode_smesh.SetHypothesis( idsm1, idlength ); print "-------------------------- add hypothesis to face" face=batchmode_geompy.IDToObject(idface) submesh=mesh.GetElementsOnShape(face) ret=mesh.AddHypothesis(face,hypArea2) print ret idsm2 = batchmode_smesh.AddSubMeshOnShape( idmesh, idface, orb.object_to_string(submesh), ShapeType["Face"] ) batchmode_smesh.SetName(idsm2, "SubMeshFace") batchmode_smesh.SetHypothesis( idsm2, idarea2 ); # ---- add hypothesis to box print "-------------------------- add hypothesis to box" box=batchmode_geompy.IDToObject(idbox) submesh=mesh.GetElementsOnShape(box) ret=mesh.AddHypothesis(box,algoReg) print ret ret=mesh.AddHypothesis(box,hypNbSeg1) print ret ret=mesh.AddHypothesis(box,algoMef) print ret ret=mesh.AddHypothesis(box,hypArea1) print ret batchmode_smesh.SetAlgorithms( idmesh, idreg ); batchmode_smesh.SetHypothesis( idmesh, idseg ); batchmode_smesh.SetAlgorithms( idmesh, idmef ); batchmode_smesh.SetHypothesis( idmesh, idarea1 ); # ---- compute box print "-------------------------- compute box" ret=smesh.Compute(mesh,box) print ret log=mesh.GetLog(0); # no erase trace for linelog in log: print linelog #======================================================= # add SuperVision component #======================================================= from batchmode_SuperV import * import os dir= os.getenv("SUPERV_ROOT_DIR") if dir == None: raise RuntimeError, "SUPERV_ROOT_DIR is not defined" xmlfile = dir +"/examples/GraphEssai.xml" print "--------------\n"+xmlfile+"\n--------------\n" myGraph = Graph ( xmlfile ) # This DataFlow is "valid" : no loop, correct links between Nodes etc... print myGraph.IsValid() # Get Nodes myGraph.PrintNodes() Add,Sub,Mul,Div = myGraph.Nodes() # Load Datas Addx = Add.Input("x",3.) Addy = Add.Input("y",4.5) Subx = Sub.Input("x",1.5) # Get Output Port Addz = Add.Port('z') Subz = Sub.Port('z') Mulz = Mul.Port('z') Divz = Div.Port('z') # This DataFlow is "executable" : all pending Ports are defined with Datas print myGraph.IsExecutable() # Starts only execution of that DataFlow and gets control immediatly print myGraph.Run() # That DataFlow is running ==> 0 (false) print myGraph.IsDone() # Events of execution : aStatus,aNode,anEvent,aState = myGraph.Event() while aStatus : print aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState aStatus,aNode,anEvent,aState = myGraph.Event() print myGraph.IsDone() # Wait for Completion (but it is already done after event loop ...) print "Done : ",myGraph.DoneW() # Get result print "Result : ",Divz.ToString() # Intermediate results : print "Intermediate Result Add\z : ",Addz.ToString() print "Intermediate Result Sub\z : ",Subz.ToString() print "Intermediate Result Mul\z : ",Mulz.ToString() print " " #print "Type : print myGraph.IsDone()" #print " If execution is finished ==> 1 (true)" res=myGraph.IsDone() if res != 1: raise RuntimeError, "myGraph.Run() is not done" print " " print "Type : print Divz.ToString()" print " You will get the result" Divz.ToString() print " " print "Type : myGraph.PrintPorts()" print " to see input and output values of the graph" myGraph.PrintPorts() print " " print "Type : Add.PrintPorts()" Add.PrintPorts() print "Type : Sub.PrintPorts()" Sub.PrintPorts() print "Type : Mul.PrintPorts()" Mul.PrintPorts() print "Type : Div.PrintPorts()" print " to see input and output values of nodes" Div.PrintPorts() # Export will create newsupervisionexample.xml and the corresponding .py file tmpdir=os.getenv("TmpDir") if tmpdir is None: tmpdir="/tmp" file = tmpdir + "/newsupervisionexample" print "--------------\n"+file+"\n--------------\n" myGraph.Export(file) ior = batchmode_geompy.orb.object_to_string(myGraph.G) addStudy(ior) GraphName = myGraph.Name() print "Befor save ", nodes = myGraph.Nodes() length_bs = len(nodes) print "ListOfNodes length = ", length_bs names=[] for node in nodes: names.append(node.Name()) print names #================================= # save / restore study #================================= str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" #================================================== #1. SaveAs #================================================== print " ------- We will save to", file, "-----------" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) batchmode_geompy.myStudyManager.Close(batchmode_geompy.myStudy) #rename the file and try to reread it again os.mkdir(str + "/test_dir") #2.================================================== print " ------- We rename the file as " + str + "/test_dir/test_new.hdf" os.rename(file, str+"/test_dir/test_new.hdf") #================================================== #3. Open #================================================== print " ------- We try to open " + str + "/test_dir/test_new.hdf" try: openedStudy=batchmode_geompy.myStudyManager.Open(str+"/test_dir/test_new.hdf") except Exception: raise RuntimeError, "Can't open saved study!" if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "GEOM component is not found! Wrong study is opened." #================================= # find AttributeReal #================================= res,A=father.FindAttribute("AttributeReal") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeReal" A = A._narrow(SALOMEDS.AttributeReal) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" #================================================== # find box #================================================== box = openedStudy.FindObject("box") if box is None : raise RuntimeError, "box was not found! Wrong study is opened." edge=openedStudy.FindObject("face_edge") if edge is None : raise RuntimeError, "face_edge was not found! Wrong study is opened." father = openedStudy.FindComponent("MESH") if father is None: raise RuntimeError, "MESH component is not found! Wrong study is opened." hp=openedStudy.FindObject("Meshbox") if hp is None: raise RuntimeError, "Meshbox object was not found! Wrong study is opened." hp = openedStudy.FindObject("Algorithms Definition") if hp is None: raise RuntimeError, "Algorithms Definition object was not found! Wrong study is opened." hp = openedStudy.FindObject("MEFISTO_2D") if hp is None: raise RuntimeError, "MEFISTO_2D object was not found! Wrong study is opened." hp = openedStudy.FindObject("Hypothesis Definition") if hp is None: raise RuntimeError, "Algoriths Definition was not found! Wrong study is opened." #================================================== # Find Supervisor #================================================== father = openedStudy.FindComponent("SUPERV") if father is None: raise RuntimeError, "SUPERV component is not found! Wrong study is opened." SuperV = lcc.FindOrLoadComponent("SuperVisionContainer","Supervision") Builder = openedStudy.NewBuilder() Builder.LoadWith(father, SuperV) import SALOMEDS aChildIterator = openedStudy.NewChildIterator(father) #while aChildIterator.More(): anSObject = aChildIterator.Value() #print "iterate: ", anSObject.GetID() res, anAttr=anSObject.FindAttribute("AttributeIOR") if res : anAttr=anAttr._narrow(SALOMEDS.AttributeIOR) ior = anAttr.Value() Graph=SuperV.getGraph(ior) ListOfNodes=Graph.Nodes() length_as= len(ListOfNodes) print "ListOfNodes length = ", length_as if length_as != length_bs: raise RuntimeErrror, "defferent length of nodes after study open" #aChildIterator.Next() Names = [] for node in ListOfNodes: Names.append(node.Name()) names.sort() Names.sort() if names != Names : raise RuntimeError, "List of dataflow nodes after save differs from one befor save operation" #================================================== #4. Save #================================================== batchmode_geompy.myStudyManager.Save(openedStudy) batchmode_geompy.myStudyManager.Close(openedStudy) #================================================== #5. Open #================================================== try: openedStudy = batchmode_geompy.myStudyManager.Open(str+"/test_dir/test_new.hdf") except Exception: raise RuntimeError, "Can't open saved study!" if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." #find AttributeReal res,A=father.FindAttribute("AttributeReal") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeReal" A = A._narrow(SALOMEDS.AttributeReal) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" #================================================== # find box #================================================== box = openedStudy.FindObject("box") if box is None : raise RuntimeError, "box was not found! Wrong study is opened." edge=openedStudy.FindObject("face_edge") if edge is None : raise RuntimeError, "face_edge was not found! Wrong study is opened." father = openedStudy.FindComponent("MESH") if father is None: raise RuntimeError, "MESH component is not found! Wrong study is opened." hp=openedStudy.FindObject("Meshbox") if hp is None: raise RuntimeError, "Meshbox object was not found! Wrong study is opened." hp = openedStudy.FindObject("Algorithms Definition") if hp is None: raise RuntimeError, "Algorithms Definition object was not found! Wrong study is opened." hp = openedStudy.FindObject("MEFISTO_2D") if hp is None: raise RuntimeError, "MEFISTO_2D object was not found! Wrong study is opened." hp = openedStudy.FindObject("Hypothesis Definition") if hp is None: raise RuntimeError, "Algoriths Definition was not found! Wrong study is opened." #================================================== # Find Supervisor #================================================== father = openedStudy.FindComponent("SUPERV") if father is None: raise RuntimeError, "SUPERV component is not found! Wrong study is opened." SuperV = lcc.FindOrLoadComponent("SuperVisionContainer","Supervision") Builder = openedStudy.NewBuilder() Builder.LoadWith(father, SuperV) import SALOMEDS aChildIterator = openedStudy.NewChildIterator(father) #while aChildIterator.More(): anSObject = aChildIterator.Value() res, anAttr=anSObject.FindAttribute("AttributeIOR") if res : anAttr=anAttr._narrow(SALOMEDS.AttributeIOR) ior = anAttr.Value() Graph=SuperV.getGraph(ior) ListOfNodes=Graph.Nodes() length_as= len(ListOfNodes) print "ListOfNodes length = ", length_as if length_as != length_bs: raise RuntimeErrror, "defferent length of nodes after study open" #aChildIterator.Next() Names = [] for node in ListOfNodes: Names.append(node.Name()) names.sort() Names.sort() if names != Names : raise RuntimeError, "List of dataflow nodes after save differs from one befor save operation" salome-kernel-6.5.0/doc/salome/examples/example20000077500000000000000000000121311177004724000216460ustar00rootroot00000000000000 batchmode_geompy.myBuilder._set_UndoLimit(20) #-------------------------------------------------------------------------- # create AttributeReal #=============================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeReal") if A == None : raise RuntimeError, "Can't create AttributeReal attribute" A = A._narrow(SALOMEDS.AttributeReal) A.SetValue(0.0001) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" # create AttributeStudyProperties #================================================ A = batchmode_geompy.myStudy.GetProperties() if A == None : raise RuntimeError, "Can't create AttributeStudyProperties attribute" A = A._narrow(SALOMEDS.AttributeStudyProperties) batchmode_geompy.myBuilder.NewCommand(); print "A.GetUserName()= ", A.GetUserName() res,mm,hh,dd,mnth,yy=A.GetCreationDate() print "A.GetCreationDate() = ", mm,hh,dd,mnth,yy print "A.GetCreationMode() = ", A.GetCreationMode() print "A.IsModified() = ", A.IsModified() print "A.IsLocked() = ", A.IsLocked() if A.IsLocked() == 0 : A.SetUserName("tester"); print 'A.SetUserName("tester"), A.GetUserName() = ', A.GetUserName() A.SetCreationDate(11,11,11,11,2002); print 'A.SetCreationDate(11,11,11,11,2002), A.GetCreationDate() =', A.GetCreationDate() print "A.IsModified() = ", A.IsModified() A.SetLocked(1) #check the transaction result batchmode_geompy.myBuilder.CommitCommand() if A.GetUserName() != "tester": print 'Control after transaction close : A.GetUserName() = ', A.GetUserName() raise RuntimeError, "Field 'UserName' was not modified but had to!" # try to make some changes wrapped by transaction #================================================ batchmode_geompy.myBuilder.NewCommand() A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeInteger") if A == None : raise RuntimeError, "Can't create AttributeInteger attribute" A = A._narrow(SALOMEDS.AttributeInteger) A.SetValue(1000000) exception_was = None try : batchmode_geompy.myBuilder.CommitCommand() except Exception: exception_was = 1 if exception_was is None: raise RuntimeError, "Study was locked for changes but CommitCommand did not generate an exception !" # save / restore study #================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" print " ------- We will save to", file, "-----------" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) #--------------------------------------------------------------------------# #--------------------------- Open file ------------------------------------# #--------------------------------------------------------------------------# print" -------------- Open " + file + "-------------- " openedStudy = batchmode_geompy.myStudyManager.Open(file) if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." #1. find AttributeReal #================================================ res,A=father.FindAttribute("AttributeReal") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeReal" A = A._narrow(SALOMEDS.AttributeReal) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" #2. find AttributeStudyProperties #================================================= A=openedStudy.GetProperties() if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeStudyProperties" A = A._narrow(SALOMEDS.AttributeStudyProperties) if A.IsLocked() == 0 : raise RuntimeError, "Error : AttributeStudyProperties must have Locked flag but have no!" #get the builder myBuilder = openedStudy.NewBuilder() #3. try to make some changes wrapped by transaction #================================================== exception_was = None try : myBuilder.NewCommand() A = myBuilder.FindOrCreateAttribute(father, "AttributeInteger") if A == None : raise RuntimeError, "Can't create AttributeInteger attribute" A = A._narrow(SALOMEDS.AttributeInteger) A.SetValue(1000000) myBuilder.CommitCommand() except Exception: exception_was = 1 if exception_was is None: raise RuntimeError, "Study was locked for changes but CommitCommand did not generate an exception !" myBuilder.NewCommand() A=openedStudy.GetProperties() A = A._narrow(SALOMEDS.AttributeStudyProperties) A.SetLocked(0) myBuilder.CommitCommand() #4. myBuilder.NewCommand() A.SetLocked(0); print "A.GetUserName()= ", A.GetUserName() print "A.GetCreationDate() = ", A.GetCreationDate() print "A.GetCreationMode() = ", A.GetCreationMode() print "A.IsModified() = ", A.IsModified() myBuilder.CommitCommand() #5. myBuilder.NewCommand() A.SetUserName("tester1") myBuilder.CommitCommand() print "A.GetUserName()= ", A.GetUserName() #remove the document file os.remove(file) salome-kernel-6.5.0/doc/salome/examples/example21000077500000000000000000000061441177004724000216560ustar00rootroot00000000000000 # create AttributeReal #======================================================================================================= A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeTableOfInteger") if A == None : raise RuntimeError, "Can't create AttributeTableOfInteger attribute" A = A._narrow(SALOMEDS.AttributeTableOfInteger) a=[1,2] b=[3,4] # 2x2 # --- rows --- A.AddRow(a) A.AddRow(b) a=[34,14] A.SetRow(1,a) # 3x3 # b=[54,56] A.AddRow(b) # --- columns --- a=[76,25,12] A.AddColumn(a) a=[836,3425,342] A.SetColumn(3,a) # change attribute values print "A.GetValue(2,2) = ", A.GetValue(2,2) print "A.PutValue(2,2,625323)" A.PutValue(625323,2,2) print "A.GetValue(2,2) = ", A.GetValue(2,2) #set Titles A.SetTitle("TEST") A.SetRowTitle(1,"FR") A.SetRowTitle(2,"SR") A.SetRowTitle(3,"TR") A.SetColumnTitle(1,"FC") A.SetColumnTitle(2,"SC") A.SetColumnTitle(3,"TC") #check the table print "Common title : ",A.GetTitle() print "Rows titles : ", A.GetRowTitles() rnb = A.GetNbRows() for i in range(1, rnb): b=A.GetRow(i) print b cnb = A.GetNbColumns() print "Columns title : ", A.GetColumnTitles() for i in range(1, cnb): b=A.GetColumn(i) print b # set titles #titles=["11","12","13"] #A.SetRowTitles(titles) #titles=["21","22","23"] #A.SetRowTitles(2,titles) #titles=["31","32","33"] #A.SetRowTitles(3,titles) #--------------------------------------------------------------------------# # ----------------------- save the study ----------------------------------# #--------------------------------------------------------------------------# str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" print " ------- We will save to", file, "-----------" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) #--------------------------------------------------------------------------# #---------------------------- Open file -----------------------------------# #--------------------------------------------------------------------------# print" -------------- Open " + file + "-------------- " openedStudy=batchmode_geompy.myStudyManager.Open(file) if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # --- check attribute --- res,A=father.FindAttribute("AttributeTableOfInteger") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeTableOfInteger" A = A._narrow(SALOMEDS.AttributeTableOfInteger) #check the table print "Common title : ",A.GetTitle() print "Rows titles : ", A.GetRowTitles() rnb = A.GetNbRows() for i in range(1, rnb): b=A.GetRow(i) print b cnb = A.GetNbColumns() print "Columns title : ", A.GetColumnTitles() for i in range(1, cnb): b=A.GetColumn(i) print b titles=["ff","ss","tt"] A.SetRowTitles(titles) print "Rows titles : ", A.GetRowTitles() titles=["ww","zz","cc"] A.SetColumnTitles(titles) print "Column titles : ", A.GetColumnTitles() salome-kernel-6.5.0/doc/salome/examples/example22000077500000000000000000000060661177004724000216620ustar00rootroot00000000000000 # create AttributeReal #=============================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeTableOfReal") if A == None : raise RuntimeError, "Can't create AttributeTableOfReal attribute" A = A._narrow(SALOMEDS.AttributeTableOfReal) a=[1,2] b=[3,4] # 2x2 # --- rows --- A.AddRow(a) A.AddRow(b) a=[34,14] A.SetRow(1,a) # 3x3 # b=[54,56] A.AddRow(b) # --- columns --- a=[76,25,12] A.AddColumn(a) a=[836,3425,342] A.SetColumn(3,a) # change attribute values print "A.GetValue(2,2) = ", A.GetValue(2,2) print "A.PutValue(2,2,625323)" A.PutValue(625323,2,2) print "A.GetValue(2,2) = ", A.GetValue(2,2) #set Titles A.SetTitle("TEST") A.SetRowTitle(1,"FR") A.SetRowTitle(2,"SR") A.SetRowTitle(3,"TR") A.SetColumnTitle(1,"FC") A.SetColumnTitle(2,"SC") A.SetColumnTitle(3,"TC") #check the table print "Common title : ",A.GetTitle() print "Rows titles : ", A.GetRowTitles() rnb = A.GetNbRows() + 1 for i in range(1, rnb): b=A.GetRow(i) print b cnb = A.GetNbColumns() + 1 print "Columns title : ", A.GetColumnTitles() for i in range(1, cnb): b=A.GetColumn(i) print b # set titles #titles=["11","12","13"] #A.SetRowTitles(titles) #titles=["21","22","23"] #A.SetRowTitles(2,titles) #titles=["31","32","33"] #A.SetRowTitles(3,titles) #--------------------------------------------------------------------------# #------------------------ save the study ----------------------------------# #--------------------------------------------------------------------------# import os str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" print " ------- We will save to", file, "-----------" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) #--------------------------------------------------------------------------# #---------------------------- Open file -----------------------------------# #--------------------------------------------------------------------------# print" -------------- Open " + file + "-------------- " openedStudy = batchmode_geompy.myStudyManager.Open(file) if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # --- check attribute --- res,A=father.FindAttribute("AttributeTableOfReal") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeTableOfReal" A = A._narrow(SALOMEDS.AttributeTableOfReal) #check the table print "Common title : ",A.GetTitle() print "Rows titles : ", A.GetRowTitles() rnb = A.GetNbRows() + 1 for i in range(1, rnb): b=A.GetRow(i) print b cnb = A.GetNbColumns() + 1 print "Columns title : ", A.GetColumnTitles() for i in range(1, cnb): b=A.GetColumn(i) print b titles=["ff","ss","tt"] A.SetRowTitles(titles) print "Rows titles : ", A.GetRowTitles() titles=["ww","zz","cc"] A.SetColumnTitles(titles) print "Column titles : ", A.GetColumnTitles() salome-kernel-6.5.0/doc/salome/examples/example23000077500000000000000000000014221177004724000216520ustar00rootroot00000000000000 import batchmode_salome #import SALOMEDS aStudy = batchmode_salome.myStudy #Add new component 'User data' aBuilder = aStudy.NewBuilder() aComponent = aBuilder.NewComponent("User data") anAttr = aBuilder.FindOrCreateAttribute(aComponent, "AttributeName") anAttrName = anAttr._narrow(SALOMEDS.AttributeName) anAttrName.SetValue("User data") #Add a new case 'Case1' to the component 'User data' aBuilder.AddDirectory("/User data/Case1") #Set a study context to '/User data/Case1' aStudy.SetContext("/User data/Case1") #Print the current study context print aStudy.GetContext() #Add a sub directory 'aSubCase' to 'Case1' (under the current context) aBuilder.AddDirectory("aSubCase") #Add a new case 'Case2' to component 'User data' aBuilder.AddDirectory("/User data/Case2") salome-kernel-6.5.0/doc/salome/examples/example3000077500000000000000000000037331177004724000215770ustar00rootroot00000000000000 # create AttributeSequenceOfReal #================================= A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeSequenceOfReal") if A == None : raise RuntimeError, "Can't create AttributeSequenceOfReal attribute" A = A._narrow(SALOMEDS.AttributeSequenceOfReal) if A == None : raise RuntimeError, "_narrow returns None instead of AttributeSequenceOfReal pointer" A.Add(0.0293) A.Add(625.1e+2) A.Add(0.928e+100) A.Add(83.287) print "initial values ",A.Value(1), A.Value(2), A.Value(3), A.Value(4) A.Remove(3) print "after remove ", A.Value(1), A.Value(2), A.Value(3) A.ChangeValue(2,76.265) print "after second item change", A.Value(1), A.Value(2), A.Value(3) if A.Length() != 3: print "Error : wrong length of SequenceOfReal" if A.Value(1) != 0.0293 or A.Value(2) != 76.265 or A.Value(3) != 83.287: print "Error : wrong value of AttributeSequenceOfReal" # save / restore study #================================= str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy=batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeSequenceOfReal #================================= res,A=father.FindAttribute("AttributeSequenceOfReal") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeSequenceOfReal" A = A._narrow(SALOMEDS.AttributeSequenceOfReal) if A.Length() != 3: print "Error : wrong length of SequenceOfReal" if A.Value(1) != 0.0293 or A.Value(2) != 76.265 or A.Value(3) != 83.287: print "Error : wrong value of AttributeSequenceOfReal" print "after restoring ", A.Value(1), A.Value(2), A.Value(3) salome-kernel-6.5.0/doc/salome/examples/example4000077500000000000000000000033551177004724000216000ustar00rootroot00000000000000 # create AttributeSequenceOfInteger #========================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger") if A == None : raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute" A = A._narrow(SALOMEDS.AttributeSequenceOfInteger) if A == None : raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute" A.Add(100) A.Add(300) A.Add(500) A.Add(400) A.Add(700) A.Remove(3) A.ChangeValue(4,500) if A.Length() != 4: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 700: print "Wrong value of AttributeSequenceOfInteger" # save / restore study #================================= str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy=batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeSequenceOfInteger #====================================== res,A=father.FindAttribute("AttributeSequenceOfInteger") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeSequenceOfInteger" A = A._narrow(SALOMEDS.AttributeSequenceOfInteger) if A.Length() != 4: print "Wrong length of SequenceOfInteger" if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 700: print "Wrong value of AttributeSequenceOfInteger" salome-kernel-6.5.0/doc/salome/examples/example5000077500000000000000000000026441177004724000216010ustar00rootroot00000000000000 # create AttributeName #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeName") if A == None : raise RuntimeError, "Can't create AttributeName attribute" A = A._narrow(SALOMEDS.AttributeName) if A == None : raise RuntimeError, "Can't create AttributeName attribute" A.SetValue("AttributesTesting") if A.Value() != "AttributesTesting": print "Wrong value of AttributeName" # save / restore study #================================= str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeName #====================================== res,A=father.FindAttribute("AttributeName") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeName" A = A._narrow(SALOMEDS.AttributeName) if A == None : raise RuntimeError, "Can't create AttributeName attribute" if A.Value() != "AttributesTesting": print "Wrong value of AttributeName" salome-kernel-6.5.0/doc/salome/examples/example6000077500000000000000000000026141177004724000215770ustar00rootroot00000000000000 # create AttributeComment #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeComment") if A == None : raise RuntimeError, "Can't create AttributeComment attribute" A = A._narrow(SALOMEDS.AttributeComment) if A == None : raise RuntimeError, "Can't create AttributeComment attribute" A.SetValue("GEOM") # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeComment #============================================================ res,A=father.FindAttribute("AttributeComment") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeComment" A = A._narrow(SALOMEDS.AttributeComment) if A == None : raise RuntimeError, "Can't create AttributeComment attribute" if A.Value() != "GEOM": "Error: wrong value of AttributeComment" salome-kernel-6.5.0/doc/salome/examples/example7000077500000000000000000000027261177004724000216040ustar00rootroot00000000000000 # create AttributePersistentRef #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributePersistentRef") if A == None : raise RuntimeError, "Can't create AttributePersistentRef attribute" A = A._narrow(SALOMEDS.AttributePersistentRef) if A == None : raise RuntimeError, "Can't create AttributePersistentRef attribute" A.SetValue("/tmp/test;1") # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributePersistentRef #============================================================ res,A=father.FindAttribute("AttributePersistentRef") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributePersistentRef" A = A._narrow(SALOMEDS.AttributePersistentRef) if A == None : raise RuntimeError, "Can't create AttributePersistentRef attribute" if A.Value() != "/tmp/test;1": "Error: wrong value of AttributePersistentRef" salome-kernel-6.5.0/doc/salome/examples/example8000077500000000000000000000031221177004724000215740ustar00rootroot00000000000000 from batchmode_geompy import * import os #-------------------------------------------------------------------------- # create AttributeDrawable #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeDrawable") if A == None : raise RuntimeError, "Can't create AttributeDrawable attribute" A = A._narrow(SALOMEDS.AttributeDrawable) if A == None : raise RuntimeError, "Can't create AttributeDrawable attribute" A.SetDrawable(1) if A.IsDrawable() == 0: "Error: wrong value of AttributeDrawable" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy=batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeDrawable #============================================================ res,A=father.FindAttribute("AttributeDrawable") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeDrawable" A = A._narrow(SALOMEDS.AttributeDrawable) if A == None : raise RuntimeError, "Can't create AttributeDrawable attribute" if A.IsDrawable() == 0: "Error: wrong value of AttributeDrawable" salome-kernel-6.5.0/doc/salome/examples/example9000077500000000000000000000027741177004724000216110ustar00rootroot00000000000000 # create AttributeSelectable #=========================================================== A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeSelectable") if A == None : raise RuntimeError, "Can't create AttributeSelectable attribute" A = A._narrow(SALOMEDS.AttributeSelectable) if A == None : raise RuntimeError, "Can't create AttributeSelectable attribute" A.SetSelectable(1) if A.IsSelectable() == 0: "Error: wrong value of AttributeSelectable" # save / restore study #============================================================ str= os.getenv("TmpDir") if str == None: str = "/tmp" file = str+"/test.hdf" batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy) openedStudy = batchmode_geompy.myStudyManager.Open(file); if openedStudy == None: raise RuntimeError, "Can't open saved study!" father = openedStudy.FindComponent("GEOM") if father is None: raise RuntimeError, "Geom component is not found! Wrong study is opened." # find AttributeSelectable #============================================================ res,A=father.FindAttribute("AttributeSelectable") if res == 0 or A == None: raise RuntimeError, "Error: not found AttributeSelectable" A = A._narrow(SALOMEDS.AttributeSelectable) if A == None : raise RuntimeError, "Can't create AttributeSelectable attribute" if A.IsSelectable() == 0: "Error: wrong value of AttributeSelectable" salome-kernel-6.5.0/doc/salome/gui/000077500000000000000000000000001177004724000170735ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/gui/Makefile.am000077500000000000000000000032661177004724000211410ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am EXTRA_DIST = images static/footer.html static/doxygen.css guidocdir = $(docdir)/gui/KERNEL guidoc_DATA = images/head.png usr_docs: doxyfile echo "Running doxygen in directory: "`pwd`; \ $(DOXYGEN) $< ; docs: usr_docs install-data-local: usr_docs if test -d KERNEL; then \ $(INSTALL) -d $(DESTDIR)$(docdir)/gui ; \ cp -rp KERNEL $(DESTDIR)$(docdir)/gui ; \ fi uninstall-local: rm -rf $(DESTDIR)$(docdir)/gui/KERNEL clean-local: -rm -fr KERNEL log.txt dist-hook: cp -Rp $(srcdir)/images $(distdir) ; \ rm -rf $(distdir)/images/CVS ; \ cp -Rp $(srcdir)/static $(distdir) ; \ rm -rf $(distdir)/static/CVS # VSR: nullify these make targets to avoid 'make distcheck' failure dvi: pdf: ps: salome-kernel-6.5.0/doc/salome/gui/Makefile.in000077500000000000000000000534471177004724000211600ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/doxyfile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = doc/salome/gui ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = doxyfile CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(guidocdir)" DATA = $(guidoc_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules EXTRA_DIST = images static/footer.html static/doxygen.css guidocdir = $(docdir)/gui/KERNEL guidoc_DATA = images/head.png all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/salome/gui/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/salome/gui/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): doxyfile: $(top_builddir)/config.status $(srcdir)/doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-guidocDATA: $(guidoc_DATA) @$(NORMAL_INSTALL) test -z "$(guidocdir)" || $(MKDIR_P) "$(DESTDIR)$(guidocdir)" @list='$(guidoc_DATA)'; test -n "$(guidocdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(guidocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(guidocdir)" || exit $$?; \ done uninstall-guidocDATA: @$(NORMAL_UNINSTALL) @list='$(guidoc_DATA)'; test -n "$(guidocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(guidocdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(guidocdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(guidocdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-guidocDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf-am: ps-am: uninstall-am: uninstall-guidocDATA uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local dist-hook distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-guidocDATA install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-guidocDATA uninstall-local usr_docs: doxyfile echo "Running doxygen in directory: "`pwd`; \ $(DOXYGEN) $< ; docs: usr_docs install-data-local: usr_docs if test -d KERNEL; then \ $(INSTALL) -d $(DESTDIR)$(docdir)/gui ; \ cp -rp KERNEL $(DESTDIR)$(docdir)/gui ; \ fi uninstall-local: rm -rf $(DESTDIR)$(docdir)/gui/KERNEL clean-local: -rm -fr KERNEL log.txt dist-hook: cp -Rp $(srcdir)/images $(distdir) ; \ rm -rf $(distdir)/images/CVS ; \ cp -Rp $(srcdir)/static $(distdir) ; \ rm -rf $(distdir)/static/CVS # VSR: nullify these make targets to avoid 'make distcheck' failure dvi: pdf: ps: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/doc/salome/gui/doxyfile.in000077500000000000000000000215671177004724000212640ustar00rootroot00000000000000# Doxyfile 1.4.6 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "SALOME KERNEL User's Guide" PROJECT_NUMBER = OUTPUT_DIRECTORY = KERNEL CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = YES FULL_PATH_NAMES = YES STRIP_FROM_PATH = @top_builddir@ @top_srcdir@ STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 5 ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_STATIC = YES EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = NO INLINE_INFO = YES SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = YES GENERATE_TODOLIST = NO GENERATE_TESTLIST = NO GENERATE_BUGLIST = NO GENERATE_DEPRECATEDLIST= NO ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 25 SHOW_USED_FILES = NO SHOW_DIRECTORIES = NO FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = log.txt #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = \ @top_srcdir@/doc/salome \ @top_srcdir@/bin \ @top_srcdir@/idl \ @top_srcdir@/src/Container \ @top_srcdir@/src/LifeCycleCORBA \ @top_srcdir@/src/NamingService \ @top_srcdir@/src/Notification \ @top_srcdir@/src/SALOMEDS/SALOME_DriverPy.py \ @top_srcdir@/src/KERNEL_PY/salome.py \ @top_srcdir@/src/KERNEL_PY/salome_iapp.py \ @top_srcdir@/src/Utils \ @top_srcdir@/src/DSC FILE_PATTERNS = *.dox *.idl *.hxx *.cxx *.py RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = @top_srcdir@/doc/salome/examples EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = @srcdir@/images INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 3 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = . HTML_FILE_EXTENSION = .html HTML_HEADER = @builddir@/static/header.html HTML_FOOTER = @srcdir@/static/footer.html HTML_STYLESHEET = @srcdir@/static/doxygen.css HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = YES TOC_EXPAND = YES DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = YES TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = NO GROUP_GRAPHS = NO UML_LOOK = NO TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO GRAPHICAL_HIERARCHY = NO DIRECTORY_GRAPH = NO DOT_IMAGE_FORMAT = png DOT_FONTNAME = Arial DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1200 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = NO DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = YES salome-kernel-6.5.0/doc/salome/gui/images/000077500000000000000000000000001177004724000203405ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/gui/images/head.png000077500000000000000000002313211177004724000217540ustar00rootroot00000000000000‰PNG  IHDRèP°È6 pHYs  šœ 9iCCPPhotoshop ICC profilexÚ–wTTׇϽwz¡Í0R†Þ»ÀÒ{“^Ea˜`(34±!¢EDš"HPÄ€ÑP$VD±T°$(1ET,oFÖ‹®¬¼÷òòûã¬oí³÷¹ûì½ÏZ’§/——KÊðƒ<œé‘Qtì€`€)LVFº_°{ÉËÍ…ž!r_ðzX¼pÓÐ3€NÿŸ¤Yé|蘛³9,ˆ8%K.¶ÏŠ˜—,f%f¾(Aˉ9a‘ >û,²£˜Ù©<¶ˆÅ9§³SÙbîñ¶L!GĈ¯ˆ 3¹œ,ß±FŠ0•+â7âØT3IlpX‰"61‰ä"âåàH _qÜW,àd Ä—rIKÏást–.ÝÔÚšA÷äd¥pÃ&+™ÉgÓ]ÒRÓ™¼ïüY2âÚÒEE¶4µ¶´4432ýªPÿuóoJÜÛEzø¹g­ÿ‹í¯üÒ`̉j³ó‹-® €Î-ÈÝûbÓ8€¤¨o׿ºMîòÐ]9ñLaŠ€.®+-%Mȧg¤3YºáŸ‡øþuAœxŸÃE„‰¦ŒËKµ›Çæ ¸i<:—÷ŸšøÃþ¤Å¹‰ÒøPcŒ€Ôu*@~í(  ÑûÅ]ÿ£o¾ø0 ~yá*“‹sÿï7ýgÁ¥â%ƒ›ð9Î%(„Îò3÷ÄÏ H*Ê@èC`¬€-pnÀøƒ VH©€²@Ø A1Ø ö€jPA3hÇA'8΃Kà¸nƒû`L€g`¼ a!2Dä!HÒ‡Ì d¹A¾P ÅB ByÐf¨*ƒª¡z¨ú: ‡®@ƒÐ]h š†~‡ÞÁL‚©°¬Ã Ø öCàUp¼Î… àp%Ü…;àóð5ø6< ?ƒç€¢Š" ÄñG¢x„¬GŠ ¤iEº‘>ä&2ŠÌ oQEG¢lQž¨P µµU‚ªFFu zQ7Qc¨YÔG4­ˆÖGÛ ½Ðètº]nB·£/¢o£'Я1 £±Âxb"1I˜µ˜Ì>Læf3Ž™Ãb±òX}¬ÖËÄ °…Ø*ìQìYìvûGÄ©àÌpî¸(—«ÀÁÁ á&q x)¼&Þïgãsð¥øF|7þ:~¿@&hì!„$Â&B%¡•p‘ð€ð’H$ª­‰D.q#±’xŒx™8F|K’!é‘\HÑ$!iééé.é%™LÖ";’£Èòr3ùùùEÂHÂK‚-±A¢F¢CbHâ¹$^RSÒIrµd®d…ä Éë’3Rx)-))¦Ôz©©“R#RsÒiSiéTéé#ÒW¤§d°2Z2n2l™™ƒ2dÆ)EâBaQ6S))T U›êEM¢S¿£Pgeed—ɆÉfËÖÈž–¥!4-š-…VJ;N¦½[¢´Äi gÉö%­K†–ÌË-•s”ãÈɵÉÝ–{'O—w“O–ß%ß)ÿP¥ §¨¥°_á¢ÂÌRêRÛ¥¬¥EK/½§+ê))®U<¨Ø¯8§¤¬ä¡”®T¥tAiF™¦ì¨œ¤\®|FyZ…¢b¯ÂU)W9«ò”.Kw¢§Ð+é½ôYUEUOU¡j½ê€ê‚š¶Z¨Z¾Z›ÚCu‚:C=^½\½G}VCEÃO#O£Eãž&^“¡™¨¹W³Os^K[+\k«V§Ö”¶œ¶—v®v‹ö²ŽƒÎ[º]†n²î>Ýz°ž…^¢^Þu}XßRŸ«¿OÐm`mÀ3h01$:f¶ŽÑŒ|ò:žkGï2î3þhba’bÒhrßTÆÔÛ4ß´Ûôw3=3–YÙ-s²¹»ùó.óËô—q–í_vÇ‚bág±Õ¢Ç⃥•%ß²ÕrÚJÃ*ÖªÖj„Ae0J—­ÑÖÎÖ¬OY¿µ±´Ø·ùÍÖÐ6ÙöˆíÔríåœåËÇíÔì˜võv£ötûXûö£ªL‡‡ÇŽêŽlÇ&ÇI']§$§£NÏMœùÎíÎó.6.ë\ι"®®E®n2n¡nÕnÜÕÜÜ[Üg=,<ÖzœóD{úxîòñRòby5{Íz[y¯óîõ!ùûTû<öÕóåûvûÁ~Þ~»ý¬Ð\Á[Ñéü½üwû? ÐXðc &0 °&ðIiP^P_0%8&øHðëçÒû¡:¡ÂО0É°è°æ°ùp×ð²ðÑãˆu×""¹‘]Qب°¨¦¨¹•n+÷¬œˆ¶ˆ.Œ^¥½*{Õ•Õ «SVŸŽ‘ŒaÆœˆEdžÇ‰}Ïôg60çâ¼âjãfY.¬½¬glGv9{šcÇ)ãLÆÛÅ—ÅO%Ø%ìN˜NtH¬Hœáºp«¹/’<“ê’æ“ý“%J OiKťƦžäÉð’y½iÊiÙiƒéúé…é£klÖìY3Ë÷á7e@«2ºTÑÏT¿PG¸E8–iŸY“ù&+,ëD¶t6/»?G/g{Îd®{î·kQkYk{òTó6å­sZW¿Z·¾gƒú†‚ =6ÞDØ”¼é§|“ü²üW›Ã7w(l,ßâ±¥¥P¢_8²ÕvkÝ6Ô6î¶íæÛ«¶,b]-6)®(~_Â*¹úé7•ß|Ú¿c Ô²tÿNÌNÞÎá]»—I—å–ïöÛÝQN//*µ'fÏ•Šeu{ {…{G+}+»ª4ªvV½¯N¬¾]ã\ÓV«X»½v~{ßÐ~Çý­uJuÅuïpÜ©÷¨ïhÐj¨8ˆ9˜yðIcXcß·Œo››šŠ›>â=t¸·Ùª¹ùˆâ‘Ò¸EØ2}4úèï\¿ëj5l­o£µDŽǞ~ûýðqŸã=''ZÐü¡¶Ò^ÔuätÌv&vŽvEv žô>ÙÓmÛÝþ£Ñ‡N©žª9-{ºô áLÁ™OgsÏÎK?7s>áüxOLÏý nõö\ô¹xù’û¥ }N}g/Û]>uÅæÊÉ«Œ«×,¯uô[ô·ÿdñSû€å@Çu«ë]7¬ot.<3ä0tþ¦ëÍK·¼n]»½âöàpèð‘è‘Ñ;ì;SwS—yoáþÆèE¥VÈ‹n€…©^ÀÑ<Åí’jq¡øa~4J8N°ŠGÙŠF0aH·ˆV¡‡ š™ + Iä*#×;"Nr<¡ÍÒšÚŒ1‹!.HÆ÷¾ë4¾‡.‰t˜és2š’=S‡ª>£„ùà̵©nÓó{({6f¡™mÉbƒ˜99 xyîrê¼/SÀSÉeÌ÷dcºRâ• ÓÀ‰t˜l<•AS`÷Ëbó¿Éxÿ¸g D”Ñ•ÄQ#§btþõ”Gx8¾sÖÙ™x`ÁgÖ˜ú’êÿ ü4UósŽWÏl¤‡)9‰·ôºtyš÷!jš_yï2_v[´îh9„Ò`p­)Ëᄎþ䢦~t/^¾ù㯶 B ±–9§ë”Ú³1±Ÿœ…iòâÏy1)q™ÆEÃŒBÃh5”ÁHºi‘wÆ7…}üùƒG—uaÀÅÿôË+çØƒXˆÀÇÊþ°Ì[j«ë¬ûk¬ií®y(2Ö†áÉ3H(ø)ð¬Oßù@ŠÑ‹0‘‹@™VlN‡ !õ @tFJKfË: \"y”ð¤‹I@¾½¹z´)‚_¡ÏgªKùñùŸmGí¶Ì;‚ t%]…>Ð ”ô6‰‹zóÙÅã/6 áƒM¥#!¦€Vnp]+ë±ÝvTž×›#ë´÷Ò °eu]¡ú¿;)É\U¤:êüøº…ž¥"ó°‚Æ†–:м¬`cƒçƒŽoÍÝ€…a«1 qR"ºâQ6×+s³±e}Õ€¾ìøç7þí–o[y׋⹨Íõj ¹%M)›J…‹[çU %AUÆð§ˆ¨§êÿH*lu¸ø®÷ÿöþ®Ó§\@H h×öÜ·N©u[a¯ÞhnôÚáWµ­š2´zc,Ù Uu@I' >ùiýÍeS[{Û»ÒÝVm9q…ÎÊt]Q'¼©­©Š¢)Wu¹.Ío·þYÛ5%)½~ôïºÁ ìÞö_SqUŠ±Åª±«‡ëuU«êúú_õÃÓçäœwƒáø K®0±*È Áï}ü¨ôေ‚êøèUF±yfõFãUa¢ï]ïÆ˜å’ÒWõ[G7Z*]Ý[x1ƒǑӚº”s z 9>J* ö¹È‘ö”z¼ûÌŠõ£b"xuÍÃìkæ°éHÒ<ѰbÆ«mÃ@—d;]›¤´a”±Á`0{ÿWØ{Ñ–’uIšØwûî$+²åÄi©q©kKîéî|÷ûä|í–‰r'ÂP\~½™UiA+KVU°Ú’Ò H©ðÖmÉ|¾š2ASÊäô‚(M§4=:b²<¬£¤£5®žIV¢ÀgÒIÀÐ’3`T œVåõ¹Q@´–m$3v¹´­ÁfònëTQÈ ¦°W ò^¼É0–AVÉÖ˜™ÆºëÆâ1½¿Á‡æ‡2^<ôRR"¢TJ±J2± 0çÄí¦„OYÜ*ÊÅÚ6lb,F åÊ‹D5ÁZ2äC®¡^œiXâ6Ǧ†ë§D»Í¿º¹]­· ôL±¶övµý³Ü@àâïzw÷¸»_ÒÃ?5˜E¿îW¿–óR7ŒÜ‚Æà³ÊÎßàÒÒ®Ù6$?²ÏˆU“’Wdª²ÂRÅ-XD‚©i‘@@˜‚ú «ß©æîžõZ…Éê6Q\âGA¶»y!ï!unØ.•äwÂÍn¿©Ý†Ä;¨'”EuÆê7b4õô5ëxüz[EP&ÿ`ÕÜvÛ†a0,J²ãdmµØ†»èÍ.÷þO°gØÝ6 V`G,ÝœÔ5‘”d×§C‘› ±J¢¨ÿÿëÓlÓõ¸ÛÏ«éA½^ÃÉ’óxBþdÂ=ßņÇGwo¤]0s»H³Ò¤¤Óã°åûÙ…›Š]`ËR8ŸùÃqðÑ6qéêQ°¬žåuRèL´F¸7=m ýi»xk˜èÜ5ƒÈ;Ø p8ùY;.°öñ[ˆÌPÕ¼¿?i°WvœæäûÉ'œœÌ•ÏY(GËFnR‚ÏEu²‘ø¡.ÔÏÓ“Ÿ²ç@.#K„Á–g×$‚£¹tÃáûÜ1œ¢û ž­¯É›ºëû/ÏL©–…Õ¯/7¥×j®ZDÚÞÞ\=¿Ø¾¿ýµÿ{4àœ¶€¥Ž3ªÐLÓû£î‰øÈˤºŠ Ø$>Öù}l–t à Åú’¡:Í篮ÎvÞ7ÎÙFµûÃIÅ­ÞÌòAÀö¸ü2†#¥=8 -4B`$ãÀo®/+cÞ}üv¨kÂᨣîM'2¦óòyÔK¡8{a,áÑaã‰nšëóÝöEùêÂ~¸;|ù]CiDB¢Çï÷Ç›«JÑB„°Â¨‚‚ƒí¦’Yg¶:xR²ÑÄ5uV]Bš*KÁ}¦p´U ­[p  ‘¢õ„ñï}×ÑíæŠÁ«dŠ|¾@ºôåLWQœ‡¡Ø~[)Þ%ÉRe055a{É#ˆÌÌS÷CD»tÔyä4)b"\cðƒ¤vÔ!2ÂÆüUHvÐEHg‹>Ñ|Êûn&“Ï »‚IÉHóES&ÃÏ,¾fœiíqLŠºq-k2ž‡ç;ç—Éÿ´ GîìB”?Éî%˜ð/—Ò4LRãòOv‹ŸåÉÌŸóèô\['éΈ =1)òà>„Ák?N"®`k¥l:© ¶Zö¨ôÄAû̲Cv]Ð=Ç­M´.ì·qr/Œ«dÜ.É¥œ\c¥ѼÞ8_—Mèç´ÙÆk»â>£ð¡‡.•EŒ€8ÝÝV–²R±kÈu>O%•^ ¼k{rm¥¬—H¼W<£=«U5å_·ÈÝ¥?dæÐYÛ4¨PI1&—<þ˾U$xˆ€ç þéÒ3ç‘Wf"hq XÚzÐ}ð^Y'¨JR ¼ˆ3ÁA|BU| Ù‹k©|« ùXP)¥ù§•gø÷ð•{”Àø®@ú lSƒêUW)6fW€óæ)zÂö¿(…þ˯fíÂv…P®oÚ¶í6ŽB2N…oû®iz£Îþ¡ûc«íÝCûnߨº¦)”ĆQ$)‹ÞõúýÍýK­Z »fýzS]à¢W¡ŒÒî!ÀjUV%@5 9þ§bâj“ß‚ôÅ1©%ÎÅ@Ùn âÒÕ¼¦ÔPùÂY‹P>rA̲>%t#âçIž¡ ‘k@"0"ÇL²d åÏ´õhðí#oq¢` `Ýêz›†¡¨;m·¤ ö‚WþÿA„x‰J[ƒ­«ãkî‡ã¤¶Úi}ˆÚT‰¿ísÎ=ׯæŒ6q}zX9‡ÝŸ$ntú¾0£°>“6?:5CQ'òª5Ï]¨:ÔÌ&Âô£~¯¶}ˆ„ìÞûaÊA÷t ŸEZCšÛJ`½LqÕ´Ÿ4Þ ë B ‚žÂÄS§ãñ„­Äwþ´&]uÜ>PVÃýÕ7W‰AfΤ¬£Nöeþ¨Îz,ëœcppiy/˜Ã'IÅU3ÉX®t*ë˜Q++“ÉÏÕ;'uHÕx“õí¿—:ë§æü¸‹Úf ¬”0±*õÈJ[ÍWé!Ý`(k’Ìß™QUëJ>U©+‡ìÉÄ R ƒZjýærÙÓy\SOJ„¢;onñ}÷ÎÛ†wmêHfJ"4b³PÑRÂÿ˜´q1‰¢‡€ 1,±®.H`ÇúnwîÇÝýÖ£¹—öÎÿÙÁ«59VÈ-ƒÀÎï×­¾:_üÂ?¨ß»’`˜$2£¸Pjn0=H"&P'*8Nb~]ÈtΨ ˜óa‘øðnßí±Þ$ ¤T¦[ž|à!D77öÙ÷ö{²UàM?#vg»e9‹=P8ˆ†£dFhmú8¾`NAÑSrø•pð3ýª ‘cHÞ„f•´É'-Q!åtŸ4€ÄYHÔÏw[µìr*÷Ýí”æl–¨Ã·»û…^~¸\l½Ãue˜ŸQ.BcÛÖ[eÎÏûç±÷õºsF#+CÒÉŸSdŸÂ79ç lþºOÛ¿wízõÞ¨·V¿¼h׺=SÞÒ݉‡7×,»húµÙ[|£[ˆ7·HjÄ¡À¶v±^®ÒVà ä6µ¾°FÕ#ú5¬û8ÎØ©—“±cw qªŽIŒÒFWâS „HÆè†‚»}„ÁæÎ©r«ÿ'-×¶Ü4 u$ÛÍ¥å†ÿÿ~€xc†0Ðé%™Æ¶.œ‹¬Ê¶ì¦LyKê4–%ÙgwÏnªÜƒþùqù¯ðVg xìþ6Jí°ØkŠÏ…R»ÎÞúÿËÊ3R^/ÕP§ : °2j¼EMR ä¥q(”æá7†Éb˜ÍDï$û,¦9ˆãj{¯Ã̺2ŸÒ(@–ùÒBºYŠ*Ý Cç§(€x.H0–ÉÃ%¤<»¹î«YêN•õ‰Ó&}&Á²Éæ4`Åæ¼È:&/&_û¢÷i‚.LÄHìÂÑ×v!&´H#óÜð‹Í‡|+½šu]|ΚŠ6•%8»ÔêI´!Ç 9žÎÏ’¯ìÊþ\ÚiÞòý™CØùø—E< ªŽîÄ(oŠÃ‚û~¿ýpÝ0–Ûሖ|Åq5Jëðý×}Ûö»¦r”ΕÐg†EÂOW”»(T&«‡U£  ͳ ΠÅkñsqO\øÚq^ßN‡‡§S×m«š¤kY?ˆª/DP¾yø[ÄŒP©4Àì^#§>ó¡í-þ{…`[ („Tò嘘éhç~žƒáyÍõJbzÔ»EŽäæOëßáfã~ÜM0d“f·fßÙþØ»OpÕsÖ¿ÞÀF·5úw0uô~„”.ø¸†[ǰ YÒÆŽœ<œÆS9p ¥bÍmg‘&Qú±<á:Çut“¸hm¦b‡–2ê<μ£êè#nT–ƒÂÀ1Iņø0xϵ„&¥ÌUL% o3oð­÷¢$+ÂÖ쉜ˆ}9dVäœ8 Zï-ðÇ(ŸK.}"HBrµËÖM—bëQª-f2“È>÷8K&úsð tŽŒWzXO²¶™PÞlü•KvÄ­ðõöñæêf_«FUv§Ik(¾¬ïœÕÇÎ"òÞª/?ßløüqO CC ¦Fž:,Å!V»:tNõÁîÎçë§ ûªï;h6M m­\G £Yj‡Áƒ,´},Ò5ùÀ]§„liê +ö÷# R,îueZëh‰ ÿÝ2⇸ŽÂö"cvŽ9¢Uäêm,²¼¹Í¥ã½P`Àd€sô(“Hu(!°%_qþ<ÿ++ײä4 5#çQa°Nœøÿ_árâ¶[EØ '–„¦G’)q…Z®NœX#YêéîµÊàQ &ø‹uWIï ó÷¼Xà?áî7˜AÓ»­?éºT9´Ty¸nÚ×ÍȆüv$ŠÌy‰¤{2"æ-æBRU»SæÉfJ‰3#áÝ<+D>ŽÍêκÐtxŒ­Ða²ÊŸ~¤ïU½¥ì˜ÿ=WDTú5s^Š˜Ê%n§7RIÐ4¿À÷b/<‡;\˜ 5øÜô˜Î•sLÑ$îÆ½ÑŒƒÎq5L%”gJ«Ûó8uÆásѤ^õô˜"é .·Ë¬Â©3p.‚ÚÖ#ø®èELlþ±™ÌÛß ² X7”Éds6 ¹®k±ŒŽAË.œIá9p:ðBOÂöq÷c÷úõáîçKðíÎÉÏ!ºçý‘?ÝG<¬uþ°ëÝóá¸?…©½õÄPPžñü9+—äS{5/åÄÍ­ý!$L¢¸¤ã­waß »x¿òxzrô2ø5šêèð¥:·ØǨgÚ«§œ $ê4À eï‚.È’Š–bÅ´_Aú꬀aƒ0‡ C¡gÏb†%«!/gtLÅÄ’¿ŠÃ‡[§Çg³+kÚ º®Äè÷Èݨ#ÛÅÿí$LRfŠcœA|(­S¸ 0‰c–ç‹ÉË›2:šaûtøroíÚöë‡>‘ì¦å»%}{üµý}üð°ÜÉø©€£ Ÿ:«ÊE1•~UÞœcF5x:¹,zsˆ@ÓѺ‹ƒj(Öc¤À(ÝYq$ÔžÒK™ ÖŠqF‚¸ƒ°6IÆ ÷krFQ‡!…c)göšMÄ2À2f=ÆB«°ÙàOÙW"‚OØÈfÍ*£¤—G :wŒ_€)ŒÀL¹à™f\Zý€™kÙm‚»KÉ6š"-ÿÿ¥ú=¤Šš FÅ%wI‰ŒHYu/õ)°%G¦Hqfvvº5”©«ÐèZ ø¿_j‡¹è·ÆÆor “=Ä1ûl£m碽°=8”Æu¯NŸ¹dêžÑŠy bªPŸO¡%î“—*HËi¢WpaÁ¾ù‡6urµnA4·HÊJ)¯žˆmÄó¾©!”Ì­Mù1·LøqmUåüümAðmæ°%ßì#ßNbÙ°0íÔìùt¿Wg¯-¸íYjÕn›?UwÇÜv­š@ëv¼‘Þ¯Ö=6ªUY} ЯÒÚu훂IÁ:P²/ü^޽¢‡{¿íÓšŸm®#&ðG~ÿíÁÛbwYÏ+í(ˆ=.®Hù‡$íƒéž•¯ùË{ò‰$’yJ/IÍĬ ÏÔɶ³$ƒ­XIÇe&™Ä/å%Ýt̲ aEʉ‘ºDyŠZÁ2+°LAÀµZÇç®»¥kî<èO_ÏS±~l¾Káatôk˜.Ó ¿ý¼<¿ ϯ'v¤I©hU^6.´Ñº¯5ŽØ x ´ Š6Ó´b® R):ÓiKÃh^&üpÂà™’ŸmùN‹Ó3r0·ÆR*Ðejæ<Š”#*”ÌΩJb¬ ’O¿rV–žp¢6²»†qŠª˜X‡r%‰k!Ò ~©!Þ|A4"ÇÇ$·zx/Ï«³âwç²U2;¥Â/7Öß Fú¡ÓU³¢}Pýa8Àñ}‡ïOc°ãû«=õ@ww¢/OçÏç»û^kÃf}«:£ÌEÎ=Œú§\‹§Ö4ù4Nþ>LÆè¾?{Õux8ú«P*`Q“,RV¼Ýlžˆ«Åô×h\qóÊæùÍž±‘YfAüçÖö 5“-fz.J‘Â¥\ïp®ñv±G9­aY š#¥â”Û7$›>”Ýê×_`îÜuã†(JÎpe ©Œù€äÿ¿Á?:@"€mÀ…]ÖÞ•È ç!‰zš ¶Hµ6°´¤—wîÝ"pU‹Ovð@òfêýoz¦šx¥Àª”¤Pr–X¥Ðõ5#Í4îéŒÞhß¹èC5_Ò­q ÍÒ™•þ¹|/ 3Ö©?^YXòmaú ã\‰/Ïó7P 6^Û9TÄßý·F-3$•ÏLÁ˺¼5B­^oQ±· {5áUúÞ_­Cöw±ÕãXÉžºàÈ×ÌKåãâó» Ò”d’­0XÍŽhFhÚÍJ-ÛWßæ±L"me`¶^)0àóÝvEÙ3Зõ4$ *ÍûS><}ýüéú¶œ>¾R#4«ˆ¬Žçó÷ÛGíÓÁ4)‹ÎXìc"|ý.De!ÐQQ˜fnÇÈŠœé\uóí6 *°¸}EÙøš‘1³^0â}ém˜oHx³NÂLµ"â R'X´Ù»^¾7:YñèHåÐaù¢é·Í†ÀA””qŒÉvï^ºøíþwŠÝÃsÇØ‘€M–àŒ}'£šÖCëG*4 Ë gx|†»cÀ¤iY·Ø§Ml2.íY¬ÁÓñôH `Rß`AGÐ{U†jáô«NVË8OG ÷Ä•M‘¥Ib| †mûÏ&K)n¦¼F¨ÚnAt’˜»Æ“öòʳ“\o"úòšÎÙ#g7Ðûåó bà {×ÞIÆCR7œú ,ë+NjÃËÊÖb'C­Hev•Q•yÿ^Þòˆ|ùHo1¾Ûæ€y¯Bs÷|ºùñèåBÎK&Åä•DÈÇ*?ñ,,tÙK÷2ŸuÐF¾\α‹]™ Ÿµ~h04‡–sè%@ˆë#ôƈ«©ïØ–ÀŠèo9`©âȸ!HËÈq0¾Àó¸S+Øù¢ëo/ BJxž<š™·ŠYt`½ÈKIJ“ºÿ4{I •qô®Éµ*¢þÀÜÕô8 Q{ÒPU-ˆËþþÿ/áÌ qB!-‚ôÃöà™7vœ›v»ö¸M›ØIì7oÞ¼Ù½%][sHÄçvææÍùÿfyy°‘+nUã¾üÝ¢¬¦Uö½^UpM÷ç%:¾³ø/ÇÙ*M™Ü!‰;áJåNÊTfî°…ûÔ¥ò"V°Ôp'fê1â仾nµ„÷"L_(nùv%÷¹´œ;϶ú%XyV‘ë ]„VPÚ5ªñ.a1Z)B}‰¦¥+ظ!hy‰¨ææ[sNÕ³îoHbta÷œþÌO¬Š:æïxKšvn_ÀîGeM™¶Ÿ…$½ù†Ö®£n›C¹žôßÍ;0ØyM¨žQÔøåûïÇ}øpwÿîMÆ0á$(ÑI•ûyøsäQ6òÂ}f.Ù\¶©}ÊYÛÇÃŒ¼ƒ—.>5ýX;ôµª¨ 1ºúè›ÈÇùÉ«¥Þ4ãͧª3ßÛˆ}éÓ«p3ÌS|Ènr}™É«%›7šfØXùFïSÙ(¯Ö‰©­ap¥†IÃñOÁÓ¯ÇóéßÏOÎ?¼_œ)ÊiÒ×§ ÖÔèæ–7-Y§‡n|¡2+$+Ùv`;Òoäã¶1Ž7™K[D³HÈ•ÛÛ¥¹åLÍsM››k¡5TG³Œ¬¤‚ÚožÄ8Û¸°Å#fàJ–É ÿ õi®›€Ñ7TÂäj<¨šK{®vê'‡A80"{õ‚=cÒ.Ü;º =§;˜²;õ©Èlç¶ }¦ˆ›I½^â ²˜Å ½íJ+%V&ˆ|²Kž|#àõ’Ãäl–®¬É¸"B8VäÛæ\©Jþqš[Wò-¹Å ûͨe x$ܹ6ðdäŠ<.ªM»D­ªkÙY½Uúø€`BJ–&ÅÛeZøXiÄâb´h5{»@°A‘‹|éAøõ1/¨<Á>‘A9ïÕ~¥ Ëã# ”Ya÷¸Ç!CŠfÔ‘Àö"MçþË÷¿÷ïqÄ|s¤Ï¿¿ßbE‹+Oâþ|‰yùå:Y¬tÄKé¹…5ëtBðÉœËlI`ó\4ƒ 5­vBnBSò]…SY4â;ðèDQjb‡åé’Ê~“âÑJ~Ï¡ã>\¡CŠ01ÎR‘³x4u)~=ªyÕò‘'Z—+äK¹¿ê ½ÑÏ-ÿ< @Ûµ­Æ Qi$«PèSÿÿ«y, „RhK—² ¶¤zn²ä•½5’ Ç’bÍÌÑ™s ˆ½rÃÊŽÖòcÛIÛ{~‚y- ޙýìq^òs¬D7™A.Šü M«KÙ„[œÛB—÷-ß·jÞÞ¸ou²ÜßôÕU„Á¶%…"X›•I{å.°~ ¢ÜÍ¡·=ïƒë;v•—.Ä¥o>ó"÷zyjö¹3Æ“È[(%w™ºë–àöîŠÚìüÑ]' ß”7íß8ÿ‚[2šï.÷EõÕÚIy,Ñ‘O ïbÌTä•í½’­ì?e°”Ü”^Gò2ôó—d¿ž~½Ç@¸ã÷ÃñÏÛÈÕÆ\ESm{(Q˜ë©Õ®YZª¡2§€³2ìD]À$ÚÏEæÕYðÈm¸ êŽÖT²ïœC)fu/Ñ&7ɶJ±d©Ô£õL–­d1TD¡ï¥éò½𻸅–ƒ'<‘&XÚÚ¬Joº[qu"ÙLa¤3ŒcÆØwXÍdžáhp›É(Šbõ’"‹yhÝn±œ„„xÞ‰‘Þ:"”k! L¯ÀÞL†¨Qù„; £"X™©Ñ„+9Ë冽SÕ«`ÔÓÑÍÇv*€»5$ÌÑXyÁŠä¿Ü© W3x‡“%Úœ¶<ÅTðÙÌè2|ð‘tC`dvN”'î·¸ôI橎äeŒRøi–¹ÉÁ–syk&jÁÓÔ7Q’Î篿ü~ > _ŸÇ`ͼ‰S'mÊsQ6e£¢ñQèùiŠP=Qßa~OšÆÑŒ<Ãiþá\iCðÞ«Ÿ˜ð¹i å‹7L$‚oß…ÒA‡ãyrñ[ƒ¤-Nä€ód:¦ãe³à y!WŽò$Y“¬í8èÔ'„ªevšþ·>þ @ÚÕô6Q½mA"½ „àÊÿÿ#Ü9 qáÐ EU¡ ÍÚƒç?&ï‰[ÅÛÍÚ±gÞ¼÷frUãŽRŠLÆ—ž¬ák îFƺ[áå}ŇëáT›K€^få.ÿoɧ«ºªV„æ 9X7()^Š ’7g§^šBûUZ_Ñn¤³×{EÚd×kvPñ‚¯× sl ^£nlÑ}‡‡Œ½V~MÏ0C^´~‹PɶV©ù’’;O÷ÖüÛm¬ötè7·OFä~<›w¸5A´²ªsg±³"~Yþ …z«%·ÖƒÒÐ-¤fÃèçÄw«ÏÔÃdK½7|ÿ˜ìŸ]`·Ü‡F4ûÜòRÜ!M¹ÿkutùgöÃ\®Ý(mYÝ5į×IÉ™ŽŒåc£M`¥WJ£û±‹ÁŸ¶)Ýgþ¬°wîOÚ+e®$ê`ÓçV¤uc²Üq{ž<Òm£ó4½=F2µíÊŽŠÊÉO|Côíáéç¼||sûáõáþá9.³ @àUÝY*‰l :k”ö%L(ÖÍ•^]~áÒÅ«—QºJÎçÐ%(/qœöœfíoI&V‚8ʸ¢jÀ\ëHŒ–+ ö ú ˜;Ðe¢ÀW½üsq¼ù|ÿxȃ¾?}ýáu¯râÊ n«2åºè¬»ˆâ kÂæ%1<çà]˜JSp˵×áæÅô(lÅípo£…¾wÉu“m.ʼn}n«$b“±H磄IÁÏHzAÍÈ*ßÃrýÆö/ð…á§ÅæŒB× 62{2L £Š #lìô¨eÔNDâÕÈL:ß§7 ›a~zeÞµêÊ›Ç};Ã®ŽŒŠuà^§Gkuë|üOëXA¢¡³¡ {š”áèO…”£p¸p]›¶»üþ»ïYd£­Xe7á{‘^…gê`jÓ‡-s´œßãKJPÑV”E´Ùtº3,Îoº­çž‘7R°°ñ¦qª>M€HàÝ@ d2nÐ6L˜7ž.ðS¸*ËÀ1¬¶ih”âÆ*On–øŠÑPLóbÌ/¾üZKA>I)G±É6z‰Ý«ö­¬@ªCÓT-v­ŸU1”ÿOÚ®m©mˆj%9I봦͔/èÿÿL;}èc€é` ñER½»ZYŽã¤ô˜푎Ξ‹®‰‰ÑÕÂO‚éÉ$Ä}ºêSy¯=‹uÜ8KÉ«¡Ì-ç¡÷â°üŽëf^§s=°ëç{v4Àçb5h¿;ðUãAdÔ>òòÅQ¨üô¸tigSºgöwÊ~ûaÈÀ®Ô¶w ŽÐÛ¤©Þ$¯—{®!çž³×ÇA¦»žB'ä.Ç¿úA4ù|`âO)Ïþ(w CÉa¼ {»l^ÿø2¦Xð3 ÊÕŽ]?×÷¼1æ- 86]9øb+8qJp–[wÄì4ÂÐã‹ûGÓÅ©­´ùÇÿ‚€WšË&›G¬cpÙÁZ¯~ÞÞwۭŽÛy™áN= kÏ" %õc7I{dß«eùå“m´€m‘¿f… U°ºœ?Wþa[!P¡ìtæ:)[¢ãÌ×wÝSV!gbɽ’_ix ¹JÅ I9a‚PÙ—fña93Á|ý\®.Êm ëÍó‹7÷ÛͶžqæ5Úkç9rPì~Ø#„öÆï‹o«‹ï맛Ǫ0Äêc:LƃpâÏg{räÍ(èÆšv³U¿ÿ¼Ø(Ùs°Mþ«]Ï…„˜E¡ƒ~¸¾Z,ÅíS³~¬Ì2×OÜ5¶X…t7&D£hD¦ØÿDÀ“tü«°<½J‚'+—˜/±ÿ’ì@ŘLÈŒ¯ù¨Òã!s©Þ7qÕ¹þÚÐL#D©; „˜à»¼’P &Ð’(¦;gÄÞUZ¦÷¬GJøQ%Ï4JÐ×ËPÂüG[ßUa†Ç¾: 8¥õ@Ù$fæ]w€ì¨!:¿ßÑùE…øE‹'Ã'Yèá{Óám‹žT߬ãð˜|‚A’T5Eù‹øÚ¤Èä¤ÑÅæcŒŽs!ˆªÇ™™^Xƒ Ȧe_‚ éTø*Ú $øDã’S»­ì=)¢”£N¼{(“1¾°¶¦©ˆmÀÅpv.Ã"‡«üÜ-#Êóñ^u'iÇÆ ß÷"‡qåÐX’×=Å„!~2´¸9>Vü€¸kÙq‚žžñ¡´BËò|ÿÿ\à‚Õ ‰ífÁž™ÆÝ=3¶ãؙͅK”Cbù9®2ƒ% ;ëA僭ë(9ÏŠr^´ô_÷{îhˆ+§H¯øHº‹‘5žpZ’ Í/òyj˜–¿üîT¬LYªÈ0õô2Þ[ñµcF]%QJ8cSEÄêÌND‚F,N©çv¦öX“Ô§eúØ|rªH™„ а~„F†6èØš`"?8`yµoÌ•0laòk©Ì§&=äÉØ!óˆN‹<ëñÿXRçüW]â›óaöÒV¼>ó§…2w§ýSŸÄœ±¤Twð庠µ¥o¼®ö¼°¶ÈçëõgJ­h<ƒL^sqë¨ÈFÃ…PÔyqažõæV_ѬEI\eb ퟥMï7„³­3Ø#íx6ZØÝ|ºÚ?·Àd ØP½ÛÖµÂoû£¥ÑLªŽ PÓD÷á`"ûÉš‘¯€ôú¢‹™ŸYs†^„ÒMSQÙc\÷‡R;7%¼¾{[–vÛ/??~ۇã%ý†!'“BDºL6“Syç7uõ~Ût~Ý?ךa„m&Ø—h/ÆòŽÍ( ˜¬xg+ñÚoÜÞÔûǶý‹º¶ÈGBM'Ô$Û×QÆz÷¦¹ÝÔ­{ú¾o«?¤ØQ–|p-;¥éý¥0j)I0⾋"%|;;À޹U©sŸ¦Tqv—kPL)+À±S“ôñYNãƒD’´Ñ8@‹’QK…ùÅ j±+ä{ŽÎ³ öÔ.‰;ÕP¼2tCõ>Òé0ÛʼƒÏûËÙûQÞ䑯šRµ]a…öçO’±w ›É ÀƒÿcÍ(“-o²öH©o¥ÁWR(<Ìë 1 ”¢ /ùY4ÝàÃ/C`ˆ¶³žêv×Ó<*`¨BÖL ¦ ˆ Þ–g‘jÿäŸ"!Hq ‘/„¨‡Èœß£!KÝ#k¶é!ÜRøçô AwdðÏÊ)´UÉ+FøzQôP‹ƒ' ”ç±Ù"D é‡ñÔj¤K\p8Ã’'q &xÐÿ'i×ÖÛ4 …mÇIXiA* Øþÿÿà^ö²Ð$*„Ø(jibr.vœ4u"xY¥mjåâóó]ll´s(PrìLÊ{„™°ÃÿaOõMlKLZW‘(ñu’õ S÷ûÜ~œ£Ñ_¨ÌR9æ"^,›×‹ÍÓÖÓÒpÆ–1}_Rƒþ›ûÍr/üüAãIåëøs¿ðŒ_ÐèFV Ì¿t"RlœZ‹\†Ía:ðÒ ³RAæ@©^@ÊRs¶ýi§@'Ð|ò­~i_˜4‰Ï<&ç»àÌ [r®P1øŸZ‡éñÌ’Hl~ϸ¤ãňjϳ— ;[zúèÐ![+·„)©'Æ'·;ô—ÝþûÓ¡¤w¦çÐS ï·W7¯VÛÝﻇǓw%®©êsÞ»$N5Ò¨ãeðHXð¬Å¢pId»lkòâY±©Ëk §‹cW°4Ísko¯77×ëÇCs÷P}¼ÿNL¹á¥m½ûÙ­³ÜÿT˜> ²kflƒêEqFÚ­JÊz©õ°yêOÆ[¨Jýn»z».ßlÊO_Õ¯c‹ÍYîÀÑ«•¢H¼ /ÖÄ€’ÇÅZºzÝÐ<˜±‚a«ä.`u¨0ž$…¾o3qš¤(û³›6Ž èìlÂÞ@ü,!Fç ”çFXìZ³99RÈqÑN , =5îf‡‰‰gf>-RLó6TlM’‚¤}ÌÔ‚ÂVÖjm1~ÇÞb¤ö¥K¤%Gþ7šeú‚÷]ÖÍôœ*¶æ%ˆoŠ9 ü¡Qg”¹„&ðÎÒ©)öÈÎØÏ×@ •ž ¾!ixy^½Z? Áùí‹•Òúý×[OD2L1”l7ÝûA‰L_¸…#}‹ Áª”ìË®Dô-‰XˆÙÙªU…Ù…7!w%ÌÙ²zò¶®äÕÅj½ÔŸ~>ÞmêèCD ß³‡ü—Ÿ+â&›"¡H"2ϓݡăqJQ#¹ßî@Ô 6›êj]_Öj®gáÂožWßï·(Äâh4Ò2ÿÆ µÕ;[ŽNWûwï5¦1–ûR2¤D Z%#‘l£áL$MkNkáPÛ†#­3sü›"Öì÷{k-6…M»Ð²œŒP!MÒÝÌf‘½"c¯¨Ì†äÏä‘{ž š½ÝÔº^..–ëËóE=Ó_nnïî´^R’9‚¾ø¿Š¬…}(8zC4+ˆiDY«”Œ‚üyÐ=)ü—‘ŠûÇwK)„£Ü?H»šÞ¨a(èçØÞ4ÛZ!Ð#ÿÿÏÀ‰+ ‚J…v›ÄÆïÃ^ÇɆ]¸uÕU”“xÞ¼™y¦Ú݉u ¡›Ò7Ñ%2^ä9æoÞp\2@VžI?{˜ü­ë,á\§NûžfCÈUZƒÉìÙ”hVà×ßgÂ~_† ÿyºâTó’&*TŒˆ{æ[>)½hPÔßä–ÉàÃ~ȸ+ß0‹/ƒØ¡B±ßˆ ¶¸JBKR4êÌ•N«ÈX(´Å´¢cpg¶FdîÔ¡[do캫8fqvR5!r­‚ k,~& +µØâñ×áTOàÚçæ×“f8¦+n»b&ʯžeíšã­*5ÝJ_©‰_T1fZW,0 eÀËT¹‘™E–Õé•(–ëõßÿ„æ¸nêºh¾\¸Å*eÒ˜m79 ª›P{&¯e¥"H 8IJÀ!µ &1S3½>¿R½6gN¿}yõéÛχˆ(öF!멉GÿØ#òˆÀc?îüØh”¼fA êÈ -Aî/"ûôÕF;¤,ʨ#pÁƒqš ŸVM]y€7¹l)>>ex±´BDè–wÛ@»±$QÀ¥¨ùWã¹s­3k» ^“›Î^wî.÷¤A„?RX5‚Iò‚Š!µáÙ2}·^^\Ί¯·Ë]í@¤¡4¶8À—•*9–‚Ë% ÀWQŸCãÕ„ *P$âÑã‡ÂõÞq^²[8Š’ˆ°ç³ÉYiN úkøYîÜŲ̀¨`OPd¢lí ˆ7Ð`WÉWÛ¸äã©{Úÿ{k2î`qu"QF18ï_]ž^ÍMm“;=/ÝÄèçOÊ›åy~m)-Ÿtœß£ÄkTqª7ÙTÂïé3BÀcÃ@žþµr[»ªòÅTÛ(H¼ô:HÄhÅÖ? C!$FÑ å¶£“…E”@’8ùYY(Ñ#›©Yá…$¦EÑ3 Ô‘‰D5Í\ø,1(‹uz£td9h:KÛA8PŽ90‚Å à,&€öµŠµm׎š' ï¨OLÒ•T!k YãÕZTO¹ÛØ‹R¯¶öDÉ0…/æåÛwÅç»õ·{žùÞ†IT©¿á-3TÜC9aªI†âZÖá?è¤Jä|’>„eU.ˆ.ƒí¢3B|T´J£n¸R§ •$g+·ßí­+•¡˜TX]–Ä”1Æ’Æ{jèÀq•~R¿*À»V É<ì¨çyQ“I@ãúã›ëð2ž-Š«ù,<ýIiÂïðnþ^oCð·ÛÖÐ…Šì_‹šv²b’KH. †õc(ú†}-ÍM-¹Ù’žöPwY¥à®sV¦¸T°Pu';I/b|yì û+k×ÖÛ4 …}l'ÝÖ–]â"&!ñÆ ÿÿ•'øHñ€&&X·¶,‰m|.IœÄíúÀ»J­4>ß9ßÅfO |úÞO>íùØ`º‹ S‰Ôuzlg©|±ƒ¨4U2­{€ÝõHê¸G7ÂF¦^õ»ù¿,2T¯‰ÚÑ ]ã>{Ü»!¿D°Zw”¨«ìß/ytÝÜ´„ѪB±h EVIl8dMʳ „Ý"-Y’ÓzTpKì°›M:ßÓR8y%$ Ù·ûÊFõä’¥×$‘Sƒ’¨û¤ëyG+Ò£ö¡J¥À’ÒÛhL9ÖÙêYåòØÒŠ3 „F€ „ÿÙíeóê'»º'¸7û 8Üò%ýô”)q`çx×wž6w§à0;²èW:¸å5Y>ϨÉΨ '·÷SWÇ, p¿` {Ûd}ô÷k-”+ìá¦?JZÛåîŸÍ‚È~v‘$aà·;œxl(ed¾(°t;.ͼЋã«Ë'Ÿ¿ßü¾ÿKÁòÐÔhïàÑ…°)5%£C‚*U߯zq¾¼]o?~ùùúb~}[ÛQ!Øœ%¨6¦´w¢Àߤ¥š)þ¿¨óT]*Po÷Á kêZƒ'¥±–=à †æ`aR㎎ ùÃ]ÚÕfóôIùærùífUpº)o{P!þz=ÄŽf¤Êm`ñy$ËŽ©c݃ó«M½œ“v’òG¨òÅ£ýùböcµÅ:3Ld`<ãŠ2•Z‰`F‹G"ª}A›––€Þ @ÆðŠU–ŽÊPtwD¼cÙ4ÓÑžøi.xì Iµ{WŸ S§§ÑPÓ5Xã3(bÆ‹¾ÐZ·šh%þñ¬ S’y* è l(3m‹c©< ÖŽ6îäŸâËA‘a†¼‚—lnr¤ ¤@,Ko,Ö4 ¯#HÑõYi~mÝÜBÓøSnÖqÝ`K‚(@‚b› ꈈ dÖNÜׂkSÓ*¦ˆ!‚~* >-LÖp2Åà´K*žÉ. U ˆû;v‘ &^éÚRð¬á‰ï¬j÷ºil¬ÙQ“‰ùKŬ0¥iâÂ*•œÑt›QßÐÑK¸_ñ*«æÃÛ—õƒuvWùgËÅâ¤Øl«Å±­˜æún}z2»ß<ÌJûçnûîÕù§¯ñkÆ> úq†R"Ø/4ƒÎ†%‹" n’ìö±˜? ±DÈÓ+¾x æ‘Tô`7 XaõðûŒÆù£}i8E­J@öWÛ‡^î:R0¹C/! ¾TÿÀŠ÷s *qÔ½4ÃÌû¹¹1ÆöF¢ãñ|ñ¹'"–{¶´v˜åaÀög¼á31Š6ŽšRW˜?µðBcíîw‡¿ ,Žr!0ÉÚ”P; v”bH׉á˜_Ö«üþöúÛçww×W?žŽ…‚r×a:Q4©“Éí¢¸Ù+ÑÆSÊÈñ*ó{ЮV³ÆŽÏ7ea­ &p_,`•ëUYç«Ã±=µ SÓ¶çÝñlÿá—Ív]¶´Gª£ùrᢳ(×BŸo«›MîäÞÄ$kbÄ ]é0¨ž[Õ» {’Ãqu’ÁÒz XaÃ4è÷#¿\¢Œ8­6; —Tå‘C[â¡@³¯,)<±Mâk?«ø´)%ÂèÚJ¿}-Ĩå&Hë]Ø`®Ù/m¶Jœ1äÐFW6>Å®ÍÖ(…ÚAèbapn[Ðõpßÿh aatåE(¿päu0R%¸›¢*›€"re¤›¾S§ >Ä ‘èä«5ÖIØç®#?d’È ! Ôel޹rD¾=Õ6¡_¡=ÒJä…"YöñæõywZ‚ ]Ç<ÜÚ4ÍÝûÍsÛ=ŸÌU¥~Û*LúõªØïÛªVöýº.~N_oo6 C…*ÜŽ0£ ÉLê–ÒGʳقJË`ÁJP7ÍtjºXþ€º+Øq¢;q“¶Ûe) A¥BÜö'þÿ{V‹…¶q VGÅ!¬™×6;á–ZæˆTÜäüvÅïB&—ÒÓz”[ö‘îèí„Ñ@8öÆÙ †«’bu{ƒÌÒÄŸ*ì¯65%ýÜ NÏ@ÒSÔWI :ùÿÐÃSΰ÷˜\Gå_Iè\~Åi!ás¸ÑŸò€ßõ8ÇF-e†ÜfìøqÔô5Uc‘š)! Ìª*cè#üÿvß4-äã…¬p ÄpŠcË©$’R)y Ö«º¶þÍÃüñÝÊÒÙPéÒˆîÄ›ZëLï§Ž;}÷PvÞ³÷*åQˆÂ…íü(V~}\33Ö“ ¦ –Þ¯ô¼Ð®ÅçÝî×®}ùÏûÆ‚ —öá•¥Óñ‚¤™H@tEä–Ãéûûeõ´yýeóP׳–í_Pä~äã½ÿ³k¨A’QœØVfi%™5Sw&Q­n¹ú"„µ)>¿]|Û,¾¼û´¶3ÝÕe%”£ OB{m´UçH;À¼`ù8û¸S'ªËáÿn‘T8X゘¢¾Ù³»!f5Õ(Úg”Ø3òHè²SÆyTIçUOÉo-ð¦€M(*‘ôDUÀÖ1‚ËbÖl0Ò˜? %;Z9P+[G{ á³ÕìƒÊ*ßÒuÝ•zÛº­sa&˜—ê¥!»ó˜ ±P%²šŠ’®yIQ&ÅšMhR@±\j‡W5ëS$a:f£gžqJв# už#Ò$æ;¤ù)ä® ÙÉ»¶98×8X¶j«’L_lIÃѰ~°ò²† HB~O~’äÔ¾G ÷ö²*[×üÜÃrVµ·³e>3‡ëª8üýÌnÝ¡P\¶˜·ÆA~ ŽXò!Œ¥¹ lgŸäRª;Ö…õ4üØ0\ŒçÆ×_X»¶å¦a ª•d»NÚ„iiàÿÿ)†éÀô!ôB;–%´»’-ßBxnë©$[:Ú=½x<Ð¥Xœ´EwÊÒlT€êÓ%œc¸ö÷€îI;”tÌÆÑÈÿ騆¥[Ïm;ôÅÛ^À:e˜SÜë£pam8šð¥†@„TÐ)w!ìémO¬]InÕÆÐ>p5‚ø” „ï°;ÁÃ?û÷-Ä}§—±¡¾ô‹U¡M¨*aÉ…¾üshOVz¡}‘æOç2Y…*°ƒw…a³èÆWÆ÷§)¬ -n6ËÇj¿\¨¥.ÞZ<4òf­ïí¾ú{àZ#]Ĩ£Ý´l Æ/Æ:×_*EŸÞ}5bÁ…E,rÉ4L öeC ZâÌâb <•†q&¶³Hëÿv%»mÃ@”¤HÙ’³ n ôȽÿÿ=õÞCÞ4ARÀ±#˲D²³P‹µ9AoA E‰ófÞ¢§ûXQCU§¶Ÿ?Ä®²£§d”‘ÏÛÃ÷¼úx±ÈÈÎB„ K™†ó!B²Õe¤UÖxY®Wé×Ûu‹—]µÙçÈ:Æ$nú‡®÷ì¡|Øe?þÄ÷Ûýe’\'êË:½»IKkK$Šx­ÈKRª½…Ú MÑ)ÿÉ~ºJï>ÞïBðy32O òÔWYá¿ýú‹."U©#L§E—´|¡4M!¯€ÀÞd=%³¬p¨¹c$uÈç¬xÜV¿7ûx¡œuHgæ”)ìö×n‹ ± ,ÄkY]cêþ‹TfB.•\(–'b´$ ¡•¡ë0¶V\-Ì€‡¼ñë¥yÌ 'Âc‹–Mf:S²éæXD]–H¸P‰î]èpBÏ£›ÌcÐú0F,\šidjƒA]X*QЮÅF±c ›ª Gò$ñ|Ó‡ÔVä§ãˆ¯E¾œˆÞ,yÿÐΣe#cš¥P»á å «HdBÀȶˆ 0.·G{eTà Etbüó¡ÌK4Ò,±äƒ¿‹o–æöF_&úÃ2ÖUÉVOF³&{úzÑ´XMj]äE=²uud¯ )‘øï"iF°7*lNØÊ Ü|ñ¸"¢V>ýÐFweù±ËØ+™FiœÔXk[Ðí:š@ IäG@z…=zµÉ«$…  §Z'F=¼¼&FÞÅÒÄ‘=V6Yš4ÑEY ~[‰ëÚÑQ`K¯&”èÐcˆÛUéJ< ¬-Ü+ëQ{¸Jß”L0k3…ëë×Py¾±å1î}4ph g³ ÙIñ¼T1Ûz:t©#©ÅEmiWáY«!RÙMï<²œÍ¸„‹ú&`Ÿ{îbëS.ØS_m˜´ñëFˆ±…UãËÆ}{(•³ˆÚ†”8!¯f×íJ”£-;*µ tï^m>¾]-³ÔßÊÍuþù¶Ô8 ƒ½•Ȩ3èÀãCÕK„îZøòóÉ_|Wï~üZÀUy’¼HÒLšÆ!?þeª93-UðTã0ó² C\ÏX®ÛŽ£¤¦v›£Ô#¶¹èíWªFE#¶e÷f™TFlkûõ®ø^ÔÇò‡"й r˃mÀJu¡}¸Yv7âYRŒZ'ß_-îv¹i!ý‘Hu WÍú˜O¥4=Hu*DnR¸oy”30s0=2( òlŠÑåÞµž,îYÙ¾o @p²aœ˜Õ¤ ÇÖ‡›ÆÐ™q¢sR¥Ùïc€¨’ƒÔ I‘\<âƒÒ·€¡ h MàC²jbM<Ô·Þm;±RàÿBÉŠò%Ÿº”ˆË´~M}xÊv€µ¶÷{lìn'k›$¢KrX[ña£7I–g°Î|Æâó‘Ö_·1z¡º–AÚ™†X‡’´œfÝ3å·ÜÇ`¤þ^öË&ÜÔT¼•&¨õ±gÒv(èQ´È¯MH$Ÿ|¦h¾ª•öi$­¬ÃÀ7íLØ3ö8ó%ºuc‹ªZd ¿ÒÊj·Ê—KUëøz½úõXúð2MÊÖo±LÔÍëõ§m‘3n°r/ƒ £ M§½¹;Áuú¹>@”¡TæÏÙBu¨Òö|!çØq.>”e{°éxÿ @Ú•,9 QmÎZ“…b¹P\øÿ/áÀpà253À¤’x‰e5êÖb%²“Ü•±dk¤îׯßSy©oQœ™À ÛU©§ÙÄ!ÚÓÅnœØW¨–wv+^‰«rêE|;W°ùÜìãRϤ—5̯· ‚³žœ¯‡h¬ÃÓ”"V/á+pðL_ˆ¡Â“äOqôs°wÙeFè>GsÃDu{!Rž2M‡Üù®J„h’‚ßsgߊ]÷nìß*cl¤ßñöÏG—›dшÏ÷!OšGÕNLO…b|Ð@žh¾OÆ ›ƒ³þ•Kì™ßÄØïþŸ½©èòOñ÷5ˆü¼è}•+&#ùÿ½Šü#?¯l\œ|¼„uÁªº’mÆåÃ=ç`¾ÛͪƊ]yóhJyLáRß±Ô<¦4âœÜïùH­$ßçJ¦n‰>à î9‰jU€·ú{¡Ó)$£ò}ÖÙìll°5”*Іè¾2Ø=® ’I!/N̘ @¿¼]|z¿Y"ï»UPlÖ‹í²~µ‘:~¡ ªœh2¹Nª(øog2/äf©vU÷\veýf5_HÞ€iZV´â].e[jþýçîiß(O&N?¢óÁY+¸y‡—€[îÍ||“œ6‚!-=ÆÚ]Ù<î‹¿÷¿ŽphÚ\ë©JÇ‹CP_ ‰"”\Rl„÷XÕ!ñ8-¨ÿh—¼Ø;i3›±`%’+Tò*HZ8h³’úÃtÒ]¿Î  £þ;án‘‹ÂÕ;ð`5ás!‘àŽâeü‚!éÔP‡"ÉÆ£‹ý¶”tm /çè}\Ç©)Âç)¸T_lqmD‘Ò9ýZøÁài:ŒŒ˜cn`NG2ÿƼÖ`^*±”0øìÞªHÎp.á¥Æ¯UsñqÆŸ°5•­ ùíX›M(óù¡øº]v6!“¸mmâ¶PºÖ6±¯© lgÅT‘ÏÄ[ƒ°¸G¸µMT˜Í…¦ë|ëP-ÚŽÅ…v`N(çŽy¡bÂW°p€ ¨!äDaï)ÊtšV›î„„/Ñc·õDNgó²¨1eàQKªÑàª<ÞWuÈ.ÏNt&OeçVØ]Ô™]cÞ­çÊBˆÙTéNìªf½X>÷' mçÖ"¾/¸výÎ8qó Ô5pü{Ö×$Ä“G‰¼¤¬«4¸ÂA¤³”x…^ Ë9 ò¯¬[nÛ0EÅ¡äG£ $ý.Úýo£ 肉Q4±;Öƒd9R”%:6Z€#‘eJ¢îŒîœ\mNÞ`âÄM(…4Ãý›)ÒæëÀ*ÀâRJF5wì¸Ää%Zè÷ë¬l-“…Mï^6ržr\ë²9à)¢‚,#`/‚|&8XS“©²ß‹× ÃÝxÒ,ΞÈfÛÇmVf™GlPlSZ!ã¤ú}î³GY1=ÎÌ ~ÉòþHaC(ÄPî˜b‘’+ã®·B÷„jw9Útq&Qê\dîlœ^|!CÎ+õ^DNµæÒeæé‘ƒ’G1)‘†x¾Át_å½’Ò[Hýùÿ%«=Z@qAý;Æ…Œ°YYgxP— /©eÏÔàçuŽ>G»pŒ›(å6{Îi?ÐÜÉ‚¾ˆ¿ñ6O³e&«AŠ“ ˜ ?Ç?y\Ž?4BLÏðóŒ÷v|¬¼\š„':$Ç3„¼Š$ˆ•ˆ°‰)BÍ¢-*`Läåçñ$Sð,%õ5Rô– ¾ß}úvûq¡JP¢Hk¯*øz{íµiG])µ4Ð0âȤ;u%¦x­×Æw«å‡ùÌ¿_)Ø5êy[ûñJëi»cïä¢Ru?÷ë×j~°Ñ¥É+áCÄLHC\ã”f(@%¤`?º[Bé‡Móãþϯ”ˆh(FhL§9¡I-“ðþ†ŠZ,?ìR!jÆ:­Ôgjò¶£Þcn˜*> xÒaîÜÿi±Ã«WófÓ¡CÎxgöM‡¸mg03®¤ìðåI²×³oEz‚ÀÂé¿XÀyE‰… ºÔ+-0 !æ!„–ˆhð‚±³¹ÐRK3¼èûÂêžõ¬âE鄪ÏX8Í¥³… ñ2.8”Œ}1ö·-žô¿¼:tm_—°®UU¡ËëËBßï:¯eW¥^Ú1s¿S?Þª±þù C†¦ÿ¦[ÌÀ`£(t¥”7U…åÀTw˲“–Þ—Ásê%GDT€ú+Ò,Rkm°º@Q¼t‰ÍP¯£ZT^_c„ÚºmÚŽ‹¾+?¿þ´_”z¦¡¤b-W­­Ê^¼8)S~ØÖ­m¡,ßêb¾ô?ÍçÕlýüvsµ¬‘ͤõÞ¿ó¸Ù]W‹Æ"©´£ËÍ_`cº&-tq!ÍΘH¹ðùa5Ì +P\ Udq’…wÇäå+9eAü+g×¶Ó6Dg×»vQ‚¶<ôÿ¿¦?зJ•ZUBA‰½—î\Ö^Ç¡H< Eıc¨)öð¬%ê±væ¨8Xx=äV˜m»z¡-màòE‚ù™uf-uº;Éêžz)|•X‚éâˆ(E’«šßÂWñ,õã¸Ù†‚›C°•úqøè "d%K\Þ?†Aas*Öü©Þs>(ê]†^gQûG{’Ѧã4Å ÞÇŒÓxÄw¯A$“UŸoÞF…'Ç»Îóâξtнóf˜2ÂZ† Ÿ²%˜äÇgo¥Qòv,¨SeŒ ãe„fX?]>¢K?ÔùI~¼õ—TZ9!ÅkB3æËÚDªø¸u`LBS.Þ^ØO ýü«€Ô\ã9{Û%(ðÙÏ7 Z¢ï…06w.<ìÚ»«æÛõůÍkÕÞûï?Ÿ·{׀Ƽ"”Ñfa~ºŽ!GXSˆÎÏŽ"H4á;5@ï‹3lá,Û |Œ]‚žT€Þ%-Rí+OÃKÜ+ z×RV˜äM¾#鸱×ÕÎuû.ÓŸD¿nàæzñðâžÚ®!kK¢Žß¹@몶Øá#}ëâÇíçe¸“2œHyÚ’‰E%À1™ˆ‘ÁŸ.uìÅ\´G±OTö_Ô°Œpðð;¨S‡ª€ç¤ÙÝ ãÙ0GIÎvé Êxåì"€uJ•âCn)SÉд?ðó-u;ü;v$ÚøtnþɘÝA_â:½Eµ²qpµ†û½»Yèí!}‰]4å„â ¹Ù§ROJ8^!ÄÈž-œ,Vïžl„™.ØJ`S^sIw±J¸ƒ>{jRLHðßcîƒÏ~À}JG×Ü`¬ÒVužÐ‹"˜ o‚­­i*»¬µ5Êš²ÅÞ…ÃÛ©¢Š€¶3é„:Ôïb T·^š–<í_Ú«U}¿Û}½\‚¯­ý³iïÖÍß§×[³X¯Œ•"¦ÀÆj%؇ø³q[ÏWgå±(£ÅuWþ•uÎ3 O¥fŽxÄ#º›÷-ô<û'e×¶Ü4 D%Yv.miKa€áÞxâÿ?ƒ~¡0C …¶‰mYBgw¥(¶“Â4™¤±]V{9{ÎŒ¿S¤sSY¸¥œj¡x¤sñV8°òR ? þ÷NÑBÂER³,ÓÏ:”ÿç”u•%]Jñ)Ù\ -æèGÆ,c n"ÜXÑ;P˜,qzŽLv?JA™TÚ0 ÷ÂçÍë°+—Œd}8΂µ A‹Ãœw=°[Þ™¸7¡EÖÀ䊳·ßÍãxp<õ• fidÆá2L]Ì”„fGˆ# Ū•æH4tθÜp¡÷x|ÅNÏx ,„„Èè¬$µC‚ ÎÈkÏhKódƒÄlÖmB³ e5ıÁyë]‹ç>þ¢?Š^×0}.HyAM©æ…9ÕÓ¨•wgr©üçð;èóþ*f1”æ“z’̺ ¦å-Ê#¥€ŠFGEÐ8eü·’Õëò‰^ð¹oÎy´Y0q¸fà,Y(&Î÷âÏ@3¸KÌó†uÁäx°œ2ù¨Y0÷ÿâõ3­9Ê-3`=»Ë8lK3uXg´Tss1]Þy÷ùP¨{,æ»wKj²|£ÃÝäèâÕÃUŸÿmôñR¿ðߨBCêõ4i¨Ôt ²™K¤}BeC`e®£O ÷Žà¯"XAJDv8Í¢3y”È:Zª¤?öþò=¸úâ;}ÏÍËêÃë‹ÆÂmð€ÂÉI{¨à‰}‡ûꬹZ[TjIyÞ³¿·w›žjCï>}ÙÜm»xgGÄ8z°\1$Î>ˆ\Jê°j†$ŸÏõ‚ŠÁ÷#wì ì™qÒ‡¸÷—«US±átnÍè—jãQRŸºOMZÕå‰}¶PèPjƒK]ÿŸ<ül»¸õ?¾:‚§’©¤.0×pé.CŒn·áÞá.žO.ö¡iÜ„ˆ\°D´&ß?ó7ˆÜquù| >ßkšö¥Öæ¤RïÖúí©~ÑO¿´5á~s±t.^B’šb@b` 25?¦Â›¼F$3š+ûš!4X4Aèˆk)-%‚#§®[õµ57ý°qèA8«›8¶¨:(·ªìmŒ×ê~±Ñ96 î<æ{ˆáP|q¡}ôB¬é®*á/ %ÎÓ$”K R¸W¹f@q-s ¼„Cèå`^i>_“&>Kê^U}çÐÃëQð®  Û,lEÒ¸b¡iLÙ}ôB‹„ãÉè›?íéÚ¶Nm»é¢É`Y›ûί–÷mO¨…pÒ4ßï6/ÏVÛöÍóõÅÒ’l*Ð5•ÚÑ8fF€P°U{æb‡$a$G4FNT/€a­“a7z¯ êwe–ý|g¿u¨¤Þ®Õ_;—Ý8Š( ×éK¦={F–MÀJX`Á"²b1¬Ø@²È&+?k ÀñH&Al N0JìH$($ÈÄ»çÒ—*êœSU]íé“M63î鮚©sùÿïÔ4îÊðSYSd `ønÂÕ¶+y>ß…¹¾þÖ­×Ö/÷Û|G{Ïwž>ÿö»S+r«$lÇ¿ŠFü³ÄC¾àZo~zóÒ«®ÜþÅW_ ‡âE·G(lÒ¯ÔŒƒmaCD0ß ó˜ çZÞd»éׇŽUTÅãî#)ßbºqãÝ›ï½#\™P¸¶>ãtë§Ç¿<ý]£EÑàˆË¯­l~¶á²ûÛ»[SéØ-ÐßÁª=áq¾Á—‘K—,“š þ£ëë÷¶w­!ƒƒB¼Þæ'ïßþàj·³Àìû‡{÷¶÷¶>1iMÊ(‰9ÂÓ´+C!9U<«f€{Q¾ÛÀYZÈŒcõ!^1¾Ö¬v\ðÙt~Ùçw?v¦³šÎJ?ç“ѯÏ^þ°ó›}õu‹q(×þ#mŒçü‡¿À\‹bJCƒta£Ú»/Ö®4à¢Î”7Z{šBs=ÄsFÊׯM"– ©¶¶¼¨¿ùþóJØ_hh˜óPß^ͬ ·ñb;¾¸Üyò¢ÏJ-ý î|xõâJìøå7÷¹¯B/0#‘ùÄ™ÓR›£W3Ìþ¢^vm4-L”ÓøQåÏn0-ІœsØt†Ô­Æºñ¼PbW¾õ^ÕyæŒ^åݬ3øžr:Ÿ~&MÛYm¢9v[g^úÿ(1=4MZÙºûÉVªj¹ÚíþÞ°µ˜jQµ4¾ ø¸‰ä8„"ÆT' 7!Ǯ¶TÉû'kKI+Ž ° ÊPŠÛŠâ8 ҌΠ2aÀl¶ÂR;ºÐÿ:*__ZˆÂHo…Ä ä2â0-“¨fêÙÁpÿpØBioÉ"oÂÃ1›ïS'£Iñj(q Ð{.°?>À!œFÙ ì³¥Úk@˜wžòY®´“+kKýãôç?ŒN,)L-YÃýÄRb@ÎÎ@¼Ý‹{çÛý§«þ¤ŸfËIÒi©K½–Q׺b,“Ý¿'$"åàÕLwçr&eb‘ÒŽwåÓ0°ó—°ŒÜH غäßm/} ÝñC•àóýöˆàê±:Cˆ)ÆK@¬¶E!Å`"ú2àYKL m¯²”UFÈ£¡¨ˆ_²~&`Æ#mâdh?UfqaQâBÒT”€(+Ro ½ÊÓÁé†â(Sc!³I7,Orè´ -Ä›Iô"Í9œaŽE 5.aÉÕP9µÐE+h²X0.Èe'ayñÜËшŽ{æƒ"V“š <û­¡äú0CªPÔ¢DbiT¹Ç ?dT¶„l¸‹Mdá m· Œñ?EÄQœB¬÷/ˆXÆ­x¬wNÂp‚\S&¦Øa¬ßM“­pBÓÑp¼?¯vÚé(× jšJE*Ë ½H>1˜ù…Þ¿ÇÙùVÆ2ÒyÌsbAÚY7ƳgWžµK\,•¦;B !üJ[M¯;ì)DÔ}É3W,…Ú™fí ^SÛP_ç?(»–)Ž0\î™™ÝUó_à MTDE’àV$Q>.ñ ˆñC x‘(DP/¹"!ñà! xñäA¼xR=ˆQÄMÖeljî:Û;Û*믿ª¦ºÇ™¸Ã2—éiººÿúß#ð¢ëHâsÒ¥óGÑ’\Ûc٢ϯœùqhóÚB|új½zÿíıã~¿zó¶¥t çÐÀÞõ¹‹ÒÁ¿\8=´gÈ?øÙËפi´ƒã„is›Æ¤–"1Û?ž) sÀ}Òæøv›Š ý€á:°î½Lk&ÑÛÆÿ¨¬ýô{{ï1/FÇü|nøïø€/[0ïô±ýî¿¿þqýîýa½shdÊzÃpsbý0†;ôÛ±qÕ/Gvm\]Ú~ÔŽz¿§âÙ•SGïÚ’[ÐM_xòœh ÕàE[÷2ëeÈ6¤·üvNÞ¶œÂ¤Q"·º˜žPà… 5Ï1íLaO~¿³÷u~9Ö8yé¯[÷†±ƒ'²„ñPBØ0ÜuË÷/)>&–<Ψ_‚Rã=¡Å»É¥Û¦°ÃãËë›»²Í‰!åÚù$ DÁ^·ª£Ã—tÖV!Éà#O ”Œ^îm÷VýZòéÀOßmÙ¿mÝÁó×FÆê84ƒµT7*×Mô7g4X)‰5¦ƒ•¾C;7þvÓŸ·¿Ÿg/-éè›èñ¿˜¨ôKï/ÂJè®›JèjÁÊùƒ«—åsËT´¤œˆâÿš‰î6±ÉúDR¢ñfÖh&Æ2™B h†Àh«#³4¨•7,H$¿ó´‘@ž&40…#nÀœ-çÂ<¢`œB<êP™Ô‘ZŽæ‹3IÖJf*a ð€¹8_5i†£µ–‹PÖWBR­åP%è%•Ç¿šˆÞÅòëÅÁú…µ·­lljFU+æVûKüá?“º§Ëу ƒ+ ÈÁŠe94'ms„ÑèCõEî¼d„–Ýn‡_f€«0fy'%uõ¨4£Th9ÀßSò.Q9¨º<¦¦…¹ªöIÇ÷r!Ï*…É ¸j<”%©m¼ª×]§zAù:•ÎÔRÐáQFê‘LÒé/ç„óúø«Vòº%T%3µyËXÆÉš/Hêъ>V*’CŽ­Ð“zθ0Â.*¹×–EHj0ù©aúšÐŠT#ìFâ°•¨§¤žØ†JÎi–fP6ÄiªG¤4=ÖÕMw-m»œè;‘ÇF-\Dý^°Ú'•Êø›ÖâϪõfZæ|:µ lÒ˜§œ„²ø©r2šQ_©7â$Ÿ˜®BÂL@.çLsj}d„ÌÊ3=?ñ°-yQœÛH“w9Iœbä°ºjŠsEõ#ï ìú}ã(¢ð¼™ÝÛ»‹mL¬(  )R„„DŸ$ZÚÑÐÓ Hù'€Ê”@C @QBásœp¶owæ û~ÌþÊ­\áÊöîí̾ùÞ{ßû¾l0…¶ÎÛŒkÔãå¶,¸˜Þ±.»{¶yîǽ[õÏuAs¶¹ñÅÍO>ùêÛﵦÊSé1+Çö¨«=±êBnˆG4ÉqNŒròj*ª"¬83«Ô tY=«Hÿ  w(Ã=znò–j$Fµª#åÝh]®Îþ¼|qç›Ïo¾ùþÇýóö †áíb!YZO-‘†ˆ&vÚFþ0¨q˜Ë^üôú;$h‰Ë4Ö¾ñÚ+Ô.Ÿ?ï>¨ƒ:eèT6‹ÛL™Pú dQJ¬ê»5¥ZlÛ̱Se ÓÒ'?kÉð14p’`!)¢v~›Xýø™Å¿/]ØÞûìÆÞ×ßݸõ%ɲÖa-FU)ç¸+M°ÄkÒ\ŸA§#q.Îa¢¼¼1šÛ–b, : ¼#(ÚN4Et³ÂÚ&Y>U n1åðen­Í:™+ë=ØF|³“±”‘8NÙÁÌúF!ѧ]A¾ä椸~íê‡×®nM âè™»"œ7 Ù"¸öÒ1š¡ ¹dûö½·_ÿèÝ·v··4øÙ†f0¶ÁÇ­7l­"›‘;ö:Z*Ľhc2Xõڲس)kÝâôáIÈéŠ ÊãiLèMÇ$èéIÊ5UóÕd§†Ò/¸¢øë®¯x8¬ ˆãý­µ¯Ã³#éS°r£7gé•mŸÓÇBÖRãÖü«3™÷pê¤Á ab½¬Kês²©°­bíâ«çg—¶·~øãþIœK¬f9오â®Zs„7îÞüh·FЂVG·þr÷`œqÂSèñHeB’1°6ç²9N,‹‘WùýÇÇç7`c<-+¨Œ/jXÍĺß·÷ÿ˜ͬ$Æ–ê¹ -*Ð*Šñ•‹[®ÈrŒWv§?ßYPL¤’ ›°<•m³ÈŒ ¶#²¢—¬ #‚Xéœ8ÂðÛ½Åþ‰w‚ò;C\–“óS«ÄLœóIžyœY–0?1›#xé¹â\æ@ÿ$º8›Úqž9.¢:Ï‚Øèˆ º©ÁÚšÃ6°x74 ÷˜jNÞ›:yÔ:]à{£oäÙHÈb:)ÓÓD/½Aì]Jüè¼Æñ5 ÍPFÖŠ1lkŠ˜+áVYËT“å‘WA´j@ £ÕD;BÀ2= Äeå!ªŒDNº o®A~¨žãO~gž/죓’ãW –õ–©s¶ã*ø 3“xD¸Œ&;bÓ$OøF™#žLç’yx¸ŒXýú÷<+è`/¬N®8nö€ÅsÆBUÿ{âd—‹ìËß:1¢™ ÚtÝ©öÇa±#®ƒˆºº»L™ncRíºhEÓðßÿPv-¯nTaü¡¥"VíNq¡ wº¡w] ®Ä…Wö(þ®éN°¨›J•*XµBMÒÛÞLfæœÏó=Î#ÉXì]…$—É$3ç|ßïû=ªÈ@ÅÓ|ïˤú5~¬0îÓxIº¨”4Áÿ÷ñ;§Ëªýâ·?~yéÊtoòæk/O÷wÓóçÞ;ûÙ߈|29¬;kPAˆ$ жñ²»s–™Lºè4QhËGǵ:j3 ûÃX% ÜÓÁÇm˜œŒaͦÿ†*ˆ.*W@ÌôæÕ›”<¦Öÿ“ãÖ胳¯¿õþ¹×½É– g$¹YŽ"µbä¯)­ðñ'ïž~þÔ“Å2†"¶Ò¼pê‰ò8¿»úáùOC¯yåê5º‚,_ëZ¤¦(‚ÈuOǦh•ŠuΡŸ2ç5ë‰)à£,ÑI»?q29 p¢²ä]§˜Cµ•žxO:Á7^yîÂ×ßþÕe¼Ñ!™SEŒ6‘öÛ*mÏT éc°Ü§À¥¬'nwvà)GXœ²hö@_$M0¹õ4¶Šˆ¡4¾ˆ„Ô¹e$áa(1z©Jsh1S,MŽ![š¦o¹ù4H¶Y© ñ\’˜Z§õè´ôœyñäÛ¯>[¨¯{èB©Ýñ‰K?aU.„u!V1\;ýÌS}tæ¥ân ;N«H1ÞðÓ¯–:ZL€M±­È÷¼)äEO`Âl–#es¡Â·ð?•!ú?¬…¦ ¥XoüŸo?˜¼;E4(íPYBwÎ9kâ<%©ê™is÷(º­¹Ùk'ža úæé—ÝË`ÇQí®ùÛßÏ6Z[âÚA>^È3E Ö¸=MOñš8Ðßß86=>Eéñ‡&?üñÏ®­9ò:ýp [Òû‰·ŽDtúX4þ÷[͉É^ïÔå_þºy§x;ëqc'ˆW Hï ÞTÈí 7¬»ÕºffÞoûÐ* ÔùÊΗþ羚-‹]ϼJbí áYמÈOÝ}d/ºõplzd~Û͖ݲ'ü5”¦èˆ+2E­ë‘5Gï¿ïúâ°Á!ñ )lÇè>4ÁTømцú¯fî{‘¡‹‡ÌÀHád¡>Ôp ¬\(‘Ý£Gª&£ÜÁªGgª~¾ÑÌ݃5 7  (Ô ©ÉXJôy„ä-D±‚´1ÎM'£a ¶"«0o³fÑ ;èãx‰!¯vÈ©xæ+Õ¶Pt/ Ò‰ª^.?ÚZØ…pVen ÙŠ14÷„JèâäÉ!a¼¾„GÐ#3ìHP·}è§:\%Ãvó@ß8@»ÅJ©&”ßžiâf¶ê¯ªUkœZÕzŒšÒð9êð2P´ïGÆM”^RgÎJwâRiLœ”òdØðWs¤æëɬÔù8¼µ´õ9qƒMªt]ÛV­Ø}Çõ¾oÿ¯<άl…³ u=jŒÑ³„MĘ70öÃ3œ¨>Ūé”kövFm‹ÕrlF—®Í®ÏîŒGf~»],û6\ÝxlkS3;…{hWTa NH8¶Y ™®åŠÒpÝÉ]T´BaåìãZ”Ë>Æ5ëkHl@¢æ*õ¯Œ]9kTQ¾ÛdfMˆ¢AEjÀ.ˆ–Š`+ØÚjm/V‚þK ±ÐJ-ÄÂÆB+ w0MBÔ83¾wïYî}of²u3¼YßrßwÎùC¶¬‰p¿Jcî@Ž{c5¢ME±—™ÐŸ?s²Îë8{ñ tdƒ¿u÷Áûg÷«Îñž©c³ß¼ûÀõG¬Ô¬ÜÛ2æ~’L¦1ýRf*K"Ö1[îÖŽè*å«Ä¨\þœ¤óK '}NŸ“xèç&È>Ý-Ž#™ú\ïË$æt7y»–2±ý˜O¿¦#ÅóWoÏ^ºôôîn];zè@ÞtúÄaª£Å p£LK/µ ›‡Õ 6,Éðó2†Ù#A¦KËùª_¾µÓ5 ¤R_ 0$@¨í,Š;Ô;Qßd„Òü ISTe³…¦œx|£ÏúPј…Õž&{žgJ"ôyã@•b6—Hç\¿çɆ9Ák9· [ ®ãˆ²!d_߸]Ö‡Wb0LoÖôW×ÿRⱬg\³9Ëfüs6LŒnŸ¿r3•OêHrÝM¥®H±D‹H! ^îÝ>6=Ù*ÀEìšh]l–e|BÒ*a ot eLyÂú Ú‰ßW¶Ê÷ ½ï ´Ñ0ØÀU˜¾£ñDµ({Æóä+MEþ0bg7·Üû²´²sk{¼©#›ïÓHò‹Qœ E7øM\(#Й™×à1ö #ݳ¥´êÓÂßK=xn„z´!Kë»…mŽ´öoß:³£Ý)ìÏßöc„Òñ·x€Å ×Á„¾¿ØÁBâiÔFùIЍ\üÈošwêür/îÑ}“cñ¿Œ¶M׬­¥ýܯâÓR7¢/KðkPƒ¡‘DjrSŸzS»ûáj›y’jŒXìx4(H«Fž 4ÍŒ E¬"PLQ̽dK_l·¶ÆŽ&›aêØ0z8$iîLk.² †±¢Âà‚e¤(“Λ>0U”J`уí(ÞN Ï0Yð#|Òj{ ²‹¡ð\‡çà …¹i`WÆäx¼¡©½£þêí=åU]¶ûR^.±›×fFJc:7–üX½ø³÷³ 3£ð»v—›ËªÎ‚ÇË—Ì3}´Ê#¾^¼ïHUÝ%)¹IaÀ¨ñ/È^”mL–õ÷àœÛ;Ì–+efËXŒA!ìNÈœ%%NêE\V×½ûÅ¥?Wî6y†=/ô¢–dqà‹›:[_˜µà~ã¬y»µ·¿ñ«¹áZÙ©<ý…ÙÆ‚ÌTCôtÏÝÔî3ÁzâöÎCfËÎÍë7.RKHÉÄ•Ûàz5$/äÔ“òŒ‰K“¢SbÄÙfí»ÔÒùSÍŸ=íR‚=úËÕéqá!øj´Ý}ð]ùïK“fä.HX– ¿M÷úí•çnþpÜ‚ƒÁ¯!F*‘W *xÔŒ’Þ$ã+; iõKÑ­wíÊK…(»Ux?Ö80ýª þçië_,_y•ä~¢á¯wÍ=áU^ï¥4ö™ˆàñãûY?‚ì¨m„º`µÚvðþ>Ê`•Òf¡Ç’b#ZÉ´B°ñ°Ô†äì0Ë\ízIJ„ÜÜHd‡E`†ª±!2E‰J‘C‚’(7ÔŸ#E¿ûØÕóĪ™¬¢m«ù08Ø`p% .Õä €Ñð@?­¿Z€¾Z(‡2}azÐ$•/€ø¶ÁQ7Ϫ}ÉÓ4ÿõw<RûP>O1J_F0[÷˹¡å:ŒÇYȮ†¦PMM¡€[8kåE,êr)уiè~4J‘~0œp²0K6ät«hau‚€'GÝw@u@Ó ©P`æÂÙgd/vO"±³… ^dïhTŒ•rDŽ&ƒzF%)qIT¬&’û>(›‚4ñ¦KÎ~ˆìaqq‘ùA‘[Aj|b̘‰E8¼’…G ·ÚÅ„‡º–âJ~J ³9©)”\åÈóØàÎ:làŠº” ª UÝ¢bXtŽœKµ„.اW †x…ÓELRA¹Ë®Q¶ßÅ‚8¤Û1âv~4- ('¥¾U4tåh1a@IòHŒ'ÇØ-Ô®~HŽå¨(’èd €r àeüssJ…Ï(áFÉ#–(\Ǩ…Ã(i†&A¨`x†å\.„y/xbh*ÑÐfÛ•Õ_Š` ¤ƒ¡ iˆ›´¢&V°{1xBó ^%»ËýdÆÊÀ$öòN¤”6>bö€"X$U¦Q¡ Lhšâ=͸à’çÆøûWþã¥Áÿ ÀصÆÄQEá;…Ý…e¡ÈÊ‚a"µÁSV„´¤¶]"¶…¤R4mH@š*ÄUcƒ[›j¶ÄDM°©ñ•%QÓ˜´,Ñÿ4¦M|EÒ"¯…Ù;ÞsîÌìì¬nîÝÙ;»³wîÌ~çžïûŽl<oHl1z¬~(›jù.˸Ï\<³°´üýµÙ®ßøîúìÔ•¯‰`qÇ'¾üÜ™‹oØ ¡©ge­»­¹¹ghvî&JbÞÖ(J„šŠf.½icØ3 ÎÚ³GBï|på¹3ïé4eÖ”®4ﯟ¼=j X÷š|}0=ÕµýÁ’î¶ÝÖí—ϾÔûòØÔ§ß˜ô÷Mu¯õÛ¾·ƒö™,hå^:¨F£([‚ÿñ×%j´ DQ¢ž³ÕFŽuž:ޙ؇ÖBÁµå½¯ŽÃ–œ-Áö‘7Fæ3ϵàÎJÛ»5e>Ì ü̯”‰Wúº÷5ÆñyRÝ¡]µ¬ =5|Ž… À¡Ôërkb¬›õ•#=ûøóíÛŠXdEiÄëNn|¨Ì쳿¡ª¿½‰atþ’=éjm`žœí·lwuí ÔÜ_Ð:ø›r@´”°rž¨W™Ò¸Wg&Šãt ƒñËßöܽÃþx´¶üêOs\ƒQ]šÿùØIðÕ±<ªK X;ÞdØýÅ ÓÝ þ:Zvœ~z¿-_áMqí­¯fíXhWhèüâÊ:Öo¡U>îK,9ˆ7.Xmj¨Šmÿñ—›¸À¬VúrÍþl^M<ßÁºÙÁô³‡[·Âì Ö ?Cüõûò•¥ l7¸¹úKr>d¸ß÷3+ŠsY;º·þý/¯ž¾ôºß HEQV]y‘yœ/t>ÞÓÆ‚¬ôö¦üÌ´¡ñi.ã†Ê"á4U»1)[zŠòž[0>’Dâ%ó‰0ô^H5‰Kþ6ë›M*•n².nÇâèYYºY‘.ï°‘+åFÜôDâµ¢jb¡ëÿ³TBZ¡(mîIeUY¾Ê^W%V4:NzÏ5G¯åsgeýŸåõ¢ wTb¨[3Sç—•(–4âD?Â唈ÄTÜ–" æô ·¦pw«åér\!½ÉXVƒCà³–×’ÀØYv9¸}祰zãöÝ<¯c1•%¬‚ cA”Œ ̽Å-©®Òìü`—ó\j¶7Ùë‚5æò϶Lõ«_ç›o”4·#?ÝykaÅ›,;ìà€é~gUY‰¬ˆn Œ˜Y‚ñ‘T\ÖÐÁ{"/³@Z‘Q±¨[!Òw×çWIfJ4'-éïEÑ„¹?Ã$דç‘t·ükiíÖBD_¯'9CÔ€˜µ¨>‘Ïm1ÑÔP4Ì?‰QܰU°¨ß4£v=Ï¢;Œl&E!•Íø0Q$D)Ó U «<Û+!Çý z’D32Gkxc!EOˆ„˜é@8Qy1N~(úˆBi\˜ QLn#zõÔ:ðŸHQ¬jdÁá"*'ô²¢¨ r·ŠõThX‘n+Êïÿ¢Ã»@)¨9ÙÌrʘ­€™À­q0RõufÌóÀz¤.M@®(g´ê‚UUã^ô¨ ¹ç‘™fŸB‡(EEÍ!ÉŠ Püeç¡öUÝP‚IdÓT–Å$w’Ã!­cÖ¨·1­ÕµozÉa¸0ù ”E@àó|N”I8nh"ÀýF‚JºÊQAw ?JˆqQ£5jr)5uB§’ FÄ‚ç%SºÒ\ œý¿¢‰1e4^ésÈq[í [ŽÝÿ€±ë âã;³'&‚V1h Á´!V0üS4m¥*i^l5XlS 4PЄP­>*\)–¾´ú O –¼U|ˆ DBh%1&žMLš3çííìtçû¾™ÛËÅ yÉq;»Ãìïûæ÷‡Gbµ|Sb[j{.¬öŠåEÛãRgW¡uߎ­ÉŽ–îë<¾y9Ù~LÁЈ”"“'ŽÚ¨=¸]÷zöØ¿píüÏŽÔa–Etœë×VÞ¼xv]l롆“-_9¨4l>Œ³}cÚÍH¶5Û¨ÝþÜ$knÛP}õ—ö\º(PÞêþ¬Succ¨}äÕÄݾÁ8¾0@ÿÔ‘½ÒWð¾õ8³x=¼iիʯœŒ£v{|³û“?Ƽš¦Ý ø¨b™ÚÍø²¾6œføåÿ„ÀóÒ?Òn‚˜$=Û™®œ–üIÊI°˜DµX§Ù`Ù˜=eá>ŸÊô§&Â5£fP³Ã  æÔæéóýK”ò1Ðß‘…KPÄ¿t„É<<{gpìîàø­þ×½ÃCciá)f³/‚áWï¼ÈñÆyÕ’²L¦³¹©w>Ú¾ çËâÒyˆå†ü`A¢²¬´|ɂڋK汌猦So¦Ã žòüi‘ÍŠð²9O¡X¬Ê“æ’;Å—·e×Q&•‚ENOä%†,lùÂB!뉑ÿ¼ÞÔ´/x‚ñtNô¾}™Î…sÉIçQ*Õ€]w]p ”¤1%ýSÄ ‹ù· (\ê7¬& #ïNñ¢«$›\Á<(Bàe¤”½…0Î嘷¢Þ}Â0æ¡`_`.2º e¨P°¢´yHÀ®B¬®Ùm’šË¦îºÝ¦ÍÖd¯Í\<ÿùÿ9{vfCÉ0„åìì¹ ™9ßû>~ý óA¤×ÇÛKµãà±=ß÷ÍKвôŽÝ­ÏžþÐ0‘gÛ·,¾QÊÈÈÄýO½Ú¼}_ãÆäÒv“Cî½k aîy̆ö “ \ÿz²7¼æå޶ý‡¥ÿ•ŽwÚ·Rž ½‘+ŽÈðX<™ö÷§ÇiX± ÃÇ»ÞÐ­Ž¦M»×¼ÒY¿®µçÛŸtìÞÚ²––L48–GvÊk‡,¿¯÷øûÂùð­úºÄÑó]¯›¯¨[XÊú?G&T{Û{G_Ú¿vÇÁ¦;õëW7> æ0™L÷ DuL/m˜h\Í‹ÏñÔT¥ïû=6™ºüDÓƒÛžy²¼ül¾­ëhs{×ɾí^ÝpxÏVF––¥ýg‡&SSŸ|uJefy.Ýöÿ1ìÿá¢ýìø«7>Þ°Üq%½Ü4q[=óüëê*9üB:㉠õÁ;7ë¦Âgþzvo÷뇾Ð'йíiH’™ß]¯U{ž ¶tiÙÛýã/ »/ݲ~•Œ0rŸoÏ ;æp‘HÔò?ÑñÄ?é+þåEÇâ¬tf× ³A¾²­î]›UûL®¸áÍ#ßþìÑí¾9ý›ŽÝŸo~3hõqîÇÆ“±ñ„gÐ «óŸÉæÃƒ£ Í À4Ñc+ëï>7ñ¯úêDdõ®·øü±öC‰K}°Úæ¯ÑQýzú—2¢1<ø÷l¾hh*Qº—T,SX‰ºqòóÀÐ ïëøôë™\A5îÙ´œ÷òzù!Üãž›Hz:_ÿÈJì_*@)Ô^ý¹^P`ta&t%ÉŒõªîåòbeå ©Z‹©‡aý¸|>å­…UÊVË–¹._¤WGÏwô³j£>ç0ª;þ“‘ ¡ørU¶¥yÎ.gsÓÙb<3Mf@±4dÇ2TêX°²Œ”Úy©0 át22P††Äh°¾Yjê0ÉqbqÓ,åmûb¦8’,Mæ—ƒÀm V ÆrÝ†ä‘ Ì­óélɲ¡ÀÕ0n î\’!€` 8[ÙÍ!vÏíuËn«5>˜Ê]È\ø/uµtfìJäbîüT!“s ˜m#“º¬%dP‹‚Æ HPYN]M`É­µ2;†Èòd`”ÜÛbª6' —€÷>Wþ2˜g³ü5+6U˜.Øñé9MÙ@D~R0fd93D°rðQ£Ì^'Щ+Ý`±‹£4F/*t4w(Г‹ñL+Ä ]¦dJ²"8R‚O—M^‚¢²P,  ÌgH¢rt×bé˜ÅmJÐà2ÿa>£Uƒ)yòûOi&`2¹…5]6y}IP—kÛXä#·æ9¤—_›&ä¢×r‡H‰/FÄ\X×EÖÅu¤MT(Ò Òë7hlM!¾uÕbÔ»Óƒ\Bn10QTq#PxYUµÂÉ1(ÎbÕÔ-rf¤6àeså_F®1‡H9ìLn±6£‚F4ƒ—}@±¯3‹¤’ Œ¢§¨v…¡<Ø_¸žâ€Yx¯1Ï*Ù;Ìp| WÚûQÕ9¸îc>•õÓÿàíêcª*Ãø=ï{R"Ó»%ëªA5 †&«¡iÆîŒ6V±aÊÖº¹ŒiÅÚu«¹;`*›b1ÒÂZK°²}êØò2°Y-»K¨[¹ÈÒ07S äç£÷yÞ÷œóÞ{.ð_ç/xÏåÜ—÷|ýžßó{~:ó3TqjØTþ2›‘%ÚX×Òý)\¹6;p[ÊÌÍÌx§aû…ËWú¾íg |f+֜ќ…·³½×G‚Tž®(Ê1d]uáÒÐ4tûê–ɨ½ü¥z¶'­ïÁ2e÷6gW¨ì‘úm^š¹þ÷aÜ4#­‰‡úª¼ ß‘¶WåñÌÌ ¶®ì{³!°!ug¤ÿçANñV7´„$¶þñâ"t¯ç6Ä~µ'HϸµvF@Y®`VŠR/ßΞ§‡>ï9t´úÛQõáÂ%Е ¥;¡Ò• qT`>›Fk牶®žoï’%1ÁÍu"' (ÁMµáͲa|Íkïõ†s×±/!¾° =æÍ“ÑØ¯Ÿ5çØ¢©Péªçv¾¥ðDGâ¶æÅ†/£?ŠMhâAš„ÎóÖny¨àÞî;ä]Ví8{~Ua^÷þΞMxÿÐr¡ I©èa=U—Džá²RÒ¶ŠàÝWäJ¨½ÿép o ÀîËýÛ78»*J–ïiízpéâ;²\½Í©ÁPÝAËTwªÿl羑8yô濱‹¡nÊÃE ‰œ™TÙ)Ê<+ÙøAwãác Ú~ºwËŠû µo²C}ÒX-ó $ÿ®‹²üÎ`{Ïw±ß~çd|¸¥cÄÖ—-mÿâïÚµGNW7fó¬­,¯,+–cÄô<ùJsÍS¥[*JÜ{íÝ®¯Ïü‚<$vnh}ø ÑÒUË¿3péê0[†°×æÊ8{á|?ÚL)ë^~}ù²Üv>ïìêè69n¢ݯ Infå劖Ü-£öM{Úàt ‡´·j½K¢ßßôa·( –¶{£[›°ñðƲg[íŒÏqrGkç}ÿË–T‹)@!)±»WZC¦6KMzÚ'qE^L?:Oîo:“Ð?e¨ާüŒ·'ÚÔNb3ž‰ÆkŒOxšòßiÿ_!r°¿Ë'õW%ˆÿÀ‡1ö瑱 vãk µ£Y,Åôá.U®=«HJø,»á¡pšr£8>s3ç&Ò˜‚í üa_c†3u‡ ˆ  ”Bs(‹7³Æô>úf°×˵±‰‹kù9l:ófk³@XhÜPfi°RsÓÕEþŒs×o‚Y šüAïR¢^Ž_¹1΀Žf&ME#Âq¡$꘩™í¿u±?íÌÐè൱4°LdÈÜà¾+ÈÎ*h+ÆÖKu ›¡ŠúaP‰ŒÇ!f ‰¨0+he…ÔJü‹ ‚M.&q]yÑ¡¼#¬ä;'¸pÅudóqûX猫>nŸÏæŒt`ˆÒÐÜœC¿ ôbaŸ4ÀÍ^AøhÚ|8)º— ånƒÎKÍMtÕ'¶í6±#e»`µõ¨É1_6]BÖä*¬ØŒ/ûY—EüÜv {0ÕyË$4}À.ppCŸ„p‚] “&?DTã¶"Ä7 ÍF ZsÎ-ƒÅ h˃˜ ~ý &›¢2ÄZ”j†n`žÝqP®€­‹n†ˆæ@®¥5Ntz UÓ5åø¬z|ÂÔ˜'XxÀÀmy 2y_ôå©6‚:·,¡¿‘q@@dJuve¡ÔJI]Tèx2Û±Ö]· m}·•²Æîºà1ÛWbêöüÏÿ€µ«"£3³{gbüI!1ŠÑ‹Å…‹š *Jü‹ H ÁÂ`!–6 VV6¶ÚXX,rb¡ &!&$†`<‚‚QÁˆ‚P#ÙÛÛq¾ï›Ù›ÛÝÓ)ŽÉ%·³;;ûæÍûÞsÿ‰ÚC—q}(MX ÿ®ïáH_a(ŸÝ|öxw>›¡è¥ÈëâÙS#“3t_¨{"ÓÒܽ{{G[kg[kâçk\èáá=vSahÂ8¸±þÁñÛ×lÝ|G%|Á¦±û¨E-'l€~·0ˆ–µÁðTU;ú—òGöEhò+çÏ=gÄþ&ŸÛÊìè›@]žàõÃç/wúŸ^½uOëãÑì+1eX>€Ã¦{WîÐζ ½ÇÔµatìÁŸ¸¢`¡ë x,)güJ‘”7,ß|à´(g¼02}±·§rÚw¶M¼ÅÜÏ;xæNc¨±6©\Êg3ĉFH÷âÛùâÛêØF#d<™äPZe#c¢Iâ]*3eâ{‰êL¸ÐÆfnZ¿:Ï^çl>kþÞÀšÉÍ?yù‹¹\¤q(Õ¾yr[|ÈÜ|N“ÄxqÎè Xs|vDÚ©¨§«Ãþ'ÛZ7\:}”™ˆÇ”‚ø¦|®êõ`hŠ7'fmà®M„dï×ÛÐx›Ày€bÐm™{s™sÇšr[Ö·oiN¨IãU‡ ’©–ˆŽUr£êÚQÅ L½ ·ežLÎÚÀ]á{¤…bÝž¦7êó6pç䇃6 ÌxÛ±X,†4~!ÿ©[ñDN="sFµÂb ¸ÆÌ×TÆífLK³Ì­ƒZ±¶Ö<(»™P"¾¯¥„‰ fì/µµúŒñ¸'ÔíD%Döü >Å=Ì—ÀËDs°À¤ŸVÚÊ^I¶4Ö­[]÷îëÏE„¬Ñ›U8M+S›Ö8 zmo^UŸrÞûåɲCÒadg… ´ðýÓé`5«Ðá\ü^Î[Í­)p¢5{™’yÚ&9\˜p+ƒ°¥°Œe}7Ù*£w£cøøÐ¾XÝíÒEŸ°)«Å ÷©SL8½ëì•át`§…âÆ€E:Ç^jtÆXUäi¹IÀÝ/iÔÐAXîÉõK`Å«ƒ ÕDékGªj¡£A€þƒ’p‡wÒ„ú³]æ²@?ÀˆQÛ0°u«”ÇSá0bòA¤4j œ%O_,­™5—Æè Ùy‡`s O¸cæiT ¡‘""*¯Ð"È,{,á ÈXÖü•DÕRìúòTSÆÁŠŠà63 RÌÐ) Ø«XXô;™j¹Ðòø´ÊýîÏ=É"žøÉŸ**âZ[iü0Ô×cšzptW~J8·.¯m²ôažp@"w›„)3Ÿ¿£³§³ïb4dÊ´ ˆ1wúâðÀØå4pÿö“çPï¹3=쓾ØÜ¸ªEß|–d3øØ èí^Ù¬²(|J)ÛQºîîÏHh”²ˆŽŒ‚¥Ê¢f¾mP­7Rè}{Tò*ÊnL&èLv}MUåVÊêß1î)GGÎß¿}#Æë{ǯçžÏΘ_|tg"ük½ÙÐ9O’™GÀàhD™¬çÝl"ZÛþŸ’eôµ¢9Ù<å¹Öÿ’íIw”Cq<³9«X¥2™ÂC¥3A­AQmÂJ[9ÏXϘ‰R²ŠmòºëEµZ–µI°¯õý´×ápCÖjŽ´µGÎSÎÑbؾ7¡À±€¡™ Ü\Ò4ªú»z:Ù;[»U×õbDÂL´†ŠM¥¥.àìÈÉF§öHͦÓyr«AŨ Q¦ÌWRF¡ œLm¨´ `ž·)}¥îI/Y£óÇ–+Í—ÀçRoï&æ?¬L˜ÔIçdÒ;Aà#U¯\GÏY’';ÜØÔ|tÄñÖ")=j9)¹VÅD^¸¯ ½¡èQdŒé`:ÁN`eO}Ÿ$Q®¯\.@Ø$„ë9ÇŠžëy8¾C€Jt)U²AGæ7ÆbÅÑÖJªä·—Ó4~³%¦¹šmV’†FÊ(øx¨ j¥!µŸªØ•I¥‚ öú䘊QòÐö§ p2 åÈÕ’Ç{nü©sÝ0v5¡uTQøÞ;wÞ¼$¶„hüÆV($$ ¦”˜¶¨…´ A°p¯WÙ(â.[wp¡ \ä´„h$¥&%„”h‚¨¥ ¥ ¡ùyÁù»Î9çΟ;º}?¼÷fÞœùÎw¾ó}2‹ŒQi‚½"-5F“Ï)‚ÖC‹îZ¦Æ­ÿq?_¿&ÆG¼®£"-Ñ'¥/]½8’GíM}ñùW3´xw¶H·+Tu«Š±;T‹ÆOËŸ|0‘ÑùcÃ_ÏþH‹‰ãc Ò‹…e“Y‰ã¹o´S·'÷‹+¿æk,ÜN~‚^»¦wšPÌ1þFµ^ŸLz§ä[KàfÅ8Ê‚6Ÿ ó@W‰à<»¸:þú n–ž{j ÷ÜúÖߘ:_}íå¬ 9j.®ýÎh;½Œ‚¸Ò<®Þâg\<–j¤jpanéY$%uš}¯í?߃¹Qÿù³“ï_+=ûý͵ä¿ÿÃÒzþ©·_øfn™–Ô¯ŒdZ7–Ö“«r£¸¬ùÖ…þoçoƒ¨šóÎSí© Ê/ýöׯ½§6À}s¸ïÆ/w’¿{i¸Ì홂_!¡PžîzY/o¶®çV6?žÁÄÖHûQÁdÀIÝyEÕaºõ*SÑÁ˜52üÅÚ÷ÎèPþ‰÷>ûróÏí8 ’ßxæé®’d©E£KWª•®ƒÍ¯læEö—†^úîçUʼüJ_QE³™)O-É=£X rM`¹™™Ëó¢ÿc+ûó+#([ÃV±ãÅ™Ñê6‘«<ßlˆÖšoó(‰Ay®a°…••t{d1¥¼¦2yW¥«¯$P±ý%m†Þ|¥’½£¥„aU!µ™âœFÛù„ZÛ\’¶ÜÊÊ$&I/cßû ðžxÙGÝ-‰‘cJ© t€è!)CÏ´Õ»;@G3ø|çֿ΃Ýf*wŠPN`"VÌi/9˜¾à©DHäOñ;ÓüŸùž+{Ÿí’ ¨©¾žÎ[[»¨NÈîìdýâÜ%S»Çþ½ý“»:öÃv'|䇫Ûûwžœò\!Çfž€†ˆaJ¾³®v¯.“ÎÃÝ“¦»’rŸa¼Ú}Ú« ù¸~€Ìeç üç(ôþ“m'A|ï,,9eÐ+½5J@Øgå2Ñý„<„Ì U(é`Aižp$)@Iï€Z;tÌZ¨¢GÜñeÚ+yBªT‹]mÏ0hÙQ ¬§`WS·…*•F$1åGì `5‡¹ Ú‡N†J«‚À–‰\褄ã{,…ÇúL žîi íßÏxÊ÷ƒÍ8˜ß+]k°uÃ~ŽŒDµd½kè†Þ%FpOg‘0"öHé.3.±‰8ýöO[¥bÒz„JÕpÓWB^'Ù*D º ÉÄ”“XEç1ÂyUºC`Б%e=ò˜±[###hg€¬ïð¤ó½À‡­<0”9…m‘«6Žéëɚ/}·ÎkuÏ?j¢4)Ò;ŦKVYX( )pƒb­Qÿ$h)Ë7¬D°ÐXÎsZfˆx0twCpT¦+ÂUWbì1€ z›ˆ;¼h€‘Õ™|*ÓÞ§†t×Ã_ôò”PªÒ*e–ÉèóøººÐ¸Š0:?w³I“F·Ö-c«ñ¥`|X0/*iELE$Á>(þTð¡øâRÔ‚ø">‰P´T¾Tm±jµ´jš°%Ýn¤ÍƆFwÙ$»›Ý;ãÌ÷ÍLfïÝí¾$„Ýìܹ?sæ|ç;'ˆ(iô#ž3é1̆<¦m,.[$1Mþx¶PuLÜóÃøû~¬P,íèÙñ4„NMª©ñƲÃCƒcO6ø02Èr‹¯Ü¸¡˜žËÿë2f$èýìÐëG¾ùnûméÞx¡[ŸnÊÒÈ“l Ú¤x:u1;Ÿ¿2ý:2ybjvNÍÚØðîѽ»Õ› ¥UgÏ_Ì)Xïn}µ·ÔŒšÇ¯qHâ‚ÌhçÔÊKâÏlõîž½&µzÀTwçø»"S'M0{Y½öì£S³Y5?ý™¡1ï|¨êÖ‰oO9à®^_>phüë¿®½úÌ#Û=Iýä©ß-UÄc¦˜yUˆx†«¹íšÉ«á¶b$¦G6‰¶Ø=äy;0ç¢Ýøúàå}­èÌÓŕ5õf.çg²Wûûn7ÀýþOŽ~qü×;Ò[Þ{éé ÿóýâJÙ‘ñ Þ;ñ΋Ÿ;qSgòàs÷Ú¾ÕÁþ¾_¦ç´ .eÉÍÄ›ûOO_êÝ–êõš\ÝO›0ßÌ$õ5ñ ÑÅÈ&ÀšñLnñÊÒ¿½"<µ‡ÙÜ‘8þÛŒßkÊ p‚ÞÞ¿7܉y.FÓÊöÜ¿óL&ÛsK÷—ߟiëµÔ~vþŸ ¹¼óß3°óÃWFŽž<׳µû­çŸðß­†D—y@ÃYô¦ƒñH?¼îXj=ŸÉ ^"t¯û;24Mìw=—68mLSÛòˆ&»zŒr„wwÿÄçþ#¸Ù?Wñ÷m[|ž»ÅwC‚[£Eo%Âß#òô|]ë~­–}\”ÐD»W—‘œmWÙÚʈi³¾¸¹`u.Ä]鮄‚³B&¬“¡¨q– îÌSã è7~ØSf$°ˆÝaƸöÒ²ªš7I¦‰aÝøR'+•´ïq­â »#‰Pà—–=3’_.w4½¹ãÜ•b©Fæ—ËÐYh cÉŒ=±Öê˜H©Z[Z©mé$K«Œ²Ç|T…$þ[KRšêJ*\_¯…—®—êëKoº3Õ¡&­¸V-Ug(þ·"cKøªŸ›ÚùÝ[ÛÔðÎ.”W«ëKkAa5¼z½žd<±ÑÏ@PÁƒ±7Ö‰ÕVQíŽ;1Xjëà=ãcMˆ*عHÀÍ\]² ­‡Wmk©YMZ•´R'•PÖ1EI#«–|¨‚@FA%s„+TÀsîbFì<—ÎÓ†s4v§6¬×¤ktÓƒò„Um"[€S{ˆ (Ž”šÌýäQÛ1Ž!Ý!Æ…BC/ž]¨àHÓöŠQK†¿G\#Œ[ ´´¯Ï3•@O®¡’v¹~k¢=ÕÆo‚EZ^V¸½]Éœcº¬º0äºVá aT_ê“AÀmAÐÜû€4Ëä>Yƒêü1A̸¿7.èN÷A`û£÷cÂ¥´®L‚éú@=¬é´³PøqÙÒ^AjÚ´œFF¸Ù5áv‰óÎx­Ïž&†¡ç’„ˆ÷¯Zaå1Tþ/cgE…á®êžI23†D"F4âAñ"¸ zPA=ˆ r1ˆŠ‚FA! Æå âŠ;n¨(êAÁ $˜‚f· &Fb4:1N§Ë~ïUõLo£ÃÒÝ™©î®~õÞ÷þßpÄŲÅVx¬:¸™žò²ˆÝ‰ÞMÕgNT–ý“ùnhy{èìuëÛ5¼nuÀ6[×-œ5=>(ZZRì‰Òtæ±ÉPÑ-|¥ÕÛöß?YeS×+Ͷޮm7í9 ø»ÜuÂGN. »“UØ{ÿ÷Á‰*Iþ ŠÖ]>ð¨öe<±W4S—•kTzáºP™ˆRŒXmA{Ô.cc2)ýíI‚Ã…ÐðªµtÜ(•/x~®ªµ½³tl‘ ygª!Ä:âãºæÌNÓ}V@=¡®iNÙN¿J¿4¨¿ù¤þô§«H±š¢Â¡Ç+Ö¸y˜Ï_7<¯ÉPÆÃAëP‘ùæ^@œ ­GŽuT°w\ ››:}ÿC¸^/Þ|¬:s ê±Ïr}õ…›{×Û°ûò¹Ó¬·k—Š#W?|é"ª¼úüéíéÑ Ó%×ö/ßµ»ñ«*â^MãüéŽìïŒÉcˆ¡wÒ8L”³!PE–ù’áŠw!€c²ñà¥+»¥HK~4÷î¾ògïò#¹T˜ ìû¤âyÈܶëF€»@HbÞÝaÀ_ ­¦ÙQ‹[:sŠõ† fñæÆ÷í™z/+W7µ¶,žJ®u…C5ÍŽIÚ+×hJÒ'\ƒ¿ØrøÚ…km¥š%3§,ÁÏùÚuê6àï$ùï^˜šIBw×ã@™LÈÆ$çÄâÛŽÉ\вpYèð̬¼éÓ‹™û—c¨ïÇËLWgÙØ7¡îEÃý¥ÑîRÅ Ú×w¯ mœs»/iÂυȜ²‚¼«ì¹wplºÅD£ÈüH^<³¦/ë>îêM¶ttÜÀ0a„é\´¤S?éöÓ\.?‚Z[ ‹hü÷ïþ–¶îÉEñTŸhüðs€ƒ©ª uX*¤$8á„t>¾0 ó/?’o;%þˆ°F×›$«Sí:éÕ%p?’}¯:R‘0ûÞ DôᦅâmÝÉþž’áÖb ÔÔÙÓ•è/58† ý£‡Äê?õÐ݆ñ+FX`:Å­ä¼hpN$ÄsCúÄáFíçDSW_2ù§=Ñ—34éÚi’;½4Wb™ê¥ò¦äÈ©3´à25É6˜‚d§™ÌÁ’Ö:qäRJsÛRöÒÛ`胦Aø8Å8¬¬€'…oêPõ7‰å„HZCŽ]¥d¸ò€bš*õc»£Ð@â7…ô°áÐå©2[Œü¡…JÎ*hÒTË ©Iñ’2!²Í&HªÈdðÂÅjë4§q9,Sˆ-fMÙFÓ%§+á ÉàCV\¦ ¤)É-¨Q–ä°‘pa4ÊŒpŠ3€(°n#)XJB–>…j ÿJ‘0¿šÖUÎ ë9ºnÅãЙ*ÐXQ*©6Ð’®J¸lúµ %ÜÞ2­JÈ T…°;˜§Tb×gz*!ŽZõp¾¼‡Þ޵G¼58AxþƒæC.|ãLhrèšü€²« ©"ˆÂ;3»÷Š””…HTZ=AO=ØkÐCÐCOaÏD$>=‰F?˜ h¾„bEš/be"A†yÉ S´ðÔ›?]÷însÎÌîýZV¸¬÷îΜ3»ûÍœï|‡’{Tú d¸ š¬ª­ ‚ô„jñªX¯‡[»wÆCÃc_j/ß~¶®¿z;6®(Ž#Æ=.P{Kç õø‰#•(îÏ‚2ü@ c|jæì•ú€¹º5>êzÐõRŠ]„΃ȃ‰…íÅšŠµ4ßqÄsü1ÄÑm]C‹¯ '«UÔΛT[wû'Çs¨ž­Ì$äOáäŒDRw¯ n Ãi0EV·h;JùÃnÜôN[ñ¿oÏ™š£µ£þúdΤ‡Â4“B©öŽþ÷ÑKþ8Å‚¼s* -èÜìu÷Ú;Fâl>þ}ö­æÕ Ø)ÆHLɘè&·Œ­…sÿÀ/°†$ôq\ Ië`Ú®©®|7$Ùã?·Ç=ƒçn4Q(»fÀ®'&f–Î×·­ùIáêv¿³ïI‘ÿäÍØ·«-;Ý ?æ®5=[õqxÜ Œ¦¾Nÿ|'½±Õð´78ƒ…öÁì65 q¤éh€e;?¦f¯?ô ˜ÓU*jçm¸ØÐ:¿¼Æ=…ÄÐ È >„Â…~¸.÷Ñhjvni5b|1½½ÿCZ1)TK­ªà¨ìú¤~¹ºò÷ï8¿\Ï»ÏQó8†úuG©d91 9,–¢E©Gr¾#à`%1ÏÓ“qâ—ŒŒä‹{:3qõ•"w+„d# Å5UàÛqÔ‹Ú®]<á†0G‡rQ~4/"û4,1/X1ád§H÷˜^Ð8w¸F ‘ ¥°‰,xß›™ìôÂJÆ4uj/®d6­,†M·©šoµ}Ç,gõ¿B©ÎV**.ýÉLÎoL-¤×³i²Ú…C½Ø=(p§ð½þD]eùÎ(/£‹x'[þèìá¡VÀ…¸öí^>òêÑîûíè9ýÍ9àVqQ¡bºn €¶™S8r {ós†Æo>øÂ{´©£Õû(T•×ìèþê§ ´e†€eh;(ô&˜:h¾ŒÏù_Üviý¡°ã8bÄlð€ÆÙÖÎŽÁë 'Ó‹Ò.+¼N/Ýr¹·ñB;ÛNð•°¾¤#iÄzÀÚPΆdpÌpÊAÃfƒh&æAG¹–Ð{ ×UtGè6B&"-]ƒµïœ©?ùܱ§›¥ÏÙÖ®¦ÖŽê½N_½Òí[ý3óôãäìÚúÏ?zãXõáHŸƒ/†h"b÷öϘzæ ‹ËðúDòÍÏ~ljëåÐêÇÊvnÙ¤‰’Ic绚8¦ÇL·C×ÂRªóÚ E‰òÏEVYM¶pÑ~Eï&»†'ÕêGÏ¡h‰O]ׯ•^rx"ÈRP:Ž‹ M æõl¨îÀ7cH…¨é%þrûd}99 IÿT(<2ø½{|c ìntHe›î©¹}ï~y¢fOÝþò'*•ø{æÊðø·ç/ߤÏ_w iÛ—êÍC=Þé·W=\ºå y~dqÉ=øåϾf v0dÉfM¤ŽŸnüäµçiãEù¹v»'¿hnùwú¥LhÂQ†_rûC2ôΪ 5uÄ–RônPh~»âî½|½î`UÅΊûï•x=1ê ^êýµ}€~;d¬NÍÂãÉ=†qÁõ<–°þöø‘dpÂqú•ŒòàSŸžûðÔ³wï(*Èã"T/T\¼qævüÈ_7¯9´·¨säµõy¿¿Øƒ”¨— |·–PðÍ[;ós{õÈ3•»” ֓Ǻêñýp±;@GšËñ ÝðNÏ#±½‡ÅÍÌcVñífº×;¥;½覥¢ïl«Ä³4(ãæ¤n¯…ÎW“º ßæ¢‰#…Ô³Ü3òʬ¢­(VDãÙü“lfyŽÍ‡R»ŠÌº°0µ ¥™Újm(?"­µì{s€ëU½^3¼ýÂ_+T¬'ÎÖc¬2q_«Bm®×JPÆ][¡TU†žòõ茇‘N§5O(OZÛî)š˜[\gš`;ËÙHxF+Ö Î™Ö@Z¦¨¢(#uÐ8ŠÄ@€ D–(Æ6ajNƒó—¯ •"tÀ›yøÑí+ï+ÌÏcÀ{WIÁH0F!˜IÌ´d˜Øš³HËd&6z1àÅĈ[B8“öE·YãÄÀÚÂ]+šŒ#¶t‘…˜=I”m^ïÒñå–>…ȸ”pÚ$?_/ݴ΀¥# íªë#%®`4y}69» ÀYlVåp%™ ©VJòGz¼R¤t^’A=Š[¢¾dLsˆ1ï>+ÄŒ#À‘žkh–η€›¯ɦá1gÎTó¿N%1úE"X>˜kSù²W‰Øƒdô O^°÷yé] Þ…TZp# Ò Ðxa&!MÅBݺbÓ-”“\›Š$)óôȨGÁc!âcLî^Éþ»·aeaY˜`„ËÆÄ [´$…ñvš.f2,bm0° Ûiºb»˜°Ø0 +‘b© (¡ÊJÿ¹÷‹g3´Ëp¸X ÒÐÓ˼¬d¤´=Ni? [ȇ2æ N* Äßè#l›6 ò\:ŠS–(äË%¶Îl'qV¡Æ83-±d¯§‰R¸9ÊMÈ]£ª±êÔ5E˜©ë?;—lj( W•íØîKÒ™F ™^ éÒlXÁCÌ#ÌKò,aЬ`ƒ¦Q†$é¶».Ô9]’td%v\©ë9ÿÿY}ûj'PBžËfòqŒ­ï”²0Àç Œñl¢´áfÜmˆÆÚ„„?´ò@G¦Òj#¢Ì9w.[‹h^B–fÑ'âÐR)ò]n?šÃ¿!~L¥\2b¡x ‹§e8pG»‘Œ\Žþ¥ÏÅÑ>䣢xΦ¨.K—dü…Ɉ)Ã‘ë€øƒ‚_FF%ÇŒKžÄ ŒohùʘÌÉ(¡C0þDn ¹jÂ:å§BkPÑD¤ gw6î|Ôäwàrb¹œeÿÍӨ׃–£„°Eäy¤ CA%#"ÓP‚ ‚œÁPI/äPùU ^ÅÞd~èmáX"b?Ÿ°È*íp»œÚ 1c›Æ¦öK˜Ã¥¸üVÙé 5ˆ*òŽ!”nÌ…ãbé8Àà™œ}2Äѽ­‹Ì¬€•*îÕö‹ †yÉàš ©}‡jÄÜV2†iCœÕ6KYË-âŨk~Òä.å;2ºœc™çªÀ?è ÐmF<¾Î—)ž{Nz7ßTg1¤øÓy¤kW§®“"ÄQ£¬ÿñ þú R~¤9K9c?ö[œD"žÛú«SB—9äʼnö‘”ÏY:Q["ÿ :¹?+Êÿ©Y:ü‘GëZÔ¦æ¯ìÅOOÞ›€‰PýºªÆiT¨ÙÑfVØ=–ª<둾»hhã“k(–ÎVH,8,ŠêFh̰R¡ã©YU¼}óòõmÓ¶4Ã~Xßÿ´ú°™êR³$úñåßó¼ÿâ‚|«ÖÔªøñaÓôy Wˆb! ë‹ zò[âë™úî~¹ôû?¶›Ncq…ÃspÂ6¾yuñù¼Xž=+‹û•¿ÑïÛñ‡_ŸVzøúË«E[K3-Úê²,&GæI¿ÌëbQÒ]ü ŒûÔ™¿Ç©00,À~bLdS*åÍ0-šò¦©ü ¾›ÜCG%f…»mT[•Œ¬Põº§Ý‘ o/Ô²bu³u;-7#5åd]oÌd*ãWÌ’âýÇǟׇõªÜtãzçŸårÙÞ¼Z¼øìêâ²&údGóôØm?u«ßVÛkMô^Á  Ÿ²U5¶xM$Ú$oMH¬eQv AˆI¤òã˺b”’¤¢§B ²§¦ó’&¾‹R4º- –$ƒ %É8³aŒo[ß,:ÖF£-F8.m˜a†c¨+t&ŒÒ0T(¶§þ#cW’Ü6 ±±ì\\9ä'ùÿ'’'äßÛ©’EÁt÷¤¶ÊÍE‹DR@Ï —!NM¾×PÂu¹6P‚”p>·q™0væ€ ”àöEŠ«ªc1ÞBa_´ƒ|B7> á’FâÇÕÒ¨ûƒ˜J˜ÿâéuVçøÜ²s‘Ë¡»íǾ©÷m’8t•"ÿQqe‰eƒ#rg¨íðÉ뚟Óu‘4n)„êÈàrÝð0‡ÂÃcß «ÜƘœæè=fHŒø¿n]#íëè MKQß ƒ©AN¬¾Ü–4jD3 …aAOÁŒßN[è÷ 65{n ô®nÂeG i=©+EÞ±gRpiA5}œò¬Öï[] £áyKý‘P‡)ç¢íª¼·ã»!bÊ=­©ÇÖx}X‰;;™Ð]CäneºÏ€EÌt L7Qsôl  0‚a=b b7-;l¤ òŽIŒ‚°÷´§À ¹‡~=™Vî¹ø²)íÅ1ÖͱX[Ž›!3ë´ºg™û+£ÜÊ96½CS)tÅK–èƒb8Šå1«þU±Ú¡ç¥{Ü’ç½î›G ‰;kÁftMRx?® ÃK|~š_Þ YŤˆü ;÷ùqþò8·‚౟_ïlÉbNssrH´.®Ð3& ÌòãçŸ×Óïã’gX§a"±WšZ³´ii)ñûËÇ·CzšV;ÑÓ4Ù=ù;Ò ›YŠê•ÈT£Z™L Ó–Ä¿ý£á‘S»§bFÓ¥fzÂ@PÔ5 ÍÝ–(ôü§YñÞv'ë“,ìÉæõ9ßÅ–b‰GYJ\Z¶”¤n=±27ò,'z¶2s2¡¼€ „´=@°7Ú86gA—S¡qÊÜ(k[=5éâQεo7Ñ’œñþ»ã&òÕe¢˜³”Lˆ`Çž/öÈ iŒk6 »NùýØ*šƒ­ÜVVYGõëç‡ùõm sœŽSΧváNÆì[N§uYBÃÒmÝÍé!•S»ßŸòÃãá4ÿ¦•VJ(+táð²³=¡½ìÁ0Ûƒ’ï! >¥9ñ³jšb^Hû¶X¯¸kh À§h“®6‚W숙È5ä^lmž›Î  ¯í7Ö±ÆÑ~M¾óòOÊ®d9j †¶Ô6$œàÄ…ÁÿWΤ¨ U)B%$㥅[[«íÉvË!ñLflõ“ô–¡ôy-”^ SêÆG-î1jU÷•¹Ú€.2;š¤D ;Àµ!:^àŠÝ H†Öüò@¸ùÅ;‹Rïj¨·!éðA¬i­.ß%¹¯H ßl-k%¨Ý¡·‹á¾œ@’wóT”‘”ti ±ýã,û¹cˆ2%Rò\,+GèâG×Vm ©£dh{c Áè÷yiæ“ÌïÀi9˃?â×UýEÐyv¨L» ç'rúZ ~”»¿í,\ŽL›þsxS4Õ[s¬žR†½>[ð XH¯{ ®5(¦Cë{•C'ãN‡/¨I?Ý0^Ñ6ôW°£”2*tâG?«„º\4½žåVâ³Qáµ’RªŒtüý°|>-¦Z]]ß]ÿ=%˜¹2‰n/'jV$ÑBKµý^s \Ç’Ñ-DÉ7Àòf‡ÍõÇ«»ÓöžÆ„ÆëQÔ¬i„ò0Ñ÷_§o_ò»­ùOx3•?7÷?oçyY¿~üðér¸ÝÚŒ¬Õß¼âtüQ$J'dE· ”š±,iþ¨×'?ð§Çoë90/²yÕc„É*Ì4mÞÔÖÑö¹õ7d«c}\¥äë”Ez}¦Ö,¤P ºVv'‰H•w|LQ»±ƒäöÄBYYIW5¸\µfÐ$%\„¸m“¢XÔúÛ©sE¿1fðí=ç1ÚÖ‘8}¨f1P^Ù™gàø¢²¬kaÚÿºTËÍ’á~Yçiº¨î0yk&nç÷§’*NGœøŽÙnÂé4­óe›q¨Y°L¸x?>^Œði»:Ñi.ÃqŒ!Íæ•ôŽ­2pMÂr=‹ŽÐWJ p"_É×hÉÇ(ƒ$=i]oàõ,³Ó“:_ZdÅ‚¶©õàÐq^¼Þ•Çœó»–]§a ê±Ûb,‘øüÿ7p×±D,XTEÜBñÐyzì¤í²QÙNâÌœ9sΊsn·“Ô ï·ök$³Ôwµ£XÍOÕV1ìJ‚¹ý¬1¤c‘ÑË• Ú‹£Á ,Ÿ Ä«¡¶#´À½éB Ð,gýõCŽ„Hp;˜¸œ°tewvË~Íœ’ИMNJfŸ ¿Õ‹;§üêlºÆÀݹYÍb7ÞåÈ–…â1† Ã²H7{GOhÙO\ú[§®SÄDÕîæÀT›ÜMÇ£kÛò³Ptˆ{+àœÚSÖž¨·]@å‰ÒƒŠa¹‹V™ñÉK9/è‘/Éü;cZk„PŠ ‡šxÎÅUóìK ªzŽ!P“µªBÙ蕼M3°MÜïB\.ºÊa.†RWƒOæ)˜nÂÔ ;õ¤ ßE¥‹v¥-lédXF¼óÈmÈ’bçN¦ lÃŒôæ1ƯšµüXÌMÑÕÝa„+ÉeÝÕÃ;FýW€–(õÛ ºm,xf®7ˆÌæ9ûF49à²wRVÉ\}nx4|‘þa‹¸ÅËïŠͪ"gÝÜ1QzÈäº*ÛDúÍLßò‡š_à®^Üd^Âc¿(CzVÕá|Þš‚F¯±WÆ¢n$Š>ÊžXѬ ÀÛe­%ÃýaÚÊ·û·›ôéû§ï»ÏÛß»çú²°Ì ‡»\Ïö–êK ¯¤^pºÆÉ%›6ÅIS±ÿzÝp/—bJÑïËúáe~ÿ`żMÏ^ð-Î=û5⎙B•‚8‘E…[°‘D{øÍ¾˜4ŽåPF°éÂ0”Tn#{9úá`n’¦ì ¼d…¡%xÐ O)FlûB/·)AEœÄ:‡U–t .Íšz‡¨!‘U2®Î¼•¿F<S|QÆd)6*3;zøuΦøVšGFÇfŒ$ˆ “ý®G§¡Èx¦}~ùûúÓÛg¸ò„#¡M°k4wˆ)ê–_Q)OZ•è.õèÛ4»yžæ·v^&Ç 77vi@Ž’»x¬Íø#r²€å¼Û IemHj Ë3„Ì"lч>é½(Ãs.¯Z¦8×!Ù¬ò3T;±4«‚áµO)H°}#ìÿ€·sÛI Âp $¾ÿÓykŒÑ wéŒC»=±@4ã€ÀÒvßÿÏTÖGÑ IŒ^Je³6V=uÖRY†-øÇËb-„±%µ }øo8,ëÿî–ËçWj0ÕÆ,•j,Að37õ3…&aªª€Æ–ñ_ÜË-ëmºøº4¼MUë݈¯¶°›3¯©o]²µnÏû ÑËRb=Ÿ,åœk˜˜®¹(ì«]}ÔëϬBS‹^QΕFâdFÇcS“×VovTP$ƒ>!á³@FfäÐÓnwð·?ó~—ƒxîŠÒIÚX®g6ÜÇ›WX'X|s&Õ Þ1Ýn†‘æR ÷›I箸cŸ·6Döß`¯‡ðL¿vZ…k]c'Ô× öê_³÷jñóƽq4¿­~_Šr×}î½g›×­L ¼c´¨!©¾YÈN§ iØŸiŽÛÒT äš²r½¦(ýv_ õ•cm½ ðüñùúø Á± ¤f!x…•ýóbôvF|{_>f±‹QÅõ #Ò8 ù* ” ½6–@:Ðù42ýhmåYq<‰–CÏ>ÙOÇðrüþØ;â‰ã£{*È Àˆ— FöÓ4&:ÍÌèl$‘õAX4üµ²+ ù†!›¿¥DRr—6©Øà§ÿ§”‰œ >UàSëR; sgSd&õ€ÑOgY$ê%·Œ…YÈ ÂsøL¡º·&{DÄìVÄðž@މS2~¦aBÆž4x†hji¶Ê›óK®V–Ø´S0'%jieYêg¥üê­NpÕ™Õ A°(Zγ;M>^*qhªŒ…ÙWêè›o¬6xTµºÊa÷2ÊàIüÑ7È»¹Eϲ×S«ª Nx§{wÂåËøÕåÖ8qÌ2J—çǬ*ypEûï„æ5,­``Êù ²ŠbíI÷«Ä¨¥ÆæÂa†Ÿx^ZHS Álu—‡ø•NwÚ)a–ª 1ÛD`ãóXA=§†ßÿíSüñýëöœéíο^樂 ÚN»ÿ6Ú³êÕmÚ!=S¶6€¨‹ª¶yt2ÝN%›[ÿy€éý•5:y3MZöãÊædízFóIÓ“H]¨Ì£Æ€c–" ZÁ™¿o5TÖ:øügÿ›áö²mìkÀ»,ÌÜÚ=.üR±˜£dþ-Vñæ×#& úP‹›£Æ0‡0…+åÞy:¨YØ—Ø@RÇbMm ΤaÛ×zÂ÷%U ;t|–#tUEŧZuaq5ÑE¢%Jq§TNÑÍ8$£uÝ8¸-‘‚~±™`k-ŠP¬DU>AêÉvìqÔ©ZÑÑC[Ÿx’Ï_™£°ìÇ×}OVëG&pAXÖ> ØU‹™MÍY/Jô̤ Ý„â‚bÒ®Ù&qÃãNT®.-èÉH‰o›þÛ——x»…ø1šœ¨èo]¿`Š ŸäŽ3:îY(wÝrTÝ”Øá1lºYmtµLÁ½ôRòjSãc³Óð–f(zGNù¤«a€%g¡íùFuóeOKýTÛÑÇ]ý'eç’G „aÛýEH)‹ˆMNû)HVÙe‘²3v×ÃvÙÝîéH,4fèi쿪þúj>yR™¦–ÇŸOÔ,‘‰@­å¥ÆD˜«|@U»9ô,þoöâdÚ£ñ àÞ³ÔcÞåÿ2ªåTVFK1•«ˆÇYϸ”íÙø¡k•ªÞö(‰rSa×gÌÎE[Z]cHˆ½TÈÛ¬(#Wß'³‹ëôòbãÎÿÜe:Áî=ߤÆï¸TOöŠºÙt‘=ò@ÏLÑþ[¦¶[¤‘°{×lÎr(Û¯Í*²í–n¬¢/¾r±‡ÚW}°}õ¢úthš¼óÜ+Á6q«øî]ð&So­ªö°çR—N6iö*#šÂmYÇâb¼™>?Ìß¾>aÞ2Âï?×—Ÿo8ŸƒzǺ$ühy…œŸ¶2` fbï¼eä !Û&nÇœÌLÔ^$¯|y¼ˆ?£r7fun^]RðïX=bÄ>³À\ÒÇ.P~I®à­7UR¼ð!mײÓ0 í[ZEHHHHœøþÿ3àÊ$.R{!ã}8qüHÒVT=µUê$޽³;;cÔ%/-Vl6äTøÔfi©… åºçÿi x ¡Õ¹i?ðt+ dRÍ㈤Øß¤ DÛn`SáL„Ò±—JH<êUJJ[ZTð(Åyry!@Ï)"'ÚDɸšœTø.l&(¥ÛÅ”j™‚uÊá ²ÓÝ@k¶yŠsXgÈÂ݉aø„õôøg/Âl0Tb—X¿Püäj.—yÞ|I¼žOÇ.§'ùÁ§À °rF­LKÎÚ}kGDæ‰{´ÄUlJ$·ÙѦBàa–\—ýe驉Ú?²¯,ª9!3^1FpKÀ¼Ž³ò³=Úb*NÏr'Š,ìvÛ—Ç»÷ÏŸú·ÆøÝ0Ñ¥ÚùÂh”a%RŠ®ÞoXý–©ÿŠ!éDªpÕÂ蔼î[În+ã¾?Övlo6æõùÖ…€ß‡úíkÁõŽð ‹m Lê†è{€W±Á$ ÝÞo7Ow«‡ëõf¥>ö‡ª£@H«+C bBO§}¨cÍè¼ÎƒPÓ}óe¯ocÓç1HYŽ•ú0´#ê¶‹+·ñ˜L²¦¿lšÆÛ|××gzÕ«vyж—–b)oቔ£ñþÙ[ry‚>ˆ|_°|"¯Æ¶H *•Ôxvp‚´ZŽk5XŸ@ .¿¿3jt±JC§(Zm„#}Ç1ÏñwqoÌ7£ê»éFÜn®²TÒÅDjŒ È:¥"c”V9ÔI5 <L~keÈÌcµ]UkÆ4„C¨AXE¬ï·÷bXg>ÏmpØ>iÊA¹;J‹ÖvÑ@æþ3js å‡)ãŽÓz>š Þ -£IÅÆ 6]$G?H»šå¦a ¬]Ùq)f íní¡^€÷f81í@iWÖîêÏ–erIrH"ÛòäÛÝïç¿€»7ß$˜Â½ay*ð\>#TUl©ªA›äË͇UAQöVC†mЋÀ|2ËÆLÿÆ}'dúðÓnᥖ °Ùy°w¥¥ߺlp¨Ð-:ýÞA%Z4;Uy«£%œ‚(åWÒÙ‡nÛhxM"¶5Ü€µñú’ÀÒmCmѵÛ`¥”i9+wäÆBæÄ .]Äl,YæØngÖZÔ°)‚ž]èö%ØOD^#%¿öªë‰Î¡±£ã¶Q{Ýyܽþ^Î_Û²ŠØÝ È/¥Ã-‚ •ë¸\yá|¹²ÈjÕ­VÈ ÆÚžRyÏ.Zõ¬ýÖ’Ö¢jsŒd_:µÏ°{,ÔyÙ9u§jŸßn(@ÙÄØ7õ- ¨l¹Êú«EN@¢Ô~Äo®/Žç]<Ão?ÿ|>õz˜Ð£öBN¯¾¡d ;šÐáLµ ‚ãaˆ`=k4¹Â™J…šHÔlLFÈ ÕÝÃÓã|¹~sy¼{8Ý?¿øHQ‚$PÙr.Žæ„fÁVÒ„Ó±s6¹qOOŸ?¯Î‡¡C¢nàí‡w_üî}²Ÿ÷ ¡0¢Ôg²1—ƒqepŒáÀ}ïÖñ à›iøL±½í½à‰AÄ~©µl<V£ÎüÅ@«4ea4$¸T€œ`••éÇ5?j©$žÑÙÅÞ×vW¹T…k´äre£©R%/ãF-7‹G…7ZÔ·Òšõ#u!ŠV¦{I9¥Ä°˜æ~þþxÿø;/[T€^¶íøGÉ|lf Âl·ˆx[ËAÃ×ï/_âå–â" †„ázÝV óÃS≵>‡+™•`†Rʆˆo¢È`tFO¹¶Q¬·Téšî%®&OPö{ÉË`l€áòÀWX5Šç½XX¬áE”®Øõú6ñá¡ÁËÚËíEÁz|8³­˜s’ bVúŠlöb]‹Þ à Gæò׬£`-5­ÜE × ¥ÎLï7l¼u³*îsM¨cØ-¿ôì9ƒÚ œPޏê-Éõ(—«5n<>I]¢qbXöŸy^æuš&>ܽ¢_Ðt.ÓÞ­No3[vW¤Lè¨E›ÁÄ,ÒÌhü¥´b+¡S¶sß®x°Ê ®ˆÉ¨Â/Ðôð0®ÊbN†7éjø§ FuW{”b¶´êŸ¸Ô:Oº-°•­£õ“V7ÄøOÎÎe·mˆ¢|Ùµ‹&È&Ðÿÿ™n».ÐE‹Y$ ›d5ORÅHYdÀ‰#…2ï [¸«Je<ÖBÒÈB2€®þKÙÖj£õ&ÍÚnQr¿eïѱ o´üÑ6ÓÕ¼‘8›gÝ¢¤ê£"Yl¥05¦ÇIh÷¡Fq ˆ”É(Ëhòú—ˆm&YPK÷ÊUØvœßÛo¨’p£ªv§2zMê ªµU1Ñ+ÕšýÛlÀN/¯û–>éRõúÄI# N •C•'fÜžbjÈkUÊŠ{ÛnŸŸ?8[:ôÝ;0–tãÜ!WÛÊGY™ÿL§[èØ.›ªé'šð*»˜¯Œj­£` §õT\Ùø¹{Þù¯í±BU%úl´¢ëÇXòà;ìÌhãEé»Ú:ëÃè<å²lº¶ŒÜí¶‚Q³¶4ÞKǬÇ%„éaßHZ[Ï1¤¯oñzÍþ8­¶Ûé0‰ëÝÍ£L=Ò±áÍþ¼\ŽÖs>0¸GöÞ\8uˆ)ä[KŽÃF„ŽM.Ȱ‰)~üv¶?ÿ^ÒÝ]Rüñë%ÿ•ÚÚj'·¾´Ô´Kd IY¦"±â# êÎßRþw½>~…f,ɨ‡Sx:»÷àYs™$VÊÙ,¸(%K¤‹•ìíúhtvÄ- )U÷!È“¹Aü¶j̰ÄH%@ŠÒJõ-²ü°›}h²pÒG¦gjNV¤£G°¬S[˜’é¡€ÒnAȤ/ö£ªÝð-2ƶ[I"^=ªÔIzP¾àN‡£ ÂJ4Z'$¥¦`îGŒV×-JNðEœL½O_^¢HhjõîáÁx[Žï3䧦© 0˜‹±b>X Ð|9ô⃋Èý‡»„núSÑbŒðx0ŸWÙ”¶˜ PÍ{ú¨²€îÈ›Rô©gìfBã£ÉùÒJ£2Ÿ™`üA:Âj«F³j*#)w'†îšY¢¯ù/gW»Ó0 c'›€I¼ÿ["€® µ;i›d@BhëÚ,9Ÿ}ww“w©aC}Æn4ıò!Ô`Bó‰lïÝ©¶±]7:¢„ÊšÆµŽ¢²So(v£sw oX po$^¶¢àõšK»zÓŸû÷ŠÚêó—PÍGŠõyÜ™å:^s¡€ÒÈÚ–/…®WƒÇ²˜L+©3Ö2!ÃQbÛiò}3Z~zµûLk'‡¦<ñ6é8D£1kóçHÛÖù¾ÙdOÞdu¥ÆªìÊÿæux½-6nÆØÏ*ýØÒKܾqíÑ2w«Ý=¥é÷ÜÝŠç|¢ÏÖ7Éð=DŽÏ\˜ÕËÖÔø„˜u+¶U®¯tÿ–ѳþà8¸â{š÷{¦þ©9§ñx80Ú÷ÙFv™-ILÏÇ}Ì ôþÒ,?î¯FÆØ½Ñ'\;–B¡“s]~ã[PߞР¿?—ôþÎÒÛÉŸN ”—=‡üÅ' 0%1Õ¹ œ`H9cMÔØŽl½ÖîÊ¢A*°RÈ,—DtÓ‹âïy:ಆ3F¤w] ÿäòxI²ÀWËå0uJP¯ú-Å”0jo`y¡Ï3é gž8Zÿ’Òë¾¾ÓÑáõ*Ùeµ—™çì¼ÈrE¡7æ°¼+qd=£ƒÂ.S0‡pL9éíGPjòJžÀô°“„ÈÆáÌ^g£FÊw¤ë4Üèå‘ xfR·V1äHhÆ€YC¹`+ê™Dæ É€"àÈK‚qA\äÍ­<å`Gñ%1US÷ýô)án ™&&‚a°êû»VÁJ”•Lü|‘'ó‘ŸVL9—Q Á95#Å­ .v¥—þ/Rº‡ &ךƒ%²›Üü/óü:Gd/›)@˜ðxpaùÂÄê*,½E~%nàpÀlÃèzHà¬SQõ„‚Ýeß…çØQêHq¥xâj¶Ìwä0aåÕ©WCnü½6\Cf¦ƒ%ͳÚÇþ`ílzÛ†a0LQ¶Ûn6`Çýÿÿ5ì°Ã.k¶ƒc}Ì")š²ì$vu×qd‰"¾ïpsªR ªvº¬¾é¤ˆG¢PIÚ>Ðl)je(«ÒI ïdMZ¤OÏë{:µ;¤6äÚ¶¯°—1©Ê³9önT¨ç˜agC(M\ÌBwX'•Jˆ]G«s\ë\ÉE–­rrþèØ ^œ;ø©¡d—Ϩ:rPúQ¸’†D˜m0ñÜàê™ê/ò•v±3Öù«Økbœ¤·Ïx}R­]†¥¤-ý¿ƒ«ðzÏÖ[µg6hÚnÅ?=kô@v;÷ºD&!Tn·ŠÖ«ßl·nZÿ-ÎØÙdÞŒõo2»W÷·1›;µÏÏôÿK[ê¶7ný­òf†k]X^sÛýÈÜÀ§ì,'cFšú:r6A3Ïõ?nîU#a÷°™Ú¡~— `ÀÊÉóùˆ»ã{أȻ—í»óáŽNhè:ÅÛ£w.°E0ÄÃôwhI¡;[ªÎ¸25ŽÈmï¢U5_­> )0#±E­oZûó@ì^Ý)qÃN™Ž /Þ–øå‚aü0ø·”:á÷_Ï?ŸÇ5Æ[ãÜ9d/·Rà÷Br•ˆ\œ(‘ì?sô ý¹ª=XîÁ9\Ü%%hÈß¾~|Ÿ—/¯Óððùi˜—å}‰™"Z(5Té ú‹Z´ Qã£)á £â9©ÉX ã*ø:§yi*‡É«zô¿ßRÀà<6ËîÃQÌÛ„d¯Ò€”²–U7ñ’R3³X&iÉ”hy‡´S˜bi_y9è*Î<±#¥{Š‘eOf¢d|ä9ò]©úvp$¿ÏI>ë €eVN=Q7qdo¿Í(ÛùÈŠŠ³SPˆI}ßYdnËs„Í‘ £!ut0#3_Âc­˜‚ÑvÄGŸ §^¾v!ä#%K¾\¨yéß")zA¬iø!‹‰—ŠPY¶Oý¬¥ÙwWKŠLëvâ=ÄazÖá>ŽÓÅý‰tí²í0 ÁSa[[ç¶@¨Õ‡EµÇNж¤ÔuJ¾~`§AÂj¿ãìŒ,E?TJ¤A»¾…Y5ØÃô˜NÛ°‚瘿v-»qÃ0’½qŠ´ÇÉ?ôÿ¤‡üAz(°E v·–T‘Ci%˯ ·Ç–åh8Îô›y–Z»H·IbìëÌw~¤P‰1 ö  Õÿë ûÝv0)ÏmÁµûì¤á¾Ctöãž|Y«Éb´ÐG.˜³:UrV6{%“9ÔÌÓÜXXÊ;ãnY°Ie%›"Õüó©ztåLUlÐà–K}Õú‡2En€ÓÎY’Ü­À¸–çÞÉïàé iö!,:Ü­x¶v{SHª< ìàµf£*ÿ<jsæ«/¨Pƒ˜M]{Ýgt2+¢ Ï²‰Û ‡…Ô'úÌDÊÉD›jùŸLkª©w¡z)õŠ…”ÜU韬±Khµì~ãŒXý &%„Í¡ °ÛhëLŒI¥A[©m1O[LÆ’Ô¬Â~iY&"«ÖãŸÚŽë‚Èp}7.ò–Ñß³oWÇp³³Íä.lÑ‹%N3éÊ&õôSâXQ™›vQ‹š 'ÛF|{|;ßß};]ƧŸ¿_>Î`>#Jx9Ï¢b·=w;Ð1Ž]i8ÁµgêñÐÓ—›áÏûÅ_oÇbÏzÞÂÅOÐøÐYûáø :ôðõðýqøõÞýx~勈›¹7W‹—ôx×Xµkï,2‹$|Ú ·©>ƒíˆÿ gsû·¿þ~è%Ý&B;ÿp7<c­¾äŽjÁñ‡Âù©·&˜x“þ¼jH0¯!"LÅA` ¶ó@ý@„2*JjûTŠÂÃHÐ;•@ ±’ÍÂI†Ymá‚8É’K+Ý»¾iö—¸,´ÍŽWüÌwÓN^ìŒLh¢E ä±ÃkIIˆ“‡u½úÅ{2uo@Qqð Ô…o-Âî‘ùlæÕ=¼CeEà–ÏNù,”鯸F|‘=s±drî–÷!ßQoì…\Üý™ó¾g—O7²™iܤLÇ[••c%J×õ‡XªÚåa /µêd¿móüÊ!K‰qÓB…²8´†„á„ÇíË—#«Ê»rd}ŽN¦¨»Á¬ ?~Ç«j•ŽÕîJ:X,™:a­lxNôpù(±Ê?h»’å¨a ªÅ’!U .üÿÿ ùœà0‰–FÝ­]òÄÀ‡TÍd¼ÛR/oY¶qž¼iëToÝTÊ ÜÛ€mmÄÝjþŽÆñýâ§Ç 5UQüï¥B&œ]TiQÆt20sÈã0ý>sô0È„1RIåÿÂêpÌ]&nŸS4嫺#“ oZ òÌÓ¹°¡‘Qvî§ñîÉ ë1ë¥(ØnS[éâyxιE¹Ê¹eìš;?Uö›³MuZýe^ô»-Q÷¯ø7ºOÿd™2‰§)€okyP¡8 Ä\«=ë1øû4‡{EF)äöÓ>e]×ÕÙHRplqR”“š[¥¶E¹/ßÞú~gמéôí–£ƒ÷ØšÛÿŒíGÝœ±…çVì†)¹Ý ï5üDkJÐVµ L¶K&¥œÓZ(êDÑ–¯ß?Ì·_ŸKXqumÑ:ƒGª\¼ƒ*ý ùÜ;„‡˜0ø¯êÃõõímýr÷Ùg »™‹A“LY‚ªï^¿½Zï¾Üÿx8Þ\^}z>®a×zñ¤U)J$Ïí±@ñTéæºDE®NrnÌ ¢Ô9Å0ÿ žîúö!<ýmÔ£ƒƒÎg ÀíÆ€X/U’uk=¤F%H¨Ro­X~ÒN)× ³ÊÐZ$ Õì§1Zé?ŸÅ p*!Í @"^"¢v‹çª0ž=~"âE' k±yQ”ÃUïNœ‹‰+I‰Ý40B‚AjðÊXËpdŒÄW™Â<ëïÃMùZ[–£<ü!‰‹4ÌÊE•Dô÷¬QC×Ò‚EåHÒ‰.„ÞldÎÙPîÁàò%d~¯VtïÂ_yo]ƒéjR¤9„ÇP‡dm•Œâ…µ²%Hä׎2–ú¢¹0K1¬m é…PGø)‡ÞU™†,¸[B-âTèOñ]eh»§‹<ž+6ºg–)tà0ÆC:²ô\ éãpñGÖ®d9jˆª%Ù®!œ*þÿ[ø NE±Ä›Z¨»%K^4c2Ì!‡¤2e[²ôÔý{—ò$K_÷‘˜ÒfOK¨k¯1VO ®[ü%¶ÐYÞðU=zSË‘WÈo|úìUfAmÒƒª¸ºÇ³Óá>ª£Ý+,¾á[¨.ÊþV{G¤ô¨_ÇÒOÀŠè³Æ Ý`‘š±š*Â’jüŸËøàeåäš­M‰œÄHTÔ9ä*«ôÚÝ$>ãè¿fj¹>ò¼¨÷‹–ë×þIØwÞÞþF:ÊÿúžÃÏ!ÑùÌâS£r]c™$7eI9‰9ЇÓ“én>Á¦&õ >œ·TT¡žL´Ë“éá›—¿ªX¸2L~Mžñ»ÂìL¢ÒS*Ï-°„.î7ïËe½Ç…˾ð›ðÔ[Ο+o·]„v}*¦ˆñ͘¤’«ä/Õ„®Âƒk²‹”îðÅÏÓÜhÁ L™–1*s ¤*¹bZ‰V3ï³6`o‡Ããýýc×||ê^¡ù=ôÏŽÝNÖ÷LeÇ€Æftoºo[kõçww_~ï_ÛOGA?Ck†V뉔|ÔŸ6À©6«ÝpÛŽlí˜h·DÒ WaVUraØ™Ÿýä Lóøõ|ý™F¶äœÿÔéÑ™z ¡DÕ±ÄMro¸äð:üâ¦Aï­Cû)m=w{J6•>KÇ(Är“õ̵W~cè bXlbPH§p9òzHv³Ó!’ Å]¾Uh}YØç™…â¬Ü%Cy:Ó¢:3Ü—ŒÁ”›|“"õ= $æƒ–çÆ¬ý(§% …›²ó»ü =ºï C”™@¦Î8£/j"þbyj3ÿËÅ’~¸À¶1†ì_Ü€c?;¶Æ4†„²Æ„Æm;ÛÞµMÛÌÃ(Ø5â¬Ð•Ó—H,b>¢z‘œœŽ1}QëSZ# çI,Ü…>;›í輤,íš"HXbØ3´®ª¬3™s+¿ù+iײÜ6  R±Ü´u§m®iúÿŸÔkfzh§‡xò°cI( H‰²Û\Û‘\,»]),覰ª{.Ûñ ‚¨|´íõ£EQr–yêÔà»eÏüouõ-0½„಴¹Ê8Æiš#;¿r±fÌ4J›R4Y Rn`–·ÆTÛØ–I0MW²ìù¸a§£xd$òá h^T¡´Xö–þµò§3mÆKPr òj·83KC4Ê©Ñèd%¶©Ç;Ñ ÝÒ°°h'“-î°V`ý öy„œqι„;<‹‡Vô닆ùpcÓ¬S§­Ïs}fR9èéÐÜÕëAÕ{g­Œ®ZFM¥MB¹÷™›†?ÅíWµ …ω""9^£)D1Øðq*¨E¸bUU?Päb‹‰X¾«²……ѓ٪n,.0üG0ßÜtrqÞ{IUYùUã2.ä&#;Ç:X……ꙃ›d ¦Rç'á5F+‘(à¨sü!û/¤RZìH âY¤ÔµbI 1¼N¿»Ýîöóõû­óXk˜Ü4}o¾|Üþü3q–MÔQµ©´Xȉ"åãýËÇóûçÃþ¸ÝÍËðúýë»ëÍáé`X*œÈ¡’§Šð”|QÈ1€äþ1môƶäâùpp?~=þ~ÄçS@ƒWõýÆÆÀݧí·Ýææƒ{zíî÷Gb™ùÈkn´&ïˆPè{\¼µ¬…ŸÂš%G›Ú, òä[Á1-8ò¾#ý#H;¡Î…)ŠN«y rèñë˜ $-!aAÚš»~6¨ ² ŒJ?0Ñj#hç© €œVŒÃßð¸ÝOB!Ø“ [m޲‰!`oDI¿<Ñ4Q÷'9»*®ÕroV^¥kÉ{.ˆÓª°‘í!Vwœ%*þH´¤ë†!ì€ú¶0¤ßòÛò?¦ážÊ©Hþ†…ŸzbVpï}³æ›‚²"ñôE•wˆt¶´‹ VêQ´(%VŸ£Ð”?ÊÛDÅð»Nö˜1hR꯰óoÙ…p²Ú¤ù@IkÊ gV¯R¯qú$ý+qç²5 DQ©eyHe(² þÿsøØQ,X•ªTb[-ܵåç lHe•šqlÏXêÇísÇÌ\[r¶x,à<Ô&VŠJßDäN¹à üO–•Õ奒… Õ‘ç @´=÷ÿ²_nÝ~±5™äëxBÔD^‡SgÛ¥âØgC·p%ˆAÅÔ,Ká¹ »JêTRé ¹³ÏšX•¥Oh_&˜P<,Ð B¹¹‚P¤e*, 'FH›2Öõ æ^óPƒ סµïÒ"­±G~ 䪡f“£ùâÖpaÌÇï`®«_ÛÒ°Ìk,W<6ŒÜ÷-ƒ`¥¶D¸ÝÁô&\¯VÓqü-áãkÝ\åò…þ©RV{ub¹t/vkÕÈíýIÞëfÏd+³ÎÔ ¤¥å5òl³ƒq{eÍ¿´w3ùƒýßïGçÇM›½Glï‘?hݸCiûqgxÕ{8¨4‰ÞXY Ó†ë&³‡úüÍuGɾ‚¯÷ß©+Ä pØÁÕ[¶{ÿE¤n>I¢Ôò='L! clïX¢0†r)“tàãå|〹w=þ¼kýér7|ÿ• Ù|Ö'Ž{Çw‡Öß·î¥K_ž^?÷o\xîòçoO?^^ß.çHÔªj)Ë2%™ (v=6(Ó—âÖJ× €sJ,Áÿ&ªRùÄu©ûú“nIëh8FNéÃÝéÓC|Æ8ž&¹Ö#«=V´Å©]Öt^ÜJK„T³…òV²Añð—¯'/6£Œm¬—uä9¶g=†sNBf'bóÓ¶˜ÚüG]â¼P—ªÏ×Ëö¸³MK·3)§6Y®å,¬Bë6~Õ?[:Êó{šæF•C At‚iÊܱAB´Âç^]_\"rÜœ¾,QZ]Aâhqiõ«ÃŸ¹]s1®#¥¯œAxÎ^`o¨‚*`­Å¼ün#0X˜4+u™'EŒ…ê?œä$§•üÃ:%rr¯ë6ꋳü‰¬.¢29S3Í0õ/,/C2&1ž ”'ä Î߾丟œ¤D€ Ö²®ŽSŠ”¸ìl7Oy–Y×=”’ íUbqOXoÔ0« ÙRV-ïÔ,׬%ê·Ò±­žoë”ʼz€¶+YŽ¢ZìIjÂr UGþÿsøNEHA’«÷ë–,Û’rJR5ÞF–žºß2vÇë³9/{ ÞXÌŠ.8Už0z̧#ð‰t[éÿw]ÿi¥Ù¢%_±øu SÔBô~§Uª_9^å]óªê£®OåǤ?¶òUj,¥*rÙ!«äîÙ¼S>°›rLœìk7±r#v´Ê¾ÔeÛ¦™š­Óä7H¢G*uë¼CëFµºØËcÙ‰bKCªþlÆíc¡š$–•”qÇCÓ²Y´«/;Ê~µ{^àj Žäw75Ó®™ÅÚ¹XWÚ:»ªsëw¿ùÜšeìÊ¢®kø#®NÓc»w®L¶¿Œ¿¤o Ô÷ßÅqXo ͽo¢´Ð?oqз}R×ßgÙ ûRŠ~p<Ü:i^@©üÅ™çnîRèÜ(½ëš‚Ë»9 W–ñУ?ÕRŒeX®g™c.ÓbÓŠsÚ»jnf}Z_Ç÷}Ç\•÷e…ͨîûœöˆH†V9>â†Qóï—¹; þó‡wçñôBSš¡4Óßüýñ'‚êÑg >sVª@£U«jqâ3hf‘l—ÀÉSTUªXJš#ÑÅÅoÏŸÞÜ‘¥÷ÕyNw£”GƒèWI³ÿx*J6Ž"lÄs3¸ÉÑÓõ‚ºeæ‚“²â<ÞÆSÄÊÄn‰ ¥ƒ‚ªÅt§áÈœAxooýÇ»óýûÓ—¯îáå*×*Üž¤zOµž´Ñ0?#¹Š1ù b€ìŸ&÷x‘B®®“·Œr±/QãA2Ùa…¬ö‚a&$™‚ÉÂ%î¾”ŽA€í œ0åaá°3š°€jo€,k)“Z]Ò_•QrJ«ËP[› */4]¬p”•áE¹.‰cRÅ*›1n\­]9Bú ŠÜ¸iD“*XIW§ÅõV&4—BJoµâøóXWT´ ¢c¡~cå²4˜ …h–ÔÔ ÐߺÇFc=cG†bfJ?È©ë^Q³²dÁÂÕ8Ægi(D7I‘þr5½„TÂ…™?ñ<~ —ñf˜!þ¤Á@¨ôyt³–‹ tÁ4LV9¨-²‹ZND-Ƴ<í1/ì<¨ £8A@ï‚PV×®øNòÉ>Ó´âùí“îDJk%[!Nlÿ’¯J ¶å‡•ª·å^{óQÿ@Üµí¶ ÃPQ’ã!ÅîÀ€½ìaÿÿ;ûîm@±ë4¶Ä™¤(Ù’§}ÙK´F“Èñçâ«Éã«(@ÌB³‰Öž)vV ü_F̪ÿã'mÄÌ[« kóá^¥NYÍFl¶k¦•ÛÜÓl«ænT «+\èãI«lë 8@Ýq§3¼Â`®ªùÕ*¹M3Å&©z1ß&+…YU÷li[w[«ŸV%Ôí»o5’[]³P©:û¦03\ ß ¼”£f°jÃëz-»w‡™³zr[ tEÛЖګbƒï¾–ìôê°Þ— Ä4S¡©³mV°.N^M±oI#[¿Y4Íç«*2·du7»\Ô¾$Ó O†Çň°iöæ–K!iÃÔ_\7ž¾íä„êùÜé+àð’zù¼F05[œœzïØ ‘Å]®`>€ 4ºoŸÞÞ½ñ\,Éâþáüëñwgû\h5boö¶j /ðhÂHX‚ÛrfSÂÓi©"!0ýuäípŒñûçãûGë=WEâ\IX²€ ?NS sº0áGÚÀÅ]Š …¥‹(}LMW’ùÕ‹pçÜ—ý×÷‡w8À‡þùÏy°Ì';GÊÊŒœäØ;¢ñÚªR£nƒCˆO—±³ñjŽ?O_yøa5=>¹á¨`Õ+¥¸TB0i{1ó›€k9±XQ]*%‰Âs,Ÿ†¨Á÷Ó#>ÊûF2sI­eõ£aµ-‘z0Ù:Ãìx¾ bºØ¢”U1êL@r`ÅN3Ñ`è?óžBëçÄèYñ þer‹:aV¹})ÚS˜M¢EV²:.ž.Ü32Fè£ôþ(&WzžtкÊf~2ž›^fº+H­COÈŽjit„‰æîHAëØ¡&L×܆ÄQ1~Z‰Žè=±ƒp‰Är?ö{ê¢#{ËpD–pëVñÕDiJ pEQ©Î¡*JAxÿRñËDˆm7#Ë)dLV4Ve÷Ь‚¥¼ Ï2r“0??wÌ£ðè _§„iêO9X8øOæÎn'nˆÂ'^²E´q‡DozÛ÷—öà©•J—=d~¼vÇ*Uäf¯vQ~ˆg¾9Ç6J#¯ïðÆ™?þ_1ó#g?Žj_tlËþìWô–Dп˹ òXcÜ¿Âp†T”¿•yH—9´‹Z¥A ¸Z‘ŠñOÔC Ít(òeÖÎkàM¾¼­]Ìb‡YUÌ pjÇ2 è­·~ó»ÅUOp.#P³aÕ„~]šv©»y.°LßÄ^/ž ãÂêýúÞ®ïQí[»ˆÂa$™ØfØÖ»Å/`•ªÂ ÖÊÝ Aã(u¾º ŒÚ8J•Fƒ¾nÅz{:bƒ#Úßô8*N¿ ýÞ븊Y©½â–kMp䣞ýtL¢ƒ$;»÷¡¨;[ËÐ-ý±ú+MÝH’Ê—úÃ~ÿ9ÊÀaîÜJ×{wP÷²âš{V8æi ?ïÜ=’ð \€MY÷³QõRQS%§sÜîösÿýë§o×g_†×/áò|ç'G¶Øœ¥ÃÆ8“Ì,^ìíÕ¹»¹@œùر¸“ÉJmÿ{ô–Xmÿð4þ:²£§fjYX,¹“T"åagTµhnlÌ+…äë Ï®U‡lëˆPáó-ÌD.âÊ“`O“iÊÆ#VªrÂF(¢+KžäùØÇQC@¦Ùˆ*êÞ€/JÊoédt¾‹¼b$„´& Y’›&ÃDF0-»ZyT2§¬x̲™æ›mííS&«áùÔ¸µ#Ú^ $Äv9|‰ŠÝ®§~oX;m ãxôÓsKòžPn!9ㆾß÷Î9ëzªý#ÊdCÇGLs‰˜ù¡hÈ,ƒP M7 ñ—C“uuP5@¥èÒƒu46ƒå(€3˜äfE9Þa±>ž>Ott<^ îZvã†a ('ÙG€Ûc°è½Çžúÿ_R ?-Ðlb‰5¢¹²lÇm>ØõC²D‡31ü©V3Æ€Ó¢áŠXÆÿÞƒÛ'7ós,;U‰’òg!ºÀ² M¥¬©sŸkìIW*= ”éµRnÞU.È¥oÊç´Y*TuN”¦ ÜZ˜âcô*Ç@œåùÌ‘õ«Ÿ¬ñ³¥Á”v4ÝjºhÛ„J¤˪ïÌçÃÇjTi,KMùOÜ:pkÐêfaÊLÿÐ^ ·[ƒ½ÖÛ°[h‹~¼#ÙóËQó*MA'×e²ehí18I™Ê#c©ç6ÀZ$šXÈÌ`M… çK¥3!€e…© {uÓwâ×¼Ê~ÞEל._õÞ$EMÄ—‰æIâ&“EV— •ï²Ä„ªÊ;> v³²s)éõ}ÿõ&^92’Ê:C¬ô°ïŠj™“ÿbur®ÅÔ’Ú]Y /ØçXæ8·å…N·¡«Ag’zþøùñÃi¿ë ëó³Àå5O»»Žuc"r!ùCÝöxóéãáËùþëùþñtLY g¥"`} éù’Ÿ^ÒÓÏþÛËóË…@ú ¢ª­$¥žÉªÞåcŒ—%¯"3m…kÚ¸©r€V@Uô\¢=ÞË% gVób”NßYã Å,i´˜/é_tX£UK™€‚Wéápé¢êÈ hÈvGÅ4ÔiÅé-©i7ZÍL`ÚØ³À<øÑk,øe@}w9{énX{MoüW¬V´l›Ù›4õÚš8£ ÙÀ–Z‘k3ÄA^ÍðuÈ75á[â;‚¾oÃÝ0IÈ/—8ñ‡ýîxŒ»½Ésb=é48Ï;zÒ³OÚ]0îéabIA$CáÉ(_×ÔÝ¥_¡‰CpÜM#@^Q™½šÏöã¢Þ†?ù[Ê®m·m†J”œtݲþ@_öÿÿÒèë€ ØV¬b‰‹x -9N ä¡AÝú"‹¢Èsé{…P(iC| ìÖ~t|Îí…Í4˜(7Jˆq&ú‘õ¾kîßÉ\l­jU®À䢿Yý0æIN¤ö—¥eäí:p×h,$ë—@c*A²ÖзßD 1 +$[``¡°?RákåÞUø{çL¾½l_KÙWuEÇÃV÷ ö6Žú’×ôIígOóÇwwj§õ³Ãut¾ÚaIú³õ.ðpv±ô俏zlkæçO t%ª•]EÝáEãJÅ5#ÛêŒÌ°ÛõñbIªÛ ^{87Óý{{÷Ô>„›ßÜo,¸Ä—J’IƒÉC'Ö‘0Ò@mÏ})Ý,«…Xëwtù= dÆ8~.ˈ­”*a òÊEXŒZÞѬ—ÄÿowvºÖ>“KõW«_áV)Ýðf@5Nü;q]¼ê80]þ=ÂW'û˜Ê1ê„6ô8J¯Å®àõ¾Ï_ö9í§ÌÊw©~›¬H>g ªDCÍ-E~ÄňR0ä¤Ú•ü5YîöG‘“4¶Ù¬?ÞŽ'Ç]óÇßïõåõ'Šþy°vȵ|¤ŽB%dã­ˆ˜Í½„êÛ(“‚²wYÔ©—èÃIïCDª(X¢gtÐ[JaúvUÍ£Ìhh©PB ´ÚM' ·žuñw ^™•5 ró·ÞhEcåmEEÇÝQ0}èú÷¥™ ¬œBýG ‹¾b ª1º8ü7|»Uf˦ÅxbÄÓéôõÛùøñ¡cýø”âßËШØæ¶ü:/@šsV¦t‹á9N:ÂäMʹf;eûOÏ—Ó÷§ç¿^†:wÇE¨¿2 溪P9päŸÄIÒº‘Ÿbh–¨@1¾7rXêl(KíÁ œ?_®ŸŽÙÈGk;<îão‚¥ßNãzß~ºWyÇo‘RÑú"ÓÄÆç“祒?÷b,"²2E&”¿d`æýµÛaQ%ÍO*E÷Ðð¨21¼J‡ê`‚Q¼knÜÐj+#˜³CCˆÕ ?«f‘ÜψÅ Ðp0´ÀBézJQÖ>³“ ²)q‹¢'A‹ú!ðð+%EÌû.±/o7UK9ÓÅô¬Ó"^•ÊŽZD=ÄÔBâ…PBîÆò+*N º ޾€Y&ƒŸNõ0 ¹É6JÇ`ÚŸQÒ!b`9Ó’†Ôwf&^{š»MS‡¡¿–Ç”¾|è>¿ÛÞO¾/öçñË9C×u‡Ýuc·Ë}ï$ŠkæÏìÛC¼2RŒ—Ü#úAoÖУÁeÒÎJØy®tRNÄý¾Ÿœä9—ÁWÀz HÂ8Dè$É,ùCÕDÀM1T¨ßu´W>ú'gײä4 G#™ä°w®üÿgq€Ô² KBó’ǖㄽíV%±-Ër«§§;íɆŒ­.Ž+…%Bݪë¤É,:Ë„‹¤½-ÆSLÌè©%Ýëð€}Ç­7ŽW1gÞƒ·¥ÛwSÊ€£ÌÕ`,º î 8k Ø—ò¤ÝÄÀ>úµ×ËÙ6f±½_‰›‡·oY¢’Oœh©» µ{'‡çÇPÉpÛ™×®äy.£j[Úw(MͲ²ü­ÀIŸÊ[¢Z^Üg[þ€>ÉYÝÃ_äSþ¤þG*w—sœ—*h¯7‡s*J5Bî î .´:Î ]Í 7e*†pXÌréý[m§ìNÄ{‹#•âG¨,ºù'Ã*±ÛMÂ)ÆˆÜØ`ÖÚèk U…Ó©À‰=ccÔ"ÝSÝQ™£I­Vãg䟩Y;"Nq½Fp=Z![Ý7ÂV%¤ ‹UòÉŠ™Fº[³òJÛñ½*ü0«PÒ‚6h°B™çÒK¹*ŠO„¾ ,$./wV™îîv÷ 9,t½èï‰í¡¼Æ(Z®•rÁÄž:4á¯|Þ ¡PÃãLJç«Ív§hΰõ5ÂmÆo÷ùñÃÈT²Qupó†Ãž>MÏ·WÆÅª qËBþó—Û×;Í+®zç7ÿÎO#ø—û<\6$ˆã…%æR“‘Æa'£¯Så eôfàn6dSõxíÑþí$ånY¥ÃÀÙUõ£ùµ‚*%Ϲô!ë Æ-—fsƒÖ —¢ÃøN—eOI–E§Ä•EÎé扢”7rL­ùÓ“Íèw²ë¥v$À@Uî¢Êj5…4;sÙ0h*lFÛü˜ˆ?ÔE yZ6w’QzÀI¦e®8¨Ûµß`;‡(Qé6ÃWb,²<›ÁкH‘²A÷qð£ooË+}Y~Îøà‡­®d@¿•e+꾿^®Ó4NŽÞýº»E¼>)J¹œ:n[b®ç¨'> r¾ÇÚâìÑ©¦óB_â †üºs¤{1V/[Íöà“Â@q›¦W×P9íDÊT ›å,'|,™½T´òøïoX»šÝ¨a 외[„@À­z)OÐ÷®½ !mil“ù³ÇvVÒ^*5»‰ã8Ÿg¾Ó"˜ØúdÉÛç¥ÌýYÔ`™›x8ø”ìÜ·Õ?÷<$o¹‰~b„ÎTÓv4ÒPü¤¥cÅíSóPGôW“ŠŸÕ¼Ášì\_öÉáÀvX“wík*h«ûŠñœæ5ól0ýœê°;Ik_‚°€ öÖÈZj!2ƒ|„2Kúµv"ŠŸÌ–2jÆJë­3rŒ@=ýĮ߉Leîˆ8[VÁ3G}Q'Á®à -¦il¨ýÇççϣ¹„çb)Õ__~¯(g0†õ‚ñšÒËuåÄ Dá¨láðÊÏ_o“%ù]^|úº1'¯@ðOØ,¸hÊ Mêì]E˜ N¯æAÝ®›U¼8«ŠH‘©äÅ’ÁZû•@ •%˜ 7 -W6í:Õñfå®6ó‰RûBZ¼®èPƒoS:ä*”G± u…R¾ZÇ+Ξ[Ù.Lë—GÆ=kØðk±Ê¬dŽré!OíKWÆÓÞ wä¨ÚþÍÛâ3ÏG-.b™õybe¿ó¨Ã)B•.fG ××m¬³¶‘À…È#î¶/‰÷p¹l¿µæUˆÜð.4û Y£@ÍjoÿÀç‘¥.ó¶QJš\Ø<ü8îV³ê-P®N†ëZÁ¶Ù 73n¦›7˜a%€£õZyëtgžß«õN:òMî– ïJëlNîf<½±>rSicõÇß„ª&­¥¼«iξ½§™;<€Ú‡©î˜±Ú?òlš÷uAÿé y7ÝI ëç_·|²(‡5ÊtMìæÛd†\÷ý[Ÿ…è`¿T¼DšŒ—µž')CÎN]5Õ4¯ç÷n (ê g;M7S^þlXjÞ\ê¹Õc¸kïOŽš£Û÷ª_Äí| †c—úö8pù1PO}åXÇ¢Y½i8‹ÞfK»ýfÛ~M²ðtLæTã“h^Ž…PŽô·‰&Mލ9ËEŒì£àŽÄÄ;ïâò\ñ¸7Æðô¹¿f¸"­ Ûh2äû.m*ý0Héù²”b¹ëaî:ç_Ï—?/·×iöU„ä´áÈ›]†ÇÞûÒ ÿñýãÏßãß å¿öðøi¹nœðR™Ï§Vk5ä•£ûÕa*IkeSjk’ »Ç»ÎE¢¹“× Ìa©U#¢¢TÎQ"›ÈY’*“N¬å\âÊZæi¹â¨5P¥$+Øž´Nt_¤F‚ › à ÔN(j9;#(š=tœ)Ârˆ.'PÄ©ˆkœf.;ØÕ\¼Q’¶hä¦T` y ÒÌÕõ 0Ï™4«ˆzÕWó"²q`¢¸ü2X‡Cì–Vk\Jþ×q|¹Miîp@¿,?GìÓb€`x>ôÃèã c•8\UC£Ó©’„¾×ëëKá…¨a]bįÀú-Í­c8Qi¬p­&­ûå1Q_0zŠÅÕj€ªu”¨À{Šýï3ÿt¤ö,>OÔIEND®B`‚salome-kernel-6.5.0/doc/salome/gui/images/icon_about.png000077500000000000000000016161171177004724000232100ustar00rootroot00000000000000‰PNG  IHDRX,=Í– pHYs  šœgAMA±Ž|ûQ“ cHRMz%€ƒùÿ€éu0ê`:˜o’_ÅFÅIDATxÚìýÇÒ5kšž‡]¯K¿Ü·>ûÛíwUu™v­&Ù )Pd¦:ƒ&Ò@ ãÐ@&! Á´CºÌÞUÛþîó˦}­)„аŸYFädefĺó~®ûNñ§ú§‰¿›¿›¿›¿›¿›¿›¿›¿›¿›ÿ¿øïþÿ'Ø)ò:£<_b¦#»×¯ÙFÍù§Ÿ±Šo¾ú‚®Ôüø£—TÛÙéœÍWÜÚ±ïY•çŒÑ3„H³ŒŒ@kêä9Ø ZžÒ‰:óü`½a;þæç‚‹¥æGŸ”<„ÄÃä'xBipf nJâ¾ãævA•eœÎÀ‡2cpÒØÓÒÁ|Ñ1çnTTr‰ž`Tß’–òs ±æáÝÁoç™ZbêÀözGÜXæggŒIcý³l¢›Öäó'´Ò†ýA3?¹$«,ññHR‰·[A¥;ªÓõN Ë’ìCÃ÷ß¼Á_·|úÁOŸUÜýö—Þíyþü9Ë‹soî™T"ý¶¥l.ѳ‚›×ï0³‘/V?aº <ŒßйCDeŸÑ¨Ž(-R[ú]IQæ³–Û7_)N›ˆlÇÇ‚ñúȸYœ>Á‘l÷оÌ(ò}o™ª³'kúÃÓ«š§§T«Š±Kìï£åd~ÂòjÉøú-¿ýöŽåËK®®^°¿}ƒï=óg ¼8¾]æ•àfsË\U|töGüüÍÿÄÍÃW|þñÉó?åõüs¶ÇÖOOÈÜœfäbÏá®#hxùtÁ 3¾}ÜÐo¸˜]¡^|€¸»asƒ¯2‹ç4*1è{¦VâÚšÅ:£Œwìo<êòŠ:‡‡o·L Ãz½¦všpqÀî[ö7#ϯž2[WìÚG^½ÐBòáóK&õHè$µ;áW¿e]œóÓ³ ~}|Ãm÷È<¹¤wOxýö+ž~b™ÕŸóö—[î¯Yž4ÌEÕ<§.¯Þþ‚i:çÙú9÷÷¯ùåö;þþç?â³?xÆ_ü›ß²ûíO>}Jöt×{.ž®è¼¡}€¯7ýžÇë@1\œ,è‚¡»gõ¢Bœ¬(nÞñÐô¢¢Ñ)tÉãn “ÛÒ, ­©¨2ÇY/y”9óE†tÞÝõT)çùï=%¨¿ùůÛž³+\ÛñØ |rõë<ç¾Ûðú»kвböâ„“ª¢½¹áõÎ2Ÿ7¬çŠvod\.–<ª#û×oÉ\N±XË ›ÖæŠfÙÐÝö|¹{C!-—ËK Ç#JtUqvº¢È ¾úú†É^ÓDÐË § Œª±n¶[l²,kâl¨^œ"zÏáõ5w»‰§/O8yRòý·[|¹8“—3̸áͰÅî —/X]”ì6o¹ÿú ³çÏ99yÂ2 îÜžûÛWdiFsÒ ‚å0e\TsÂÉÄøÐ•  ‚n³ÇΖ¬Ÿ>¡îyxûš¡W¬_~Ì,77ô kVs8<î«'ŠìâòØÓïÁ h4‚ ÙKÔ¼ "”–ôIPJpZÑPÙ²;L˜bIQ9”‹ H2ê4ájó’Å<Ñõà;tu-‘¥t¤%#ó ¬K”³G’kÈj¡ßá³:TÌò#½Œ¸©`rGV qk¦\:‹Ê÷(Q«t9Ø‘Ô÷h5CJ t¶ÇĈ%cðÌf×K¤0(áñ2R…3¨z’Ïáèñr¤ª ¬.ýžLÖlúŽ<èBÓzIÕ â|‡¦aô=IDælïÐyA°#àd†L9iâèÆd†Ô:‡–!5cm®§ØOˆ èLNÖ€Ôá&ö¨I ËD©#ƒ ldÆJy¢5ÄL‘Æ‘ÊL$ÛpÌ%Ó¸a®¢.ÐcÏ$3¼Jx, i˜ùÈ6xŽôD³Fû‘1yT̨‚ÀfÉ‚—¥ÁJÀB t$¢ ŒÒ¬‰ˆÐŽƒÏ˜a@Þs”kŠIbdËAzf²"hO?I´uˆJ¢¥$4]î(²H~ô a„Bè$¹Ÿè¤T‘#IJˆ3É"Èd¤›$"“d^â…%IIŒ $h+ˆÒ3h‰°o¹×cGpd4M†;†XB˜PÙD3b®½‡Ì¿¿.¡‚d¡$]#!ŽäÞ`³H5…±Z#-`€„Œx-ÉBÄEƒ÷Pª^G’7h€|þÿùÿð¿C}ðÁÿû¿÷Oÿª"›#ï¾ÝóŒ«? Ù‰¯óŠrYñã³§ì‰üâÕ5å£`õÑ’6jêÝ„žl®,æ#½Ïñètä´ôÄクǞ³¼àR$nÆÄ|.¹øPs÷íÀíCÏ Väydèsʪr^½Ù±¸:çù:ãøæ‘ûܲ¸¼¤œ&\Ú¦‚cäy༚1ì<¯zÃé“%Å¡§M=ù²`îÑŽ¼u‚LUe톼†ª:£"â~‹Ë+ÖÏçÃĦª‘ØÈ\ѨëJÚNRÔ ÏH<´¬OOˆrº>ÐêDßdTmätž7{´`™ÏÈ|IÌ’#M¬ç9š{DT¨yÆnJ„›žùóŠÓgKº¾`:FàžÛ­å|V³,Öh50„„Õ‘RåÈ,2ùÀØʵ„hi£ÁèyðôÉQ?[£]˸épÅ’ªqˆqÇ$æ Ñ òú‚ùºâîñž»»'‹†ÕÙŒéñ@×:êUIS=¥zr; 2 ì3Næs¤ÉØ(ƒ¤õsviÇÏÏ “`ûð–™×Ì_|ŠWñvÃ~RÈ"ÑïU½áÓÓ5·mÍÛp²è©åwÓˆÚ¬–%JKn½Ù“Ï©Èy|#È™ÈO¢hèÚ´óx¿ahZrIÅŒÇã5·ß>’/×|þü>o¹ÿ¦ãö›‘f™óìù Ç#n¨{ÁÍ»¯¸ZÂÇ¿ä7w_²ÛÞñûŸý”^ Þþê|ðì ©~ÎÍ»ŸS5–¬|±=Èyþ¬¦;l¸,'z…3²YŒ‰½? SÍéÅ9÷o¸~sÍ‹?âóO>ç7_¿¥}û–>yÁü|ÁÐÞÒí{Ù)}¦àØbäD¨Kf©bt›Ž¨Ôù™XPEû¡ïGÎòs–Màq8r;yºº`¥sÞtG‚Pìiž_‹šëwßÒÁ©^1NßQÍæ¤ê ÿ˜Yá¹~uKšg81Ñï,L‰©KºÞáEb¾ÒŒSÎþñ-± \~øœW\ßßóÍ·ß³<9aݬhÇeÈ.rz–cŒ&ì]:Ð¥P'3ž?ñ=ûí/‰2çÅ|I”Š9yêº=2]°~~‰o;6ß_“ÏìéJW3¸‰öø€Ý÷œ_>¥>¿âæÝk†ãžtr•֤U…sžôðHKF­%ª„lÅ,t¤.2¶êd^*ä±'† T‹%®Ý1õw,«šåÕ Ç±åáfÇy^±xÑp»ßáú‘r~ŽˆN™Â‚Je¨ÜÒ-F.PEÁÈ„ö2„ØL zˆª§™4C^0·Ž„£“2@±VL] ò%Ym!€6ŠX¤A£…Á™ˆlIÌ$ÉLë ¢ŒnDt i<²j𿈨ÑÈ0hF‚®ÉÈ`™’EC®"*¯ð.¢•EPÝHò9n¦È„Eµ§ª*@ZüÖ㋈¨JŠ81Æ1Ç AÆ¢Á™ŽÔ:jjº,B¤ñŠv  ¢°ä^‘ª„ïqêP¥Â¢ôøÞQˆœLO‘!%Ä4’‘¡O o'BŒ¡QQ¢ÇƒÓ ëŽèQª9 ψ˜,SÐ*CÐa1¤£R ’#Nz0S¤Ð£VT®gôH.0›<ÊIÆ|$”SW¡ÜD’ uBIHÖdAšLDl‚ iHA’¤¤<9A¢ŸÔP±Ì»@_´„´ÀˆÀ˜:JYIOëy—eŽÓá-"¨B„°±u¢H9)F0gÁ%êVKG$S¢¬$ÝÐbF™%,i4*8¦”ÐJú÷‚%Á%È@•.¨q“&sS¤ ÑZʘáCKèFƒ‰4Ș`” +PQâ’EyÈkF&ªI¡ÕĨ5q„¨Z ˆ¡+¢¶¨ ˆÊ!›€³ 90³Þ‹V¦÷ÖÕ_ü«ÿÇ{õüGÆËO.hrÿü×DNŸþ€™uÜ}sƒ_>z…69¿ùå÷ôÕÈç=ÁÞqi 8;¡ês‚Û2æ’Ðg4"c~ &V|s=áÊÄiU“û=––BqH5OØÓd‚/칉,š‚ìt8líÃŽõÉ AÌPé3Ïé¦5~ÛR_*’ãnƒ–9«yÅ¡sEðdãSG²eKí4‰Ø·¸¾£^-ÑÚ#eNpžãÃ@YT§kìtÝw˜óÂa(8-÷´ œ~Âj•“ü#·ßXʺAŸ/Ií5Ë”ªfŠ9`ØR¶5W?yν;°ûâ[®Î ͳOÅx¸#yËÜ\ÖÎ ý†1y>zù‚e5cßí¸ùú5{wäù'ç³5L†NnY7‘I­¹?Œ<[䔼»—¬žd8kyør"¯ç?Y"§Žwo[”(9™„ä5C B&ÄãžØÊ^’ŽWßÜR˜]ÌÑ•ýãî–ivÂÓ§ŸcûwôûæsdØ=8ê²@Ìs|{‡·Ï³˜h‹eÉ_üÓñß¼û5O/—¬/?åõØ3î¤Þr²4³KŽ]dpvï˜5’lV£\Îq¼åØäùЧqÉÞݲw KÖ…ÂÌ-»ÇŽ–’Y½@Ø#7mG¦jž­ :7ѵv‚b*ÉO Žo-×÷·4O žœ®ñÓ@è}éί^òqUñõo¾àÆY~öÓß'tŽí÷ß²úð _*Žo,*匢eÖhNNž£„æöí<ØÈç'¿O¹€»î—V|öâª×|ù¯x¸¿æüg3«ÌÍÄTÎIyd™)÷|yÈÜŒç§4^s{½%Ì,õÇ—˜]ÏáÕ=~]°œŸ“˜!1—š0öäË’f9çvqv¤Ž º\“Ü[ö.QNŠb¶Æœ$Úû;Ò»-gŸ|Fq^óøêˆ´GNŸÊaÆ×7¤9rñô^iv»¹Ø‹FqR”l·à8Ò¬ ¢H ;J7C¿ó$'i;2C üIˆ~dè"YU’‘àFä¡€… уbôЬNÌD ÷#!dd…€I´BAKd X5¢ëìýï²`µ! º›¤Âq(#ò ÐeN #“ ’ ã!ä9&B6‘Ê ù˜ˆÄEŽ™"š„TÄ Šb–ÈF‰Ø"â]¤%I€÷yñ…&†"IO$‘“¹‰>\)ÈzÁ"9¼ÎÐÊÒ¢xDp%VMø˜Ð2¢=8e1CAÌB’APDåÉ%¬ˆHéIƒB– #ôrIÕ%lÕ#c†ÄHrvb@ª ¡L:r¥Pºà0Z²,’…‰šQ\ðaÈbÁY„•dÞc ‰”‚ÊÃH ‘„0ÉQ¢"Ï=}ô˜è‘(@Œ â„”‘ˆDH Çž}S£æDõØI1E?êÌãç9IT ƒ‚TIÅ ðDAp$«É•$êHI ¤Ñ6B–ƒw0HlzÇDJ%¢´¤¶D(J #$ñŸ¬ŸüÓÿ·ñˆ¿¾![±®.Aö¼~{KÌòñgôIðW¿}Ír¦y^­¹ó#2æ¡ÆK‰=²¨ AÛiŠÌ²‰ÎJ4aù ˆ¸JÑ92–RJÞu5Å<çEÕ³™¬L”²D*m-EqF¹¼±ŠòÙš§ŒlßZöGÌ#‹UN)-¾/ØDM±4áèûŽYVxÊv<’ù[ÎOçìû7%r3S  zW¢Î'ʈÇ]$lÖç†X$†£`yÈ õ‘½ê9Ïhh¸~7"ãV ‹rþÈæÝŽÑiN_ä¬g+¦ÃÄxÙðb`~²âlyÊíðG¿åóÕÙZǯ^½e}~ÎåjÉÃÝÀ®ý­2špJŒ‚õ*à¬çÍv`&ÖœÌ%÷CKQhHvM‚ñðŠà<«§<{±âÕÝ·¼úâ ¿÷é1’ïû³Õ¬ŸÍ‰' }÷H¡r¶ÄoŒ©G”Šø˜PMCsþ”œ‘o¿û Ÿ4OVgÌ–ÖÃîQ±ÎKÖ¹ç®Klº[Nôšâ¼dlÉ2ƒ˜Íxóå7¸*çg ñÈ¡¸ù ¾;0:K!Y•1Ë—¤Éq{÷%}̸ºúŒò¼åqߣƄÐS3ÅŽó*7 ^$Òa‹òsæ/®h·<ÞÜqu:çãçó¶\ßn)eEÊ+p-M tGE~:'3‚Ð%ü ÉO#ƒ¹½¾çÅg4Ož3í·l6÷wGêõ©kf'Þö<~ͪ^R]ÍñÚ›­Þ;Q³º`‚ö¸a†B_}H¶ ÝD`€a”¡É%Ûb"ù€è@F‹Î¡lH¥`æF†¶ÃúŠùùœ©ïPÝD‘yTqÂ(,öfG^”ç%õŒ`>Óˆ ã„Õ¢Y“ÅH'·¨© šeûh-²œS+ÒÒ9N`”@–‰¶¯ÉØ#Ç‹†X9r›sDRJ Î!£7’˜ ŘIO 1KX_£¥CEK/5ÒMY¢šD+ù”H½ XJl(‘^ +‹´/#(G>fLZ⢦=AÖ Y¦HyOè,¦Ì¦HÔ†¬08éí™F”Adƒ¤—¥™Ñı…˜¡KÍH$O Á3’Ùc${ÉiŒŽ™PƒDy°Qà”ǤD-2¼ S¤ŽQjŒwÄ1’ A ÆŽ¸…A —’[Pºž)IÉ ¦‚)èiD* ­'|Ÿ! Kr51y|šˆ¢¦ ‚¤:¬.ÑBãû=~‚Beè²ñ’(sJyðÄ ¢$eïŸAŽÍ'”Ð`#Êœ„@fÀP0"ÈÅDp‚>%Tôä^¥Q*oˆ¦g%s›èÓHïÝ*¦Ä5J‚’;J%¥Ã'Gm º(É‹¡Sd*’e3ÜèÑ"€¨(ñ2¢DNToÁ¿wŽlá%RKJ=1$A ¼…Jä8I*\ɤF"ðÀACánôØeNåÉA Jö8e“"á³’l ÃkIYI –)EœT•!%É fJ(éèMDŽ’(!Wç2b DÉ\"Ò9S H ¥™p)ƒl@D…´0*È%üûù;õgÿÛÿŽWý=“ã³O^pÚdüöo¿$TžŸ~ú)]Š|÷öœcy6Ãʉñx$_^Q(ˆ‡[†yÍ1ªÎ×#G›û[ >{¹`% o7wdQ‹%ãø€ˆ‰ÆÌÙï3púÇÏsîÚ-gzB+FYÐ Áaó@£g=åðس÷GÖ T£8(ƒ›<¶ëh–‚óTþ„»ã=»ëލÏÏg4ëï,ýá†Ó“´ÇH~•óQÒÜËã0²Ì–kÉ›¯z‚ÊøýŸæ±á¯~ýÙuüÑ?¢ºXpóÚá§ÈPîPÇÀ²Ô,×%S5ãx}ǰ?’ —O*’9^oúŒÕâ”ÉvÐßa«C…ôj0È«‚!îq–¹n0¥gŠ-YÕàìŒBE†kV³óÕG<\w¼»þª0çåóè™f{7q?>rÕTTó!X;tqOV°¶k6ã;¼1ÓŠyÖàĆM÷€OXÍžàÓ½§Ð ¢¦c ÝíSÁÙÌ`VíaÇîpOu±dQ\Ú‡££çÞqrz† þÃë¿D,æüѧ?æÝñÈ»ŸGóñŒæéû¯6ä:2ÃxÜ0?Ê|¾äûïÍÎïùé󟑲ȷ÷_P‰ÀéìëlƗ׿æû݆?úÃO9_Ïx÷Å®÷ÄÓžC{M>?³Fu=³B’èéC$»ºbe=ýÖ!L=Ó1Pª†léÞÝ3…œú¬ XO u™S«’©Ü°&R_+CªŽ„”¨ÔŒfVã'Øö{Ò«wÌ?j¸¼øï&\®®P£ã·o8›W<;=¡mj†#lòG µä©>cj÷‡‘ùEA>ox|{@L–ùªÆªaØ‘…H¶<áñÞrýú+®>»â?þG<ܾáWÿá眜.yúì{ Ñs7¨’¢žŸpq–3twײXÐd3Èù¬ÄKìFÆÍŒJ)VFÑË»~¢©*fË3B<òðÝ-RkŠgÐäÃý@7–¹'»|‚p’þúß÷ÌfKÔjIKÂîˆë“QõœZTä:1Ɖ¡›ÈW .ġÆžÅò bé9ÜnÈÆ’t’áe ž ¬jñÛž²œ‘Õ’î(Ðþ€ Úä˜,pìz¼Ì™••ë±Zá]ƒ‰‡÷nFf@xÑ!|…TìH¦Jl;²“bWj- 5(9qT 3AÊ@» â„MR$ó Š]90ë,BUÄR œÀ4 ùaÂ/ ²˜ˆ>Ô–¡MQ+C$ ›D$¡'C¦;)'‰^Õˆà=e]!ËŠýqK>͉f3¡D¶‘Ðäˆ4à·Ž`rtž¡¥Çw9Q:¼dÉ ¤%ä‚rT c*òÉà¢%“‚ $q £ÐÁ ¼g,>eè.tÀ…w UFF«È½ÐTª$„È${tJŒ:CºHæ4Á bÞeލÕ!á’@G‹Í3ÙàCËnrÌuƒ.að#ÓTP`‚B¥ž‘ˆ°P•{W³‹F\2(1¢trb Hð…!Ø–\h¼2$oQ“dF H$")(&&§ÑƒÇ§Õä›3IIž¤Ž´B£bF^Žì”N¡LNGò „•„ä­Äi‡QŠLe DœAgŒÔÈ•`(ÀxI©½r¨)2M D‡w9&iD–#¤g-¥ÉpBEBiˆN#üˆ2 %2/‰ÂÓ…EñÞ©d$ÖÒgˆà± ÍjÒ0zBP„Rpk@@f`(äûõkéÁç¡ Ba]@e£ýè1B£²ˆ$K(4:HdD•RòWÿÃÿý½ÀúŸýÉŸ’U‰4Æáaâx¼æt}ÅONi;øöæ†jr\Ìì=ø˜•œÈÀà=×{ÇòbÍUp¼k·ˆÓ’r¶"]o ÙˆŸ4f\sõòŠýøŠÝÝ;d¾f±¾À÷ìï[N—\.K†öž»6ã!=p^ÖOž’lÉfÿŽ<¥Œ•$¥ù´%ÎGâ˜SŽza9bÑ%ÔuAV×Ü<<òð øð“šOž-Ø5¯û–ÚÜñL)îeC–ÍYÎ îo^³;8–å‚óSAªzîßÈôœÕzŽ í„(–h¶lzÅl± iÇÛGvƒb9JƒØ€ÉY©%)y¶!ðryÆqóŠW÷{^~ðC줹Ûý9ëå‚jñCî‡Åð=:mžAlˆ¢Åëñ°ÂøŠ|¶ƒ"cw aèXŸkÔyÉþ6ú‰™‘ì›D u˜±Ýì9FËɲƘËD¼?êœj}BaÛ¡eò#ÈÇijÙgÜu®ý5õ9‹gç7Šiû–rÞòÄœ3 ›>à"œ­³fÍàÜaÃ*yC}*ÙO[܃"?™³ ãîÕ–MÚóѳ Êú’qpêÀV:NÄ9‹¥çÛbßÀ§—gdå|÷«7dCÉ“O/¸}|`|°ø¬™qhGæ‹’ÓyÆ·ý7ؼà£Ï>C…Žá®e ¦œ5<;™¸ ðxg9-rV— ¶Ñrxµá¬œçkvû#'yB-Ûï÷˜…ár½dšc´™Èu"n"Ç~dv¶`6»$鎇ï1N³È-S1CU†Ü+ØéŒqzD‚‹çOÈëŠ×÷ßÒì$³å‚ÏÃí#órÁ‡Ÿü;¼åÕwßRgœ]ó`7ô7r¥¹XŸ’ªœÍ]‹’­ Þ¼îÉÂr]²8JL’éq‹ï:D„l3[¬è{ËñÚS, eᘌ½£°P¬×ä¹à°ßᤧ©ÖeŸ‡p@T’*oV1ŠÓˆU9i‚y•3 Î;æ' ¦ˆÝF §OiÕˆ½k)dƒ?øí€™fØEG6¼Pø<‘g9ÚFGÝ@­NéÄß[r%(dÎH`ò9dyP1 ƒ<µôˆ¬& Ò}•yL—JI"ô9Ì2bW†¦ËÑù#£¨Èe ŽNÜRQ>X‚·¤<Çä9}L˜ãSfø¼Aø¯KÔTeÄhÇàßÿ±—g“ˆ]¢­Œ˜ PµÁô{Ü(›V&ë©MÎè[P9…ÐxèÆD#2‚°ˆJJ<EF†Ç› ¢ —,Î!zDÌ:!zG`D¨ FFŒŒ£ºPx*ET´ìe¤2%ƒzœVd¹apš,N”ÂÒ*¨c†Ó!zH0ЈA©)¥bJ#)%¼¶(/YØŠ!“xÕaûŒ$#^%8¢)ðQ±,<ÖÕlD¤Ò’àyq”¤(YÄ(ED“|"/ uß@¡ œ 8MŽCèÀÆ)r+ȳˆÕÞA&,RëY0¸Ä2x|J„”!L„Ñá² !#nÌÐΠrA")ZZ µ– 6J„=h&3,]Qà`©2d„,‚&á0^sˆÖ—2Ì ÉÅH§!@ÞBÈ“–¨4;HJ ˜$a옒€:¢&C=ÖU™ÅhI7I¤äXe‘½" ”GR1’0¡’EbpÎB|½kñQãUDÈ{C+&’ È©@„‘¿üÿŸïÖË¿÷ŸñùÂIžøå¯¾¤;ÀÏ~òŒ"?ệïPÏìYÍa¥X›“ìQzÄXÁ›)£ªF^V9b„·AÑ£ùà4'<ïü„Ö’e™á0t{‡næÈ0a;Ovhò»5´í†òÙŠ:,i7oqÒS¬O!L¤.!K‡ê#û$iÎkæÒñp[ðØ¬² uÞÙ±¸¯˜LÃ6KÌ¥ANãÔ“”Ô(BŸ‘‚fr#C>rQ%¢?åþ ‹æHY öù%Ùà)‡DièBÀR®ýN ƒ¦<+ˆvbxµ'{~…9ï®; ·åꪀ8¶5>ƒ*:Nt⦘¢gm>-¹ø´A‹#·ïzvS"G®Ö32qA:8y­Ñb ;zŒ>ãtð!p÷6¢µàê¥àx¨IñìBs>+ù›û-woùÇŸ2ûáçìßÜñÝõNTBÅ‚n¼äùrÅVL\¿Ù¢Ü@=[pv¶BÎ׿yChsÖOž"dÁq|À(M‡Á÷%óúˆ¤ä ¾Û²h£™Š8e¨B3v™%.N—<úö‡xÄ;ÁGŸ~ÎÜ•|ùío°]dz——˜™æñm‹wl–襚N¨+ƒ;6¾§kš"g¬îqC‡‘§\T ZÇýøŠ'³9³ù›œê‰v…<+XœZ¶ßOìwžå³‚ÕÙã8`ï[ºäpEË‹Õ9Þ/yüæ_>òɧOIw ¿þîKÊ¥çìòXçØ±'Í÷hi¦KfgKîö7Ü>ÞóäòÌÏ|ûÍ/ÑRò⃈]ÁÏ¿ý†ÝpÍüèÇœ.¾ûæ AfÏç¤ ¢ÛuN>FÆQRÎÊeÅ¡;Ð è¶#Ï’ Y_òÖÝ"ÆÄG¿÷{uà·_ÿ5¾¯¹8yJ,ô’/ÑaO]:ö¢ÆXE3ʹcï{Ħ¢Z)öSGê'uƒ2SÔÜmF^¿úšç—òâ⊯¾}C6—||òŒ›í†ÝqÏ¢YÒ”>Ó¬ò’áFËúEÃËâŒM§8ŽVÆ“§sÊcÆ=ùj”†Ûë;f•çü?f÷ðÀ—?ÿkž|ÜðþäOØÞ<ò¿ù‚º*idE%#BçÕÄx©WsNÖ vÓãÒ[K“j— õ|Ͷ=Àí=„‰a±&/Îò%]û–‡»ófÎêâ ×îhÇ&°ZdÚ²Û &êº&/\X»GL/<(aY!B¤t;{DÊŠfv‚gï¡Ë(.æ$Óm!§87¨É@¦H´˜}D™’º .!c2‚¹*q1r{f)Ç(ƒö–V œ©¨§=*@œ7à1 =1Ó,DÄfS„0&T°èR"” FAÀÅ ¢#/ )$bÛcf‘Ê6¤t ZOŒ§ÄyKÜôHcU"¬§Ê4‘ éG|).GN#ŽØQSŠ33(_1LšlìÕ€&Ëñ±c=Z7hð1ùˆÉ2Z¤(9x……9LŽRÏÞ''H΢H¸ ÄdH¬±èQ¿]¹UQùHŒ=“ÏÃDHÊ Æ÷îHˆ‘T‚Ñ V b7'EÙÆ2¡Ž!ë”$ÚI¼ïHJb¤!úˆÔ k‡÷ ¶h@‡Œ$†“׉({úÑJA&Ê!1©œ( 3B Œï¹ ” ‚3P#-¶0¯SGÈ )Nø*`zƒ’IBŽ"“§F¬Ë16#Î;œ—¤±$O.ËIb"Å…AèÁ:MV$ÄÐidŒ9dPŒ²”8›!£BÒ1*‹"GC ‘”<2–”:1Œ ¯-™Ðø H LHøI1È‘…e’Ù DÚ*œóø¤(ªˆ žI* ¹x«h£§p–Ê4øÒbeWc¼#A’:³è.0hA–I„0ï_„„ÆeŽÖ$ä^! ÐÑ£UEô#)‚wZ²Rᦄ×þ}"&¼ äJ3øDæ- Mò½{,ùÿe°þðŸýsLŠØî†Åb9«ØÞ9†–yµ¤ª$÷ÃHŠÖ¬1‹š‰6Ž˜aÆjèç3bìÞ¶ÜhøàüŒ›ÙÈ!&:AÆ‘³õYµâî›o©„âüƒýQ²ív¨ÐS.ž¢« ±Ûáqd'KÆ!Ú–b‘“'F(tNêù’³f„ãH§G2¥X„œ 'Ž.#&A^)réÎ1†0dTfØšDÜv89iJâ”åïBŸÓ¬j¿Åï;™¡Tͤ,Yh‚ã®”.—ÛðÀæÝ‹óQ—ßݽ¡ÎKž->Æå’Ýö–îþ-²:aýü†vÏ»Í[~üáÍìœûÝ–ïßí‰Zña–±>_±G²}sG2GêÕ k3\Ò” P ¬S˜! ›ÈƒÌY°œM´}ª‰Ã» Ï× /ž=§”¿|»!–žõ™Aº§M¤F"´àíí;–åš'Ÿœ1éßý²Qsút…Š;|ÛcªSBÞ“µeYe ºñšã8²X|H®"í a–±˜­ˆ»‘¨L=G{ÅæÐá5œæs¼ß“ÜÀòâ÷xìÚÝÔ圲xN–gtí+§#ëò–èp`È=~¬²¥XjŒ„îã12W3Ôi ض ¾8ó ] l^9r,ÙI&À®G¤9©j nËšÏHYÉ/¿ý .æk~ðG?âõñ–ö~Ã<¸Wk®®^঎×Çï8ÏrêõÝ1g·»aVfÍ¢¹ãî±§Î*•£óŠ»û;ïnùñ?`iJ¾þò•kÔ"bÜŠ*ôÇ–ýÆ3Kf—×ã–*I>ûè#ÞÞ\³½~äùO^3Ãýí e)91’Í´cß-y~uƨn8@Ž‚›ý†f^’‹ŠûÝ Óž—'kV圶 ʑƉ”åv·Ç”+tQp{Ø!Îg ¶£ [ÖõŒÑ8¾ûâ;Öõšø§ÈíÛ·ü›¿øw|xõÏ>ý„íøÈí×·äEÆúå~“%²ª¤ 9ÙÁ‘5=e¹ ¹ŒÖXâcOŠ%ÙIF‘'¼ïØ•JTMÁ5±»&fP>£r‚Û‡=1s”«¹fÜOlöfÅ’b¥ "Gå£íq·Gä² 2%q¿'(^¬èÆH¿{K™Ÿ/rºáˆŽ†(S@A57t1ÐHI;ö(Y²*3:;â'Ï<–¸Z’*CäÑBžC¦àÌ@&‡À‘|NÌÊ+¤2H‘0}È42Ë(B¢Š,ÈTÎhŒN² PÁÙ¤9”sìÜRí<^Løb… ‘E¼rTH½.X¶žq¦PF"FOßy‘ÙE†(4‡kO•F¶²$ÃbšŠdA' Ú ‹À¾w”™Feƒ1¹Â;…Q áÀÉDV‚˜C© p0–å Rg2½Çx„Á)KŠRD·÷˜2còŠ˜'¤ŒÐ%RÉK‰íÁ ™²Ð $*&ß3¥)çVaóL„€i’ Ê’ ²Žƒ0¤\£e ‚>L“Æ ÑØ ¤Œ„RÑ¥9@JtBæ9ÒÆß%ì"Æh6ÒG°Ñ‘Å= 5ƒñT"àBEH%:9É%|a0½~’‹HF™Hv  Âæf‡ó^ È&D\RKŠŽ$ ) b‡'Ï"~2ĉ3‰ˆ9Å]މ¹h50ê Ñ)œ²(AôX§Avˆ˜!eDà1" òë#^yrí­&F C)ñwŽa‚0«)bÄ&|^)£ÀOЂ•TiM×ÒO‘º0ä³#Š)•¼}³ÅGËgOf%¹é2$ ¿%f7C¦#–ª SÆhÆ4ô‡™Fæ—3¦!²¹ûŽÕÉœÅ|Í×_öäsÇÏûý×{M’ ò9g½Tt¢c³cðsê"2ó[Äâ” +¸cÌÝÀûdDÓ°žK”xõj„1gö¼dœ&®$_ 8*ŽÑóî‹7<«Ïùü?åqàëo^‘gO?åÀÓ~Ïï]5ø¹c¸ÙqvyÎùÕ ÛYÚ·ßsÌ5§ÅGd³£mÁ9’¬ðý)§ç#E>òÐ%z¹’ ÁHã¸(=bRÜû•I–ó ÑyÞ\¿¥Z”œÏ.Ø9Áªžx÷гõ;~öÑ'd|õêWTfÆé“ :5o5Xëx07<;™q¶|Æ·ïzöß0/V¬žžã‹{ÚïÎB3›3¿(q7ÇmÄÕfÕ’“úcÚcÇw¿ùš““Šó5¸ûŠiãx¾á¬ZóavÉüþðŽç'Oéõ%Ñv¸iÇ!u\œÀb¦yýø†twÏÅŧœœžóÕßüœÇá5ÿèOÿsbüâ—¯ÈE¢¾hÈt#h…¦À˜žæ´¦Ç×ß“ …Q<—§T/üâÕ+ÚWG~öãRç‚û7‹‘?ýüˆ úí–}LTáýKºW%¾udô4Õš¾ˆ»@µ^à› 9NÔ=µàèßGð³*0?[Pæß¿ºÃ¯yùÑifpÛÝÓd—È™âqsGÞ‚›$V,_>g™-Ù¾zàU{O]'NË+( ƒÛ’…‚wí £|öчtQpÿů)W—Ï™vŽ¿ýòKêeÃ}öØ!ð›ÛW,tF¡2¢Dˆ»©%6Ȳæ<+¡oùþ°g¼<{ZP}rÁöAÅÄGûŽÅÙ%ëÕŠnûÈn˜X¯Ï¨tb—¦V1óÙÓgÛW[L)©ÍœäEN›,$ASK\;rÍÅ ÑZv›=E^°¸¸$¦‰éñ)V”E@fÛkds@u’Ò̈•ÅM 9&œJ”äÈ<ÑÇb*YjÍO’cJä4¡b`ª5*•Õã{‹ 9I[º ѹ¢ô–"±ªîÀè3È ¥“ã+M1vLQcsˆÉaºž,¯©TI´ls…ôsªÊÑ&‹ R†I xYÒHÍQ;JÈ‚ç.J’USàÊ%ý}$åÚCµ4øÔíoFD\°¢dßOä&"cÀÅDže ½¢Q#ÿ^üêæ}íÀbÄ Y.IµGv‰à*¢9)F1¢TÉ*Zœïé;Ëš¼O„,¢¤AŒázÒ,‘lŽ MÄ&‡Ï$•,~Bx‰¤’(&‚–AÊ%ÙèDUÀ4’äD!r\QÒŒ‰6^`…£V ¢6ø~ƒs'3r#)Ô{çj>¡`׎2Ç Ke"Éf8o‘RSåë ØžRiŽy†qAed.1)ð4‰dŽH…˜$¹ÙÓªœb„äÁå&ÁkbÌ $añ“!'b“!Š‘+‚5dnÀ.Š!'— ´ðh.H¬täZa’+éRÎ I*ì$p!FO!+„‰<2A‰Qˆ±BiCæ=K4†LE&ëÐyr‘MN¤¥0 ¾¥*ƒ_È•‹ ßK¼Vd!½@–e&¬“¨±@‡6‰äÀ‰ˆÂæHíɤgš ƒNTr$EÍ8-)ý„óZx«@‚û] ÿ©Àzþ“HsR#%¸Xâ­¥Xxaøâ뵌\>{ qdŠ–h&n_ÙßqK6½À¥Œõ“š˜1öô¥ÄÆšÚ'N–’Ïøþæ‘öüøG0ÉŠß~ý Î<ýàc´3ì¿¢ZjÄì¡ÛP”|$âRŽ®<:YFW£d"· on!X¹]ÉÍ‹"1Ë5^´DáqbŽÒš:ËØu{:±g©J2=c?©b¤+÷,ÊKÊYFwwDØ€›uù¾J¡Jr¢ÌpÊSF ³Èa {J^*†öŽ}ïxyòóeÅ×ßþGĸãüêc˜ÏØîØÞùá“5/.øÛ/_ó8m¹Ð t£ð‹9‡iÀu5F*Õ3e%¾“œe‰ê¢`;)lÛQ•…b¦jæ+ÇÆ' # -Êä|üé]'xss )P\¼¤ô˜»-'g9Ç<1n:¤´üøÓ¨¿ørKsÚðÉÕ%>»–f~ŠÎ ÷» 'óŒ²X²ßÜð%ÎϦÄo©WŠ Op½&¶«…$w5ßÞ¿%+#³ìœªÖèrÃÍ»Š²‰ˆ°Å¹Hsö u(¸Þý’m²ï¹º¸`a ¶]@TGÄ!à”Fd‰¹,Yœ/˜ìÈý¸e%ü$ ÒTUÃÔYúþ@YÏ0*Cu–>›°ÑЬf̼âöÍ·L9¬.? ù=q8b¤aêBCSóDØìI#¨Ó‚Xeèwè¢@V5Gïp.0¯`Ú€§^;&7#ød ] RçØÚ ¥+BžS6µˆ¼$/+¦A“ÜŽ˜kLòqU PÄÄäjŒèyMÐ’4Bl[L¡•¡´šÇ! —:G™4}-™rE“Zò^Ó*ƒ_‡žZHö„ѤT“å1Bá,ôÖQ*ÃɲbÌ4‡ížÊ%|.‘²$÷ Êø>¸b¡(2#”³D’‘"£· ´Hød™RÂäŠÚ%‰)æù€+”0 ­'‹ µÀæ=Ðï"£ L³Œ:€#aðX$1 |¡Èû€±‚˜Ï΢ûúˆ• Beɦ÷ë½èÁJMP‰âƒÂõ=O%VLJg£!ú­©ÈH)'†iª‘hoèdB‹Ð’0”(ã0â=ÔzÁ\M £Dï«°Ò*°>ÿ“ÿ‚g£ç˯nióŒÏÖØa¢Ÿø±$7žêôýM{ó} =O.çœd ¾Ú¾æûqàóÕœ+!¹î#cÈ·"]¯hRÃ1½âК¢ @M Û·Èº$s„ëÐzÏa6‡ÖÓü.¾k»ž£UÌNk*yèU.(lE,I=2Ý÷TÍšâ"ÇöÃÄTÙÂPéšC—€€Ì«Ë¡Ë8=Ú*f™¦x¢ˆ“æðÆÒ5«º$’7·‘žêÜÓ>hbfpt˜Î ÐJ’²sîvfbùì„ãâ·í-Ÿ<ŸQÍøå†ùÙœ.J¾{Üq~²@ËÛ»žYyŠL‘(ohŠ+d¹ uý~O^zœ_¢RͲ<âEb38÷p±(©›€¡5}©3ËÔo”|ðÑG܇#÷¿ùŽ$ –¾Äj…½~Ë…B_<åûÛïa¿ãÉê97mdxp˜§'äqEïÉó-ò‚Ù´¦P‰0ïIÖîàéS…®OYe0ŠŽÕ,böŠG¹dªà£¦ &¾½{CµZótuF,ïŽwäÇšêLPå'EÅë·ocÆ/®mϛᄃ6çœ,pEËöm -`žŒiNì<&h’™áã=³µ¡²W\ïÞÑnoYåW|üÙ3Žá†7¿ÜS‘szZCn!hŽÆÛ#åºä<°Ý¶¼k¿buzÎÅï}ÄñaC÷­eWì0yâ§³Ùüüͯøð|MS_qïÞqÙHmd Ö›û[nooøðåOX>?å¯þúoy÷êüÙ?ù'då9õ¯ÿ’ó"ðä÷>áønϘ:dJL팲l1dpSœ®+®ïãÀËÅoÞ’†úgÌ6=òçÿúßÐÌŸó³½d³íx}Û‘iIµ.øàì áJ¾^sær–³×ÑqØN,“@EKZè¡ãÏPsÅrêBFZ*¦q {·¡ž×œ?¿¤†½uÜÝoÉš‚¦–äQS©‚t$­pÁÐv8i)—§œ+ɽSÜOGŒ 4y1‘mr”ËfÞr÷ö;lVpuyÁ¢Xp³¹Ç·œ^||û‹7T§ÏøÑ§Ÿ2úž/®ß²Ö‹¼ä!u(8ÉJ”šÑ1ÐmNšµ43x±À»­ŽTóæ6#¥Ž}&Q£ažìcN.J ¢·à} Q±Z$¢S<ì=µtäx"èW´ˆnDë…)7n>¡+C¶•L™'†è)%‰"0ö9Z-ñ¼¿®"Ld64` —YÒ(< 7Dl)”¤— #Þ¯– ïaø(ÿÓš†ö¿ù_sØ;Ú”“7}Hì6#'UF½ªØ`ÉlO¥$w[ðÚóÙÙ*|õæEsÊóùœÇv$#GÓÓÊÄ$k#0ò‚NÝc÷=O?«bÍw_Þ1ìßñƒ¿÷3„ZòÍ/þÙŒ\<ÿá¶§›vù Õ új «5ÙñýºÑ!8Ž rMVõ¸­G§ŒN$Œ2Ô…f8öŒòÀ¢Xà3C¾÷D×±¯{ªâŒŠŒ»Ç#.NÎ2 ‚ÞLïPB°.V¨fâ"é ¨çÝål¶3ó,ç‰ÖgL=h3Q–ÔT¬)Ï ºÃ ÷œ<ý!Ë‹†ïþúk6Áò_þø¬µ|ùúš¶œkC³:a7D½e9–øã·®àjvÊJ¶ˆ\³ë&n_ï)(¹|2#ä=o–Umȧë`öâ):Yî^o9$ËÉåáþ†g%n¹æÍo¾g 'Ïl]ÇÛ·Pèš— gy½Ù³:}ÎjVñîᆞçë‚[·c¸¾Ç¬?E¬Ÿ ¿}K]¶Låݨ»W,Î ¦i¸¿}ÀGχ'+†Ñ‡Dœõ‰Áf5oß œ•s2^sÝï¹xòGœ‹¾ýï¸I#g—ñòÉœíí o9Ðä’õxÎÍ$Í–'õ‚¡«håŽ0FòЭ=å<Ãf:’lY¼¼ *ÇÝǘ ʼn:EF¸¾DË‚³§Oà1G©=ûqCÄðüâÇnß1?}†29§¢c°‰/¯wÔzÉËÏ_ðõWßqó›>ýƒ¿O3þößýƒÛò_üÙŸÒäŠ÷ÿþ‚f¹ ¸òôÝÄ\Îd‚AÑäPU ÎynvwÌ›%ã6Ǹ-?ýÏ>çöqÏŸÿ«ÏÇ~ÊÓÏ×þðSþêoÿSÂG}†Û÷|uû ĉZgdOŸq¦sÛ·„$Y>ùy³`ýqç™?}Ê£ááÀÕ‹sœó|ýí5Ë ÍßÿñOøþÍ[þÅ¿üïyññOù'ÿøG\õ†ŸÿåßP]ÎyöÙ™‡Í;ÇX ”*QU+L©™$ ‡´gØòlqJ½Zs|DŒ-/×§ 1âCÂÔ9ÓV0sŽÞ¶Œ!çìùSpíww¤ùUU¤é@Êrw°”³„hV„i$ì(a 1`ÂDcþ=à=O$kèJMè²Æ¨Œm™ö=UU‘Wï<Â%¤¸(Pª`®4Çt$‰‚REDRx™ð.DD‰ˆš"¡(±2’M#ÈYA2lGT´t¹ î<'óH’ ÞCòb‚(**yáP­AØÄQK5s}   Â;a)âŒ'ó‚Ciý@UB,u‰N–è:YÓõ#_~7rñáðôêï¾dœö¬g/˜Ÿ÷7Ô«†æÙ¿ýò{¦Åï)¢y¸äíˆ –'kZ#¹ídñÈ¥”L±fòŠ‹ÙšÇ÷ÜmÞòüÓŸ²žŸñöÛ¿âÐGªåK® Íý}Ëà&..5&ž±ÙÝÒòÈ3žQŸd´ËŽýw¶ãÜr5[±8YðývO8ì©æ ³ù Œ‡›o™ê'Wdcsßq {êRqyö!ɹ¹y…NÙüÕlɦ‚ûcdˆžŸ}kø‡ø†½â»ß|Íë8?-¸<{αßðõÝ=«‹yÃÝÍ;Æ)qñdESŸM¯í#íÛ=Ã0ðÑïýˆg<ãoÿê ¾ý5þáO¹Xðý/¿ 7k^¬¯è¦‘®wôý†Ð%æ«%ËÏûHûö[ðž‹§O©f¿}àd&ÈrÅÃÍSyž]|ÌC7òÕ×_òäªâ‡øû<~sÍ¿ÿÿ–ÓOOù“?ûº‡-ßýâf~F±ô4Q29a¢^*l° Çóz ™áºß‘O?yN~Rñý/¾Â'ÏùÕ%Ñ&¬hY¬jöÇn7²œ-(š9]gñû¢Ò­1á,èZR¯Z‚TD!Éö-UvBÛÒ1“&ïŸ{–g˜zbzÒРU@¯$Ä;Dœ0圦LL@òÂHºè1º"Ë#>Œˆè ®¢ÐŠH$IAHäÁÑ™ £2Œk1Y7 c­R8TÒLIRT‚p¨Ê •"<^@læÌq­eŠêý‡xcË5¥TýD‹ÃÅŠÜ´JPU§¨CÏaЕ¥¬gŒQ¢QDRÊÑ%èiw‚ZGä\2Äá&*­°SÄg#"«P1b+‘Æ`UKžÖæ¤ P¹#(0Vb§@*Þ¯ÀìèÑRPdž)¤‰(¥` ø1R «¾døBáD"ïèSf8«£$ܪ‡âû´µBf‰ÐE´ðIJDj‹ÚÀ ±)(ü{)ÏãøžŽaÂdQd¡ 4c6‹˜®a£$ï†a U87a“f]é&L=&iž6IL¬ˆ²EFÈÞdHBá©Qn$׺@¤ô¾G¬UȬ„*‚ ÈQ!*0V`ŒeˆXåÐÖ“†œÿ{ÿ«Û–Ýwb¿™VüòÎ{Ÿ|Î=7VݪbƒÈ&E1$ŠRÃmvK@Ã~0 ð‹Ñ†¡Ç~i@€?ôKC°Ñ6`Yîv·ÄVbT‘I‘•ëæ{Ï=qçð¥•× ~øJ%µamÀ~«l`o¬½æúæ\kÍ9¾9Æøýå@ÒÚ‘tÈÞl˜aJy‹ é-u¢0N¢½'h Ú*ŠZ F`BÀÖÈ ÊBÐ#”¡o2’I‰)U°èT¡Z½QNiZ‚îébI¢p‚R·å¬4]jés ó€3RPU€Ôã$³ŽÞè“•ˆÓ‹ãºÐÑ›å%™é)W n`™8CÑk¼oH²˜Î |§ ,-ÜX„ѸD¡}ŒR¶ñ8­pB¢°|ó?ä`½ñ³_'‹}á©Ûž(ȽœiZ±¸ñ¼zi‰´çµ‡S„/ùÞç—Œ³÷vc– `2Œ½áâª`:Übhb"‘²+ÖëWìÜçÕñSNϸÿÖO0Ó#NÏÞã& Ù†Î"²$âøÅWeÏáx—ÄóÊ.h;M¢b’tˆjo°«%*ãóß[º›>df€©νb Éòš¢©p.eÔÆMƒ’=ÙNLÓ´8Ÿ#µBÐAëX¯BIÄaÎ V'—,šˆ,ŽHÆCÇ¢L„öm [Û1¿¹Ât1[3IkêÆÒÍKT1˜¤ÈþŠÖÏð±ãâÅ‚ñ@rÿþAjlÙsyqF2êÙž½N{æ)Õ1ãý¾ÙáäãÏISðnjŽo®±íá@1ì¬Ê‰›2Û*™ûs–Õ˜[ƒÁ—T×gÜŸÝÆïe¼<½`{ÝO¶)¼gw$aFÜJ:û'%[{ µçøì9r«çþáW'+nægLßã0ÛæêæÏNn™»…SkìîÓ|‹ÕÙ§pÑóů<$hŽŸ]ssåÉÇ0;ì(ÊYŒYNÆ4—ï-Ó£«Å‚Ú„àɆC²dBC`>X9¢ém¦{› £³WXa‘Än‡ñaNH –Ï×›oC³ŒÌ«9®pû`‹+{F´ÊØÎ·9½øŒrà¹wûþ:p½Z¡ã‚I¦®Ž{^-O8º³ÏÞh›¶;aÞÚÒ2îwß8äÅâ%/¾sÌO¾õvŽò;ßøæÇüüÏý5Ƴœßþ£?£¾jxç bÆzõg²NiRGj:26Ôäkß0.yìÈ÷F<ŸŸsükÞyü.£QÂËÓ÷m?bO8=þ€‹Ë%Þ$K">_Ÿ TFâÁ ãáóNp|ó>«—snÝyÄ[w(œåâê f­Øš¤\оpä“„Ê[âP ?$¢­œåyËâꌭ;G¤®Îì=ØCh8ûø#²t̽{÷y¹º¢°-oÜ»E#:^½8Æwb6$ÛÚgIÖW5‹«slˆ¹}ç6i®xuú’úÊñø#œóœçlF f»ßtó9o=¼ÅÊY¾ýÞçÜ»}‹ŸùâÛ¼÷ôÞÿö+Þ~ó_ÛbqqÍúôvƘñÑÜQö3jIâ Á{š•#ÈtL57¤iL4i(o,ZŘHÓÖsT6$‰rl»Âç1¶ïñmÍpg—\ VOVT³–Ùí;¬çœœ÷Ñ{_wô½f˜Yúµ§I=IÞc»ÛJ²¨£S×{¼ D¤5‘_C¤I¦æ²e¤2È%²qXQa…Áe'] ”÷Ðõ$ÁH§°‘§ šQÓWVªªA&Š,îÚЯ²´e)–1Ñ$¡3%Iç©BBÛ–ÄQÄN&°>A´%m(cÏ0ÄŒ¶rnª‚ª° ã„0ͱ]E¨%(… Ž$àRjßÓ"A ]»$ tEð('IQèÖáL ¨G¢hCì;zÙAˆbE?ÈTß¡±x­Ð!LJžN;º:#¶§;º ðŠP ”°Ô™Ùì–¬ÁI‡4RzdˆpN2—ÕZtÞ¡uë¯; m5Qâ ¼ªé·=*(¬ò$A£"A¡{úëž®s ÷4±pø¥B«ˆ8%KB³’ ó:[‘ú) ’¡6\ GÒâ¸ei¤1D}G1Ö[0‚È ‚QG×§(ÕtŽBZüXúï Ò`°Bà¢ã`hc ÕfWNë C;‡{j§‰¬'—žB;‚”P›MH^úÓYªd€À¹šµËP¡AÊMuOÙ€@bhB nMð6롈©µ"Ž<¡HÊ4&Eµ ' Öƒñ ¡ÕôB ¤„PS‘ ƒ%R«<ÊG´Á èû„€ÇGžP'¸ØádDj=.t§IM i !³D… L±ëÁdt­ i½(étŽê:´j‘JƒÜ8Ã"œ„nÓ=ÿëí_ù:ö| ™b0Û¥·‚É”W§=eµäáÑŒJx^­¨Ín$‰õ¢ièõœ¾3„&M‡Ü:ºÇÙÙG<»<åò£OøÞ?ü/Y¯tÆptï€[ù.O_\Sšš{[{´!¥¿9%J,F%¸&PvŽÒ(€Ì)n*†ÃS «æšZ¥(3aÊ´Á "Ewôv‡PY–ýÓ™f62?Õ¼º˜“gžÃÇCüÊS5–28"ašÆ¬Ê5 ‚G{†ƒÝxñäœ~ÐñðÁ„Ô¥¼¸ªX¬ZF[0D,.%Á[Æ£†Þ ‚ HmhBÅÅYÁ½ÛîííñíO¹^^òúÃG¤]Ï^-¸70ÛMyrü -J‚Üe ÈÒÀ¹»F¶9ÒwD"%†”rEf—,Ú)Í@Ýð²‰H³„ƒCÇõª£z“O@fŠn]0›j´rS Tyƒöž Ÿ`KC.5ãiǪ¿äæ*ck÷Ã$cþê ×ìO¹¼ªÉö¹3>`Q=át½d*¶Ìes‰÷Ø xuzF»hyôÆmâ¼ææSÉj•ñÖk0É4—í6‹›+LrͽÙë”p!kÔ0BÛ†N–¤ý€½ñ-ήÏYÔWÜ:8 7Û|ôêœêyãþC\­9¹|ÁñüŠ£ñ!w÷n3OY¯0KšFÃY˳^^!¤àákoš%ïúñî·oÑ_—ÌW¥­I¦ol2?o8Y?%bÊp2Äd%*Ž9ý|…r¾tÀüjÉÇ?xÅ;?ù˜Ç÷nóÏþà/Õ’ŸþÙ_CÅð­o}“®èxtt€Í%‹zMÔåÈÚ cvfæËÏžž0Ø1 å=fMºX<;Ç­Æ|ñgð²|ÆÇß}ÂÎpÂþݲ\‘¡¸¼¾àã_°=ÞæáÛ·Yܼ‚eÏíT¥,Îo§TUà“o~F:™ð+_xÀÖá>|òßûä„»³}Þx´ÏgŸ¾bÝ]óúþkÈtÈZΩmKsÚ0ØûÂ#\qʳ÷Ža¨9Ø™2̧?_puuÎÖÞ>»[šÅ’Î÷ ¢a%KÑRXG¼ŠØÚR䃜ùÒQ¯–˜IJîP­,V—Ìò+X_^0ÜN¹{x‹ù«5‹“gdÙ˜_x“b}Åçߟto—û÷ßÀöO9/6_¦Æ‰¦Ë‹ÓñŒtš°X\áÛˆ!V|rvŒ¿¬¹ÿÚ#’iÌñ'Op*bº›R_4 Ã`wE¿„›F³)ë¶§«ãÑ€¦Ð+ô¸©¨ É8ˆS§-a٣Ʌ i*Uˆ\Ñß4„1&ˆÔÑÕ=õjSˆ“æ1Rƒm<’@ÐEFÕ)QZຄ:¤UmÐ*¦³-‘´”D(/ÆÒG’hÊ&&ŽNxÆZÓ” r 1m ‘Š\% VØ(AçŽ|µ¦7„„¼«¨dJår¢BšÀ*N‰Ê€ò-Ýö U6¤e&DIŽœ7”²bÒ%´±FÄ‚ÐzÛ"|F4ð8bÚ¢e2Ð7-•h‰²ŒXHjW ²ˆŽ€®Á'ž c²ºÆšYKHz*¯‰;E4‰që@ ´ËA ‚´}GâµjQ=(Ó(A\xÜØ mC_lØFB8¼—´m`äm.©ê ¢aΣýÇ´:°"17'KjéÉ÷ï0Ž=ýúš›^‘ö–ÑÁ6U(±Ë9ÄS\œ#›[ lî˜ež®‡Å"ÃO³¾À»•ȉuŽé<ëÞ¢SÃLjú(P8IÖzúÐ ¬&1MÞcL––>Œ‰I¢+l_b]ŒÊFHkq•%r¼v¬VÚ+&Ófà8žw„Âs÷õi'WkB–á:°—çL=`o<â£OžPT5»ÛTì’õ’¦yN?€ö9{õ£5Þ|„íVœ~~J•E¼6Êñ~Éq‘’ëmZj%i{EÔ‘mO«ž ¢’ô€åêõÉ Qv‹hOЇ9Òï2N,«ÕS’t|s3`==qŒö÷¹yQ3zÎÎã×ÙÛ:dyó97ËkâAÆ­Ý!MåX*ÃPz/o¨MÊþþm¼»âùóŠ®í™Ü²Ü>Ø!ñû\=;#,˜lqÖjzS±Ÿ9΋Žy}ÁãÉ!éÎm®ëü Âwî<à’»î =ãzá®'™:R5Cä@¶F\eÜ´ËÎÖ¯`>—¤ zÙÒö†Yщ%eíìï±§ —'MtÅÑá]9ælÙsÚ•Ä&a˜8<ºËuGf,³[CÎW%/ß?å+_{‹íG{ü³ßÿ—äí ?õ3?O;ñÝOþŒþ¼àöÞ›0)^#jG<šçCH <醊ß,xr=g8Ë8ØÞåøÃgtd|ùÑ[øàùôÅIBdö)Ê+ö“˜éþCêÊr|ü>uÙ1îp8>À¨Àº²0h‘(¢a½¼áå§O˜>~‡/ÎêÑŒë'ç´vAïñ0e˜Æà "MèW, Ê®çà(cozȼêYÜœ vabÉ­w9?9çùw>æõGØ;¸ÇgŸ|B×ÀÃ×ïàňùñ ]õŠÎæLw·8˜å´®æüƒkº~Îýwn³;Þç[Ÿ}åšÃÛw©„äêì%·';Dñ”'ÕA[¾|ë>'«¿ÿÇßæÝ7óæW¾Â§ßý'Çäwn3NÇä¡âúòœÂ¤Ü9º…î=‹eɲZ3´žA¾‡7Л) áì’bò™Äº ›DäBÑØ†u_’µ’xl$¨54z‰ñµÂ^^‡¨ÃmÜÙ’Ö9bJü07%“˜¢eí¦ªDfeÓUC ^Ç4Þ3“ä,Kä’tbpu‡/VC猖!….öضG­DF̆£]BÙµä ø p¦Ã’¥@°™@׺Õk²."Í<ËJ Ö%!ÈANAÛÖ¬u5û †9½2¤ýе•`bâT²lÁW ƒ^ÐÌ$26/QIOn4•èLÏD[Ú&#x‡6-¢O°~CoêlÀ8”ÄñC¶RDä[¤¶t!ÆõZ¥ë°ë„F·(]áØwT˜VÑ' ±±$­e•§¤MGÑôa0.¢‰Z÷ä­¢ C{É6ÄŽÒ Rïñz>5VÒÅ¡bLèB‡‘5Â蛎XYzŸÒ N¡E÷rS(¡AhhðŠoþÑ?Û8X_øÕ_%N†4Þ‘*DsrîèÍ‚‡1"r}ÓPÞ” örFÆG•]SÞÌÉ£1™Éq˜¶åìô)j°Ïo¾É_ü7ÿ€¯ýëüîoÿ6¿þü÷ùä£Í‚lœ#¢±òд4ÒÑ!êž$‡ÉΘþÆ2¿Yb&cÆZâKÁÒXt<` }µ¦ôq>"¢Ã‹1®oo ÷ “mlayq¶F î ‰œàÕɯ5;Zu=e-PyFõxգȱ'+–2°ûÖ³NñäÉKk¹{wÂd+çÙiÍz^²µåI∦QøÄ ®Ž«5·LØ·ùäjŪX°›ÇL‡/$ªe/›°Xι<ÎÎÎ=¶†;\6¯¨|KÊ„®jу)$è‚g%D ó+2mhŠÊ€7%váIõˆ8q¬ÕvÈ¡h*R!ÈEàFÌÖ!SÑÖ,)¯Æ¤ƒ{‡1ëÚ¦$Ù‘u1«ç%ÕÖ·¦ÛxÎ8[]õCnߊhW­Ú!‹S®oN"æpwÁÅZã‹»[sÆ£„—«ˆ²»aO"T„«¶HeÇ8néEL'Lå>NO¨..Q*!M$Ck¸ž÷4YÇ—^ÄTþìûßcÕI^{û{G#–Ë^¾<§î:öõñlóâºuJí*jó}¦™â;ÿ€^mó?ó&œ/øô£%Ѩc˜²,§¨Nn.˜ÆŽÑ`{ÃSé—Ëå^{ë.•/øÖ|Ä›ï<âîã‡üé|H_^óµ¿ô—p2çÉ'ßÄXÉáà.a`™_œãû@:Œˆ‡›*š.bõòÐiEñìÕåŠÙàˆÙ£#J{ͳŸr{ò6£‰ãôü˜Le¸­˜¾l‰‡ÛÝ=äé“Oxòùgܺ÷Û»\VO(Ï &;¨<`Ë–t²M64üàÏþ”E|À¯¼¶Ïwïðo~“g<åá½n?b.OYß\à.F¨´dt/#ÒÎ_>ǘ{oݦyuÅéåšè0c“ñ>¡kxùâ)jwÄöhʺ™ÃP³“ä–,®k¼^beÌÑÎ"óòtAhVŒ·§h“ÂrN#ù`—~±¤j× ¶2’Ã]lQÓ_\!sI’m#W%§õ3ö†;Œøèâ„Э¹Ï¨£ŒÆ[†Ö“Ïvaäyv| EÅþáñ$æüù)­ÜÞPIÏɳ †ƒ}ÄÑ€x±$~ hÏ*òTƒQ´s‡Ÿ9Ì0¡;s¸¾c<Ψé0µCÅ3œ]á*I•%d£ŽlÕQ…„ahRÁâjMæq2Ä:…Ç"¤Ý¢€šjÝ@$ ‹6†µ—ÔM`ê*ŽAú²±)/õ/ ´P™Ri…¶ŠÈ{Œt¾CˆUŽ2:‚—8h¢ž­<ÃHOy0q…ÔŽ¸@’RɆØzÊ.`W‘4̦2Ñ^Þ ,¶¶HÛŠ´oèMQ Î!m ˜– 5Jf]‡é{òÚ>WàSƒU`*FùHèÝ,\¾ÃE)G@’°­Å ‹’ 6öئExEd^i«ÆzÊ6 ’œœ’y ™¯è´Cz…<¢±ˆAŠ”Ñ×ô­EâÑIŒÈ aQA(qNôi¢wZ¼ñ¬—Ý;’iGOLÞkÒ( U…j5FÆ\šŽ›µ¥Å:\'ÉD†Pa@´1­¡{” ̽Át Æh„ÑX§‘øMBºÔ Jwh‘TOã!1Ön$|ìPU€Ä IOµ2 p²CÅ)4]ÕlQBm-^HÒ„º…8‚XúJ ŒEDÕf´RЛ–¸–™Abˆ£†b)Èã@ãQXãä"bSá‰i d^àl6‹‚-‘ZÐy…î4ßþÓ¯üÒ_æ[ßú·ÞzÓET¬A‘KM_XšØ£äe{œUQNð?Ì_sÒ`¤Ä… Q î$½QÑ üFßóGZ„oþüo MK>®^]ö„´æÞÎ×f\Þœë„d;Ãß,h“*–嚢7ìq´5âÙñ >¿zɃÇÜÞßáÙË >ÿW¿Ï/þâ/òû¿ÿû¸;_£*N9ÚŸ¡õˆ®[#:‹†ea‘YJ–\Ž]J:3`2Ð4¡£¸YoÁ8Þ¯;\uC4¢† ®-Wå˜$— ó>´¬ÂZ( Kª,é$eœ+zë9­ºrÄF‰°}ŒÄ2 »^ÐôŽ£û‡øÇÏžC>ãÞáôçœ}^à åÞM±è™7ž‰¨æ†8›­¶±òœ W4>%ΰ¦g¹p˜n€¯¸¼)}‘ØÅ¯¾Ï jãjËÅå9ÙÃÛܹ}‹WWpòòšQtÈÎ#ÅúÄRyÅÄôÜ,–ôUF¶3&¸K|'铯<ìq±pØú’N®ÈFwHæû$ò’‘ª¹¾°ä»1o&x•ðäúŠªoØO=‰UaˆÜòäžãëKÂ"f?= Ö”•ÃHÇ$Hnn¥]3œDìNÇœßЏa»ùkݰ¸8#iòAF¼HQ"c-Ï0©awïˆWÏKæ—ÇlO!KÉdIšÜæølu—ܾ³Eµ¨yöÞ‚¯üÔ&»üÙŸþ9±_ò…¯ý<7kÏÕÙ÷ˆ:Í@í0¼5àâüŒÅ«‚­½=Ô ¡·-ÊêKoÂ80ØM¸¯öyzú‚Wgoù!‰iyòÑ)³ý]Ò4åºh% xhÛsF·=ãáŒAt‹Î.øìÓ3Í(¡j i·©"UFCÅu,‹ οû9Ãý»<Ú¢·X߬(jqC.c®¯®èÊ%‡o¾Î`ºÅÕÉ笫c‡Œrƒ› Á9ìõœæÊ°·gÝåÉ‹§¼xþ”׿ðö÷yþÉ3lè8Ì·‘ƒ˜yU#Ö7t•CdSî<u9øœ®»á­×ßÄnøüɇŒš„»wŽ8®kl±äÎîjÉ^\³7ÉùêWîòòyÉgO?àðíGìììróÁ1—ë’t–rûÎQ㙯o¨d êZ†É6ptr…kFKª¦%$0P5 =D» ëEOT&{–€«"+1hd—Ò„k"“À GX] Q@ÕS˜X\´Æ-D˜2‚ºÔÙo¤TdB; èÆ“HuK@!0ã~½Äui 61S6B¶˜Ž*¤ë1®Åª„8®ÈMЬa.:8ò(¢UçÈôH|J T¥q¡ÁE†$d<]ÓA"h‰E …tË’8Gg`úž&1¬|Nä– K'4±egQPèÕµˆ4ÅëM(®%‰ÖDqLWU˜¾DšëR-.ÑÄëZZˆ´ÑcÚ }hQ²ÅE›hÓ8°©k&òh“âÛç%A¨ &@KD)ñ¢¥3™ËÚãˤ›@×UŒ ˆ0`)68b¯pµÇ‡ÖAkú:k…´ …$~ˆ‰N;TŸãª‚6 è4"µRhÛ:0 ¼IдD®#!%D›ªñª3\µ›v¤>%ÓŽ¾‹6Z†ú†B$ UL/,}¨6"Š5ÚU z&h½§7–Þ)œ°(çÑÎQñ ‘(½¡é<&‹ÖÓERu(mé‚$¨¥K|« "¥÷=¦ÝÈȵº&©BÃ:fCœW„V!OJÃMG3ï!5¤ÊS `%È=ët·‘ JEüCö„µïIeG1‘ÐÕÑhOì3ªÊ‘%0@1ï=^X"aµ§ï7Jg2•()7yØ"àdŒnmæ‰{Oèd'þèŸü—ü­¿õ·ø¯ÿoŸ×¾ö— }I.Ñ"‹„8íðQFß7ä½ NZ|—¡‘î^"¤F©]µ¡¶.¡4-™WtÒ#|Ì7ÿè‡U„_û *²›„ãFÓˇӌ8K™_nªò˜)Fy‚šUqAݵÄaÈlŒéz–vE]/èý„éþ!¶ìxõâÎÞÿ¿üË¿ÌïýÞï‘Üg÷ÞA$¢²MK%$ÓÉé:’ÂZÃüâ’d3ØÝ§?¯Yö+" …FzA5”à,±U,T¼alÔktbÙžN(—š“W&iØ¿?ah[– ÇÂ{¶¡3 í|2— A‡WöÔÖ SˆG=IH)—=źæÖÑÓ->xï¯^Üp÷Í)Ó.ZǺ¨‘Ë–²)ع}Àí½._-9¾¹bœ%lË!ó¬§÷ ƒÆãÅ5½7dÑÓ­„åå‹«G[ûèÞ³nVLÆÛt‹Q[d¦˜÷=[¾!3¥Né>®¦9é|Ä…ìÙ9ˆ=ò0$ æ´kE³v¨´ae¹I™Ö—ö‚¶Ùfç`‡fÁ²[P/%Ö†ʶÁNLÍÕ,X- B«í RŸ0ç¸io0D¤“mšõ’ :5d*=&‰¹q)²©IMIâ#ŠzJv/f»[óÙ‹pw›ƒÙ6QHIÝšÞ_!÷µbu£H<Þšp# Ž?;Ç)÷¿üC‘qñäë5•›±³Ý‘‹1­,YkòtB±êÅŒ)žp){ÛwµŽ¼8¡¥ãµÇ’Q†­År…Õ i2`"3jÓ\—(Óq÷ÞmÖW—|ÿÛ/yüSoðàá~ð²¸~Å[oþI¬9^~LyÙ°³s@>Ùârñ eF;C‚êHR‡n^]c¤C ‰1ý‹OVǼ~ï‹Ü}sÆw?ÿ¯Þw¼y÷5DdyQ?áAvq¶Í'Ÿ¾¢]œqÿámê«@YÞ°óàG·±ºxÊ·ÿìO˜f3îüôš›Ye ÷Fô‹«vÎøà6£Äñßø.ä¿ñ…;¼ýå7yÿ³÷ùÁ'ïù;³!ùnNÙSôÓÙ ¥:Î_lß>àö¾áüÙ•Ù§tâš­#Dßrüò¦Ã[ìLÆ\]ŸÐŽ2v&[à%åªáÕò†\õÜ=|@¥Ÿž¢t÷L«H«€N óR`Œ 5"¬Û˜„ajú8å@¥œ—'g¼½ŸjÐqU-ÉEÊ69œúkä5¼uë-Ô‘æäÉ1õUÇÁ¾ÆÖ +k öw'ئåæê ßÇŒcÉfW@Ú/k”3Ô]MÛ®l`…»YÐ…ÐQu„í¥A-[Ú6Æ©²t•¢ -q”Ñw’J.‹rJßCèéÅ ÄÚ zÏJôØN²¥ 2—tnŽlÁ0Ö´n†5+„g¨’Q7äB¢¤ rš¸ké3M;Ú^ÓÖ€(é‘&b¨WUG:´€q2bÝI+bï½ÀRÅ(Dh!¹.:xCÈve‰|KŸ R’„’J#eFÝ-€#‡DрΈҩ5®—DÂÐÓ"IÓÄ`AôÈ"Là¤A, ÜD!C‚*|œmò]Cµ©Ø 9NVtl樆 ¹ØñŒÚ7-ˆ˜H(zãˆ$˜^`EKï-D 'ôbC|o B–2#e£è[²V!Æ•búA Tï!j ­í‘Q@èÑLˆÕvÔ}ÌM¢)Û–Øv-ñ* ³¸îŸ ›†ZÅd(/±Å*MÖÚDÒö²ëFb#ƒ×–¼•t­ ‘¢ÞÑ÷'@¤ {E¨%J5TyŒ-,©zz¯ ‘ÇúmSLæi]G_häÐc¬Àiè,DFеŠF5¡Q­AÄ@6="TA¡… ²rƒ–°Ðv‘*ü -4m‡H-†^€P¢ 8‘Ò9KfÁ£YG ³ d™õd]„éý&4ç;m q‚è 2€I×È6°ìÈÔ’v µÐ¼ÿgÿ‚_ù•_áw÷wyëK_¦WàÚã,eÞ‡Bô¨®¦Š q§ VØ®ÂzIœ¤èl‡Ž5Ô‚3zõ–N$„æ›ø¯¬_ûd7âÙuK-ÙßÝF{ÉÅÍ’˜h2"ª[lL$ÝÊÑ·–áÎ.[Ã!«ë3>?=á`ûo¾y‹O¾ÿ’>ÿŒŸú¹×ùþïüþ:õøgÑ ´˜Ò4UÛàF’c"Él;b¾.iÎ;;3dÜÑŸ•¤3CšL©®KšjI’çäãœj^S-`‘š}ÊÕ+\"q ÇU·àáû¸ëÀ‡Ÿœsû÷öù³o~†n¯ùâ—~žºoøèôf2!KÊÑ^"êœÁÞÉþˆ®®Y®ÝM‰Ô1ôlå#|ÝòþÉ’òðÁ>.•\<9§5I\Ó;ØÉ"ÒŠó§sD¢Ð»‚ËUMêf¤éõòšÞ´Ü»³‹ªüàéǤ®æÎ­/{Nž¿`™iîÄ9™€žˆ¥íxöÝω·ïñÎnÂÎyñÑ+ž<ù[îóèþÛœ¿ø”óÅ’íé>!RÌËf8@^\¡{ÅÞwéì%Ç/®)UÆ­í1ƒC^žŸòêó÷9¸ûˆÝñ]/Ÿ€MØßÛâBôÈrI)Î/– Ó)_ܧ©"Žß{ŸT î?z²V¼\?çPGÌÆ)O.Z2iÙ<¡Ê«kä­”ítÈúéŠãnÅ;ï~‘$,>Aq­h&U;vFCØ i°lªü:+pn…ÊâÌ z‡Ö‹ zùŠá$'ß²XôÄIK–O(Û5vY`â!é b %«Î#ÛžÎkâáüœXHœÛ'M-"ªh/5­ì˜& ’@'<±P¸®'ä T„X6ø ¤ˆð]Iň&"Ôj¢‘qLë%²^£ô&iZE= ]¨½c -f˜Ó:Km;âMF1ÆÖœFÊŠB;†Ãm†¶f¾ì°(´–$qŒì-ê‰mOŸ¤ˆÎ\G$r²¬ÃÚ†ÖE\ Oîk†rÈ<•dkOw!©û©!hÚ°Dö’È’áÒ­±À9ÂU˜Xà“€ñJfØJc‡‰w›ÒF=©¯-.QD• XOˆ7¼/Я ¯0ÚbŒ¢%ÑZ 3C0=¾éN“Ç y±¤ß l°#dR:«q$‘*jOÔIú‘AêW;úƂȦí2DÕÒé-S3T/$Ò÷D®#&èZP鎪3Ø:P˜b¡# –&„ h½CŠoc¢8AJ/K mHrAº´Xc©È‰¤ÅHAöˆ®Á …&Âfå-º‘x„ÓàJúxˆ =8fSY[ÆÄÚÑ;ôžt䨪TOÜ d¤°MK*=J¼¨ˆBBí<¡n ‰@ú ܺg µ–,{Ç$1ø¨…ÒÓ·š& ¨¨G7z– -xMa m5©)¼lVÑè …ÄÒ“äÈ@ƒ'ñÁ‡Ž8XV ¤—¤¡¯X‹ˆ$8¾ÿ¯¾Á¯þê¯ò;¿ó;¼ýÕŸÅW‚V5$>FE1 =Qe±Y„ÕÑJ4ž -¢IqÒ@ÔáËž` 2wh‘ àBX$±)à/þð‡Iîoý̯3_‰e4ˆH•àúÆa;Ü‚\[¤MheÁârÌ8 ]MY.¹©ÒdÄôÖŒþtÅÅõ [‡Žøöïÿ¿üË¿ÌïþîïòÆ_ú%Ö«’PUØLÑu–41Œ’yšeM(%ÉtŒJê늒’4 EŒ<éeOb\,¡[129Äcš²àú¢ÅëžûoF1ó‹ŠWMG"Rv2GÛz'QBS·){¼OqÖÓ)ÁöÐb¤ãºˆp}`<–ä{#Ö/®yz|Ìk÷òp‹O9¯kré¡3Ì'D©¦9žså¤Ò쫘Új ¶¦rë)"¶,º |0ŒÍé[*+±Æù‰¢ó1nà¨Ë‚a—¢·¬ÂšÔ*ÆéÓÄœÚ".ØK·M„•7àkæÅ€m-)-½Ë9´1sû’«Rq{ïCéxqöÙ™FÔUG¿Z“ GÔÄä‹5èÉÆ¥k!I‰äˆª.éŠ T¼‡ê&„æÉÌ`‰ ŒL˜K‰ö |Û£EO¡Ž˜ qqÃçO1Ýß§<ωܜ²¹áªI9ΰI Ÿ ä1WmÅgçç<ÞqÿÁ;,Š5¦mÜê8¹rYpk0£íz¼4D;Š~Ù3Ò n;åìô%°“ÆÑTŠª¸b6‰™nOxu²àtqÃx2`  y6@Ëçç„´åw¹zvÉËç'¼þ•×¹sÿþ§ßůV<~üUtÞqÞS?» U{¼~Ó›—,NjvŽF$ã k+¤œP].¹)ÖŒ&äñ6Åü†Åõš½á6£ƒ-æ×\½\óÖ[o“çßø“o³·õ‡wøÖ§ßƇ‚·Em ¦Ó}DliŠ×&ÓŒHôeïÉ΄¡”¬‹5¡WÄV 'Ž£§‹%ÇÏæÜ¿Ä`{Èõâ„EÑp÷hÆxtÀ«W§ÔósÆÛ9ã[¯Q´sô‹¹N¹²-b G鈦*9)5#“ƒ„`ª„%–º/©) ÁÛØæÔ•ãƒóϰˆǯ½F´sòì9õÜsûñÉ0ãâÅ%!SlePÖ5M“;E. æÜt5¦M= ’®l±­%žL™¤‚jQPužt éè‰\B{’ ë7¤‘ÆÍae ¢(B M""4Y+X жÁ é’œÔuø¢¢IQ«‰cA:2¬–P­+RÓ%:£CE¤,= Î8B¦Ñu‡%¡ê‘À¤1½·4Vlƒˆ%[éßuÔFÄ=BZ¦yB³Ô¬üš‘ô1A‹Ðž2x†¾ÇF |Œ7Ûu8@ô Ó›hXT˜PMø(Æù5áŒÈÁðTÒ£¬ÆèCCì-.M Kèc‹Ò¾—Ä]Àã|ƒ š(U%>´tƒ4±ö°µÆIAH{µÌÓ@§+Úk‡vzÃŒâºGu!:\èÄ!]FéÖDéhe Ï5…•ôE‰‘ŠDKÚ`éU ‘ÙfžêzôÜÓ˜ ‘ÇÄ}Œh{T F]+ ×sê"V²$PT!€TdCôž…P¤&E:‡WPE8Õ\ h¤ô¦#,DŠ(Ñ´´Ø¦!Kcz#¨º–‘Š){p¾E$ÂGˆVÓ¦5½ H¥mLšÖHL­ñºE‘b¤¥ìÖyŒ†–©=Îö­í&Ÿ®OÚ ]V£:‰†&RD2 Ú¥×¶b`Yfp¾!.µ„(BuI¤0a“„¢ ½ Ö!<-FW¬xyÁKª®ßh)J‹µ[âÜщn5ÔdÉs÷ú!?øó?ø‘/rÿÍŸF„œ‡A´‘+Z[ìX‚Q±ö+­3ú´kñEH„RXá1mŒ £u5Açøàð~óY¿õ£¬Ÿù›,EÉÑV‚QšËëI’­i'6ð­aKUHúÞ°3ÌHgÚEÁÉÕ)³á6o<¼ÅGŸñþ'/øÅŸ“×<æ÷þà»\~üç?êÔƒ×ÿ>”¬lƒ¨ƒÉ>IÈÇ–rÙQ\´¤»¦»CW ¤²Œ’!ëõšØ÷d»cL”Ò\uÌ]M¢GÄyØP~•¤vDSap$³ˆ„”aÕsÞê¶#Ž<™ôVáãYìðA¹Š‹®#N³lHSV«kR‘0Ž8^–ÌW“ÉidP“ ^}xB+÷´š›EAwD2Fõœ§³»ÛŒn¯ž?¡iÜ%цç/_±^xöÆ#¬l‰´d<Øâz^°ººb8NÜ¡¸š³¶K&&gl¶ˆCÅåb}‚ÙÖIJ£ªRd$ÙÙÓ\-"Šy`8^ÓxAØ“Ŋ¦´L¶gèTc› "å±nñÍꔕkØ;zaøàò»ŒEÊ`ò•óøjÎ(sµ`]˜å$%vQÆþŽDÔŽe¡K‹¬—Dj É-LtÅrqÅÅyËÞÑ[ƒË›ŠøvÄü¼àf±æÞýCÔ`ÄìØš_áÛ”> 4Dè*b°½Æ˜!‘ØådQpyvÆ×î±ww‹$q”sÇb³{ I')ÇŸÐ;M±¤¶ ×Q3@(IrГE;TÍš±,»ÀÉIÁøñoïðâƒKlµd¶·O©×Í+¢Ë†­­×1™âå˲ÍäᄺY‚5›R¬×ÈT1$ b|»æâ´`w¼ËÁã)‹âšW/Ùº›‘ŽzúÆppï-^=}ÂÓOÿ”;íÝæâÅ%©NØ¿{@yµæª¿ +öõç«‚ÅÅ¿ø³_b|ÿ-þáñŸÓ¾¸ägÞý)ì8çâSK§fÃŒíƒL6äêâSÞÿpQ÷üäë÷ù©{wxzrÍ¿üã?a²½Å½ƒ{Ì‹Kp033lð '‚Bz–ï“Oî²óÆ-ìùg\ž˜&í³—nÓÜ<çérÎÝ×¾ÄÚuôÅ9»ƒº>àG4J¸©ÖÔÏžr°}—ák»œŸT,WL‡#nM'<µ5ëó%·v†ˆ8¥ZøqAœ¦ˆ³˜"®¸óàˆ<óâÃÒpx눮<¦îR[1uUCÓ#E†i@糟Ãj‹¶/IëžµÈØ“&FÛêÂQ.Ϙ˜¶ï)«ãÉŒq:À­;JWÓtPÌv¦Ø¨ Ì[zಌ¼_mHÞV‘¦‚^)š®&·iŸÑ =*Š©Ê«##ðAÒ(ð=g‰'¯ }EEä a˜«!"Šj#o’E’ˆ¥Ü„Xb§³i]QXK$R¢`IEjR„Ô•eW$:#W9M@Ð9:•ë \ÆÊØ §MC=whY ‰,Ë&¢©‚޼‹IRCyü§·Ù+±ÂF†V*_0’)¡VÈA‹ïÀ›W TÒ„%[¬i°C…î@ ‰HBWàcCt1±´Î’+OP éIl‹˜'è±ÀÊ·6ÄZ TÇ¢•$Dd8 MH臂¸l©­'΄ë©ú@" }¤‘Õiú‚õ’¶Y¢ÈxH›€²]ÂHëŽ-åY/šÈS«Ž&$(ïÚ‘i‡´ ’f#Ž:¢8cé±iIzE›Alcú¢ 6†ÑØ@™R؆>îÑ dÎÓF†®6ÄR’É€“ ƒPi«¡ÃG¬¡U Ô-×:w¨zSQY#L…ÒŠ2HRÛÇ=}? –(@„ Öå¥.HâÒ!µ ‰ºñt¨x²÷HŸPHÁØ´tAqea,œ\"¤ ¸ˆV4ô‰"õÐXˆ/°N€èXR[‘BBËM¾˜×¥²§«:"ce`¨7u‚ˆCY³n5~ëß8Xo|á«]ƒä8Ûã K6дrH¨=KfU„e˜lrÍZcˆ•¢žø_ƒ†…CŠ¡-‚È@toýÑ?GüÂ/üBøþãÿŒÑH`»»–T°Ÿ°þÎwùüûzoB`¤Â•»=2€ÒzOÝ÷ĉÞð"ZOçjÖggüÝ¿ûwù;çï0Ú=À:‹D¤ÄhToÞ”Ñ)„üAáz i$ÊmJD­H, Zã{w!2’Hú°avH^àl@jB¡x$ÂzœÛT'h#Nâ‚á0BÓ;Aß÷˜ÈEÐ·Žˆ Ax„!%8è‚G \éÑ"@ØÞ#„@¥á=¶u<^´ÔHmp¶ë°R£d ÐBá‚¥w ”!ÑšÞw8k‰¢Pt}‹”t½C Fâ¬'8RbbBáê†Öw(“( AâB‡ó=Þkc2`½H\°(¡2¢é;|pŒ2CgMä  .€X€³t}„о­R#‰p¡£ ÙTìPÊà¬ÀöŽ ÌDŠ¢¨™Ï¯0qL>ÜFˆÛ;L´ÙÆ®»ÑIœíhœe<3Ä8àêfE]W ò„4MhzGè6žÐÛvX FiL¬è­£ïZ‚£‰bµŽ¦í^1Ê3‚òÔe…FmƧë©ÛáY– LJokè, Ek`#<,¹¡x+‡ùá{ë.àÍÄ‚‡à hBl–„ø×c6S>›ë „@øá: éðrCÓ„ÍùJ`C@ àé7çÙMûA BçÑ‚T€Ã#!BpÈRáE@ˆ€÷ˆ nÇ{A@ ´ 8ðÁoBAR ¤»{ H­ð>àB w›Ï( ˆ°£Ãf 2 …$ø€PH@øáh¤ü¦Í6ÒBBâ„GÈ".Á ó~蔈ÀF30øÍºê%¨°é›ÛäIµY6#~H)À!à‡ç H°%Íä!èô›H^ln¦÷%N „µˆ š=ÃŽÍ}RþG2l®¼GˆMß›ñ?ìOðæ™”›Ä{‚À· O{øáõCØŒùÅé«ù"ãíýÍ»%¦GR‚B<›5ˆ°Yƒ7MI~4(lîÅÃw~‚Û¾ºyؼ‡dó+Þñ÷þ“ÿ çI_pUH\œç ˆï|ï›üæ¯}óЇÝðÿkû×Ç…H)ÿ[Ǻ®ã7ó7t Ë2”R?úûÿS›?¶ÛíÇöcû±ýØ~lÿ]íÿ_Dkýß©ÍÎ9º®£ï{~ç­7ÞÀ‹€lbhýfƒ N6V—¼<ó bÉMqˆ9úÊ—ùÇÿøo„½'„ð£Ÿÿw&¥Üè?ý[üú׿Îoÿöoÿ·œ¦ÿçÿû±ýØ~l?¶ÛíÇöcûÿ…ýÿÃù·ý!ÞúIºb‰ ClÅfU¸ã`•i®‰ˆð ¥ bÇ­£ûŒÅˆ0‚oñmÇüj2Ž­[C–Wpy~ÌÑá„ÛÛ÷øä솛›lmÏdÊ¢ãÿÍß§ª*‹ÇùkŒ'1‡·‡¬ˆ‹ögäÓ }iiW+ú¦åé·FLvSÔYÉɪ'™Èüå&ŒßÂ$’ꙥí/iw[DH>9­èç³;†±IiZIãJê•’dˆë9|¾$6–Ç_8"V[¼|úŒ¢ë¸}4¦ªz>}²äèÞ6o ¸¼šsZVT}ŠYÕLïn±5J8»|ÂåUËdôÝ”¶Ä=z`XÜTd[‚m—j฼þ”~•óxoÆÚÞpÑö¶vÈŒbqºÀª5u1T[ä:"NW¼ZJ¬Ü©KÄ!,ú[tí á¦dëp‡x(Y\Ÿpu­9Ø›2– “ªJr]õ¤“€6=m]cŠÉt‚ˆz¯N躖×™ ·¹yvÌò¦‚Ùˆƒ­-´a7Ù¢Õ :Y±o¦|ÚJܪd?‚ÚÖvÀÁAÊàòœo}v‚Ú5|ááC\²CQ̹~ñ>e븷ÿ¦GÍåSÎV×X»Ëô`Lg’.`FÒaª5ßvÃÁAÂO?~o.n°¯.™nÇÌkE’¼FŸŸR}ïÏØG¨‡yRÈdÀX¤õž G¸q\Úsö[<8Øç“yÉù‹Oyøðuf»SÎ^|Fß$Œö\œžðég ¾ø…wxçíï½ÿ–K‡b¿>åÞÛïðå¿üŸþé{üƒô™Ž‡ü»¿ô‹ÌW)ßùèyç­71ƒ{|ø¯þ;“„×Þ¼Ëóó+>øö1_ý¥¯ò·î <=µü¯þÓÿŒùú%ûð·yí/ñù§'È~Îpj9¹ð,¯þäß|ÿOùÚ/üÿó÷¯°þÞÿõyñÁ79¼ÿ€·ú˨¦ââøŒ…ϸ÷ÖQµäÛß\1ÛŽ¹÷øM·àÓoŸ^G<|øƒ¸çfqLYØ"ƒ$âºY2ÞJËbµÀnd¸øî)‡÷ÆÜûêC¾õ½SÌËs¦; ÉþíZ²\Ÿ õŒGw`âš§§/(Ÿ®¨’˜×Þ|{C>{ú1OKÆ£1wîÑÐðÁg/•c8Ýæh6¢r‚——g<ØÙgò8¥¿r¸Ë–ªYs|zJGËáí/rtp€(_òb5§žÃV’‘íÆ V—–<€kjkIç–Ò–$·&lÕŠUëY:Ϩ“µôSE¶c¶5×ë%î“kÌ %z°CRb×ÖÑί1IÎt$ho YLcŒÃçM·VB¬aP+ÎeMª ]¯ÙVÞ¤Tu‡ â~@©¦ª «Ñƒ„h3ÂqyÑÒÆ%q>ž25s32%5¢­Y8½`,[ú¡[´Äñ:5b´CÞ/™—-0F‹–h¬QNà2Ãö•£Qr+"ó[”e‡©kz\>`´+¨O-*8j¯¨ŒC©ŒQí±ƒšÖEh µ’XÄ:£®=­ŒH£S–˜ü€eÚP?¹d’'èÝWkɰï!-hE"5}}“Âå)qa{øîš>øÞÐ5=QÑ’NrÞ£‘ÄNÑe±ƒš‰OÁÄDt=¬EÀ“îÁ|Þm‰µgÈ„’@íV5bB’†¶Í™³ Oå&&†¤õ)‘[ƒ×§ô5è´FÆ’OÚçÕ¢˜A¦‰bÃåbuš<Ïiñ¤uK¥×(¹(,fà‰´¤Xµt}ŠÌ+t¦(ZŤ*©)qQ(Øv«¾¦ÑùF䛯¯±uŠ3’Ø´ªh{èS±&]IVÂ2ì+:Fø¸¶e"Z×R¹ž¤×H#±ZÑ5±R´9D-ЃÛd× €^J”ÑzŒ'4mÝ¢½ÄM-Ú¥´5¤QM_nî§V[Ii{ˆ4q¨q‹;rXÝ“®rª¨âêý?ü‘/òæ—þ2½–D1DFE1Œ0^b\B)b îPm´q¨âa½ô@ "f¼³‹w-BæPXРDÝÆÁR÷îÝûþÕ_#²†¡éi¢„‘RV5*í‘Ó(§Ãk3¦³mFû¬nzŠåš‡oÜáÎö]Nn–îïOItŽOviųüï¼óï½÷o½IÙ•àøú33:8Âd޾Ë1É€¢é±W=lgd·p?™QÛ%Ÿ]j˜m1‰jÒ4amшc2H~¼ƒ) ®E‚ddƒœ¨h¹¬êö‡»·¹¸.øðé‡÷ïst°Ö=­áE³D4‚Û÷_#ÞÒÕ—;fTà·†xŸ“ä(qÑ-©WSö_Û!ëJž•f±ÁÏjòÉ]›ñüòŒíÔÇ_{‡“³)ϯ?b,{vîï#·î"ËšÌn’›:ekÔ“¥¯Ñ !–71¤êöØÞY9Õt‹ÛÃeçy^Ýp8šqûΕ tÍ(³¥½àºèxóñ¤ÙŸ^~Æy•ó¥GwÈDÂ¥ôTň9žÛ&ƒ]šâ†—ºB§‡Ü9x÷ñ’ýœ;aºœóù‚½Æw˜?ûˆ'Í’éï0Û;àsµdê!sŽ—+Ï^¶ÍÇ÷Yø5×õ’P?d4 Ül[Æê‰Ï™mµ($ÏÎ2Æû‚7_à'»Èõ6ï_¯pþŠ_úëï²hà¿ó!¿þïÿ;øø?þoþ ·ß½Ë/ýÕ_åó'¯ˆîX^;¸C!Î1q`¶÷ˆVŠBS ‹Œ[ï9oóÓ·ßãÖø>ü‡—|rù=üÜ»¼}÷xñÙ§|ÿÓOùÒϾËá;oòûÿð¹Z×üê¯ÿ$Þ øìùY2FêŽ+qÁ~ú6bwÄ“Ï_JÇìñ[d¦g5/¸™+&÷g$IÊÙË nßý ¨–ßÿÇ¿ÅÞëoòW~î×xy|Ƈ×Wlíg|!û vOùã?àæ¼åþWÞâr¨ž®yxç.ÙQ΋çk®ì m?æÁãŸáð c~÷ŸÿSž_üÏ~ãçyó7~‰ÿýÿé?çûß:æ¯|í/óåŸ}ónÍÅÅçÄÑ6Û»¯¡f’Aàï›<Šÿð~š_ûéwøÇï½Ç'ïÎOüäWè&ŽŸ/Ù;³5¼K_Åܺ7ãåªÁ7kÞ|í5̃۬¯Ö¼ÿþw?Øçݯ|õüœ>û³»wøê/þ,g¼8ÿ„ûïÞâþÑüà“æÅЇû3·fL&‡|Ú‘ñè<#N3tœ!EƒÊÇLÒ1i”S“0HBcñqÂlÛp0:`,28¦Q„ËS?EÄÝpÀD—ŠtºOKFDhŸ’{C½5$ EdØŽ A%Dñ×%˜Q`  JÍÐ#I$4nô@ïeÌ¢(#D"‰COoöH·›1P†…ÔÙˆIÑ@ 2²b"A×E$IB–Ä.&61ƒ(¦Ï2t牥"ŽÇ$:e­-É0#ó1Eœ Mk:Òç1‰Š1ƒ˜¬°”’ÇDý ;Ö¤Ú€Mèd Ñ>Õé{?òEî}á]|$‰íˆ|¨`;ÇÉÃ(F ‘ÙFL ¹Òx5"§Ä*%äÄA”¢#MÛK¬ Dto’Ãèá[üC©œ_û¿EQ5˜;0ËcNNWÈ ¨tW.±¬©ç1ß(5¬®o˜_WÌf‚ÉlãÓ‚óëWäÒ#·wH„¢½xŵh¹úðßtj÷­·(›šëgk’4åîþ]ÖËkjyưMh«„Ô ú­ eXžL^Š8b0í17†.2,éiŽW,úŠñaÆQ”‚«ùø•à¦>æNº&>zH]JÚËØB ˜%C"uÅ'¯æTßßeæ-Ÿ=™sZ-y´·OTY>ûøsÄ~ÎÝݺYòáEK=_³ë&»2HºÕ𢔬çV>aÍ‚³W/g; · çË3òl—$Ê8yú}:%yk8`‘ÜÐRxÏ`Ù ƒ¢lK|¡Ñ[µÊè¢k–e,${iÎZ\ÓÔšAs}¡éš×wǼšÃ'O/ÙŸH¤³r©ˆ¨Ë5'«š[ƒˆÞz*ªzŠñ%©i雂ÓeÍã;÷‰F3._|ÈŲà0>€ ¨á%î“kNÉ­‡ÄqÉ«ó3r9F‡ Éh;_³¤ÅS.ÎØD¸t—uÅ´:áéóŽ k¸ÿ¶g/ÜÅqú æ‹–çáW>¸Í‹çÌâÃsæbÆÖÁvmëŠ^ÂN>¡hkž¾w £9?õÖmÖ͈o>}Š;-N,ÉácN?üœþã?ççö«œpÈŸ=û&ïÞKy»Ýæ_~ôŒî°!­îÑ|ôœx|Éô­-BeøèJp¥4wƒƒ´ä2“›œñz›ã'ßýv÷z~ëŸüSòѶ§œŸ\’Ow¸õ gþbÁ{ßùŸž<ãú?üóÚÝÛü§ÿÉÿš¬_ò7þÃÿ Ÿü1Ÿ~øÇÌÞ|@³ž‘_- *PÃ{JðÑ«S~çÉ1¿ñÎ#þýßüMþ«ßúmþÙ?ø¿0Û{ÀôáCú“E9'&{/¼÷;ÿ’—åŸyûŸý™¯qíþèþ×\Ÿøâ.¨ÀgŸÌÆ{¤{’D\>½¢m5_xã-—O˜Ï/èü>ååŠT´¸Û*ÝaO+ü²d²»Ee¼øô%m½æÞkSÎNkŠëûw·˜îÍøôó§,^¬yôp‹ýñ]žœ>gyöœ0_°ž·á-ö²Š?ÿÆ7¸|Qóæ×2ÛóTEEïkN/+rÃÝ=V¶çý÷¾Ïl4azgŸzu‰»ja8f>?¥¨ÖÌvns4L8;ûˆzî¹ ­<‡³}Êöš«õ%Ákò&ÆRÒË» ˜é,Í’æºDv’A]YsÖgLm¶Ç®.(W ã»Ûx]p}~I2¯(Å'+¶À%ð¢¼FW=éd‡K¿XÒiC„!ØkJ/¸6´¯ð±ºEÚésÖq¸nP±c±ìˆò–7¨‘àrÞÁé3Z5`?Pú5+-‰ê’‘u,ˆ¸Vµ¶„X37,¯{–½C¦ Ië‰GŠÐÔœ\µÄ¡`”A] 1bNÕ„Ï ¾Â1gÒDtÚr|½Bö%!ÒÙžrёӑèšV9ê>Pô†= eÎÂ’µ§¯¼QèÊÒ Å«b1'^å,ÏÒÔD×%fíè E5J´ôªæºÓø.¡ï+T¹ÆÉšdœPص\±Lë¥#g4)…Õô¶$ˆ–Ú7kFnˆóžx9g"ž›žóNPÏKTUbŒ§ž~%ÑUÊ" —Ðè w³f¦ŽUÐԽƵZ5Øàp­Fv+º¼QÌk…\ Ó„Ðú|ëYV {‰–µmY,<Ò$ u Y7TU…N+;†fEâ×TÎrãú¢c:\Ó.«ÐÒe1ºUxoRQÈç4¡îEk-…_Ó{ƒ&¢ï+è7²OŸRSSWômG†ø´¡ðŠ‚¾3XåHì’>R¸V º•¨L¡– U+Y@J‹êu€–ZHJßPùé²w¬cÇ´P,ú‚5È^;Ko ;‘,²%!1¥b¥*|¨è1˜ºÆ¥®_SŸþ#_d|ô³nªÛìdU‘°chË¡;BhJIˆ T먄ƒJcDAë‡ ¥<.H¼ìIDÂ""Ï·¾ñ;ëWþöob²„¬ 4="mzÅMÏ8*ØÙ-zêYI{éØ;ðlo=äÅõœUsÅ,ž锬µD;)ÊXBðœþàüÜÏýßüæ7yµutËÑ`£#ìü ?Vèñ]Fº£*®é†9ûù n˜wY"‰'1mÓ2Ì'HײªÂpÄ^fI”'ö8ÆáÞ~÷V^3ÿô’a2§O'H¹ÇLKV¶'L4jÍ¢è©Ýa³îOÈÍ.û³}ÖÝ+N^”d»F£TÒÒÜ4èºbrë^nŽ v¶Ä'”ç',λ[÷™­™¯:ì…AìÇìS|åXÛ9:Nˆ²móœò¼ç‰{Éä`‡íôrµbɂ׎émÄ_ü«Sf)ï¾{‡³Ë1A/‰ÖÅ©BŽ`ÿÖrUqv¼æôjÁh¦ÉöSúÈë#òaÌçËWܼè8º3á ?qÀÊ:^]:üª  çÜÿò=d­øö?ÿ„/üômÆïÞç÷þè;Œæ{|ý¯ÿ;\¾zÎÇ|Èko½C·hX´%ùG”¯8{_ÿµ1GûŸ¯±[7ô]Ä­|‹£ƒ”.;.š_zë€ÃÑ/?~ʇ¯>`|ûó׆?ù§ñ§ò}þÖÿè×Ivþâ·>ešiöw¹.®Ù˜éìK,õœ“Óïò潟 ¿=ãùwßÃ1ãÍ/ÝáôÓW,–s¼û­nøÞwÿ”7^{Ì£7ùäÃ'œÔ—¼ñÎ#îo¿Î«ÏŸð{ßù^¿û6ß}‹.0rŽ‹ Ðåç vwø|a‰_•|í'_§móÞ'¿}6çK?ÿ+Ä8þåŸü.g­à¿÷…7øÿÞ_å÷ÁŸü½¿ÇÃ×¾Ä_û›ïrÙ*ÊãWŒådo÷5ÆYÍoýƒÿûûü{_½ÇëoÝãÿüg¿Ç´—Ïž½Ïðõ[üô—~’æã’o~öGÜ{í1_—ÏÞÁIý‚¯¼ùß Yê–«ª ]\±3ú2»RÔ瘵æÙü)ÅÐñÖ£w‘•äÛßýŒØ5üâ_úyt:ãÏþâ\\®xøèMvF†2ßA6+Êb̶ ±gg·Aô–ò©d§ø»1W'ÏX–oßå^>¢lÖ´É€ÆUÈëFD·=3©}NeôŠÄô¬bHõ.³ÆÑÊŽu¤1…!ªüí†l‹€šDtç7Üt’øNÎèfÈpbèÇcÎ>iˆçl?JH“)]µt¨©" `kK2(ÛB'h‡f6"ê<ÁúɘÑ@㬠’+ÂÊ?ˆ‰ƒÆ•UU£CÎ4ºÑDiJïÒ-˜Ä1.Ê)K‹JƒÁˆüªã†3Ò¤Jùœf”’´-µ®1DdB°R=q?&21ëID¨{t³äNžÒ¦cæYƒ[h¢¾CE0×\昹À²ŽèrËÖpÀ Ž˜Û%i2!»–T9ø\[‹K3BãȹÕ(%é“·R$£˜,.Y^(ÒÑ€ÉıªZ´Ò$ñ­Y#KO:6¤aÕ¤ı¢ª:Tº©xöm‡×0‰°ºf¤Òt©¨¾à3;a^·¤ã–$™ †adÑ*G&^ÔdöÛÌQËÀœh):ÅD¥™GuJ2¯ÉuNízdTÓDIoˆÖ=]šà&c³©è^˜¶1Ë8E ™ÒÄ–e±bv·æm`Ñ(†yƒPÝux1"&Ðç+L“¡Ò‘ЍƒD‹£¬U„j„ 9TXÐÝ'S›ÕHbm &Åd‚Þ)ÚÕœt'FúUâH¤dÚD´Z± C%p2EhAc5ض$29:@— \ÛmXU"£ô’¬ØIưéhµÁÅXH:-‰dB*bcèÚ!nàÈL‚+:ÌÔ¡‚!®b\bIµ¥od¶¥šÒ^c•¢>ýäG¾ÈþÑ[› Ä‘D´‘&ŒsIéiš€LÌÿƒ«ÿŒµe=ó;±_Õ[9¬vŽ'Ç›s"/›™­&[Ój*Œ4c,Ædžذ1Æøƒ'ÁcØ’%·%«[Ýè¨Nl†&o“¼7ßsïÉaŸ}ÂÎ{¯\«rò‡Ãa. êËú°ÖT-üê}ž÷ÿÃQ4¥DI²*‘ʺ¬‚CÑÈ fÊh’M誠,å¿ÎÁzâKß SSI{4mÒУÇTÏQ䎓 R‰I’c7%9’ý£”J§E«e¡ê&A2-<œ¹¶Úáî{oòå/™7ß|“Qbc4g™?Ù$?˜°UD8­5IG/Kpd$I!I” 5·Ê¤8©@R-zå…¡2+*HU¨6©+W·†IÌÉù‚ZmUìöˆ¦­Å9Ä|ƒ²7bp4"nÛœš¡¢¥lŽ…§Î¶Q¢œ»wH•3'æ±]—ÞÑ!ƒ¨ , Ú³]l]!!å4ÅSšNK29œŒ¨¨³ 5&#FÛ:³ë50#Æ#‹õ9/ÇDPìICƒ9…h¤¡!a¥2È1JW£YÎbÆ ›iC ˜ug;$iÊ’G¹ÎÁXbµVÐZê6¹ž¡äþ‘EcY¡Ò™ÊÒÔBfÛ .tŠžÆüœ…˜398ô(F1só§pZÓ, —fS ôºÊÁ½R%£½rœŠVeêí3 ‡Ì,ÍÒR]¢P®šäšC6ØGD>Y}ZC0£Ï`¨‚ƒ+ ‧ºÏ3¿rŠëÁGûê2y­Æ\=¥Ø•([‹Ô› û»oó*ÇÍSˆ:{‘ÏðÚ.³¶‚ýÒÆ72²k·øüWžf´<ÏÿÑ[œ_¬óüÙs¼÷Ö“ Ÿ;Ææw?&«¬|ý8w¾Ò¿·À¯þZZ²wëcÍÀlU8=]Çk©ìê d*ÝŽ`7ÈŽLÊ©; ¤¤¡J,Ì„l{L+u?y†Ð y÷ÝdEÀ‹Ÿ?EYkpïƒ ”BáÂk–ÏàJÈÞÔbæBFS©ó`+¥3¿ÂÜ|É{oÿY]æåçžeàïpÔKéTš”ÑÓÈ£,j¬?±€° ¾ûÛÎJUçÛÿÛd¥Äïÿˆ¤€çO~¬œ\˱gcwmˆÁób:só¼tö,ðÇÁ'=‰øâ9.~á«üéGŸ²ñá_°´~Šg_~œ¤¨rwgÀ17¥²^#OMô†ÉÖÏØ*<÷ì)þ“/~™·øäÇ[\˜{ŒöŒÊhÿ6aE§>wœjcŽéö-öÒ€µÕófÏß@H@æ t»¤ÖYG_ÐÙ~x“2‘8>3O?(q[1­²ÂÀ›2êyD^xüqž¸xŠï¾ûW?¾ÍóçÖq*'ñfTÖ͈wß¾L¦VùÚWŸAèo~ò1‡‡C.œ{’ÅYG׿öý[4ϵ¸øØ3Ä{Œ{èËóŒ÷&ô•)§ÖV¨%Y–&"³pMƒz»DÊR6vcjM‹ùj?)Añ‡:§FuQ'%aVb'6š™!šuâq†Y“Ñ]…|/F’5¤å6J” ÌG­#K*J’Ñj&±[¯‘æ%svCOèï÷@kÑ9ÑA= ʘÐY eæ¨È…@à£Ù:R¥IƨS £´)jÐÕMJ­Â4Ɉj]E6—pÁÑtHaBËžE6!)y¤â– ‚”Ø”…ICˆÙr!°ãœc,ߦR«’9.b¢’V'`5°=µ6@7›„Z ­ˆ°ƒ’¢eÉ2F(ãvTºL¤-LÐä†f¢›ÙFNÅ$ÏS\S"MRRl»`®°K©)0“‚=§‚Iê`– ukLn7qdƒ¢É–æ"Ü ®b2Í„–ÐÌKRµ­ÈèRN–š”‘`ÁÔH”‚ÐnàF ªU¢8¦_¨DNŽ‚…‚(Rs5z®CžMpz.jËeö1­ Ž$PHâ&2©žP±ºÈYޤLI$ÇÌHÌ*™T¥B˜ûÈ®†a4±ýŒP5ÉÜ”Z¤y%®e“ë*R%Ø–«äºŠªª4:M”\à%UIÇ7l=ÃJA×U‚ÌBU jU =- ݰ‰eƒB˜""Ô$ª8d†‚0KÜRc*ÇÈr½¦aæÃ`Œi;T’ i³ Y ¢Ø$wRJ‘c¢‘(.–iAR"[ R©£PA×4µŠ D© ¤Ø T L%'7Ô¢D±ô$¥:…®PIt|bÍ$2ªi`ešc9S¥‚PLÂ4C¶L£FžåDjFU®‘ä v–3:¸ó 9vú± RfaT,,‘—6¶m é*a.£j&£$Á  LU{e¤˜ ˜Â¢”$lMyô j:Š%“º$ñáÿXŸûÒ7™î„”Í·»Šâø 퇔œ£H†L¨%†žÒtkÄ’YŒhÕ4½Ý•ÐÝ(Hz0I,ŽwÛ|ú“ðùÏžŸüä',Ÿ{ÅΘFÔTÔŠ‹kT•ˆ¬3‹n˜á?Œ˜DmjK2ss&“©ÊtšP–¥©qºVG³\>ì—÷vhÕ=t÷4†Ä@.‰&:¦ï£®(Ì” ì"RyÀ|£¬”^Bªjt»mò£˜{Þ!‹§Û¬ÔõŒ†µJÓÐè:KFH”dêRÑæj5öñø€Ùê,v&“ÇZEjk {÷ð‚:§fŠ8Do·™:ÃËwXYêÒ=;ÇäVÄÎ`ÌÂ’ÆÌj… u9ÜÜÇ0 š§[qÐ ‰Ä”Šk±Ô®3 Kú“ˆVÇÆ/b N,¬¸w´M£Ñ¤Û]&s3²ñ˜d•z¹j’Ü`Χ˜ÇÏâíNðû‡4ª‹8«AÉC‹´ªÐ™©!!ý0`¡£"³†”¦(šÇhâV:¬f6ûZŒdøÔô9æêÝxÈQ¨òú/-)sl‡ào!y.’Vgýœƒex·F\ÞëQŸ“9sæR–’JÞÐ÷Š)Á^ÉâZ›çg¹½}Àý›=ʱÁR*‹+ 4\¡{Êeîä Þ~ã6]¹ÂgÏkwñÔ’×ÅŠ]äÎÏ,¸üvžÍó·ÿá:q/å‡?¾„ge<ûÊ1f¬‡ WÆRΫ ó_`pmÄ›×0÷„ËÍFC‰·®^æégçyõ+¯òÝß}—I™ó•/¿ÂÑÑ€íaŸåÆ*ƒX¢Áê3'ØxØco÷.ΜC*||÷/¿øU­ä/ð.çNŸåÌùÓ\½|ÙѸøê²2ãÞ'û¼÷î.¼p–o¼ð%~üÎÛìno³¾pÉQ¨´gÁ´¹÷É}•ÓŸ{‘K7®~xÀ /¼È¸b²ÿÉû$5‡Öü<³3mÞûð'¼ñÏÿú[Oñ¿ú»¿Êï¿{™ÿøÿfÛ œyù4ŽÄiÏ£¹þ/ž}Ž{;?åÿí¿£Q?Ç7ž>Nãâ³|ðãk ¡Tç¤ÅÎ¥ý­ kN¯çoÝÅÇ<ù…©Ôféz›Ë[·X\Yç•ç^åÚ§7é'{¼zæ‰Ù¥P¦Ä aÒ£^Ÿ%ÍšHåuÍ$ëVH5š$1¾æ“Ôefç*´] ×ç§o¿Í ñ·ý«œ:½Äñ>÷’ /_FQæØöFhs9Ši3¸œqle‘ÎÉ·®Üasßçñ'.Ò4 ¢I0ËM—FV’nSÂn©HcýÃ’ú²CÓV𦠶V¥RIˆ¤”Ähb F’¡UÛL”Zj"å@¥Œ ÌM\¥C–ø”IFo’2§Ô™[R1[‹|to‚2<âÌìbÞe§Ôj&& Ò‘ÊüIF4ÆÌu”Ü=@TÛ˜¦F$Í$—bŒV…škÂ4Æ—dôÌGèuf$™HIËPKÓщC ÒˆÅur$¹zÕÅQ,JÉÅ­§LÇQ.£2 E&6t,·Š*Þ],§B»ÚdZU(Æb’`Ú„V`6‚YÖ‘µœ2ShZ.z!s MÈ$—eÛ 6I0W±(B‡A1Ų:*™¤£)S?Aq+„Ò˜¢°);u®‚ì)(aAÙic˜ñaµ–a¸ëŒ|‰Š”ÐÉb|[¡.Tl!‘ç)yÓ´ ¤1^®¡4lúšA|°‡çˆÜ’¶šÐTuÆY•VP7 *¡N‘¨v‚2Q3$Ù"‰$,¿Do•¤ ›4Õq!vMÂÏÛ˜™J®ÆT‘Œ¤SQ©êº¥’F.¢"O,d-Fë‚%’Š—%˜®A]ÓðåoªÐT¶B>q8 ¦të ºâ9eZ%«¨Øz‚É8šKÍ€ÃPÆÐdZšŒ¯UrN!å:šªI…L¡ÇT“&¾ +:¥Q©Q+TŠÔ¦¬ÄŒb›FžS E7ÉÓ33È%™Š¢’9‚¬¨~N\·°Â’DVIÙÐpõU6‰%ꀕQä*‘¬Ó0’TTE¥m澊/§˜]j"“¤>JKš.G0—Ó´ &“œÜvdLvný‚EæÏ|›×^{Ÿüä'(/?†º?ÀÛÈ+MÖ+¦vH&Öȳ C®Ö§(©KEØHu•®Ù£7qL—eCB¯68£‡Þî0W,b+Cîû#âÀæôj…²;Kø°ÇÁ>•V“Õs+°§r÷à!…jqze K›rmsÅmrfyfnݱ3ÜÅuj,/ÃÐ'Æ¡‘–2æ\-DÞ”TÒ8±Z2‰*L‹¦*cZ)^¦£…JsLµyšÌRÐw=Ó%6FIŽW6–Àîò"3 7vÙʨœ^æ±Ú †žàÖÞgÚtežÏ¡ji8ɘ\«cÈ5$éáT¢¬)(8h#) ¶t»C¼RŸÍ)Vš„Ãä½’Æâ,Š‘’…`ôK&—•Ù*ꀫý‹Ë¨8‚hó^ìÑ>½FKÓéû1¥<Ä5ªˆšÆÖÎ¥Ú »ÔbÊœn+xý®Ýsqîâ“ÇwÆlœúÛç|èñðÏBþÆz »>ä?þáGˆî /í%&—eŽb´õñÁ˜ã²Î™Ó§ù`c‚¯ÌϦÈ-…Š~ŽþA„oLÈ3™v»Æòê þÁUô{üú?û: ÙáGüW$…Ìë¿ò<¹ó³7¶©:«<ñù9ú;W¹wÕãñg¿NŽÇ_}ø#[?ÉñÎ3†ûŒÂ)U£Åúlƒ$LùàýMŽŸ^ääŠÎŸmrja‰ÓO=Á§[W¹ñÉ5”ªÌ‹/¼ÎñÊq>Ü¿Ë`ç>kskv•x¸ÁñÓ‹èÇùð‡oJ/üŒd~°ñ}E›_{êO}ëüáü˜Ÿþ¿îò*_úÖ‹ <yoÂâR“>¹Ð0WæøÉÕ·÷«üƒOrá«Ïð»ÿþ÷éÇû<ÿÕoP‘,þìæOTQÏ0z°‹Þc¨Ú\i4¥<5ƒÔO™j2ë/7¨n–0•-ªsUŒa‰TÔ]ÁáDG­×™kt‚nŒ&Ì‹³ËhÄôû%¾ª"sDÛÀš1 ö¶‹2kßX™"¯v(<§ ·g&dYL¥àTWñK™4÷¨¦%†¤0Ò¬ö®ì"ô}ŸÜ¢Û™ÁˆLI{Þ}ô?È‘“„º”at¨6ˆÂ òu¤¬GÅn€«b)2i’’˜íÔe?ž";&õ²K&ðJ‰@J¨[5,Ëdì:T²‚hÒ'hÛ¬N4dÇf(©T\jê#.S[Æ¡ÝÁM,ôìYU™Z­B§¦’˜.^T0×ZÀ1Ûô Ÿ(ôq$‰ii2o+”¶ËN$•‚%CN]ìZ›¼ìm§NF€†&h0 +™Ý$ßOIe™²VÐ*,lQ’æ*rÍÂ*%¼DP­€§”ègØBvJ&Æ”AÔÀÂÂ6%RJ,ßsL«Ö€Àfâ…tZ%YÅ¡Ü Q,ƒÖÌ£0Ó‰.SIëàQèjì J Eʱ%…ÐГ¨¶E« uÊGGÑL2#§TYn ×"$òÒF6 šF•Q–1N™×ªdªŒ­$ë$Š œf¸²M6/£(&ÙdŒ* Ìz‡Â„Ú4&R]t;&×$âØfF‡Al t ÔÌ!Õ%êzF€¦ÉXŽWÙ²¸¢¤ã²¢ŠZªzÁXøä±JÓŠQÒ:r[COe<$䆉šeèŠ f QÍÆŽB,['A` T PäÒ!+C¤¢ÄÈU4Ó¤ˆBÆ ƒ–)0$¡ETpI¿Mޤ+踔Ř¼jbå±l!+*M-¢§˜D÷¯ü‚EæÖŸÀ%Šn#ã²­#e*ª*á8ò#M‘¢'¶ñHÓ§ ¡Df£[ å‚BäBF/E•æˆ2磷~î"|üõ_¦2×B |¼½”vUaj@>)ær«åÈZ›Ø)1½1ª­á%6†Ý@VCÒ¡GµÐÉÚ.ª†.•\½Ñ¿ñ³_UÒ$D Í,Qܸ¨?F‘yd…‰“&Œ‹*eSgÖ-Ȳ€H(œ²3âö:¥&S¡5ïpo0Ex}æ[]šÕ&Q׿ÎþoÐãÄBz}[׸½?%ñYnשÔV8*§HÁ×\`JÈÖÁv»É±…&QÆNÿ€¶‘T1T•²®¢W*(Ã/*i̘”EÊa?§:çrzÅàÖN@\ØÌ7êìJzž±X¯bdS¶c‡Â,qBê.§lö ؼqæÔk‹sôû‚<êSFúzCk"ï{Pu˜m5°œÞ˜IÀz»‹\1‰‰®Qcš{lní`X–O¬ãOÓÉ}’iNkn–Ê¢ÎÞ­CªšE}užäðä(¦yb Mµˆ²ãþ˜žèrælsê³y4 £™Í.~’á†)ùLŽbvч¹[ôÛì òdÂöÑC Qãlç•®IðÀçÊæMº]ÁüüiÌL"oȉÌåµvÈ‹O>I1Zb”’k%GG«­*Ý•:ý¦ÓlªÔ—VŸ¼ÈÕk}âËðÌ×/PkŸãí?ºÄêz…îÉ“Œ· Y ’±ÆävŠ|<¦ó„Ë¥? p¹Èÿò¿bØ›ÒZé …þå{k§›«<¸#NÛ´•!W>þåsk¬®œäòöM$Oå±'35ú|ö½¼^ɹo<Ïés«üäÍwy°{ƒWû K5îN¯ruó>s¡Ëj«Ã±çã €Ÿ|ï V#…µ/\Às‚Ã!5«‹êÔØ¹5b{s—µ—Ïpê¤ÉÇŸ¾ÅÏ6ë|ã¥c|ýï|“÷¯îðî÷ ”:_zþó­5>¾÷W„é.Ï¿òί]àÒ›òö—¨Îágæ˜ÿå'¹òáeÆûÍzäxÊôaÛà7ó­:«3ól^?`O xñÙcÔ«|úÎûìn²üØ ¯N¦‡ é8`~ñ$޾ É[—Zð`wÂ\#êM´™3¬-E v{lÆÄ™úbƒ“ÇÖi¯7ùÎÉg7øçÿË,ž~õ[¿Iìò•×^¥L•êÙ×>x—í„_úú³<1ç2òBz= Ï"CO פlXè”7R*Ë5ì“-’÷Ø4Ï)¸²ŠŸk0 °²ÇUðE›Ú|= ˆ6F$í*J@Ö0ë!Z®‘íÉ-‡åºÊD’Ù8ØGwJž?}QÓ¹}ó–¬°Ò®ä*A&Qk¬ÌÃKKle[KR™L×qb“ÈNpL›¼ª£2e–Å誠êTðµ Ûp°G û¦GA¥Ú!/²©Œ, ²jIÞs1‹ •9-s‰m¶¢0í« 3²…¼PEC&+-Ô0"J3ŒFA¥µŽŸ˜“#´Ð ­9¤ºJEèÈRBž¶Ô)ˆ˜©è$–@Vc\[¢8x™„Ü”(äeMc< ‘É©5]¤RfߟÐR0”¯q «.P1‰ƒt<¢pTÜ—a@NAemŽ(RpýíRaè–(d‰ÁTÍq"²R2ÌY"³hKä®KèÅÔ§!¯!— úá€Ìiaµšˆé‰ª@¾€$o((ŒyºŽ†˜ýÔÁïæ¸…A%” tMµI­œ"ÓQâ W®’H -3Å’,¢¸Žnøè¾D–9X31™äRÈ1eœãh&¥ªVâ7Tã )”‘Œ‚‰2ÆŒ\æ[¦¥ÎhSÕ GFISÔL&×eÉBÄ1±íÐÍŠ&+UÒÉ£ýÄTQ¥ )qU§2ŒA©0•uj±B¡'Œô·´¨É%¥¨‘× ò±Lbê´e™lê¡k REÇTJF¥BÅ (| _XŠÀuI&È%Q䨮I$ TÝ„qÀ´kbxS±‰gx YÌ–:…œâU4*‘Š—¤Ä­ÝÒýqŽ3‘š‰àhëÓ_°ÈéóOJèÎÏ[eab<šóÊŠ)cÅ&r¥$—LÔREP ÝûhÈ„.°dù‘ÚG’È4™’ÿáãßúeʪjJ¡¨ !¥8‰ŽªèY@¨©hÄ豌Ú69ìÅd¹Š©&aPÑ-úþ!d6ºT!5sjŽÁµ·ÞøEQ/¼üKlæÖ©œ%­ º(šŠ±œ…9CÉÀq5æå˜ ÕF—kØ{lF*v»d¾YÅ’"ö3¼ÀCT+T´ î¬ÎÁdŠZ™‘;Ø–ƒOýýц3«h¡ÄÃ{Ÿ!5LNÎ> ÁŸ]»‰æt9¿¼†S‹¸¾ÄøÎw±Â±å5"9¦ßÛc8*¨9 f;6ÓPã`{‡Z­dif‘Ý£Ð×ÐŒ)zQc‘„U>€æ<–á°ýÉ&â¸Dçø1Šû¦F¥¦¥[ÔÜÂfãá>(Zç瘫ìm„<ظÇüc*óõ3l¾?¨h;- }–2Ûe:˜ 7[KA µÊÞÖC’UÇZ‚Û>ÕvLí¼Åx?`¼/Q™íbéBó({&Sɦ5o£E)£É”8´©8MtÓdxp—‘³6צ!×ÙHY™Ž…%ÉŒ$H°:9õ¹j^›¾ÿ)»#tù_zl‰¾›±qõ&’&k¤‘EÈúZ…i¬óÑ埡ø!/|íU”•ÉÇwMÉL•,ɹðÔ9z=øé›oðü3ùYÞüÉކ#^XžgZz$©Bgež½ëCüt—ÊÙ*á§ ÉžÂç_nãÌ©üà$ç^üu´ñ]î<ø„øŒŽ3ÑÈm:/òÑî„·pVŸpv}‰»½Sì‡CTå&íö<'íu‚ºÃ—ö¹tã-¾ýµ‹ÊʧN,ag!ó‰D–T[u^9û×îÞáßþî¿¢³ò"çô*³O¿ÊŸÿßþ=²rúé¿Á0¸ÚMµËdñæ8¢ÿÙMT³ÅÂ+3Ø|ˆ—Çœ9ÑáÚ—HÔcÇ^c¤”r@Gm ‡Ô»U®îx°³Á/íb*gø`ûÁxŸ×Ÿ9ÎÜ“'ùäOïpûúC: Î.¦«ÔØm1ؼI8^âÂç9þø,×ßçãïÞç™'Ÿeá¹yîýìa(Ó~¼†zK%CûBÊì¼Oؽ#!Uš5A9”©i:ò¬ÃÆþ#ˆ9ÿÌcÃ#®ÝÛÆn,P3TTcÊÔ4)B#ô0*æ1Y‡ýÂfVc4½ˆ±³:£`Î7ÙÙ›2ܲZmQo5ØOýA‹iÈd?B¯èsËIJI‘'H[}ÒªJ¥6ƒd¤øãG»¦la!ÔÛ¬ ©)á¾Any —‚FRgZ„dö[¶Ðê úeÝUpJ<Š–)­Â¥0*dUP#ÒÁˆ¼]â¤6MEe¬¥d¥ƒ ñF>žR 7\l_Ç1¦Þa> R™Ã1ÊdY!ô‡" i4Ñ*-¢IÌ$ꡦ6E£ŠÊHù”ÀU`3+2bá2N2sBu¬3Èu„êã› ºRAGA—¦D²I8´0¢’²aR õ` e„V3ÏÉò!È…¦3É&dY…-$KdšB%®’•Æt‚”JUVJ©xŒcª?o’N§È3F¨2õCcªDêxýÕ*qKƒ@2™˜²Lꤎ‹šxUÉÝ¥ÐÑu•,öÁÕˆ)Йɤ@tM\¡@XMb,KA5 ÒŠ ¾ ~ ¶‹¦N 䄨k€0ãµÒD¶P™Ý‘9 »Èä²J e”•W²‘§ ¡>E.äÈ¢‘ÇV_$¨e†j¸äiXz@®¤ÓC/I‡BOI¦¶®#Ô)ÓDAµt ½ÀO%§FB™V‰ä™R’È$ ÙQÉ”D•!ɱL‡´œ::N)a …cGåÜâ<‹›kû}Ò(¢]ÎÛ w§CLV›uäJÁõÍ(Ī;ÄjÓí¡ê6H²7Å]ωãKÄ;‡ôƒžWÀ°ÉÌÅ€D)hÅsŒÕŒ;0ÌXÿÖSÜ»áqôÆOøê×Oã-žçíÿð •UÁɧV¸÷Ùu‚i‰v¦ÃôÚ!IMC=mpïûGh÷m~í?;‹,ßä_ý»Òyæu¾þk¿ÊÆ÷þœë7ïpòëgÈ÷|Š~H¨µðd4µëdˆHÚ¨ù ¾sgç*¯[§ëÌð ™™ï‘ ú™Ž‡†Õž²~Îæg?~@ž μxi0àáhSÓ±ôeòÅœèþ=Žc^~þuªé”Ÿüì´Å œ˜­PŽ=î=±¹ñµ/¾Âé ¿ño¾C»Ùâóç…‘<áîýŸ²qïîÒžZ8ƒ0s.Ý|ÈåŸ]çøz“ó¯>I)æøì`“íw?ã̉ÇpNÎòéûŸpìl…æÜ ‚Ñ!ñ0eêK´â‚ë[L›._>¾ÌÜcÏñɧWùÉ@SØœxòó$z—äîÜqÝæL«Eáñ?þ=ª§ÿ&ßšWÈÏÛüñŸ¾Á^YgèY$AuZpå`“õgY>ÝáêŸÿŒj§ÃÚSçxðÙ ôªŒ*W¸qí'æO2{ò$ýÝë”ò€’iàãÊ †TeZI‘|üÑCú3MŽÇ‹´ÎÌÛ)ÃOŽ8šö8’eþÓ‹ÏáÚ üŸþý¿dZü‹/¾†b/ò—?ü)Sfs‡i½¤3Ó¥¡™Lö¹ºßGÌ,°²C8‹¡$ly»Ø´R‰ HË úv<¨ ¯7èÔeF—¶ÂMºmöÌ,é8cª%4t“Ãkê2íóKí ň´´‰Ûj‚$š´ü =StLœ~LD„.kŒŠ«¬âzS†̨bbЛñ®ÿõ Öì‰'1d~°„‚nXLd •9ÐHí !KÈeŠ$ÉH…Œ¢$E†(•G §Å#ObAd¢!äGêÍÞú9`=ýÅ/¡ ›H‘úCÖM›Ru¥JSE$´$G²rƹ ÏU4'G5”¼$³cÕA×KÒiÊÄÐT·®óöŸüÅ/Šºcžà7'Ïx¸¿‡i(j.ùÞ"f!q|e‹ÅÆ,w]›éÆšäs⛪VCÛäÈ‘³ƒUYA•2¢\epxÄtÔcÍY§õØ<Òˆôþ6ÓTОo1';<Ø¿G2•¨­^$»ìÜ¾ŽªÏóÔO!%>ýøE™3;{ m½‹’í1zèæcf9ËÇzw¸ví€ù“ÇXlÔ™0Y etë²h¢Ê=îí ÏT¨Ö:Œ¶÷¨Ì¸tW›÷ÇÜ߉Q\›…2¦a£f5îídýœÙ5 Ù1NR¦#—=&œ®*(rɆçc§>¦ÒÀjÚ˜¡ÌöxŒÙm3?Q¸ï(ó‚ΜJ “Íñ”£Ák‘êÚqÚjÁkï3:ºËÂù'YŸ¿ˆ®OÙØøŒÝ]ç¸ÂüLà^ÊêLNÙ¬òÉ›Ûôû=žøÚyêÅ {[‰‡#,’"eîL“a?g÷Ê{<ûœCsõnüÕ×ʈ“u›a¶;S‰Ñ­=ôºÆìó5¶/M0ï49ù•yÆá?þáMºc\|ò ü­!¹wxÎ¥ìÁbfPZ§¹¹³K¾Ã‚Óf¥ÛbÜ<ÉÛwŽ0âxý ]‚éEzƒ‡ÒuœÁß|á%Vç?ÇÞÿŒÑ­=žúÊ DΘßüo¿GáÏ󸝾I*oñßþ‹7Yyå~õóküÿú ”çøç׸ÿp‡7¯³ÜШUV9 ¸öÁ N­Í󅿷ν+)—®Þ@ô¦œ¾¸Fl²½“3;¨’gû´ÎÌcÙÇxûÓ7¦étVÉgmš5z›‡G»TLE› Õcü`ÄëOÁÑefm©NïÒû¤Súr‹0ÑÈÌÎ7Ø>JèOúÔÛÐl•E:B0_¥6{ž«Ã ½É'[mRkœâæ_½Ïíý1¯å%žzî"×>½Ä?ù)k§-N;€á6±ç4>yï»ÜOøÖ—_áé¯>Å¿üïÿ¯|úN¯þ㯲´Ð wm‹Øˆp»ÛŸì2˜Hœ|úz›ñmv¯ pš8^’_J©­7±—u߀¶Üfå¸ÌèÃ>[¾LUiÑéê”RAÿA€%Ô”*{¶MÛLPrýÝ_UY_+(J­á˜ÉýcsǨÏêììðŠ„šzdW ×&Î<&f™c45*Ò,¨ž÷€@nSu,¤,'&¤6ªQ€‘d%ØB0öw1—ÆšCžL9êåPºZ€* ¢¼$/L«…NzAº]à«9–‰, äR¡pT¤ð`¿ ¯„Hµ6š\£á%〉îS7L*62£ž‡™ édNʬÖf""¤þÛ 5ò+Tj:é(‰CõŒ2ÕP$%î#‹&ƒüˆº!QÁb$<„ú,KÉŒ&–꣤0ž$ÔjI`29ÈÐÌ„`RBM.¨&‰å1šJTM“BɆS̪Ã8…Š“ô•º+!ˇWˆ3U¤$VˆÊ¶ßgêDÄi xÔœ‚ÀT‘r™`:DM''ªQ.ÃL&)<ÔDPsCú‘…Ê‘0ëx©Œ©¦h†ŒäkÄEzޤª”™Bàæ˜¾D–ÅŠB˜ùŒŽå‚î¤6-À5œÐ\èË ÁÀG(V^ WÈ ¤PF«@áIZ”RQl UfÌ-×Hó„RxFU2@¥ j8NŸh"Èl‘gˆH»>Qªaä šp‰)‰Ë³æRŒr²,"F¦‚…,'¤ªA”O0…MärN3/§б]Òƒ Û’†iÁLiÑK &vAkdYÍGØ:bZC+&D&Lr‰Ù¦ Hb&B õ#&ÛWÁ"K'ž"/„”cJ6ÂTµðU°s™LËå#±5HÈÈFI\¨2@üü,Q€‰GŠëAF)©|ôæ÷ÖWÿƯ3(J:ES’ÂÀ°tÃ!ê)´¥æ’æq1%ÏC,OÇ5 ¦¶Š_DA†:”°U,GG¤‡L‡ŸþôÍ_ÕÌq3˜òØ…:§—úP´LÖš63~ÎgžƒÕpJ2ꂇ½œf¸Ç’˜'­,Ðwí“ÙÓ‹TÜñÑ6µ´Å´úã•Îý ¦sË:•w†ô†Ñ£Ù†FÊý«S›‹35ÔšÁ`ýþ­ØBœt)t‰üpÊž—£­Î1ÜzÀ£»äý„ÛÆ³Svǵ†ÉLr4„rV¥:ˆ)U…~® íô©¯-avöÓ©K§­PŠR¬£Io„âZ”³m9@‰MúG:C%aÆÎ0d‰¬c!O#öÇ–æè–%[ш(IÑS¥ëà—Gô X?ëPmÌqïã-dÕãÜÉe¶÷`ß§«ÔP* ö B‹Iª3oéÈä„#ZR ¡Ïƒ’¦Œ´„3‹óhQÆú´ /d\Ô†Š|¨3I ôÙ 3jÊæþG…N3i³˜©'*Œ3ƒ=.÷û´ê«<}²Mጸüé!q?EÌ·˜±*”ÉŨґJ®ÜºÏ8ÍyþŸã`²ñÇÀã_ÿEºEÈèÃ+øÖÓ”‹ R6ÆÎö9ÂMÇ |ŽÄÛ¬‹¬Ÿg[>äööÇÍûÈó úÏáÈN7Ùé\ÞOøõ/.SQ§¼ýî ¢Rcõô‹¬<9ËÕ·¾Ãåwð_ü½¿Í@ËøÓßü.üÊWyþ‰çøôíпu„5c3sì,íy•7?¾Â(PùÂÅ—èûC~úÑÒm,òòÙ—p»5ŠAÎÛÙ\âkžg~þ87·vˆzcâ$àÄâ3sk¼{í£ñ-Îv/2ßió`x¬/c+ ìµ<ºÍŒ¶6Çîí>?~ï/¨?Áß?»Àù‹ÏóÓpõƒQYv˜jÐõ4Θçî`‚Û^`µbr÷³-þàû?à…o|‰¿sê;QÄïýæ Õ¡Þt0Öf9uÖdð½}>½3¦Koï–¯ðÚç^ä½·¯’[%/>y‘kW>âêp‹¥ú2y­°RòQLdëØõ1EÏb;1™âä D“[cª ]ºç[TúSöÞßâÇ;‡,¿Üâï~ñÂmßúýßgÔjñÜ“§Xo/ðã½ÛÄwv9iΠ®5ðÇ:r%fº?„û!AÛÃYêpQ;G¢ ywpýÈf~yÝÐz!‡ñ„t7¤;7Ïê“3l½·ÃFâÑ]pp °ºÚÆ‹Ôá>ªe gUJ¥ÀîVÈûGcUfµ;Gz\Û»ÏòÂ<‹Ýwrôá6ícǨŸ°™è÷{Ôsi¦E&Kä ^A4> Q ¹Ü õd™å’[2¤Ï#‘œbjR)ˆ ’[hhã”±)(tBƒÈèÖ@8HÑ.E³B„Žže¸aÁ(‰ó‚™ŠŠ×—$…©0s“áÖ¥_°È±sç‰ÒQÔQì¹TÑ”U²HËÙ }äï@"A‘ÈKPU(K EA!¦DðÈx¤#‘#9½ùó!÷gÿæSäXF‘&yNž…¨zš›”rF$«²ƒQøÄ„*=ú¢Ò6Ñ#•¬?"S%šŽmD~ÆöþÍ?øEQÝçŸdk+"‰G¬?9KÝisw»Ùš0;;KÒƒw êëk[ªÌ½wm„2¥>{D–ÚŒ“¦í HEÁ™¥§*s|ôÙ¿7æØ‰»”þ,×oܧð8±ü<ãVI¾‰t´ÌìÉŒ¹ ß=¢—<öÊip`´¹ƒ<Úc,Ú«u¨:ç÷¸tûVò;É`ºÏ‘§0?;‹•ö° e²Ç`pôø"um ýއ?“cÖñ®£>j·Š³ZaI÷ÙÝ‘ØÝàÛSVת¬Ìͳó0äÎ^g^âñÕYîl'ìõú,µmffçܼò)~ÕáâÌ"cÕdPì †úH"©Ô˜YÔÈ|™ýÝ»&Ë%Ö~†n5‰eòí=Ԥͤ1帥âG‚­±‡‘'Ôglª­:;‡Sz÷°L™FBQ˜æ#,Û¢Œ¹}2hœqXoŸE:òøèÞ‡¡²Üx‚Ùv‡¼Ëæ­KH±Jµ²ÄÉ(£R²:ßb÷0à³+œºp‚ÇÏϳykȤßc  a8̮ϲ¿•¢Ý`îx«±Æõ}JÂÙ9›ÙÁ„qMãfiâ²Åé®ÉâËs\ýŸ1¹ 翺FbgÜúà3Všk4Î=Ëûoÿùá>ÆÅ‹¤þÝÈ¡¨áfï>ÚþŽŸm0¬,#klí݆ô_yü8¹}œ+ïúDÓm:Ëwèò²ñ$o¿M±}›æ“OR!­Á§æNpî—ÖØßå·ÿ»2¿ö8ÿüÛñÑG—ÙºµÃùç~ SòðÞû$ûO}á9t¿ÁŸ|ÿ/˜«ª¼üõÏqýæ&o\f¹S¡sržÖ¼ÆõØÞé±øì1Ö-p”Z\ùé 橧.`-¬Ò÷w¹ùö!)«çëØÕ:SwÄd0¡µcáœYáúÃM¦{·¸øå—8}á8ÅíM~öããfÆWŸáîÛl+&g_`iþ÷6>e?ßãx³M¯1áànÆi©ÔGZ_à‰óqçgoò—o~‡ç¿ù«<}æáá?øþwX|å1{òi¶¾ó3‚2¡qâ®Ý½Š¥Y,Vº\Þ¹Ïùó«ØÂ!~Œf#:Ø .s¾Òdvñ9ngû w?d1aýé׸ûÎînnpáõUž9y†+7?ãÇßû¯=õ8_ù•¯péaÆÛ·ˆ9ÌiŠÏ?u gißú¿üKn]Ùç¿øg¿Â³Ÿ{Œý›ßac4àɧŸÇvL¶¯ÞÃ\laÌÇ~<¢¬½²Œ³Údxkñ$Cj™8SÐLp[KĽ}Š´ÀšŸÁ^©ííÑ»¹‡ÒVY]œá ¤j-Gô÷B¦ çV[È~Ÿ+½)r’°|l•FCçÊæ6é8 Ñl£)2ò²Ê”œPdUætA=5ÈÓQœ’ÖsÜÌd¨º4R[äŒrBÝôÈÃÔÐ@Qiä9Á(ÁUdœy•2²Ùßñ ¥„Ý Vë¨ÑˆfµŽ’UЄ`0"ðkè­IX‰ƒ7-±Ëa4Ä-ʃ“°L?:BÕÁR-²IåÖ ‚9ÚâPµqÑqL T/ò0Ëœqì"Ë ­DTuvG9Z")Z mP`ä‚BO(T°M•ð(&R$ EP›$V ©™Q z”GûšÅ‚#¥%½,¤Pш‚ sZP¸1ÅTï똳)š)1Òñ”J¥‰jO¦Naá«)†U¤ˆÜȱe“H °¢‚2J)ƒµG®ÛÔ#4õ)R•Bw­!N¢4„¡•¦0ˆM“7-´IŽ¥„"DKŽ/ÑJ*#t•À†x”cF™Sz#¤šE’Û˜Þ„Ô,Èòmb!*2F”3-#¬ ôpÂúŒ‹ogÝÙèvNæ'¤’ ‰Œ©¥¾‰Wh6X#ƒD…X—ÑŒœ`,QH)šfb䦹JŒCG͈A’L°d(,— LÈl-O‘c )šà«‚ŠUCNSŠ(ÆeÃ@±,$ ²ÝˆBM dQ±0Çû±æÚÌ£1’}&h#W‹ðt‰L„¨™Ž5hâ›GÛ ÈUr4²4 Nbj–InÞ¹Ák¯½Æ;ïüŒcgŸ Œ 7C’ ÐrÔLG– $]…´ d T~.K”yô™‰AIè@ö×ji>úŸ†Üç_ø<3¶a匂GÉ`TÐO2*!W PzÈ~‹†$S cCÅH3¤$ÇFV}²XB)ö"ÛnrýÍ¿ü`}ý)êrÊæ¾ÊÆ$çšÄÓ•ÛGS®['»UÌÊ­ínmÂ)iŽ•:w{÷°½šz wf4óÙ<º‰7Yk=ÆÞr‚ÄMÄ ÛÙ Ç_–‘7>Ì8¿~Št±Ïå{hÚ)—,dßâã[» Ø¢c58Ö˜K&·ö<ÂûpöB•ã‹k Ä&¿—æ¸ÆüvÞâH6°‹í¢ k¹ø‡ÆRά¦’”u4Y¡²n2™„„7=  Þ]£næ¨B¢Œïmq0±:;C½Þ"Øè':²"Ñh–ÈaB:²Ðò)i‘Q¯·ñÉ §%Í™%êK‚h4¥ýÂépî îùôïpþ¹“ƒ÷î0·\ì@p8Â3e¦ÓŒ†:K©„ø–‡=ª!+%c ôx@Õ1˜:Z2¢žåt ¹ðÙ‹2Ïc*¬7V™³x°µÍö¤‡48×mÑ<~Š­°ÏÞ•ìE»,¯a­;G9ÚŸpËcè&«O-3ºs@™†tŽ5Ù0`¼;dõ¥“´¼ ¿ûûÌϵ9ýê·¹¶q‡ÍÏîðÄñ%.ÝÛ¥9³@SKjóû½æÈáäËËlö÷¸üÆÛ<þÔÌ¿ô2×ÿâ-J‡Úêqôþõ}‰Ä<‹\SÁUÆqFéV8_]âΑĞÿNT4Üʯ(c>‹ßÄõïsª}Šû;Ýb¾³É ¢2‘R^í>I·Þà­›òàZÎSç×Y9mð½ßüÝßå¿þ¯þg<óÂiþéÿþŸÓJ×ùGÿ‹¿ÅÏn|ŸŸþöû<öÊY^úæ+ÜÙØäî{w±*uÖ–G ÃèÖ,Î] ÝñàÃ[dÍ9b{‡õb–¶ÑáxD¥•Sõlò¢.ªÜŽ(ÊXfµ{š»ÚC>ùþ¬UÖ1×בŒÛœ6ùørÁ­Þ%ž=qŠ…¹sx“+üðƒs7<ûü<Ï>sšïŒØ=¤æÎ±s¸ÉA°OG^dn®uÌä±ÇÏòæïÜàßüÉïóµ¿õË|á¹§Ù%û£-¼K„æ"öù®w %íÒìÌóé­Ë”aÎñÕ`+|vi›¹šÊÒ©Ò!“Ý¡€jË¥„äV™d8½x†¦Ýæ½Û—hi-Ô™Y¤É>ÁÍ}ÆíÓ<ùÍÓ̺ïýîÛ\¾ó§¿ù9^h­±»¿Ëû—Ù ¾õôN¾ø4o½O¯ÜåÄLæüA2$•cê¡ÍÞ~ÁF¶Ï‰ŠÄóÇ?ÇCå!·x]°çä©Fk¦ÍîƒãQȹgêÔJ››·PŒˆ¢ršn5!ñvˆw;ä"§ÛJÈs‰ÑvŽ6‰Y[e”¸ux@£Záøâ,û7·™xΣ1çrå“»>3 ëh«uú;#¦^LîæX–Š(8‹ÞVÁ`àÁ²FË®PF/G*>:N&3mú8–Æ8 {šY¡ªJ è[2UÃÅä”AB$µ7±„ܪ2*ôí»„²2¥"H‚‚®-3݉ÈUHš 2N­N üñ6ýP07ס1SaÐßb”F´h32…·¥ƒ¥6˜¦‚ÈJ± Aäƒméx¶@ñ÷‘Td´Q’„#9@ t D>g¢ª) ª@Z’‘ ÏKPŒ€®crïPA›aÕDÓ&G„ZYÏ $*N†Ö3@)šÒP%=H(L°-•Ÿ¢i9ÂP¢œ1)z®Û‚éBáXäò ‚!q’35TôD£4f !£ i_£hˈ\%õTFF‰í…¹¯'8eŽ'[H"Âm §0t¤TCŽ|¼º@÷!‚ÄשYÚ9ÃH «&Ä~Dà6(IN)ãœ"ÐðÔ mµ…«™ v=b%F)\Ì4'04Dà×rl€ÜÀ3"*Ð* A®R¤ ²ƒ”ˆ šîƒn% ‹]6°„JZf9Hj‰Œ…œD’)²ÚÀÑ`@a»”@8AÀ´fä‚¶•àú9£ÜG©ih£)WrÆ="íT‘Zæ“ë"¸R@‘ê {ä5Í/‘Ë þþužáE>üècfW/@¢k*‰$£Ë:B×P,¢œ²PA-‘ËGLÿ²J]1ANùÿWŽ_Ö~ùKŒãœ¬¬Ðn…„¡Ì€'Ó‰00,E ˜îH(V‚áªDºC–Éú¥¡ ;*&~~ÄÆ¾JÝu˜Ÿãý?ÿÃ_VçìcH†‰0eF}™"‰¹p¶†ˆêÜì“Í{œX5°|“O/¹ÔÚSž8çø ·n¸nI³£0ðrf,—eÑâêtÌÈèãú9µŽÌ0Uøð'ªË}^=ñ$ÛjÁþ'?âÄÊ2¹v†¹² ˜Üæhb±t~IÕ¹»±ÇT›ÐÒOÓ¬uÈÛ7‚ËÜyó.Ç»3ësV’#,ºNAÂáH&I5"ÇÄi´¨íÈLÝ©¦“Ê„âCT‘\×.H&ý­˜¢^Òtª.Ò æv¢1w¢ƒvèsç°ÏüBÊLç#Ïbk÷N=deæE0ö÷©–5 §ÊBFŸ±a´\„_ UMÌÒ%(÷e ©KœØtW ´¡B?*h$ i%C·»h“”‡Ñª^rÂ^gOÎ>x€p긪J”ç §1NÅf­5Ƕ7`c÷j³Á‚2CË•é·FGGø{ IÓfÝ5ˆÒ©ä²Ø9ÏàÁ-.ßÞcùÄZQnÄ=ƃ”JÕáøê[{Ü™Þ婳Ëí3Üúìu-âÔZƒéÁ;¡ qª‚¿µIýÊùÎð“­=úo=ä™/=Ö´¸óñ%¬ªEký7o¿ƒ^Êœ8ó4½á&Öí”mûCcŸ¶óŸÛüð‡ÄK+5žþå×ÙšTQޏ´q…z…SçŸgÓßco§‡îÃüê<Öj‡ÍÞÁ5TÅ¢öÒ9Ò‘Ä›ü–f»\øÂTr›û#RÑ­ôïÌúãÏrfù4AÅæöíMæSkÖåêÁ"»ÍI]Çí£,¬Ó\>Åíï¿Áõkoñå/…/Ÿ9ÍåŸ|ŸþåÇ4Ÿ§»˜â6:¬Ÿãîâ*ËÇÎsïã)´‚ O~ŽËwïù¼ú¹¯³ëÝâ»ßýKNwqú‰/peôþý=ÎYeå‰ól ù³ïþ%g×øÂk¿Ìw ¸ô£7øJ{žóçc¯: ¿?áÒŸÞWçÿÏ·ZãO~û8ØÍxì‹óÌOñþoÿ.W·yâÙ§X¶ 6cÊ5Òê³õFBÖšåÔ)ƒ…hžq8æÎÞ±¯Ò9ѦUl]p?DÛ¨Ñ]Ì4ê|z7EÒî³hÛä}˜È ÎRe\rssƒX/yæ±³”¤l\@š²¶Ø&‘a÷(‰ÂÊ(›%Ã$LS¦±Ož)èUÍ`GbRxÌTÒØedT¦cªiÁPÉQ•®&ãïPf…Y ¶Œò”öÊzR°³ßCØ9U«N†EJQÌD•©):²i)Z,‚ƒ·˜¥1aP"¢’É8EˆÕ1)ÕØ…M°¥Ôt‹nÍÁOR¼HÆÇävNê—´] á*ô'1 ¨šÈG!… bxI.’Y‘ãU4ÚAÄšƒmÀØËÑãœi£.dô0$O)m©á’©dSÓ€i@* Ê ‰¨gØyB´£.X(¶Ëø¨OQ¸ˆŠò.y"¨[ JQ0 |²ØE‘dE&+T”È#'w-jaFæHM°CAª%”œ b5!«È F‚ Q`éÜIŸ¡'U"%%/e"ÀÎ3$!ˆsPÒ>©ÖÄI}|‘#T›ŽŸh9e"#É@B¦D«!š ³ŒYK˜¨bJ§Q#7 >ô)*9”5LeÄÙ4#•j¤£]S‰4Ÿbì⢒»iT Y%i^Aˆ rš"d MdD£’À¥€4áÚLÈ£œBr‰cáç(n›  ‰ {œ«.9 5U&Íe<²¶Š=5(¬œ=+Eò›Ì‰’È*HíiÓ@Ò‘#QFµ)ˆ…hp„bÚ4*2¯RŠŒ`ï6Ï?ÿï½÷‹ÇÏ#gA!0teEg™’£’#g*™Z’I΂GÃëŠqQ"0ÈÉ1~Þ,¾À%ýüüE’ûW¾ü-¢"'j¢Q>JÅBSY,‘zGÝ¡m™xŒuƒ,˜^D¦€b(9 ›šô nUg¶Þ¦û|ø—ßÿ`IÇžd(gØNÉ1½`|6IéVªj“QÞ#¨ÁŠX èÙ\ŸnÐY]l1htÙ Ñ‚ ޵æYÊNñYÓ§']A¾ v—³Ufûw8¼Z²©Ï¥qõÁ'nL¸0޵Y™›—o05ž:}w¤ðÖÆ5fZ¯ðôÅçxkã·xøáUæ_`ªé¬ÎJœyúë>L™ÎŠCEy‚],nnþ;Õ䙟çz¸CË•Xkç£+°¯zÔ¶#±trhgÄN¼IûÄ sV“G}üä6gí Ø—› ýˆÓ­B·äÚµÛ¨…ËKÏ/×¼÷>ÄYVø‡_þ2»žÎŸüáojÍ“gxýÉYáßýÅâ4^8uœ³³sŸÏ6®°^=Ou¥Å­M¬LçäÜ"×·°½»Çñv›î±†QÀöQ@¥£Y1Õ ]æ³—6n¢‡ ö©&n×dzcí[î‰9æÎæì÷Æ=Œ©Ê9³§êd¶Ãážš{ÌÌ·ŽŽ&œhÏÕl\¹O^h¸MX>ä•çû?b+Y8¦PNuªãˆ¹c‹\rÿömÎ;Gcf–ËãœRÐÔx¸·A£Ucae­­+X^‡zå$»âš¢z6×§#ÊAK5°/ è6›xÞö$Úî5´Æ«˜Ç÷—H¦í•M³’ÃAƒ'WJÌZ«Wï3RÖg-Ú ÃÈâpïí¥‚™™×8¼ÓÇéLÙ~Ðc;|§SŸá÷ÿì^{fžçÏ<ÍO¯ý.o|¸Ék¯|“Wžkñ£¿ø!÷úðåó§1 ^bÿèÏ/>ÅÅ•WùÙˆŠ=¤‰Di¬ÏÏ0‰Uö¢OhG-έžä°6åã< L}N³˜Y} G/x÷ÏÞ§¿5æ¥ð<ލsëÞÇ8¦A“¦RÔ4$§ÎöÆ.®_aý±ó4–»ôl0ÊrÖ–WXÑ Þ¿“{‡CÎUÎÔë4?Åxn7ÿíÿl«Æ“¿|–v7! ŒáÓÀúÙY^~ìiúÛÜÞA4çiQr°pve…v¾÷ÆÇTë ¾ò¥—xpíSv~¶Ëâ ”Ùuø;l½}íüÍ—¾Aoòƒ¿ËÒìO5Ÿà†rƒÞFä5è«Ó½xÍkwxðÑuj­/½ú,*m~ïßý»AÀßüÖ+,Ÿ<Á»?½ÄÕÝ!Ç×NºQqœhÉCÞ=d÷“˜`NfaÁáôñ'(ÃŒÏn½ƒPæ›çP4 ·:峘®0Y=Ö"Ú/9ˆFÈK.®´76£!k§§ˆL®\ÿ”Ò²¹øøƒ¾OpïaJˆF%œ`Š.¸¿`굪M_…doÕ5˜«×)ò½ R«BW7È” }5£éÕˆ¤œéÔga¹Ž¥–ôn¥x©ÇÒ1Guínâ󕣑—î#Œ˜jb &IGAM$Š©Ãx° $¨õe,ÅÁTâ ^/&Vb¬¦Ì4•PC‡ºi0”Ž˜Þ¡Z§½R%Rî3:Pi& 7EL4ÛešOñ"Ù’i¤ü Fºá)•±K¦údm•|`"G;än £jà¦%ÞDÅ/ Õ±™z²‰F]€dŒGZÕ¯ Q2†…OEsYêö‘¶ʤCZµ¼>a*!Ù&z0õs Û¦•ĉµÔEªD‰XI(#‰¬=ƒ•rE䪆’çdvÎÀƒ"h ÅD¥À Ô´‘Jax‚žCÖh {DÈUÐC´Ò%ìDžJÅó™ …'c«`êp”—„yƒ¦&)$’•?Úõ@þ(õ€@@ì•dBÆ´ì¦D/iT],«F:9d\$Ô¤."Ž ò k‚Ђ#Å ˆ4-ÌÈÍ))0¢Ï,‘d™J)‘T áåØÒGæ%Ü´$ @9vbÒWSÂ8¢™ø*†O+)H+‚¡ºH0å&±ìˆˆ¶!#F`o D´¶FdQû)¶l“75Ì‘B?Ïh;2º*;Ä Óetïê/kvùiY  * !H„‚­ %Y®’«9d9: ™¤£è q!#$ÈKH‰@%²à{ y4¾õ×€õÌW¿Ê0ÒPZF¥‚ CÒ"Ã0m„ZR‰iᆢÌIÔIØdqưïa93³ ¼¾Ï8"T™[o½õ×Iî³è §’°Ì‘È&µf΂dâ—~Sìµ(Œ-z£€Š±†»¤àïŽ9<Š9yB£ë¯òãqÍÜ礧pWk2wÒbºµÁý[ ÊéÏQ9鱜B¶7Ë_ ÖX˜Ùe¹¦²å ‚ÀÆoA2¢š)wó6ZâðüS2ý£!ýÙ¥óP¯µñª dÓ£Üó©U+ÌÌ;L‚Œüö] ó –ì6‘ÏPÈ4ŠYnb&"’h¨Sp;<—Ó}f gæ8~<À{0Å­X´O6HÁÞ˜ÂHi-® ” ÷zˆq€Þr(\]“‘ý„騇>S㉥ ÜÞÞf÷ú%ª‹Ëtæ;„½’©ð(æß­Ãa•´Ik¹…•HøAÁÔƒŸ`sŒzKåÐÞ ºŸc%2Òª‚•µ(F>Q:E¨Šª"•ºª2EŒP™Ó"±FmêË5n½µÅ`°O­ÑÅm.@Ðc˜‡Ôkó$G»Mó>Ób—F½E·]'ˆ’Ýœx<¦0®qìÂs¯òá§×Ø¿þ»àé§ža"^ãîß$”¿ƒ»ö9œÅãtìñ®ËÝÍ ŽŠˆõÎ+óÛý‚£ìÅYzÛ3Üyç¯xú §_ýÇÜÝØá{¿õ_3×<Çÿö/bŸtøo~ë·‘4›ðÍoóÖgoð—ßû3þé—ÿ/½ú*üW?%ÏC*'W¹{ç&ÁÆ}ŽzžÖÉeæ– ~ÿÏÞdã“}þþמ¤][`³¿Ãø~ZäöÔçØÿt‹áð*³]}i™xì±µ}@©,Ï9¸£ ªVã¦j³ùæ[¬·V™{ú ãþˆ[9r­¤H#ö¶ï²pñ$¯?ý:üð÷¸tûM~éì?áäê:?¾ýø»‹Ý/ -&HéDp–Íû–Úã¥ÇŸàäìE>úîØ’G,´Î¡{1‘ã²rá,Åõ!c‰å9…Û°gËü×~™[·7xÿ¿âÛ¿F¹vž¼ÿ`ÀüüòvôpLB…ÇŸ>KLÄŸþÞ÷Ñ•:ûŸ}›—ù­ßø<ûúI~åÕÇ1å*oø)wî±´¼Î OSÞ»ò)ýLã™ã§h-Íp´óŸnyâØëTº~‚­˜Ì¯U¹·ßg vY±+Ô;1¥Øz‡»w¨Öõú2•VÁÎÞ„p0¦~ªÃìrûOØÝܤ¾Veau•ѨÇöa„ík,,— ³å^Dm§ÎµÍ! BÖÎÃglíÝÃó}ή£1[ÇÛÚâp 5—™dÐ º*ÑKwpníý,%¸…ÝáÌ2—ƒ JE£¢(Q¡$¨h**‘ð‰R(R™å÷sÿ®;§ä$g23}$TìÂ&×B¦.NŠ¡6—ÄŒ0A6¬VCR‘Ц‘:‰ë<ì…µ-d@" j¶E,f¸‘"ËrFlÉø'¿ûSÀZ:u‘ç!(dA!–PÊC CVH…Š¡dä"Cqn Š˜,•14" !@¥P$¤ŸU!=„¬¿¬‹_x)×Ñk-ʆFîÏÌ›R*¢i1¯5 f]&Á£R¦ŽÆ?ø©É}þòãØYÁ$3˜¢’‹€Ž&(••Ÿ¨2êâŽ\kNa£S%íϸv°Í’\Cy©ÁÉp›ìí‡u›ê’Žö顮Л_ÅDû‡Dó§ê ù­wÇæÙ:OÔêŒvgø×è<Ú&mRÉu¦k2‡w÷9“™(¥6»½>¢­áJ:«JÀ\%%,‚0B'¥6WÅÓj4 ›XèóÒŒã Fl™˜Yļ{ÈIÛ!”OÓ‰ûÔœ •öiØ—ÙNHç3æ Ë8œŒ0BAûô¼’ÇÁµ]šADãÊ<¹ª“ŒÃC6™(ëJ…‘ˆñ|œjNšë$™M­¥ Û ³ñ„<5HUŸZTG1º@D/Á5b,­D¡ÈV„1Í9"CuÌ´ ¤@X7˜… ½ÁM™pþüç°¦)÷fãͪ²Ä¢}Èüæãô$™{ï¿‹7L9ÕY§ý$™†5œÑs§ôsÁFE£0[F)f:¦nÙ‰CNÆ)~¤qöœ†n-ðñݤÛ3®>µAR2é~°¹#«Þ^Âz»Í¨4âÁõ>g9ÏâÆ"÷w¯gM§ÎÑàå¼C«½ÂÁöM,³L§ù ‡î{LÛtŒÓL²*–QÆ(Üø ’ºC=ü ÞdF*íã–>BÈk„þelÿ&ayŸnÔ@ÕS^8u–Vcƒoÿ †[}®ž=G³r´£wh¶–jOqðã7Q³=*Ï¿ÀÁ°@õf\}úYÞ~íCö¢ÛüW/}­¶À?þ—ߢ]¾Àßyé oÝz“ûƒøâsŸå¯ÿò“üæï}“»¯~Ì—û {ŽOoHeÅ¢^_çxÛC-‰L›z&1è4ñí”k×®s¾ZáìæYÆu‰hÏçúÍI³‚ùz‹Ûo¿ÍgV.²ñù§ø8ü˜ãÝû<¾¸Àžëbm4¸`=Ækï~‡?ºþ}^|þ3|v±‰kµ‘¥}÷¹u£—Î×h˜28f:'xâÅu‚î÷Þ}3Uƒ Ï>à ŽùèÝïc”>{áE&àþð&z”"WVQj G0¯¯±ôÒ*¹.sóÇlýø:ÖY¯ý+(3•?ý7N8æ©e¡vï àZº6ñ¸ Zì©—§Îèv—“d‡µÍÖ®²wÔgëã÷ð§>ç¯Ð,U™Mî±w"¨ÏU°Z'Û ;¡4žê’Eo{‡`:æôSg˜õ"Ž·¶(_lc©Ý­.Ž W×}. ÉÂO±ð‹ˆÍÔÄèT¹ ÷îÄRûkWj¸»Gx)rkdÞ!Ì  zý)jÒ\hQI5ºã{Ä´µ&¡gqoc8‚–îFS£$2NØf"È‚SÓÑôJ: f½˜,KpæÁŠdúD¹ã $z½1ùH¦óô"tDt7¤pê4ç+Äi‘L°5•(ñäz'Æp®çêê•‚L Or„×B²Cºº@‰môÄCÕc´²Í`”SékxFGC:QØWFÈ©…*¥Ä™„©e؆Š; ˜ÐÌË„ZFZ”PüûDJ›DXÈê(ÑHC…BóBEJ~ÕG‰JrJ,2Ê"£Ÿg¤c£ž‘G6¹í"û0ó$[§,\ܱ‹” Ôª ™B‘É —qæTCUÁ¯¨hSl™\ø(Cð‹QSÐT™ñQHÉÏ­23=@–ÈÈȘbZ2Žf,3Ñ3+ÆLdâ8ÁÐ2ªrL?TH² †ž!§UYf’9DVB#‹H£Œ=OÅ®(tÔéG ù(Â@¢Š,»XZnA 9D"Ã&!Þ‹ÀvŒ8e–g™Œ–dÔ •¼ªœ! 𘪊‡IB5W)›½P¥,$­`鉂Û}Jî„060RO °)¶ŒŒ¼ú¨²µPoH먊¦Îpc'ÊÕaÈøÇ†9czøÓÖÊù‹ÈqN¢¨äŠ‚®(hBgâaú§‚T¤…J^d gD‰Ž’ËèZB–Èä2€L!eHiJœkdyŽ’¼ÿƒŸÖóÏÿ,Ž™cVM&‘ŠäOÜ"5iUeRS&“ÄtFœ D‘“TtœÔd6 H •5ÜxL<Á,ËŠ…”øôõŸšÜ›Ÿ»ÀÁЦðmŒÚ˜fÕ&rm¤X&7e$á¡j>Zb"•eR_&ïCÖÔYK>½7aPUy±™r8°èJ µh›áA†¦]¦}Ú`6¸Ît¿ÌŽ )Û¢SŸÑ—Î0yxANªN©Ø>ãiy­EÉÖ¡Þ@#GæìòˆžÜáÞƒ”ÎøIcÉV¤}†® içTk:V‹Ùá˜ñè˜ÕË2]¡Ø¼P¤ó>N*ˆ¢‚柠-e”” zýñt€i–qšM$Ñc¸?ÅѪ8› ˆ@booBžô1Ï8R —8ÌfS¢’Æ™Ú Çá„îý›47,ʵ3̦'¤#—RÕ@Ôt£»w±ì •j›žë¡ÅY%BV)—›Hå!;·'jƒõ¶Æ¤¤M2õÃXc”ÆhYÀ‚ZÂ+2fU•Ê,á`|„V\üÜ™n¸õÉû,¬5ÑD›­tŸFž²1wŠ#)áÖÝû4òrë³Xcu”©ÏµÛo£¶¬¯=Ǥ¿ƒ/ÆÌ²6YP“\¹„®”*M4T¶?Ò»<~ºŠÖ¬²³?E”b J„ãK/âïʼñ?ce©ÉS_|‘I’ÑÄ(G)Twh/^ ¤Êñî;d©C#[FÌõ©œª"íÌqÿÁ.ûÓ-ž=«°Y‚Ç[×ÞÁ²OXYZq•z4áÄ=âîíÑX™C„d%›$šk2?>æÌË«WøÆ¿¸F¿û:¿ñŸþµú{GßãÇwß%9¶øê×^¤:·ÆŸÿ«Bcóå×…·¿û'|çG?æì£_á¹õeî¾û“²ÌÙÅ3äÖ˜W?zÙQÀßþ+¯Ðjmðßzã£ë¼òâó§Wùð;׉>|“¹§:œ~ùóD‡2o¼ù”Dfuq¹zFR’9‰*L>ø.i¦²ù3S•2n¿ö.êRƒgÎ,2•}z£1åf­­mޝ߿ñ/}G–—øÆÍB6y鱯cm.ðÍoüCößÔÎ|†Ó‹1f¹‚ÂÛw~Ìòã—yró7ïo³·wÉk’öR­Â³ÔXZRyóÛŸ²´zžÎB‰ßýýÉÒùÇø•—^âßþ!û÷ïóÅ—¿€¨è¼¿õM«FÕj‘ën\;ÄÖküµ_{†ýÁþÑÿô§<³~ޝÿÆ—9<ôùÖkߣb9¼ôò£ØF•?ý#F½-Ö×.ñäSˆN"^ÿƘ3žüÚ ¬4æùðÕ?f0ÚeáÒãTkm¦' :¶1ƈe²¢ŽÈ"Û°¦ÝÿØ£ÚT›—(-E ïî18‰XQ›Ô.´˜….÷Þ?ÄYkpjÁæ¤7#Øš 1û¡Á’žSq:ÈEÀ;÷È9§7×iU¦‡ôC»µJ!IKhYŸQš )9K­S¸yÈpï=JU‡jó4cL±ß'«¨”;Ut9¤7Mh¹L*BB œY€T’ç4d¯À”K“»øˆÎ2+&‡·Q#­j¥q1Á)reM“~|“‰”Óiob­·9¼u&z£ƒ{ ‰ðŠ„EKÃweö¦Sœf‹9Ã" ð3 £îWÇ'¦ªˆjŒ?“ItGO02¥±2¥dvlR*I¢©„’æ(Qˆ0ÆQAÅ—1´˜¤h X>…ìæ2vTES"+GÊÊ$y€B’¢Làh] -ó­QuȰGHSA”› ŠŒV­ã† & yG¥Œ=UXº ÌŠ*šœ¡åcp-|'c–èT¡„šJ>…ÈÉ ±¨Ê1¹äãW4Ä,a‘ Œ˜F^çh‰Ç¬bU3¤©ÌØ“)[†2tAZÈ*¡cä!?T1L ™ªˆÉãŒL®@Ý#h„F€-[¨dH‰†'»™@¥JÌ€0 Y±MfYB?’‘ÂÛñ… ™–9HRHË ™0„A©“1>)0ô*MÛ‡qÆLª¢+ªâÇr¤iS Õb:SiUfkŒŽnþ%`-¬^$,@Srô\F–@2u d„à¡ë'¥È:¡”ce¹l V$¤È?)´KÈ’L*% )¹€ÞÿÑOë³õ7°K # ¾L(X¦„Zñqc“rœP¨1¡¡1KcLß#$¤l¯¡TT‚ðˆÉt†­™h’J¡hDùŒ›¯}ï/‹åLjÓ[h Õ0‘LÁƒX GÛT²Nu)…0#vúq—RS[¸@¯î2{íÂ<‡öt…|û>»Ç)õ¥³ä†EùàNc‘®TÂØ»ƒš¬0hJvñ]•»ý>•Ç Ìä<£›v}ˆV¸G‹ÙŒac‚ÚwX]Hñ ‹cOe)±_(¤Á§¬=ÆeT£ƒJ€¤¸àçì{šS£eÇøT×@X„·îb«{¤ÕM*¥ryŸ^pªºŒª¦ì NÈ2‹NkR-ãN÷ëhLei\}—@­+!Ë™nšI‚‰{B'1Pj:©o#ç:²3Æ›ÅÈ¢B9+0U ÏH‰¤kÜà˜]tY¥¶¼‰*ËôzGHy„¤¦Ô¬•BæyV!ëÞ§Ò´YioâN-ny¯‚r¶É\=Åi¯pç8‡Á.š‘“”+òÞ˜xêàÖ-ú"fy*ãë cyÀ™õuœqÂµÝ iY¢<Ó ‹GÏ®Ð;<äÓ›û(…̹‹—™k|üñ6E1£$  j–XjÐßžáJ,,t„Áœ['”QÌ€‚¡•²\©Pªtøt÷ÆG=œ…s4ë'!ñø€¢ÝÇX¶i§L¦*GÝÛ(Õ.%£FÙx†vg?DèËX›<±‘Ñ?œãÕÝe:{—¯=÷yÊkóìŸÌèÞ2÷¸JfåÝoü€ÓÕ>çžúEÞ9ŒÜý.-_ÄhuȤÛËýÿⵇìJü½_xi±Î¿ú7ÀÙÎ<¿øWÿ¿÷½oò;ÿŸ?àïüÍWø…ÿú×ùýo|‹¡¿Mséqv?ÜFIFœ;õ<Ëg¸·÷:'[œÕ ŠpJ>›R:µB\žÃ;îcÑ(Çškp¹f±ùl¹h~òâö|àV®±¾:jIì{.ÅјùSèªNïp7IØh®2qʸw®S®i˜µ¶·§8a—Õs§ÉìßÞ&WôÚ•šDm:@É«ÜsNް¹Øäìú&7v®qëÆ˜KWžÆÖu¦÷ï:UµE<!ÔŒ@70 ›$8¤« VÊ„7e?rI ÛÒa¦3s´Ta­¶ÌÑÉ ;éŠÙfѬ1V\ê¢Åh8 #*µ2–s4‘pše_bØG*Ë[dɤ¾ “Y09`h6‰bË>¶^&ÐzˆÞÃ@¶uÄ4ah†H‰…£Â ˜‚ãО ¦Ö˜mRíÙ$ ݦpÇ# £á¹ v"‘´4ò\£H#EŽ’'´K2ôB6è‘(šc ÇÌLóajùLBK“ s‹\֘Ϻ¹‰’ǘ™[ ˆÔ%ß%H"f‘F­lãçc”¡Aš$z„H+øºmïQU&ªüÎ;6ÙÀŶc ˆ´‹QÚ$Ucü“"”¨6 Ò,c;„9‡ÿ%d¨HV@.Œ©AÒÉHd(y ‚R6fhè$A•ªã§9¡®R™f7ꔳŽ+*™³¡É rN´.¬A¬ËYÌŽ¡„K®0v"$¤øáȱd«ÓŒ Å)Ð= #ޙĉ`zY0±D’©. èJÇã%Ε¦”ô€Ý´‚r’cIcœRsÁáÞÉ1Òx„Sï°pzœ”íwv14—Öå Âoà "Ä|@p$°1h]jŸÜ¸ÁJ©ŒÒœgäeÈÒµ¦ÄL^&ËCâíËgVðÇìõéU©ûlg¥â¹G¸‰zÝA×eFC©Tœ;ñ˜avÌãµ9,©ÂayJq á ˆ€ç¯¾L(i¼ûÖï8*V#/Èôˆù… öfS>ºv‹ó¡NëB‡©"h"!â÷s*vÄbi‰¤( ÞÇsêXI“8èb)…d‘é)Í¥}tŒ;óùʹy¬õs¼ýþÓ£”3› ý8ÄI-$)åúƒ[ÌÍUxéó?ǃÃ}Þ}õ>íæ<†Ó£ºÚ¡¥/ññ§Q”S®Öž`lnÇû¨Þ<ñt©^°ºâ!g\¿·„³²8dnù*w0ŽQ…Ê^ÚÅÎCÖkçf3–lÃP˜J#F½áÖ-.µh.žçGß|“è`‡Wþ³ÿÕ*øãoÿ1g™¹Áq©É’¢óàæ¹7Ìù…¯¾ÄR£Å?þÖ?EÏåoýÂç9™|ƒï~{“=Í_ZçŸüë÷é¾½Ã×_¹„«K¼úékHäüâ_aœüÖ¿ýCjû^þú³ó—8¾u¿ó²’Å‹?÷Ö™wèNcÆhÔt6>û8¥ÂçÎ[·I†SZ^FIsŽn=@§ ¼º„xœ_XgW(|øê70̾ö…/"{.ÿß?üç(^úÜ/röçVȃ›¼þ'»Ìú}.½x™'7_䯷¿É‡wyî©§h©5²€¥å Ãý}¾õÞŸóÂæ+<Ú*q'ÚFñS–Ùdo8åÆëßfa}•Ï<ÿeîܺIWÛâ©åóL½Œ·îßàÂéó 3íðæïÿ˜õµ¿ôkÏ‘¦¿óíWɼþÆ/þ‡ùßû­°¼Øæ_¹ÌÔVøð»{ô>¼óHÊK¿ôUf®Ìü濦$MxôòW‘Ë$;Œ®ßA«Y¬^>Ã`j±;;"Ÿ=ÀQmTyŽ\ Y©®a–un¯“<8¤cn /·èT¦Y—Ý“ õÄ uƦçöÈn i\]Ç“bŽ]–…Me±Áa?d:‹p•.{™ZUÁÛž2Ñ¢\%÷)CÍ ä‡“Vr…ããn¼GѬ0×^aÚ1›H6r<ÆæE$)ª]&v]D㘳92H©J&žÈÌò°g+h :éh›ØÍQ*–%<¢Å e£Šûñ=Ñ Í‹˜«éܽ{ŸøÀeéÊÆtÊ0t‰"Ë®`‡Ý8Á*Ï3oŨÂ×Ũ–hè^¨’F†H™) va£z.a-ÆŒ«Df”$Ì’1IµFYóðÝ!娹yŽ«I´ ™æ‚"ñ‘R‡Â”™¥%ôÑPhH†‘L‘Ì i”@~‚µÈ‰ðP¢ =œ’:!SGEÊUìž‹og(éB“KAª¡¸2Zž‘×£Œt4GGXšì‘÷LB1”UòzŽf-à eâYHU­YòÈ&&(NH¤Úä™D3t˜ I Õv‘ãâ ‘™‘ *¾À·erQ …’° ,0R¨v ¡*£äy¨‚#…®0Tdæ5ƒ`’sÙ°ªØuƒòÔ¥;å€òÌBµ2’¸À ÂL'µCÊÈ„]P­µT2·ȵC¨(a‚'Ž*Ș’ç2…]ÕãhœS¤5ÃÁK¹åRML|“D*vR]Mc.=ì¡ÚèÄŒ2Ð •ª0‰yd‘k9…R á©ñ ܽÿ°.”“§*Šª¡ŠIÑ¢R*‘,H’S(¤2$±Œ"ÇÇHª „”KE‘#ç…žƒòÿ—`]ýüsÜÝí¡˜mÚ¦À²fdÚD9Šì‘§q`R43„Ÿú)ºæ 7š„ãfñ”FeU‚Yøªã̧–ÀGo|ÿ/«væ%Ó&“ ŠrÄ8Ó©„.…¤áÕ;”¥ˆ,ÍÂRÎJœ‘h&G¹„,¹XyƒÔ–°,Ÿäƒ»0¿I¥ÖbÚ¿EU˜Z A¼Ïbî iËôŒ½÷JfƒÕÇŽˆ³6£]Í:ÆZÐ(ÉMöoÍЭ zÃb·×BL­äaŸ!›p__eià3&n´YSƈ‰?§0½/ë *á¤KwÒ¤¾¼Œ}x“‘ÒZï°Íqõ‘zÕ¹%²fwt—LÈ,,l`”*¤n3”ÆØËó4ô2‚þ‰¢Œ©´ç˜%Aü)‹šÍ8ÐD)s¥°(b 3‹‘=™BõÑôÓL „ÅЧP[[C®X ·“cÊ ¥¤ÌTÖI£)i"HäIsª~™ýaÆvü å´Žo ”%:Kp÷$&ÛÛfiÑ`2°Ùêyt¹Á¢hÓk âÞek‹¾U…&çæ—Ð'>üp›°‘°Y_9CnÈÌ‚˜½»»†Á•g.£(ï]ß"+,*ºAÝ©ëS½Á(˜¡Å*vÓÅ3Uª…M>ˆ8šœP›“X í¥Ó´-‰7Þü5Ùàɧž$J5"qDq£OR—XY¿L0NØÛ€4£¶à1§.àM—¼E?¸‡b¬sú±Ë,–à“ïŸðÆ»»œnDœ¹¼‰h¨LoŒ¹yЧñH›êâ>ýýOY¬G<ÿ•ùÑûÇ||ç-¾òÄ ÕÕK\/ö8wÆGЋG<òÌyžß\á£ýk÷þ”¿ÄS¯¼Àá‰Å¿ûG<÷ìüÚ+›o¼þ]Þüý?åâÕË\}üg8ìßÀó–×ZÜ|çC¢aÀ£Ï~…J­Ê­·Þb,\Î_}šZ)c÷ãø#•êi‰MGÇZªq·«Ó»wF­ŠVZA † C‰Šì v4<¸O¥9ÇÒ\ã~—ÝC.Ö–QÊ@ì°°Ò$Ûñ£Ý£üD“Çžû ƒÞßxí·Y›Ûàïÿì/¡®”ø¿þÖ­µø«O]æé”þ‡Xr6ÐO§´&%aä]gÚgk¿Ï8rùÌÓÏsõÑK|çÏßdôiÖWØ}ï§ž«óìg¯ðê·ÞäÁ­ëœùÒó\¨ž¦»}Ÿýb›¢_asyñuT¹Á“Ïfиýö;Ôkç®\¢·ç±ûàó§;4ZM¢A•Av‡á(¡(wx~i)˜ò½ë×(u:|áâY 7áZÿ”¦ÅRe/œ2è=ÀÒÚ4{qˆæGl¶¹¾Dáϸٛ’Ež©Î“lf|z' îÇ4×:d®D0ŬHXa /ÕQ´€Î²F2³èÞyÀIÐcýñ§™+«D÷»ÄŠB_Óû=VæW9;gqíäîö>§Ö¯²±ÖàúGsâM8¿þµP0’Gz‹Š3E E#“dl_0Žr<+à´Ù‚,c/žR:-mñ¨ÇÐ=Ĩ6©šÇº=¢gJ(¡`÷°j ššÏQ"#ë”k>ÃaDÅ4+¨¶ÆøZ€nBu®ŠW„‡Sò ¡®Yx’BQ˜Ô[*ÓÐ…¡‹R1HôQn¡icäqÈL.Ñ(éXzkÅä'+:•HfTäËû$#¨Œ,„² Ø’D0’H| ¦ÑT’Ð$89ĬIÔçê$ã?}8Y¦H:R™" e\A±w%QÞ@ä4o‚¨ZôF‚’ᢠôº JU#ò|3lE"R˜äjFÇä˜hªŽªgøAˆ0t¤©BR5ÈfSªzÌÄ©’º2Òd„Y^&Ša2îb— hŤ™T;DÄ2N\!·Cr9DK,úª‡b%T…E”gŒÝ‚š¥á«>35Aëê`„ì¤yÌXoЖGLf…¡“Y)Žo!r8ȦتLUÖX QÐ4cÜØBS^êb ’*ˆbÈH ðcÐe¨% ç09*‘<ÅÖâ¨ÀHt¤Ð&É\¦ª l¨H‘Jä¹HŽ„„‰›iÐÂ' ÒdÔ@£ÕJLc„a¡+‚(õgmMeBw`P•5ruŒž•ñ3Uã‚$“1È&L¶ XíSç³Ý4($È„&@*²$‚ $ò“„ª Ô\[Bò=DaæR*cj:y惒Aª€–ñþþýTίÿ-’A#‹©”ËøŠC†‡ZäH™I,MHd—l¢b*Š^ÁÖUrÂQ4¦THTì*RV§ï»"ê¦B¬+|ò$Xõ WH²œ0ž!ÒM‘ÑEE6(Ê3T½DüÙcì"¯.c(!VRd [LQ|Ÿff Î/Ò‘(#*Ö)’A„¢©Ém†'EóiÒA‘SbËÇÒÏ ‰!ƒx‚ÖO±ËHzV0›L(r“f5'¬Z&ô»ã™ÅcÍ‚[%th³˜œpm"ùJrLi,wd¬e«¶@ÿvÆAÂÂfÄ””I·C{I¦ªĺ ›NP»3Î]£n öÃ÷Æ.yCæÜŹ®ÒÝòAÌ0R"®²²¢Y3öYJª9z¹‡å¤¥&º…2z8EÑfèõ¢D"?Œ;HN‹Nõ<†å²³u—$P±-•ª&ÈM“ÄK¨TkŒóz'Cž»LÅircòê39Øeþt§Ï¾À`æríÃW‰CXè<JÉ ™µ€¦•ïÜ&Ö–æ.2Œ2”8c¾È9˜Å$ZÀj’08M²½>½Q„PeìZ™›z µ>eÿÓ]vOøügeõÔ¾õÎÇŽxá\Quº2ÁÑŒi:¤nT¨9çÙOwO´*D-%ö=z=‹ƒžGýLÄÙú£pÈÖíÔËkTª(ÂavD2Ì9ŽV™kfTc¼‰…o(YÄšÕá J¹ÿà]*õ9::ˆIÊÀËIb/RÄpŸå§4æžäõ·¶ñÜOøâg¾Äh¡ÆÎ[ÆSêüÅ >øà.N«`³£²?µ95_a¡³Ä7¾÷[ÜùÄç÷7~ çÜ:ÿìßþ s•u¾þ«¯ðO¾Å¿ýÍ?ãoþüK|ù—_âÏ^½Îƒ›[¼üÙgñ™öÏ%Uãoü7ƒ\Òù½?ø&Þø˜ ›R:5‡9“év¸?5éc´Mªå2гýAuf±þå‚ÌÃÛQŠ]ê«ëx”ðÂ#‚ýûœ¤)—//rií9níð­×þ‚¡Éÿæ?ú+¨‹U>þ×ßgë­;¨Ï<Ê =BëêãüËøüÎ[ßç¿øõÿ„«§žäÛoü+.«,Ÿ-óîõwY;÷ s%þô·~—IòÒçŸCD5æèæ.V¥½ÑäàöM$U°Ò<Ç{ŸìbÛ/¿p•w†Üüîu.<¿DyÅAê¼}ý#ÜYÈ_ùÙg‘ÿüŸ½†ˆ ~ù?ù }Âoÿ£O9wnžÇ>Wgf”x°ã1~ë:NÛçÑg_"PK|pë5ä¨Ì#Ks¨ ÜÛöØ;ÚaQ˜¬ÕL\Ífç4Æ3ÔŠÁƒYF%Rkn 8Üß&DqŽjÙÀÖƆÄdØ£œI„r‰ÞxJS‰XÜÜdkè#)¥öÕ0"Ö%?'J¤pJa×é,–9Œp§3–[—p“cŽöYXu0õã£#¦j€n7Yl˜d¡ÏÁè³ÐЄƒ+%ßÇRbÛ+'óuD ‘i3ÜÀ'×K˜ZS9!°, ×!PªqЧ IkçhÉMƒëx÷ûT.oÐZ¬1Þ»OoWgãñUYgçÓÛ¤¦`añA0ÁízÈK–Û “›SwL^[À™7H&c†‡=4µ‚¾ Qõ †Þ€‰%#,«0H‡~’S´LD Þ,DÍAWe ‘Q¢=M˜)2V®ã« Jwˆ\Ëé‡UDS¶#f¡I*åHCŸ¤ÖÂ~è£J‰(áé*æ4ÁPsL…D£ž‘¸ n?£]·ˆJ‚ öI3-ÈÓ:Ñ\†ˆ=ƒ¬fCjeÌ,Ä×urKÁ¨–Žƒâè¹¥ªL¢OQ3‡*)*n¦#†þPµ 3Û ‰§Ø±M\W)’„|¢E¹ea(‚$s±sÈdS‡L`*#|_'Q«T”ÃJÕ LSÜ 'fv¢¸1qKe5·°DÆAFIÉp‚„¸©¢Ù2Yrí'a<-( @–!É PT‡(t!IPÔ2¡íÑÍS,?ÂÑT@e¬˜þ˜<ah¸Y@#Ä–Ž¥§h£ŒÌ0ID (RŠ$äÒØÄ*R†jˆÈTÒ²‚Yx³K/eO»€Ñ˜`­\Äãa™Ý2u”\€"¡ª AŠþðP<¬<<¼H•T¤T ‰œLö‘%I†$HU ©H¹Äû¯ýùCÀzñsó &î=<(Ë&ŽúàÇBË(”„lj%ÚóeÂtÀñlœTF(e&™KnIÔò2yæ!êiªðé÷þâ§ ÖcO2 Sì ‘L`P.Qv*žÀתD~„”»$ ›xfb¨6–<¥çŽ˜ö\lIP1d­2š:#ß6«9%y‚9±™(6Ù|—hOC*ç- ÝaïSl°Ö ò2'®Mj[!Röïî!æ ÎØsÜ> IcŸKÍ 'Qà8gaÃf/™19JØÊ†L·ëXr}H«_Ã_0qó„Zw×mQ]m +cvv|æ* *=ïìPvešçÖi¬žâàÚÇ ïݧ|eƒj½…¾çqßÉÉ|'èsöé9¢Ê'?Þ¢fù”Ë-Ž ¦=C7SŠÃ¡63Ü0Çœ_BènF–ßÇphœ:…:Ÿ°sý.IìÒpæü¹~ý-³ÂÆ™Sö€“îœ0‘öY8ÿ,gæ;ŒönpïŽËÎÀçésU–OÍó`ŸúIÁX):!N§Jï‡;تËc_þ 7¶Ž¹þÆsO?ÉÊ“Ë||ï>v¢áß8¤§©<ÿ+O!ïyý·°“'?‹˜º|°÷÷Ži¯|ñêe‚~ÁnýKžyä,O\ý5¶wÞæ{ßúCVWV¹zæQv§}2ÙFöS¶îýÝJyù¥/³huøÆ7¿ÉÑû‡<þÊU¹2G¯wÀÍ:½½wè4mN=úÓÄcvt´v;awÇC—,N¯Ú<÷éÝpþÌEtÇäí­÷Pr‰G.qâ9vyâéÇQb…÷þâíÇyö+Ïpøãkü¯ÿìhŸ{šÿóÓç8¶bþäümæV–Yûâ)T§ÃÎëÁ=‡GæÈNú÷ö8ÿ¥ÒžÅÿùû”–tž?õå•G‰ܦ^ׄ)o|ëÇ´Ï.ð×¾þ3|üÎ=¾wýÎÌ•8µzšã „rNäWÈÃÓý âÑ+O5n~ø> s¬l>ÊöÑ}î~|—KOn2ß ¨CŽmk¬£é!/Ç1ÐpÓi¢•3t!ˆFY©@SæÈD†éŽñË*bV!S"œROL^N–k@•b|µ†®Iø>LÜKU/®" RòJN^mN=l?ÙAÕS´¤ÂÈ÷ÐÍ„ = q ™\…DÏT³ø¡NÃ(ðÇ)&"G1ù°‚fdˆr@ˤr…L¨ Ø. …κªóˆ™y «ÕŒTrhXûÓ„D5¨jÞTÀ92‹á~ ª±‚ »*“ÄI ¥¬D$ÆDB f¹€ÈõÈëeªd¾F^Ê¾Š¦I$5ÍMÈ“”™•a”rl,„ä’‡ yÞ"srðdUE'ÁK t"9%2š©/ãßø©ÉýÜEr@JRd¡#«9$*±$Pc†L ´P b©@‚,Î %/PÕP˜R Èreýè' ÖÙç^©ר6ëL¼1Aš`F&BÑÈõcìB'ò 䲂ž ¢aH¢dššiD"!Êâ`JE×)Õ,öÇø ·ôÓ’»yñ¾ßE-TDÍÆ,:Ôœ)f ni épOJ›;Ê©i{Ž&,3¥ÂPÑ1öPU¬ŽAºó Ó¬LjµY(öÙÖðS¨·êŠÅ 1I¦'乌bµ¨7ÒIÀ$ˆrÇ2ÑìÁ^ΰ8¦®•™oš|2;¢(±Ò®áQ“kDá€QOCZ¶èXE×`ïX¥¸tæ=Úí:a_! %šuÓÜfLc&±–«Déìß*˜f,.ÇHU‡l08’[‚sºÃ έN~Àñ(Da^e$y¨é” i£†Òᆌ›åõR*㞌A:fì¶X9·AEV9Þ»—笔rL³B_ñIÒeYÇÓ}¼ÑëgHæ¸ÝÛaì£ V—ˬŸy†ûGGܸö*sVƒùÕ'9™åÄ{TäIbXî2½íÅ¥S«œÑ3t]f§?áþp—NY¡V½ˆ,üÙ„ÉÖŒ´–sñR›t¢2™ ‘ËÓ!ú¸Ç“Ï>޽<Ç·ß;àx÷6O\:ÇJuŽëc—ÑΈRÅ£³¾€9 ÷‡TÖ š”¹ç…%¥Il*¬?SÃÜ xç~—¨²VQNá>7ï|ÌXÑ8Sz[÷&7ÑÝyìÖ å–Š5mr}÷ƒÉMìÊã\|f“v{Ž?~ëÒá1«§çpï#4Ùcaîkܽõ1™»ËÊúsT,ÁI÷ˆÓ©à¨gòã^󋥞îÜž"¤Ýã!¼øÄÏRÝPøí?ýw„£ˆÿèW¿Há‡ü¿ÿåïð«?÷ _ûùWøÆw^å›ÿúŸòù/}•+Ͻ·þüCF'[üÊ/£Šyþà{N! þã—^f[¤|òñ»,µÛ”æ7¹ûéMj™‚V©C2ÅH5’Ädn¥ÂÌÞíâ”çˆêœØ Ñ»ôz÷‹ ˾ÀÌŸq÷Í!9=*K—¹¸ö$z‡ï½ú=z[c®~å2ÖÊ“í.ï}ëEóüþÆ—xåïþmþ³_üë\ÛºÅÿñ7~•{Z…ý7ØXZ è=@6|þÉ/0Ê&¼úí×Ù¾»Çé OñÒ¢‚¸Ôæ“÷~€w`´˜G‡ÌŸZÂn,óö7¿G}¡Éç¾p‘Ñ`Èö–Jªõ8]]F7M^¿û êHðå¯=EeCð‡ÿü] Æá9Ž{Þøî6ç.•Xo•9JjŒ™l2 0B.nlPÒd¾w·‹”X¼ÐÔ)«7Ð{‹‰F«%s+‘1Ž©”k„‰ÀÑ·0*²~‘©Ÿñ€0 HÌ m»DàGd²5'('9£ÈÀ;<Àò\ªg. Û r÷]or’ö™ŽvYß|”åJ‰7®ß xöü t+û×ÞÁ0jÔæ‘f=N¦P]¨ 0GxšGͰ©Ð&Ïfþ$Ó¨4Md‘3*[èQެŸ0Ҭ¡÷qó2nâx‚9/¨Û>“Y;ŸC; ûc”ΫKe†[79Ü9sîºÊ§{[ˆ,aam¼”á'·W6×6ˆ»=îx‚¶±Dk©†×ë!õC Ë„Š†‘é¸î˜ QÖ1\AT€Ï¥VE•êP"¬ºàÙHšC˜‡èy@ ûĆî;(ŽKXR°÷†Dš–…ªÄ”-A!…ìÎ4Ê3 U䦡%>CÓ¤0•cJ …*ÃÆ'hQÂ0ê`’!urò“‚ÙxŒ]U©Úe©ç0÷x“¥åe¤<â »Ëè(AmWXU ‚ºñÍtC)ˆÊ ã@%½sV§yþ ï°õ½Y?µ@ãñM½CÂÌ&‚8Îi]íàÈ97ß½Íb¥É…¯<ÆÖoóç¼ÅÅsO1¹B+v˜ nw?¤.†´[?Ïx<æÆíï³ñÈS<ùô׸1¸ÍŸþÖ?¡ÙšçÜå+ˆØ¦³TÃùáÞb°ãóäžás/â­ïñî[7Ñ‹O=u„Í`6bo€‘K,_™gOðORæ6—I†» rZ—Û4Ô”íkCd=æÉóç‰BÁwï¿A1‘x~ý ½f‡»œúÌyÂé×þàÎÿ•Ïð•ç¯òöŸ}—õ‡ßàÒç~¯®+ˆSøãßüÇ|´uÈó¿‚öØUþôïÿ?ÙxzG/sý­T'cãt…­kûwÞàÜKWY£ÄƒÄ`ï&O]¼ˆ¨Íñßþ#ÊE™_ù;?Ïáö€÷÷oÑé´‘3–”2³J“ÃÀ£âGœÄGTê%..^⨟òþƒQ±ªaÁl±yú4Óî˜HãÔWH˜â}z‡¾)Ÿ_ “dÆÈ­˜3ŒÌ¥ì5q‰=†ƒˆå¹MôvÂÉÞÜñ„r©M¥¼NXÄŒ†»”åK§MÜnÃA[« (aIÆ3 ¦xX±I£%ÁhÊXšóðœ¾?f˜TÌyôšŒ„œøC$ÕBµ-Z†Ç°—á©6Šš£Ê H IuÁ“Ê9z.‘îû¤Šƒ6³”ýJ‘"„\äH¾@*r2ÉÀÆ8v‘:&ŠüD¦¬T‘ðq‘tS•ÉEDÒ— ‰±69Ÿ0#«#t•"àzªeaX&Rlàg¥0f,ÙH„ØzJ\T² HfÑ€Œ*5#&ÌU«@“ùVœ!WYg65P´ S³ˆ½ %„F€”ÉDhFB=q+:E^ Md|3¤¤>Ü t}ƒŠmÄ6R"DZ¨xV™ œùì `áˆ]XHýŒ½ñcÁâT³Dx¬r’Æ(f„–%dYCŽðŒ #6ÈdA‚‰A"+¸‰Ž–€£…ä2DY•™RD%’lŸ42™ø1ÍYBj—QMAáø¨®†’h 5+3㙤ci’‘È:² ãìáéšÃdsCˆÆgÇ>Én„ä h«kDºÇ¨8¤¡”pUQHhq‚)g¹Š,L†É€IqúâÌYBo²O<«£ê\A®W(ES’q™Q{ÆpvL[šcsm•¶nÑ;8æsÏ>Ml‡¼÷£wpü”ås—1ë&îβ† •Ÿ!ropu™kž¢!+Ü 'DjZ¤¢7ÛÈ©ÎÌ;À3K,ø‚©è‘å ”æ4例Z«âÎr¬C—R)¡¨é„±M*J´³[Þ­ì°Ø¬3óFÜÝ h5WØX­°uç.ÝÈçÊò#H‰Á'»we•3WN“íú|òчT«\%œvqoìæ`mt0âäáZ. «M%Ø'>®ÈPæl’8$I]$Oà[* 2B$-Bæâa×ÚÙˆ0Ê‘6’–[2ZI¦¢›a¨šxG9ËòOµñ2qHœÊÌÏ«œÄп?¥Y,Ÿªrð Æz,Ô!Éôly†Õ)!"Án—Økq©Q¢ÑŽ8T¦¸QÂE-Ä5›Äã„@“‘Õ˜¦™sîÒ=mSi‘<8 ï> ±ÙáÔÙÒ};÷}lGee±N¡ wö˜î¸T–ÎÐÞPpïxè“1­¹”æZ‹ÁÄgïÓ r-&­¬ÐVmŠjö&ô&íõ5êõœàxÆp<¦TÉi×kŒÑ±G6–íph’v3.ÖJdeîù‡xîÑD¡Þ)qní"dz„­ÛßG×J¨Ú:” êu›«ÌÍþƒlFÕm¡UäZŒ‘VÑ´”Á Ïý“.ÍŠÄåÕsÜï)œlmSµê¤µ[TÍ&-e“ÃaÀ¾5¢Î(ò&‹kuÈLÇÄRLÅQ _P›k!Ô½½>ž$ÑiÖqzaâ@æ^o §RbM?ÅØícµB¯ŒâJD•㣠_æÂËWP•7Þ½Á81omR;SGV¢›ûŒ—ÔìdU}—¡“Íé<¹ùÞÉw?B:a×àJg‰ÆÓpûö|üÆM*åN]†Y¡#OìÿàǰY~Æ+"½]¥jpÚ1NÝòÔSÓ:·ÆÑ­[Ÿ^§åTé8%ü‰„µp™žu‡ñ­{üÌW¿ÄAß㻿û‡|æK/ñÏ>ÍÖ|‹ßþŸ'Þeeá*¢ípn=a®Ñà΃ïþøJs\zòŸDìïìPJUÎnh&‡ûÇŒ36–-ÆyN<3h-ÛHú>y'@Ée.¼x ïÄåÓÉ'4Ó]`aAçÇß&èzúA>ä{o½ÆB{ƒ'ž¾ÊÞÞMÞùdÂÙ+m6×—9ÞŠÙÙ±’b®sTTÙ?JyBã,7q#‹ìp€‘— **YxH£má[f{2¹î£JÑô˜ZÙ RYåÄŸÐëQ¯·YUŽO˜äÎü*µºIqm̤€l> ÛQwÖ©.Ô¹q¼Èà”Ó&p ß"Ü¡,µ)L½|F¸›Riä”Lƒþ}I)3w¡Êx÷6î¸D³¥S6q®“•tGdQ«Ö¢ÖÖw»„B'¤AY„„ÞQÒ ¥2ªjÑr§ÌܼT`Ôʨ±‰7ÛÏÈÌ)”ê(*èûSâ$A3LôÍ‚â÷b˜9µ&E a„ >®,¡VJ”S ?ï墨Rr‚L7O8 lZUƒ* qrÛ †E”ù$H¹Iâ‡ä¶ƒVd$*öHÂŽÑÊU/£jkøø}E³1ò!±ÉIQÒ˜LŠè…ZMÇÇd%ic;¹9Æ8x¶AIä(’ω›bSTé(1cоDëÔæT\%Å%¡’ËŒ=†KÖ€òQ´‘‘ãveœy} (3½J¤ªHy†3D J=!ê¹AA€n–!UßÇTGGÉdT‘!Åf¡Œc|%GÓ43$ê6˜Ô§4J ^b€kcZ9žâbÈ:±,c‘‘«¢ Pf¤ ô8`œ9ˆÒÇVÑÆ9ws(g-à ŽòÚeªeë2¶œ!»¢ÖÆóBJbH, Æ~†'ih9hÂ@u<’D’†£D%'Ô-¬,!‹}$Ã`Œ„ȦhºJáJȦDX”0¥Œ`i%Ã!Ë"¢ôá,¦$$¦ÀÅ4Áµ:h”ÂóÏ?Çw_}•¹Ó—Ð(È„‚T(èB •u>òÙ8{žÅ¹9bo‡î1¼â³t.äùµŸÜWèsÌBsY+¸scFR[Â’b”a†5¿Á¼¡0:xƒnúl\^áê¹îßÙf~Ä|óqÖV/óàƒ-~û¾ö%þóKpWáù?ýwÌ¿¢òؓϰ³·@­&ãõs?½Îvt'/ýç/oðÎ{?àäZŸž º&è¾@ɲ8%ªÝ§í"dÁxÖ¤½&C‘±ÿÁ˜¸QðÈâ:’m±ûÖ'¤j›Ç/=C÷Á ®í¼ÏÙ3˜øL¶yæž…’ßþ³ßfóT›_þk_çÁpúOþgæÎ†¿öØ&§ùïòÿïŸ7ßÞå¿üO¿Î¥'>ßþÎ÷™Ù.W^²‘JL| ¥£¢[‡„OœæñÎÍÅG'ŸëÁXfÿþm^G¥Seë~Ÿ4ÌièeìúˆÝÞ1RPbuþ¢üƒiŸVc…J¨°7¥ gR#›â†Àü¥ÀÅCÇ,LBwuœŸÃÊhdá3d²EµYÃP î z4b›úšFßë²7ër~ùsÕU>úðMz ™/>ñ³­œ7·Þ¤mÖ¯>ªlð>²Q¢}ê2éŒ-wL¡YÈ%zS"¿ ­·(Ùñ`J l‘á'ª>Z®PH)nbæ „’D9’ë¢(‚™*p ©hUÂØ§0rÒÜGD¹‘‘6Æ$&/ú ‡jTņHË0 4$-"J3·f’i…*îTFwBü’CYž!%¾€‹\ ÈUíØ#´š(¶A6î" A²ì&2ãÁ˜²cáH½4F¨ ly@Iš08T«¶j0tËe‘`d9^RF0”c"Y†L&sÚAÁT­àeSL[PõcÜÜ&M2f¦Ncšd*Fã«1„¶ðd1•LEBÅSšìb˃\Fš#ÀJÈ"AÖ•QÛ6%BFnÎ8žÒYu¨(‡»Ri‚FHK·˜’ÈðÝ%á +q°«»Ù3Í12ÝYRQ$™4IÉÐ1­ˆ‚ Ï—•3PÑ-‰`‘Ù zèDIdhJŠâ¤y@ *‰A$Gd‰‚ŠŒ®Û ÝOú­˜ã›ïþ%‹œÚ¸J eh¶@/ C'É $R$©,cÊ A¢ä2²ª ©)òLFBAR%Š"BÆ@&$”Ù†$BÑ@Eå½þäŠð™¿û+tü‚{û.rUÃ5‡T¬ …Ì‚r®ch:E’Å Ê&º>a,Àœ¡’ÉÌrru†çªl¿õƒ¿ü¨ò™gy@PÏsì"Ai6)J6µ0&•¦ô%qRÊìê ²Þ1™¨‘ hX‡H‰M2©¢ÈÇ$¾ŽVÉÈ/ȉEÎ’ÐDÑ.Öa™2ãf@t¢0=Ð)çÌŸ:M÷à˜áØã\§F’åÜܰ1WFkË(y‰Ã£ûì„\½´ÁFÝæ ÈÙ»L21¿à`Zó¸£%9¦HgŒÕÆ(Ì%!BNˆ,“F\AJ#2é3Ë`E#˜¼>ž’¥Õrƒ0²u´GyVâÜòÒì¼ý)ƒ,bî±2ËõÓ®À›í¡ë2ZcrY¥oqpr‘«röÊ#Ô%º÷®s¼Ó>¢faQ'4U:EΧîÏßá³kWHWlîoõˆÓ°é˜”Ï=ÉÀ;ääø}Jq›Â©à “…Æ!͢ű[à&Ä~zÇ`™vzÜØ¾ÅüJ“«gÏ0ŒS>þà&zeÆ\³Ì\µ‘Î Oø8ØE-«œž- 4ƒ°–1:3 d*g”Fcº¡BÙLy†T¢V*!)!In2u™Äk%›re…©;]ô¸…‘„å0JIÌKµE´"coÕQ«wK£xBKm1ˆ†ˆn›ÊBÌÉð=Fn…•‹WètʇwxãÖeÑ`yÓ¶BgÿøîÝ¡¶y™Í&j2éK¤ƒœ½­œ~n]·¸ýaŸŽ|Ĥ×bçð:ô:æ©GùîGà¤O<ûYNº}¾ó¿Eë±WøÏ¿z ãÒSüîŸþd•ȶØ=ì²¶ ÑZ±8xr0賺)¸Ü>Ë̘ðãk7éħž>èç2<ÎÐ.XÈÞ½w¦˜K‹¬œ¯"¶cîv·Õ*gWç‰F¶{òlÀêz™´³Fïî˜íƒ»8å ENÉ© ]Þ`¶}Ÿ“ïR9·È©¿ÊÌOù_ÿ·‡píyþë/=Â…ç~‘ÿÇßûN<ÿòk/2[m3Ûú.¶¬òéVÂäXð‹¯<Êâéÿ¯?ú î¿zÀË_½Ê3Í:[“„¿û1œ«SjŸå‡×ÞåÔ’Í©•E>RY+t‹oõ˜_‡Íù ý±Š'ìôÐã/<³Æ,Ëøî_|ÀÜ|“Ë—¯rýú>·oñ¹'–XŸ3ùáÝ”ýQÎcÖv§ÅInl?`yå,ª)1õî“»!©v–ÜS°ª>J® ¸C|K ›ëhÊ)óhš6ê4&˜†ìd>N‡¥¹©ç2™ŒLzšÎ<ŽÓa߽Ϡñèæ9’rÂ;T}A§¤R´¤±‰—öñÝ £JQ“™MeÔBÆZCV8yÐ¥ä”pÜ`Li¨…¯‡§”©v ¼Á>h°`×ñÆr’™"ã8Ù¤ÏôÈEÞ˜§b²¬ Ûhè!FEeIè¡&™k1’&´šK©ÌÎá!raÕ—ˆË2Æ^˜ñ‚EÉÓ¨ÆGŽŠ¨jÄR( F2¤ss#ð|’äáJ”å„Q.È…„„&Ê$N€í›ˆbFš¤L„ m¨™A? ò2&c|‘@¾ˆäNÀt‰h $™ª2`i g!fGàˆ©/iLÒnâ¢e>Z¥‰VrȽ˜Àu ¢¢y‹Œ€hb´–2ÄÙ„²½@âÆøá™‚*„’2.b§Š"’è#jÕœY^,Û •P&cJL #÷1‹€¸ÞÁw ê^LEOˆ ƒ©¦“ú ðÂF’=\Õ¦R„HªÊ0+0Ó’ñ( שPp˜¸ªJ+ÈPmƒ“ÐÃL2Ý"Ôj4Æ8©âW]2#¤“9L$Ù0#1\Jj†‡ƒ!…&ˆ’ÂQÉÓa¢Ú6 CÊ’ÝàØ•Pèa¨d;' G(f ?ˆ± W)(3ˆQm™ Ðq¬7b0•qÙCK%œPc¬)èÉ adª‘¥ä"eâ¦Ô Sµé Ÿqhî¼ÿ—,²qù qšaä‚Â0Ir(g j©D. RÂ0ÁPTä¼ ÑSˆl %"R%ÁÈ Br@`þ$ÍÒ Ìòœëÿ^4úäã_昔4ލÅ:YÍ ô<ÂYŸšTF©­!*3Üñ .UÂ̦È1g:’Þ vºÌÀ²KTì&wO&ä£Å•2׿ûê_~ÔÊs/’„>a?çD ¨¶ëÌwV`’ãÉÌ0<®sj±Å@ÈÜL™‹dÖ[6ÃÌÅ*fiˆ— ° ,»EÐáH ›§;ê2»vúú&ÍF×'õ#$ËÄŒ‚AJV–©mÎ1vÑUS©³µ?aVLxôl ¥Ðìx°×ÃZwXX°±Ž'„F ? åÇÌimJ2Û=HƒjU§ÖÙ—†Ô’)Uu‰aaë2­rÁáÉ!ÇQ•…Å6Rh‘Å[´‰;šÞIp„@~àó ʰU$_£?Óh‡´+«ô ò‘µU†“–!™d°]£³®3÷hãPæÎ›Ä>.ŸAQ*ô¦”&”¶nÝgµSfí‘‹ôîLyptˆ$2{´‚½x™Gw9¹}“E¥ƒÚ^Å‹»¨€õÒ;ýñɹpÑ ‹µÇ¨7a{|ûŸî“ŒlžxºÎÚ#k|ÿt?êrá±&vÕ¢Ÿàé”Ý€ã†FYĨ‹m8̯žf_™²¿³…¡iÔå5½Ž7èqìF,Ÿi‘ìt§}ù U­Í7¿û#ÔpÈ3/¾€­„Üñz„RlAµ³Äí{{¸“>Ï?qŠLÔ¸óÆÃŽ‚¥ÒT`õ\ ³¿ÉÇ·_'éúœ~j©Üax¼‡›™³6PÒݸ Y]epð)asñ³Ÿ£l×ùá›ßcÿ^—«\á3O?Žº\ã]¶·àêÓ ÖÚ)ÅÌᣓ¼9UÝbï†E»¹Äò…~xBoc‰ˆwŸcÏ¢ùÄKÔÊ2?þwß¡TI™_œè¾Š©œp¢—PÊUž[1¹ù΀?ü³?äÊ/}™_½°BQÿY¾ý;ÿáßb–hŸÒxþü—˜ŽZ¼ýàIöT.?ýQ³D÷ík ƒ½Sa±UC¶'ÄÃ#î|РqI0_›p´c7J,̇¨Ã˜ë»!†£²¹9‡\ûB­qŠ¥…×o¾‡:ŒØ|üYÞßy€~p‹Ÿÿú_£·5æÕ×¾ÅÊâάŽÜ øæ_ü&Asƒ¿÷¹+œû¥¿Ãÿåoþ*7ôÿÝ×>Oií"¿ù~߸øüsBBÃc¦ZœÞgMøàG}ŸZ£F‘%<ðö±£ENÕ‰Kpxë±as¡sŠÃ£!£Øcs}N2Æ;‡$›…ŽÉd¢‘ÉÊ,"I\Œ,Þ³È2ÒXE„!^SÔt–CdQ§·ï£ï»,¯Îs\s9ر¬-3g¶¸Ý}“±oðÔ3gih‚ïÿðG„µ„/<úœIÂkfЮžyEØÚÚ¢”åT:Ôj„t{?Qqç쥌ұL掌%2r7bVN)2KÈRÛHˆrðS 3ÊH´*!C„&aH &ý(§" È´ª(cú'„Qåª e~,[!B.!B(3ñ¥,(Æøf™‰ òÔ׈ŒŒ4Ñš BRp“;c6}ÙB“±¼:¹®“–c¼a«sþ,%ÕÿLýW¸mùYŸ ¾#§9f+ǽv®]µ+«Jª*©„„œiÜŽ8ÐÛ>œ†ÓmºÝ>mœN;`cl· ØDR)W©âµÃÚ+ç¹fžsÌ‘S_”ŒúvÜýÇÕû|ßï{U„tBÁÉ™h#+. 9S 4Ó$“&D^™ŠäD"ž^B |)&•4¤\ij3|Ç£d¥LÀRÐ%eãX)S"f%›‘˜D9e+Åu ©¶‚îŽÌ,P4/—0­ˆRMšxÅ!U%A+¨¥Ù° Ï&ΈB«DµTĉD¼©‡–„ÅP¶ã‡q`eÀ£ˆË¤h89z® ×UÄÄA túRŠè èDø&ˆ¡±‹AAÎ ,‰Ì÷(êy¦ãe’ Ä2S W3t’\g‘cAVpŒÅQ„gœâïmÿ!‹4/=A!M 5“,)f!¹RAQ " YÄÈ" ²0RÕFÇ¡Nª&ÈYüMƒ ÈbBˆŠ,dÜú€µxù z}X\µŽÆàˆX³*Á0Æe„DG“§@B۱г>ù\¥€^V•Ð÷ \Ór±í‚T€ÔçÁ7¾kr·Wgr‰àP"±eDÝ è*˜–Ï~7çø8åÃ×$¦òE&‰ˆ²¿…‹€µÔ`¹qÒwñOg˜d#ìVŽZ” )cÚÛ£L‰Ä®²ÿè­Ùyš³7“ÚÛÄC…¥…2ÆRÎæˆ<8cå ¡¨°uØgNN™](Æ"wNqýœÕå |x¥Æƒ8äÞÛÛè’Ê3kKŠwy¤Ó Í–O-0Õ5æG'ÁVÉDSmf‰Aÿ £ ‡WðF9íÊ.ºRÁ-5`Ò ©È9ëWIüœ7ßy‡I[àò«¹ Wh?8&J§ä–DoZC/j4k1GÛœ -.¿¸ÊÂZƒƒ[`{‹ê“먺ÁÙþÉÖXªµpËÞ¿7âjŤ¼üÇïpä84Œ-S£ØXg?îÒ¿‡Ö¨N¾°ÄQæ°03âb^àAÏFÎb‚ø”Þ¹ÆÜ… ó*q söú_}?7ÇGžþ4÷wz¼sgj9`®¦`uÔLá¤3àÀ±\(R›Î"Ä.Gs‚šcŽäÌÂJ\d7gZ—©–d‚(e80d‡Ò²ÉôDg¹4SÅ÷mN:ôÙ˜‚`#: Ñ¥×ßE´—¹xeaçˆá¤‡)Î"É!±.`ªU±@OèleTVb&µ)Jo–Zë:µÂ{ßú ÇC“ëOÝÀ4Û²H4ð8DÊ$Bw]é"fEÌB’Ôçl’DÖfŠ$g2wûc* !ÅŠÍÞ;>‘’Õmb{LݵX›másÎo½3¦U5™o¨LsæfsB³Îqç=²T¾D\ƒ¸†<²¨¯_¦˜ÄüöW~íÒ‹|öñEhÞäö7)IúGS:áÏ=ÕÀÔ67OÙÞîpµÖàÒ WÙ9ÙapoLýÅ&UKbÿ÷<¤+:s 0¹Áäae–•År'áýÛ'HºÁÚ ð§)Ù°L3ö2žºþ2±òæî·Y2«È^ÈïróÇ>Á`,ðÚ¿û'<÷Ô~üoþi¶¾½Å/þìÏ#­^ä/}üif>÷“üý¿þ2ÅkÏð©Ëáž79Ëi®$ìvC„~…Ï=yƒô”ÏÿÆïs|[å…—Vùž ‹Ü¥<øÚÛ\š7ñŒ9œÉ˜Å¥2ž_`§»Ïµ†Š#–ð:Cf–¡É&cŽwú´ …ÇèczoÜgí‹Ç×Öùåßßf¤OùôÚ*‚bðHö¶)—kD‹ÉÞ#ʆJmö ü‘O"=b*èD1z=§¬/ =œhŠY2°»)݉„UÌÉ 2J’R0Kg{ŒòQl1£[LË"½Þ€~à³²ZGõCöOÑ%•Ùf¹V¥ëeøqŽÄÅ ª6æDÃ𔵔Löèb&€% Tª6q<ŃYP‰Ó)·’P+TC™Áô€1jÅ$Š-LE'›ŽðýÅRÙÚ<à„ónBYiUkìŒ&HC…ò|Š/ã!yq™Ú¬Èô¬ÇñÀeea™<ÓéžžB–b­Í`t»Ä¢EVVˆc‰4% ð<¯°@ÓLñG}"AA’,LsBL†”Ä)X¡ƒgb#‘b 9(EbšªBÐñ<½¦c0 ¨ä’{Œð‘+ iö¹E_V Å ³`Ä Q•ðG‰”"‰EkÕmŽU¬²OêÛ¨% ‚׃Zd’ÔlƱK>ˆQb£¡3ŠŽH‘’YAS<©%aäBÐSfL«~à¢#è)t#2£FE èF¨¦M®ë$CÃŒ‘°é¥"… Ä–Rˆ|Õ&HAI]ÊJJéd(xqÕRHEU‰™ˆÐðc2Maªë„ýÛÖ‰””x,ÂHBiùHºB6‚i(’›è:J# Y:"N§(…TiÀ`£©fl2ÔE²  ˜0“”,wÌf("G#Æjˆ&(YJ*{ø‘Š(çȺ€è ÄqNf‰d¾¹€ˆÄÕ q ^,£©騄b„­ à¦$ˆŠG!™' 'DrBæÆø »[fxvûYäâå'ðQrŸ<P TE&rAÀHARJ!ÍI#A‰9+!k a˜«:J–‘‹1ª$ú"¢!d ï}ã;+ÂÇ¿÷‡ÐÅ€Nß'.åÔ«y/d¢Ï"Èyz€ëTɃ2%³‹šÄZ™(ψó ’`# "ã¬.³¼R¦¼š³{Ïáè½ïf°zºÅÎ^„Ñ*s}mÕ¯ðþ`‹0 ±„k…¾Q¥äß'†BTApNK›e”‡³šØÈ+9b¡„”º˜g2)$“SôÌ¢ï°Ò¬aÄ‹ÜÜC%J—/£ŸÐŽÇT —MúœuG\¿V§Ph±s<&ðÑÊ&Õê ‹²Ân?EÍdbõ1R0­YÒ8q9ó0´c1¡¥g˜Õ:gžˆÙQ-jô‚º2¥j^"1&œ º$ŽD­\E(¦Xm+rHªKäÒÚ}†Û}F#.ZQb³à€Éd‚I ¥U¥ˆµ‘lQöDÊÕ:Þ´GrgÊáRDA—˜Q–ñ³)F¬!ÎÀéf‡)ëÏ}kwÂëR¨ Ûý>?ø—¹¶ô<÷ïp÷õw{úÞçY¼ñð[ÇÜéd¤yÊÍæ9%µFß]G)W™„ØyÔãñk«\Z,±µ™²©[èaJöÚêKÜøøËt†"‡ïõ‘ë~¡@ixJ!àWY|ªAó1ݯküÚoÿõú<Ÿþèãl|ò£ô¼Á½¯òûßøW8KEþé_þ t=_ûõ_¤:S >7‹•UHËÄG5*O›´š>‡û"i(b”Dª²Ooª‚¤ri­DŒ¹ߣ¦ÕhLNq‘½)¥VE6¸÷è-s¡µÆyÇÁkù\­‰¼2ÇíÛLF>Ÿøôçî{üÛŸÿ”«Ÿào¼²Æ+ä³üØG?É»ÃE~îo~œÊ3WùÝ¿÷Pª…ëW@Î™×æHŸ·öÞBšÔY½ÖbaµÉÁÙ#vtøðǯæ_{혛WŠ,.WØÚR³-ƒ)íÑ„g^¸ÄLUà«_>¡Ü°j&ç‘GÁ+±6Ÿpâ´y0(—£ÙÛ&•]âÂ,u?FÑ5N2ßÝa±>‡×è æ‚„:ÒÈ» ´KÅ A¥MILq`!N|ÒQHÇs+sXÆæûôvYzñ)6j«ìm½Áv'à‰+«¬_¿;dz¢°òL“¦mp¼ç3ÉD“RUf’ ɧ2•¥VÉæøá)N°\¾€1M˜¤gÔš:’t‘ÃÝ»è¦Nsa‘î°‡;Ž©ËA/3©ù®Y `+T£ ™­SðKEÜjS-aÑbÐ9CdªéixÈA&r¹µA]y}ó=zJÎs+ÏÒRÞ{ï5zE‰KË/Q |6àg°´x‰ÐˆwºdN€µv ¥pN2ÊPÇ*è)Aq‚Ð-’è ¡è¨Ç:–’“ ½Ø£˜AªëĹO‹XRÈ*uô©KM°Á(2 ÎÉ Ù° Qºc¼’„à«ÄJŠ)‘\Š1y(‘á!f*#+eF0q»Süb(=#˜ÚX-)Íñ<5sHl“ÈÏÉÑP­I5èº]TÏBÉEQ&Ö42MDbdFôÜ2š Qaå¾V"‘R 'B-¨ÄÝh!—TäÔ! \‚j¢IJÉÔ”0pÑS×҈у1•˜˜)ª¢SðrzY† ú”¥*ÝÔ4DÒGD©B¬XdcʹeO#r Ëd‘ă,ßR‘¹¯Y1º¡š¼Î(ècÕʨ©FHL>u©*Z*!é*J6 sDµF¢H¨É˜´ b F¢¦åM¢P$‹2Ð2QFðuD=Àòrx€«ËØiB.d¤z„–jx¤Œ‰#).PÐÇ “0ˆƒ&D3a¸w÷»¬kOâ‡i.R5DEI!“c$4 “5[k"Ÿhê€XI± £i÷]zžD”Ë$bÌÓ—«t÷¦l¾ÂʆJky™Ãí)(å¹5¤v@/"Ц¨³¼ºL÷$ä¸ ³°†ZN N±2¿Dyñ:{;ïqîŒi^\&/ÇÄç z ‰1GÝmܼÂÕú“¸ö=Î7H+W¹4Ûä`ÿ”Ý$a^ ©Í,R¿°„vvÆ_»‹Û¨ðÂ5ºy»Î„pxÌ|5ž l<[%­éÞš"f¢Öåt¬³úÔ³Ü4$^ûü›HW".×mnŸ€-”©/›œy¤äaËä¬k3óLŒb%8’‰U¬l:|ó­ßbؼÀO®,ñä ÏàfãÉ:ÞfÉd‚¶˜R«–p3ú»'Ø‹K¬,[Äýn? Ij!ÍY ó5¶÷ßcà ¹¶~ƒé®Ï8Ý¢ð¡'xç¿} =øÓ?ý£ÜÚÞçW~á™[¼ÀŸü;ŽÓñ„ý·ÿ"?ú'øÌã—˜(Wùÿäåâ§/ðGš— g8¼}€hyøÎ§—ð¡W>®GüÇÿö:y‡W¯\géÚuBNß™2îyĪƒ¤J\\ª"–8ºûAÈ©-–û8“˜âú‚ëÓk¸g)oŠ×ʼu;Æ=òÌå"µf‹·÷:TÓsJÍçÛ=¤á•±Zkœèc:“C aN+âK­ª…㊌…)†™žD¡…1kR±'ô J¹ÅzRàìègôh”WY =yJ£Ì¼œ“ Ù?’( ¥+2½Fן‚A/ V'ȆˆÔPs•²â0UÆœ "7§jhÌ^ÈMvßocæ! ëuòî„3¹O­¹‚=PiL“j¥ÁD+!J§Ç GІ,˜+$™B÷´‹Ì_]fÇl¶™»ºHŽHÿÍ*1s½Át´ÉÞÝÊÒ2‹µûG;„ŽGmi1Êqúû8¦Ms®†êŽL=AÂH"b±L¤ ± ò·h"yù.!5%s$T)@SbS'ŒDr"Dl1FՊ茕.™£ j’2õRFªN9 1Ï Æ:Ô$2@*¥Tí"f8Á‰+¤…bd*žaé5‚ÁI‘Èå)¹8‡ MQ¢ˆ(Õ)H ™T&IÛ„‘N¦é”¥Œ8p R((”ªOäGÈJ AtðÂ,- –]$ÙD‹riJA’™Æ9ªô¯+°RäTDÕÁMR7¦ADfëx…Bš’(P$Rk€H¨’YÒ®¤Qt²À&5Û¨ŠAàŠ˜¹‰$C–ÇP’P$‰hA*!U}Ô@#s’1è–„$¹ÈžÎy˜¡§>J½BÐÈQ{S¯O\-³n› ¼”g@I˱)ÊR ñt¦€ÎPÎ<<}‚Ó‘‘3¿à¡*©¯’*>‚P1ÇEÐsò$BVl„Ð%TÀÌÒ¼„¯L0]\¯‘¦.yêáJv.‘¦)¦à!E1ŽiáíÜúC©_~Ñ÷Ð䢩 ‹2Aš ‹:1iª"ÄB€,"ç a®«  Jbk1y¹‚e)ª"óÎÿ¹·žxŽ VYZIâœö™N©šRS§xƒI"SWÊ’Ëз@Ò(TtüL`<ð0|ÅÖ©Zhå ÇgôÊ,\*rÿ+ßí"L/npcy•ÔšÒßì²w`^6yñÊ›ÇÝñÕ8à øÕË5˜xÐd8 Ôµr™ÈŽ›hžChLH'¸Ò*“‹-¢(#ö<"Í#.}ßÓmŸ÷rao £H#f ¥U¦îÒïÏVؘ¿L6YS®L7ìQ™™¥dÖá|Êi¼‡¤Ô” .ÙpH¨p³fuÛbœ8Q‡åÊ}`ïl›F©JË,0UDÎ.ͦ° Ó < GÆ=qIef~ñD'èîÓ÷±X¢¤]‡â.þÁ­Š&—Hz˳Yîàç>ƒJ€ZäÕŠ9Ùq‹KÏÎÓêøÒÖóBÀg¯SõJüÖ®CÌ#^¨ 9Š'˜qÌuÊ …»5Ѝ_^fqÙ dŽïnñÞÁ!/o¬òñWVù•Û}ßðÌJ“hq„¦Ô‡«xùˆï­bp!²™ú)ãå.%­ÌÉf‚ e\2ëADÇoS/W(50uyêê*}–³ö}ô´ÇÜâ:™d³}ð:~§Î³—VÐg üþo|ƒîÄá‡è|ÎÞ¿K6²pÔZ}+7ȳ‡“ž«±Ò¬ƒœ±»ç1_UÙXl²³Ûãö6sך\¨×P½<=d2Û¡ˆbVYRö7¥:kf)ù)m7!ÊÔŽÌüâ{†Ìþ[Às3W0Ì6G÷ùÈGŸ#Ø|ñw‡Å'gø‘ûqηzüý¿õ7p_x…ø'?ÊÆÍçøë?ôçpo^åÿôÂ3°:ÃWÿóo¢œu¸öäe”ª…ì5Ñjg¼öåo0rþèõ‹\œ™ãWß¼ÅîÑ]®­_BQT¹ËÕb‘iXÃÆ(øöÉ¢2+«$z“wOYYm‰o¼1Åë\_Îé¸müJ‰9Sã¬/X]ŠN‚ZoP’æx¿×CLûT é¸M0#p½ú$Ú çPÜÁFèã&¦ Ë]ÈSú#ùõ ë¾Ê;;ï³cŬ-^eÝ”yïàŒžä±¶¼AY¸?Øgà”Y[(bÖ ´ÛSJ(†Œ§dŒ½)á4¡VŸe¡ns¾¿ÇqèÓh5( BáL C‚~˜ ŽŽ)›eü¹ùÉ £˜3nàå&z¥„YްŽBÚÓ.©¡°0_Aóö…RâR‹ËäÊVëX‹°ó:A*3‘;T««Ty°yÄTy|y%T9?}Ÿ­8æú…K,g&ïo¢f)«ö%áù&…žƒ>÷$£™a¯ i†X-¢¦>ŽdQND’,Á·G¤~S…,NI””$UH2IÊ£•”0µˆK)J¢d e„ñˆXŠÑ(ãdB~Ð!—§Øf /I¼˜,ÌÍŒIìZDßÎ)k¨NŸ®Z T‡±‘#˜:î(¢˜Ex¦E$ðG ‚©P³F^ÆÈ°4 [ˆ‰’²®D§„R3PégC¹*»ô4™(5‰I(¦]!IGÔò2¡ã bPLI#N}¼ID¡˜æ AZ¢\Ëpãs·eIKRIGWtâ|‚ Åx‘…wQ%‰TÖˆeP• Yl"DA$Õ2ÍW&KSbU"µ%ª£”‘¨ êCtÉf:I• ÉP F$¶U(P–ÎÇ=ÔÀìUIŒŒ°×E·J„‰”3‰TÉ‘8òÈ’¬‹Ðq‘„ QÏ!)u¢ÜAö¤X 1UTiLîÚøzŠèˆYBœë„qL (© Q°€£ˆ±‹wøðYdyí:™ªQ e"5ÅÈ5]!Ê|ÄÀ$ÊA±}ò G–e‚‹Õœá«¿ö{”l—^þÓ8Ý-¾ñÞWX¨ÏsíÆ³œwNyïÖÃ8àc×7XYáî;çì?Éé»,ÒÄ~ºÎù¾Kü·Q®Ù8³³¸9iÒgµ!Ãâo|í]tq‡_ý(öYÊî|›H±X\º€OJq“ c2Ï@ENF1s ƒÖŒLÿ<Æ—'lO»hŠÂã—®ScܰOçÖ›í„W?>ÏSë ~ù5Ÿ{§¼tÝenù§=a°‡kõrZ‹EæÃçíåB3Ýàè`B*wЕ¶VÄò#\?b:ãŠ&3QŽ®Çtú¾ë3Ó˜gmµÂöј{÷Y\¹ÌÜœÌÉ$DíÑæP4ƒþdDMÑŠUÎ<3ð±% O<Æ›·6¹óæm>òòfØ|ï€eËÆš³Øîl2$æÓ5bŽÈ¬åÙ™Íjì½Æ;gïsciõÇ_`ìx o=àÛ÷ÏXº¼Èg>u‘Ì7øõ·÷Øioó=ë5ÖëlN,DiBIÛâá΄rmƒ KeŽˆÇ- o“7ï¼IåÆüØs7B¾öö&Å‚‰¡x¤'§Øf“•ëO’Ve޽·IFu:ßšÐ,¢mÌÓÅçÆÜ3 ÷Ú<8þUÞÛ™a¦¼ÄõüÙ?þCüAgÀ—ÿ÷ÿ™ÿö¶Îþ~ŽÚ«Ÿáýü?¤?àãÏ>‹à®óðè »áÒ2«$‘@ïlÌÂjƒb]á¸í0(êX•zK î)<Ü?'ÌBÖWkØ^‘Äïௗ˜žû.W/5¨¾ñ»;LÅ€?ò§~ˆb$ð_ÿõ/ÐhÝàŸüq>¿ý_ù§ÿw®ÿÄßâ]Ÿ#˜­ñïÿÍ/³þC¯°ZšazoÌб¯n°ýísjUW.p4T9»½C±´ŒºX¤öÄj¢ã¶±„2QPa2ɸùŒI,&<|ï»\¦\VÙ; 0äׯª &ç<Ø‹¨ÉæëReŽ(w²Py ,‰³{_¤V¯1[{‰M«1:ŒÐ ³¢bº åŒQ9¢?ô)v=lU$.6ˆ+"ƒQÚÌ +~‰½Þ6„¬Uæ™K+´ƒg‚ÈåÄCµj•ê\“Áé }g@Rk2oKL‡Ø1«±‘‘nf´Õ7f¯‚’Ó \_Ã'h¢ÈÚÅ9F]‡ããsš‹P3Z<ì÷)Kf¹F˜ÈD^€•™„JާкÌy¿ÏiÚ¥dZ\H͈¡o°˜kÌ,ÀY8Å;óˆ3k±J£:CâvÉ€]1¤^Y’/hgŒwî‘„ µ™ ‚AÖñ)âpO±; i†V­Ø éMvÞ<@Êçxö©Õ°Ç—·Î1ì""ÖTáüH$\w¹Q²èMEÞL<Ö fe“d\E› 8ØuÉX¹0G¢ˆ¨a…ƒ6·O:¼úB•O?y“Ï¿?àë¯íñÉ«&•K ôƒ.³ÃmGà{› –¹J¿7@¼ÑFˆæ'ˆ‘O½\FöszÑ”‚lPn-pt4 :<`õúf닼ûÎ]Œ°ÃS/?ÃX[`kó-Ò©ÊZk…bQdóöÛœ†ŸùøuäB¯}ý m™æ¥KTå6JR¤¨•y·{‚šÚ<5Ó ërtärue–BÉääè€Ó®Ì|M µdãžÉœ·SŠ Qªá «¬ÖG$š“œ`ÜçdwÀ•‹uª«:ãͧRÀ,ÆÌ Ï9q"zB‹+ö,Fùˆ³é­²Fpè²?=¥5·ÊõÙYÆ£3Þíïw°–oòêYŠ^Èß:¡š(O ¼u:áñçK\¼´Èá¶ÏáÖ9õ 'á„oÌÍ•yJõêvƒLvîq÷Î!5xjy–¿ð©ïç-Gà›¿ô3üÇ·EþÝ_z•«ò³üÇùïx÷Í.O=ñ7Z{ŽƒsÞÃórV¯­S7rî÷Ü©À’W'Ó^‚å‹ÔR‰ûï=â0ö¸¬ÖX^½€{ÁâÖk¿A)Òyò…ïãýþ-….—æñÁ¸ðì\'xó{¿ð+žªò?õSÜ~8ä_þ_˜O~êGùñ¾„´Zãçþê_¡bÎòSêS¨—ŸâßüÒ¢¡F4¯®Ò>~é ¾fóó?¢f#þ§ËO°¶¾Èë÷Žèw‡”Ä ‚ãê]â(&Îg(j)‘TBp$ZÚ áR™î0Ãæ\œ3Ñm“ñÉ q\ÃPÊŒ´Mòøœ¦ñ %±ÌN0`R‰ÌÊE¶'›4æ/r©YçVç>N*òœÑ"Ø3 6cäH¦¹8Gsqo÷‚ÇcK¨;»t³ «–NŽ0 J$k´J=ÿ”‘#bõ x…Šè´«X s3%ùŒÎNÑK³ÌZXÑn:&˼LDËT̸O´TB/ÉsŒª4‰¼4­¡‘že¸G#¤Ù:Õ 7Vp9ÄÖm )æ 7B­Õ(ù)Á$A¨‚(q›sOf ÌØeIådÐ!HE«5‘cóö€ÄœR/U˜Z2þ陣P+] m)£]t=GÐê¸bF–8TA*–TYÇ•J¨©OÇèdŠJ x”=ð2<3‰ Pî‰0„ŽÛ!ÑJ™ÅTž"ú±d!¦!e=$ TÎéŠeôº…)fÈÞ#+"µ×qö'dêˆ'– Šé"_º»‹³=äS¨·JüΛ;¤eƒg.­1Ý8ê=döR™"2»¼"SSðT²ÀÃK ±ŒÚÊ‘Ksh¡ ŒÙ Ovd_ƒ—®_ä7¾<âûSþÒ÷×HU™GÝÛ(‘LŽéS$»DUˆÛùF€išLú0uN¸Ü´ Ò‘òÚüïݾM÷þ.O¿t“êò2o¿õwxÈúêÆ™ÂÖшÆRª™a—‘ˆØzçdÄSן`yù£cÝú<Ççë»ÁÒºE²ñûgûä‰ÌñÑ3MG÷˜ø2ÊÈCËLÔRÊúö?ÂùÞ€¯}ñ¿óÄó×øÙ?ý9Þÿê×ø;¿ô_øìOþ9>»°ÆÁƒ=ö·¾Å⫟%XaŸSkÀä ãÚü åZ“žpÞ=`päR¿6Ç‚UÂZ˜áð蘡0¥Ëð0§RXb¡QcçÔ ì³6ïÒÉr:ïÌ®¬qýšÂÞY—q7Çjfh“œL­ÑñßGR«\ZQ²Ùÿ‹#‹œ Ê׬Ä£ûÙ!²œ N4TÙB»"á«L:T曬 l³727³H3¶ðS|k‰’;E›2.ZDi™Y%Euz å9"tÔQ›ž8ÅÀ†ÈÆ®Oi™%¦chOÛ¤¡BÅ).$HŠÍÙžƒÆ\Z)"ù'»”´œ ¥Ç8Ïv·ocëe.,/³79@LŠT]…¸ì“ )J:+8HÞ3•‰g Úª…å‚Í‘„ÂTâreŽ~#a0òÑÝ)ªUfÚ¸žGÃpȱ#bè"ÅDd¨è4&SDªdz€§„@ÒU¡è K*^ ºäÆed <«FªÊ.ÅX@ó4zê0Q)$*¡4Æ# %%–KU‰h0b&É*S7ÂÈub!Ejˆ£˜0V)Ÿ¦[BªÉHLOÛôõsÍ)£;LL !NÉ)(¦} ¥F ƒçõQ(!¤2A&’I¡a)-BQ!f„í(De@Ž)!y9’è£he2x£&ù s1ÔÐÆ˜ ¢ࡈ¢XCŒ}¢8EÑu"1C={÷þEÖ¯<†˜IŠª© Jh™Œir@†ˆªÊ¤±„hå ÆªÈR†È‚@š ‰HBŠ¡ZòeÃÿ`Í?õ$ÀO2HÇH™nXJL4 ‰kõ†Bûøœöy›Rs†…Jƒ™÷÷Û¹ƒ]³Éƒ$—Ñ¥)ÑÄʼnŽÞýîá¶œ³²2K¹z•ÎV›®7Â0Bfž¹uw©KæªMzÙe""yi¢ã”g¹˜ÂÔ<×+LmH°¶pi¢óÎÎmt=fíÒtÆ*Go|•¥æ—ž&iŸ2¶hß-ÍUY{¼Îäö^:˜kaVJ¸£˜´ÝÆzºÅå…üNÀö£sjÕKcwuœÎ€'/·è¤:£ísº‡S•XðTb«Å(Óíî° ÍP_lrt¶O^l0GhJÀQ“: vžP^Ô‹UhŸáy2㚉šä4dÑrèOOpå&šÑ¢bHS,î Sºg652V.ÛHCþñ€34æÂ ­‹ Å$áÍ6ÞÂ,Ï•RN†M".kÌi#zžÉN$0¯Ç¬–êŒ"Ó~FÁ> # (s×YU% gÊq{À½“¿ óêsño¾Òá÷޹ǟ}º…zqßɧ=Fgp,:Ì­i,¸3ô-77¨/TiOJgwéàH ·†6ß{¹Á{ö#<¬¸¼ýË¿ÀÏýÓ6ÿêÿòiþê_ù1þçÿå_òÎ×Oyú•,Þ\@ Ûõ)z“Žï¾IÙ”¤‹t˜’¯Ž(i5ú¿u›Bç~ú{0ü#öþí/c¯7ùÁ¿òw¸·sÀÏüõ瓯üþÜ~’®Ùâgÿîϳò”ħ_ú“´ï!Ö×9;MwøÔµ§ÉŒÿõ›_e¶Zã•ùY ku¶Þ»ÅöþËóë4/Tˆzy¼¸K⨠£–å ¨aÀ¹·‹Å2zçw©hO1_Z§Ý¿OW?¥.“†*©ß§>S¤±Ä¹BÑðõH‰Ã<â @®šÄ¹MP);#”¾M¼˜3ö3,(¥dN†*)„ªÍÔ)Ž?ô'ÿ¢žñͯ|•–\¡~µi•ѹ˩w‡…9KÜ Isª™Åæä˜ÉaŸg®nÀj“éî1GGïùV.=ÉÅVÀÖþˆv?Fµr.–L*–Ê;wzÔkK,^J§L»9®’ë)i0ÃF¡FnŸÑË<¦{^”³º&Ñ29=&ûoòí×B®½ÀgŸ©ñ(Ýâ+¿Ñcíñ .]Iùå_üe¦ŠÎ_ÿ̧Ú5¶îÜÆEæu™ÃØ!9h]«²¨]A‘RdÃâþî{üê{_æè%>÷ü'È>ZãkÿâÿÁÏýÜ·ùß~öOð¹¿ö§øGí§pÅßûѱՎ8œ3Ф’€YVh•štÇ1³,#£!Ûäµ*òìñÎ6ÒNy–@0ã•Z¤$‹#Ìt PÑè¥yì}›’ó7?ÇxçŒ/|ë6³Ï^æåÇ^å+¿úUþÃü þÏý)^\^àÎG›=f¹Ühbé|iëÇ;ïòé —)>~…®ÛfòÀáîÖ!ÕËk4Jæ¥*§jÂxàQ1cVÖmŽ89rYSrJ×gISŽÏ'dVÂBqG§û¸É¥ÙYy“Ãpȣ関&ÍÊ=N±ôóZ“{½wêÃ5ÆÝey‚bÌs²µÏì¬ÎYvßêð¨}È…ÅešE“‚€àIˆã …ÑÑü%Ìò,ÓÀGIF1 ‰I4¥§Ž±Ä&Æ8 _p±ô&é±ÃfzŽI™Tef!!PSŽA(E¬Ì4Å;çcԪ΢=ƒNèöÚT2™æµâT¢½}@i^žÃÉB²‘Œ$äã¶ C¥Æà¤‡d+TMþhŠäX¥u¦úˆÉÑ•Øfe~…®¢±ÿ.ó©Nó¹«ìžÓÙêó¡³ÄZ‘ÍÃC*ÃsJµKÄÅcçe bÏTÉ„ˆÃóÉ£* Î#XÐtb["Ì'dޤKf$™ƒ«ÄZJf™€|ìUBKCðE FD,Î!©žÀàƒ6U!›¸²€bÄdnD¬ZȆI:p±U‰¸¬CbÅC6$<3'U„±ƒ&¨ ÌaT 3-+&›!¦ Äf‹T OŠäŠK˜ªäiŒ–†Ä˜å2ŠžNrÒ,Å!³‹y—)šn ±.¢»>Šdáh)n3«+tó=R±Ô˜Q©3v5*²Šm—IçÆ¡&28• ЗDV ƒ#‘½8£'Ôó€Q žåÒj%dÿý-¶Ý>×ní z¡ÉË«%´¶ÇÝå'`¹>GçnçôœúL¥x‰<†Šâà4mÏB=mS(ƒ^/sÜî"™*ÝXEÈr¾¹É­¾À}ì—æ$~ó÷¾Îî}—>ö2ö5ƒä윃=É 1ˆ¢¨2]]G=‰œßBi,b–Ë^FbšHñ˜ÁéˆÔV)6¯ÒÀeçôÁ/SÕÖÙwpvN™™›£öÜ*-·Ìæû›Ü;<¥¶!sãÚ"–z“;§èì½ÎZ­ÉÌÊUö‘ÛétDÌ/®‘kË îsL¹6¿H÷ ‚”µú:^fq¶³EyâΘ/Y”…uÜwÙ}“|cŽ]ûSã«o¿ÇÒüet½È·>ÿ+(ó×øÜ3—™2ùŒ\eû›÷¸(—(¿zªùÝw¾€äžrgÄo<ð§>ò8]yŽhýœoü÷ÿ/?÷÷NùgÿËgø+?óWøéŸÿ?øÒ¼Á‹O˵*ÇÎ]"C§¨­R%ÄÁS/#Ì5ZóÓæàþ{4 ‘^§}xÌ΃mL[bcõeÐ &â×èȘíœv¥†~ýò!|aaFçúOüýÉŸÿ¥¿Ë³­ËüÙŸú¾}§Ë_ûë?ϧþü«ü¥_eÿvÎ×~û+´¾ƒr¾ÀðwX½Ø'm}ˆƒ“ ÅçF}žƒQÆÛÿ{y‰W¯l X:‡{.'Gmj½•Rmgr•ÁLÜá{R%G³[x T8DÎ*˜õ§ñÔ=ÎŽßG‰nP¶4Äá!ë—V™«Õùæù ÎÁ!e¯Ìü¥L-ää,c,\*I4E‰Í#¨˜Ò¬V‰Ý)í,$•æ©Õt“¹Fœ dZÈj®Ðú… -/ãg²,Á’ ,¡Bµ¡ÐžN9<ò( µ†Aa®ÃØTЩêÎh@`@­Q%é˜d£}⢊’Zb…i6¦jeHŽÊTuH( gu¦aEiÖj ÉÎ#”ÖÕê2i{/¶(­¬2jï@ÐÇž»Šª lmÒÔ.élú]äýmq™’æt†Íuä+E唉—¢Ç1”eÇb$$Øæ˜ªe1 ³-3gäG¨yŒ`ªxA„§¤š@>Ép4 ,›âÔA ‚°ŒTΈP“˜ÑÔÀ’\2!$w L‹!UoJZ‰•|ê ™’’Åi¦¢ç]²‰ŠPPK6’Ç~–’J~ž"È)Šn£+a? СnhXIÆ4/’sÂ$Õ‰3‹º™r’;X’‚Cû„’@&Úy„¯gLÝ¡¥ g"ƒŽ‰ZÔ(ú °‘&9Š4%Õ‹èºK¸dRƒPÍ)Äa#§Ùô3Õ?%(«¨¹AªÈ\ÿåƒ!‰"j'!SM9FµE’X!uÀÒÒFŒrb~ ÓL\ÙG4ò4GŒÀÒeRMÄDÄÌašùHyÝ4‡Èekè0)êH’ÆLœrâzœÉ«¶EÁ¶x´{ ‰ƒYžC äé€$Ìq’ k‚œÂX ³,¢,E¡(‡¸±BžÛ$fŸ8²D‘€ éƒì¹¤2ñ\™NœÂ  [:v®àh2ÞÑw=X«o¡ ç ¡¦¨!¦1’f '‘!!¥1b’"¢‘`¤*yš€j‚ ä9Èø ðÞ7¿£i¸þüKÔ[eÂqÄáN¹PæâÕUdÆÜy¸Å$—¸1»€lkô¼1‘7!• Ä4C°LT©€&FL½#?£lZ4KuË)ú3+*²’¤ôdP„” -“°2Ãö76q[7–ŸDÙsx8Ù¤¾°Àòb‘-î¸R…ª(sç,ÁŽ'<6gp[/²ó^Ê•r‘Õ™.§{)o;KñÃ/²´|…_ø…†hÏð7¿ÿiúsËüÆ^c­ibœ8ì„Å K̬ä,š%Ü;ÅnÌÐhšüÓ×ßçŸ{ŒO=þi„ï«ò•õ÷øû¿üˆ¿÷W˜ù?ÿ8ÿô'ÿß8G[,ÏËØ¶L8¡x½Ð§X*Q’TÆEƒ~$ï¾MI¨2{ñ1 Z„8îqÇ£Œé8£TVЄ˜(t™ˆ Ê NrÄ8AÔ &>h²@*úx‚Ѝ xÁ˜Ôµ°”˜‘e||TÑ%ËTbIE'd¢Š˜æ Ètw÷»¬åÇn’)‚)`ä*‚,")´< 2s"dŒX$Ò%¦I†*dè‰Jf$QB.k ˆ¹ˆGäº NR™÷¾ù»ß™`½ü½d8N»*×%´ŠÂÁÞ!i’°`Ïè"d.É$!‘LÍ ‹2†nÀŒ&Ò”e޼„¡°R,’‹'=:w¿Û`½•AV³XÖ/जqÌ¥«ˆ©Éþà™T‚IŽêŸ5*È^NÉÖ³)¸{Ù-0Rƒ|0 <§ÐXm²ÙÝbûp‹ÖÒe®¼ðöo}•·ÞºÍÍg®såÒ,wßzŸ`·Ïâ‡_Æ(+¼ýõ=rC¥¢øøÍ>’z…†YåÎÃ/0øØÕcëoÞ¡pnÑlµÐ/ÀéÝÄ‚­ðøõÞ|óîoríéœå ßCÿN—³ã}ªk%*ú H gãýiÎuѦP,òn»ì“EšõUähÀØí£È6ެSN*”eW’©>£}8S©oÈ4-“ì<åínŒõYY)cÕ ‚“]Ý@ïÚt;o6*\»ö+U·ß|Ÿƒcƒç6ûã’8¤Ø*â ÆøgEV¿H¥ð[»C‹E^Ô,6Ä”{q oÜãÒ\ާ-°»5d9ˆI®+ô’ŒF#E"{›1ö'+‡wb´¥E–gÁÖêÄö{·ßeÞeùÊãXiƒî4 \p|ögXáÂ'Ê}ü“-ìTd\°X_¹Êp<áöæ›,¦¬Çf0cÑþ.·º»\\[áæõEü‘Äѽ=vOh̪|䯫ìõòXPL s˨^‡dèâ–5¦Eó¾ƒV¸~S kˆx'3dÓoÜ~‹˜y¾ÿcOP\iòÎ7¿N}õ ÖçyíÿýÅU¾÷ò*Õ¹˜÷6ïÒZþ“Èæü¿DÁ*c>ó‹ë+”|‰ñä·~ç·ØJM~à‰+¼²ðþb¯þûÀÏýƒ[üó¿ûÇø[?ûüÍ¿ø Üuvø—>K 眞n{y¤pézkÎâ½×Þ!ëe\~ñ:~Ú[m*¦D«Z!wTö‚6Ùà”‹¨_¢'Sxp‡Õ¨È•§ZÌ\˜£óî!¯ÿò7©-7ùì_þAÚÛüú¿þÿðäËU~ð/ý5~ûoñŸ_ÏýÀË,ÜXãöoü:Ö$dýßÏX.3½÷>a=Cu,Æãs”j —8;Üe[;bé╉ÇDô‰ÇC¬Ì ªÖ± Èâ1]çˆý‚àœ¢óT*óL—þàiZÇ^˜ÁŠ÷˜×54ã2o:w‰:§,Ì-2[Ñ8HûÆ&gý)’åòò ¸Ëa³wÊåæ<…$%Ì=”â:ñø”`ÿu¹`ÏRBd=epP]U°ª*ÞYÌÔ œ˜¹™4E!;9”H¢i™´t£ˆ³óÝ,°0#29KäJ«qOîÌfÔó%ä©@ZIÅåDRÄTÆ6ò~JZ÷‹2ÎÃ6ŠfcmTñ'Ò‰HÑš¡ï(“6åÆb©Èygˆ?òcq?¤?èÐP4Ö..rûÀa²ÄÊ\ ¥U§sÖ§"8Ùˆ¬`#M-R§4ŸQ U:]—º`¢W%œÀX¤™D¦Cšf´Æ)ÇY@lW©ÉRêcÁ"‘lt½‹lè8= Uƒ$ Jöy##Œ!óÊêc*¦ ‰®U¤>HzŒPHb4A$QlJJÊ`bH®’3#ˤ%“Iìa¹câ¼LØÒ¢5I$ƒ s¨H ’¤Ó¤(GMŠ‘Œ£øÄ’‰îç¤&$é„D¬¢‹i&âsŠYFT±"—8*àÙ jª¹3CÓdbÉFp"u‚ŽMQSq”>ÖâªÂ 5iÅ#)#'TsAÖ8EZQL’f ,л1©é£Ši:Ejx‰Pú`›¡$9ÃQŽ!A¦D –AÏÉÚÁšò\ r†aF¥1CâMp¢U²Ð¬ ‰ÞT¢$Hꓬiä±>³ˆJ‚;='{ Ï›2¹'!j)¦ †*A!FÁÄMe:რÁÔc,FXqñ%]”ð¤#ÖñÄPCAF$FÊ}2ÝÄÙþîáÊÅ›¸JŒˆyŽ„Œ&‹ÄE)}ãkRž¡%gëY¢’¨ J’’K9bš¦©*¡„›@¤€ñÞWÿ;U9/}Œm Sçòå9œÐcwÉ*2_i¥>퉑HÁ,QP51&341%‰"¦²ˆ¢”¨”k$q‡ö¤Kæ›t¼ñÝ V,²0»ÁüJoË%Ð<Šv¼'ˆp&1¹¡ æUÖª>™®±w>!á®äÃÔGì!m²BÁä„ý—ÇV™»>ËÙ£cº›̦H½Ðd€D¯=AÄ”¯Ì‘{_Ýd฼ôý—°ÜŒÓ1Ü‘¦cÖç6°Šïìú}Ö^X¦^*r÷Ë÷9d¬]˜gI+òî`Lpø· vý%¡ÈP»bJi±Âè¤À$3§ ðõœ¬¸JSq8꜡T2B‘\+à““OC Ê5‰†¥¸.’?$š)1˜Dġ̥KÊy1§CK•PL‹DóÉÏ|äµ:ÍâÓûÛ<²°:Ës]aûä{_²Øª¡lHŒ÷N™áÚ¼ÌöÑ€ƒk­7›»ìwîúEæó)ÏWøv•A÷Éb™LÃÏÎØ„±Ç­.WK«¬ˆÂdf‚Í¿Hq¦b÷z6é¦A«5 ¿\!޴Ƴ/Î3‰F¼5'ã13‹5$Žß}K/R]´¹ýîëXź¹D;dQH2õÔr†Õt"šåVÎ[‡#²Däû––ðŒEvƒ‡œn>$xúû?ÆúªÅçÿõ×ùÝ×ßâß|žï»2Ïa—7îðƒO_§0WãýÛÿÅjŸ|éc$µë¼Õ=f¥2Å9“¸wû¥–Î÷\¹Jšxí‹¿ÂËôGˆz=~êü ~â~–O>ùÑ›oü×_àÿ‡üß~ú³üÈÏþ~áoü<ãîìŽåŒa÷Œ……jyïÁUÀ½8‡ÓQ<6’‚Ê’Þ¨ôØ~xÂÞûÉ9ôY6&ÜCÜ8å,“XФÖiý”þàE™§²Ü‚£[LÅ"+ ÏóäFÀ[öx{ôˆM›'7ž½ÂïíIò»l¬]F•y÷äFQçÆìã´œ})¤{(²XƒDn0íŒYZ2°j—Ù¾wÎþÙs+3ó ú£.ýí6¥¹yæ–V;}޾‰¥^¢Ù˜ãxw—Zc…Åe…{½6§”––Ø0¤y‚®NÙ?•©ã±0§N޳JZ¦^Ou™ó^™´{B¥ a]¨ò í¡ŽºH‚AÉ4)­Öé§l?8f®¢S+µˆ²!‚Ÿâ'*¬ ²„mi–ÊÄé wÎ%ŠŽÌòz(r8u‡(…’XB‘ÆyBoÊòBm¡Î~ûip†>¿DÅ*sÿt-K™/,WŠLÏú·)Ï­P*Idg>fl“ÍÄôº$|ê­ÄpÂÈÏ‘ 1ôÐü¡Ñ`Ôž &3ö"ž2âþÙ yìµ5[;Œ]–/oà!2Øíb•$lS¤¯˜È‰H2 L…Šè áI`è šÝXDKÁmhènF6§hPÐbÔÌG—q²5ó!U‘LGrÈ’ŒÐ‘¨è*i9$œ±‡`ÇĹNŽ„/9ÈYNœ¨qbNR’‘bu: e;GÐ ä±ã– 0Hd»€úd˜ÄRÙu\C×îÝ®b*æ#2¥„ ê$¹C¨&(‹¤›HŒÝí#é‹ 8C‡Ä.#á#`ãt$ÓEÕ-¦‘†–ú¤H©.9Œ"c¤œ@)I £‘dŠD¹ˆ¤„JJ$šdR†diJ*)T“Q)!DBúd:rÌOð}¨– –S©ŠàN JÉ&j_"›É) ^”£Y ΰ‡$É‹e"="Çä‘\Vðl=t)d2Q*s0ŽYZ. 6ýîW ±­"E# ë%Ä–JšùˆD©˜0T€ MIu ÁñH)Q–E×CÈRÂXi‚ŠÃ”L ˆ- å(bÒýîáÊÕ›d~†.Š`€&+Ä–Œ’ˆ1ˆ"d’‚C.ç }P¨ *J’! ˆ) Ê*J’I¤ ¢œñîWÿàÀj\ÿBQg¶VE‹Îâ.I¢SVL<'%Ð3lU"s”,@-’,Bv",½À™w}Í*%;gó¸3NÙ˜-³ýÎw5 rí9Ó gá˜jsžºRbûè=2Jh•9Œ0À%@+•À—“„„€ã~DXŒ™³[F9“òk¶Éá»[´Ï:¼ºú ³ -vÎNx¸ó­å+®rïk_eë¸Í ŸøÍßüü:=‹·P¥gq©r™G½»„n‡Wÿ$B/ç[Ço’ݶüa*E—ûÛOBn,[,Í^åýs—½÷^Þ«ðÄ+߇{·ÍýÃo°¼¾H¹tÃc*3& B•T€]-¤.Fƒ:]É¡>e}ý&“<âäp³PEQ,Ð¥zøL˜p6A°Àúc*­ÌÅ=ÙšÆèJ‰õºˆRUÜŸÒ3ejQ“R|Ä~Ég±|•Š%pçðë Ï<±~ ¹ÔåÁÖÌÂ,kEƒvš1MKUƒ’ñ{í ¾¶Æ-#žÆì'’ŠOi®H0îÓ«<¹PÇ($zây†˜ÊÈ :³×ÊHrÊ»_ésÔyê#&×çaûõGÁµEæ| ïäœÎÉ6åf Ũ3ŸÏPZN8>;bk»CC»Ê W/1ŽñàÖ2a§V×Q­†ï³RbùÚ ó-…áÑ9q\ ›õHÃ)/^~§Ü ½ýˆ’*>ÎXfvå"ªsÈ£½÷©ÚVV?„ªæ¼yk‹©·Ëâ…yf{–9[gkÿ}nß}HµP晥ËÈ’Ì­Î=¦^ÂÍ+h”d6Ï`¸ $Çh\¾²BÔ6žØÇèªä)§IH+^¤Ú²P<Îù'W©-é¨Û.ª\çéOÔØÞ=ã7þÛC.\¸ÂcO‡ìî–™Ÿm2£žño_û2jcž¿õуßyíË,=ÿGY~^ãÿ·ŸÇ+½È_|i‰êœÇëo¿ƒ”ÕIÍ ù™CØÎHŸ›ç#?øCD›m¾ùö·8õ3zá˜ï½qƒWo¼€ñ”Åçÿõ?àçþÑ6ÿüoÿ?òÓ?ÁÏüØ?ã ½ËW¿‡¹f ·ÿàŒX„'?s‚/²ù»§S.-¶(k6‰²ï‚ÐùF‰÷#…§œ=~P-"]¿Ìñ¨OÿK§LOÛTŸß`íÅ+œ¼wέ/¾ÉòEÔ?ó'˜|e—³û_æ±>Áz¹Äø/ŸÇt5~ü^æîR…;¿÷{,uê5îÆdªC£1CÝq8®& œ}’•§.rýƒW¸÷ú=Î^\"?·ÈþÞ&‘æÓÔæñݽÔE™ŠÌ>~št°Ï[ïì°>»Lù|ƒƒMÂv‘Úb‰’6á°-âŽ'Œ%¥²I¥ìzmôQB}m™JIdû¡‡$4NÕx°³Ëfç€óµË4×O‘ú!ún‹®uDK™s 2#Ïœšb™2ï‡los¥t…Ù «Ûw¹wóc°Î…œÁ½Çïþ«kÌž²øü–D³Øüý?äËïn±råŸ{ò oïEÜÿà>úì2Æâ üÚ¯ÿ>J%à§Ï=K§+ðÁ¤Ç'.£}÷ÿáµßâ™ä‡í:/ïw™ øÔ]â7ÞçßþÞ?û©'ùЩçè­´yë‹ÿ;¿ü ‡ôç?ÉÜO~ý×þ'ì™ Ÿû¯?÷¾r“ýÃ{œ½ºHìkX›m̳ ÷²½3—/rÐí’˜¹°‚6cãÜ¿GíÖ™KkLJJ»SZƒMö̈9ÛÇÈNSÕ«˜VŸÝávn±TAzx“ÑðuÎ`Ž‹xå*­i—™‘ÃÊÅSŒûmnÞ8¦8ësqé"Aò^ìPnɘ‚ÉÀh“õh–Kˆ–‘D™£×®Ó9qâ4“¡CëÁN,.°~n…lspð>šµÌZužpø1Ш­.³Ýês÷á}V.²0o29ºÏ¤­2V,$b.®ØLÈxûζ¾„–e$j@sf ïæ&÷É-Ÿdg_CôM‹Tî’£ŒšJìu7)û34êl]/DÕ%d¹Èx8DÓEÍ2V‹Và!™ë¬”2eÂ~'$ÊÔD /IÚ$¤R¬®äHö6éµ}f–g±j ìÜÛ% –æËJ'ès¼Û¡qbR®€x¼C_ÐÑ ^»ŠÈ"EeL*e8ã"JÉANð·–ae/Ä%FÂgk”Mò©ÏµÃ»”ì2õÓ§Ù¾ÝCZÌÌå8ÊZH%´q´>SÝ'm’`Š¡ê *ÈŽK*‰„‰†fIˆcŸX¥ß©¡*!è)‘@GD°u&ŠD;ˆBK! H£µ(!Dާ£Œ %J#2Y@JEHôšHÔ‹ †Ç˜õy*Ó_F‚šàiE$Ë‚ãcQÈR ÑA\rز‰¡$´¤chòh‹qˆ˜h$’†$‰xQ‡|š™"!ES³!eH“6¡båŠøÎ„Ø12¬Ï•‘E—@ aœ š:‘<ÁD'!&‹$œÄ¥¨ƒ:ÑéšuQ&IDúR„êF(ßÙ0Q’) Ie@Q@t‘O^ Õ¡4öñåÁ("MÆ8ŠŽmä/rpãeK#QqBNMŒ"ž$ ¥#¬H§&$ã«&S2tF£˜ÄÏH › ª?E”,\9!›$ä-…a”“ ‹’$“¸"ž*"Æ IÙ¦8õ)"¾“¡éb–¡è0ê+ÈŠg»Û?ÓðØãN‚­eˆš†œ*¾ARH E9}„R¢Û£?ζú£#’’f ™š‘„É£_J2a£kÓ©À׿7EøØÇ>‚ ôÇ’.£¡§„J†\´ É™UÜp@oÔ¥`Ûˆº7N©™&”3F›-ÚNÊÒRƒÙƒ.G7¿ŸäÑsE&JÁ­È‘!Ÿ]ÄË©+P¨šL;2Ç~CÌ‘¸‰æÓp-D5†šÀèÚÆ,ŸÍQ//p¿µÃÞø˜Õr•zVbëÞ=‚O½Dy¡ÁÍ»tïìQ(7Ñ3´')#•Ú­Û„¡E¡~•aºÃÎñ]Vçž`!§rçítºø©ìòn«ÅáQ¥¼Ãbý#ŒÕÃßG |æ×žÆ è>èaÍ¥4”YŽG=œ¤CU-"y Äã¦Vˆd‰„Ñ,r¯M"ö(—ʬäU¶G!Fa*‡Ç.íHæÊÚ<+É„íûc©‰X(0ŸKÈ…¡Óų HR™t¼‰çF–fy¬Rá`tÁ*Õ9"¥Ãæƒ-ææNsri•ƒí}x åÙ Ó‹ÚÊÉΘAߥZ7j‹M“áý.¯ßmq®6ËÙÕ o½…âV¨¨-bvEÇ8ñú­˜Óë ^:ß§w<åöý¨6Å‹ DfßDm¨µ"ù™9O uºõŽð'1š¼ÈÅK „â ÞØ:¦T:Ãúj™ƒ½c’ä!bVE*/2ï2è…8Ú<¹z€ÒM©+M¼Teçƒ7©Ù ró%Ž‚ÕÒ†›pèlQçX˜™g‰|íoµøä§¿€TñvZ [=¶nÝf¦´ÌKz‰‰<äÍ­·q¶†4N/²:›cëØ!¥L9Ÿºrµ:q`ñê7hž7øDóG‹Næ!ì;ææ]|A¦¥$MÉ%„ <õCç8ÚÚä‹ÿòÛ\zái>ñÑ9¾úí79h EEvø—¯¾ËŸzéY>÷øgÈ_4ùÒ?þùÒý-þÅÏ}åÏþ¿ô˿Ƚ;}žX>ÁÂM&m‡Ñ­ZëNWgYOöâŒ7÷÷Ð1X^'^ÎSÜØf=ñIØ—#Âkm2­Hîb«4dãÍ>I«Ãâ“'È-®0Ø™ß{›ÚÌ,#í n奔ŸúK?Ãñæ6_þÅÂÊ3¹|æ"ww˜}fN¢¨ I 0ĈÅ)éÞ²(3wv‘hN¡»Ó'>è`4ò”õ5òBÂðáúí ñÜ“4tÑö78—™Ÿ9K|x“lÆb­q–Û¦Ç;Ôf”æ›DÓ$)ÑÑ”~špႈ3¬qwg„=’—e¬,Ÿ*íÝd-/S8ý"ñ!“½r”2¯AåìIÙà½k׈§³óE¬b]ÍØïDL½.‰2W®“#ÏdâqtÐ'U–OåMÜÃùºLê{DŽ VF’(È’€š ÂÙ×)ÚßÇwŽ˜+Îàfàª],)¦?VHô=m_˜!7Š8œl­R—Ëô B‰(°­¹ h!CD7jd’Hv,ç2{æyt8xõ«,7/²xö7ö7™ÞßbñÒþ0Â= ™)i~™‘ê!'ž[A¯Iäƒ!“¾D¦$E…0 ™KTB7!(ªHYB(Pœ¢{‘ã!E!JÃF AÈú#+ñË1‘ë¡Æ Ó(ÅÓ¤TÇB¢Ÿ(2#ID¶„4Âß–j>J¡„0r\´°¤¥5"HÕG–ø$¡ˆ¤‰(Š…‹ HøJL]QðÄ)NRM–”c’ˆDƒ•|ž@ èº,5ꨅ㭭8bm¹Ž¦æqŽŽL§to¿óÇj³h‰Àõéòª@ͪÐ7,iD3ƒΡ~h5bZñ„Â$¢¶jmóΫ¯ÒöÆ|ò#Ï¡Í6¸¹qƒþV‡J­Žiϲ±}Ÿi>æÔ©ÓØ {w6Éç&.£Ë¥•³¤žÅë;ïPÈ\X{’nâÓyïb5ÇÚ|B­Îýën½ÃÉU¸tþ<›ï÷ø¯}Å…5^úÐÒ º·ÞF eŒZ†1_Çë|°‡lsLiµ‰>ÛÄ÷i»S"YdFi`¤.ÛžK2îq¦±„_p:)eu– mÂöäózƒ¾£ .D¬šƒvÊm|æBj]dd*$Ã6xºÝ„ñ}wÂڅǘ_¬óîûßeëˉÇ£Z ¹³·‡Ò±YXÔ™„0õ‹4Õvt‹ý0ddÍa÷r™‰YPéÅývB¹‰:S@9òð¦{lûÅü*sÎÇvó+†“ò曡šòćdÝyú›Ä….dzþ5›jÚ%·úÙ§8}ñ4o_û€ÛÂʧhq 1PÈ,J~–B£Ul†›S\×¥v¡I ÷3ôŠÁˆJ妭³{ø~"¡ 5dÓ@c„6IgEöÚ 2>g UBEdç^˰Y˜7p»‡à¨Å>=ªÈìÄ bÊ)C¦¿T nGØóóH5›Ö½c\/¡pªÁŒY`ÿa›Nw@£Vb¾´È®¿0´¨äDz¸àäÍ2"2%FUs$A‡8 (Ç:N¹@œ((B¼!™ÒÄÊôÅ#DQFNiJÁj2¥ Ý655"ÉÏ cR×G®¥¸‘‡çA5¯ó‰Â9F%ˆI²°uW‘/¢d"Š–«Ð7\”TÂŽ+ø \eb#kS?@P=â „ba,¨ º“bä&Œ¢Œ\œ2T,l\ÕA©Mˆt[Р씬ïày*ú‚N)îˆ(Q XF‰'0‹8ù2¦ž#ÊbG$M%R+Á`ŠK+Sð‹0‡Ô"Åʈñˆ:rÞF@ÁS¼ÁKÉÐfr^‚ãø ¦(ÅѵÐÓOí1 ëxÄ´›N“SDR7!MRd;%ðRUEa‚’ØDº†˜…h~BG”ÂÝ.ø©:%u5d9f¢©øãCòã˜ÀÊÐâq:EB5Aˆ5¢þ9ö0´<–â3ñc˜ÑT‰©ëáãcå,òy‰8 ã˜Ð P E—ñÜ Í ðc›áÑ€¤Z¦YHéöô „Š€(±ÌDq¢GpS4%ú‰Kê$(’‚(IDSAÑ f&E=ÑÀqTdÕƒÌÅÌŠ€ÌhïÚ˜ÜÏ‘È"Y¦!¦ ¡ªbÅR" ª)Q–! |¬þ$`IßkŠd€ŽŒG**ˆqJ$E$™Â?Ši¨½ÂtSψ¢W °òz$.¹\ϟКîPhÎa*Ãý)ÚŒb¤ [Y`ÎVÑÍ<þñ>{‡>zÕ¤}ýû&wïlÍ–qzi–ceŽQû)³º8ƒçKmvñÅ’Œç´H#…òL EʱsÔÆFõÕÙ:Jû»w¨Z:3Æ<7·Ò“Cž>±JÍh°±ˆxñ¥\ aÛ „¼VLnë˜u²f²¹q‹±ïð±'Ÿ ßòÞ÷Y|ò#œÖÞzí6?äL^!H+ˆó9éwt—iÒÀ®žÂm²7ž %Uvs2d}q•Vgrû},}ŠÚ¬“¨5”Ý Ysˆ#ÕSx¼úæ VdæÊe^ÝØfåê9žÏÛÜxã!÷-8;SFÈOqB0!ró(õLî㇚ë'ÉÕ‹L·os÷B>_a¦Þ&¦ØÚ<ÅÙ„×[8ËÚÙÇ™ó;lZøÍ&…~—þÑÚÉ”fJ¸Î&ÒpÊݽ)…ÙS\¹Xcûö[l¸Õe²šÆjµ‹êÉ|çºDR0yéI÷nã÷T.}ê vQåÎëmZû÷X8•áY‹¸‡EFŸ’-S²[”¬³JMOxûî Ž¦ ^xú³vŽ÷76Øé,*1â\}f÷°O:™pöÔi†qÈï¾õ>3±ÆGÖÖÉžX!ñÞŒSž+07Kíc3LÞ¾Å×ÿà§;ÃG?¶Âûo¼ÂÛ׆<ÿâYæflÚÝ{mæñÅ1^¶ËêúK<÷áÓ¼uë÷øÿäOò3üÍë|õ߽ſûÖ.?ÿ?ÿ4Õ3óüÝ¿þw8L=þÞç¿@IPù÷_üwœzîENžlróÛ_fgìóÉ'/’·Kt[_#.F鎸Õ}ÈÙÇ.ñÿøñÏñkoøï¿Å<÷—ù»?ó$ñó ü¿ÿ»_!ô <ùB DZ‘¤1wÛ{Ìz%NŸ_æºë2>äÅ$‡º6Ǧ$’ÜìÒ“R ‹ ºšÃo‡èi‘üÉөø—‘3(VšÈbíÃ÷©eù¹Oñöí€7ñãÅO>ÏÜ Ÿbëk_§<`õòǘSslÝ>@ˆ‡(UØY—1/˜˜õ ƒ£>ε6»Å˜²ZdÖ¬‘& Q> X:¯ãlßgÜ­0{em¯G^2PçVØ9Úeû½O/RÉ-±µ}ŸjNãø "œ}buóþÖu­€ZI®£H"ƒAÍ8}ê2{ûG<<ºÅzµ†…A6k»-3Ï‚nÔ¤CÇSÉ̘Bª’¯æ ‡´B‰bÃ@[®2<ð ˆ"’."MŠ Å)zÞG÷ X"űO¬L±”y„¼Çáv »fSMtÆ~EUQ§2ÓžƒYБË„3x^›Q„U(Skè$ƒ6}ÁÃæ …4WÇ`Üt)&üX"Ü;BɤÙ%T³¿ÝÁ›ŠÔ¯^$馼÷þ+œ\Ÿ§lÈܺۢ˜—XXjÒ‹&é€X–Ð; !ThU2Œ©‚„5LI€‰¨>Zìõ+çY]˜áoïÐé·¹ôÜóK n|'äÞÎk4çžzñcØ"¼òÝï =ªgOѨÝÒí«¹|•õ¹ñÔeãþDAbáÔY¬äˆ;Ý6Ãq…ó«6¡1š˜ö‚0 ®è».ºS¢úø"øˆðÀ£—W1…RN&'79t x"ùúEÂÉCÜl—bå ‹+eíxÿæ„ù…UʦÇͽ>UÛà‰ÅeÚăv‡L.bOà®(ö ‚{;L'"öü Rxˆ/kÌUºû.ǺàwHd³]ero—íÃMÊY «¼öÍmÔJƒg>¡qý¦@­'R^péJqp–ÚhJ®ù€ûNŠÔ]d±¤¡iûï ÑFOÿÈUÊâ”oݸ‹—蔃zµDiVçæñuvï;œ½´ÆÊjŽQ/áÎí‡ ÆÏ?~‰ù5“oýÖ«L2V./ÐðR±L'IãJiÄ~ ’[™g!7Ï-¤–ËêùefÎ5iï´ùƒßüÄZ“¿ð3Ÿ¦7¾Å;¯ß@”)ÕŒ{¢\§f÷ØÝáÞ¶OÑnrvµ€‘D† $,\>Aº?áÚëšüðÉyZáƒãmèPr Jç5n^ƒñ½u^üøEvû_á×~ç ~ìù¿Áçt‰ßøõßfkŸû<Ñ|‘¾F¾e£6eôzŽº÷$£i÷7~“H]ãôŧÉ&7bá ù Çû· q«1CÁY›SñEŸ÷v‚ý9ËÈ]9AnnåÀÀh¤üæ¯W_¿ËŸþô‹üÕŸù矿Í7þ÷ŸãÇÿöÏóÓkçøúîßøÒ?£2óa~øÌ :¶Ãw¯ßÁ8È‘¿|šÚ¹“»-ª[Û,<ŠJ®€ó­=îëC §kÔäú†€oŒIK!qÔ¤ ºHºÃ´ãq0ÝD‘,—™½°Îîwé¼÷uŠÏ}Y/âÞüö%ƒzåÓoÞåhçËÍ:Â\Äõ)Â8ä̇$æ<×v<&í]4˧>³LIØ¿»O"ùœ¿|•¼òßø<¡Êóþ*÷ߺGÜòXzé*­Ýî߿ϥ«§ÉYe¶{÷ɲ˜©X!W‡FÞ'çy覄Ó1ÆtLqn­èpï~DÙ7Y<[bg¼G¿£Ò( Å=¬Æ V8ÇNë:Óé„9u¥ R$¡5 èjA!š¤,+E˜/³ßÝÁSfVgÝ £]Ð2‘¤âÀGŸ³B7é›xíÂxʉê*Çu›þÍûØD¨s Œ’ŒÔ…íÃ!öœ>¹ÌÝí}‚Ì5EǨ¢…˜Èøº†á¥¸aݑДTsL| 2¢šôPäu¼zŽ4Þ§ïM©%ì¢M·?b’N˜)åpÈZ‘¹3yº-ZBÆâœÄ°› OTÊBˆ£Et‹¢ï£¡¡YèO>°(ƒÒ'scb[Á‹,Œ8DL$ü‚‡- ø}Èr ££”œ*‘úP¢“JØJ !è¯å£{2Ù\Éò‰î9$˜M e*J ø@&áå]*Q/¥ ‰)Þ4"5",”¼†F¤¤à…–J &ã19KC•ŠôÉí  E´¦Œ´¼„Èkc7lrZŽÈW”p”y1FŒ!ñ!QL”lŠ¥¨xYH$©î”i$c*9$%Aw¦â˜4ž Ä¿êu‘C!õ²ÒøO4ÄþH«áÿo!J$rÍ Ä€aœa™)¦”'™&ønB”“ÑD A’艹¬Š$iô£Š–G‹\SŠ•EKb8ì2žFh²Žšä¥'rP#Eò‘3ðÉ'0NŒ 89եР˜RÆX‰Q…Éá÷«yò"q£È ²%ø¨†‘‘… ‰œ †é£Ιô'LîôIø/$?%•5â,FÔcÈt®½ò=ké“?„E &*]T µ±?Àt(JHzž© ˜*F]d|áöÆè' *F §?d4˜bÙ*Z^%HBŽ®¿ö}K›c.g”Êì÷ö„)'í92u†½î&“Xæäì ¢Ð¦÷PEŸ«`1Í-öÇ«Íyæçêt7ºŽuм@’†ìN»œ™«3WiòÎð!ñÎòʧ2r…¸Ã~ºC¦V™ m|yB ˜îîq4yòÒ¤Xàµ7Þ¡’‹9{áiœÛÙèîQiΑ+˜dê‘‘Þã½£6'ËK̬Î1¸qèP ›œXR(5Æ ‡GÈžDåTPÏ#lj—q-‡‘«RjÁÑǕËç &ìi1Ï7ëoµùÆñšäK ZGû¤~‚Uh@fÓÞoÌêòG(9ÜØ »ãPUfÉå|ŽS(È"´1d‰ÙÓ§0öî°Ñï‘Ùy¶‚05‘Ó"IÉe’̹.Ó8»ÄjtÄÑö.Þ(¢š_Æ\ZÄK=ÌÛ|sCB¾x‘+W6ؽ1¤ª5È/Øo ÜÚ!õ&<óâ rZ…N'¤Õ>@ ꜘSÙ hK4—ê4”CFJFÅX%Hô>+5“žhöMÄÞ‚b®¤b)ìnï`'Ó•yÏÅʹôº!£»N>9ƒn΢;Ñ`‡¶§ÑX¬ã°µÑçù§>FaÅçúý[B!©â¥Kœ—)MŽ2Šîpf>Ï{owèS^:»€:.sÜm¡J.[#4ÕäÔ‰5AæFkeê󸉧 óSn~÷¶» —.®ñÄâU&rˆW¾ÃÆ[I¯ë\ú±gX?¯óÖ×np÷µœ|á4gÏ­rìóð­-’fÓË…i™C]¤¿y‹ƒ÷¬ìÓüì_œã‹¿ô{üæÿú?üÿüa~æ£gø•ßþ*ÞÍmþ¯ã/ƒTäoüµŸãäÒ2ícÏóê´ÏÖžÃåÊöáÞèÛTÔ§Ö>̉™ ¯|çkLü§_8ËXH¸ÐhðÿÖOò‹¿õ ~ù¯þ7üÌŸûyþÛŸz†¯©|ý+ïÓÉðƒcäûÚº‚0kÐ9J0”)•Ú,ià3l‘«Feʽ{GÄ“]KeûȇÙ8hóÚ¯}‘Ë—/röÙgùú[ß&¼ô‘Ÿ&³Bn½²AQ#oÒ½Û ò7Y=¥‘/Î3nyŒï·x%¬=¶Ä|®Ì¨%p˜d“bL>ÑHTH‡ ŠŠ”†>%½Â8› k H"‚ì¹}Ò°Q2ÿLýàDœ € "‚ Š"‚(!I"’(!IÒ£û{%JT2‰h±,’©ùPÆM@Ô=äÐ`*„¸©‡©iÈ~ˆ«ŠXHj„t§yY¥  𴂯ÐÝ=Æjæi–«8½GDË›¤6>ø’ƒLK™²Iè 3H`¸ª C 2D)Ã÷b”Ä%fòIî‹§Ÿ ËB”D"“d,IY"%T5C !”A 3P³?&ÎÿR½zWÈ“¢&*ˆ1)1×ÿHÁª¼ˆªË4‹U‚4Àr¥*$>Ç£6EÛFÉ4œ±K¡hPUŽzDJH±œ''Wõûô»=àY«“…>Bê²ýû,ýä ¢ºB1ÙÛÆ3f¹Ð\d'Ü:S[™b£rtcµ–¡Ù%v§éìN¸:7Kymž­›÷i‡}Ö+`Û¼ûঃ éi„\žwoÝ!mOÉ‹6ÒRD,Ï`vB<ß%¡ ØHKâöˆÃqÍϸL»¿ÉƵ<ÿüy¢b;_{‰3[ËS™¯“Š3ì>|ƒÑà6KkW(Ušl}°‹3A­AÅ4Ѥ˶8ýc—ÒZžœšpïæQ8ÃÜ•*ŠtLë(dêIÝ J-fVW9Þ>$©/0_)ñÖ;·É¹2³Wšô2ìD$¯›l·Y¨5qó ݃M,=ÏìÉ2Q0âÖµ ù|ŽÂì”vÏÁlÎ5N°ÕNéõZT4™¦å_)l1>Ȩ<~–JÃ`°³OÕŒ9 z‘ÂJ9Dœ äÜ%új‡»û;ÌŸ]äÂÂ_zå.B0býT…½ÀÄ>€üšD[‘˜ 8#—ráJ*ÊìY*^Š7vp‹t ¦UΞªS¬L¹q»éŬ¯ÛÈFƒ`Ô¡ö3Ξü㓉n~{ _¥i ÜêoR1ª<¶v–aÁã sÀÁ;[(’ƅϯ#ø×_¿Ie>ã_åµ½_þΗ˜Ñ5>ò¡S\>»Ê—¿ùo¼r‹O~êiÔj‹oüîu;÷ ž~ò,¿õÛ¿ÊþÀáÏ}áÇéo}û_P-¯ðØóŸ„£›Üxg©jramÀÆCU»ÊÚÕ!¿ño‡Ž2ÏÏýÙó„TøÃ×ØÑ”Åçs¼óÊŒ¥O\¾LÃ5ÉŽz”Ö{ü®Á\-b41ȉ <õC§¿ð¾FßÛáÇž¸Ì_ú?ÿ,ÿäïüÿ¯ÿå¯ð³?ÿóü­O\æë[¿Ãoÿámd§ÂýØe޵€àƒMÖZ>ö•ˆu•ol±/tX¸<ËŒ¹Hz##-LÈ– âíÙPÂXÔIºÃqF8°(œ£<¿ÀC÷:“W·X~âÓTg|°ñ]*u±öœÝ;”¬žÏq$xó[T4Ÿçž½ˆnwGlní#Ç4fW†9Leˆc˜-.’<Þùî7£*/}úIî|ó6•y›’.ñp{Ÿù3Mjµ÷oÞ'Rôê"£x—sYD ÙΰOµ´HIév§(ë ‘ÀÝíó''Hy›þNÝOÐjx9uà㪺‘ô"¢¼O (Ó&Š!¤=?‡”&ˆVŠ$%„˜ŠH¦Š$‘ˆ$yĪJ0L0PˆLEr"•Næ!…)•Hã@(’KÇä8L%,) ¨H¤f‚à‰ÄN‚P¿âG}Ôf„Œd*….‚YÄI&XŠŽì›8¸H’‚.‰è Œ|ÁÆ7cG‚‰„axø‰HœjÈF‚œêL…? /6qË&Q«ƒ0‘è§5 †L”štÛ.R°EfÆE\†D~º 8ÈbB”êD©ÈDSsÁGÈ~ 1 þ„wHøA˜’$DQD–dDIBVäGŠŽ,£(*Š,#+ Š¢<ºUUQT Q5U•@.0õDT-FµTÔqBß ÓΡ\:®¢)Ô¬™G“ ù4#‹ó HaŒ®i ÙÛ>Æ.”˜¯•p|Ÿq¿…ªæ@; Ñ)J =WGѧ˜Ž„dA$‚‘¨Œ25ËPÄ™("¦ H1ÎÞ÷¬§Ï¥)™d¡Å²"“É2ª$Šj‘ Bø½¤†ì‘j•üÑ©€4_¯Æ©žB¦"¿E8wáC²N±¬RDÜ0O·ÓB ÇTjdÉ`D˜Š‰aõ=’I€TΘm,t|Zc¬\ŽÙ’N? ±H›½÷¿ûÇê5.õèö&êËÌä-6¦Çd•“Í2ÙÜçÞ^‹ÅS ¬Ü;kô[Ð\XÂÊÛôvì&-æ­ õÜ ÇG;l7Y\*±¦-ãF½Ý=„xJ±9CTûŒ%ѶÑDCq;c:à ÑbéÌ<Ž·nßCÕSVNB–Þº¹C–L¹òÄyôòiG÷pd6•ºÊéb“Žîñõテ!ÔùÌçÎSÑC¾öæûÁ€ÇO5°©pöÉO"äDīɤAòTf²³ãd¬<^DEÚ;¦—"©mbu„£Õ9›´££aÝÎaÛK8íc$2N®¬¯L9òrôzH#W!›‰ðƒ˜fe‰R5åÞÆ>…TA]žCìnáÆŠK ؽ½!JyËP‹!5IàîÝ)^y‰µÒ.Çï>D¯Ÿáìé“~@dID‰[ó~‚²pôð[HñÍ…ÝM†ý fAá̉ )žáÝ­>ÝÝ{¬ÔŸâ…çÊÜ|ø.o½œðä+«÷v°B Á*ÒïÃc§eö“Þ—ÎÖhk‹þ˜Ng—°eS_/×§Á8Í0#õ™:b­Ho뀣{È33<¹´Îî½.AÞe¶XáðhN¨Ó0g‘U™B(¡åGxúá‘Æ^ë:k%K?ÏÍ5¡HÜÙè2Õ'œh,b¨(åRŽ·xóÎ-¬XæÒs/R%Žî¾ÏÃaÆóO~mqû7Ïkäí%Ôà çίpsp›×þã«4ò œîËÕ*w;×xç;;Ä¥E>ÿ±ó(©ÄµWH#Lë4uÍdá$|ãk·xûUøÙÿî<çæòüë_ø Þß¾Ï_ù³]­ó¯þý9s%ã ùnmùü³¯ÿŸ¬ÏðÔÕ“ÜT÷‰zûÌ-=Ǩ?âå/¿LN—ø‘SÏó_ü"VIá¤Yż2ÏIÑàÅ?ýÿî·¿Å/ýã÷ø?ýé᩹o¿û]¶Y"-ÇE·ÍŒ(28×d¸áÝÞ!wÞ"±ŠôÐY9QF±5:}\¦ØË c‹:8Y‹³k/Q½ò,ï½û2Ç¿óïXºð!®¾ø<7·öðÆ‡¬®¿DAjóæ+ï!ç–OœgÿŽÇäøæÅ2Í'ñ\ŸÍï¾OhXäN¯Pf cýaÆÜéó‘w¾u‡@¶8µ4Owä SΞ9ÍÛÿù6Þ}ÿ±£wooÅyjšDjŒ(Ÿj e6º]B}J5³™™7 #îMN5NcÕtÞnm0@3SðŒU+’K$&ÇXË«¤ènÓ¨+¬'E6éâ`³$ˤR@*˜$R„Y´HDá°M5© /ç9ö¶0÷3&ZIJ°C Ç0ñÝâ Kyá, :Ý­Cdm 9K‘ɉ1›‚†Þ†EsŒ_h¢ *¥ÃÑqü\ƒzQçàÖ!ÓºK¥±Âx¿­µù ~½„ãèøƒû˜‚„& ³³H¾OÐiújsMÜÈ&9¸…fh yT&­HxÝ.‘•0[ػ逥3_4ÙÏ|ZB)Qˆ Û ð¢!Nñ%Í-Q°#°Múý7RÎ[¨ÓˆNê¢Ks$…3qˆ\/!êÜÔG1Áu‚|HÙÄABª‚•z8ª…F:D!ŒŸ0Hù k9pl¤ÀCŠº$¶‰˜È#ã3VTßŲ–H™2bˆìI¤–$„à UQH¥ LQððˆR!b¤”Gu<Ï{QI°¢!± 2Š$,ŧjSWCµRœ©K]­0ôF‰Š„¡ùIJÈ$ɼ#í¡]âlŒ”†ÿ?*ñÔ¨?†)EU‘MÕP5 EÕÐ4MÓ@·´‘`!¨6©d3&/—‰4ÀÏ1UJ$±Ì0ððó ¹0fɉ‡fÛàL L=ðñus J^TEUC¼IÈRd§ç¢)«³v§Þä¼PCÔ5¬dÈž˜FKІ“L9N$š©Š“9D6Ô5›¶bªb”¡ˆ*>.ÞÞí?f‘ÙÓWˆ¿Å ¨ j&#)¢q qDÿ{ á£;dDTM d†ˆ˜…qB¬//kš‚¦ríåïµ_üìH³)¾¡è+H 9’ 6³•*#’H¥TÊ8š:CDV{¹ÀÑCÅcfÑü!Ž7¤T=‰^pyýúÕI¬hÒ7}Öse¶ú‡xÇmÎ=¿NRjpçK-²Ô¥°8%Ì,mžÙB‘íA›vÚ¥®W™‹2ù„‘•2Úm! kg®2θ[[£·``——Pú»ˆ]·²‚Ñ/yÌ]8OuËäÕWßa\qøèÕó†Î´ã’Ÿns;5‰Ü2£IŸfEdmñ$÷Ò2ãý]rm™ÆSCöÈ#NröI᱃³õcZÀ™U±uSʱÕjSÊRÎ-žG-Š<¸w›Ìòâ §Êìî2i÷(W¡¸V%ëOÈ#6ÅyΞy²Ëí÷"JÅE ‹1Aß'Ìò˜uPÌ>“Æ·¾óE+å§?ÿQÛà7õKØV™>ÿ<™ÚâKÿá]¦qÄýÈÇ9Üpã‹gèŒö°\Zäü•Ç)ͦìoÜç[_|ŸF¥Èç?û ‡žÂWÿð jªÇŸùÉÿ ·®óþÞ/rÿÞ„ügŸf}}†ßúõ﹜¿r‚È?à³ÉŸþºá˜ßýÝ_¢1{žŸøÄsôœ!_ü/3{ò ?úSçyí÷ßåë"?ñ…é~›_}e›ÏýÕâC «ü_~7kóÿïŸ`ÿ^ޝ}éˆg~(G½YåŸÿò+ØÕ]>zåEÎ,º7BØ>28ùâFÖˆoìòñSâCOh|kìðo~ï>ÒÊ!?±úa~öÏÿ¿ôßÿ]þéáþÑ_ýóœ\^áÕ÷¯Ós§œ3KØ—çñìÝtû“MÖ4F\Üàëäú4Gï ‹A‰£ö†0a~ás¹P`ãá„~ûˆ°˜C³ D“\,“Æû¤å"y¡ÌðîM3cáäeºý>ãà#_F’JUgl„1a} AˆˆÚ>^-¦$Lâ/è¢ E¬¬FuI¤"FÉ&Þkê•\‰¬ï!‡ -ŒL¤ ‡„y…`wJ¢˜TÊ Ñ`L¯hQ— Ó#DUBwbË'uTÒŽ„YIˆ$‰|Љ@ I$N‚(E’<ô0ÀÃÆ°}PM¼‰HàM‘,]IÁá$AUƒL£( à*LŠ!î8A"7F•D%EI=ŒƲŽÝˆQCÏq± ‰TW¢Ô¨:™;ÂÑSò‰TT’>“žŠ iPšb)9¢x£Š`åDÔ4ÅéõH‹ô0&•!bÄ0Åœ¢1@ à¨êûm¿ïµödEùP)¨šŠªjhÚ#˜ÒuÝ0H$_4ˆ¤]Ý$rl&‘ˆž—™LEA@Ò@Æ# 1—"àc$ ®d¢Ëñ#g’’#Nq|T‰Éåkút²dœ¢–-´H 6\ÄFŽŽ „”ER¢s”:´† "ç ´Û"ýɪdâ(AaÙ>Y(“Ú ¥0åž`X"•iŽA’`:à+2..*á.{>ý8Qš` ‘ȶ’’¢ ËhRÛ¥?Z}ü€ùJ‘´€h˜)2²Bœh2x*¨)ø)×Þø^ÐèåO~]6ð'Ga›,˜!IdÜŽOµX!§g†L½€¼iS³kLã ãã#â|{I‡á¼3gÑ <Æ“>Ã{ßÜGØÚ"¥e†í=..ͳïîr»ÃùK«4«e®½·ËÑ`‡õõsÔ—jtZ÷Ø0fu¾Š¡¨ômNŸÙÙ«ööG{÷¶ ¼Œ……%RÍ&ìÉ V¬àælržƒ–‹9ÜvÐt ÕU³Ïwnorjn–|y†7[©ŽEÔ‚ŒQÕ8·rší½=®¿ö‡ÔKqæü2„[­÷Z˜ÈÓO‚™Ù)ßüÚ×ÙM¹úágÑ£”[Çäô³ÅaÖcêh(±Hð°OË”X\·Ô뇲g`׆èDDêq·ÍÐ1Šãm ´ÊB.cw÷uvÜ*kçN0él1Ý÷©è5BiÊ¡°f71ËwŒˆÇ"gf´¦H„ÊÜ ôDŽŽ†ØùEæjqnD¶ïr4H‰Öç‚vH\ev^`ì9rE–”i4¢R±«7oÞceåË ‹ÜÙ‘Þ¼‹0“cî¤M,H\k÷ƒN––hO¿½GÙl#çO²ÙUÐÒ뤞Ãlå"vyÀñ±CÕÒȼŒ»ý ´9“3§¯2o<<ºÏ;ßø*ŽXâéÏ=OµœãÞwÞ'*§4ÎÌн¡’x.Ó™€hªóá~ŒòÙe^ÿÊë¶¶XªždOSynE&?Iø¯ÞB­ç¸zþy*Qž÷5¾¹ÙCôÎò…ÁïÝàÿíW9¹z¿ø…£=ùƒßý—zÈ•/e®·hŠkͽÌå«oßc½±Ì3—Np÷Ö»d“ŒOÿÍOðÊõ›üþ/}“—ž>ÍG^8ÉКãåo¿vô:«ºMý̈ºL?=Íûÿùïó–²ÌÏüÈKÔ¼ènm2X}œ’ߥyëý k¶Äƒ3qvµ“•èݸ…’(=y‰dwDïþ1ÁRÆb¥ÁRõ·n¾F罯ròìg9óÒ¼ÕÞ`üî+,®/*ËÄ{·±Jc2»Ì^oÀÑF‡¹^äêùy¶6Zlß¼†+5™oT(çrL»]d/A<µŒ4‰¸wý]öÅWž|i°A/#oáÞ8fµ9uõ'×Wøö¿ù6»ý-žúÌej‰@ìËÊ>Î0ÄÅ”r æ íÞñ`ŸÙSXžiòΛo‘yN/¬°9ˆ1×Lòé½}ÜYž4ƒö)±Ï2ÜLu2»R¡73i»¬žž#tMœý6²"Yž<ƈHù®åPÙóè¡’Sæ¤q~Ãû[LÙÇšXù"Fö³>ÓΘ‚™ Î”™*eJý´»DËŠTÛHgÊsE„®³é`/‰(+5z1R°‡86JEôåΠƒßcèiCÁO,¢c¥vÚÊ´Ndw™Fx=,ÓB˜äé f*‘mŒÄ£5WYÀñ|dÂ@¤¨k¸Š‰ ID‡=[¥hÊd±Œ›¨®CXIƒ\ß¡_̉.‰ &:9º‚„à=Ê#Ф˜TŽÑÇ9°+Ͳ^ˆfz„9™Öþ1±ßàÄ™'µ î÷pZ¬Ð³z‰Iƒ1ÇFóK,áÎá„Ò©:C…W¾ùMªgWxâ¥3$wRŽý#‚v avžühƒÎ…Æ>sÅÇ8¼q ¯'rå“Ëxm…ë·Ú\Y™Cõ¹3pær¿ >ÐÈç úÎ}'äÒú<âBžk7w8—Äè§9ÜRñúcšó*ÆB…ã¬ÀøþCŒÔú%»M⠘온Å&'OJôG-v·}lBò¶@ Vð\•…xÂÒ³«Œû"¿÷¯¿„®øé~Œ¬Pà[_ü6y¥Æ3_8C¿ÕåÚW®q²©RX|’£¾ƒÊ¥¸Äd4¤·ó6*ó4Ï^äñW¹¶×âå_} }Nãg>ò,Õ üÂ?ýUâÿàþ9„Ü”¿õãÿ7»È_øØ%¤f…á}úÇãcSþÅù+\|æst÷¿Éÿú?ýkO]áø±ó|õ»›üçó6áo|5—ò¿üú—9ûìüÄsOó•ß»ÆFt›Ÿû3O1}=åûõ7øÈI|î©2¿ý5…I/àcŸ¬#OVùòÍ{䣧ž¹HíÜ"‡›º¯Þd¾¼FíT“‡ÒÛoßátVbùCO‘(~çÝ·¹­/òŸ9Åù™üó_þT9ã¯ü™?Ç-$ú¯|“Êý„øtžaÃ`N+rz ·2b[`YÌx8í“é!z´ƒˆÐ¾Ï¢yš¨þ;×þÁƤ Ÿaî4Œ½bÁ qšÞ~À´t—¥ÕÇż@$è¼ô³d-¶ß È·(`$1b¡Ži‚äÅø•”J\çöñ»¦ÃÅæyúÇâRJ¹P =dbœ:1OfØ´;×±ÒRÁf2õQtñ‘Ç'ÒØïK”Ý ÖNæèªqÔºM³!Q-­poÿ“‘Kò(œPQ#ãÛÛ±Huv•Žß£åô˜É=½6Gê‹kOá·GÜiïѨW˜Y,Œ†Ü;8¤”3Q’²´Ãa8$Ÿ›E²› tGG›5†S¤T ±´@ yì÷ÈYq% ɤ‡N„­UY°uŽbÀo1#¹ ôur e‚‡.èÃÂÚ Q Çïw0½ˆæÅ&Çaг?¢¦*d¢H?ö±*:rN@‹DänÌT6ñÓ òÐe©V ¯Ìpxô€¹šA VÉZ»Ä‰B)”* ‡‰G.ÒÑe.ù¼Ž5–O}&‚‰¦ÉEç0!ÂÀ0}!Ì4$=+E§äôƒQÚc61È$ Ñ’B—Idj F,aIBˆ2ŠNĨq¬ ¨†ù‘’`æUT7ÆQ<© Q2rŒ¤ÚèR—,KÿÄ”ß#ºˆ$K¨ŠŒú½–Ÿ¦ë躎aš†aš¸‚Êȃξ›Oè‚“!)¢5EIT\1£„Œªht]Å 1D ' 3‰¢¡E #ò†HìÊ`Ê¡‹8VP¶($ ½$$‰SŠÈÈfŒ+€‰’Ìh¢R³z¤‰Î0Q0¦=Ô™éÜ¡ƒbk4r5:aH|8Dµò˜ªˆœ„+>âÔ§Y´N!Ч$‰åƒ§+9˜(d€û€µ´ö8©¢D’’!h2¦&’f2’ÓTâRbCF|¢X"’DA'›&d$FŠîª¤B‚r©ÌµW¾4š¿ôãá]N™m,g1û#¬â,yMeÔê%º'ÑZÝjfaUÊÄ™‡„d’EWvœ1Ь3_›áÞßi(<ñ"ÇÇ7h9\^xœ®=àÞæ€¥Ú"3k6[×[ìõ¶ùЕSÔŒ56>x…ýí.'–N1sñ<÷o¼ïxœ=µŽ˜äèô·&=„Bb!‡®&lïMH‰¨*Fm!ðÝ´'T¹D©²„^èñ°×§Ô-2Û¬rлKi,­V°F‚J?VÜ¿CZÌX+®Ó—½aÂZ©Leí$’ç±uë ö=ƒ“g/¡™9Z‡ ¸CÖN>F-´ ‚°5ò…&éQÀƒÖJEeFðhªm¹ÁþÎ&©àP³«(®ÌT)”ÒšÀ[ß~ÀLÖdýê÷6ï„3u‰—°Þ˜a¡¶È{»7‘—Ùæ,~÷˜¬"Q,T赎Ø>J™)VYÒ $k„0hqãH§Ø¬q!àñô2…hÄp&f®P#8 8ØßC«PrS2I¢<7G36ÙØ:`´±‹v:ÏÙK¡$®ß£ßžòØúÇY®¦|ù›/³3ò™O}”ʼÍwn½Îäြt‚¥S+h³­{;¤>KÆ Ós2îØ¥z`r\šPšæQŒe"ã&Ã뤜aaí—””‡ŽK+ (³ÓšpòùÉå=Þ¾¹ÇB¾ÊL5¥ßs$yD¥GÑs¨®]`¤¸Ñ€¹¸ÉÝÖGñ!Ïž¹€;ÁÁàNo“bé9ÊvžWžùÜäƒA›«çã‡Î?Î^ðþ­ßÂÏašëŒäMfÕÇX˜1¹óÛü¡èóâ©ÿŠŸüðüú—ÿ%_}÷M¾ðâçùÌS?ÁWÞþ7v¿Å s£ót4òÌ.Gž‹.e¥àqàŒÈ{yÖ/Îq÷·øÚ·nð…?õcˆªÅ¿ÿ›<{á2O~vßüƒWy÷5—Ë|î,‚öo=üãÎ)×bõ”ÍÙ¹'ñ~ãæè¹OñŸ¿ŠûÚMþMï¹ú)fõ”t ²´f0cšÜÚßabö¹|õÛ›[¯¾ÅÌÙ2gÏ¿DN†wo‡ýc–×–¹rö»û-Z×RÏ­1}ì2bçb÷.’Vfo¤F:¬A¥"ÒùýûÜ8ô¬U™›%d‰ˆFˆ+EìÀæÍס6LJWžÁíÜd×Oг¢(`æö©,Ÿ&J¼ü-Žœü‘³,.\dókï0„˜36f,“ª}Ôjh2ÅéŒYºtC(qóÚ˸í”å¥y:¹<ŒÃ$¥Rš%V‡¢‚2-²3zȉSJò,ïߨFöRN>Þ`?žŒ3*FTu‰§1LTº“. 9fä»YŠw·CvÈ-,ñX®Äá Ïîáµü(î!2rÅ”£‡c¼c\½Jb›dGèRŠ·Ð w@Öí“*c6-¢£ þ~Ù6iä—pÄßÛ#i)”Ë5F ãVe«K¡l“ÌVG1%A #ÆSdmIzCÅcV/’Ã=](Vð¼A‡¬d£&&iY?$:%Ÿ ›!CÙ& CHAEÀ BŽQt‰YOåˆ>z¢`MuüZJyä*i­H ‘CbëD±ƒ¬Úàd¤JyQšC YŠ˜‘¢ !¢{QEÇëd芈­„8vŠ—ˆQ†®Øô§C ³ˆD‚'¥‘OH¨™Â¤˜ $:ÖPbRˆˆÉ*ã¢zSD_g"ú(3 ÊD ä™ì)räP–Šx: Ã#‘L‘ÔÛA „ïeŒ‹‚ˆ( ¢ˆ,I(ŠŒªú99!RòØÊÉUð³–>@… D%Q¡ B˜ýIÀZFp÷‡÷)šÍâãaJ*LåG‘‘ZY&ž¯SQ›»œY¥¾jÐí:ŒFá!†¶i‘^o—BËi9eºëá»Ær†7ôvfXl® ™›´¶ocÉKõÓ¤Ò€9ï€^j •‹4&}#F6 ä•nía-Ú<ýXƒ­1G{‡,,ؘÅ&8oQÌ·yìÌ“Œ½<ÛoÞ`¾QáÄsMw^~ës³3œ›·hí÷Èd‹lÒ£Û‹¨›³ès>I±Öm-ú\»~DÖÉ8ñ\Žð¨ÄÝî„“¥6‹ëËÜÝ—ݽǓ+ò§ÖçZìçŽö*œ;[Å“¶ìKôY†÷h(Bi†‡˜n‰¥:›Ó{½>‹…uV®®Òë?àë_z™ÈKùÂç.30tnüÁ-–gCŠçÏऌF÷P$™ÙÅrî”É|%ÃÎÜ÷ˆÕ*O­8±ú {ã;ü‹_ü×db“¿ÿ_¿€ºªðßÿ…ÿf¡Àßÿë?É^7â_ýò¿Â4—yæÂ{•ÿüÅ/óÛ¿pÿË/|ž™•ÿá—…jÙä§æ/ñwîpóÎ7ùäGÎ3ÝÉóí6KÏe\n6¹ö–Ä{›yú²Åâz‘w73>¸ÀÕ32 gVyùö¸úñ —lvú-òýܽڋW)+s´7¾†Ó}¾I=±í0r>‹›–¿Âá?ýMrQêóøµ>wÞ¼Íéak] %Ê42 +ÙŠ¼qL9õÐMÝXÀ\]bÔßâø½—™«?Æâ³âp|ñîQ¶HJvŸµ3—HF96þà·Ù1T>óSŸc^òÙ|e¯Y#mH<¼Õ¢\­qzÙdÚíÍê4үݺ ºÎ+˜ŒÚ¢KQ³é÷]â°ÍãO?MN0¸þÝ÷èø––P%iÐafeŽÞNŸ‡o8ˆçD.\\¦¿—ÑíîrbI¦ÄîôF »,="ª¨e '0F1k—–x¸ãpøà.—Ÿ[#Ž6î£Õlt{‰éÑ ‹"• ÂõŽáðÔÕ·‡lí³¾°JÝž¡Ó»CÜöP-‰n6e)Ê“™9[ só€i0 RYC7¦t¥m”2Œb,!"ªšäD†"FÁd’yŒ (L]Ê—N"•jì~ã¼Ìaé©ó„…Þõ}Ô8E¯é„ž†oÄ”‹ Ñ$ÃDä$Pµƒi—¢eØíý ÅJ…²i䉧S2©ŽªŠ(¡OjeôF³¾ERMp¤éø)Žñl+Ž T‹,õy ¶¡):È"ab%!Z$æ#d'dh¨¾‡”HLK4pÄAI#CNˆ•¾" úu1¦cFHnC•ðܨ‘TÄöb„`G­â¶]BˆÊñ6­ ƒæ ‘œÑê;Òé‹iº( ¤c&(Èžˆ’KPƒEMH3U1Œg/BÒŠå„HÓú^ ’–€¨a(ý CˆªEa:$Õ2BEÁ`Š´³ä‘Z…€ >ŠSdEQù©tÝ01M Ó21ÍG¥h:ãqÈÆ(â8É‘d z×E$²%ðr’‚ I„^a€nØHRD<‰ Õˆ&R6¥EL^4à‰%äLDÎExaˆØJŒ)fŒÌ¢¨–²˜?¤aΑ¸Ž’—JxãÕK‰Ä”^r€‘›§©ªÜ8Þgmn†ù…‹Ü;º‡÷pƒz®‚R]ÃÏRŒ`‚­d(~Š*Ç=2=Éaä›äfq;$½CÔrƒ¥•öO&©<<’¸ž^©˜U¶Ú,V#¼©ÍÑÆ>:"3'Ëíã.Z#F3l†~2¢;iot¨<Ѥ.ÔqÜ.FâVȆëSŸ_çd~Š{Ôb,˺º4ËÅ5V'&”œ„“W©SDïyÜy¸IeÉdi±Î P0,D)cëÚ>™b ÎæXZz”³ûî |IfnífVÜ»ýwöxñs?ʪ)ò;ßø&ReʉÙó•URÚÜzp—f»Î'Ÿ>Mÿ¢Î›·»ä7‚Å1{û%#Oñ´Ž×Ý"êèÆI¢™!½Î&i½H%Ñá°€±bá-ŠŒw÷ˆ¶w˜½´Â’έ·‡”u“F-!:6Íö8n·Éí•8ýÂi:©OuìS«¬òƃWØÜmñCO¿Èêcgùæw®ãuG<ññ§옼=ý]5‰u>ÉîðÃè³ËO¢åò<|ç[$¡Ë3ϞŘYàÍÍ»ôv[è«&%q‰¥S¸s°ËæÞ>/]¾ÌåÓ'ø•?üuî÷îòÙÇ?“gO²µûUþð[ïs~ñ% ³¾ñÍ8yö³|þó ü£ðyùöþö?øžŸÿ?ÿ/þcqƒŸ~ñ<½ûe^½§sòêVá¶A’t÷ üST›a·Õev{È'>ôqºË9^ùßäb>ÏsÏ\á¾ârýß¿ÁúJ“þáY¾ýF‡omQÊU±f5æÊ þ°ÍkÇŸ˜á/þè§H~ï:ÿè¿Iý'?Êg Ï’Þþ€{ˆ%ë Ò ÃÞ6]9‰®òþW_ÁÔ#Îýé%žª¼ü•_¥ÓñÌ3cu¥ÊÎÀcÿfQkÌ¢Ç}¢áCÔ8Ös´J&-(ÃÁ¡Â°°Œ_T˜ôcŒŠO.9Â0gXX^§×oñæí¬­”Y:qo—‰Ö¢hœ&ºHÒ}æç¯pÔÉÓmßFòk‹ÔkEöÞÒlR;ÛdF«²×?"v"ræ<¢ïRÍåH$ûÇ[D“6ó —H “Iÿ€Y#¥aŠì'eºN¢¥3Îrs늳tå2AßáAë9q‘²W3„ xÇ1‘ä •l$ÛÄí$äTÛ„x GG‡ô2“ËEJKuû1~›I2 ¡4©T ™ÄáN—ÈP8_³é"$©×aˆI.WÇ´%œþ>èFeŽÑ°‡ìB²ÚD’·z¨IŸl¶IQ-“æŽé}ôÀf&¯â îõ´I‹s‹‹Œ ³?l3kÆ ¨U*DÀÀß!‰ *õbâ †IHhwÐ SÏC`w»%™ƒ;7~j^|™Á ÃQ»Z(Rªåô†ˆÒd‘’–Å»´î5Àša~yOèð¨3¢ ”)+1›¶Ãd&â˜jáeklŽ›hÍS…2±¥ptØczyU±¾ÚÁ ®ž=FOî±»ÞbF£RRùîãâÈen&&›ËbegŒ÷Ùk¬!%2å2²ÏÈyB«‘2?SâÂÅãôÇ>÷x?8~a AYß‹˜É ×}°dŽ«l4<Ž’f«Ok&}ô7mñâ³Ç8èNÓmµ;$fŽlešž'P1)Ôfè<Æ·0’Y&OOã;6ƒ†‹ªû¸®²N] °‡DÕ 7aðð½ÔL†çæg8òllY,Ξçdy•õa›H™"HE"K§èmàµsŽO“·<¶âi‚íÓ¸¿8apêâã^×)dt4žì hlß ziŽkç/¬ñá­'H¦Î«?sœ'G‡|ø{<û™Sœ]œâñîÃ`ý-‹r1¹8M Æ úOˆ»žà•#òKgQ£¶ü!¦¶ËÕ)™ç¸q{ƒ©S!ËK×h6zlÿàÑýÓ\øòy‚R¡Û'«]æ£'ðäÆpáê_¤º¼Ä[±PÏ Õ®¿7f)¿Âò ÷>|— !Q=¿Â©Ù7‘øÑ7Þ¥D<óÊ9*Ó5Ú·6é»#ÌóUJ˜Œï¬ÓRNÌUA.÷dÝÁõ<:>O: g_:ï|é+|xçßóÏþë™å×ùkþ¸‘ ›~ý;ˆÙSœ8ÿ‡Ðþð¢*Q¼lñp R?²\®Ò˜D¶{ôýº·(޽ô2‚TfÿÎéô5´Ê$Ù#Ô°ˆ3øxç6Se^¾ú5z¿ñ ¼©:ra‘ƒµ6ä^œÑ†6G“áDŽ­‡‡øc—çO,cɾ‡=ÌãúHC¦ç.p¸v“­ÝãWN²0YâpÕ¦ã1S“p°‡?›áòå%6ôÙzû_>IáÔï>XåðhóÕyòR•¦¢¢)Ä£.Bi;í²ù¸Å3çPŠ 7ߺƒ!•˜>6ËX³î40J 3u-‰íq‹• Ó)qí•©,g-°õp»i£B±HYòдc#eÐ>`°Ù§P§:o2èŽðZc|!¡ +„i–R ÒfÀº£S/¥¨‘K86¨Ÿ.3P"ÚoÞGˆ öéKä,Ýï?F¥‡X:‰`D8ɘ02Qå˜p,$ ‰®Œ1MQžc”:d«tE¼tŒ>ª5²Ù qj£â!’e‚!®lp÷P;ÆÂ4ÞØ3F— „N€$= Ÿ{ž…iz¤±‚ŽÌH“HÀVÈÅ>¡ä$!õSúÙ–‰|Ü¡AKPÖ$,úI€êeA–Ð#!@ÐM<Ϡ⨡­!åò’ÈÀNé6º!ëpÌ.aì£ÇFI¤7Jé=ÊÙ,eHÇVH5Ëó°ñ0D_OÑô2®Þ$[$‰„•‘=“^‘è’MâL ›î Bðô¼IEd%M"ü¤üSžæ«åi`]Ó Lã©ZeY,ÓÂ4MtÃÀKeV]šº™ÛœC RR±ƒ)J8²ŽÙhŠŠ’׉F*I¶GdQd$OÊ  ¤N#JÙÔÇ‹3h¢IÀ_ˆÉáÅ.f‚%ŒÐÉh>‚ï3Nʘ9…˜áH%Ð|DO|ª$Æ1a,áëØj(’ÍšOG½U‘À‹)ˆ ˜ â’:YÚNB{œ˜Ì#™:›ûG¤²J-Téj>Ý8ÄLE2ˆÅ;UE‚ñÞŸ-=Cƒ)A"gPUˆÅHå 5‰ÓE÷ñåB %9Ñl ¢IQ+ ©Gv"‹\b`ËfÞ@$ƒ3ì#:)‘ëé‹Äᘱdžf÷ÝïýäQ¹Ó‹l®Òó$N,LaÊ »;;TgM&2'xxøýÕ.}ê*ó•)îܺÍVã¯,žcîÔ1~tã~{•ÅcÏ“Ÿ™açþ:qèSªÎ% ºaûÛÈ©ÌÉóËè9µímä^@njÃu9†ÌMäÕm÷Bª+KÔb‰Õ›=<ÉE”"ê…<•™ežÜÞ§Ÿ9à³ç^a»ÈêÚm§IÊEZ]„TäìñÃý» ŸBmh˜¡kV91Õà ñ;Í}²¹"• U¼ížä¡åJ$¡Í\^õfh öQ¥˜)Iâ¡ã2|$sòÅ ’ªŒÚoã…¾SA³f‰rø£!f80™(Á:è=ð¦cT¹D)b‰"£q›££˜ \£ZQ™ ;ì5"lGÄÊHôuÊRs}Äõ5Ô“EóË$ÆVÁ*ÀÎÑ€aæ>#!LW0öÍb¢4I¹¢pûÑMr\¾t™ºi²½±ƒ'‡”ô‹ä£„GÉ6IrÈd4Gqå¡qÈwï¯â>hòÒÙ"3s Œz ÝqŸÍÕ}rJžÙWh®÷‰º{¼RϱÕÎóÈíS_I™Éœ¤.TèÆ‡\žX¤3Høð£79uþ /={wþôÛ£CN..QÌœ ¶8Ü[Å@¥|Œ^F¤®æ8=Säo}‹½u›_úâsh+§x÷;¿M¾¬òâä ÏÕ^dþÌ«››|óûï£ùþO_~…$¯óÛ?x‡Z”çÔ±vkŒ²L¦˜ã½Æ·yò Åßý¥¯R'ø­nR9ŸRÜ;Žqc~úïÚU–”ãì¾CßðÉ„§ñ×n3l.ù äª|ûßüÝíûüÌŸ{sòÛ·os‹3¹$Fªå°ƒ”ýQ1”YÉÍRT|RUÀ;>ÃwoýˆÛoßãÚkW9¾hÑÙŒ(UV¸³±ÁÚ;÷8}f’®œç½‡¨CŸÌì ânß2{æ yI¢±½ÎaÄâÊ4µbwS` 7É GaЗñcA0˜)YÄRÀac@hŒPæ$¢*±PV(Æ£L‘Õ›7)8"—?wŠ{w6ú‡\zöó4í˜{ÞcÑœdzeo¸O³åB4t‚|@*Ëå㞀•-ÖŸ´D®[ Xžb¿wÄàÑÜ8djþEU vû.öÐg¢® Æ&C¯…*&Œƒ™²‡í…D®‚Y)KºGãñ¹bYIvG„E‰¾¡QDÆéSXÈgk”$•x|À£ Bó^˜-ЯÔx´þ€‚#PYÊa+C¼m‹\V¢ã!) VaÁKh7îaä,ĉY´Ã~³‹3Q@sd‹d°Kk4¦\_@R<ú­!’ÕD”Xf(É@"õé‡ |%$Sœ8ƒ—õU6p“§ÛµH9)!ð4E#BFaˆš$èR‡ D Á 0óy©Æv»E ‚K”F ž2>aìãû"V ˜&ºéáÄ!± ‹T¡ƒ`éäF6}]D‹-\Å#N]F]Ÿº$á2ž£Åà„"’"RP|‘ƒ4±²:’ã = ‚‡”úŸ¨V }Òœ.ËòO¬@Ó0±L ˲0- Ã4ÑuMÓÙè¸<Þì3v]b-%R$Å„ @Œ=›œ?XÓ'.£Ä¢”5@däLФˆH‘B$HÈ8øÈ‚^ $H ðɲ”€'‚þÓ‹CAæ§W„‹¯¼È “€¡T4P͈þV‹ÁX¡z¼„ û’è!© $'ÍÀ¶÷ ›š©²PËÐ똂GË• ÞÚ¦›Ísìê"gæ=÷S>|4&›S]™ ÔK„ᅢ»'a}á5´ÂÎÍä gÑóQc•$Îò̹ϱ·sƒï¼ó&—®¾ÆK—'Ù||€”ˆ¥Çl¾+süÔUªõ÷cfα´p_ƒr×áúúëý§Ÿ?Éò¥HßÚáãCÊ'‹”ýcôÕñ¨É¼‘Ç‹¬4(ÌçÙù,wÞù>ØáK?÷9~þ?Ãoÿáïóû¿ñ§¼ü© |áÂi:A‹›o?¢’Ê<÷Ò)‰Åá힘£U©¯¼Æ+/¾Äíoÿ~ûë\ùÂs\zå G7ný1V2D+~ E[æ@¸Ï¤ÒaA{žC\q©ze¶ÂG7oPB¥¸´È÷wߣn§üòg¾DÛmñÁí]$ÕDLêyÅÈÐN%Ćkd9ûB©ÔãÃoðÃÁ>՜̯½v–^<Íïn¿ÇeaÌñÞYŽÊeÆEš-ܽ5Ü‚K홯1ìßø>çóSä^^a3²áÎ-L9ƒŸS°23”g*ìn¬³³µMmy‰åÅI\m—Þ=OJUÎgh­íò¤ófΞç(çÝ-‚üf>G-e¢²À½íÄ»,®N/ÑÈŽ‰ ú*‡­=&çMÎ[Âî†Ü»{“ŽŸp~q™rY¡µáÒrŒrB쟙J®F¬Ñ;:`q¥ÀÊéôÛmŽ›czþ,Ûk¸òÅܹ´ÂŽ GctÍ‚áWØ!“\¢ª©Ñ¸ï (1K/a ØýîGâˆÙå³Ìvý6ÎH§*Xà8¤‰LÓH(¶±Ô£¹cÄýÙG,ñ–ïÅctTdE@H=¢fC éëFT@Ñ\ †ˆïø¾ƒáŤ¥"a`"ÅcŠ’(¤ŸØ¢(!˪¢ jO3VVÆÂ43Oí@3ƒaèšNŒÀûØn ѼUˆ°³qZÀ ZH© ™Yˆ†(²‡&V‰Ü?õÐEÉ‚ ˆ’œ¤¦±á¢k2£0 KŒŸffRòþˆXV |‹lœè6©« èã( §É¸$D¾ ¦€3ôQ!«Ð ,߇Q€T/#Å1cÛAÍAâHØq–ª#>mUAFGqRRT̉ê¨ÌQ3f ™Z¬aF ‡£> ¥Xa¤ØYqèQPt\bt`ôg¬çðc 4%’äIÑÑD'R±Dçic» #„¨O™JžªUÂ'ávÅOÔ¬è“Ïðé÷[ï}X—^ÿ,R$1²]R˦TM A‹èµmE Ì(¡B²¹IüáA³‡™·P$‰0PÈ&1cA#3¡7¢ÓïÒ~pó'j‹54£F¥®Òhîˆ:ÓÇÏÒî¬s´Ý`ª\¦T½Äfg‹ÝƒmžYš¥T[à½÷?"•<{ìE†…O‘›RÌÙït öFÈ“Ùb’rxh“¸Cr'ÎSº¬Ž¶hø:g'ɧ›Ý}¤ºAâNbÍÇÁdJ,£Õ2ìn?`çq‹zµ‚¹x’•\B«árû­÷¦d •3ÌÏ.Pty{ó€õ{Û\^²`¾ÄéÙmò¥gˆ +¼ùýߤ«ÔN>Ç!#êÊ:K—¾Æ£îñÍþÿå…?ÿù•Ó§øÆÞà훜~îU4E¦• H›XŠAâæ¨=»Œ)¸üÖwþXã ¿ðÌ)ö& ž¼÷§Ô„)–_»ÆÑÝ{|¸úµìYæ§hJ:5AÄÞj°ºÕ³jœ˜¨ i&•ú<;Ò.oüÉCÌŒÄ/|ásd³ùÍïÿS8þίþ%JQÀßù¿þ—´Eþן¿†Zÿõ7þG*—^â+¯}™ßÿ£ï°ºõˆÿñÿòsÜ¿¿ù/Þᙯyéê,ÝYÖ6bMI,WLZ™­–ÃrÝG±K¼ßXãl.æg_|ž;žÂŸ||é°Å\i‰ç^_¡£÷ùƒ7Þ!?®òÒóÏP]òxô@¡0Q¤sô-ÞÿÓ¾úK¿ÌÒä<ÿþOßÀßëqéât¹„Rês0™Aì„H?z‹£)la‘œ“J.ÑÄF~†½[? ±»Í¥Ó§¹ræsÁ¨ˆÆE†Íwhbp¹üE܉ãUÆñß9r)íóů}‰ù‰Y¾ùõ?&LG,ÎO°çw©-Ï0SŸå­Õ $W–.±!ÚHûÛL.,3YŸdãÁC:í1ÓóÕé œNʶ등º]‰œ•¡4—c8´›1…\Žq¸ËAßÁ\ZBˆø]—bvD ‡$Iª 0î°ðò§hÙØúÖGœ9ö:ú½õ.U,®œ=AGÙêì³iTò3<îïÑ95y c¬q <¡Z­2ììpñ‚ÅôñÓllvÙ}x—œ–çX%GT4v]<ÿ€4“×ë ‹ $a¯Í(S£lÅäZú¾Z3‘‰ÎáwD©T¦T*t»4‡rVEÏ¥¤ÂŠ)ú!zj#F.k˜ò@`vºŽ[Ìrog—¬/3¿œ¡&ôÖÈÅ¢a`iNf’²e0Q™­®0 h7~„5w %S"ëtè7úD…<¹R‘ÈKqš!I¹K6_ÆêkøJ!UIÌ¢¨“uªr‹C'&hJÑû!©oÐFL æMºª†Ø‘ú*¾ù±— :6½‘‚ iyÈ ÛŽD4êPW-d1M$Qt¾ƒ¥x(b‰Øv *^4BADUTÚ¡OúX†Bk¤ùM²ð“&ã¦e ³¨¡¸!ݤJ™R)&‰?d4v@Ô©«’ÙÁ’<Äg­ÄO²VŸØŸ†×M¬L†Œ•Å´,LÃD×uU¥7ðøúV“tRy8²K·š#ÛÏ ÐGˆm:Z1 Éľ!D)!*F |Ä8ÂéçQ³6Q¢Æ ©(I $  šÃ(%TT4ÁA°M¤4e¬è‚OdÈJN¢4ጠ;ã ¢`“"`!ÅCÔ¢Šo'DžlX„¶ƒ§ ˆbBAÒq¼>BÊj–|àÓ“ŽÐ¥ T5 m†ŽJ ÄX¦Â¤Ñšx:’‚ä ”§*“ŠÌˆÿÏÖì‰gI…9‘$É”ÐPžöªé.R‘"12È ±z ±ÿt.'P!A ?) ?Éd¥?…­ŸÖâù/a–R0lš[.a(±||9ÙÛï3nQ&&29t¥ÈØéà5$š‡¥±ŒiZÝGDÌÍŸ N4¶¶É—j4n½÷“G©çÎ3juYkl³rê4SS'¹sëú› Î={…ÜÍÃ[lvöÈä¨åJ ÜôP€d ɰIœ&1RY'hvÉ–ªdƒÍ½ ZC—ó³Ç)׳ø²Ëû«1‚—êl»9,qHÙñ¤›AÖjdð>ÄM”a¥¦R\Ê0^#fL–^˜âÃ?]¥µç.ŸÄ,Oñð£Ç„™+ Yáœ^„”¦è { éÁ ,ÉôƒÇ8g–aV Ü{Ô!=D+V˜Ô—étev{û¼r¶†šàÖ߯tC^üÙ+x‰EïÎ]¿E;Õ™Î*dª)ã#…î0ez©BÒóñG!–"[æ0ú(~™Z7&žÏcDJqE˜ZL¥´I7 ‘ W™:ê°³÷±Y`r²N!”)¨!m¿ËÈ×;Cê3* “StmîÞß'?3Ï ÏOðäÎãŸúôeN_=Ç­ÙÝ¿¡Ïqáä<‰ï°³Ó¡`y¨ÓgÐõýÝ Ö7›Hõ„ªª‘ºerçòLNj¬¾û€ë÷W9}ù_<¾€“5ÙÚüq§Åá¥EŽ/-1×Þ ?TèMëäcîí¯Q¨Îòåéi~{¿‰g'üçŸ}™Õ½uþ‡ó—¾ô2_»v†~ï- 9Owo™³gj&k¼}ã WO‘ÌÎÐÑûd±4M¥9ÅNx@½’Cº¸@|ÐåÖÇP y–jäÕ)ú=ö„1EÃAv,Rô%™þ¾Î(pÈÎ…L$*›-ض©«SÌŸ˜£wp‡õ–—ŽaeNò`cßìqåÌ9ö6·ˆû=ŠK/Ót:¸íz="ÜR¨]Ê#Ïi¬ÿÖ&¹g*¸NJpØ#W¨P_,°¿í±ÝÚdr1ËBvšÝ™:¨Í>Ä"‹—Ža°¶×!è(V„‘Šhz#‰Ù“#ôÆå\Ð*ûôÀLB/E¨”)åc¶?¸‡-U8ñìy2vD{}^âQ-/PÐÚ{CºLöÐ#[ÉÖÑvŸ :ä ™ŽPDG­+<éÚà„ÌeªŒ !ƒÎ!yÃ"L' z¸nH”›EM,+f«“LŠe‹^¢Û÷pÔœXºX#,[à B¶Œ•†ìÜþà'JJótÛèi‰ÅI$¯ÉÎ^#?AeaÍtÙên11ÎaX˸u5 8~,ƒ.ÔñR“ÖÞ6¾ÜF-ÏP¤\ÐÙ‰<cƒ%Eà`°Áã†ÉóssL/©\ß둆Y¦T û`—æ0¬V™83EÚÓ_=$®Ë\˜¼ÈÆ­î®~ÌäL™…³Ë(‡ ÛP 9;9Áv3¢l±8{/*2|bS1Ì yׯ ^¸z’‘­ðî­5§³d§ë„ý>ý®AˆŽ9ÑÂîA·5À(çQj%$b¬Äâ ß¡µó˜‰Ú1„¬F¾ßÁˆÀŸÏ1<è#….“™%Šó> ½›pÌÙdó(äüò9²šNõ[>ý=ȶ"Œ¼NX,“…¸†Š¢ûÄûm¬â רßíQØÞ#šœBž+³¼hȬ½uƒoo|ŸÉk¯òç*.,žæÿñæ=^¿ÏÏ>“çØÒKüÞÖC´w¸üòçQ˳müë<óÕs(ÎCr“Y¾úüçùÞ›Âßÿ¿ÿþÊßü«ü¥ssüñ›k´½ç.fˆÛ2K¨E™[»ßCE乩˜¬œ¤9¼Áï¾ý%¡Â_8Å@“xò'0Îd™š®f—°² šw‘(3\~m¿rëÞC¢±ÎDYÁÖe&³Y^ž}{;¼ñƒÇÂñ%~ùùkôýÿæ_þsì4áÿ½_£Ý¿Á¯ýg¿ÂÙ×þsþöò"÷w÷xûöÿÆÅWÏ0»p™?þh/îóék´oy¼ùøµãY^»VcõzÊã>gVta‚÷·î³œõøùŸûÞ¿góëÿÛ˜Òc¾ø¥+Ì?7Á£š|xûÓ™ ¥KgÑz]T‚­ä!þV™g?p²ÄÚwß'é=aùìŒâ4öö>w÷XªÎ§ä”`¾Ê–^ÀÞm“;ôЖH¦-†[é?ì“_œeéÄ­Ôcíñû-™Óµ«HV—>‰[E:jãŠ.'οˆßqùèà}êÙ8ªr 8¼x®NzÐå{o¯S:7Í™sØpczzÉáô±T»ÆŽ¸OoÜfZ?Ç´Uæ~wîÝ]ª§Jœ8q¹±ôP¢â@")g¨/ø»:ÝÖ˜Ùú€XÔ8zÔF9|Ñl"XûäEƒQ!8yºŠKµªc%yvz›d7˜˜y}~‚Í›t¸´tšò…[wö;,\`íIÌ‘ý„ó‹Ó”Ä ­½5‘ŠœúD6º¦rìê ÂAÄÃÕû´Z}–O?G~"bok‹t,#NHĉ‚i'ˆš„*‹Œâ,Š¢ ìÈ!ˆÁrL8C†¤ä——˜LBÖïoÒ|òUƒÉ‚NÉŒS¯o3PÐ+ø“"£½ E¡¸Ä½Ñ}&ZK3‡ƒ”´/— ôLÉñ‘Ÿ¶> m²i µ0˸?æhçI!ËBýΨOck—zµ†^׉5 ü”¤¬£`8¶èRÖRWAÐsøB?±±Ò"aÆ ÄH¡ÃȉؓFÌŠYDQÄQ\ÜAUxÚCäg4/b%„@Î(ѺLgaìãí^À„¥&©¦£s„âHx†D&)ðtÅ= Q •A$µ;X’†§šD^€–MHS—´­’dm†¦H!΢x)}%E.äH‡^o€¸ˆÊ<3”Tñ?²ÿxpÙÐMÌOÀÊ´2?ÉZišŽª¨H’Ìõµ× •!YO!†8¦‰AÕ> £‚ j(q]“C¡bÐóm,/‹kŒÐG!žj1vbR«ƒåH%Ý³Ñ 2£ Äv#´jž¢’’öZjH™§^BŠ‚‡½÷ð§€µt‘$Ž‘L §K’cE"9$EDM1Bô£§4%$OŸSˆÓ?³£-þÇ%§pãÇ!÷ùW¯a·„ JiJ…(âðpÄxä29Uf¶^!NCoÅ6FTÀªæAÑzHc¨LO¡È!ëO¢ y&çêtÚ=š÷?úÉ£¶59,2»8Áþî÷<^¸t¹ùcܽ}Ç-NÎ^£Z2ØÞ¼‰’ËQç Ò§ÐF¥ˆ‚5UT)¥*÷ŽØß<äâé%–æO°ÑÞc4ì3+¥”'EÚÝ:íƒ]ÉE«Ï"g'ÐÜ€ÑàNÙµ™ ÙX``wø:§²5îùû>>àÌRÊ3ÇØ¾~Ĩߢ|úu©ÅG7Q°©,–qGioŒæÙ¸¥<‰—î°ÅÕÂgé[c¶û·Ñ|%›C)„fÛÜe¢ ‘ÃäÞÿ˜Ðñù/¿H®œçÑ’q}6OZ›Fï>ÆmG†u¦çu£ËÑÞŠP£¼±m{Ac±ÇÌÌf\fÛi‘Õʤã]ï£åàÁQ„$U™ñzƒ52s³Ô*§ñì&Ž0F††ƒf½c~r5ëâ cvwX¥/¾þ µÇüà›·9m™‹Ÿ:Ëý‡GÜ{tƒòÄ4/œ¹ÆNr½÷°Ô f^YdèõØû,ÁByvŽ¥ì ’Í#ºr wØd4n“éÏ1ÿ©Sx§ç¸óÆï¿÷=¾öÚ§¨›Añ2ÙîMš‡Ü žÏNÇ*ÍÁ——æé üÉ­ð|þˆ/œý·»ë†ÄŸ»ôÇ]þáïþ ^øâ×ø[/çÁácnߥÎ£Š ”³ÃÝ'x]‰åÙSì…¹צk´wùøv—©éIN>sœÝ£ÃAžË'³¬ßø˜ëë{|éË×X˜^ᯓ<sùÙyz¥”Û÷nP¦ùìÅìÌ!ßtׯ’Q—ÈiGȓӹÓl„Û^ƒúÙOq´ƒ~ ë´Âk/ÖySüàú>j¼A©¤sÚ8M·-ñþ£,žÈ³T{‘; „Ö&KõEî†TÔ#¾ðÒyôËüÎï2;|Èâå9òÓ5 Ý ÛOÐÔ줎•KXQžÁÖûüéÂý°À_ùë?Ït^æ7~ÿM&j1Ÿ½zšûvš¥ ,Ê&©å²Zª jŠ[Øž8÷IÚ¢}ý?og9öÙ×ÉM•ÙëûXÛG4Û#‚L¹'H§ò¼õþ££uNL=Cni†Õáé ââ6ïódmÈ/ž=Nn)Çï=¡éÚ¨¦Gê(œ¿ø3,.OóGïü>‰àñÜägYÕŽHÒ„cy“ÆhŸÁöˆé¼AéJ o[gÔéc[åÔ#pd\C¥º˜a¼kÓì%Tæ†ý ¢?Ä’Cºažj½ŒæõØn“-Nsjê>xò!²×åÜÂ%ZN›'k·˜]xެYã¨ù>Y9&K¸=—ze‚A½‰Êñ:Ý£ý¤JŽSg«ØžÀƒïÝB1%^|é2aOZÛägtv7¼Cç-ôÒ4û›mz½¥l–b®ˆ›uá eÿÈÆÖ;›©b‰&Ã1A§EF¬‚©˜!ÅÔÁï‹"êü<9Žö;%‘éZ ob·z8±‡O’7ü¹2Ý~k¯M:g¢{%’@&,âtÄ8daB Ƈ B2¦ë$I‚<^'’*XÙ |g !±P, %o&1^Š‘†( )Ph‰&žaRïöé>êÔJ0Âno:ÌìÕ tºm¢ ÃHõÐ=›%u ÌcåLFø¨#IQ0³y2ô¢Xâ”*á öÅ-]“ãb€Ÿ1Li@d‘è#DÑâi'E7-ú¶‡Ž“äHô}TÁ¢9Ê¡c`LHôœˆ¨å€ Ê%YE$Õ#ô À@EJŽð•yÙÀÒzÈ"?+I‘UÕ1Œ§v •Ébf2XfC7QUY–‰øáõMž´»H1d=Šc(•PcgÔUEG‚ØCÌDÁ‰00%Aòqü=R ‰HI1$(Ò1¤1ñŸ^È9ˆR×Â’‡²NDL(cŸP’qd+éD!9]Ä Dš©¦ˆ£]WðD…0ðÉä|‚0‡â)„¹>Fœà{*¡ yUBuH.5ˆ 9ÏÁ·¤ŠŽ©(­¡¥T!Q³ŒG-¼¡ÎDVÃÊf‰;mµ@"É„éS òöîÿ°V.’È ¦1¡d"I1–,‘ŠæSŠ+Et¢ D°"U!Dñ§?†,Y/…;oÿÄ"| Q0Ѫ š/“$£aÂØ‹©Z&SÓEÆý»‡ ý…cY 9Ó’ÈÊDÙ;"uÉäVpwû³VfïúOCîþÄe¦gêìõ¶8xÜdvæ4•… Ԥϸ9 7Ê¡•D²ˆHõˆj¬ÐÃbgkÝö™<_$—ކd´ÍÎQ3™˜œCï22%¼¤Bö ¯ù<ös_Ê1¯êüp}•Øyu棤ÁÎ~‹¶¡2“1(cÑpZ,ÏN1SªðÍÕ‡ô7óêëËL-^¡ýA‡ñÒ¼Àl٠ݳènaM$LXϲ³ÿ„dü€•«WiŽ<V7¸üÜI¼ŒÆÃ÷ÚèRžã'òˆÃ1Ov,±ÂñÙ"z0âö½'X™å)•­Ý]æÌJe“ÛM2BŽ g&8´cz[TÍ ­1G6+'ª 3"›­.©ÙI„ŒÊ8jâEJR¯¬#Ûvëˆ$HHº¹ ôiv;虵Y–ÒþÓqZ3‡ †Ü¾»Šã©,œ­355Aoã1››=&^¾Æ\¡È惷Ùïˆ;=M¡¦Òë%¤q“£F•é$¢z¾FiwÖH5ßÉ÷B ‚ΣjŠJLcÌã‹D¦Bg÷i½IkÜe4›ç¹™9~nùÉ£7øë¿óÏ ¯~_[2ùüÕküæíû\ÿ'ÿŒÚÕkœþáF›î1{æ—§'yøäžšIfùàöÇ;5Ïõå—xó÷‡¿ÿ?¿Áö×¾ÂϬœá÷¿Ó"nn‘=­ØpaéYDÑæ÷îü”$çN¿ÊòÒižtïð£ïý)š?˩˘¹¼€8êpý>¢)h\úÊI"%fýMòf޹gçéÙ=ºש‘u‘É=æVÎp~ê"ïýáwùí÷þ-/œ:Ëßùâç¹Kÿùÿó9±ô¿ú—‰Õï¼Åÿþáÿ¯þ…¿Éµì"w>nÒØø˜Rv ¹wÓ}äjÌW§¸þ8â{÷öùܵ:•r†o|÷‹Ç~ù+_åƒ]ü/þ„ky—¿ò*FIçÉ“=Þ?`ùD•¥Ó:+®MöÙ¸¹ÁnÃçWþê+^™?üøc®ä› KØÎ$IÒâöõûhÅ/}î ¾$óþwñÝç¹ç^§øÒkíÇþà>Á#˜¼ZefÞb› »Ž8:l37“á™…vã>wö:äFyʹ„ñ± ®…·yƒÙI•„9®÷cf§lÜ› È|ö,Ë+;_¿E*å(œ!S¨ç³l¿5àÖæ;œ;óÕêë»»ÃXX£8]áøÌ%%å·¨•ÂIÌR†™¼J·áÓG(%ÐT4.B$âdzÄV ¹cRÐ ŒR Ûi31‘Dz<Ú¿9=õÛ±ËÁáMJ††¥OSž©Ñ‘{<º³ËÊÜ2“F7×>`jzš•SÇmvèˆ1AêtZ˜†J²P%§—iml°ºµËÊÉK,›ãþá*ÞÖVmO wúdêY zuß%Ým0«[HÓ‘M0T‘S™Äi¡LL3™qØùxÃ0ËüÙy*†Kc{Œ›úè‘„¢Ä”*%š.‘KýØe¹ûø» –+“8ŽÎî°M±–%U²à‡Ž@—¡XÄÊÍÓà¢Ñ‹S¨Þ.ëƒ6Œê3Çlº1µ“C;¡Ø±U± ¥ÎÏ0‘âNpdÒ"š&r˜â纣 aŽRN¥áK%Q#‘D©CÛu1B I’q²2ñH"§zøa¯:ÊQ‘:¸&5TÑ&”|ÔAŒ,¨ôG3‰Ñ½C)p¤»¤þ…°ˆXI†)Ù¢ƒÞIH“„ š&“MˆMÁ¡+„X‚J¶;fdŽÑ…æ¼6F>ùOþ1\ÉÊOF—MËzZ½`Y膪i(²Œ(‰ÄIÊ·®?¡á¶ÐS“‚"Òl„LžÄUÈÆ!±jã¤:1)¦„:*Rà3ÖE %FT!NRdC'FJ€dèx豇 +xi†HôˆÓCRˆã< QÑP]ÏUÐРÇx¶$‘SC"†ªHÒŸPÇ•O½ÓñJ •Т+ØørŠê—1• }IÀpOERDÄšˆ&FèA†¾*£â’$I2¢cëÔ2 z6O£?_¤dA*¥¸Û°Î]Eð="É@’",I&•-¤4}šbÏÈà$º$9 !∠Q‰õ9z RAðC–,‚€¤Âí[„“§>C©h"Š>í¡G0³(R¨çpdæ^1Œ™¨HˆB–q$±`QÈæý‡6‰8Eµbá#Ú}—¼žcïÎO+¨eèw4û¬,ǬJl6鎚LM§^Ésoû¾siå~˜²»÷¡Ÿb4t­Nm>C°9æÖvƒ°çdÉbfªÎASckkƒi³Oib–Gû#êžL>“¡­‡d+ÓÄ­{‡[ä&ò¤‰AAב…»m“Ÿ(£2ï?0Ø^ã̱ gÙoÙÛlSÉŒQ¦§éö†è{•¹DM`}ý»hÕ *3'éo=¤’LŸ}žÃÑ!Íûw±’2õã3´]/MQ *Ž1„žÌaó­j°2™gäÚãÇDƒsÇOŒ\†{ôê)”B™ÖöÛ :ùâSFA°ÝÚCòuJ‘J¾PÉÌpØjÐ3Î¥%Âñ:MMF‰& ÓRËâ!KR=GdÏép)g‰y¶6m¬XfrÎÁL-:G=zc™‰z……ºÁÈùø;÷YÎÙ\ûòϰyà±yóMÂDâÒ•SxšÌíï¿ÃbmåO=ÃæÚMö¿½JvªÎ1m†ô>¡…”fMfõ â4ÀO Jû´n x¥>ÁÉÅ<Û ‹üÉ¿ÞcýOþˆ_ú‹_ÀDäÏ»Â.|ïíßbaÚ`ùÊˬ6#ÂÆu^={…êò%þo—Ã'wù;_þÝÞ!wëk•ÆÖòŸü³ßàõŸÿeþî³§øÑ½›Ü¾ñW.¼@A›gßß`}}œVåÔé“¡t%™›w‘kgVpÜw›Ο8I)#óÞw®Óï¼üÒ+XǶ]'Ó@žšäQû:n/åÊåg9S®óÖ²¿}Àµ3Ï’Ê“¬>xÀâ çÈy'xüÑm*§uV–§xüÎ}ÆE¦OéHA=ÑXóR"±Ëå%†yžÕµjó:¾v7«0SÝâ¥Ógy0¶øãßz3æˆcÏÎ21w– %ÒÙY㣭 ̉*Ï\Y&l/±Û¸Ccý[8²ÎÏ]û¸¢À×ï}‹¹8Ë…3çQü ÷¯ÑE®.Í#"¤6î†G½Û§u6bz2Çqožhí]n<ŽÉ­<Ë©ËYì­„½£ÇØI±8Ãʼn9FaÈ[›x­—NVQÎ^amõOzñÚñ×Y»Û厽ί<ó¾ßäß½ý³:ͳK:Qàæ°ÙZ½K9WbåìiGgsï1á`ze†b>‹Òs[ A}šÒžÛ(U£íEV©žÍÑiJDƒ#Ì’OÔNé&YUC2Å:’ÒÁ{ò>bi†YᣞM+ÿ„ùì2ÍtÄÁÆm¦­STfŽsØÛgÏnR›ÉQ´ ì†]bÏ'ˆŒ$²SCòF†.œ¬ZØ• ׿þ>ZÐåÚϾ†ïYì¯=AÈÚÈZïas¢r¢Š¸î³zx„(©O×ÑJÐØï„ ´ÑNL#s®n2¯—ü§¢¸]z{MQdêX 9vUÂiCÕH÷º™ÌRŠ2Ö°Rƒæ´ÄÁá6õAJaºN?QQNÀM]2n‰rzI“A„¬™=1‰â„ ·V‰m¤”£ZØ;ð©êu²E7·ð‡ÔLŠä¢Wsô…p8¢î…De '("© ZD®ŒYœC*êˆÎ;¾äëXäK"Ýáèi£zÖBVdÆ^‹Ä—ÑT ÍÙõ\5²&‚²Öà¦2•‚€å±S=kã5T$b¢œD莄¦»dc]”K>¾7FF‰†’j蹄3`àëHšž-’± $%ÁMÆ C°ðû>qvD’–ÐM—¢"ðSåJEE}:Àlü4oeZš®£ª’$!"aœðÆ×i·cy€$BÀ‡ÜÏ|é‹Èqˆ3Œ»ˆõj…J>Oë C£ÑF&¡>=\0tº¤c‰jÕ$]†#ä\ -“Òëv)‰:…ú Ãࣻ?-Ýð#öLΞejyØ£»³G(L“ŸÖ““Q2 [{C$t&³"c¿‡›1UÉs³!=G¤,«LÖ¾ÝÖZ~’ɉTaÄaó€x²ÂÅÜA×åãGoz‹'¯2Ÿ3iŽðòbçîv»ùˆW¦|v–»7vo<"»R¥N|{ß³9ýì9J“9îÜiâtv95[@µfØon#,Íqb6ÃÞÝ6¶'0qÆ vû‡¹ÂñZJ>ðÇ÷®“K¦xõ…yü$©`ñàè1ã¾Â™³“d2 w5‘刋“DNŒ’ìf²Õé ':Õò¡Ý$UÚ$ѳš9GC>Â(#W5Ùom3W=ÆæAƒæ Í3‹Ïr¯»ÇG7öÈXur ‰sD:Ö¨œfBQy¸~½VHñħ–ª´oÝçöÃu.~î3”¦yòè&‚(† Ù$C2a#)·B$uQ3uÂnBot€#$äÊe*‘…øqÕÕÈè)¥éyz§%Pj·8­sCÕqÍüÝ_|\ဿþßý—”j \ZXä‹Ïœãè`‡ú‡ÿž~¿ÎßøÒ³ØâˆGÛ=&k :SñˆCi‹ÉÑÖ³ ûµ¯qûïóßýO¿ÇŸÿÕ¯ñê•Ë4<‡ÆÞCö'Vy}i %uù`ó†Q-œÇª–ÐeæÑ>«on¡¬Ôø+îuü ÍwþèCÇäô‰i« Òû§ë±Oèìo¿‹-¨µ“ô¶8ˆ\žñ._8Åïýö¿á»Þã~ñWøÌÊIÞÙøÇÀùcW™©†Ç«w¸ùèÛœùôEλģ۫Žö¹:[ç‰[du¿Çë³=ñ¼»Ne®Á/ü…/ñÞ]…ßù‡ßdq¡Ç•/¿NÆÈ³ùèÞX!Ǹ}“ù‚‚6ª“ØkÝáN×àÕç_!¤Üº±ÁByÈųÓìlM°?8b61Ò /Ÿ"ƒÀÍï¼»uË¿ø).­|Šo_ÿˆ»¿ù –N>Ã3_8…]l³vO¡Óqð{Gd'R^X>Í84ùÎÉz Wg*pª‚³/Ò?Øå„–cË‘ØPæX´²ãuzýizS³(ÊãÇ²Ò µ39’ÃÁê^ÛC«¬¼zŽÌt‰~øVÊç.fLY;*r9Øín³§Ú,O.`• t{ ¶sµ1†â4'P #TèMâr‚)¶e A(á»=VêYJ™y>j~ˆÙÝãØÜgiØ;rzrI›ÄõªF½í` 92¦ÆÞÞ.Ã1×Οb)Ÿå­»ë¸­'X9Têäk1Õ©*ý­17nßf"Scé Wé´·h®o1Q›¡PÑim5P³&z­„?Šh?ºÏÌ¥“LÖK<~rD¸Ñ!ƒ€kBe±Î¤·n7hÛ"§_;AÉöh<|B;k0+$ $YòxÕ!?™a~e†f?d°³J5¯!éuFv„¯†è‰‚8EéYÚ#‘À ˜-Í1ŠGŒm´Ü$Ž\!ý­\Ù D”¼³^¢õâÕZÀ Ø ›˜IABQÖ…P¥.Ä‚D3òIÇ.åQH jÈ“9ÔÀÅëû„™ 7ŽñeLÐû‚Ó@B•l ‰N,eÑÕ1qðth9ªŒ%›D©¢Ù>±¤2Ö]wŒd ¨a„g¹(‰IQÓÉéöÓ ÏŸ¹TT]7Ð? ³[™,†a¢iŠªü$›Åß»±Æ~t©ƒìðä˜D‘ N ãágó€†$EŒhÐ>¡ê' ç2DrDŠ8’)%Èi'ãcÄts(YWÍBè£ >:jš§)¾-’Óm\Lœ(ÅtÉ#°EÆRS Q$-rËybÁ&3ˆ‰s^ Àp„ZWI¼}¤c×ð|¬$Ä‘UDIA‰md+¤MŠåD„q€ë„Ù”ÐÄSÊ»%Ü$]GŒžVŇ‘CØ 0ä,Æ”ŒxÄ— õÓ VýÄy’8Æø1\I ’$ ©cpƒ§½V†Lb§ˆø(HD@„(¨D$)dTˆħ…1 ‹pãOë⋟g‰ G²ºJ¶\D6dzÝ.±7@×Db5‹䣄Œ”Ã5€=R¨ÎcH ¸<|R!ÏDVa»ÞúikS,Q4têsU:£Q4$Ž¦Ñª2Ã^AÓ˜_®1:p8X;$”ZÔg–˜_šÅµ:[{ôǸRžkÏ,Qð}¸$„Øaƒ\‚à4ƒñ.ÇOˆø‚EÏ6(¨ŽÛc˜öŒIöû>+F‚^- äò0–Y;Üc°{Àg®N£¬Ì°{»Ë°s@6gpbyW Ù~8 ^‘uÂNHoÔ#[XÁí¶õV©_}…hmÀ‡ßâìñsL.LrÔÜæ°» ê˳šN{ÌÜLNiHãÁ…b æ²4îîRÍIó"ë· eê—Ná66qŸ´¸pí*ÅîÞ¿ÅÁÑi¾À¼)SÈMÐ;ô#±Xf>›'ê7Ù–\3`J˜b:WåÞþ|IAÏ,0ÛÂÔæjNb;ÊãF—ª eKgWUè·[(ŠÂl~‚ÎÁ!ÛO˜>g±Xy†ÄȳsïîÚ*§Ï¾LºXdó‡ïÛ)Ç¿ôÝ£»¿ûήÌ2ó©KlV‰ï>!¥ÀüÙyTÉcØØç¾¯à„)‹¹Iž­CIäëWùÁ¿½ÃÏ?w•ŸU ŽÕé~w—ßøð»èÏœàZ¾ÎKŸåzç£7þ%ù™ç?Í£þßúãñ7>ÿæ±Þø×ïaF1¯|f–íîm|cŠ¿ý•¯òæ×—ÿêïý:ÿíÿùWùâ±~ó›ïq}ûM>s嫜žXfк˭›w9F,œžgny‰\&Ë­?z—»Á?{ú9 3;ë rǧ!;`çÃmŠzÚôUüÁ=ÉåXy‘¡móñ[? ÎzüÂ+ÏP,çù×òž™ãÚ+×î©8ÞCfž›¡ßvmÔl™Øéíº(K'‘‹5¯E«#±Ýxýìˆq\àvcÌñY‡WÏñÞ‘Å×ÿÓå6—.œ@5Ëx}Á‰ÙhìEY^ûô9GçÉÑû¸ênî<Ï¿þ"Â^ÀýÄìŒÄòʳôÂ,½d‹µ÷G,VKœy¥€»ÓçÑfÀŒa͘„Ór®ÊxÍç»ÊÑRŽŸ½ü5{Ì÷øÝË“çøÌÙÓìöoðÍG{Läêœ/ʤõy6wè¯ß`ie‰A<ÉãÖ^¼Xg"Íòû?ºC®bòK/.ðpÄãîˆåbŽJ·Çp2fXì<è`ª2BÕe!?ͱùÖï}‹;O8ûÌ5.ÏÏòxu'ÝSµ°´fªô•Í͇Լ¯{ÚDžjˆðrI¿4 ÊSH…óp´‹hlê8»…hL¨ÕHTO1 0KsùüF‡›wÈLÕ˜¥Š¯ìáN¦äÓ AÓ$¿Ó?Üeã~³ç‘YœbëΦÑ&1sx»2º)P”â [ÐÓ†ÌggÉ—L[-ZíL1{l†qNá`{ŸÌ£c¾Œ£ªŒ}‡¼ÒÜr JLÖd*n€3q³§M …dm cVå¨å@ª(²H¾ï‘êš¿·‡axY £SYƒv"ÒîPÊN°4»@Ã}„÷ð€T­cÎ/ +-’½­D§4iRDš«YÒšO&Tð£NªF:³±£¦8¾„àƒ$yÄ‘”ɣĂ: ÙNQ‘r¼*ø! cêy ?fùxÉ)yj´½.&' þ(eÝwQ“jIC´R†‚‚‹„¡QH&G‹ðü+I’PU C7žÚ™§mìºñ´0T‘eDQBEÂ(æûÞc»å#érl¡ÄcÒ’‰’ªxvARt)%‘ÐI0ã!bÎ@‹EŒŒˆïŽ" _ÉG2¡” ©!‚'£’˜ñ(‹Š‡m(¨bü~£çqL’TÛˆH‚˜4Ð%—TʦÃTÆr‡(ØJ–(vð¬E·ÈÚv’àçò#ƒÐHè„PMt4oÄ@T)0R<Ì8ÄŠ xÙ)1@Ê> :‰`Ç@YEéÛ8qBl¦ˆ©F6‰y1çaÖL²(ØG.~oõÏžCŽe”OàÊDÒT¤T7#UC°¥§Ûƒ‰Gšª‚ BN„ ªˆ$DéS»0žV7蟽ßü1`M\¸‚?N‘5PMƒ‰jžÎáöÞ!ùBž|µF"z´Ú$)õé*j2 Ñj£«52y±Ý'q$¬L•Tsqú=2bžíÛ?µ«—/“K´›{4û6b0Íì1'è’úUU§ßuˆÔÃH ‚€qh23;¨ º}6›:S5S‘HóUŽzCzG]2e—±_aaÊÂRu>|ï1bµÆé3³8wö9è?"-å9n ž/ðÁêM\CàôÌOžôÚ9»XǯVhoÛØZYC®çhî´í”Å/Ì# ÊÜü­²m÷øÜë¯P4Ö÷[DYÒ¸ï[ôCC)ÎÈh®ÀIÂpÂ`HÐÎ"såÙi¬Täú­.ÝÐfZÉMæÑä"ñ°K£Õ¤[œ?–ÃTU¶h‰DæØ I ƒ#©ù„Ã4¡–¯£LLa÷#„Á˜Î°‹UטÖç»C$gŒ XØÉ•Z Kµ¸¹·É1QàÒÌ w\‡ƒæ‚2E¶œc´ K©ÍfYÿÑ]n­=æÌë8Y½ÈêÖûˆãLV^$,Té9ý˜ÒÌ1²åƒ{ˆbr1CKê£OZ,”çyr´x0D‘LrS%)åè°I«WdÊŒ¹|¶Â¾opãí.ÏÕ ìô.w|Ž-žág¾òy¶?¸Î¿ü—ÿ Å«¯qµRæ«§ŽcÌ™¼ñÍ?e¨pvåSäjßßãøáI^;w‰o5~Nç/.~žM›Ù¿ô~ŽýÆCþßÿøë|úÏ‘O¿ò ̓¡»Îž*Ò Ëô„Ø=ÄÉÖ9–`gk8—çå‹K Žð‡ßÚf2¿Âó_:‡ënòàÁjæ$jYe»{›lfŠgN>Çp÷€õÆÒÙI.jËôvØ Ç¼úµ_ <†÷¯~éT¿pé3Dƒyî‹óð`cq«g/ñÑë»küÜkñ¤iî®ïs\;ÂÏp}7dæLƒ¯<{†›“üοz“ãs#^ø™Ïa¤*­æ=Æc‰ƒt€Øu¸xò ¶Vbÿè.tƒbý,/Ì\@Ü÷Ù}ðˆò%ƒù“­ ƒ®ƒ”î1·R$3s §yD«ñ„ÆxH|îÏ_~ž½wïóÖÿ1ÇN.óÅ׿ÌÑ ¤ÿë´™q>$+«¬œ«ã ¸³Ú!Ô[ÌÕg)žz‘Íí5ÚîS\š!M ÖÃgOÍ‘oíq{«IåøвGs{Àòâó„…Û8°óä[–Ncúùg¸÷è:æ¾ËÌ)ƒÀŒÑäì<½Õ=ŽOÙëd䀲&àø>cG$_ÒÉæ}•C¿Ï»ëÈ0½PäðQ_ˆ(M/¡uE7¨œ©P9¾Ìá{ìonQ>5A¦(ƒª"‡6÷· ]k/ÎaiY¶­³ÄÈ5•j_Å÷<ÒI§¡kå N»CûÉB=ËÊT{W¦)öÈ©>Ú(‡dI8¦ÃØé"z25ŠÈÁÁ¶o>í¶ŸÐéŒ1ë—¨ÊíÇèÇÆq ËÕéª2©I< ¥6‚Xa”™@Î xþ&ž-1kN4fÐ‚à‘—³„ÅrÐ!Dõ-tUfì4¤AŸFë¸ô¤a¹FÝSðüˆNÆ%'hA€ ˆÊ“$›°±ÇH“ÈH­@#'Èh%H;!¨".:®ß¥"IøRJ?¨’ÍÚ¨Ø4ûZg5´JžÀ¨0&õeüDGu$Kq\aDQyzÙ( ŠÂ'­ì*†ùS¸úñ̪jȲŒ Š‚@F|÷æm¶bj‚ŒÆ¤rŠ›J˜i€Æ$dqJV'KCA m"%A·TÈ•‘ÛKI“U2L(QÃ)Rq¥É"}¨£fc0âž'ÛOÃæR ©&ƤjH8‰%YWHâbŸÄ7@ñ}ˆ¥„P)xadã8EU Rº#I6Ðϱ)ˆ*~IeŒ(Žb$t†Ù%Ò²YðDñi—§…ŠŒÊâQ)”A7‰ÅˆlÁd$ ‰74b]¤:kÑ~üÓNΕÏàÇ’$"I’ Rª"€1¹±€û$‰†hˆD²ƒªOkÚÕÒ•„ø“j3€T¸ócÀ*D›Òd¼Qd÷¨Ûê¡•ŠH²Œ$„(øHZoÐÄ<ªÅiÄX¢Ûibj)Z¾Ž„Œ—È@ÒØ¿óÎO%NåûlìØè~똀å‡2yš=ŸÔðÒ!¥|Š®'ÁåÉÚõj½8)ù m›0@–ɪ)J§/ÖX2dZGt¤ Ek–ì°…ïÚŒ•ÁAµ0E©#'}¼šE¼ÞàÞêJEäôÙI´bžÃ;Ž˜:mRÎl¬¶ìïrråõúUFãÖÖö #oS«M0]ÈÐ{ìqçÎ&“ç3œ<·ÄúõŒÚT–®p*Y`˜ÙãáÇ»T X|é‡ѽINžÖùáÇ´z /[Kg稇ZYÆŒ;켿ÆÜùi.½Êûï=¢±ó—>ós…)ž<ÙcÜoàD:ùÌ ³õ<֞бr¼FN«“÷Tît7i†¼|ê³0†»{s"_à ‹“ö%¼¡Oj bagk*•Ó¬mµn5˜˜¯0‘«Ð÷ äÎ*7ﯳ¼rsÏÎóðÞ6éææž}?Êñø­·,~öyB=Kç»×±’eοrŽÃð6ÍÇ-ìÔB1 ”Õ •°Ms&˃­¢G ~á/}–Ês*_ÿ£7Ùþî*S¯½ÀCãÅÏ~wdóÿü¯ÿŒÅ:/[æÂä"ò‰"ÿíó;Ts¯¾ø*‡ß·ßÚ`ñ³ òÉ×øèÞ:ÃÕ.²´‚ßÜàJ}–¿øÙÏóOÿ·ùÿèñþÓ¿ÆÏž[áß¾w›G¹¸rŽcÖ"–EÿîM¼û“§çyáËŸÆÅ|ó{? í™­Ÿ`ñ”@Õ‘Ç9:•n+ì0=yÛ8ÜÝ@›^àËç—Ù8Øá?üÁ7˜=~•Ÿ;;G'øèÍocsžÅ”Lö>èPœ£X:ƒ†Š¼äRH‡ììƒrrš“3 ‡[>™åvkÌ­ý¸h-r²8‡mŒ±ªE Þ½ûCˆuž;ûENÎWxãöïòÖ½'üâçžÅ2+D€T“hˆmD×!oÎ"¸‡.½“>šyDz ‘Šè–†ô3 jY†C3 Hšýú9òTŠ5Z‘‡2Š( «]Ìsv9ËQ÷[«mæWŽó©Â,maÌG{íéLTê'Kä‰G›>I«¤Ÿ@Ò ÌjÙBžÖšÇNg©ús¥IöéõGd  '' -…G6Ç•ìý¬‹å+L2Ã.CGcêD…4pÉuGìfrtÜ„Ùî±.ã 9Žö·4Z~M1ì Ä]t+‹& èZG ›† ê6OFÊÀàô±öd‡ñ½äŠsHˤî:öž¢Õ(Îd)(‡‡:;«ÌTM ²„KةǴ3ð4º’†¥€îH“”XWPm M‰i‰¡—¥jj˜¦KÛ/v™•ŠHZˆÓ<À·Èש{.,ö YIXeØ;mº:D3' •¶'ᥖcË)jÍÄ•AŽ…PTIÂ!©¬á¤Eè(ê!šV/D‰’TG/¦Ä¢G„ê$8Ž€*¨iÌÐИȧdÔø?‚+Iú1\}²!øIÞJ×uTåÇy«§*WF|ïÃ'ltèF@jÇÈ©Nœ‰‘b B•~Ø'§+ÄvDí^¢  ²¢¢‡"!HY-B´4Ux:wË„)iŒ&ŒDKqLÝÖ‘Ò„!)– ºìÓI, %%ˆ"œ®„˜U0Ò¢¤£ŽBL+DêtEI¨Н2JSòŽÅ`„x€ì[øš„ꇨvHXÒi™ …ÞQRu OÑ1"”Ô, PžëÅHHØ8R†8í ‰Yˆ3OSçºLœÊdc;qñSA mÜû ‹L¹€Æ’„¤ªH‰Š%HäD"¤’¬+!‚« ¦"è " 2> *)¤~¢dI"Üþ1`­\}žüÌ$YÁ ï [-ÔŒŽ™Í®ïa*%jù ãèˆfw„aMPгxÊ!BGÆS*è–ƒ+„HcÉÔÈÃ{ïÿ4ƒ•*ôvzLÍÍR“TF‘ÍÀÓÈ#·%zƒ&CÃf*3MM :(~@Ï8²‡Ìç%f« £ÝqwSPNž¡…t:ÍÄ¡”JTÏä º°~ó‡¨Ó5JÇŸ£Ú;`ºŒÊ–]™»íCºÛ뜸C¿3âìñˆ–N›„íƒ&Ùñåùik2Cã䆧C$$ø­±TÆW\tU&7QçÑ^›Çí§2&‹§fÈ2ÝÎGÝÇ©¡TFL–|¶{&ÎÚ>ËWNS›[`mkßÞFÇH˜ù*YÕf«SšÒÑB—¡Ý¥8³L«2”šL©ǯeùôkï>b«u“XžäÜé+<9x w3äõW_¦U)ðñ›obö Nœ¾È¸Ú£ÑÚdÑœCÍ-âï¾:-3WºÊÖþ-¶wzhB…“WËLÍO°ºz|ýæ–xíò<=Æà i9ÏÿÇoâ?{â83Ï~ž_ãw©ü¥Ï¿ÄQp_ôù‹¿ð:?zgßüW¿ËßüK_áü•³¼ÿþc„î®}¹Wäû?ø{R§¿ðŽgtÞºýˆ¬^ÅZ†(Zãð‡µ§˜}a™µ÷örÖújƒFëêÜs¼0«±{p[[Pg>ÍL!‡{ y%ù‹—ytã?¹{‡ÚBÏž:$|Ü`ÇG<›«â¸5íoò\fL¦rž÷ve´ê‡¼^]`Ã^æ×ßc¹ÜåâKW2âƒCl † ‡,_›Á`s“‘Ýa²¼Ä’t–íöwÆ{,¼°È+§5ú-øàÝ'xâãç‹ä‹e"Å'Ùô8TS¤ji«J9éðÖccž{þËŒT6ŽcÎÊ„Ub'âÜé˜$2ùîõ#†ö˜gg fçØíÉŒ÷¿K&_§§ÍÑq.ÌöP]‰oßQžI9se’û·{êóÕi67o²“¶¹fÍ’/žÂ5ÆìÚ ”1,Né<ôSܽjfq¢‡»ÈtþÙJŽƒ'kdseôé"‘ã¡x.ý>¤QÈÜì4I±B¯³‰ Ä.CµŠ•©‘d"Ä(a<¸Ûn’±#æ—®`k¶šw(2Ô•³‰CÛl°ï&„‰æ3µÐR ¥xšŒ˜â{]¼ƒ'Œ ƒ‰³xý­5•ÚÔ¢¿ÏZÏfa2‹Y³í·ÁuÈ”ò$‚À`kéô ËVŽÛ7ß![ÏsþÅçhÜjиÝ@+›dgr¨íw²4Å*³K¨„ìßor ”³%]" \5A¼ ÆÊŠ «xG$5‰Š5G·Õ ?ˆÑ¦UJî ’c'=zƒf$3¹¸BOqÑöš¸²ÆÐ,0´Å"¶[¢\Uðí#ªP²¨ubZ—ñDH=®ö{ôɓɿHÔm ¤#¨ê&6ûÉÞÈ'ŸZLæ"D9Ë€˜Ä#P')HGŽ’\@uÇØJLj-úiŸ–/RÒS´ò‘¡bJ#ìAŠ$±¬qšâbÅ ÄñH‚¬Š—ް²û”QŠhx(a‚—Žð ‹²!0JeBOÀÈõp$‘5Bˆì¬ÆÍý‰-øc¸Ò4í'p•Éd1, ]ÓPõ'¡wAxzbø£ûìµTÛ#LRt,mŒæg‘ô¡è¦%$ ŒtˆÇ‰ÞG¥¨J)÷´;À ‰Ÿ‚‘Ç-©x®CÖ7U‰X•0d›8ÕÐ=…PE”‰—`¤P2"F9 ÇN©h}¢@A´¤’‚õP¤"‘ƒš`©:¡-à(- s8QB!õü„¦S‰}üèÿÏÞG¶ ×¹à·½KŸH$¼GU(o7}N»ÓÍîfwÓ[Q”72£{ïLÌ GÞ\éNH^Q¢‘84Íf“íÝñ®Ž©SÞ¡ @Á›D"½Ù¹ýž‡êîCRo3÷IÿK^2r# ë_ÿ·TÜØ%ãÇøR€k$ĈfËU! ˆˆKƒ.`ªIâ¶÷0áΖ‚$AÔn ùIÈ$!¬ƒçC¤€"VÑBîuYm„(å3X¹©“ˆRˆªÈHòÃË?IÏ@à2"N ’1±+¡ž!â!¡"áÿà£EÇòCXÖ·_z(°Ž|æ‹ ˜i6JÛ´+[dócèºBèT‰™<ª¦Ðs`»}}8vˆW-£èJ†ß¢QoÅ Ë ~¹Ë7¯ÿè¡v’ýô: é™Ám;ØQ¨¶zÄ$­Eê'¥H4Û«¬{1Ãrù Š'è LÍ’6E*ÛÛ¬m7‰ 9fó Ýb±Ù cäèÖ©lÜ£Ñ P‹sø%›ÑþA6CÍë‘kilm ;ËÔ¹1Úµ}–î9MÍ2!%Q+•¨í»}ì(‡ú¹ñÞ=n/]gl*ÁÑì“øÃ=ZeŸÒµ=V5N~ᣣ”_¹Ány›ÉC³ôO¡¼·ÄÊÞ&ÅÄ(çïg·ZgëJhÀD4GÇócŒ…Koì°Q«páð ¾'Ò¬Š$gصMô‰ ÎÏL³{¯ÄÊ~‰éù)¦3¬Ö«¬­Ü ·_çð™ÃÄ…É’ËêÖ 3â“}‚FÍãêÖ›dt•©â¥¶ÍÒNù¡ ’)Òul-O}gŸnÔbWçvĉéö·šN—ÒAƒ„™§¿¦µ°Ñ¼Åà¡>ÍRºápkûÆÌ02¿€só6[L=9ÇìXŠ;o¬K!©Ñ Tã ÔÆ6²5K#ÑÁ»¼Å±É äÓ9Þzå"ãÞa>òÑc¨é67¯•¹³xŠe049É?ù8z;æý/ÿ”>yj޳‰GO}ž¯þöE.ïþ!ç>ñd¤"ïlÜel Ëg9ÆKïñí¥:ã‡è—÷q…þê‚?|ëþ—¯ü[þÖç~Ž?w’o=ðÙß|…ñd—Ôü“¤’ãÔn¾ÈÆ­'Μ!{(…´±Kõæ:na 9ЉÅ*ÓCy´L‚êÝ}î¬ì3Z(òɳól4˼tõ6à |üôc,_»ÈKׯðøü<ÇOá@€/¾A°]åô Gqì$̓m¬¢N©’ÉÊÊrëÖ6¥šÃ™$g2'Yµ#^ºöZ=âì…GIôyÜéÒuEêÑî¶ÍÌ£çÖR,Ý}‹Û§Oe²-r{ywP¤O’0¢Úà«[{líßçèä §a£u‹ß«p d8ÿ‰G¦g¸þv‰Ûú=æždäȳ¨®N6ðÚ»÷ùò7®óS¿ü(ÿsòêËßà¿þÑeFžåäˆH(ªÜ®É4vï3?RÄz,5uÎÍ“u{|óík& ž˜¥³ãSöT¢©˜AE¥²ØâÚ•:u˜/>zžom®±WÚa2ÑÏëo]æø©)>þÑÏ”·¸òîÒò$.¼ðIޤ¸rñv•¡D)!‚ë#‡Q"¦YÈdÈ ×©~°A«3ÉèTÑ7iëMlÁB*o¡ît¨FãX…u2ÙYkŽûK7 ªw.E²R4t…L¢MwýK›.#GñÂô,åN‰?~ó"Z]á±³sˆ}YÚA%dyg‰ÔÐ ãÅ!Úú&±]£ÕLR®Ä¤r-úõMCgwý?ŠyöÔ,m«ËK/í3 %˜8”¥íãÔ›Œ˜iê^ÌJ5f|&É %ÑZíp ƒ×ibØ6ãf?Ý|HyËGë¤ „ª@oc™f–&ø m¹†ìÅxU•Äh+¶X«µñ½€Ñ¾#xR §¶JÔ$O’ whm…ˆ©aô£òVƒ¶Óu]L%¢ÐŸÂ®ºÔw@èkÑŸá  j0à&8ÚØ’„’M¡šyzN°[§ ÈˆÙ,{J¿UŲ&Ñ#Ÿ^½BÓî`hٜ̾`; |Ã&rsÄ~‘JP±ct1BñÚq½‘GÁ&JjàY8áÉž3v ƒ5Œ‰%Éth{:Éž‚döèi}db™Øöi¶b´à¡PÁ ±’2:"ÃþP\ âÄ•nŠ+ÓB×tõüÕçƒÅ ®¬ì i-,]£ÛMâ¤+è^Qëc{i ¤^‹¶žBzx —|NÁC¦‹X!ˆ’-Ĥ‚4jÓ;ÄŽBdºà H¨øB@J ;‘)à#® ºàw쌅ì×°ÈÒ“}B ,z‘D/" aU…Ôà Ɔ"« šªRñ±€«„N›„nД"¶DR}øü½”dŒÔÕUº’ ±ôâ© â‡m¤PÂKÊH^:U„Jœ‰[ ¢ ¥ÓˆvÇ é¡³÷¡À:4q‚V Š2š  !’œEBÊòð?—'žœÿôÕ/qíkïð×>ÿ)FŽŒóŸ~ýß ¥fø•Ï>nDüçï|€¨787z'! ¢~]Ûcyï.îJŠÃçŽÐ6YÚyÀˆfv!ÃîÚ\Únqdþ#<19ǽ«ßÂîµÑúç¨7[Ø¡ËT’éinÖïsçÚ*g?2ÁauŒ;šˆ.#Y—Ön†j å_85@91ÃË—WÉlsøð,¢ÚG©n#gl?h<ˆyü'OiïÞx9î1W!ÞͰæÚâ&‰Z’GM`¤¾üÇÛJ›_xì$Én´ö |“ò~?#slúù°ÎÒÞ%ê˜Ì†) LS—»¬l­ãVcÆ3.ƒÃ*ív†û[TýνÀbGâÁíosH-ràd)É2OŒ¸H®Ë÷nøË2™ï°¶ße£;ÌØœF®ÓâÎÞç†/°î²¾µÍ³Ož¢ê„¼ô•—9;;N"3ƒ`¸ ®ÒpHŸ@ oQ©H<1s˜ýŽÇÍäûRä,‰‚•d·—¥åu0¼=4W¡50BX1#0Ó;”ZN³FR–‰Ä!\ï2¢˜àèäQS¦½Ó¢ÖªPu%ÒòaÆ®–ïÑØÕ™™`¨?…«ÔؾݦÝóè‰ ËrRŠ\Ê Z¾Ën5B4r Å¡Ìö¦„Ò ÐE8nH¨XhqpウQ8w”`×cýíP†$´ÑO!h„8@Òs?y”¼*smç›KŒçFX˜;E{½ÅKÈÆáÁóä/Œâ´vÙþæ="¡ÅسL.aãÆ»»duÄÞ;Ñ:½ƒ6Ã…Ù!„£R¹Ö¤’)“K+HMÙGæ°Ì=®ÞZ¢-+\è÷‰*;zš¤ÜCjI¬ìÙ˜I‘¹…~*u¥—9th„Ùñ§X¯T¨´6©?¸J`å8÷éç°—K|ïò{ Ž89;ÄÁ¾ÏvÉadÒ!“<ÄÞÕæc˜‚ʃÎ*Cc íÊ*alûÚ.Ó£ä†ôZ¤»4õ¸¢¢®h¼Q¿‚1#ðÅ£hRš×Þ¼ŽžÖ8ûÉGð6:|ïÅ—°ŽpòèûµÅ‡4þÌ×Þ~—d¦Ÿœf}} Ë-2°p”êÜx¯ÌØÌ©¼FÑ8L ÔyûÒ·©ÙÏ9ʳO?Æ•ƒþàß¾HßcOs¶˜fDNòè§…/½ù%Þýà&ÿð ?ÇŽµÎo¼v—¿qø0Ÿ:yžÿó7_Á;èòÙSS´phÚU~õ…/°¿}‡ßüò—yò‘'9ÿ…Ÿ£¾»ÏÁÆ ZX\˜>Ïî~…K—^eav‚™“§q­˜{K×H !ýc–öj¤df†§Mpkóß½vŸS3§øèéÃì-îrsc…¾Ñ LJ¸Ußg÷ÆÓù&žœ§¶¹Ï¥÷³Mr‡Pc‘¼çpûÆÇÜl•ù‰9ÖõÚëè»}cØè<¸Šêl¹.±ÅðÈaL_a©}…m§ÊPþ G¥Q–vÙvµ œÍàdMVÞiÓi½ÍÑ™Ï=~ŒšnsýÝ{ì¬48õü4‡ûR¼÷V‰­»Ì^(2ÿÄinÞˆ‘¬àDÜ\íðü¼ÌGì3üçÿõû\^ýÏÿø,g§÷€¯Ý»‡ ·Žq‘-æ‘b†AÙæ­ëw grbd²¥—ᔆѧ±r¯Nsqƒ™…1f^8ÅÚíKw˜ñtÔ¦@i¤ÇÈì,VÅáö{_eOᣟü#Ã1/}ýeêÙ#cŠ}8Ý&ÆÞ™‘~Ja[²ºtv;tl™‰ñ4CC9v÷öØ«uèÓcúÂ6:¢qÀXnSÉs{sTs‡¾©1Êò»•k$’u±€àÃ)&û,”ƒ ß¿|!Pyþô1|YâJ¹Åˆìâ[]ªr¬>†Ú½ÎžÝeØ:)4ƒ5âv€–+9¥ò]†&Ž‘ŸÍsõÅÛˆMSçy°³»ï`Ž8u*Žƒ>!­ƒ\ÑX¦…'»Œ6BryjR›NÃEèöHô‘Âbke(¯%¬íá6Á+˜¤Œ<²ÐåAe—Ð)²0A­ãïWˆzvB£Ïß§Ûp¨*ã ô…è±H§Ò(ÀO¤S h4AêšèàFBe ’¯CÎOaX2[½Ô"†N11M3¬Ò©•°äAò)j´Kd„¡Èäè «^€Û‘®9ªÓ6$‚uIwHf2„AšØ;@’\4E§b{Dq3#ƒßÀ.+X¦ˆš„ ävD$+„VÒûtc‘¸3KRívˆì$YÃ"èÐPûI†J/DÔM,útçCΕ "Éò'®LÓBÕuEùs+A€z«ËKï-!Š]ÄPÆÓ“øÝQ:‚môÐGÑC±„"éÇÆ0H½ ErÑz>¾žÅóe,½‡‡tŸ” #ä"šŽHÂÕéè]4I&jøt3It1&Ö¤È#LO ©ÅÄ’†9/ å$†ØÂi¤‘rØCïˆô,KÒq›Pïë"G Çç@\”Ò&Ô}EÅo(„ºÏC¬ëÃz")/B#¦ëC(‚n‚Ó…¤)Ñ»(± Š^Ì*ž#!ª&®ŒˆH„f a@è$µ7ÿ\aßáã芃DDaŽX‹1ÄA€%Ž°å‡ .º Ha(ã"‘zÄ!„ÄèZD艱ÄÜø!kðä1ú2#ˆ1tÜJ¤“O§éù]ºí.Š¢bQàŠ]"7D’ 28±D£çá)š¥ F:J' lß¼ü£‡ªh&qST“4t‰Z¹NJµ˜šÌáVÔ¤Ý}É×W÷UNŸg­ZãÚ;ï“ìÓ™™d·ÒÛï åÓ̦év]*;÷¨ zßÉØÂ4SèÚ>Nç>Ý^?;¶K¸Uáøäq²'ûX½ºDc³Ij¤@.—¤m7Ø\ªÓ?“alv”ÍõN«Î … M@ÊËØm‘ƒ‡t¦‡Äˆ¦xáׯ¯ñÞÛט›äãÏ=ÍòÊ×¾q“‘#)¦rlÄÛ;wv3XgP*Ti¿¼Žâ˜þÜ[—ïà\×yìW޲^‰ùÎï¼Îä™$óÇž¡×ò©w+ôpÙ¾»ÁØÌÇŽpåõkÜ_ìðÈÏ<ÃÈÄw^~­V‰‘óHÕ4-{]Q±\;›Æ–T²nÈp -Çi5‰u|)&T&Ì)"îì¬Òmm§FÁ¦ÞÅ z…$3#¬m;\}½ÆÙ1ƒÁúøý×nìlò7{”ÜÉ#¼wóeº˜é#S\¹µËÆò"ŸúÌs<>5Ï¿ùêfÿÝ]þáßùkô? ¿õ/þÃ|êŸfDÚcù­6æHšë«›ìVcþÒcÃ<÷äy¾sõßyù6žä0zä(÷±ç(œ™äþ¥§¹äÖùéGžg8²ðôíïS«½ÏÔÀy†ùl6vSãLM_`©ô:»ñG¬4Ã⤙$Ù§ñ/ÿ˯SÝNðž;C~f”ßøo£É"gž>ŒÛUYin` …8O&F"KžQöº÷YßµJ ðøÂ8÷‚%Þ½z…éþ09ÚÇÊújAÌÜÀJœ¤$5t]$)ÃAØBèt:v”~]âÛ—nQœù™GŽpÿÝ:”뤆˜BªMpñ÷ð[1ÇN?J¯Ïe£tÀŒjâµ¶ÙÝÓ8üøò37ß¹G³yÀÙãOⵓ,”éÓöèkúè§Ò''¸ù‡X\¾Äì OÑ¿`pûî*w S¡¡ªš™d0TyëWÙ â‰Ù d£,A>`e»Äúíe.<’æÄÌ)¾vñ>‰¾3‡úX»ó…\–ÂìǹrëU’÷î3²pžåFÀéyµìñÊÅUæòÕj5“ÇPBì BÖÉ㥠Ìl’v§ËP"@þ‚¸RÕÿN\)? ³ ¢€À‡âÊ÷¾üÖ&·†@œÔƒÅ®H× iã#Ij»E—‡è- ‚!/y¦ãGIB¥‹ï‚¥¸aˆ$:ŽLCŒQHD¢Zà  ãHˆ¦B&_ý9 {!u útÕèiy"ôn›žlâIMbYFik´,‡¼à»!¶ª`øàú!BZEjH„zƒ¤@¡ŒÈ‹m|GÅ’J;ß%¬úˆª†%ÆD@#„ ZŠˆÝó1•¸÷P\ŨhQ€lËhjˆ$J´i£J"=G%‡J ÄŠŒ½ña\i`ð8.‰þ4ªáI2‚ †$E"Ä =µXÁ”‡œ+[ŽÑ%‰8vpXÖ0Зˆýä‡Õ…×ßzáé§ŸŽ?ûÿª »»»ÄžOnpËHѨߥÝqPÕCäó2AT¢Óˆä†(‘P#lÛ¡)kH¢‡ÔóP™T†î~ƒõFƒÝïþ6¿ök¿Æ¯ýÚ¯±3ð‚Ü%òM4ä•vöÓ ö€Qgmw…\â É`ß¾EB¥­&ɉ>¾ÐfóÞUò‰<Ùâ9ºûmÚaCÇrXcEþz^ãÌÿ˜ÿ1ÿcþÇüù?z–V·é9.üàP–•‡×‚ѹÒþ †á/¼G§QÂwºÿ?†ø¿{ÇÿcGøÑ’ïÿÿùò$Bl D‘T Ú*¨ Õ‡L,# ¶‡*I´‘PÕ24Š™Fè’taÿƒßÿ‘yò³Ÿ§ÙL¢¥4r2¡'Ó ]G×{‘ ˆ2<|ÅAéáà&::h.C$?$»ÿÖ¿øÈh:µòJ¤ úð‚€N}™ØvƒF;"£˜ˆzˆlG¸z‡ 40-tÑvb]ÃôT:å¶%1¬Øý3¿4=#ÑÝWpéb #B†Á+å-f’6ÇÇfhÕ5î´—H·“ JRE®]^a"ó‘Ïþr”7¯½Ék¿þ§œþÄ3¼ð©9^¯‡–ʲ0ñê[—¸õ?ýü#$Æó`Ï#ؽÉrm¥;ÇÏþ ÆúùÝßøN½Âßù×ÿ„òzúOþoô[:ó3 dòØqŒaßÅËf$CîtXk·P’úó}ìdˆ–Ørw˜bTJ ­´O¥R¢h$ð¢2¾À‰ùuU'ƒÃÜñ"ß_qÙc#´Ño]y•…‘!þΧ‚ëü‡ßþNâ§žy‚ÿü›È}ýßøɈ?ÿ/þ.Ç Ÿåoÿês|ï½ïò­ßz•ç>÷‹ŒõEúì^™Ñì,¥(Cã—IHÒ‰CŒjC¯_üò;_æ—ÿÊßáãÎñ½»´¿}‰éÃÇÉá•7nrùûßeáì<Ï?ù ìÔËÔº{LË]n—nónÙ瓳OòìcÇy{ñï¿÷&9g„¡L‘¾çÇès,¶ØÝÛ¥í‘ËÍât|hµ8zö#–—~ÿUnì6ùùÿÇóütq‚—¿ÞâÕýïÅ'f?C~ºÄÚN•é8!ÅüÑõ:'M2”‘xïÛßds_áÜGÏ’‘²ì®íSñwlHO‘ê ñGë,U_B¹ð$ÓÃól½ö-‡ŸznðL‚Ñt‘‘=“ßýö·yµùéÇŸát_Ž‹«eöïz¨:C£ \º´K0aðü£S¼}e{Õ!¡L°’¾Fzs Mùy¢åkèµ7Yò&‰Ó£œì±»²Õìqþü ºÕâëߪá5Ê|á‰Ó¨£ >XYfÐ8J:[â»òMæNó©_üy^ùÚ+¼ñÝ·xþ§áØä­ö ±ÃÒ^ŠÒn›SF™œ¤µZåÁƒûtL“éô8“G-œ;7(¯Y¨ÇÆï÷éyPßµq=0ˆŽÂÖ½[Œ™E¦Ïc£»Åí—ÖÈ#žÀª·(Õ– *òÐ0C£EÄV—í¸¿Í?BñtŠ•ò&¥å Fd‹fУ88@Bœf¹tz}•£™œÁQ<­N¸ÕaõÆéÁ$ÚÌ0ýª@©³yû€ÙlDzØâÖfKEWÒlí®æóJ R¯mÒl:(JŽØpí:’&£€ÝÞG2T 5ë´ã ¦«’44vCMR’ªK^TXÛlÑ6m&NJ螌ç¨Ô6i4Ž/ôé‹f††È6»÷ºÔã f_Ý";T…z‚ÒA…–%’O'È·öÕvœ Ó²éÏì¶\¶ö{Ìe³È½H OêÜ B;™!¯Éô<¹áaªmM#Ô<´^Mn`æQ*"•æ=Œ®é¥fR˜Ø• m7 Ÿ1é™yÂêÉL¯—ÅÓz¨R‚ ޥ݂Œ›'L—pÏ%£;hRYéaĘiTUÔØÅt"UBBÂõÚdúDRbü£Ü•$É(ÊÃnAÓ|Ø+hæ:Eáa`û‡s­Â+÷ïcÊ2š§Q&$ãõÍ$„ ªmm‰ ÛSHšÐ€^Ø kš±NSÉúZª$äU‰,õ–Gh4I i"K¥S÷Ȫàãz*¾*£ ªªúТE_0–¾AJòiõB"Å ùx!ÔU3á!º.Žå¸K`H¨¨¨‰6õn±Û%Ž÷‘È£šìÐF¢…ŠA€Š‹‹!¹4l•d~òÄ® x¯ôª´‘Ƀv²ÔVAõâÚª*ÑÆF•<ÂÆ(ªÔ¡ö ɨ&^;üsÎ û0d›ÀiSí¤Èæt2^D7 pl]w‰tñÏu ʈxüðÇ:‘àˆ Û€FF>àƒ+÷p½ Ÿ|ê#Ô‰åûI(ž1@Kiq¡‚Áá4_ùÞ´¯íñèS3´e9\CI¬T†˜Òòè‰[m3eÈé3üéÒ¼¾t—¿yöÏ;Æw¶yéÆÛL rdnÕöýûýÇNÓHî`ë.3æQÌÁ,¯¾÷î/õøñ?Ëè`†›e$ÍbñÁ:+-~öÑ£üìSò›_ùS¾ôï—‘¡4O?Åðø<¦:Ì÷¾ôOyÅ)ó…ÓO1 ä’óÇ_ý=fMæŽÍñæ»ïPÐâ'bzJäçþ¯ÿ˜“žã#£YKMZK»|öùS\Üø67V:üêÙ'™8y’?xõšw6yá#’Ÿ?Î÷ßý*å»ËüüÇžeâp¯­Ýæâ{œ?ω‰ ÑÙ« æX%§Rºµ×ÛgèÐIš¾ŠØî ¶Jôå t¬AånµH~~‚Zká`ŸÔôTµÂƒÕ©Ñ#ôVi,îRìæ°UëÀpÁ$é÷pJ[ì'êL:‡°–gÅ~€7R§Æ9=”àÕ/]Å Z\8s=­ðþò&b;f~À¢:5Ì€¯³sk‰×9v’Çf2ܼ~Ž­qêô´*t×îs:?Ï=ò#.Ó™<ßøÖ"ƇOÌs$W»Ëê®Dco³rLÍ÷ó{ߨBŸ…Ï•¹wµÃ†.36V$ѰY]¯P®ÞâäÙãäÆf¸»ºLQîâi ®ÐbúÉ“)öS»q@[Ö1S6¥ëUΜžÆï`yq™ü@u$ɽ—.a§fŽSKÙÚ¼î&¾j!ú‡r>FNE’,jk›ØÝ:£çg¨Ûko095Ï£Ÿäîæ¼·Ä‰é „¾1Ú­Ét‹VÏãÎZÀX2ω¤tÞXÚÄÛ[&5mˆ…˜\Ág÷`‡J Lkœl¢I$¨þ8½t•^}F”ÄÚ@’½òržËPá8»Jˆ‘ʾä0<¢”³¬7WÙUŽ&²Ç x»U®®¯&"ûFHÆí†Q O”` Ë–¨×+ÔÔ6u€$kN‡¬ÑJ ®KGˆQ ¹¦ 9<ÃAqK¨n Yí'Nm±¸Þ$à Ùþ ÐÁs"Ú‰4½Š‹æµéh‡ ¯AÆÂh7ˆ›1]5'ùØM·¯ŸH¬ÐXî‘Lˆ¤Çh=™»n à „V“»-Ÿ|!Aq²H»ºE¥²M#fT«‹ºÞ£GÌx¡HÍ Ùïuȉ.™´F-q•X7°¢v×¢öÈ,tI¦V/áKEÆ•~œt'ª£m‡„éÑ”…¿ÚFrÁÈJ-‰XnÒh —EšøˆZHA{è ¢ˆ(Jr®Ìô šÖÃêEù¸þœ¸j÷\¾ÿî2qÜÃkkÄŠO²×%P ¨Zˆë¶©ÕT2©€–+£›bÏ'Ž=Ät1 ¼Ét€²£‚ F.®j#H Ù`€–±OìŠ(¢N@ˆ J4š>iÃEJ÷ã :eR¡EI3‘âSî N˜ÝAö=|1‰ ô0̘Ž/ú&ºáúbÉ'ò³hu~„,7°Ã2¡î¡ £Ä6mttº¨´ °Ú1ó)Þ[ °Ì6a¢ ¢…1b¬ÐA }H†àÿÀ¹R¡ˆD— N’Ó#1Æ‹EÒ€‡’„½ûáŠpæèz¡‹%É„¡@,Hi K±{@*à* 92¢á>tÉЈ¥É7zø'« ’&ƒãpã— ¬©ãÃHÈJ„†(2(‰§8;è‘D¤Ê„~=DÊ$VCl;Â{(šL"2‰üÛwHª ôP§Ùn²wûÝ=Ô†,“MæÈXi”^Ȧ[&!GúÇp£åmŠ9frST»ö6‘ã6c3ýóÜxû~NŸ;N7]gûÝ[ŒäǹÚnñ……"—º6ãÓy¬´LåN‡»W0u‹sÇ. H;Üߢ?ØÃUÑ ‰Í{Œ5F&hÖ\|·AÃi“Õ Œ’¬;{ì­‰ &H QÛ\¢‡‹š\À¬ƒ7¬AÅfíêq§Á Ÿxš‘Gæyç¥u_ùFÆ9<õyîíÞÆ`‡bq†¦YÙ¼ÆòK99}†Ï|áï>Øfek“áTL!qwÙ¤ßH0ùXûÀäîÝktÝ«<>òã¤ÎŒ±Y¾LùÝ5ÖÊ“§sþì9ÞþÎ+\]¼Æ}á#LæõåEh0®fqU…®Rº­2µHe8W$YÜx°ÈÌpÀá©î­–©ˆ{ŒNœFé…´ïT‰rƒf±¾J˜Ë 3‚ѳ{«øF“ž9ÇŒ¥óK·qÕ23s ¬>Øacç.Ÿ>rЉCcüÖz'³Ïÿé‹¿ÄÅߺȾz‘¿ý·>ÅÈÄ¿ûÏþwrSG™=yœ­û»hÁ*a(&d÷ÓØ ØÚ-‘˜ˆ(L͹ •XÉóöí-Þ¿µË/>y’çÎæÖÖ6¿ó»ÌÔã§8Þ?ÊT >ÿãŸæ•Þ—ùòW¿ÇÉùŸáó'Ø¿ý&—v#žþ•_¥Ñx‡«»/ÌŒ3;?Í»Ý*ÕÛ.ž³†90„šÊö¥¨/Ýe·2s|˜‘xŒÅ½U<ç>)}˜Rݦ8r”ÇæYº·ÁåÕ;hFЧOœ¢4ØÞXÃìui‡ýHŠÃPAE±²Tº-üÀ¦ß4ð+ vî`ª"|죬z¼÷î‹ÌåðÉǰk-nn¼ÉXaS•YÚ®Ñ?jq¼‚•¥5Â"§Žü"BÅdcï2¶#ØÇO£šåêWïàìl׉FÏ ßÝ¥yï2éc£:šÎÊ]¾õÇ7h3Â#ŸH3oôÑ«yÈ)›¥}XÛIðñGšô (|û»04˜gø„Åâ7©Ýo1ÜwЉc2Qº‚|»%ym¡NçÆk¼öÀfèüÇxİ©—ʬÒÇHAa`Tä½k-¶?Xá ÏÏR@.d™8¾@´T¢ 5(Lsëfí6?“`HÓ¹¿³‡R0û²œ8?Bàv¹÷Æ*F&EñH–íR…Öz™ñ‰³?=ÁµÕÛl¾ñ#7ˆ´P¤ tʬ•ÛD¡ÉáÃý˜b—½F—½&Dz&¹ÓEn]iÒ8Øâô飸B£Ó$§ŒSÛß Þn13?‹oÐ^òÙ»È5Ž/ õLe%z*‹5¦ûD†ÇM®î¯ãÊ:sÞõV‰UNÉ'D×–i÷Là ÂÐ#ï@;/ x!m?²ú½< É£8äŽ!IÛ×ð›8&èÅl×[HsŒFþƒ6u¥XÜEÍh$ŧKµ×bn( ŽÎڮȹ¤N¬dü][¡)A&béy:•]Êz€ÞÖ5Z£Û›6æLÕéF-Êíš Šl<ÁA–즂Lj)É ð39ôXG ¨AL­-ƒÕ éì†E±GRðqÚ*-ubˆŒ˜$\?Àw2qßiã‹-ìZŒÕN@NÇÆ¡µ×"‘LÓ?”£½ZÂuR–D¤øM2žŒœéby&MU…^‹¡”Œ Ä?`]I(?\ YW¦õÅ +Q ÅÕŸ_¥½võ.]ûÓÀBºqƒ¤h!*Ð=GÂ2B¼f‚Ìõ.-ô¤­BRBÄ&´udEÅOK˜­.--"®ë)©n"¸JÊʼnUb?FÊ DØrñå’ áF EÂ'À÷ t/"ÖC2H¸®LGj’V•‡š#y^Ó!Peü”Œ/V‘·ûâ=³Kèdˆ•¾ÙFjûD¾g&Ñqp∶*’nkè’ŒcÉ0Y/íôTB- í&p2¶¢z1(´Pc$_¤+‰Hô0ÉbQb¤4è=DñaQ`Ÿ€½òaȽ8{]ˆð$K„ –ˆ\#­¡ë1=;€XDÔAveBÉ\|tDᡸrdBPô‡¯¢$ãôTIþ°*çüžÀw©Ô²FÆÌ=<ù÷ˆ{6BœÄ²’`ø8vÏ—HiiD%FpD\É&ôCDM"#çM™¨×¢u9¸óaÙsÇDp<3vH$GÉh)ºí2¶“‰ øY‹îú-M¢æbÉ¥Ýy@/=N™(˜ì?J¡`òòÅ·éUëüÒ3Çi û››Ü_éÄ>³C£$E•ÅÞMZžÆ¨›EòD*wh5™¢×,³Õ U‘T¬2dŒ°“s¨>XaÒ¤z²sÀ½»PHøØ“ŸC b¾ö­—Ñ”?ûcϱ´Zaùƒ«“cL ¥ðó¹é>ÔŠÌ[¿ù'ì*{üô/}–ñän•K7¶©lîqú©idÛ⥯óè G8îW/Þáò{"c3n•~F897K}«ÃâR}¤Âtf‚JI¢ííQ˜§²W¥²·Èñãó‚Gim™™ãC &總¶ƒhGÈÙ*z”@vC–î2¦9wüc­eÞ_|)è0r†xd¶«{ ntöÙ+uùä©YæNÏòúâ7hìo2wöÓìnÅhÒ=Æ'ú¸×M£}Ùˆ•­®Ì3OLsw½Ê÷ߺʳçø™c%´øÃÿÏø±Ï~†ô3üæŸ~ƒç ò±/>Ç¿øÊ¯nGü?ÿòq K|ù{ß$ÙQéï;N3ð™T™<4Ï·¾ö Þ¿½Á¯>û ž}ú)¾þê Þ¾q¡Ïãèô<ñ,G{„òWþoõÚüä… $€ ãæò]žºp¸Wå¿|ý%ò 'ù‰ÑaT"ÞüÚWxìéÇ) óÁf™Tr’…ÁQ¾þú;4ÿ°pŠÖÀo\½ˆ»Y哟|–á‘ ÿî÷¾ÉÅ7×øÂ§†Ožäâ­›l¬.3$äÈ §4ôvHX«ÑK™¸ª„×ë’p+äôÆø,›û÷Pî5 ‹ÃTõˆþœGžš˜ýÝE’Ê(‡ŽZxÝ}äM…-;¦æ*Ì&u®tjÌš.Rj„òb@k§Ž:Q&Óì1:{˜V¡ÈÍ?\Æö˜yÒ féÚu|·ÍãGO“™¸¶}Àöå2&=mR,NPí®3#Ú©Çqz!ÑÚŸ¢»ý¤Eô ì*×Þ\¢£È\˜›'«Àry1U`t&IWm±^yëë%†”&ŸþTã É·nDÌ7™M™¼ûõ»l57yìãçËáîÝÛÈ9…>Saåú"âä ;2ÊþÆ‹›ÙS“ô7’É, qo·‰ûÖ†òÃh#¾gã¥ÓhB‚íÒ%üŽÏ©ÃG˜ÊóöV9' Ø zu=ÝEê'V³,½y…>]æ©çαÙÜãÒ[ïP˜œG§QÝE;šIw]FJgxtΠÞÒyñê-¨W8vrŠdâ(^¼Î&Û-ÄÎ,sÅÃlK· í}2…I$©MØñè&\7…g‚WÝ"%ŒL=J³aS¯_Å4Á±Ó ö3ÔT¸Vß%´àôà8’d±¼½Gù`'q*ÑOÑæîÁ*žS#™Ë‘sŽN¥·AˆB19€ÞõØô÷P£!ô”„߬‘RUjQ„n·QÌb³G¨;è- ¯íãc‚®GÜ‘Éõ#™p°µ&¦qSÍv‘¾>29™ÍˆNÏ'“ Ð{ QeiÜÛ%“IŒÏP­Ôˆ¶V‰³iú³xRžƒµ=â S™Qttnt›d´"ã}&µz•]¿„Ô¤XÌá)6µJ¯Z_A’è––1Š b7ò¨6Y·C€ˆžîÒ de(•a»ÙƒÒ&ÃCóÄ}pÐZFï‰dS“(Åýƒ]ì–E¿µŒ„]³I8:M-`@ÅW®Ëh QøyýÃâfÓ´ÖßX?ä\)Š«¿˜ÝÚÛçö]D_§m5ˆ½LœÆÉI„qµ«Kq f,üVƒPTó"Z9†dŒ‡$cÉÒ £±Ó#TM2v€cøDЇfHH~’®d£8b 1bâÈ–+âJ9ÜDˆâ÷ÐÐñ—P’€Ž¢¦,ÒAL½ëÑNÅ䀠ÒÎëXn„á©ôb×hâøy²±h!8)–Šgâ%E”–CR ‰©†1ç†ÜÚlÇ!¢˜¤—ôP܇w1Ôøáy!6¢)y-B1…‰D UqÀ‰¸Ëè6°w–~¤E&æNáø!IM ’-$ÑG’WG%R…ªt4Á#’EbD$44!$…‡±aŒ©?dwÅ’Lè8ȲŒÜz÷ÖôcO‚£¨];@Ò$tÅEõ$Zކ 8h¢Œ!ExšLÐõñ|ŸDÆDUTìv‹v1¢ð€f£M Â`ÆàÁ:XÖ¡3ìתôš{$²} 䆈åÕÝ=RÄôÀ,Kq“Íû7ÉõM0—_»ÎSGN°pø#„•×î¾ÊööÓ£c|ô³_déæ"ï½ügù “S¼ß~yßDt¶6I¦û×&©÷¶qcƒ ®ìµ¨ø_<;K,'ùàÍ‹”*}2‰çÉÛ&}ÃSø]‡·¿÷2B2ÇÜ©§Ñ•.ïÞz•m—ÇΟfj®ûÕ2Z`19z˜?þÞwÙÚ¿ÄOœz†'‹|ç&‹‡6øøøqêïìóÆþuŽœ:ÎHz޽å7ˆÌ<ƒSs$¼ˆïW¸w°ÈóŸ8ǹC‡xû½[\YºÌèT3uÅ‚|ô8²\ç_ü«ÿªÝáW.\àdÿ oxYöo¿ƒ83ŸŸãH®ÈçΔo½ø¯ø_ÿ€ó_üUž_˜äåwÞåü‘ÃüØsÏóÏ¿ùï©ï¹ü¥GE)ôs·Š£íÒÞ¸GV/Ò7:I¶0Œ]Ûc÷>ÆÐÙd‘r«Â݈e³×Ø@v« ŒMËppÒz…Ù¹Ó´ÔA­ŒêøQ±Ø&n¶9¤q×·Ùݽƙ“§Ð¬ îÞþ±*3~è'Øì¾ËöµMY˜#;:Ï«_]£“,ñij ¬íÚ¨WÞgèÜ9dcž•ík4ÌMʇNLÀdÈ•?Úç`ë.ãfÑÇŽÂþ}îo£“LûÉ#èN›ï]Eí+>Jp×D®õïps5AJ™àÇFyãÎ;¬Ým0ž»Àø\–(S¢´¥W2$Žx»7i]Ü¡ïÌyþœÉêíWøÓò0Ï/ ù>¸´J©¹É“'N1qô/_ZBmÅÌö׸²²‰Q8Ƴs¬µÙÜèà™ C‘ÊèÉ ¥ T-¿0E¢UbçÁuòçž"J+87÷èÈNdyÿµ\b&ÎÏÒ5 h{+ììm#trœþø!V«ËÜþÆmŽž?Ï£ó¼sùUö¯Ùœ~â ¹B†ng‹ƒ½åŠM!LѬLOd©iS «"›°ß`wk€¬35›e¯Rfy­LÖ7QTŸB:ƒ1”#”]Vî7éÖö™ìÂÓtK €$qï®Çà¸ÀÈÐ07®-Òq$FN°å·Ø+Ýg83ÆPžƒZ‰-"QæX:‡§kìøm²’„ÛPÔ¦ªÒ’\jí69T4% ‘ŽIùEPCüƒRYƒš/Ðk·òý$”zEÀv¤œ‰‘±Ùß°;ZV ?¡!$Mª­:÷kûN¤èÌÒìDD¶BSÐÅk¿F[’hæTäžÏ\RÄÖÒ”j÷é­ªdç ô«lTL¼ ÀJ•‘»ê=R‘†7hãõbtI#jæˆÃé$ˆ¦¡GʰèVTš}½ՄФŒj«Š…Ö7‰ªÚØ’Jcs‹‚ì@bŽvÜBM„¥.Bl26— ÓÙÛv(&0%:Ž„…xJLÆŒ‰t•¦1 Û$µ‡Y*Q‘M×1L“„eaš†a ( ’$(®þŒ{åù__¢#ŠHj¿å‘É%ˆ »Û‚ÐÀ£‡iÆ„Z5,aKIBb¬NH'Ÿ&AD²m5‰(Ä„qD¨HNÑ·¨»>„&’¢h-¤z_®beTp“´ñIàà 2ªîèA¤©Q<¢äàvt|ݧ ôèyIºYÓV Ê6Ž£E¶ä"DnS —m"x*jWÁ±LD­†îé(~ˆ ) ÚT%݇´dÒÆÃE$©ÂÑ7|LS!ŽDDý¡¦#À €*=¯)q€ª´Û ¢ÿë?‰˜O”q·ïüH‹ôÏ$ CDABR%$Y&ÂÄ#:Ä¡JFŽé8>®ä¡i2qlK]|7Fˆ"”(@Öec"AFtY† 2un½ù½`N<…ª€Z*tí2†•G³Àsbœ°ƒ$ê$£žã-[BJI˜ž†. T„ÛC4ôz®òçºËÙ!²¢IÏÕI(Rÿ0^«ƒˆ`e¯V¿B:7I±ÐG}w“ÎA¦r¨ñ.‰ŠÏб“,/_eñ»+|òó?ÆÔÉIëÓøß¾û:(É@6bÜ4¨¨›ì»1Ê r®´OZLbx"ýcd­˜­Ò]:‚AÎÎ E5š–´Pj ýýxr—å;kœÓœþØÇ¹û`‹7^ù2ãOàc'N°|¿Äò«w˜žæÙ§°ŒÄÊõËÈe™7ÞÝeòX–/þÕR eÞúÓWyõåÛLžŸç—>ý)t#àkß} ± pâÄ$wßÜcçv›sŽÄx•ý»Kì54²³b!êcꈊ²åÆÖ5êÉ*OL>F`„,]ZD–SS£Èµ]F‹3Ô¶Tv·ÞâÌçÎ3”9Ä÷߸ÄÞö}Nœ8ÅHñ‹Û—Xß¿AºÐÇøá“ä²&÷n®°½YazrÙì£UuI(ivÊ”Ú žxö£xÕ˜·^|‘þisp}ÏF³d½ˆ»›=Κâññy^~ïwÞ¿ÆçÿæÇé6Süú¿ü|êsŸä§?r”oÝ*óê¼ÆÿôWžåõòÿé׿ÿúÅOpúÌiþÁ—~“ùØàÓ'žá½Ò&~ºÃäpŠƒºJyõÙÂI†fRÜýà²W䙡4²êSÛíÑvLn×™^8Å_?7Oxxš¿ÿKƒnÓåùGA¾òîeÔ‰ žyòï¾ñ>RÏãÄÜ!Zˆ¸¬/Ý&sþNªNTF´ºT÷ÇxëZ™éT’gç‡2ßóÛµ}>ùÂgùäc |õ;Ä•—opüì£fˆÂR w¿M04@(Ȩ̀º^­FâdŽL½«^ÃN%HDI#nGÔÛÊn—Ñâ0ƒcµV“ænǞƳ¦ÎDL=n®T-‡#SSlmˆTÔ.±ÙÁmÇLÍöŽÍr÷ò:òî5úç'hh“4o¯£ôl&NMQ˜Ñ¹ùÁ2›·ŽÌfjÁAM»,·:õ y±WʉnWªlĘ)bVÞãµmŽ.œg2?@ÉvhÛ[„É"džÆÙݿŋWî2-*<öÄ0…£ ïßKóÍû6“…Cé—ªÜ\Þç/\`ôðÞzõ CE—¡‹ßX#5’áìGŽÐØs¸t½…¥FL[A¦EÆH°]V(um‡¾ù)|5ËÞòMÔhœÁa;ܦ{ o¢Àòê6{»>Ÿ=7‡Ónr°»Ï±ó9n_? ó bv¶Èá³Gé–J\¾øéT’Ù…sQ‡ÊÞb$#”Šy™é‚ ÆÜ¼Ö$êö8þÔè©"ZO¥Ñ\§Ò±8OrD¦¼²CÏ­ H}4"‹¤´O_.AÒŸd¿Þ¦Ç2…ŽEM±´$9Ñcmõ.Žn±0>  l4WÙ\ße¸ß$×7‰ dØÜÛCðÛ$“itË$lª¬¹¸DÌ›CÄ~—š×E0‹hЉäîÇ :A@ÔõHôçñÅða‹nÇ%r#Ü´ –D¦ä!*þIì´iïƒm kЪSèÄQbî•»,ämržÄ*q&@ò#̃&ù…ct»>7/¯Rè×èDpcJî­Z‹B~QIãA©Dè™LŒ©xNDÕ‹ˆ½AVˆ‘è±µQÃqDfÌâ¶ÖvkèšL1‚:’cëŠh"»IšQ #1²ì´0rò É)“†× ¾Tb´0Cb"ÍÍ­u¼mŸ‘C9ìÀ¡c»X¸A@2a`}Ô76±”&Å”Äëm~Ø/h˜X‰$–iý ¸Yýs„ö¿xcwiiÍR E ‘!¡•Ä 4¢¸‡êKàxHZÏI5<‘„äÉ(¦ˆXÝ.¤ B_@Ñlå¡#å7M´D„`ûØ>hFYmÚ"¾d ¥Z$È;1Ž ‡1¤ ;N¬¢+Š(ÒDÍ¡_ Ùñ$<£M!°ˆÚ -i`Û‰žH7ê ¦B= '©+]š¶CÎ6ˆÍ‡ùävO)BT%´6Dº„ûتˆÞ†£c ì· øá÷±û{:Í(" UìÒ’<4 hJr‹ÐT‰;=¦'‚’Viô꘢F:LÓØ¹ò#-25w? A‘0‰XUAQ¶ JÐWè¸2Q dÃÃ$TA@ˆ0@D$É}x>FDºú\yû+Â…³Ãq"¢Œ„vˆº"m×GUt2–F„ØADÐõ‘,ÃÔP½ˆvÐ"n‡ ái>Íݱ/‘ÍÈ„b–ž×fÿöû†Üõ4ý–E®€rÛ¡[Û aéÅîì•î² 2…QvÈîbƒŒe!©hv…°:LߨÊV½Äòúù‡æ†Ð“:g’"ÿþ?Ÿ±ùaNœ8ÇÚÞuo¯aÅý$†ú*h´KÜ9°ÐIÅ1H8I—êv™ô Fÿ××¾Â~ÃâÜôiúа]«°ÛiÓ_œ +õS–išã¾ÌÖ–ƒ¨ë\x$ÏZÓåÆz“3}1¹ô;í4íÝ[ÜoÝãÑÑsüŸû,¬,²ÿ•ÎŽ;ÊßøË¿D£Òa¹¶ÎdjŒ ã$vhî{¬mopêé'™.|ðýè¡ÂøGó4W7¹ûV™©…!žyòcì¬îðæµ? “Hqú‘O“ÈöX^¾Ëî¥ûäÒæ_8…"UØxû>‚f¡ /?Oœ ²p§rÏ 0•„9ÌÂÑâªÍ×/¿M£´Ïç?õ<}‡fxýí›8öÅÃìÝX!ÎËüìßý"õÝeþÛWÿˆ¢y˜GÎ<ÆP¢J¹²ÉV×`t0ψÓ°KŒ O“ò ^¿|“ï–¯ð³gŸâ³33,î—øË/òÉCszz˜ï^}ÌÔ~ì‘s|õÛßæ^¥ÌßþÅ’Éeùãß‹[·ßåégžãÂá ®]Ú"NifƒË7ËŒœ:ϯ~ê îß}“ÿí7®35“â‘ÉIR¹±zX+³µ»Èf¦È/>ñ >uäÿáþ-v+ŧ?ó(—W>`yñ6?óܧ(œ9Éw~û›´òiF't‚ò#C9â}Ê{[X•NÿþxïND'@Mæ°[7o‘Ê qáÌq:{û¼…ôÌ!ÆR*нËÎæJß(é¢Éýûï£)2ÃÇØi^C12;zšËw¯±vë gŸú)ò‡TÖ?x“‚7ÃÀÀ1¾ôþËX±Ä_{æ>‰]ÙãÒo-Ꭷxä…sj.o^z‡Xä©Oÿ$¥•=.~çO± Ìâ£Ó™)³Iì†Å1šê2Ѧ‚%:Dq‘NÚ@Ø]Ft-R™4{ÝùH%?.påÁ QMäè©ÓtMî×V˜(ä)ΰ²±ÃÖíeÌTžùÉC˜ºÁµ½ ¤°B– vFÄT$\)¢]±É!!eª¡€,$¡ÝD‘÷‘Âq*ªÐ®aä3Ø~ˆlûXªJ;Óp¨>ÝF—ÁÑAªK§ð Ù#GäD›BznRfm©Š‘M1Þ¯ÒÝ´éÄ=˜#>hbíîR>ÅÕê­Ê.‡GæŒ.²£Sïi„Á>†!âØ1±“"™5ŒÕކbf1½UnIJT«Ô¢B¹Ý ·`e##‰¯é¶M«Ñ` Ø‡¡ØhnAÐc¬AŠ+á¡öUàX+UÕ$ùÏÕßüY÷ªÓsyçÚ:®ßz„Z !’W¥«xš€•4‘bpº´3zl’–4¼^•®i¢Iø ¾)cVB<:±D1¥@]¢žèJ*Š£âéj'F“ ܤUO®[)‚šªvQL…®àbÆ"‚eÒ²=DÏ%kª8Ý€Ž"“r5â^€#ûôd ‚6V/EÛí ¦,LjBHÆ[ˆBÑpð•<‘éDé–ˆ.Iì*]’¢‚Þ 96–àfµûðÏ2 ¶ L‚ƒŠ´õbwÅt¶è£ÔÄ´DOÐ4‰¸Q%©ä©{!j®GûÁ‡ÖèÂYÄØGr%lCÆ’E AM"tC!¤ç»øŠÎPJ£æ:tº™D'&ReDQ r¢‡.¥& „.27ßþÉ}ú#CÀ‰Zˆ‚L[H!†>`™R àˆàv»$D_W¥j %·I,Jd2– Ó–¢ MRK°qí­=T”:F]’I&b,jÕ&ª#gç°[[øf„^ÂŒ2Ý2{µmºZ‚Cã"ª(#÷çX®„,¿õÇŽãÉ'ŸaçÞMî\^ä3g&x=ðÐz‘Ñöb¨Á~¯M1+`¥òxJÕÞf³t@.™F“BtFÈ¥”eêN£ná»UUG eR¾MfòˇÅÅw93{˜Ç/<ÆW^~›7.óÙ£xä›Ý6·_}ÓÏ3uú ìî6±Sìù¼»»Aí¾øcŸ#ý±sãw~Ÿ/ÿ¯ÿ;£¿üI~æcŸgéõ»<¨®cäp¬Ûû ÷rÈs“ ŽØ-¯°^­1è)”ƒuSæ‘™ãX‚Á+o~‡®Ýå©g>…œL³øÝK´¬:d’#‡rÌÎ?η¿ö-ÖoÝç3ù¯pæÈ£üÞWþÕmÎÍ\À4†hú5êÅVèË¡z"ëõ |Ñápa¾E¤²¼Î;·–8yø4gNϰ½ØâÆ›ßC’al°€cåL°³}—oþÞ5ÎþQ~ñèi¾ü»ïsûÖ"Ÿÿ7?³ßæßý»¯ñ Ÿ~šgÍóíwë(í>ùcOñæÛUî.½Å3G}”ûö%掓k$ùþÕבÔ"3$R2æ$Q6àîë -Ž=Ž(Êìguž7‡xçλüö­wxì“üòñA:=ŸŸÿ¿ÿ¿™}bŒf8ˆ ¬¤¨¼·ïQÛÜgΡ=”`X0Iˆ .ÞüsšLXd¬Ø`av€ï^_ã­;ËœÉ&Y˜9ÂàÔÜû—ß|ƒc‡Îpø©g¨•)½}¤>²FŠšä;[´:2%YÅ0CRm‹œg²./R­ÖJ`$­²³¹J I ÏÆ%Zû¬°€bÃJäqxÔddHg¥ÒC5*LLŸ`g#buÁþÝ}Ÿ‘•\_†÷Þ©³³³Î³O)DÙc¼W¹ ;«:zN‡{ûÜ«LÿÉÍ&é5°Ô«I¥ed%KÃn°viFCÓ œõ¹ZºOE+’IMÁâ5j}uffŸa@I³ºò*k[khb?çÏ¥i¶4¶WäC Ó.—ʯ|ßcÀ(sì©Ã3¬_ß!g·±Œ˜Å;%¤¾~.œÃn+¤´s‹B_–ñÁq¥Ö²Âø š»CÔ™>Fé°üÒ%†œçÂl†v¸»åRÙ­ð³Ïb˃ìú®¼y…\fœähË«Rj€§„Œô§Ñf-bµ[%—R†±ó&v¯FÚÞeD=8:Äò½o²»YáÄéŸÄ2”·.¢¦ò… *;öÃ+¶>zMÀéö#'Û &u.¿ë°]_çé/Î1-e‰ziîÜ¿Ëío…Á³ ü¿~ân74–_ý]n?hr¸8ÎÜÇOwú¹}ûôNœšà­»ë μ0Œ¯…\ûÆ6NpþSGH›ú»_Gðu~åoý=º^?øÚ2(qò±£Ä{Õxƒl sëvWåÌ‚‰.€ Gôz÷¸ºé39<ÌS“¬º{•š;÷ñd™çŸ;‡,gùÎ+¯Ð•·ùÌãŸAèø¼~å s‡æ‰o½x™ñ““ü•Ïþ"¿÷Ò×øú+—øè3gl`œ­Õ›ê qfSË09—b»ÿÒnÄñ¹*«üãßøM>ñ¹Ïò—/Ìs¥ÙáŸÿþoñ×öi¼ºÆ¿ýýïò÷þ#|bî,¿ýë¿Ç½•{<þÙ29™àþ›K¸¡Åá³û‹%bÎSø“ÿøÛ9•⣟øYš¦Àò½÷)_ÛD/°`Í!’8Ú6;—êèÊ$g¤Øâ>Ë÷—ÉšcèãXÂ*fÝçž“£î%IÕZ¼y³Ägž[`nz€/_|Ÿ¾”Ë¡b?ï^ I?kRm‹,mUÐ]ƒáT?²Z¦™„ÊNšÈñ0‚#…e YjA²IgÏ@Íf±½‡¬=#Q#0‡Œ º½ MsóÇÙZ;ààþ ÏÌ3˜˜a{ó*«û¬#ä¦FÙß¹‡­ dŠTV¶¨wÊ9„ëç¹YÚ"-Û(b^#E.c ·X¾¼HÜ)’ŸïÇi®â—e” ɀÊê6b£NÒd[ëkhé>,9I„FEtØ^s0Ü$c££t¨qgí6ÚãÃ'im¯ryé2cˆGOÏÆ6ïÐØî` õ‘™$ØØJX^À ˜ÄÉ4i8j˜C–J„¾K &ˆm‰Ài ç†ÀÑ»äB°áS}ܰƒÅý#>ír•ŦÀ@Ê öð‹¸_Åq+Ä=•dŸJ½¼E¥Q8>@¦ÕÍuŠGÇ©z]î]Ybv2ÃdߥN‡N/@“ì³Ç@à ×’x}I±FGi‘b@×q»%Ê¢HAôP’ÃÔj]:Â>ùd–¸S ²IìÀ§a×I)?D63H¾K—ÅžVc·W¥c—1ZiFÆú±’1+»»e %k’JwqD¿éÒ©îQ<Œ0$²³VÆíTèO($‚!$YFûëÊú0Ôþg/(®þŒ¾Ú+7¸³¼B·£f³(¢ aˆvé…"ºRB"[ˆ= Ò&¢ã…>‘Ôà L™$Jèa‹!±¯âª!º¡4ººLO‹±|“H •‡õ/²_$A—½^€*™XºK×OÄ1rà!«>¾˜Äíu±µ’ï’ÍIÔqF"áÅÈžEOè È ½X&á;t%‰@ñ‘E…²®nƒ¢’Ò6uÔ¦†øI‰¶ V7Æ5Ú±‚£„X¦Î‘~ë»-’ˆ8aˆ¨'Q$9êR¢ƒîH(„1¶Š"y¢±BìCl‚ƒ#àl(°2³§K’# 9 ‰¤ˆ.’ˆbBbz-—H”éï3ˆ”€rÅEŠ54U%ÀsbTMAb<7@”uDB®ÿpExèä£ÈR‚‰+ÈaLdxȺGÜRñT% ‘%O¶P¢É‰ü' H$Sè²Dà ¢‰tš(2(Õ+Ô?Ü{6F³´*.†[GêK`Yƒh-[ÙÅ4 Ä^t›v#ÀÑ"’ E*â;i6÷רº·ÃÈÂŽžb£â²øÁ Ýcfh–çeøo¯­Ñ“E2ZL©Ú`È”É ä8Øp8hÕIJTãÅAƒn¹Á~ËG+hb i? Ÿ!uª€ÔNRÛÚ£íºÔëe,Åcæô!Ó#üñË—)ínñãOœåØü^¹qƒ›¹ Î20ýÁx™Òý%ÔÝ.§Ÿ\à®×fwi—âÈÞzï=^|ÿþÁ¿þ;ýø/ñê?þŸx÷õ÷9õS?C*eâ––I Tü*¢Ñ¥[/£.µÉÌL‘ïÙÞÛ&£‘W›¬/?`{}'žûó§åÞ{ßçÚò÷9zäS?ýµ­;üé÷^¤³bó³¿úÃçÏpãÛ_áúòENú(ǧG¹Òܤ³r*›a¯^ãRë.žK23ÏÀ¹Yú…÷Ö°y§K²XàÌS¨9ƒ¥‹ïâw*Œ>q˜~¥Ÿ‚[d¯v‰½mòR#œ?s’K¼Ïo|éUžüôGø‰á“¼ñf…Zõ&Ós3¬>ðyÿ½÷øñ§屉qîl¸Üzçuæ§§X(²Ý(1k s·VæA½É'ŽA­ Ü“Ú4cê+‹§L=ÿ»;e.-×yf"ƒiäx-:àÄü,Ÿæò-~ãÚ%~å3/ð‘B‚µ²ÏÛx…é$­tŠ|Ãá’ ªù„ŽNÐô°»wpÅ4‡†ça°Àjé>7nÔi-öø©ôÓŸ˜ç»õ½Æ ÜÊõ“Oñ)ÄÁ*k·¾KN¸Cw³ÄäÑӔܘR úûe,±„"'zJ=Z{‡GSăÕýêK ²à Ob/»Üyos~š¡bŽa}™ÛÍ€f)àùól߯óþn©£i»Œ™žct"ÇúÕ5nÜÞ`Ôìgt~‚áœOYa?Oeå"eiŸé©ÓdͶœ&•ýN›v¿ÂÅE‹ÃƒCƒ; 5hûýܽ\æ˜Ò£¥µyãA##&©4yoiÝQ9>ƒ³yÚ»>7®,£tŽNbIMZa†äS×™Ú6H Žq»Çñ±>&ÆC>¸¾‹d+LçhŠq Ò +xnŒ>™dôø ­v•¯^dxü,3¦¨Ý~‡Õ®€æë æ õ³SÚeÿA7£‘Hj˜™d7Ë^§ò:ª”ÃW†i;%„F‡Lÿ2“ :ÕtëÛxÞF¶@B3hT6°cŸ‘Ü(޶†“*ö›´¶=FÏa×]J+%žºpŒÈ°xç½(5NŒ0~hš†$±ºuŸD§IzdœšØ‡Òh ¥jlz&…~RRÌzÕÅL$,ªxû]ÊôUÝhwú …}”(±2(= u(¢g‡TV:L(Ê1…ý …°^#jÄ¡EâÄ ©Çþb“Zº#ßDßtIX£TŽ´ËLov¸pŠ›­:[ëëä-‹©ÉI %Ãý]—úþUò£}L$ǹw›ØÔÒè!A؃†‰njŒ["‹{!Ééi„ò.ÍEi9)aê n»Ai·Áè¸FA¢íuˆU Mõh¶ºÄÕ:é±1$«@þúYM"7Y Ôõè4,K$§ÙV}ü’˜ éÁðE6ëM»FÞê£?#‰ñŸç]ýÀ½úQ¨ýƒæ®âÿ.|õîÅìu=TÙDÒ:´Ã]Ò‰»]¤D¶Õ"lùh~1ÔµAl(¨ºƒ ÉD‚ŒD—Ø I7MÐì„z!!®&aD1‘"êqÔ¦­eÉk„~«‰a?H]=5%Ð ´N„b!9-]#m¨=›ÝGÕ“ØA¨,Ñ–ò†N€ë;冄(†hŠ„¢€*Øb„ Ú(]D‘ô$¤.ࣧNÝÑ8=br¯"‡gÿ_¾þ3J²Ä<ÏŸë]x“ޛʪ,o»ªºÚÂ4º†$$EŠ%­üîjf¥ÕœíÑ®FšÕÊPZI”È¡$‚ `€ð@7Ú»êêò>+³ÒÛðöFܸvTÍáHŠsîï87âÏs¾÷ûžW•¯‹'(¸ašœíÉ-:YN)"%B+๚Q|¸¸•D•|Z­€Hp7>Šg£DhÁ£ã>b"jW¦+khVˆîÈ´AØÅ³d+AÖŠ!Z…úÝŽ‹W‰Å DW Ýlá‹ m»ƒ†ÌÞÝv°By[ª¢%èÝ*åMÔ¡Ã}£lïìáw|%†<ðl¼^š±|Û.ðÁWÈñÉ_ Ýipýö-Zm‰>Ycn&Á©ÿùâMÝñY49¤Öö‰d“ذ„^n°½ÕAOiÄ-…>y='ÂnßChø^ž^–T³‹ •>}©ÞbéÕoRO*|òôyÖ· P_f(-!ÇuÚvšäPDkó›k=&çæ965‡jÀò݇Xû{Š>Gdùêö–œççö$uú<ß½Èû¿õeF?>ËÿÜ_¦´x—[—? “Ï“îKpÿN™^ÏáÙ_xŒ¾‰!^ýOßféÆ_ü«¿BþèÿìýKÒn’¿ýw~‘ZWäÝw^'?+"õFYysÌÑ€™ý9Ê×=öESéOe™šÁ+´¸\zH×÷–ÉXYj%‹ÝÕM’bÈg>õM×â+ÿáÿK<¡ò+¿øs,\Ùa³Zå³gÎálÜãö½"¿ôËóô‰C|ù»ß⇠ùü™_!.$¹¶|ÍX£ÝñØ?6Å ‡‡ùƒ7>`eÏãÿý7~:6ýÿó/ùħ_ä—ìãâ[;Ü)\å—¿ðÖïìñ¿ýöïóÂ_ú5Î;HáÞ-Èöqx|€×_yJ¨qöÜ<®PãîVƒO¤Ã@À¾ô¯²øÂ‰³,f;|ëËßåð¡Ã?yˆ]rS£\»ö€ÍÆ&ñ±ƒì Œ–öjDÒC²jÁœ…x„ö ã˜ÛUn÷hïe™Û7Ìñƒ?}gïlóÔÓ9=šd¯ÕãÛß½D2§sît’XÊâîÒ:Ìí›DI´™TÒª‚H’~3Nb ¥6»Õ&®Þ¤/—Blj«]âÂF~ˆMù.ƒN ÃØê60™ô m-`÷ýw[ žøøyÙö4­Í _ÿú«dGž}ü Ê™q.ßÿ:Ù=8wö)c»”6×ÉXJ|µ3NW\CK–a©ß˳ÿÌ~"ÅÆ[ݤ^ϳW08qÊER¬xýœœœD¬ÖéÓ}Fús„½ýÉ,ûå–eZ5AÃD´ê±­fƒÝN@J$Öé1~(ÆÌè |·„ìÔ8cCޱ±ú¡ å€J´"4RDJ…RXeT;D+^cùáNŒ`x|šF¥‚×Ya~ê8žÑëlÒã%ŸNËGLÈØ—DðóÜ\ZfÈ(säÀQŒîú@‡t¦Çû—WiUMfŽÌ1Xk²²VGO0<”¦°x›Í‚ȱã3Œç‡YÝYVìà­NÙí‚™`y±Á@Bå±ócöêÜ¿wù'IQß|‡ÅKÑ¥óÏ~ UjpçÞ{$“øÀ†¢ ù7l§ÁãÓ£8]›…rlºCÓyä.ä24ËWFÑ òEݮЋB Ù$Œ…„v©Ú%—J3¼o%²DRÙé<¾ÝÁ ºˆè´š´È!²BœT½">Ü@=<Áž"R¿÷s‡Ç8¸¹€$'‘d)rñ¥1Ô˜‹çtŠ fBÊ4ƒžë¡i.¢fá RäㇺŸ$ò\|Å'ðB$/ H‹$\O èi†’@ º¢=QJâõ\zr-žÆìy¸zËKawC$)B4|<ê‚LL iÚž Z"B\¼®€¬‹ô„Ï5•Br"¼žMÜQ5è¶jÓçP ³"M ’0=Rè‘KD‹€ –1?lrù¡Cdʤ$§å#2¶1P‰AÆÃŽ»H5xÑL>’ºb€ÒÕˆÌ$ Éîb ’beZ‰F'Gq"Ú‘ˆ¦h¨¡† …ˆ„®Jà X88V€‚N¥ÚÓ{ ¤:UÏCõ%"ð\UBQ_Fô"nýIÙóèãO㉠j#@Jù–u‘ tÐ2"~S¢c>™Åt§]Ç Ä@ &©Z 'h3UO¡R©`˜}Ù˼ù³—zéÄ%“Tÿ ÕF—ˆ]ŒœˆÂYΞÓEUcèªJ*›¤¾×åÆÃ{¤gG8Üw§¾ËRm—f7dÈL3;ÕÏíí*ŸÞ?ÀÕr@³æãÊ>™ õH¤°»ÁL1–Æ ;›ZœÁýIFMX¹·Î‚#0s`‚¬wW6IèƒÃdâ9’#)¶o¯óÊ÷îß'ó›gž"Ò$Þº±F)|ÀxršÉ¡3”¼Û¬Þ¾Dvh†c³§ØXÙäÎý+¤ôCxÿ*ÂÁYMåìdš“}CV–Ö–yçÛ¯ò‰O>Å Ê9¾öÿ€ÅÑFFQ‚6çû8;9ÍÕæ&[ï­bj!£'ØllÞèñØ‘Òã=~òÞ»$šOOïg+ªr«òÿø‹_â‹Çrçî}š~•¡ô(³Ù,GðÖ{ì¦KÄb:û{ÛÎEÖ£ £cg!f£¯Õ8”$o™ NÇ){¯Ý¼Æ`Âá±ä(…²ÆÇ>u„§ÇèÙ]ZA†©ÙIö6רÜÙaHp±c¥,~õЊ¢ÅÒôÚ> +drt¹WçâÒ›Ì \ ß(—Ö¿Mí^‚³‡Ÿf³q›rm•ÇOýNå:¯½Ëô¾ƒ õϳZ(ì싙П&ètm“ýÿqî4•R‹¨ÏÇèˆ|îøž=4ÅFy•w¾½Cúȳ³"q¹Ç½Òyöó?ÿÊSË»üÑ««LÍÚÌŽ¦ÙÝNCè`ËA+d¬31>MS°X¸±A¹¨1}B%pùüÜS=|˜÷o´Džœ›!2 ¾}cƒaÝ& )í8¤S9Œž„Öõ0ãt=_:{€'°Ó,Óh…Œ›1&&2ì[v ,WÒYi+Íþ}ýü¥§Ï°ÙÙÄ”5fäaŒXD¨v?,›7Ù{¸Ë®ãÈáF]¡°[Cηy¶ž/>vGUèíTé÷Kœ;Áx?ÁN—Ÿ¾w‡ÔL†ÉѼN z6a9…€Ã©£¼xø «+{ O$8šæcG±Z\§¼pmî<™#ì=xƒÖúúc¤¥OŽæ86'ˆS $Â^@Ç èáQóË4«ïóOsx`€Òn'Hg¸¿°Ëý›NÍÅ™:1ÇÊn[Ö˜0 I:jǶ ŠMê}=rá‰øƒŸ{âI¾xfލå Z!ª¬ð‹ÏåÔÌ,•F‹öªšF¬™¸m°OÄmúä-‘Ù3£üµO¥QrБÜHœŸ:Ä‹O¦²Óæî¦CzÚ§¯â±³)â'P¼ÒZ™³‡Hò«'÷qv~†¾TUÑ€'ŽÍð‰ Gh7ÚÜ»]ÁV"2cqe€-§‹ÜT˜ÌÔ½2+u=kïŸÄnéÕªx‰ UEÐ|[§Þmd,úRÕm‡fXBŠ£t: Å2Qâ šA— ]#­¥ÉôõStKll”$Ž<¬!:å ¸ö2ãé)Ôì[ˆ ›”ž'i¦ÉjÕGJ¥ŸEƒ†a‹Å0L íÏì]ý ®þ cýäê=ºNÓìÒÂ%DÄ.È¢’‹Ó)ûØ’K6GªéTÄ: 3 ¨ç‰!i5$9Üs‘‚Ž©º€/‡èŽ‚àɸÑ ‘$×wð‘¥Eéõ$4C%!T;M"Ó á§©ÅÂzSuqU‘001Õ±ÕCˆ‡ô“QUÀ5dS"ì¹ôêñ˜…F”l I 0“"¶ª*’èÔìz^¤ë>š¦ˆÛŒ pL=p颃qxÀäF¹DàèHž¤»´“aGÇMØ”h:tѤoðíç€@  Ñu‘WT±D—úÆGaßì1=Œ˜NÐ  ÅÒ0œO b Šj¾+#2~Ûà <²II ©vz¨‚ŽfxxxŽŒ*)(šÀõ·?Ô4|â9èÉxR‡Hˆä82>íšMèXqb§×¡4‰"„i¡æãô|z¥B{j”Ÿ¬4I$ Ê6Å®K:CJÀƲO”7èOÇpŠÝN“HªÐeTi–ÑxŠ^÷!í½&É)jmŸÝ•»L<;Í Ïÿï¿s“Ö›ßB’-F?‹å¥Ù©í´é” f 24œáî‹”š.}‰aäÁfß(…õ·ß|•ùçžbx|ûæu:©4K {¼¿½ËŸÿ¥ç9÷Å¿ÂKÿúŸqå¾Â쟑§^xú÷Ø.ܦ›!7Þǽ˗¨.Wxòç_$·o”׿÷JÕû¼ðìó$¬<_þÁ»T‚N<Ædâq.­¾ŒŸër09ÅÕŸl²i—yö\ Í™go¯‚(…ìÒ"Œ ÄÙYQ¨¨eÎŒËÄSÃܯøÞ›osÀÌò7þÚ'Ø(íò­ïÿ€¿øÌÏñô¾$ý[ÿ…û» TMä·_û6¼lóùNr¶o?¿ÿÎsûÚu^8û,GæÆhù5.^…×®¶ù[Ob&•æîæG‡N²öà>_yçU¾xá)öæxéµ[¼WÞäs_xi³J=ô™Ëe¸{m›Å ¾øëÏl:¼vûØŸÔøÁ;_cXÒù…Ïý:÷\Þ|÷ÛüOŸ|‘´¢ó»K·¸ø•ïQ TVÓ²¡I!Çç'ðz"ÛKKlº I"7s€²[¦vg“‘|š”®#Ë ë‘ÆH¾Ÿ¾tœ¯üÑ»¼}å>¿ú«Ïr&—£lwØ-TØŒJ<;7NTyó~ÈVKáÄñýÄc ûSqÞ\ÜåÕ…;,WTÍ`ug™+]ú2C„I¹Ù *Xñ€¶ÃX*Ž0ª¢n¯  Mª[EDY§ÛnÒ©{\x¦¬5ÅË/¨Vyæð93ÎÿöÁK¼~³Je·ÇË­ žÇêªÜèm3q`?’Ôàæ­:Å$/¼x€¹lŠòo^e$ßàÂgްL’+?¾Ï¡r‹ƒŸêÃúx…9#Áµk—YÑbÌ aŸ$qyñå®Êã3ý‚ÈíÝ21ßg>‘dyËæÕíþò¹Ó(ˆ´pŸ_ºK'.0šêG5ò,–ˬ-ßçñ¹QÆS^½½@y±É¾óûñº–7Ì‘œf£|•ö½=f‡.ÐN„ìnÝ%•™c"–ds÷Ý&ä{–µÍ6›‹oߟfff?µ¦Êž°ƒ ”mƒéA•ÁT–7¶n¼»ÂÀŒÏüÑYF#‹fϧiù$k Ü\­²ç™ÁµÛkôiTÃ¥å*Ù‘útŠÝ76i¤MÌawu »WàðäŠVq£ËóÇó (96GòÜp^½þ€ã¹™éy¶W$D­NSð1ïo3u!‹bZ”¯tœr815ŽÝ¹yq kNGIIT *v‡Ø@‰F’–Ý!ˆ;²ÏÙé)J; îV/³$­1œ8Ïh?»ë×è‰* ŒU‡jäáu}¾xö MÛáÿ÷Ã7P¤ƒRæø(˜*…¥ 6Wö0óNRu;fæè,ݮăû[Œ&Uä\]·I«Ð%`GPN Ø=ŠÍ*íçž ÑöùþÞCThÛ2NËe •¡ÛsYÙ\A5 >sæ/]\¤'Ô‰ÅL|  *gMòöê*4[ø¥ˆ†¨pt¾Ÿ¸¦ñêPz PÜl µ±Ã 2Av.ËgOóõï¼M™TŸÍ¥6¬Y%´h_m±«µ™9•Al(4÷dê½.)ÝÅ Eîv ¨LMõÓ[­Rn®bä3ää‘v% H€ë0áKœ=LàiBu ˜G9¢â÷\4Ç!r²zHÉjÐÞq0]“L_–0㲺YÆ+¶žë#­õ³VÛÄ/®Ï"n&q¼"ñG§ø¢ >Š5Óúp±ýÏDƒÿ-¸¸zç!ŽÒÀÁkøRD&1c2;n„Po¡)’¤• Ñ»uºa Ë• ¨›{¤ì,(’à £âJ7 ruP@S#D„Š®{’K·)‰1l«Žé‹@;¬ƒ*>òau{R•ަ#yr¿„ZÓð/ P ‰P‚®- ÅT\áZ Q;Œ¤ºYªN Ë ñ4…0G‚˜­ÒQ[¸„(˜b?0‰’ Ôl$3‹è¶ƒÑÓñ¢ˆ£c—w}zI=ðT(„6fË`T´ÙMš„~@ĉPUZ-D]Eì‚d’‰W÷èäÂÕûy°Ž'¬wñ ]“0Ô8Žï¢¨ªbàˆ¦ õžD*æ¢ù­°‡ ûºI·ÖF EÒq“.WAC,Y&ßãæŸ˜Ü÷=ùº$£¹& ¿‡'8È ðGT²V‚¨Ü¡"´0Ä!’ D ËéùmDÏ«”J ë-¦ûtd!ÍÓÓI^¾QfÏëÓö ôÓXóØô=b}ƒjž^T'žñhu$:+"q1ÙMbVM†N•¨„¬ÅÉò`£ÆâýËL?Ê /|šÆF‡•ËßäáÒ£Óœ?s–µÂC~éÜ1¾ÿÊ=:1…çÏLs~nœ»k; Tb“Œ¸Iž?– q£ðæÃ»D¶Ëà©ÇyûGÌôÌ ?ÿøa>ý%~òÿŸ½pžÜÔ8)]¦ÛèòþW1džùWõó¼vý>_óó#³¨‚ÆÒÃû«ž;}€á¡}üóïüïܽÃ?ü‹ë]F³q^[áÉçñªÿ×ÏåÇwoЮÓñWÉöeP«v¯Ajb’åBÀ…[D<Öä‡o-ro}‰ÿó'¾À¡Cc¼þÖxí¥+ž:Ã3gq`r€œã~ë|vÿ!ZËD6‡[‡T¦Ç[?}‹ŸÜZãKgÏpzvŒåvÛÛëh­'§f¨Çl”n½¶Bßä çŽæùîËHo%à7¿ð›,ؾõí/óâOpfxˆ;ÛuÞ|ï¤b bûŽaŠ2â½w0†ãìãdŸAKÇ+¤2clU—yÿÎGÒNN)Ô²gas}}ô „ Nžã3§O1`YüßÿÍ×ùØÇÈÆL~²v‹Wî *iŸ›'á;¬/¬1šW886$88JÆk tfgÇ©8.Mï!S¨r޲ø³›bâä$íÝÛl-W˜>4IÍ‘ÙÞÚb*›À·Røî.ƒñ k+=Ö—w9~¢Ÿ´åc©1Æ3¾öò§Ÿ18;;Í}ˆ¡”ÁK·Ö±Ý€‡•m¢œ?s›.7®ßçùóôâ=Þ¾áÆ›÷˜lsðø$ï=ØáÆF™3“Ç™ÝgQˆÉÀkø¼¾tÃ9yìš¡*ì$™90=KŸdq8—¦ìÁõ®@èØYÚ¡Òè09ž'74Îjåïü”ÿJ,É+«7xzb–½½;­%¦óqfžþDŒßùéK´š!†¤QòªDÛ5ž{ŠŽÑ#^kqæè>.VlºUŸfóa¦‹Ý‰!Ô-Än -`úm/B2L¬žC,Ù¡t±í$}C1âI‰ÎžB]¯‘èèTÃR0Œ‘h(M¼ªE*QÓtWÉÃtªx"ÈÉa:J“J¡I.š‘A•] vÉJ‘ d"·W°Ñ‰Ù6S#Ò²”¤ ±B@ š(Z1p鋹h²ð(”d4UÅø³WƒFƒü›pþwÖö×ß^#0E„¦MKê’1û ”€ k ƒªaµEš)Õqñ£²K׊è´"‚…žï¡6tº¦‚vè¡"Š*"¾*!E!A B< ÓôdY—:2v¢‡*(¾ƒÙhù"j¤ƒ¡aÓðs¤…G1XOt1”4^à@$ x‘ÐAêöèJ&¡¥j ´Â&‚,¡¤Lœn÷QŽ¤Ò Zà«1S1iwe¤(p$É£´ Í$#âE ¤ºíKp·#$IötÉa/ðЃUÛDzÄ@ÂÆED@ bȺ(©Ôl—€T*G¶‰Ú!¾ì£É*^àsûâ«kòÉç1Dn»ŽnøàÇèX>ɦŠ„£y´[jR#“ÉØ=¶ju1¤?•¢ÓöÅf:‰ÝÖ»>ªÚ!”Dvo¾ÿ³—*˜t!FhÈ8´ê‰t„–TYu\†B“kõ{Q‘Dž¤a²ÓÙ¥Ön$Iv8O »tv‘jMñÉ)ý<1¥óÝ T:ô̈DC4%^£'“Ž{xBȃ6‚`°ÿtµ¿Íö‚ËâýuréCó㈄´k‹kËŒ˜=FâÃ,.¯Šy>þù'i¶`ã{¯±¦¸L÷ÓvB^<:M±¾Ãï~õ;ü‹¿ù«,|ë/ñŸz’¥j‚>¥Ä_ÿ¹gø?zŸ—Þ¿Œ[Úc`j‚£Ó3,=|H´±Ã¯üÜLjå4êñ£ü£¿þ<ÿôw¿…–qf~–û» ž93Î'Oó+ÿðßãâ2b¤Ï`7ºÇ•{·xlú<Ÿ}|‚×J›ìëXüʧãJ Ë`mÓå·òÿâ/| )ˆøÌÿüo¹ðÉ}LÃ,nlQ·0Ó§HwØ}ð*NoGÀî®ú1²ú$—ï¼ÂýÒC~ãK +¡ó7þíïñ£×oqòà;:À“3ó4Raäð Ùá4Õå2wo.£*2³sû™¶âìU‹´KkÜßi3>9N\É*?|õ%²'?MÎîòúâEžš?Ɖ‘ ¾ñ[ßG±xêÀ!vJeîoì2wîAPáýë¯q$1ÏÉ£ûxye‹>äcÇpdt€œf±Û®¢¶óìT«ôz=ÆYI)l­¶9TÚÅÌè ¥2¸Š… öxýÖ.‚ÛäPÆd@MSdÒ²†&=‡¡þA®=¼‡”Èq<“⃥=þéÍïókGc¨MSaûê.{Õrèø4ó“y.¾³È';N] iˆK¬áFU’,yËȋ鉤L@o«˜·’Î20h’ û˜˜aÊo3šT9zhšÝZÀµ‡·QE•™ü–Óbh_ˆßìc*gnÜäÅ™y"ÑâÍK·yûÖ2AªÁÝëè(9ž<{Ѝ¾ÎßÜäÀˆÁÓ‡öóvÙfsu|£‡>¤°±Y ÙÖ9tê$ƒ¹*7ŠK(±$sz‚‹orpâGûYôüb·á£˜9&sžÓãõwWIY–@ÆBÊš¬>\ÅÞ98&#¤Bvç†S‚ÏVi›åM“š_a0©á{I‚Vu4ƒÝiµEÿÐOžâÅ;Ø]ÅåáÊ-6j$gö‘« ìm,áöE X¸šÎÓsãì¶Û¬™hœ½­N÷ 5KFÄT°D™#Cý¬5Š´b¡Ó¥¾\güÄ,ó™šÛ{ÌŽ ³µÕáøhŠÙÑa®¬ìp¯Q£Ïjqé¥;(ñ~Î~ìI–o.ñî»o0¿ï(Çœ<[原$ôÛÌ fÙêˆè)ŸOÌÏñ“7ï3}`‚¹lŠ×¯]¥ØérüÜÚÅ"·®Ý .Ç›ÏÑz›ÈFŽËÄÜP¥G!– KòÌáq÷6YØiâ„:©¸‡îYìxë¨]DBÎDj\W‘d‡Ž EF,Ëh©jŸDáN±æ2}tŒž¬SÞX%Ü- ô1Ò7FÔØ£C‰Á„ö(üSÎ+Ó41­ØGWƒ’ô¿‡«ÿÊôêÖ‹þ6½ZSµÐý8ŽÜÆ \lÅ$ß´Ñ4z T·•8bLÄ1$À%"‰©D4å*r'Eh††"5‰ÀWÀoÅLÔšJ/ÑC•BbõuÁ=ÀhëØz1jÒ‘|/ -&A° Ú:ž¢™Mß!î*8¡–D°íÓ‘$#n÷( $[Aê×QÚ.`b8­ „÷ÑÜ8½ÀÅÔºŠä`‚Ø•ñ$…Q‰ˆô€lÓdvLçJ›Œã!É{¾ŠáHäÓmZb–ž×ƵUÌ„‹[wA°U•AÐQØqL4/ĵ42ŠOsk'Ÿz’7ßxƒ¡ƒ'qäMP»=9Ä’3è²@×ó ;š¥#ʯ‹ ¨H€,¹t»²²$Òn¸QT‚Nä@;$ ‹fYÜxëCÖØ‘óØAHLÐðE)e`…=§M³S&B%ˆa†2‚/ãK.=¿²… 9`û„V ·â‘ á²sõ£ˆp;naiŒP$…kQrD¼.0IÄdn•YؼÅhr„Ã÷Q.•hlì`}Äs1|ßF "DË"h4 ; É‹óƒ\_h¢öËèvÄÚZmÌâ@&KMVèÒ¦³ëá=’#qFÆG#âÒ.õ=§áø0ÃÉYjÍ2Õ½M‚ŒÁÀÄòºÏå‡WèŽ&øÅ³Ÿ"ÊÜýé¸~ç§?E*•äôL?WÊ[üíO\à«/ßâJ­Á/Ÿ;ÂÛ¯ü€'?Â@2Åoü«ïòð‡ßãÔÙOpljo½ù#Ì#"榸±°É>w’¼$ñ¥ŸûåÀâ7?ó$%ËçÏŸãµË÷øý‹7É‹“HA7QÀ5üvŒËë«üŸž?Ë 5Á™ÃcÔªþo¿÷e.œ=ËÇfÇøêï}ƒÿõoÿ9^ZÙå«?½Lùö5NŸŸ£WkSpãC­µ‡ä”³'Gxgá.{å8O_8DÂ-ñÞõEšQÈèÐ4Çâ£x».Šlë>kÛâ¢Ä/<{ŽêNÀ ÷xÿâC.œ>É_üä _¿v“}ý³™~ZL"k"I>Jh4T E¥í)¡ƒ‘àp§&Ðò-Nì`rb€Él?¸v93Ê©DÈ{·)ßïòÅó/  'ùO_û3F‚Oüi.× ö÷±:ÞGªÁ{ù[­€cÏÒm,­¿Éãó‡1ÍWÜÅõÆÌMë\ߌX¨¶8–N’³bT{Mnö*ŒêŒj·„ee¨J>ûgÆÉ2íFINpæØ!n]Úf­±Ã‘‰%!I¬—àÌܯ\{‹Û··‰r}T¥4åÍ›D=³©°K„Šrh?Úæ.ÅÝEÔÜ(Z”ànm•ú^‰X†šèÑÜ.âuãTKÚ5N÷ #pu1C˜Ír¹¶Í‹ ^{å*%<ŦPß@`>9‰”xùõ%fhñü3Ç™êëç;/]G¡ÂØÓ\z¹Ä%O¼8ƱLÈ÷÷ dÔÓ:xBîã|éð>6¶×1ƆiךއžQØ×?Êâ5Ê–ÄîÎYÛcrf_ÍšÅâ•€˜°É3GöE*ÿåû{´åMâ 5 Öéõ«t:ËÐVÈäÏ“ŒÛœ;0Ék·vyXÛ£¡VÙ¾Õ£°R o2‹á¡»Ñjaf1Ó:ta&“¤¼ÑfxR¡YÙåÁÍ6l’ÇŽM0’ë2!§Ð%ûÆUbF‹c“çœîçâko³´}ŸOœ½@RUùû¿õuºÍ ±N Vë¼ôÒ3xj–‰þý„BŠÕõkT«7™8¼‰á92šÄý­ûÜ_* )&gf†(ëìgq·Ä^3$ªìpxv’åv Ëͱ³·ÎÝÎ6cVŒ‘ñ1Š¥n ÇİÀŒš¥æõ(ÊjŽ©Ñ4õZ )Ò869ÊýµÆR)6 ]»ÀÔPœJ#F«ñ¹§&Й?|ù"É4ŵr£‚¤‰X™>Æ3INšà+¯óÁ•Eî¯mñØi.œ9ÀO¯mPõÚX•sÓ(›×_ý>CZó§c~(ÅÎÒ&ww×!G´-äB?Óáàä,¿üñó¼³±KPÜÃëE4Üßw˜"6aisÛi’1Ótì±´‡åRušUµICFÔeZ% Ÿ2‚%¡6âtµ.¦áâŠqtO!lVÍ€¶*bUL„d‡¤¢Qßsé†]ò7L¢ë`·+¨AÌß&L äMŠ>œ^Ihªú(Œ=ºTU Y–Dá¿ W?¹{§áƒ¤.ZLFñ‰ÊÃHF×Dº¸¨žFä™@ÕiE2q¥‡#ÅIHv#@QBµ‰ß‰£¨RLOÀïvQ]‘vJÄ Ó¨~‡º ¹!‚¶PTD7†kȨ¨*Q¡bÅ@m¶èÐtL9@ eÄÐEÒÁi{TÓ> †ñì¨=⾂—ÒÑ›6-ÝÄ  E‹£¹2.> D-ÌHÅED ¢x Óé6]$ED À“ [x‡ÑR’O|îÓ\*>äåk×ùÌ©SÌ$ø£›wq;-ñ8ùX†? Ý«b'slwš Ù5&§<ÂÑÁ1n/\d³èà©}ŽÆräªEV󛘺Šy3‡é(< üúS§ýÒ7ñ%zÂ4«ªÆ¥w¿ÁÂ¥û’1“å÷+‹üôÕ«üʧžÄ•%n¬”¸qõ ªÚãÐÜ“xÝ=vª=â~œ™Y•¾x–b¯H©UÅrR±Z£ØÜ/9;5ÉìØ÷kE*žØCrR¨COÎðÔ‘}|ùµË4—¥{;`ÅI#ÑIKø¢ÇpjˆÓ‡yëí4${§Á{Kk*•:Q»ÇØðN2E¹ðj©@js0F»]§vI!9DQ@EdEÅø°Ç4ÌŸ9 ¢ð§Šœÿkh±ºSaåê2$)V ã*.J :ͤ„4ql ÝÔL—V»N[3é „˜ƒ­H #E ÌžB…@ÐÕ‘a”}DEÖ4tÉÁëŠ=)f£Êݦˆ 5é©*’‹dM§UiÐ3S˜B„ªviøqG¦gtñ\ ÅspD Ëvq¥Ñ× .ƒÑÑ%b-—–‚ ZRGs}[>4«£"à!"ª"4›蘊ƒkHèØµØYïÒ!&¤e)#âDaS&iu@KÓ :h -­PwDeÙi"¢,#Ë® 2QÇí,qîÜYÞÿ}FÇãu<"ÅÅŒ¥‰ #htd´d )Œhùa¡›:²á €áG ú!¾/  â›2BÛ¥q-qBŸ{Xóg9Réˆu$S"Ö5±P@OÉd‚]·GË®!)2¢G <„PFN8v×MRèùŠ¢Ë½šÄÎÝ«ž§WkÄDf ¿cÐןb §s{m›Ím—ýfŒÁù~JUŠ»;¨V=CŒÛH¾ÇÓ"¤R@O‘I[‚¡óé}y¾¿¸FÔVQ“‰˜ˆäz4ü.åFµ•däpMëa7B ‹%šB…¡ùifóC4Š!ËWh4Ñ'û˜MŸ¡¿'Q.¯p«Ûb:Ùǘ˜àʽ»4C›Ïÿæ_DîŸû/óÞn¿úóŸb,ŸäÛ—îrùî"Å;K §ùìùãt{.ÏýúÿÈg^ø"Ï~j?_þí¯RwwxáùOÒ\𸴲Äô‘i^<—dåÖ:nN<þ ;nK·M805˺4‰XïðøìSCyòCíç OóÌñA°,.Þo¡¯u Âc“œ›æ‰¡A¾~y‰¾éC¬m4±·—ÉçMRù]I¡ÀéáÔ¬ÁÖò;Nœ™F,âdýÏÝa3•åÄô0ŽãSªI©Y [3MUŸÎ®C2¦Ñµ Âh—±XžÓ3c¼»¸ÂÂíedÒ1´þ…°Eca‹„*1tl{kµå¹18 dgã}3ìœçÉ“).Ì0ϰ^î°èìÑ Ú åHö%¸}w•âÚÎ}œôþIÔí]&G†qGÈÅ5.¾ü‹[ h:æÓ+©\÷G}l–”0D¡PݸÌÙƒ‡ˆ¬$¹þ!Þé\¾S`th€µ°Ã÷¸vySMò…gN±¶]罕wˆåØ®oÓã$ÜÏžá—ž8K¥ÜæâÂ=úryR™4aà°Xh!ú’ãÆ^‘´dpfvçÎÎqáÀ<‡f‡y|n§Óä·ôNS¢Rëâ47È*i”‰É^ ¯ÞŒÊ³‡g¹ûp{kxý`·D^Þ\âù}s|âÙyÞY-sóÊe†úøµ^·WŠÔŸZÐb •㹓xòÌ$OŸã±Ùƒìígo·Î{Ëwi!Œ$úæ"Ìæ[¥"m¡I&3Löº È2ª®Rj¤" YŠ£øª½q7"c™Ø•®fà2]]$× JUöðÜݚΨ %(mo”úg2$u‘V·EÉé4’f[CÚø=‰´ ¢ðáašÖÏEU%ñ£®Áÿ\Áõåì”M$«ÈÔňÀñÑ]“H3‘¤&FèR±ûЕ ´#œ”ä [DUEdÏ¢ãûX‚€¤DmÙT©IºÃ4U' ´P£ë Èé´’HQ'鑲M¼ÈÇK‹øu 5ê!›¬Óî4E™OIù ø>]CAp;xQH;0¨TÌŠ¡=òxù2ÚEjIt jM´LÍ>„+@R@tQ£€IÉ;) f€ ZHaGÑ{2GLn{¨QˆÛ'â4Àê€E Yïì¥ð–Óa@ЍËPöBâBˆ¦×ëbqJªƒÉxÅÅŸVßÄ4a$ )¡¡¸Ad!™b Š( ¢AÔ# ÄPF\ÁD|B<B|D¢Šˆžµ+sý½=X}'/É%HËÍz“v"úÆ–Y+…O­YÆSDRf)ðhÔÔÁ)M¦Yíaãb™ "ÃÓ|¢N…Ý?erúÇB§%Ó=†¬4CÙAvº{,Ü{@Ʋ˜=p߯Qno!ËI¦ŽíãÚå]ÍæàÈ0ܸÍ|å%þÃWïðÍKÐì4¹ðÄ'ùê_å¯ü­ÿ'/=°‰'RD¾ƒ%Ç †Xˆêlî>`*J‘ãêÎ2ÿ¯ßýÿøk×ѵˆ§Î *ýü_þùòï^yÙÑa>~â9Þ¼ºÀf´Æù#ûxóå%—K|éãçéFù×o/±äŒSØ­±¼w…ccc¤cIî=´éˆ]2cIîn®ðO¿y•¾¿ÊÐp=ÔùW?ý.ßyãfÃ|âÉO²YˆXº}¾¤ÇÝš@Ñért:ÎKwŠpõƒ£•“ǘѓTî¿AwzÅyïG?EP]žþå W{,½ùŒñYMåõw¾Íw>X%§÷±4øƒ·Þ`,ÙÏãæ7®Ó+”8¿ï0«ý2õk{ŒõöXT ®u+tJelÍཕ].]ü*õV‰øô!¶e +¶ELŒÓÚ†žêpV‰ÑŸä§Aƒ[n‘YT‰‡8šÈ•z¤¨3 ;øK;T:ËÙBè"õ'©ÕV¸|å!ym¿ùëOr¿±Íw¾þ.jÒã#¼½±É—¿ö5ÜY`UŒXjéh)ÞNÉ+ᥠüªˆÝQQCƒä8^ÇO`m›n†ŽÒ©²RY¨ÛLg|öÓóìîúüOÿꇌŒ§ùì ‡xûJ…÷¶xîãÇi' ^yïéT‡3O>ÍÒ^‘•Ÿ¬3 –z[üî+?æïU¨U#6vÞæR|•®OùB‡¡³1Õ¢Úñ¹qy…=q‘\¨3<5ÍÝâ;„7îóØùO£ÍNð½ï¿ÃÅo3<“Çì ×ÉòÀòxðæ“C!Ùñ>Þ)ÉDñ/­òÃ+5•Áa&–o6SC}¬¸Ez^“‘äõ†Ë7nÉb·Ê^é.aÁ'«khû†ÐcÝ"mAÃ7ÌŽ2¤ÌóàîeÚõ=Îæ†èÖ$Úq‘#§ÎñÁ›Üxu…3çŸeî±Ê;7q }ósè‚Ç»»·èt\¾xîãhFŒ7~ò_P­>žyì(và°½´H7€ôÄýêÂÒlG}'‘jªtÜÅÖŠŒÎ@ÙæòµwaÚanß)¨§)V—Ñ”:ƒæBh¢.×9ô¹#Do|ÀpÆbîøa¶öZì¾/K®‘˜Xh°Û°85«1©ÀƒžKÕ ¨ˆæÀ ÛfÓÞÀ쪜ü$ñMŸ‹+×i«Eö§§Ñsqî×»tvzLhxA‡wZ:6Oÿ>6.¯°T ý]ÄdœÃ'gpvÂf!faÛ!bTÆŽIÐH ¶ãÐç D*¦Ð£fÊhôavZt‡é¡Q¼ÈåZu‰LQ% #&¦2(’ÆòÖ* y€ÑCcÔ·?àÎúùáLš£*µØ½¹Ž!溤Z¯£–bLMgÙ‹:n-3<1ÉP_†í5za kúCI‡W^ãê^“ãä™ÞºZ§ºy¾A“ÄÉyÜ è¨e:­&F'$;9E~r–õ7_çõ;·yö³?ÇéøÉ^åöÝE;y޾ù ª+ÙÜ^%.'™˜š¢Ò éT,3ÄSU Ù¥*Pj£!£O¡M\_ÂïÅHöÅï³(5D•]²}š¡¸ë"éFòÃx%•û…$Í@K ä²(JÄn­F«’$«Åè3Jî6¥š‹18€&¦pŠ%††F±E—õurcƒôMÀÞnQÛj“Ωät»ëR¼YE²D&NäétÓ,?(¢t›L2©®iTª6cûU}c4îï±§ÚX±ZCa7¨3&‘Mf² ÅZ``eãl5;X©:95Îv5NÅÞ">n`‰ã˜Û%*…*â°IǃJƒtC`ei…JµÎxfˆlVÇë)Ô¢ZÏÅk÷Pã"9=úèrPױ̦ea&²ª IÖáüwà `i{ÚzQÔ(%[$œ€®¨—5ĤCÇ–Ð} »#¢Ç|DQÀÅ„0À´»¨˜Ø’ˆêÕP Sî‚££ú.²àù–ål9B"„œN€jJDŽJ )ê I:B'D‰©qè6BР61•Fue@acÁ¡´ø©|š|ßQÄN‡B§B(˜d“"Ý `ñý5ü1…~éçql‹»_ÿ–¼/^xŽb¤rõÞa¬?Éå7—qr&óS3ܾöOS8ýÔAÖnÝáæÃU>ö‰§H˜ý¼ÿîUƆÑ¥8·î½O\—ÏžÆ+T+ôªC¤düTÓ&ÕëQ’m:uIH  .ñ¤@ÔX\\EÈ[<{2Mµ¢±ºæR–¯235úÛÎ:®]en_K=Ü}ÌÜ^^@#Å…ÙQV !»õ"ÙŠeÐÙÔ *W˜8ñ8Çg¹rù- u›Ù\ŽÇƲl7ß¹L^îgàøa¶‹÷9 Eèf‚ír‰ãûÓìHãüôí"gR{\89O©’âö«×iŽxúÄ rí8 ïobŒd˜:ÈÛ÷~@ØðùÜù_$Ô«üèÊkÃÇù…CC¼ü`í­ǎѱ’l=¨0\\F:4Ca¼¾kŽGm&GÔð ‹mbggˆôëW¯0h ¤àxEè%IdU ˆ)2ê¢@²ÏÄ4¹¼ó+­qÀÑ(¶lbƒ!1J£ëˆ.-îzô©*å—?Ëݽ›üñ+W™˜ç‰ 'Ømï°ýp‰ Ýefr~fŠ­e”Þ:3†š›ÆµMœr3&ÒŸQÀñ¨VEBÉ#‘ƒB£ƒVó™:4M©Ýâû¯À™}ÓüÚ/Ÿåîr‘ï|çGNÄ8ô± .-²þæ&?wst‚7^ºDBìphnЇ¶Iõ¾ÃÄdôÉ1®¿½ÊJ£Î'Ž\`8ÖàF´LÌ¢ò†×k2÷Â4A¤Òrö˜ÎöÈfV·»Ä’SX©­ÅÛ Ž!yô0+l³½ÃÁc‡2'©mjí ͘N¿4JÒ/q5ÚeÔgÜØ6¡[†¤P'>q§!?ô™¦ÙßãÞÚ}Y}ŒV¹JÏmWT¬¤K%’“yLÛ¥X¨àk1ŒD–‘\’  +‘]—Ùûh…i¶×+œ×I… ·ïHdB´VŒÃ"Ççó,.v¸ñÆíã±§§”v {ܼ«0~ÊóîKÛ¼{ù:/<žO ris‘¯üçïqöÅÓœÞwœk··hÖ˜š˜¤c+  dT…ûË5¼°Æá‘4™ô(××–i¶9{â1z¢Ìå«w™Œ12>˶ݠº³Ëˆ¬‘Fclo®Ñh•Ø7˘ž¢\ßa¹ÔF{Œ™&}ù<;½.…Âq)M˜ÁZ@­ÕCÍ„1»@«ÕA’URFŒž³CÌéÃNk8Ý:† á M\UÅóTY%ëÚèòU-¢×ØÂG&‘F¡C{»C"ŸÀ§J­' ‡¨X"¦šÅí(&AÞfw=7ÉØ˜„–Ocß+PØk086ˆWQì ´=™â`š>¡ÒÄîv Ìš–Eï”éÔ7é¥fHÈ |o—Š#‘·,í:Áh““T·ë eâHs>Ûw×ðláéUÍ °T#&‰Œ'L*1Ïé*-baš²ÕV…ù´Š¢<š^ÉŠŠ®?ò^™¦‰ªk¨ŠòÈØþßò2ü)Ö; i¸!‚hãx >¹H#p=|Õ¥çıháj6Šœ#òzH]R¢(¡xò†GVƒ”Ð%)wÑñ‰I]LÅÁ’]RR€Eˆ*:Ä£.ñ¨KRt±t Q d(P tˆ2VIÂökD²Š"«†C¯–Àˆ5éi2Ø6,AOF“eÚr‰–'«HA@KtI(5ÇC÷ âô@Õ?„«€v"FÌ“PUIé(±n?€ {dT ¼zm•ùa…»Å6®œDk:ØZˆ)Q› ‘tÁ e‰( ¼)!èõb¡@S ѽ8¢®Ð°Kô Š ?¬±éƒt[.ºä!(’¬#Š!! ÑC@B BDÜ@ ,Ó'ð5D!@&¤‡Ž,„„ŽG¤‡ ˆD‚Áí?}âyì^H½ÞE4<&û&ð—Bk /c@O€Ó¦x¨†E"¦>òœ¸MâV„,›¨]“@ix{tº]s}žÅö­·~Xe=¡ÌàP G±x°¶IWbüD_•)ïUqj2êpÙo¡t2ñ4‚Ѥ± >‘N#8®âàVD|]ä³øñz+«ÐÙiPo—Ð2&™„JÛãÛxšŒœN"vz~Á”‘õQm É#4+m<µÇ`_žñ„IcÏázi›ª½ÍÓ§8•mis“h¼‹Ž2`!ï±ØiŸdÊŠuFÛU0Éà :a kjžñVn¾KA_ṣϣÔâìj£€³Q#vl ÍMÑêì26;ˆW­S¼ì°oR¦Õ¯a·Æû'Èd%^þà+åóé'M“Kkî/]al6ž‰WæÒýEªŽK¿‘!=5ŽælÑÛ.³UOૉ٠ÉÔªm”éQ„ŽÃúú:‰~†÷Ï 5êT¶âXCììµ1S&ŸøÜ)*Û-~û÷Þäô± ÏÿÂÜ~¥¯ñØggèŽfxøÓûÄå.™¹ [Ë^Ñåô¡îÈíÛUÚÍ'‡ òb‰zV¥OP¾TB2ôÍçi”–p£&yëq5M³¶MaÓ£¶Ù7™gnbœË ¬®78=>A<æ±µÑÄJ0{Øäîõ"{K?9Jl4d´œdqw Æ{ýÔ|Ël`G.aâj’R¹Š”®38•¡²¢Ð)Š ôé4ªŠžH_nˆ¦\ \ð™•òyƒ²]İUŒD—üXž­½.«ÅÛLŽcßÄg×ß|-«ðøÁóÜØ.ãvw9qò½žÏk7ßfzp„±C³Öî!Š:Ds¤öÕ16xga‡Ü¹ýyîYNŸ<λï¿ÊÕ;K?I~xÇ©³·µƒêE˜ÓHaD(4h…2=LtÉ$7d°¾±Jc»Æèì0ƒYj½›Ë¦-‰ÀJS(Ú€–IB«úl7 ä.ý£Ä“& ¿J½âRð#¦)#d­VGplâR?Éþ­ez‘J~<³³‰æõ‘:0Fs}ÛvÈéòÔ«2°AGí1zt¯¤sëê}É€Á³yVV%j{[ÌŒ§é›™¡´±N©PDÍD0B"É ¨a‹z[#¨è±-±CÛ-0ªŠt¤ ÕuâCÉÔa쇛” 0æPŒ}ôîm’Íë(¬PˆÓŸH!$5Jv‹F±Âè`ŽÜHŽêŽÍv­FFK¢).B'"O0 ?š^i*qLÓÂ0Íw¯$DAüoÀUô3¸r=Ÿ‹7×ð”:õ^«ê"'“±9hRn¤p3E1T! îyä“]ú%´êÓT1@"ü?~— <ÒC|øæ‘…EÑ#—xØD‘|4"G¡¤Ú¤\t!îöò$b­ !aÛºà‡6µ N62 êÑBBGÂ%2ž„M„¢€‰ªHÔ 0D7%cùb\?ÀëʼnIeܦ„’Šá÷ID¡ÙQˆ¤‡-n­‹(QAP Eˆ8.]D‚TMÂïö°õQ²$º>]K  DfD=höRˆSùh+99ƒEDèºQˆdhþwá(JDD„èhDôˆD!PE…€ ŒðQQ„ ‰0ô Ð/¸ó†üÁ󘊈©Iôt :>H^‹"ßÇ ´¸F­îàùFT=@4-†T00°¬ˆ†"›*Û×Þþ`õ¤E¥%qœ:IQ$;‘Å.wéÔëdãCôò"µAÝÇœŒ‘ËÅð ­n„#•IÅâh%… Ѱeb ÊOÎeùÖ¥mJu‘¾¼Ê`,‰èj¬û!ÂÆa:ƾý3˜ö‹e:‘J¿¯¢ç4¤Ü(r§CØñ¨ë*öV…™É~ÔáaÖîÞ¥RºK¿6ÃÈ̆9D¥¸ÅÖý»èG&˜FøàÍWÈe³üÂ_øï=X£ùÃoÀ‘i>ô¯þð¶<‡g>~g7bm§Ìäô$«Kwh <ûÔó ŽrkáÞú©Ñ)¬D@»ÒD”SX–OGÓ «zÄt×i³Ó€™\+ÞOqUÀ-±%Ð3b¨éÅp¨Ý¬RªÄ˜?7BZ“Ø«4¨Ö"vÕ5žNÎ03qˆ;­5ª›ËÈŽ›¥?¥¡©.oµ3*‡ûsk5Öê%Ƴ ã³§)¯–)¶®#Yd„.Í®CÌNÓ7GR©lÔÐĦq¬°GЩ\ÂD‰_ûüóÜÞèñû_ûÏ䉧žfk¹NýêÉR\¿ÁÚm~áìÏ3Ò—á¾ý-äü({â ;×—©w–ˆNÌ0Åh¯náWkħSŸ¿z‹qÇbó`£-1T é´¨÷ Ñ]lзn3úÔ8í^‘•]”lmfŒA{“b¡f GHÐI•I&r {Y(8´b=§Õ#Ô»8Û՚ϋçfØÓº¼þÊ]=ùδ7¸¯EUŽqp¦¡åz°Åɹ}ìJý”W—ÑRíäæ’X±<«÷–iù£1B7 [í26Ÿ çöñý?x‰Ì|–ÿዟa}«ÎoýƒïòÌ‹YÎ~îi^þñ-:w>ùé³xi÷^¹Š&ŒØOkO¢Ñ9>¯h»¼©C³rj~€aQfÉ_¦ uÑßÀ³’ ꂱ[í` 3s§­“PâÄcE:-úƒñ)6›[´®1<³+§ÓVš4ý*Ý!F&†‘å=v–ï±ÿØq“=·„ÝìÐ*dƒ.wÄ];ÆH^Ä5\v; 2¡F>ÙOCÒèô:(.ÃSTSæî^‰$[MŠr‘܃†Éÿ¥­ˆ¨§sèpš¾‘<ßR—™#1Þ[òi-Àä¼Â¾áAÒ¬oqãú6‡r³ &¯V¨-yÜlÂÄ)™S©$ßxu…›>û™>–æúÂ6ÿæ«_fêÙcüòc±¶³Îûw/3 Ç™ÄD·­ Y -ÝAQã¨b‡VS!#ø¸ñó¹$÷*š~„#ZÈøHtðä9‘m‘ÐŒ»Ž_&fjøÞ£jýãßÑü.Nuåg€5<5OàûhŠ¡„¨KÈŠ†âKôÂI‰Ÿa$ ‚áÙ² ²¤"ø~ØEÖLÂ@D"”È寻^=‡ŠbÀ¦ÇºÓB z ÇG—‡Õz,F_"FµÖ¡ëúÄÍII tEü C­WÁˆb¤ò pe­AØ£x磬Zv] YÞY!Ö8y` 7mP~X¢×R§d2rŒ–çÑs<$«ŽÓÐñ½ùL„GÝCAªE¯â“5b •¶)òñ±4°°‚Ú*aY#ä³ÔÄ»°õÿ?sÿ#ÛºÞwb¿•CÕªº«sÚÝ;Ÿ½÷ÉáFòò‰¤ä¡4àŒG°ª/S¨fpšg<}zй¶Ì¯¼þk<³œüÑxï^ƒ…›ó¼ð›/rô£SÎŽYúÒ Ž;FNÉYúJH/ˆY3òô.CÇamã%vw8>ºÃ×^û{d£5Þö]’´Ã¥¹_AEš“vefrKøB= ØœŸçdh°wr‡¼e2[[¦dn0=áçwÈV+|ãæ¯2+øÞ'ÏøxÜçkëÜØXãwÿ˜I;äõµÜWaÐ×ù†ÐLÛ˜ã)yAD17©­T88½Çáñ.²¹ÎKµ"“”Ì“‡¬ÌÊ,¤o±ëì’2E¢i‰û‡ÏX_˱±~‰þt‡¡sÀßùí·pƒ9>üþ9Ÿ¯¼D¡Óeïéú ¯3WyøÞ÷ˆs>_½þ÷9í¼ýÎ;ÌWr\¼º…3ÑhºC2³ *Y*¹IAmáÔjlMTìPâédˆe)Î0 s´Ç2ͤ˜½‚%ô8vS»ô«,dVøáýwѵ>µÊ"ÚÊ ¡(ðèù}ä“eižéã )ÔշϨ…y^+üy§Ç~Sæó•Q3*ÿø?`4=âµÅ‹¼¹¼Ê@†ï½ý=b#â•Õ[$©4;ÍÈ¢“*‰YE¯Ä[ôep2%#$81•!—©¢9-ì°GèÖ°§!©¢ÉÜz ±;æ{-6.Vxýú&·w°ýþ„ëo\¥ôR–£û¼~‡ì¢E—PôWbšö ?üÉÛ3xõúM2©­ÔµP`ø=Ÿ!ë7çP%Ÿ½VƒåÒ*YGå‘}ÄÚbBº”'™Ø¼\“h»:ܰ9Säâ‹yn?ýݘ§ryýÛcZ/ÎY¹npà59»Ý£·¾NjiRï€íÞÚ)‹ÀX¥*Ø›~S*ÉŒ|þÓ)×.ä” {#•ùÄ Ü9;àïuI/¬YqÀu‘¢ NkÌ3»Cq³¾r?;‡¸³ÇÎYƒýTo¿òe2’ÇÇ÷¿ËËo.²œ¾ÈŸ¼ó)é¼Ì•[[XÃîAr9JRžPjÒhQ„.¼¸LA…{Ïè:"ó¯_@y±'YX(`µ3z7bF=—|Úà…­e^õŸÞ{ÎGïïðò• ^}óMÞýømn?¸Çk/²~aãúŽ[}Ög,Ò¥%¢È¡Û qðH«!J>MQ³höh6lò–Euîã¨Ëá§;dË&U%K×™*-R†BFH£úã vÑ( —e$‰‹bH¨±JJÙŸÔq:¥…˨’ÉÀ>f8ÒÈie ©û#¬&"HMG'-£ˆ>ýA‹fa>`-WFòÒìtÆTS]f®Îp¶ãsvç„+_Ÿcycƒ‡žÑyzDúòSÁóäD'v3hÕ¿1–C¬¢ÎPT¹Ô¬.>Ëô}‡n¾OM©Ò4£^²¨X žâŠ6å¥yüþÍžÏÒü"éŠÌ§g]LA$' ™q<æälLZ5ÈW$ºÓ1Jr¾@>! |ÞsP7LÌ”‰ñ™ï•$J_TþÀÕÏö>yrDkÐ °ÓdE“h¾KäjÄ]]M(åjÙ„¢£ ?—Wü¨„Ï=¸$IB–eEA–å|“nSTõ³ŸËçÏIògûògš1 QEŒÈH.º 1DUDH<Æ‘‚žH¤‚$áŒRh²‹›€„NÀ ‘S”L”ØB'衎šMð dŸ ÔI+SüP*$ª‡%©$~ˆ×70e7ÓG ÌÅ’Â'ÀYQ¨D6QÃÇ%PÒä_ôqM= ‰d‹Ž3$Ÿ3PC‘Ó!e$Q :xºJÐøÂ¦afå"Q(!K1‚$#%2‘” È Š2D D ¢â!Æ>h2„*à"ê>‘{®ÅKA•‘âYb‘»ï~ï3'÷·¾‰¯ŠD¶.ˆˆ±«¤}—HÔ1 ?ð™Lô(AÎÆ(’Ž4ˆñM‰~äb†¶4ÓO‚Œ¦Ù'}Xõìãvƒb2!Éô•FÇCš/â& …Ê”J¤œÆÙÔ`•³H©4blÙ1Óq49TCÂIäë‹yÞyxŠ(ØŒ§>–# Óhù*£nƒ¸ÓCÎ×È+2ŠÐbœäÒ±œQ-<»Cbf…‡í'øÝ+ËTsižìr|X'v.Üz+ «<¿ûÏÏ:,W®ÓSz¼ýé»|ûÛ_áò¯óÏÿÿ¢ýOxñïÿ'ÌO->iÔÁpI.º³ùÂu¦Až'{Û„S›|Vf¶0Õ4ÇïaTK¬ç¯qÚÝÇ {äò:¦©3õ] ™*†¤sv<¦Þ8`y¹@f~–£zH&5Áw]ºm—ª:Ë‹çgœ=9A7—xõë5r‚À΃“æ)#sJ-½HemPóèñ{ˆÂƒ¹fŠy®ìïò¨Œ<³ÈÖB{IïˆìØa>³D?ŸgÜ>¦4Wbºô›OYªÞD_.S·÷YœÆDnBÛÍR™I³9»Ao4äÞ¿O>»È—ßzƒ§Ï÷x÷ã§|ã›_¦<¯rúöŸQNYó?㕴·ïÿOÇßüƯ’éïðaý!‹ß %t?!ñÛˆW^$S.<~„K¤jUQŸ¸ác¥Uim ×ú"áì=CBD¨ã"ê 5òá~ôSŠÖ_™_eß/ˆ”%u›Ìe¨‘g)Ÿ"—‹ØëŽÛ[k½À?ލ¦†lÞXA« L÷< (~µÂå¦Ç'»Mäùˆës‹ F5l6o]ä¸!Æ\›•iî=é#¨¸>§’Ó{hY‰ºä3ý©ˆ!Ö(]î1mï35Vr—1=ö\ÅÈ}¤#˜Y_G¨êØõ6~˜LT¥LÙ0q‚­~+Ÿg>sÄQó1©þuj+ëJ—ï4q²¼q£„h…N¸¨çM†ì…cV-YQñ”<¦£:~µÈ…•ÛNñÇ›f–^ºƒX«½Fßoò¤sÀœµÅb>$.ªìŸ¤pyáÕYvGG4¶;¬T-ôU ÑXäéOéH|iíy5ÅÞ¨‹¸–HÞ,±’yðñ.ÏN:|ëÛ·xkq‰ßnð{ÿÝ¿äÒ­e~ûÍ/qbùèÏНøÒµ·¨æþüÎ#ž¶yóÊE¶ÖÖ9í´xò¬&ЬֿÐ3 vŸAë˜li–Òìcˆ×ëàK9kŽñ0À0ƈ„ÀXDHÛ Z{¶Îêz…(—g8l2=8Å0sÓó4&=ä, Ì"ÞšãS˜¸dÕ2©e q¨q6œ"‡!a¤R(€"éŒ#NÓEß hˆ¸N Ñè¢ØDy…ìL†çGû¤ý˜êâ*¡ë2Š,dßG´ÈÎ̤s4ê°$ôˆ4‹FsŒ Ì]¨‘x­Æ鱌?—¿BDj¤åÓ$E‡îá„tR]ZÁw&32Æ”±¹‰oÉJ¦Œ?šPn6kËlÛ1EÈÒÌ zZ‹ý>%*,ðÚÕ%B»ÇƒÞ”l6²*ùJ™}@³—°n†ô†>]Ï`k.M((Þ˜Š¢(~îÚn¤L 3…®ë¨ŠòEåà®ü äßþ„(RH›y¡—ø)=‹’‹8úø½/ªãiD®ÃTtö[ÇÈÒ sÅ,ZÖã´ øÂBH!HÓ=‹ð¤˜Xì"Y´¬ÀÉ™ŽVóQ '¶hŽm~s³Èî™GRËÑ9èÑ#ëE._½HìuhÖϘ¤ ”Ñtƒ\m‘Döh ˆƒ %qÈ|>ñ¦â )ÌÎ0‰¼“&¹Å×6nð¬uÀÑÞû´ \ÚXDÌ'ô?£!´0Íòf†ý'wÁ+ò•ÿÙÉS¯ÎÿÛï±›üêW_£Þ2®?â¥Åk8Ùeާ;¤›ñô˜Äª’[_A?éÓ´‡¬,­ ¥s"•3ùöÆ[tfEÚ#z«¸rB©£ø-Æ®Nzs™¤1`tzB>Wf’Ö©NÆK2»S•ñÑi­ÄÕÙ£’Ó¸üê‹ l矼²(Š%$õŒ›³¯Ðï‹ì·`¦Át®¬WHù&OÏ>¢ Öx±ú2»ÝÏŽÙØ,2_Y ·?åá䌥åyÖ22w·ŽÊlm®"®d9m÷xøá[/ÎRÎÙyÌ,äÉŠ2Í£>Æz A€»·Ìç ^zs…QÿŒ»O›¤ri._Z¢¿wÊÎý‡äç¹|õ-Žh5ë´æ—-†­ˆCû„B%‡.[ˆ© ‡4ú}¦Yåô*…™D·Ç'ÏP…—V¨·ÛLõ)i3¡ Wñ†Y:b‡d:¶§Tk3dŠiÜ fb»~‚®Fàê8‰Kº°‚.'œ5긮ÎÅjÛT1±QøÎèIf‚Š¸Ã IhQ.Íà†pÚžR®¤«ƒíN=añKró3ìþ´Nëù.ù¶XÎVN&túC2Ųj ´ÇŒƒ)bºD5f}„e(,H—9ì"Š k¥ ¦}‰æèŠóK¬—/rÿ„¾sÊÅ…4vÏCÊ®pyÖäÞö»ìl+¼øâ \Y58=msçOw0«¼ùò«$“>Nƒ–1íÏ÷çSTå«­]:­‡,¿õ„r‘Á¿ýF1G´pnãYoÄ´Pc,çˆô)醇ê4×»˜í dÒ³H•€`Ü¥µ»Çl5ÍòÅ|2óÞÝ=^ÏdÈëó8óº?áðLÀÅó&Ò΃Ә/oå‰ Nj±O¶`"dÊh“ïÔ‡42 ¯æ—è·Z´‡ÍžÆÝþ — +\,É<ñ#únDª1e˜(”WªhŠGçés¢Å2åâ"{÷Ÿr„ü§o¼ŒbüŸÿ런4còþóïðé¸Îïþ×Ì¥ëyÞúΛh}8"7'ã/gŽ ¶Ê.}%à‡w©dæ¹2»HõqR"Ñ8a°p6ŽYe‘tXç¸=b£r ¥5åAçuAb½Z¤~ÐFJt´ªE§³M!±Hf—˜Úr• åœÄGwTdy‰WoÕñwÙë/SX½„åµ¹/5©H W¬%zrš-"eȸ‘Å™5Ù˜žÑ ‚Â*{€3é2ö-6f8 :þÉ 39™ÚËzrÌœ+— Ü9}‚pÖãò­«¤ó;G'Ìè%ŠkSnÒ%3N±U©çc†ET÷8)òâ­%¥Æíîc­ôY^YÃH8>ƒx‚¥È¯—yåêEž~|Ìïþ³ß嵫üú7ÇA›÷ÿøÇø‹—¿þ&ó%ƒüàytÖãÆW^ãæb‘'ÏÛ|üì˜ÙŒÉÕ…uœ0æù°ÎØ‹™OçXÚ(ÑèiÜ;!—µ(Tª “Óñ>3©")yŽSïNÇ#—^ÀZŠéÂóÓ)ëÅ™b={ˆàNQ2*–VB‰t±Nw4ÅDÔÖªÈç !Q{T< _±‡c‚`ˆ–ÕË'Íp4À{„i“£À8²5p„…rÊ ã ½69CETdbQcèd¥>¹%•£¶HØð˜[¶Å4½áJâæ3ˆcCöI 52ñóS´Ï$”ÈÎWPèPÑЊ%ÎûäŠ!r¡Š4Ž˜>C[ÎÓ˧™Ž‡¬êeÒU‘~òÍ”ùúú ßá'Ž(Χٜ©ö==FªÇZ¤@.ϳ“#–Í2ڂɰÕeзYÎrå‘$4ý3q»ab說þRô*ù¢úe·†÷·Ï˜ Ógs1Ï•• 9Â÷‚ ø®$ñ³ôŸ¢ ª*švU†yQççöÆgç¢çपçQ+UÕP5õ3(S Eùl_U?b©šöÙkÎaK–edé\Ë%†" £Éy[ (QéD iiJ߉ə>"¡*“ñdABÒ¤á7¥¢ªb! 6‰k@JÇ'@"›òIÅSÙG˜fP›1’¢’ Œ¤+Õ4»§Ž>ÁóttM±˜ŠˆG‡¤?ÅЄè<›'›*ý¡G:o£J&á$@"ƶtôp‚£ªpö…MÃÌÂÅsa»” *b¢ «jxÞõQTEAÔD$ŽBbE&BCM<1BLdH$BÏC6ãó¬«#'Sî~ð£sÀš¿ùu=!¥(! BE•˜MåpÇcÚž¢¢•‰’€®7Á÷mŠB+o1Œ'8#NHg \]Àk‰æÃ÷?¬‘PELLd?‚\‘¬˜"˜ ¸.Žhr¡f" pp`ÎP Šy¦ãˆ^½ƒøèó%Š) ׎èö§tÕ [ªÉ[ªü“»§D3 ‹.l®Ó~|ÈN§Ž4³Ìš¦ Å*cÍeê£IÉR2"ÆqLwèᨊ‰Æª1GO¬“v =Ã™Ô Øë³5³ÉÒj‘ýÎOÑR3¼xé%®.γóü!Þ{ ·^"³¢ñÓ<`&w‘_ýŸÿ—üàûïÓúäÙºõf‹×Ù2x¾K!)¾tÙHqôñ#úŽËÅë׉lƒú᧨©¬z™êl†Q´Mã ÆÂDš"úiJ…†ƒ?nbûMb§ÈÌêu<±ËÇw1;[æÒê-º¡K¿—Ñd†‹,’hÌ{÷N(/Ìó[¯^áìÓ¾8@©lp³&“ss‘‹ev>ãøÀañú*VFÁrúÁ˜ÎÔ GHKZªÀÇ·ëhqÂË7^!˜ôùh÷c毽Îêb–Ó?ÿcîŸN°¾þ^ÊÍs÷£ßÃ/øÆ…W9þø€¶,ðÊ‹ìMŸñìS^¼|ƒòŠÂƒã™©I¥–Æ÷>á™ sùeª³1N€=ид1ûÂn=Ez¡ÂòòÞþ>;GÇl¬¿L’Uùé“GÌ]¸Â›fÙùø»Œî‰Gq½F¾š§w8 ïîƒ_C+ÈÅ'ôQ˜ª2j¨¢mš²Ì\¶€ø4[]d=C™¾¨26'X¶E91iÁ ¢z5Åñþ„²¡±¼–gû~»ã0ó• 9Cãìñ€þN“ìz|)ÇèxB§{ÂÌržJ5Gwzâ„Ü|šBhá[ŒÕ1°HtcÞÀhh0Ž™ô$µS9C­/‘h"¶á7›YL•õ¹Ó@äääe±yyž^¨ÐkPR¸jЍ×!u¡Ê(v§†åá5[ÌåÏÄí š¦6š®¡È?½J~ÁŠá/òiøþ»÷˜YKñ«›Ôò<ÏÅql<Ï'Ž#$ù °ÒuÝø¬‘´i’J¥?‡*M×ÑÕó(ÔÏ€IV~¦ÃúLgõ³Múb_úlûÙ÷ç¯=}~¬r~Œ$J¢ˆ.D¤¤€¡(%6J"$")a샌ˆLI±‘$qAÎ ( >ššø#§ -‚4FDB'!hD’Œ/´Õ,òœ"H>H“ˆ‹‹i4zø(‰èŠ­&È’éJÄ‚I¹XY %Pi„älò^Õó™Ä&ž©a†C"U#t|hÁš]ºˆFèš‚¦ž ÚEI>/ò=ĉŒ!k¸R@ ˆ’ I‚F$’OÇŠŠ „ ¡€ˆ@"Ç ¨Üû™“ûòk/cÊq(‚=DÒRˆºÀØ Ñ™@ñã…)UÂñú¸QŒeã Á$$Œ#ÒéFIÇŠç‘p6rÙ=ƒæJŒs&…´ƒ ëœStŸíRœ5Yš»Ì™ÑäôÁc jù ‹Ú\aÈL­FÔHñéÝÇtã^ß¼Å7¾òV?cû_ßÇ/NyóâUڶ˳î3–ssH¦†*,TÒÄ¡BsxŸñ$aköZjÊÀaH—â?$—Êpóõë´;1n“LQd6*àJ ûcúý„ë×_åÅ­{w?áíº¬¼$pãÆ×Ø{÷§gÏYÚ\!,Éè©ÚTçÞÑmJZŸõÕ*¢±Áä¤A4l[“(êÔ…4ãÖ‡l×{\¹ºÅêb‘g=ší>f­D&“ò{xò^T ë~LZpx©x‰Ÿ´[4´Yn\(ÓùÁiŠy~ío}ƒÄ>á~ð§Œú)n\¹ÄRm†þà]ª²Á/]`ûùFRçÒõý8GéXÁã1ež™Ò%ç=œîuæ&ƒÖ =¬+×¹× qÈš×g %(ùƒ‰P%•—QNOI‚µj–‰œaÿ¸O8rxyA"–8œˆôç˜y“9±ÊJ)Å‘ÒåáöWsE¶Ì8u˜k„¼¶´Á®¦bÆû8nƒû£ 7æ7y9?äƒý!'BmN¦ÓlRœ]áÒšÁvsÀ©-“•T]JËdÃÄÛn£Ö4¦Ö&‡GÏ`ìsᥠ̛:ßÿó÷èù"ÿÙ?ø*'Ý>ðù ›/äøo}‰ð½ß‡Ü¬HíËdûÒÐ¥î?äÁ™LA¹È [9ÜZ›ýv‹^=¢ÒÏšeœ—Y{NOÂÑ VSUºÇmFyŸõ Ó÷}v&}6^ÊÐíäh]ÖJæ4—’‡ØË7W‰ûCn\¢È.‡û2Qu™5+ǽúZAÀæÃú„]QáoÕfi· ÆFššþ˜{wwˆÒ/²4o3ì<`Tت)t‡Ã÷GÌ'Ö‹)ô$ šèضmŽ?s¨,yá…7¹óô õÓg¬\½Àd_ à”KËKˆªÆ¶¥¡“ò÷I×V˜—Òôz§ôûS–·jˆ¹,?>$ XºpY,RI¥ñtŸ~ÿCr›&¿ýÍ—x4¸sû.ó‚ÌìüTÖáɽ·yÿƒ1ßøæÜ\Yãî÷¸s8dþÚ"/4z›öa‡¡’°ZY&S5h<­ÓNÐùyÍX`Üڧ댨¦æ1ÔÎÚû8ã³Å*e«†«´yzï”|6aneÆî6 ss&Â4Kà{ Ô{}G°þÒ +Åõ{SšA9È“ŸÓ˜öGø¾K¾f’L-&~ÉX ¯kHE™ŒYD‡=9ÁHiÌ®,`NcZƒqÛÆRSèÅ GgÚ¶YÛ4 %›F=@amEC³7&؃´B´<¦6Æl¦½"¤ct;C¢Û¨šOä+L{]RFù ƒæˆP°¹>³ÄH”h~xy.…°P"jOPÉe²ôš8ëkܘۢ¶˜âÏvž`$&¯lÍ1êŽù }ÂÚ‚ÌŒ´BÃõiŽÈË)²Å<Íé˜ñ™ËZ%KZOν§C?‡Ý8·‹’ôYôê? W¡žÒùúå dIÀu]\ÇÆq]¢0D@’Ï- tÃ8R&f*Å4’èØ6ýQÂ`ê3 :ŸÆ ! \DI"eŸ‹ßÅŸUŠ?—jüì¹Ï«ás‘û‚y Iþ™^Aú™^‘…5v‰œ߉™š"qb‘ÒT)@’BQÃǨ¾J¢ƒ`„n„ @ZR¢œ*ÉCõE||KÆ“m¼H¤âDDªÏеЄ€”j±6#ói{‚f§ô"/qÈ|‚A(ÄL²:ò$Ç&6D IÃM"b_EθL]IKÀÝÏà÷¾prŸ¹p8Hð YQbHŽÐä0‘£„@ˆYð%Ãóñ•WÒQcMIWŒ •Ð=ï] ‘ðð'Ÿ‰Ü/¾öüÀÆ}Ì”¡ëL›ÀŸ›³z†ñxDkì’ÖCjÖ<º$ÒÛ„mKQQ39\ÝeÔrÐd¹¬ †cÎÜý°(¯â¥4ÆjD2˜’QL­BÚ²qFõƒÈ²Q]Ç(É4#†ÛcHˬ]œÃMD‡}¦aGƒ ©YüBžöá€ß¸1ËOz µBšÝÝB·‹¹¶DMÌ0~6¢gIJ‡¥¥’’ÛÆ‰»LµYÒy‰Ä²°Ú.Ϧá˜-Í’=úaD>Pð…€³ØÃ¯;T‹T³K‰ËÇï|B³ßæïþßbáÊwÿô}ºÏ,\®1¨7>åÖßùun®¾ÎO~ð»´íb”Ë\yã%’Èäýý_ùO_§9JxôéÑË[ q"›Q„¡çÑb_8B² 2¡Éé yD¹¨ UÔRšŠšðoŸ|Dœ¤ùO¾ôÓØãñý·]‰™õ „±ÉÞQ»XãÖ…ïßû„}g†×7ß`ÖjÒ9}ÆÙ´ÏZy¼¦±ŸT—r2X,ÑôºÏ\æ ƒÚò#·ÏÓ{¬-/1;›f¼×bª˜èFŽÐm0kJØQ™ýýVfçXÛªòôéõæßyáóKK¼ÿîÇŒîí ¿ñm.½¶LøÞ?£›„(ßøñ³}ô°‡õå5zOÏð>h“ÙÜdñâEíJgûom½Å´Üã“wïruí5f¯”¸óü¶SbN¯1£7qã »J’Ý`}3¡·û”'>ÅeVׯðv÷>MQä+Õ‚gÇ<{æ²úf…äj†áÞ)BÃ!µ|)‘¢‰”éHE„þ1ù2ä*+ E‰ÛgwùR’çµù îv›Ü¾}BZÝdn.KZ"å#ÒÏ#΄,…ÉôŒgŸ³qm™j&ÇéQ Å´ÉçÖŒF &>¯¼%†|ïö3¶æyí…Uþðݧø—W_« òøÌfaÝ$]ù³;³jW/Š4ÜSîÿ`ÂæRù›êG'ÐQ[%݃£@Þz¸Â1vs¥v££ðãg÷06Ò¬ Œë63ËR¥Ãà8¡7ç…ËK´ü]²ƒf.Ïs]àÚfHè7`fi^àsØjã/ÍQEf ¶¨÷»x=…|*ÃR¡Ä‰‘sHØVI•Ó8Ó!¾£™3ˆÃÉt±ûa2$DI ߈É:"ž‘pLÈû2ùÚ ƒi—–cSMò)ƒ`â“N ÈΗ š{ûT–¯S79¸Âèl„1_ÅÊ©H££Æb‘Å 3LÛÙuj3Y´(O{<ÅÐGˆÆ a;@«9XªÅéž„ê×)^ÊÐ*ÂÅÔñô“é±[ÄœÑÉ,JŒÎ"üAÀH‰ØÌITáózƒÅwBd'Œs&’#ÈAìõ|–çÒ¨b„,ÿ¢÷•¦§Û~¹-Nòïq55…¹b–(Šñ}×sp]‡0 HH%ù\3e étCxtìòx»Áîä„nÏ ÑkÐ:íÓ \ú—ãþˆ½^—Óí1Ÿž1ö„P"kéüE'õóç'‚ |¡÷…sØ’åÏlÎS…?ƒ/Q‘] G ¢o Y6*ˆ8>bL%Ô¼‹âJŒÄ A´½Ñª’¨>’ÓC‹LlLEaO°%…Ù(-›¤¥>Q(‘X›Å4Û!ª2Iè XjB¿ QZ$À ï ¤‰!b()¤¦J…å£ãc¦zS󈢰»û…MÃÊU‚ÐGŒd!˜ )ÔŘ8%‡* ~¢ÇcÙ4XK59GÔš ÈmÆ£zM&ë%LCÐðÈ adS³´$™~¯IŽ­PC ŷ..ðÝ1ªÞÃñ<êv†ÜØFϦÉ4v—ƒvDMË’­zL£ˆá4C2è“è™D$m)¸DtÆ¤Š YÆI½×¡,šT E¬S’‡ùÜ é‚Îñô‚/‘ÍÁ–ѓ҅v“RÎ"±*ltÄÚK5^{õKüôqrx‡ÔÌ"k¹y†N€LБ©bã‰!i§L"G8¾‹éÉ=å!’Tãfm‡,•LVò«¤20jøÜnôIK ßÚÜ"È‹ìì<ãÉ“ ÕK5^½q“gï±ÛÜcõÆ,J¾€î$¤GÐqûˆ+ /çJÈMƒ·ëÇ¤Ä —–ËtÍ4§­€áÙZ4fýÊ+Ì]x³{?âÞ½;l½~µB™v5g K9:ãmt¦Å ã}¥Ëfeã K'Šyå[¯‚×áw¿÷'Œô7oý6³âOž="]®ñòæÇO…ænÎáµO89N S¨hhÁ,%Áežñxà¡»‹\_;ïö,š¡Uw¸cjôÕ€^d“¸Ë…,r/d:L ôÛ}"­íÙH'6åÍ´™Òxô ‹3ˬ,TÙ;}„xê“^[d Äý6s†‡U\ÀIÊLÛ)uŠRRP:Óþ>C$³²Éä ’è˜îXÇ2,ªùG£:ƒã[KK˜¢Ê¿uQ L.ç.±Óks<<åÚò<3ë3ôÆLÛMÆÌ)&3ÕyyŒ(œWž§?KÏi:òÏÒƒ?g"úïµo’$!Œ"‚ÐÇ÷üÏtW È2º®3 Dîõlöî÷9:‘¤I$Ó³p¤B>‹,[ø7aZ ¹*~JDj… l‡‡ý'Ûm$C¤h¥þb=X’ü;çù3Ø‚Ÿ³ÅÏÄïò¹K½(" ‹QæyU B˜@!¦M"\!…CDГ¶^# m2¢Œ«ØSY—ñRt_ŲeºÚ?0HF"[CÓ4m“ç íŒDä܈ÐKÑFhF€Ó!›à()"ï IT4‹h¡¥§Ä©þtˆ+ÄS0Õ˜(1Œÿl÷çŒF·E0$_d+:/4ðs=»‚€Ä‘‰¨ºh‰'ˆB€ ƒ+BÈhQ@%`($ŽD¢Ä<ü™Mí·Q7±qƒsÇRU…p2Ô\d9¡ª•A”hŒ[¸ŽGÞ,“˦èŠ.N»~ŠtÁÄõλ’«QÌɃ/4X=k…±;¡‹Ø¦‡ £ !HY2•'‡†Ý6‹•ur«y¦Óö^ÀPÐfr¢Æ¤—¦ |r3øò‚Æ¿þø.‡ââUÑáôÈAJ+Äk&™‰ˆÞ‡AØC—y©jã ¼qŸD‰³©4R8¥¯ é7uR€h¥ …)I豘]¢oÀÝ{{è]›7óïàÈ?úJJ¬½ö’á2ôF¤ÕÉɸó€IgÄÆëßàò­›|øöûœ¼ó]‚•*ÿ£_ÿÛì¶Úüè_þ1KKyÞºöœ¶§ß#“^G/ȵìªëÎÎê$±‚–žÇšÔÎÈ¥ÊXQ@+kr«ºÆÃ“Çœt|¾ý¥«ÈˆüÞG1xÜäÒ׸òj™Îî.ãÛ(W_e”„”[È¿¸ÈŽ/£Ümbä2—/2Ù=cÔØfë…MRÒ ïßþ>³…¯^ü2ï vxò¸Î+·ÈÑÃî=¤Î:QzùÕ)ÑÁOZ\,\¥ºªñý݇ýw~i"òÁ“© .[ë¸Oðnë”_Y¢GV¯ANª)äÉ"FAàyÏGí¥ñÍ1#^Ë\bßÌòè`-ʱ\õˆG’²…c´U”-{X§ññS6®²~e•‡Ïž3Hàâåyz£z·ÅÕÍ b,óðùs0š¼ùêË ÙZOv\¶½ _zµ‚Ô{Ì÷>¸<ó«åj X¥>ÏižôÉ\zÙ¯pÔ|—ô‚Âyê®ðЉ_öù“Û ²õ·ùí_y•ðõ7xûÑ#ô –T"]îq*„|P`¾?„k>•ëeòÝž|òˆapLea•¹Ù$?áÑLJ¬-d™»\æöO> §Ùzí«<Þ}Π²U®‘D’ŒË|Ù`rä˜"’îá4F£ˆ• Yz^À¸>åâÕMEâþå¿¥”ù‡¿õ›Oùô±®”¤’ê¢ ‡§,¯fØÌÜiøt¦LDLA ZÑèGìv)Ì,p±Pæt°Ç‘7 Ÿ2H¢éy)öhmŸ ³ÈåˆÀ‰QìFÇÁÌêh¢ÁYLÚ±ÉÌ„(tÆ6,‘SSäì4n¥ÍöýnÇ᥯/SÈ«´Ÿ iÇ-ÜNL®¸@Z u]›âŒº„ž›)bÆ‚¯ -äGýÓSHRX¤ ÙL†æ©GwÒa!m2¢ÀÐñ©B²EÑqHkÚ#½˜¢R64<šG‚ÅÕå,ãV—N·‰$k̬Õ‚úþ¹ÙsHuwë¨TÚb4ìaªVm†á‰KwØd±'’&½˜j΄´‡Lâ 3b ¹eÜׇ”«)´tBÝcŒu”0B\QÐìQ? k*T)£ÇSŽƒ1¢¯“¯Z¤äƒà³êÁ/Zãè†ñEzßøw#Hq’G!ažG®’óÈUw$ðèù!û^Â82 ¼)ª.‘ @,âÙ"ª‘–elQDŒ†Ä±‚DY‡È‹²2¦+%¢yУM)§3¨ŠÄ_f$?³…øùÈ–$!H?gd*Šhb‚,ØaB¤Dà{ä!bá ‘¯ éQJÊ2Þý™ëË_ÇRõóŠ6ÇE’bL)…4MðÒ1¡ j ššÅ]:ã!CǧX(R(ä™ Z´'2†BEÏâjÃq;ñè=úôsÀz6 pl|.Ke±†í‰>Ù§˜r(¬Í‘Ó«LGuºÍ!š&]ðÉÆ¾¢1 l£)+i•Ru†×exÜC5ufgfyuFæ_owˆ‡!f’.Pf4Z]„éˆòì:5}ÊnsÌ~0—–ɆeBËÆ³{ŒÇ ™–X W-Ñï69>m!J 7*êÞ„Ä‹02y¼Í$Þ'³²D:”ñ&&z€;9Fñ–ÖçÉä.±¿wHÐ~ŽYØÀ‰LÎv¹õÆ%j[ Üyp‚·‰¦:+Ù2“²Ïé¡G!'_‚d”Aèöé°O*³¢¯àÚ»Ÿ>ûˆÌÜwX[¨qðöCœ´Dim ûÓ‡øË7®ÓŒ;Œƒ3Å 'm[£|½JÊKøäã»Ô#‘[·^dMëptç12CáÖúw?e¢ˆ\¼øUv·ßaºwJíÖWH©Ý=úÞ½`±g;¸îˆ¯ml '#þ»‡}rÒ/Ï;ø£n1¡~8Dt²\yi‰¸Ÿpúü§ä í²E+ðÈ(yJršö¤ÍAgÊJ9Oî‚Ì´?Æ> R º®„¥d¸V.Ò²FܾsÂÒÚ2/¤Jœ6[l7÷¹’Õ¹5¿Æïµh¡ E"ß`}Ygà|ø¬N±±xcƒƒçcâƒCÊ׿0-‹{ÏÎXÊ$Ì­g9mH<ëQÚÊb2î‘•,n½ñÛûušï>gqE$ÿâuâ‘Éîémº§c¶^¿ÆÍëEÞþó÷ù¤Ñcqë3…YWÆ÷HF)f Y Ó˜fÑ·<üa0R¹>w‰P†ƒý{(é1+¥º‡.S-ÃÅÙgÇ êa–¿u±J 5ø£ïîâ+s|ùVSÉ Ô%êòü•%R”iœt1üL†ÐàœH\¨®Îc¬¦ù£÷ßaúØæï½ö&k«sü oóã?ú˜ÔíSf_Ÿc¸9ÇãߎÖ;&óf‰å¥,4T·pÔ.Š® žÈ\¼¼Å©!Óï<Áè«Ï’ÊEì7ûHzÀ/¿ÊááÛûG,­n¢I ÛíS*—uTÙ¢{3U»¤g",3‡},Âb‘Šóø'·1­o}탮 Ûfâú4”Ö—˜55:#äI„Y(“8cê#jÖÒ V»;m²¥›«ËHáõÃ3"³DÆÑPUQ³ˆtÀn“ò#Œâ*Õ#Ü}ŒmbT%ºÎˆa·CÕ̲±¶FÓirôä-3OuNoˆ¦è´ëCv;T.,²Q¼@tñ¼½C¬ªT×1ŽBŠe ÁK1î2ëdŘ8§#º1êdL«L,8ÐHÓ#°UZ T3"Ë~Š»c$Ùäúr†Pñüh@{lÌ®b¤#Žïž€PBYV¢6Ã3eÐ cæ.l’ Žëtͤ"ÄÆãI“–[§¨¨Õ–8ëŒØ?~ÌBº‚¾šG¦íñ8EjY£ED§ ¹ “@³žµQ­¹|£égq#[¢+ÃÎi“Í ‹re:»GžlSXž¥(Í ™>½á„Lì`éçé1MÓ0>·ë(²Š( ŸW& ¸JHHâø3ÈŠI€î$äÓÝ:ûC´…Ýžb#&ŠE$B*°ü» j"î@Æ$0L$Ã'ìù„®Š¥ÊˆhøêÅ uH è¶$ ;dd‰|Úø<5økòKç{îkúhIâyúð3í– È„‰‹;Ö‰@‰’€PI ‘ÝE ˜$yLÆ€L(Ç„¡†HŒÄ1†-¸‰$("S)è)_ŒèŒІÂÕšÉû]‡|JÄ€—qI{*v[BSÄî1‘©c¤,ÆuCU‹S£)‘£â¤c2S]öéSRQ &áà £ÑÙ¹k8rD"ƒ$jh‘„¤$x’‚"é¤$‚(AM\ÒÄÄÈD„¢„EÈIBˆÄ©„ÄAPˆ…´qç§ŸE°®½þMì$"´]曫|ØÔIg&¸Í%JˆÒ"Sä–E*;¢›É!è"™ºOÏS>Õ‰†g¥é#¶t¤e_4P›"¨BSú\ª¬¡d->½1qëÖ+¤4»JCˆ¸´xÉ‘éÕ÷°òò™ ƒ¤OOpB›0© Œ[<;«3—¹À­×¶¸÷Ñ ;?ù²y¾õúߢ}ÔáGïÿ [—.±¸~{ Ǽ²r#Çæ`2a«*c8:Î`‚hô{4”)·æ)-WùôÉSNžQت1SgûɆäríjží£3×Ó¼tá^ðœÝ½ª ÖËt#ç ºœe}ãulQàö»J½>å×¾ô™KU>£0¿ô· 5îL›xi…U!Gûè-j•e°»Œ¢Ó(á NùðâÊ*3Sìü”AcÂÕÅk,¯ˆ|´Û¥¿wÄ…Ù ©ŒD %”[÷¼®E–’»‚€(…Œ÷º,/Uhgc>¹÷´4«—ùd¢°ýáÇK!7.\ÄŸîððYH0÷—Ö‚‡;žuH­^C^è°ÝîaŸ˜¼5 ¾&óî{#gD.¼`´dúÛ-Äš†›éí7ؘ¯BqŽÉó)©å)~/fdçY^Ó Ï°z‹ô‚‚ $}7ÏüBÉuøø8¦ô©d-ºn@´ïO•Y»çáó§Œ:!¯¿xxjðx÷ù‹Š©sxIŸruëÇ]‘Ã''ÔæTf7 &vÚ»ä…0u%K9ä¬Ç‡v0ƒyþî×náKÏùÞƒ=Vr —çS²Ê¡³Oäì“í,`‰K© -±ÏŒâ“XÜ?lqf$\­¦O\Îú!7j&BÜáí»cÔÅE.)ÇéÓ+Ã)ýÚ^OCusùÓ“„ô.Ë /1Ù3èø÷™]™¥`”ùóÇÈGüú•MÚ×®óo~÷òó=^yù®ʳþˆÖIž‚Rd¾Ü‡ˆÎö:$Î.Êü"EU§b™|pÿ9B’piižíÝ}:Ã:[·n¢%Ï·Qã2¹ &ƒ¼ ªÑîÏ0´zÐí Ø2…B™bFäi}Jn¦ÂÅïˆáÚ¯Ý`Ø398øYñQâ2jb¦œºS’iŒ2—¦»=äÄYšÓ™Éˆ8—¡ïñð GI_âúÍ Ó#…çƒQØÇœY¤œJ3ˆ' OŽI…&©Ò"gÞ1ÆÐ#Ÿ]ÂË4p#hãõŠkeˆšºfc…y¢Hf?èboO¹xy…¦ÅѼú„tE'ÐJn“Œ¢#‹~Ñ’2ó¤šÎÌ4©š·ÝÅóÌÚ2²Òa:¶Ûˆ±J~>ETHï‹Èº‹4'aÔ¡ÝCVdÑÒ´ŽÝ´1¥™Y†~üˆ6Y¾úÂ%yȧŽÈ'‚•#œÈ`Ì;ìŽB”³„ÕÍE? }x@Þ*àg vT ¡†š“è =ìíˆÕÜ ÆjžÖ£&BsŒ^«¢å-v;ÇÈËe«LWóðÃ!¹Pa2›&•(ø½GSÁΰu¡H6+²pÊlÆ ­~‘4~–T5ù çö¿,\ýüSÇçƒ-î=;`,ˆˆªˆHNÄÉtP£q(Fà y)$mG©‘ƒ5Rè™ZJ‰&»1Øy’´>œpÔi¢§-Цv£„¿D,ëçH‹Ÿ÷å?w“7D˜‰® 6¶¡“CMDBB|Á%Vª˜BD,88¢=ÐD±r†<Ðw„§JˆM ='Œ"l`ÖèŽl^ZÉò´Ð‹È™£ cA!óð¦m„\t™¨b¨*^Î&žJˆaŠé‘‚‡ k¢LäŽPt¿õE/ÂêÖžJ$"“B³1AV€HBc%AŠbd4†È(ˆDø¢‰+€„&ø$¢„ïi(†‡*ˆ(²@%ÜÿfȈõÊ"Š©Ðlž·mÔù˜L´€¬‰8©ý–@Øì’®©äÊ 8Àî)ˆÂš<"öºdV0…"­Ó'(Y+0!]´0ÒŒŸôéz»,T/*3Da‹h0"JåˆÂ º=$L$³"D1öh€ øÌΞ—Zwö°Ãn\]¥š.Q?xˆ(L¸0Ÿ!é›Dã:’¡%SJ¦ÂõµU<ûŒÃ÷!z67_[b=o±sûDW¯,R ‡Œ‡)7&Œ[$±ÍŠ™£dgy¨Ù5', E6Ssì¤b§˜AÌÖÊ,:óH‚ÇÎþ=bIåË +<Ÿ7…]}qO>fø‰ÈüëËŒ£&îÑ ³T±¤1¡;¤¬¨ôÆ]š=©A9_fΚ°÷t-I˜™­Q?yŽeUØß„ï eVé Ž¼3hRÞZä°×¥±sÄeÍ$1eþ̓#hÚÜXÎãõŸòðè¡»Jͪ0»’¢g·8ݽƒ)Ïb-,³Ó:íPÑàñ~—γ ËKS´ô”îÙ„Á‘Kl¤¤m”IBZ1 {4Igv~ÉIèym¶[RhüÊòK|Úñ°ý˜/o¬áSN¢)WóÍÓL¤>‹×69:8âá£ûܼ°Jay“÷zOryñõûG"ON[\½‡]R¢É¬9dçÁ#& • ¹kÒ¼@äOq†¬È¥²fr¼ûˆÓÇ=Ê™,#MwܧÑñ)–t ‘Ìa}Ì®ÓdëÊú¹åÀã1©¥"Zä2ðFd% /;OÐx„(äò«Øã‰ààLÓ)9?ä°Ñ#=˜c¶š¢79mµXQgò3x“-2}Üà —g˜¯lr°×ÄõðD|fSႪ£Å!ÓvÈ4’‰UŒl Ý¢x¼Ž‹TŠI :šÓÂ’$¦^„$Ìè.N{Bà©ÔV d·Çx{D¤jÒ!)!¤8LûSòªN±  4[Ø- * ³v ac@¢LD•bF"ñ â ãƒ)ÅJ…ùÕ9v·q§dæf±òi¦1¤eÔ\g0`ЙbYeŒt„ã\|9Ç‘1E™N©$ ºG¿3¡”šGšˆ?™2ð]ô+L»‚+Nñi£º%ÒµjIïÜäSUÑt ÓH¡:ªª"}V=øW®òÓç;üàý¼áÏ”Hr´UB{L¬*H (ŽšK`IÄQD È‘ƒ˜·°%›l‡Ž–3@ïHf@&IpuA˜ÀÔ#ôRªÌ‰f³fšSÚ/²Ó_½úeÌú™ÿ A¼ôytK—Þ…n€¡«*^2 ‘g0€ Ñó$"WÄAP{HvŠ@7˜J-rq‘$²±ÛRèû)ÑNèF y5âê¼ÅÇO‡¤å/–ˆCUðˆ@·ôê ¨ä\ÉF›xA‚DøˆxEÐ{ ÑT&Ê  ÄD?§Áª,n`„!Al€‰ž k ²'â"*b ÉB’ #ኊ˜ û@¢,à ª ¡‰/+1¢ àøðøƒï"|ùË_N¾ú¿üß# Q@%lÕÆ|d!EN•q'l/@Ð54Íd¤E3ˆéE6¡,SÕ ˜þ„S¡O 2“*¡UÞÿoÿüÎïü¿ó;¿ƒóòße4ÐØnɬ½Äüå‹$á1;h”×SÔ&yÚ†HK8aøpžÄÖµte‰3Á[D*ˆ’GÏÐ F#þŸßzÿÿ|H”«ª6õfÓV¹TË1¶àÙ ‹ÕÒÈ/ä¡’#¼¿Ã i#¯äÉÊä4‰ö´Mãé¾Ucci=Ó#¬'´ã˜ãg¬Îd¸|ó«O:lßÿôÔuj³ULûŒƒz„ZÉ2›Ê²{xYލm®u²Èö!î A6a¥¤P<bŠ¥2ªªòW9’¢8ƶmơţžMkü€¹ì2éÅ—ö™œ>Ã5 \|ó-,"ø”ÃÝC¾ùÖ-ürŠwïÜãõù" •2O>F”E²’„áO‘„˜ÚÜ!kÌPZ©¢£á·ZìJ&³Ò|~Lc|›Úâ*A àžt¨•çð‡}úݻܨ–~n^åÏæuþÆü«þÜþù¹Ý~ç§Ì¾~ /np’DŒŽ$ôÖ1 ‹+¼ùÖ— ˆ~áx×÷Ù;nòÁOþœªëÓ)G8í&×Wg8kHœ¾}å/]&ûB ùÔ`r\âóCnäfYª¬¶ÎðÑÙl•™ú¶ž¦¨u­åÌå wž¼Ýñµ7–´eþ퇅ŒÊjVáÁÑ>b×afi]7¸ÿðÁ©VC“`çþ”H ´ø†1æôã§i‹¸TæÍKŒZ]>|tLvFçk7ÊL~ø` -Ú!{´GÞÌž¯Õ×ÿÚ×ê—׫èÕ9Ôˈ¿ö&ñxûwÿ6ŠÜxãˬ¬®àzqô7²â$!Šcâ8f<Ñëvh6êÔ™L&¬lnÐïôpÒ9DÏå¤Ñ"[¤4cÁ¶ å„BSÄ3º$HHØú¥*!µBÆ;sË´õ§LŽGTÊ×ú#ú£#„8@T³DqŽÜº„MÄà¨Øëá/å˜M²ôëmôŒƒ(Øûuä)µõâ߈÷éÄqyôlŸFãm–’"Îr†ÇÛèÌÔ2L=~·¬)¨¹ a£ú“âep4¨hiúaŸB]Ĩñ+8Žð,‹zvL¶V$aL°ãx‚¶µÈŠ/a×<0úT"˜._¥íŽéîô˜­ ŸùGûCÉŸ¥Çþrpu>†S?~ï {‚F„FÎ7±çUÜ1¡'1¨ªTµˆJ”cL•0 b_"Rdô2º8Ä÷1ÂÔSÔã€ÌD!•žâ§R„8¢ö#í¡¹ c@ËL‰\•‰•AFÜsê¤5‰jÞB–%@D@øÂÕ/V‚¢($Ÿ]÷sIÂñx„Í”±¡]@§‡ëAŒJXTQ"›Q"!õUBUÂVÏáJe€MW*2VÇHM•‚1æ8„ŠRQ¥98é+†ÍÈæÜAì‘ÌJž…´3Æ(ªØ–:®£&*}Ñ"kKØV„'Y˜KÛÌ¡z’3µ¿à‘(Œ‰P•˜”èÚ2^ ¦Ò¤›©ÊÔGPCEBøYÓiÑCð4L1&V" Ü@@Æ%”eÄðü^%XžL¨‡¸¢NJMCMo1^º‹eéåú”#Ž©b­à ÐÏ4¸ ‘æÇÈz†XÓ‰ˆNL®X%UÔ4»ƒæh˜ù9Ô«§OOqS´ü:f>tweÚV@|´ÏœœáÕ­_åQ¿ÁñÓ?c±t‰ÍÍÁþ„æ¸G5±ÐA9ÓÆ‘2ÜH|V£!7¯]æú›¤­ IF1~2š:AH‹!ÿª†ëüð‡?ä½}Ÿ­[/#'EòktUF{·Y*„°þˆ GàµZ保±1“åɽw¹”›ãUeÂÅ+Wغôíw^› Ãøþ«û«žÛëo¾ÈI½ÇÊ‹e²û-:]0“Ãv=šÝ¢ àxþ/?Mù½þO œ!K/\D7Êd§=ì©ÇÈÌsºWgxçmþþ¿ÃƒÜ<Óݬ-«e0©òÚÒ<å-AJã»ï~ÈR6Ëßû/.òøö3N?þÿr}c“¯~ë7)–ÊÄCÖêßY¯o¾‰18$ú×ú+KP!L†ç"äþ? ˆ¿ICdUg¦¶@µ6Ï¥k/²¿÷œƒ'÷ñ3e°‡4•(_x‘ÎpŸ>àÒµWX÷Eî|@r¶Ìì¥y4»N·ï¡ÎæØÌ9‰GÜ÷e !ÌÒw)Î+dúîõ¨¨{¼xãÍðE:wß!L\fËóøéì¹°€:=!#nsõÒÅ¿øþó×´öÍ΀öÿþoY]œej¤qí&ƒH@%Ê’†\Ði7è“§ÚLCÕ–UšÓò±On¡ˆfy÷Ù6ÇëüÊ¥ùÈ<àäù.—kÈ[ƒçðôø…­EVS%LŦQésÿÎ)bqK//ðèþ>JØF (çŽæŸõéAÿ’puþÕ|zc‘ÐöcSµ4BÕB?¶é’!QÔ±D‡.žZ¤¢°m ;Â4B¾ËXM>F3Œb †ä& BÆa ˜“ {8EPSÄrŒ¤tp‡¶4AvTÞ~Þà;We Ó@–á›UÿEpõóCE@–etM'‰"nÍ„¼[ï2˜™MFL‰¨–“c>7¦>±; ÃÄð ÊI¨Q„å%‰©=@I$rt$ ˜ 5U”ôÈ“„‰¡"L‹„VÓ$LçðT¬7ÀNŠLC°msŒ°È¨£’Íõ™ú0–,$["mÛØ¹ó¬$ ÄqD,ƒ’$øŒ¨)‘PV±QÅóQB7PĈ˜„ðÐDŸ8E‹0ˆ £1a$£*"Ú€…lãÊ"¢l`FbPoôQÐ)¦ DzˆN‰¦i_ÄÍÉèºBЋ80M‹ÕÊÿ TtòLË–h>Þ‡¢ÅKs‹l#vŽŽ¨v`f­Š6ÔˆºJŦS70Œð<2¥ªä$Ÿ\Æ@bI$á˜$Q´è«ÔHÅS%Fc 5=F ÓçUO%k °ÿÜýW$Y–¦‰}ªWõ*1S35âfÎIp–‘™•YYYY¼ª»zzªšÍÙ™]`VÙ—^ ˆ,Vde°€Vì`g¦gº§z¦iu§É#38sînîÆÕLÕ”\Uq§J\uè…;¬Ä õ \ßÛâáÃoqÞ:ÃüÕO F#n ÷QÕ˜ ã V5¡R(ÅR¿Çמ;Ã×~ó·qÜÝÁ˜;‡Üß>`¯Óg0šÅÉ/tc{gX®Í@ xûÍ£§#Î>™qQãÚí‡ù+̵70ÓUŽn}›Oó~ûë¼ðâKhtއÜß>äÞöá/Ýu(!0ã5sDÜ‹<ÒaøÄ¯w”¢;Úb6Áª7Ð䥆(ÿK ûî ¿,&4çP;}¬SqJDLš¤*grfžfYðpç6×·ú|ò7¿@©TæÆO·é¨yNŸyŠÄºÆÍÝW(éWYûÄf£µsqZ¢¬ùƒœ¹ŠFiÃ%Cúw§ì%ºA9»Ê‹g^bÆ>ßzí ôÍ„3W6¾´¾Ê×ß¹‡cìt¸¿}Èîaï—.VÕTcÿ^™ÍÏeTÂC¼ko#l_æQi–1 gô‡½QÀ4ŒÑuÁò© œ=u÷áû÷î"«.Ëå3Û7¹~›öÙ9Vó›öˆG3ÖÖ1+UÂ7 ˆiœ¾ÈP…H6YkœæöâÞÛgðÖ¯2Þëpxó ô…‚Òê)ÒýÎø‹Ó¿òâU~õ×þ¶Sâø—xýÑCz«D>-ÈÇ1$0R³iF½TBî vœ. ¿À:pNbW ®_#³€«Íó¸5Ÿ?¡·ó©Å§ˆÚ ;G7ð]¨˜g  ¹ỹ»Ç”Ä3ÏžE®½5dŸßµÙœXã=¨Ç;ÿpÐ ¹×Yö-äz›i0dÆ>ËE&.±HÈ$TcÈbÁ4ƒq,qD€mh$Q…¬˜âeEIgd Œ‚D™ Ýö‰’{Ö'Ó#Fôô‰Àˆ#â‰"+h2#Hy1áîŽÁN¯O–¦(•½«»ûyìÕ»~YïØ5iJ,Ûæâ|‘ ¦qˆ)cêÒaÆÌô = ‰‡j`†‚cÇ'uzeP-{dq‚údˆ  !C¤tȆ)!ÓÀAw BæHL2¦"Æ KŸRd8â $&¯Á¡LÈBIæ±@ï<þÜÊ"ƒøDs›k¥2¤ *6 KAËÈ ÐS ËL±KIš£r“4I0400ÉtÇè®À”`*˜¤”ÞX3R,Ó¦$݉”¸óU˜èÌŽÇÌte„Q`KÅ$)»X%EÅ®PèI6%Îbªº¤”UHHØ×Ç‚5ûDÙ¥ÂcRØ$á„Æl†V["Ñ*„¢G˜e8ºI0C,ðü”?áhwÄ4Ë9÷L…SsÃIÿ`—t|LT;y3׈z(iÑÛ„]ÁPèSƒ‹e›ùÕ&Í€ãq»ZF87ÈÐ’£f!¬E2=&ÛÛ†,ÃòÖQ¾DÏ®1Ú„º6šR¯×9s¦ÉþÍ·Çû”ÝeN-¯q:=äKWVøìç¾HÅìtÙÜ;¢?š¤Ù/LLü³FŠÎÖÃ>s¤œ«Up ›£ ã­¯²ZZáù«gIòZ¹Æßüßb~a‰a0åán‡­ƒcã é/áuD£€f¥É'/­òÚî1ßþÿ¾Šã=yŠ)²2¶Þ>æèå[œ¯ Y[[å'ß¶Q³küÖ¯/ðÓûcöï¼Îåê"ž×"Ü/h–\îß¾ÅÁÃS|ésÏ1°nñ­ÿ€ìeßúôóTՄ믰ڶ9³ºÄ½¡âðF@žœ?g²Xn¢3ÄÛ+Ðg:Ûa‡#mÂBù/Ô—°D‡»ý>éá¿¡˜>¥%úЦP÷F;tþüe¾öâK\}æY&áŒíýc6wè â$ý¥Œ€ÒaÎ3{[§±´/ ¦Ã˜¿.£( Ëá,&œÅEAµ1O{í‹YFÛ˜q4xÈD-B±{óM Ãciþ2Zþ€7ïo2H«”k-D˜¨.ÕÖ”x§ÌðÈ`}µ 5蛘S‰i•˜š“ã3=gÁÌYvó7~‹s.1žDlí±¹Ûù¥]F*¬,PrfL'‡(Ta³?ÙCŠ…SËAÁÎþuZ UZøt:¦]ë:Ép‡ZÓe}ñîCöoÜc½²Žq¹Æ¨Ÿ°.BÂLg0Î0ÇL@bQ«Ô8}Éàawˆˆ£wm „ñNÓãw 8Ÿ\LöÊEL\Hô.Œ3ˆ¥ÎPK6S:S=%/L„R˜LCŒ+dV*,Œ" ÈAËtd£ ˜Cs6#6ˆ L ´ÜÂ&#Óó÷–2Ë$d UF<›QSª\%ôt¦ã N4Á.Iê¢A‘I¶¢Ê&‹±Oa (iôcÅp·KÉp8}y *öövßÐ'G Z¥ÄêR y«Ó%¨iœ:µÀBé,V3~p‡½Ùdc¶[Bõ;AH¢%”“Æ©y*îÝ}ÀÞaŸ…Ö ­8T!GAZT¢²¸J‡ŒïíÁ"„5.úwÑåîá!wïÞ¢ÕZ£y¾Ådë-T ×O“á £á”Q~€:ØÅk\¢<·ÀÃk¯3 柽ÀœÕ†0 {o ÇHY¶¾x~‘OöóDqÂ^§ÏQoôK½©Eãé8,œ=ã·¸ûp‡k;?¡5w£Tá`s›K%ø_û-jõ&½Ñ„íýc£ Ù/™æƒCäÝ,dÇò¨Žl<í!©ûäö¸›0 »èÖ€7wº‡)ç.­‘US~°÷&Ÿš;K˜7xõÞO¹ºà³¼ÞäÞ¾KɽLå·8àb›æ‘Åâê³ôEÌ«?x™š3¤qöyÎT†ÜÞü6¯Fs\8ûiÎÍEtw_Áu‚úÛ׺èYÃ#­WHs ?!!Q hkÌ·b~ró‘_üԋăŸùÜYXXb8ž²µwüK¾»9é nåeV˜L³ ìÈ>ÝFQ$iFœ¤hH»„Yª¡MÆLó±>ÅH»wLØxn4÷éßúIÿ•ùÏa›+ÄÃût‡ôFA Å,.%øí¦³Œ­7obÛóËçf›w¨»_ú•_£Vo2MØÚ;¢ÛÿR«wFÓ¿»‹p›ÌÕ˄ÔéôwìÑ5M”+Â!ŽsöâãP"„‡ï@6Èx8 bAÛ[DZ‚×Oa¹·ÛèÛñhÓ¼tGܾ}ÍÅ3ÈÐx×Í\ú s%ÄI¯>í£‘Æ‰^­øH€=Öt_2 »8Ž›x¸ÞEHUHÆŽbŸlèAOâyt÷=b­=¥T’dªÂÈŽ°ÄIÆÈ3±°§”g$%s 6 É2=Á,lb•Ñ+¬ì[oa× ˜MèORvC’8~×Yþ½û¢x’û=&Ë0‘¦É™v…ÂI0ã‡EƬèPÄ’ºt1—Y0’eS$S)˜J0CA,Ž8d]Èb(KA¨NA† ªt¥ƒ† b³,ч¡/i ðBçQµ G¡,Š  IYŠÆâÄ…êý#Q Å&…£Û*2@Ĩ\#ufn‘’¡tH#ƒTOš Ör„nbk µuJYÅ”¬ËÉÉà‘½£Á’a²@NBDÕÀ“.É4cdyØ•óh†¾8&«Ôé÷#Ìÿãý€¹NÊÕÕ¯0ç)þÙÖ}ê©Íåµu¦y•ÍÎ&¢˜!Œ)Êô ‚IìÐpöí¤ÜÉ›œZî"¦5¢  §Rféöò2ýkÇ|þÒyÖ6N1žFìö¦Ñ‡ (ò<'‰c‚ñˆÑpÀ$dzçøü»ÆË™Åø{ûˆÅ:ÇSÅ8Tœ?e~<›$ =ºÇ¦A@–ý‡Â0(•Jøµ~­Žã¸'zг(•Ce¯Œ°JäÝ!íºÇxpN8GeuJ±sëG¤åSÔ.\Eϼö:Ù¹åËôîîYCæ— :]žægk¼æ¾JCõ*CWÐnŸ¦Eì=x kµD½zŽ ±ËzwÈ•sgqJ%‚iø!pUátÊæƒ»üô‡ßåáý;¿'H§TÂÁæÖm‚ñŒåÕ jÕ¢Ý|KãéÓˬ®m0 cû ®T–1 ÙßÝfûá}6Þãp÷?Øï|öü%>û¥¯²²¶Žaüì ;× ò­UmÆôç± s¬à –YJI©ÒßKXo f%›×7¿ÃJëÎ]z–áx‹SnоÁ7n›Ï¬ŸæSKܡ„?ÝåòÓ—ùq³ÎeŽyv²ÏŸè3ÄÅϰãÃñõW¨öJœ»òIV—¯¾q“›;’K« ÌÆ™š§Jë Ì}üöª-úN@e:f±±L­‘óú›#¶ïrõÊùVH-qéÊg g Ç‚pö¸J“„îq‡»·opýÚë|€]þ…Ç+ÉIŒË¼¥ÆøÑ˜Óó—HâÃ}ï~ï˜?û£o<¶iÿU¹Ö<¯<ÍÙó—h-,bÛ·€–Ês„®ã×jîíPêöQå®c±$&ìF#Žv{œ;+Y½t…;?uÙÜ}“EmŠsyƒO¾èqãÎ&;;,ùKäý]o•ú¶vßæÖ;\º|Š ­Ï¥+OÅ)î€éÀUžçL'{»ÛÜ|ûMÞzã²ô_0àÚ%JÍœ^6`xï€Åù2•+m¢a€}kÊtÑ„´„%,´ì ÷¹쳺ؤ©\º˜ãÞCö[K<]s¹P®1%¼õp¯=äùö³ #Žèá ‡xmGwîÐ-Ö©m'ww›Ÿh¯ôwšõý\põþ/%x %‰’±p±Ç-ÍqW²Òˆ™HHc2!ÈD€šyµ}Q˜:N$HD D=1)3Ž$e%@™6EQLT”à‰‰R¸I…ÔωF R˜H7£¢àpœ±Ó³þ¨©³®é'v¸o?¾YôÉ´ÃÀ0M./Ûü`+&ºxþÉkà D´|†CT3p…6Àž ‹]ŠŽ¢ ³Ñ`šÄx!á=ÒÐöÒA†!aìeº •@9‚r'f(cfR2EP•apR<àŽìOðŽ’„aÀûW-¡g鄉eSÏ 24`†©[dZNnT¢˜PI„eAl¡Ç`ôRKA.ɵ„<ÒQ6XÚû,+p(JhB§'„vAžºI5ÊI‚ýˆ(Å++2BtòÄe+ì°ì– Ñ™ehÚ7[Äþã‘Yõ©ïö‘Áˆƒ²…7›Qš›Ç˜ Øîma‡%Ú««xI“í|›DLpcA\±K; ¹†H•`—Îà8e`“ŽÚ`Û,¸RÕI·2†mpÄkY…ãõ1/ßzÀúb“ÕÕU¤_fwëMFn‰Ù^Áa¼MEºÈæaØÁŠ"mdá å‹.*òÄ;¤sæ¤E×8¤¥—9_ÓX;u†,S ÆÓ•“O‚1?þþ·ùÞ·þ€r©D»=G©Tú…-nÒ”O4FÉ£Ñzã,¹3„½f³ç=ÁÕgŸ'ÍÝÁˆIø8¸*Š‚é$àÖ·øÖŸþ‚ñè½÷–&5ÿDW¯ù˜Òü÷ö{›Ò†¢À0>þ=“T±F ÷;ì9óõ'Ÿï~/Á®¤¬6×ZŽ÷²à_ µSÖ†¬ÎŸ%ì‰Ã?ccé“„Í*ÛÜæL.yýÌ*ÁA¯¬'ôÞx•¼fòåô÷¸¢)þËßýc¬Þ„ÿâ«¿‚jVøÓ£ë”‚˜5aq;™0çÖØ}Â儹I5;¤{´Gv¾Âå«ó¨nƒ»AÿÌïÁ wö«¬¯qᓟz«1ã $ŸÆ"œNxûÍ×ø×¿÷OßýZ¹T¢T*ý{Ï¿m¼²Â ÐBÂQÎür évÓÇGîÜ|›Ó§ÖÿJŸ¥Á`È`0ä»ñ'¼þÊùì•KO=ƒW©¾{ÂÜ~­A¹R¡ßÙ£¬G8Wæ¸u÷-Ôx•êÜeÔ¬Ãèú=R÷¥5Ådø&ûw}^øäe¢grn#a»¿Ge±B–jøã —:³ÕZ÷¾ðù÷b?‰>¬÷v·øÞ·þŒ»·®¿ûõv«E¹ìþÂÖ R©ÄÃ4D·ç)²1ÑñQ¾Àâ'=¢¢J7;BÄ}ÝÆ¶ \bÚÂa2œ´C<ßCmÃG.ëܺ¾Å•9o}u# ÷Ư%4ÓKôî“paL#ntkø-A<Þ¦;)±ì[ï6:Ö5öÈÆà½ÞƒÃì»Iu1®Ÿáº‚a 8L³‚,ë —=Êô‚¶ 1 ¦*Dz¶nPŠ ¢†I÷`@É÷±ô§¤`V¡Ÿ¥H= ‚B\D2¥$"³ÁÈàFET!) ä,Gd>èS²B±§  ìY¨–0 yÂÖé&š&øxjîñ‹~Ç´Ô0 ý2ñVé»Hq® 2²°C&=’A¾ò’d"`_HœŸŒÂ‹Éb‰#NöÎX ²€VÊWdý•p@’®à(ÁP¸øarT(”B—>Ý  ,%("@8GÇ̦!©&±±I E‘ƒ…=&ņɌ¤l T¹ (4™¡cç'V ¦"ÎÉ, ×±˜i¡“Ææ{«§¦Ôç*”fA(‰g fõf…ØM8>˜–uªæ*áÑ6¥ù& é²ßbK‹¸äàê Nž‘d’Ô­¤9Ç…f÷­Û,Ï/R­–I,A¦ª¤A7™Ðstf%`P©•8UšãîÂ`Ò‡hÌÐHXªÕÀ¨1±&„“ }6âéSó'þ`Ìñ0`¶T¡”¦hj„n6˜ó$Óø[×¶žÃÜ|…ÖD²Åè`ÈÞ‰\2)ÍëL,R÷º_çö½ïbù’ÕË$J£ßG„> ¿ÎQ±¸Îϱ°äP®øÌâ„ð,OÏxý•ó½oý)Rš\½r…æüà…Ùñ™ n„=fo©É:5ðË9®p4[CÔ2ZÖ6y¿Ä}·ŒQôh÷*h^‹ Øargÿiã“Ìÿø ŽMk~(NNž¾/Vq<ãWÊÿÁ¿àô©uNolàTËÌ’”h¦4§Õ&(, ÛdЙ ÔÚ>Y3‘e›9¯ÌÞÞY±¼¾LšdDÃ.•Z‹¼H˜†]ªN·dÓ‡ô¢!—VO=Q¼ ‘39ÞäÊ™sNýý]jÕ§“ø„ô_Y^âhš‚¤qŒ&®)°¤Mjă1…ðð4•qÜЃùf•¢$éc$1nc[Ó‰ã„X”¬œ<ÍNîý S£(tæO­Q2 ¦Ã€›·ïðÓ~]×¹xåi¼Jå±ThQ¡³°¸ÂÁÞ.ÕlÄÞ­[¤VzeD¥\cšžâ•í»¬×û,=óI6ïøô¶oð‡ß9âÊ™s<óëùéþ”¬3Ànùl޻˩Sg¡²ÈZ²ý3c¯²ŒÍ‡÷ø§ÿïLÏ(—J\8Ž•å%FQÌ(N 3b1Cb 2%Oœ~¬Ô$wMa&kè)h&Ž©1™LHrJµŒŠSfY‚™Yh0sd.ÈÒœDWBGË~@›bë·Ž4(S7À Š%8š¦”nލŸm2po ð ¦P ë®AÍ[g§Û£sŸöÕ3¬X+Ü»ñ-èðvV¡Õ<{vƒá¼â­·®Ñðïqnî9vÂ6Ãûœk¬3,<ðÔÕôz'E¨?ò¿Ò~¾7Xñ¸Øýáþ'“q"ð¾Ó ˆƒ¬ 2ŒI„À"&–E…R«…‘QR SXðm†Óº(a:5Ƴ"Ó)ŽLT^PªM uÐ1™F jSܱ"q*¨h‚šBE:¤5‡H™DƒËJº‚a{Šiš'¦ªÂ@ÓŠ7³.нîw¬*e‡vÙgMˆˆ…‡]d,#PžbA‚ Bb嵐v7X‹{ìËÒñULJ ³GXOAJÊ%‰®ž˜–vŽ¢»’̇òðŒ*¤ÙÄÃ!±tpT€’±Çû¸i“Ò²Ðò”—jq’*RÀ(E‚4)° …† Íct'þ`:’\æˆ4&6MÒÜÁ$"аD™¦m1±$ÚdL¡…/fcò,§^.˜¤5Âiúä‡c×À«x”D‰i’0gH1c®Rf˜DF—(z|A5ÁîÑK«¨ÔôÝP‘Y. ·Í‘6bІͦÆ)«ÎÁ ºÛ*85›Š],wbŽ8rœÖI 2 ¸Å´]A»^eÖO™4ªiÁ©úá™cöo_£’|’æ™%‚í!B8ŽÁÞôýáŒO,=M´Xcûá5ÜšÀÂ1Dn"qCzØã:NEQ2ŽiÌFåÑ,&I³Ç®ùèpŸoþÑ7øâç>ËæpÂw¾ÿ&ÓL¤tH& ³zò Oƒœ¹Z«*é e¿„C!5”(p !3úý”´˜[0Ð'1…^‡,äÎð&SÓæb}¿U¥ÓßbÿaYvX^œgt$ÑôŒ²jETz´0N)°™Ó —VQyÎ(?ÄÈ¥IÂõ·Þàßù&Rš¼ôâ (Ãæ°ßgçî]zãçëLs(Hh¢cµ%Ý"dx?á¹SXlÞ¤,ÚxÊÂ44‘„³aŠ3ž2·0‡W©²o)rž;¿ŽWr(Šâc7lSH¶{GÌŽªø—)çÑGChVž`-Ì[ì¥)?zë ¾°ø4W?ñ)Þî(é‚›n„ÞýÊ—¾„í­ &[¬ín2j=Åw‹_œ>às^ÈÎG‹‹|Ú´ùßíÝáõ?¹Åÿáï=‡¾ÐäÿñÏßB†Ï,°¾&;CåˆùÃi®£ì‡Ì7pô2í[LóŒ¹K>Ùd™ÈqÓCÖÏ>EQŒ'!Éûæ$Ïsv6¾ ®¾øùÏ`ûe®ß²{ÈJÓ¢îÄiB\T¦Åý‡7ÐûðÜ‹Ÿ'Jºüä•Wñ×Ïpº¼Èh‹nw—\­1ÜŒ)U‡¸†F?ߥm.áÈy6÷ïãÔ7(-ø°5Âó*O/)N˜JîNÎÌ%®ý¯ž÷¥6™âáídšAÕq©UʘvÊD׎SüZŸþ–A85ñ< Î ôY…8'ø‘ÁÜâá°K?êRY¹HË0™F$q™Ñ,B3 Ö¼±" #N_¼Àt0bwg‹F³…eÛX–ý!mb½9G³Õ¦¼6µ¨ùmjÝí!“YLµRFÓ2²ÛGœ]/ñÀXâíïßaÖ9æ™OæÓ¿ñ ßùÖ»o¿Í'.¯0®äx»×Xÿô'?2öƒ~?ùƒIÏ8}j«W®p¿3ä_þ«—‰ó„ö¥Sa’ÝH «~^"CC÷Å0#žB–„,®5H2—í‡HKï·ˆÂ1Ý;{ÔÛ¾¨3Œ÷'1åܧ\–¤zJN‚–ÛŒF3©h6ç8RÑ£²xIŽÄµWiySŽººfœi-3{z‰#FZ‡%cžØ/‘(… ‰p(c)Èœ“iĬ3F>WÁ*ˆ#‡ñöú¹Å Bì„]œB²0·ŽÖ½‡ö¨¹±¦é´W'9°ŸéU|t%¡aæà Â@'(ï„-ˆ 9¨XàùHɸ#ÉÜ!Òü `–kLG儲DIDDÝI)§Ò®1÷ˆ1ŽÐq‘AêP©Àäx€p* J9ØQÄ@(JQIR-p»SFŽBTªlŽfTK1RJ e ëÚã,ÖÏWŪ O|àÎÖ ¾w „H_!‡± É‚O*¤ô TL ‚Vœ0 ÊJK‰@(!{t6É$¸‰@yà …Œq B‘ùY"ˆ‡¾Q$(å!ZöBéÐPŠDø ‘Â'ö7•>ù9N®H…ÀÉs@g&@e'b¦[ˆ¨ ,cF®LÀF#b4,R='Á!C¡‘šB½¯ŠPw4z“œp:Æ©¹”ªz¬Ñ§»x~²SŠBb!™Ø6Æ, î™L¥Kä¤iŸ83¿’"c›™ñ¸MÃÚ™*&9w»}&ÅC7YRMiL0ðB'+˜{ì1M«‚iÏ£•F$VB#ð IÐã•;xhIÃxt1sMV+.É0¦d udÐ%étõ ÏU©4Wxxë:Ûw¯Ón,R¯Ï33'(Õ£ª/0ždÁC´RÂüÚ'qkÜÞ¹M·Ø£µ°F¢ g8ú!aÕ¦¦›ØNéD<œdÒ>lo>àêS—Ù^¹¿EžçHÍ$h‘Æü’‡.L‚nŽcZ…Æp˜0×ðh´ËL”"£@Ø£\!75&¡Â¶5ße˜:$e‡ª‘P1JÌ,A€rcÒÂBêsÔÚVE"Í ³.{G¬<`s¿OÕ-Qª:t#…9‹i·ªhËUކîÞŒ3WÖ9:£hÈù³—°+e&½mÂTaP¢é·iœª£stxÈ -8ûÔ9æÚÓGŽË:úÏ1ÊÓM‹bhq0¾AÅO¸¸ø dÉ“‹´…_Kiõ<6wrîw¦ýÄñR©F¬7éÆŒ¦{8¥&B¯Þ'’ ƒÂvhUëØº Ñ»™†Y,/¶™Ù÷ÇSTlÓ\\añʪšÎiž[XçËÏ\åéõ9Zú„SËs¼xñ—dÌ *ÕU„—á—%m¿Aw2cp<¦Z*1˜EÕsuŸñø„Ýû Û['›Ïòê:‰‚VÉd3Ý5‰‹ yxzµ«<8¾Å­­7¸¼Ôä…_d”nñ'7^åàA…+—j,mœ§‡Åd“º‘1¿¸Jœ|8öi’pýÚkuh·Z,oœæÏ_¿Ë+÷wí2ºãrüpŒ1‘+Mæ,+R×À)»(à MŒiFk~Yá¢&#Ìšd¤ LG£2çQ2!?ÌͳTÃ7ÄÙˆé,F 7¯2O¾ŽçÍcè–îkádJÍlâW$¦ÔÐÌ øE_±O(‡–®*Qèp|X0ètñÚ‚õçÖè^»ÅíkwYy¦Ei®„›Ìœ‚×îQôBžz~µþ÷~ø2s›Ó ‘¡`:³ÝÙG/Y„ÞÚ Èxçãç(¿?ʦa'z ôX2p2¡C„BùC¤Ä ™”„±À !`¸1™ˆ(¥ Çi"*6£d¤a‹5‘b.@?21  ‰“>vb35s`FÉ1ÀYD'b¢ö‰ ÚÆ 1‚’™Ð™&$IL’$diFžŸTO®>hÝ  ײ(K‰!r Eˆ‡#Y,ÄEYRÎ$ÕÎ})({ IC„$. ʃ“gÞAú!¡ ÁI!B!<"¡%}¡ò‘ =Râ«!Ê—• …GH‡-\S@W ÛëÅLÇ-f„†¦CaC”i 3ԣ׃:ÑrY[MÏ*#+tr¥¿°"Íb°Dœ@néÔeF. «NnFûLÃÁ²+A€&Lh4™CÊÙ[‚N Iš'Œ'1zE§†óxZ‰­ÆiübÂÃí7Ð¥Cµ½J®•Ð’#,¤”Œ‹‚|6e§“1¯å´Ö–±í*a é^Ÿ±yH‚GÝ[eŽ„(ØÀ.ë,´æ™+)zá!æø½¨ÓS‚’öŠ9Öή¡|[ö˜mO16|d+£j¯!·÷nq«»Çé•sTr~¿ï/RŽ%îCœ’ÉœìqÓ6tJŸ¢jP½+&]Y^âæî> ü‘¿Ši¹8 NZ_%juÜ1 £œ’0‰]M:¸h¤u!KÔ-“DéH*õ&…cNr²¼ÅÀÖ™¨KËm–Ξ¢ŸåìoÞÇ4MN]z‘óssìïq$BÚŽE~d`Í{4Ϭ ‚÷ï÷0pXX\E9áG0rÃAÿÝSñ8.øÑ­ûÊ%­T#ÈÌ|†‘›än‰ùº@$=PX‹kh‰Â8©Ø‹˜õ:•êÏÔ03D#* µ5ê§V0Ü3醴V–BGJMÿ9vœRŸ_¥ÑX¤÷à5:Ý´fë‰ÖÁ°OmæpùòiôV™n÷!áµkŒd…g_Xc<·BçxD-ï2-à 4œî½Šì5yظÌ}vŒMvúKÕ%þóV•W¶f¼µȆ~гëu¬Õ„k:b«KÓ‰˜jgеˆz刢’cDu‚¬I°s‡†!P‹ ”‚&IÂ@ÓhÌÍ£TÎt'ÙâÔãúµ×(—Jll¬óãÛ¼¾5åŒ?ÇSŸ/g½ÃDá3 wY©Ìsú àê¤Q3ÉÒÂY˜3Ù?8b­}¯ÑÆÇ<i…°äqý­§®2Wóéì= q±IÉ^¥âP2ž¼àÂÒH:ûL¶5Ò¹2ߥô1U‡bÀ0(»’’'Éç=¦ºA%01m¯J“y¯Ž÷´IV2h&:¿óù/ò?ý‡ŸßùÚ×ù¯ü:¿ý›¿Íßþ[—¿õõßák¿ú|æó¿Â™¥¦.h7Z,m¸Ø…ĘydŽN*²ê#£B½ê¢kÓIð3ä͹6­ùEú£ ž™pý¥B2_·Øº9$ LæžZå`7áÍïl²´<å³_þ:öhŽý‡ÿÌÜOñ"£a†‡4çæQyÎ4úpìg³ˆ£ÎÏ?÷ ö9ÚìQŒ'˜ž¿ì‘Ž2Ž„ä¦Â;Ó¦å,a œ·“ö¹NŤÈ£™¢¡ûœºx…íÃcúcΞyc^r¼{DÉ´qç*x­ÒÒPL (ÏUi´*XSU9òz*±Éd4ÂPI…¨ib& úUò „› ’ØÅNº(Û¦œ+ª¦N2Nè ºÁ;– ¹R'àü/®ÞXºÆz£DHL†C,$R|ø>±P™CÖ9ñ½  ÊJª€‰v éÄaL;¬È£Ñž”8À‘’Xd¤¥Àà‡’^xZ¥dÃ}"!„AX bRB#”€WFvfZ±C™œÀâÄ%Aq¢±²ÀŠuŠ,Fé E˜'v ¹Ž–ë §YŽ*r²ô}"w¦W*äyD<‰˜X.‹µE‚IÂAÿ– "•hùŒùŠE: L ™O‰G=„¬"ýE2!>NÉkP’•wÖßÕƒtL}Æ¢§sœšÜŸŒ(ÛçÚmzÃ}ºFHAƒjá2‡˜æjTY®­1&ãÁà>¦¾E-nUÙ±Øy·A¤¡—˘ºQƒþ·†XÍUN­»˜£"è35ˬ­Î³ù¦ä»Û¯ñ «Ä§7>Ïáõ˜Û[ß'®ÎX¬žgÐcÚmE1[âðxL1ØÆ”9¹ãáOdĸ=‚Gž"tGÖ4Óç.ž³Yû¥gþ-ä Í¿Ä÷þœôWe‰ç×—Þ[ú7tj«’¶í±w8ÂÍ l×¥ÈOR:Õ'±RõyêÙç9·¾Ä(˜ðµçŸf–+C` “Y^Pä9%G’ Ag´—ÖÆ±‚$ŽpWl0,ò0DÖVÈYªÐu]€–gÔ½*xeT8#KÀ \dÕ ZvI?ø=v¯e fzÈÚÊE®?py°sƒKµU(?YŠ0 é µá³V³˜î^ã›ßuyñ7?ÁÒyA>9â ãRmœÁ¥K¸›EÛ yù„šÍO{C.]°X«žfëxm0äËBðš­1´n{y5¦¿½KgtŸ•ÓŸ§Õp¸7}H˜«v…‰bøÖõêYòg5ª{D/'+aÙ-½›~û s2è÷Þ÷Á,Å42Òî„ënO]0ñ®Îsï~•ýÞ1çÎ.ò⹋üÑwö¸Þå+_ÿ¥£*¯Þ½Rã¯}íè˜Þ½·©Î·QɹóŽ!Ùöxúô:ªv̯ÝåïúnÁwþàû|õ™+O¦yËSJÆ®¹Îz"iÏ%D ·q×­ ÍBÆF†P>sUƒDD$iÆ‘&˜7ç¸|V0pN9– 9µF MÓ>”¾œ„3^yë6wnߤ6ç3°ç±ŠEâòuM17«qhK¬ܺä8žÒ22f³ˆ$M0Ló1ÁûûY¬£Ã}æ‹»Ù§Û·YZ\¥Õ>bôö›hg®ðüÆY¾ÿò÷ØùN‹_ÿòWxö„7£#¾µ}“‹£€/lÔÙÞñª>yžÇ޽iJ®<ýk«+”¤ÆK—OóÒåÓOÚ'.>þùÚÏ›åå÷}ïóïþõ.àûÚïþíæaAn#£2Óh€f¥›bÎeaÅeƼµ;ÁŸ+8UÒI 3+ ƒBÅ ‚ŒR²èƒr[8e“ã[wiŠÅ švžÝ½cr9dõt<«ÐMBfý1w·V7æ9z•ìVÆ­7¯³¼Ü§µ°ˆ Ét¶ûȦAd½ÃŒ>¡M@f¤d$“ ~ì$ n+@v%@¡#(<+éᇔl*L1e*æ”’6Í2›ÊÝ„f¥Å x@Ù]ÕˆÌÇ a´µú CU r5Å—0E ÆNÛ$%š ¦öM/!ILÓD‚BÿpEáÇ{·hšŽ- 檂£IŒ‚0_pbn%%" HzBá''¢ó vhAq2‡ÌÄß;97†p™:ÑòzBDžtâ A d0”’wŽÏLDø I¯ïÄhJCwN ‘AɘØF&I€’Ji`<šƒH‡j~âÍ@vBOå:C³‰Eåä¥÷¬¾ˆh6kLGô’Cü¢Aè…˜bÆœ5G/ÌÒ®iáZºŽÂåèqBjHÌÜD2#B'“9ÙÔ@$SªžûØEâ%&4´%–VšlöbÆG]öVf”pi».ƒ ɪÈ8#oŽèN+Ì…Pñ-šµœ­q ‹µ"&Œ,Ÿš{°Žµœ†V!×”´%*ÖÅ*¼€]˜áõ…S¬ºÌÁ­;· .¸]J« 1æµ"–<¾…­µ¹pf‰$ž`U Œ™ÏÞ~‡JËaÁ«k»8"ÇqËhäùã7£‚Õõ N>CÃ÷¨ûÒ0øE ŒxëÖ}¸öC¬í”ãSÜ–É©Ú%#Ä«Ô(àgš‰¶ùõßüÛ84j,iò³Uþý M×0 Û²1Mãç¶ú¶ &n±reÃmÉáQŸVyþ‰~^Ùm²O˜vY*yÔãuįúÜéßCû¦Æ'þƽyƒk/´«&W½ÝeÆõÓÓþw©ñ4uJtXõËü?ã„Åâ¿Âí³N/ã°3…¥=9Çî,…[×™kγ²¸ÈðàÉÖ ’¦ÄõŸ£b&l–ÿˆƒa´_cþp›úóÏ,ð«éô¤{|­æ3µgæVÙ<: nrsó"Ïzò”.IÙ@&&¹áM3¼–A¬4ÇMšççp7Ýßg’ X(ÙÌ┃ãy^0ïKytÜå¿ûOXh7˜¿¸ŒÛºõõyÂáJ YØŒUH9™ÒO-3‹BÆÃ†a`Yö6¬÷±XÇûœ«5¸7ÔÙí÷iŸÖqûÐyù ŠÏ-rå«_䵿ØåwÿÕ¿á·.ž¥òÕ¯ðƒÛ?áÁñkhâªE|òœªÇÞv®\}Û2iø*ž‹)Ä_Ù“¤)ûG}ä¾Íõ{}:èà눨„hf¶Cn.£çHÑ#/V¨ú6ûê˜þ´`£Ù&!âa?¤ŒXj®àv¸}ãý€Ë5p]ÔtBcE0šv¹ÿ½ŸßÀr_¾G¹ÇÓ>q'æ™åE^ÛI¹ñú=žúvkñààÝŠ¸Çò‚ ©~–sûcv“9ŽRdÂgØ pà’@œôÖ+7z‘ÄÞ‰D"ž>=Ñ2›>ÖtŒ®&„•2LûTš5¢È$íÓ/&XN’Pt¥Muð#V"Ì$]`†N*ˆmŒ¶³‹êÌPa:TR]r.±I“„TJ„a|˜Á{ÕøÇäKu]Ç ™^&‹‡xRJ…\¼ b=_Ñ8’¨FŒP2,ˆ%eI(|å#½!;‰eG‡!A,'D NB*@†)zþãôƒži« 6À”œ˜©å`g‘c£“éIÁŠ2ÁP`Aì€ÈQ`î£9â¸@¹ãfï¹ç G#üšÄˆN3ŠGL¶§´–Jâ º>d ˆu“ÃPàK‹Â ‚½T{BÞÏ¡lƒïaõgø³å}€ÑQ®kÒ)ÍÐF+Ì5{LgcïÍXjoP†jÿ鍸i>¢íRÉ4VÛs„Þ¢ñãÎm&øXK´G›m ËN‡…æÎ`ÌN÷!‰?‡ q²ø¦÷©ÕªüÚ¹ ÜÙÒùç?ù1WŸoó…«gxðƒ‚£Ñk”×êIÆÞö€ZÛ`ÝQÜê–Pízgµ¡!šM*Å6ÒvP*ÿPŠð¥ˆ:™Ê™†3â¿ÂEîg­ý#þ¯ÿÝï|á%¢b‚WX$G‚dÙÁÎfXné#Sžï?—\—ªçâ{%LÓø ¯Nͺ¦‘)EÍ>^Oe è‹”£á.§-NmœãàÖ“û%™¾G[&ÌÞþ>·:OsõË_ᩦäÞÎI·}FaNÙ.1ðÆÜë†TVžçÊJÆÍp‹×f6Ÿ?ÿní÷±’œÛû\­=Ëÿåå=þá•€O”ÛlÞ< ë‡T/]Ad‚ÝWþ‚ÍËܸDæûÜyxR5¢YYç@;BÛ˜/½È^v‹Ík[¬Ôb„a’«h:}×’áa7Ä®U8;_æøØ`çÈ"º5àï|þ"/]*ó{ÿæ[·g¼ô•³ü-}?}í¯?˜ñÛ¿þ¸sðo¿ò/¹|õÂs‹L¶z\Y±zjñÅ—4~÷›1ܳ|ò+ŸæÿüOþ% ñµO¿ÄÑÃí'šïL¸ØnŸ…̤ë·ú¬žyòa GLG’f¥I&úLɱ´6sËçX©… Åνj%ãÂt•f¤s]ÿ`ã†Ã> í½A¸è²pÜ'¸T—/’Rʳ„ăý#ƒjݤ7™Q›ŒG×-ašñ¾çýƒ,V=qç2˜Méߨâ·‡áý»’Ï>•Ï?òækÛüþà!ŸÓS¾\¿Âì?¸÷&_õ4„ù(ö®5íäP¢ë:i–1 g]ÿ+[c†Á”ßÿ—¿ËðxB4çU!Á¯µ„«2ö{‡XvL«¹‚©¼r<¥YLðÍ9ŠŠI|#¥ð ÒbÊÞÃ>Ž#XYYEõrºÓcÉ 2vq™’Û>ÁµV»É™«loïQLÑgmî1£¹jã/^e°¿OHÄù–Zú_0W<(Oär›½q¸OÈü$B-„ˆž +|™IZ ˆTBˆ‹R O&$ÖD1Ó+¸å)Ó$ÆŽrÆ•“ mÕä¸6b6é#Y'©• ? U˜*¯3U½d2 JÒ!MuìúɸAdOq¢MB©RaÂ+{ ±ø*!ô|¼H žD.8” 3EØßW <Ž8QK!Hᣠؗ‚ÆôâžëÑhHºûq …@KÈ(]†#%¢0ô¡¡|ÞÏQ+ Ò\Ç 'fj?WN €B`hö%@'êø >ñÄ*gæ ÙàÄhò\仚/`®RfopÌÌ®á”LŠ¢Gg4c°éâ-î3__@ΰ›<@d!L«Ô h¾Âd’1'覃­åTc aY$vL÷§ÂŪÁ ï ÏzˆÔ0ÓzkÆa°C-²Ô†¨m*2ƒi¨3޶˜z6õð³œR#–ɾgá„"Ш̤½Œ8áx±Ø¥]Z`ÎÌX 6‡—/xØMÁÑmpnNX=·L}aÊíHйq†Œúå€î¡‹61ptŸ(=b´ç1­å”*jAƒië»û›4ËKÐ81,ŠâC Ö;B÷h–Í’˜VüâÆ7ÿøèŸt¿G?ˆ±œSÚdYö¡êÁ÷WE¥™b8ž2 g?WÀüïkæ3ËòŸ þÞ;AdºW±Ù»w‡ó—uÖys=Ñ \ÅÔ£ˆcµÆq®èŒ»–äBc…àL“ï¿Üe-+Xz)£|ŧEûá”7:ž®/Q`!¨ííÓe‘ï4tž±6ù­¯x|ò€Ï~@)‘\yö ìE{»?ÀÌ/Ð4øÃ,V»’ÓWu¦YÂÎ΀ g—9èjüù?ù=>ýÕžûÕÿˆW_}‹»7^åÌS_b£rAi×8‰½Rê#Ÿ…wz#YD0ý«o9tÿÎM¾û­?åâù³ès:êÞ£þÍO-° <w·gZö%<§Áxv„˜ŒI*‹¬ÖMúGŒó&Í…6S³µwL4ÜçÂÒÌÕUF£b¸Ãð:D U..>Ë$9àÎÍV…ûü ‹^½7³t@×ÐX=s•3ŽâSÑaÜ qÄ"^ÃÀi ·Zô³2Óé6n³J ÃX#°lŠPPŒ»' 3´ÈÝ¥š‹eª„ÞÄÄ®\`£æ©mTá‰&J4ÙÚ=@V'|õ³W1,oþð‚.g7Σf ¥z•ã¢Kg?dÕòhµs Û£J™£ÞÑ»€#¬·Ó_Ÿa'6Y¬ˆÍ¥è$¥¤òœ4S ß“4#Œb&áì¯äcΈf é´D)Šaù”ä<õR΃„ÖìÉSNጽ½”ùË8·Ôd÷þŸóp¸Ë`î…(ã6glm½ÍîA“¯°DvxWoßáòÆÓ´«“îu¢#h>õ,ÓÕ)¥Þ Å‘ÎÓ•)‹Q™?|ãˆâ\×5ÝÄg<ó¯S©Gvn²Õ0ÇU,ó+P6`<Ç[û¯ÓÐc.~ýDÏ—©p¥ÔǧLmsL>ÉÙÙ·1æ<÷Ü:O/×yëµëüÙ#.ù"_û ‡êpÌ7_-pÖ.ò÷^¸ÄæÃ7øÉÍ.>÷)Zg®2KŽ8žÄøÎ% ÛÇ…sçžæv¸ÅhºÉK_ø—šgع}ý‰ç»ZÊÙîô4™·FXµŒÂOüz“º™O&Ä–MÓ9Ë3îÞž0eÊ¥OŸæªsšíî˜ ž>ùïf›Üý³·9ìÃrõó¥!²]pX¸x…diÑdÚ‘LÊ5&e M¤ ãÙìçVzšÎ¬·Ç>õƲ³Š«‘‹›|ÿzA1›ðõe‡hu‰ßíMúÛ¯ó™s—ÿR±ÿE™ÙŒrÑø=“îÖ!C'bÃ;…•†lP#“Ó g([#Þ8‚i²X)Ð"aH¨åö"â£Û,4 „¿L0‡!Y9 8‚µõƒrÁø'7@º,.-Ñ/4+UôÎ7îì°òüןâhwün:ð½ÆÎO­ŠÇYžªn¡”u²¡÷ä‰Q&!‰EH8H²!‚‡HN¼œŠDA ª¬%¶Lmkš ¤NbèOLìÒ»¶€SÑÁÕ÷IŠŒ…ZFfÛô»%ìx@^)0Q$IF¢G¨DÐÌÊ• ‘-Pû Ô"¦ª KSÒ4EeŠüQðáôèÇ«º´åº„Ž !‹%e# )‹2qÆ‘5a¸zò}±žÄQ’Xd„"{7wZntzŽhá;AØ%–!e¹@–ÅdY!|Ô rÒ0Z€JBBÿ\ B>p‚4trË È"䣒õ.,ʉ*ò“”¥ÈN¤Vh(¡a9jƒ.À@ôè?Ý*@eï¬áQÊÑ0Àh˜²¡†.ʬ´Ûäy½‡]‚l—J­Ì²vŽ’GÉÎh‚‘øe=Ò±ò±0c7Ñqf6$¤'¤˜MJ:#U …`,†8‡ÏIE]?Ùš†L»ǃ¤mà%dÑ"Mï²5ëÓ‰g,›JmžØM'? á²VÉ9e Cx}çeÔ¸PµÑWzÝë]Ù@4-…9ŒhkÌÕ-‚Kpï¶ÀÝqêÒjFÄ;=DÃÇ÷ô:ªÃR®1ó);ÝÇ©óKpZ°³u@ÿxò×0¾÷Ðçäô¤Oe~ޤµN7yò“|‘ix Ìòc4/a­uš|'çþ›·qGä*­¯Ì±`õøÇ?ø)ß9ÒùʳÏ!™°ÓSÄÛŠ-ÛåéöÏk¾wø“·n°¡Ù<û›_£³óʵ? ¤$¿þ‰¯¢Ë?Þ> –ïðɳÏs½—°sûÛ´#Ðëó¤CÜÖ–vè¿l½«wÔ̽S¥—yhf‹ÜQ nR_%Y;Íj}ŽÙä!ßÿñ]ΜúÏ~æ4JJvîvpý{üO|’koü7þWÿó_áÜ<üñï½E¿Ñâh>çìªÎ¯µ–øÇ¿ƒÍÔâ¿ú_ü#ú?Þç÷¾õ#N}¦þäñ*y82Þ¾I¥¦a´$Ù“·s9V° ÎÌFSe¶÷0LƒÅÊ)&ã£gðüÅe&ó3~ôÝ›äÆ“›ÎÊj™Æó¨Î·÷o“[s”†UHç$½ÎI/=Í7ØŸ¤YL<  û$ÉGõî|¼¢°âTgŠQèÒÍö)*’¹ÊešZŸ­×~Dß2X«?Í\3çÞƒ-‚ýîÏý/ÑGάŸ¥YìnÝàþ(£1·]Cå3’håI-"ÆE/Çtê,GÌŽé1ó• KKKˆDq8˹{}—XuÙøüS,Z·r³\ š>eW1.•sH¿fðâ—ÏP ¹wý:dz”z£ ôB´L~3=1°z<…¦Æ‚P*²¡¤1!QxøÂƒpHÆHœ†CfEL´šGVÎ1gQž¡aG6ø@ê]Ú¦­26:³$¢-jÔl—ýÉ>ÁaFXèHò ¤©oF¨¢`Ø$88~ ˆ:‚¨Œut]e'+ËR”RPä9põh™1 …Ó8å™ é†ûÅYɘL8Yˆ(|ThàIOÅ@d ²¬K–ORþT[’n“…1R@Y,0Îö‡!Ž¿ŽCB7dB@<%Â!—ø¨GÌ•ó|e‰GZu•ΉÙò»(|ôÿ°(D ±uþT †Bé1ŽmP<òúÌ-‰¥±btK?ƒ¥q4|À°?¥T.ðlQŒé™¸µÊhl]ßf8»MýT“…ö h9sH¿˜Qî¬4²šIg¢Ð¢ù,¢V~üF!º€ÖÄqsª¾¢ co< ˜,Ä‹d˳N—¼;`Ú™410XÌŽÐÇuv§cúÅ%bÎ( %kÆìõ… í{hL†škÐ,EôkŠÊÄ¢I›@HºÑC’ZÁÆ¢E¾ÓæÁð€b)â“óg84¾÷pHK)Ì%§”Sî4×!s2îÄPõñì„°°þÚ¬¢!¦ÅxʤÔçÿ_†NÁ4'#2³AcéFwòįW"£äG$ºÎ¤/° Tr“lï͇[°œówίÒïÜâÚk‡¬^]4f·ö(t(N“=#M´~HØÖX¨UÙ1Æ•y>3o¹z·P¯›K‡ëG78_±8ué³Ì¸C9Ò/óãÎ&vŸ‹çæY,-0êÙìuîÿ¥æ£yú,^©@O'„ù”Ç{´—.pîù *ã]ºÝ ¯]?…8³Â¹çŠƒ#ÞØ)Ñ‘÷מ¦];ä_|ãû\9ÿu^zi™oã uø›¿ù+ÜúÞw‰Ò¿ö•ÿÃj¨kÌŠ>A¾~bÚ¨k?£!²"MNÀ,Ph¡Cc£ÃÞaF>É“ëm"ÝDº šzÎn܃ʼÃòÊ)t»Å?¾E7èð+ŸYÄ3Ÿ¼ØD×u¾på åå„kÛ¸c„o.2?çPKÛts¿ËeѧH7gÔlÂpÐg2“ …÷AkÁ-³j”è½ÁØÙÅ‹ZÌÙ§9· sŸ>ÿìæ>žšðbýöR•ïßÙükõ,æNAÛ,#£„ms‚ãGè{:Q6Æ.•h,¶°ú}ºI€áHeƒzVðãxÀx0cÔ›‹L'#\)p îø0œ²b ´¦…P>`=Î(;-ÊB±)CA ÅÄ*á»ÌÛeî¾¶ËxpL¹é<¡„ýýéÀ⣠ÌåÈ$ !$ºpC|1$R.^Ç]2Q ;ƒnFaƨLLtL}€Iƒ™n2 1Á1[$“)Øv“MŽI²‚¨lSmÄö„ýNÅLX –ËD]“ ìS ”kÀ ò8µ„’ã`šp4N‰Sõ`eäê=O,ž\½ó©& 2Ç! B¤8Îqg“8s(Ëe Ñev‰3/DÉågTaˆt$E\fHWN ô¸CW ©6ΑÉ!ÝL€ã¹d Æ2¤ˆcœÐA8Áp)”xþ¥Nì‚Þ“ }öþy¤\OŒ q¢jWœø;9¢pˆlMK(ât¬K“çÄúû4X^M’õ«Œ;´Y\h“æGL‚Ç) ŽØ9ØBU,–K§XòÎp§ƒ4L1Üi;zNpTPQ4gòñ¬˜ômÌ%’é‘Îr f èO-âLÑ]ÔJÀXÅ$û.K–‚°ïø!Õ¤…˜êY±ÊÊŽd»q2}fwÀa`02 ê–ͯMGèïì³R8Ôj›I—3½m*rƒ®1ÂÂëq ÅsmŽŽ»üþû¬¯¬ó¹SM:Ý.[7†”=ÛÐÙÙÝaÙ÷(¯Ø@H4Kè÷¼ùÚOñt¼eQ«Õi̵){Þ£V?;©~ÿffÑ>_cÂÏïIÇ3ºGzÝc¢pzrêù«LºŽ[*3×jã×ضýXK’a š^™Lôõ#Ö†erù—`TÉîÃmÎÝ{‰£-Ö×Öèwè„o²áZÜÜ:Ï¡kóµ¿÷,ÃÿۿÅçO;Ìg+ÜÍÂ0‘rÊñ!_1N3ž­àoœ£¾{?}ëû˜­6ŸûÿŒ£×vù£H¾På7—.ÐO"¶gXæ1³ì2›‡s\ô8u¶„Sj³yÔÁlÀ“ÙÑÍ4ίI¢ž`¿_a¡ÝÄêr X{ú´‰ÍË׿És¥6_¾Øæ{·CÞx5ÂÿŠÅ?¿ˆ÷zú‡%kŸõ‹k|9éàMøïþõ‘•*ÿå—Ÿ£Ïõû?âÊVñ¦÷¾wšsâöœD+žÍ”K.*1§ØŸeÿ˜ùÎq®ñÄ××òÄIÊþp·äðt±A'a‚3ËË 'Çüø§#¾|¡ÍÕ_}ŽŸþù, O" ÆÈx›³«çÑ'SvïÖ#œl‰Vm½:b²}‡ž³ÌF½ÂA:ÁN¬Ì$œNNz ñ±Z,ÛST 8¼_ci. rÁ`§»@)uðŠ!¯ÝÜåÊÚY.Ï?ËËÓ—?¤)ùeyNß{»[ï‚ç*?xåÊ«s|æâÓìwÙ;~…*WYnÖ0‹>7K$1¥Ä¥áyl.„˜›]:n›U)Éã}º…Ç4Ž1’ˆó‹‹ŒJ?|å6g/žæÒ³çÙ?¸ÁöáCM*©ÅS/5‰7;\ûãMZÏ]¢}¡ÌÛß¿Élò?_FTâG;æÐV?X¼O®øB!è)ÅŠ'ˆÔ‰)f2´h”¡d8EL&Êeƒ…(ÁŒz4ÅÌ b9jD3urzÀ¤fϘF&“Ñ»¢#+ 8êbf‰Ã|ÕDÎ&ŒŠ I2õ&³$f8N(9e5;‘ï”"ÂŽbÆ”KY–¡TNžç!>p~äœü©©‚LŒqd‚ |ðÔI% ÊˆãÒwè5\¼ýüÏ«¨Ž(…‹dÊò$+ä1baÑr–év6€õ• ! †ÄRR² ` Ëøqˆl´ I†CHù—¹{ßWÌ ¥£Y` ’wŒ"”(pÄ¡Žfç'¯M,ôä}+¦ ¢U $)’ G½«:G‘ZdiˆãøgæØ?¶8|ëÅ —žæÙü ûG·Ùµg8³kV¦í§L ÐSÁlò¸WQÒMQ›Ršã”ÌL'’²P;’d°Tsq½EâÞ>q2–µ0bâ{øÊBX!àŠ{xÄÌÚCk̳d­žÜãf̃ÃêüË‹MܨÃA ㄇÂg%×Ð<‹ M…mØÅ8_ai¿Â¬ç‘W»ÌU@q³ã1MÐ+>EÍ@ C‚8Àõ@usÜÓ˜õùöŸÿ ôñKsbô*U¾ôÕ¯qéÊÓ8®ñ!Ö ™½§EŠŽ»˜«eÊîyÄäçëR÷vùýþ?ÐëýB®íìùK|öK_eemÃø€…ÀŸ¿BG×ðnßf_a-|òÉOÝÊÀ4}v¶g,žï°Ú:Åq6`¾Qfuñoþ fûÿð?úTkúÓoS¡²öE%(â}ÄÃmòÆ"W7¸¶×C.Nùf‰PŸñÃMV¼Uü¢ÂŽ`¾µo™\;8À·»Ô ëËy…OfˌÈ›¯õ©]Zdn©Ê~8|âë©·è:óT¸ Jìô3¶;߿ų©ý;×÷ñÔ[ô·R6ý3Ì=³Ì²5¤|ã®qieÿÙz†ÿã?ýžŸá¿øÏþ'ü·ÿÍÏ7~p“ÿúÿö_3ó{üèÿ‚Oœ;ÍxrÓÞgÍ9¦ê¯`âCm\ÂpÊt:auy‘¬Èð– z½õ•’YJ–„O¾$&î zÚ6–³FÚt¨åsÄ=ÅÍìUÄ|‹¯ýêç0Ó!ö­b¦ñ¿w<žñ½îð™–yþ…*ß8æðàÓn±zêEbvæ.v§ˆj‡º4Ù¹Wã‚3%NNôX¦i"ÞgÑò!_,]`g§¨-$ôÓMÆ÷Æ8Þ:§N̦¼r¸ÇùŠä™sW óÚ/õsúXlâœHÏ‘aDÚ³ñë-Ž;8 +-„'ð[ÑKYp{\àY±M’\K“ºkÒ &xÍ ËÇÚ=@ê’nw€ZÎqÎC~ó{ 9 öâgh% odŠØv(ÍÆt;#œÆ[[gÕ¿4°úYlW÷¨‡.º½€E×#ò¢“Ý]$'¶G¹<8ay2Aæx$*y E ‘ fH9‹(SC7I”€iS0™d¦À®œ¤]I î—QEšÀd¢“ÄìàmjÎŒA2CM^a“ë ©Q¡VLè÷!±§„©w®² ¥2Š"'/Š.ü<ÄU…ÊEW$‡çù„N‡¬#]üÉd1F%!.3ü L(‡8B E(NÌWºÝÒkSöW;âpˆg­€oìGÄaˆã °|ß!öé Ÿ÷’‚à„@fФ+·=ßA?ZùŒô]pEhÛ3:"6‰ÑÖ…ƒ•˜d(°SôÔ"6@×sÌT` :Þ|•fáN3úý>f\¡4oSÒEß!m ææ Ó1Óý}v ›ËsW°ë/ßû>‡X´¥C£œS2JDSƒàU„éÒÚ¤O™x…EìÇT°’“üo»á2ŽBºëºx (†{±KÓUh†P!…ÒÊŒ¨6=¬èäÄ’Ìé!ã ÇU•½Œ²³Ä±r;Ql$5µÁŽê²Óê²x ¨:Í”hÚæøhLüÎÚ ³#~|Ôãi]â´k¼ÙébŒÀ[$¨˜<<æ~U öïrõ©Ë¿4˲l<Ï£ìUNZ ¼¿ùô,bÐï¾û¹¿d!¥ÏÁ¸‡›ü|˜¿»³E¯{ô »^SÚPÆÇ³mI–3ÑaÃјä†Bc.å?ÙŠ”™±Jw(ºÇÌËH9`nuŽX»ÌÑýk,=wŠY‡›¯²^íR^x‰½¬Ç\’ãŒgtCÅý —W› ¿Í1oÝý ?šúüÆü¿äÁµ‡üé¿þÔÝ)g[ûÅñ£çú€©$/:”RŤ?f¨¼êNÉÿKÍ[ Èr—Öò3Ì2ÙûÃ?§Ñ<Ïhå*âÁOpZ>Ÿ½ðyþü÷~È·ïñ÷ÿ×ÿ€¯Úåÿþßþ)uû²…Ó<œÝæ}i7· þ·ÿ¯oóÌ'¿ÌÿéK¹õGÀ¾Wâü³W ×(tÙåeÛŲ-LÃøHÃÚéäó,M‚± óÌ Ê £Åyf‡wŸøúÆù˜aª˜Ÿ?øˆåÇ,·ZDÝ×oöø\{‰gÏúüùÝŒŸ¾q—/¯=ùüÙ–,¹ùð6¡ÞäÜSÏîtØzÐc2*ˆjsøÞ"^r›ŽÞ'8jÓª%$i„‡L§lÇý¹,V½dЬZÜïën¸t®JmÞFE’¹ôÁlÊ&78«ÿ¥NßõšÏIÀÕÅጟ½Å•¹U^Z¼ÌÍ­»ìÝáLõ,–,Ѭ*nû8a†Lj¨fI‚v/ä¦,±ÔÝæ©ùy&Æ"[ý»4k.g4‹£tÂñÝV¥CóÒUj Øá•^@Kú”¯T¹{ýf¡#N—ñuƒbÖ`§ÛcÝ«ÿÛ³Vïû—S9ÞzpL—ßx–âH¬‰`*‡dCEÙñ dˆ†x-•ÇLF”tÊ"B/WIÊ4²‰õ;˜ „‘QÊ 2W0² d’ÑÄ l—`–Ћ¨±Â«×Yð§tÆ‚é€*9‘ˆpÍ*6ÑÈ'T(˜úI%j–’«üQaSñ ³øÀÁb!q‡ÂwA„ùˆ±OV„;ƒ{cxñPV84è„e ¾ôÎÌ]é°îĈX²¯ UkCË"Þ" ‰Sö ÂG….H߇aBXxžB%0”'P]Ÿ†7|¼]Ž8I›Rþ°¸#‚™}"lÏ 4{ê¤Ie\Ä”²°tU(1Jéàd P9¹ù>£ÑŠ›!g#&–¶KÙ0µ)ÙdÄ8/c–¥™ÉÌÔY[Ze:8fð`‹ëçLVO³1|–Ã[ÄîI2G9’ôä ížOUËrŠ4â(4Ðu»•š…ÃâX1±ÜØcÅHØô ²ŒÃŒf»ËÄ‘´z‚ŽIÔÂŒÇL ´P‰bqq{qØßCÛ³h¶ bÍÆL\,w S`8®_Ã*¢$ÄX4hÊEºñ>£…çǵëÛ“á»U—5!9W›pØÓPI‚Jv&!“"âùõËd©"ŸÃŒBHY@!(˜1›ÍPQ†í–² êeéx¨0&R –0ÑrÌ0°µœŒ$;Ùœ„®(˜X8ŽžL§r-Ç)Û”„FkÌT†"á¥õU>ù§Ðuñ$|ÌŒ7ŠBz½cj5ŸþtŠ™ ”‘afÌb KŸ6 ™W^<ŽWnÜAJ…Aš'˜¶‰e´xŠ#!-y)ô8D¸¡KTÊI´¡¡TŒ­iè–E2+ÐRE!uRCÇ6 ,Í$še(2ª–Ã4‹Yo/rêìy¤i|lóàTÏ™Þy }å å³g‘iŠŒžœñA³°ªZî2ãÉ„äö_ðåÏÿ*|™—ô~ã…+”Ÿ:Ç7ïüËwøÄ§þvSp˜²uw‹¹å*/\þ oí²}tÀ¯µÏÒïÎ8Þì±ÒlQÊ –çcný´KèñÕßüIš’¦êC Y0øñËoÐÛÚ"µæ9:,´ÿr¦Q½Íz»MÿxÁÁ„/|á%fF›·ÿâ>§Î xö´Î;Æ3W¸2s퟽ÂdµÊ׿þ«ô§S~¸ù Dƒ/ÿúçèÈ?ûçßæ‹ÿ›ç¸|i•oýè¿B?ª³rú?ÇÒÞà Ø¢b—Hº›¬>sêÄî6*ËÞmåR¯ùÜÈúX—t~™ññ”ìAû\鉯Oï2…Ôæšè(Žz7(±À³—ŸG×$ðã—‰öG|ñÓ_ÄêÜzòôtá°¼j±?Úçᦤ¾hPš;CýèG$=/+1kü6ÎÜXÀ·h-{ìÝ9fQ…ÁÛq0L㱃Á‡X,3ã•;1B·Y\/±´Ë$‘l,\¤›yÔ‹t&×w7™ÿ9 ÞÿœþôÕ;(©a—LH4Ò4£ÐrJn…€Y  ]³±lÃ0˜„aRóæe‹dM4tÝÀÐL2;!&XâÿÇÝŸ=I’]ižØOõª^]ÌÔLmq3ßÝÃÃcÏ=™Ø·BUwU¯3S3=¶ýBá@¾ña†Š”ªÙd7g(3Ãi6»Ö©B€ ‰Dî[DÆî¾›»íj¦ûU僙XÅž8W$Ä-ÌÍÍì轪÷Ós¾ó}U*M›ÑxÀ|6§î6i-´‰â”WïRÊœ‹O#k‚æYÉ´?ÀPëë+g}ûG¬T: *ÖŒa#!·’KEµª3Ž˜ú.mU%ÕÐ5Ú¶Md(–”Ápû5.\õ(Ö5ŽÿêêU}k•é¨G¬çÌæu–û.bS2Ý›~lgò£†ŠJí ÀÕŸ‘$nH Êã(Lñ¤ !e.!øžC˜'ø$p’ÐÁ4ul=ILÔlS“’aQ·#¼™ÍаPá½jÒ(KÂQJ­b㈔ƒ>¬Ö©žrR@µV£cêô¦&jr„íØÌ ªc࢘öt¦öŒåŠF›(<¦pmò\¡TŽz,×p.™ödàŠ CƒHz#•¸„|¿Gàøtê-ÂqŸq5Áy`Y”uc[ÐÊ!Ì%Ž™†ç׉ËA/`0¾Ïæút]ú·Æ$fŽ'ÏÝ|_¦"ôA¹ÐJ‘ƒ1AàãµRüÂ@"ü€±%ùTú@=f 'p>QÅkz±ƒrÐì˜ L'Á(¥°°PEŽf@‚… £Hr,½$‘&úcÕ-@wÛ¤³fqˆ/Û˜«M´á Ñ@a»©dåWs©6|– Ř½[ýÏnކ]ðÑÉ-N‹QÖÂ7ÏÜ'Ge®S¸N„yoˆW¶A p›KÂC„G¤Ö„¤Çì6,|Ë¥Õ9*sû!ˆKÐnàF)®2íW±Ôùç,w´HÒ¯°Ÿ£EβKf†vÊtærh•¤Þ€F"i§ Æ~À8(ñå5Í#XdIƒÉnH©Glu=N’”ûÙ„gÅ ÆÅ˜Þð”ÑÈÂijXºÇA†|Äþ<À ëÈ(ä$¨š%fr2…á²p9SÚÕœZËáôlÊtpZ³‰(×@&ÄÆ)•¹F.,æJâK¥f žÌñš>§“#’þœæÂžÅ<â`7.´ØØºD·å3 Ÿr:ççäÛV£ Ñ©œÍpLIRä¿w|âüÑÑ=ŒyX¤˜ ®˜–~0VdV…Å‹¦fq<š2ÚëÑ^èâV7If#Fѵj ƒ²,‘†"P9jXÒ´4‚† Ú”"†J‰¢béx^ ¯â|lós³%ÄɈ[ƒ}^Ú^·ì¼7üw,?/ãcuuª](Í*EÊ»öH ‡ÏßXÇjjÜ~ë»\”«_úœ:evÂ|ï# ­ÎÅð"“ZÄ­…*_Û (öîrâØlþÖÌ΃3þÍ?ÿ6?óu n<óIš1 æDÉOèµd9ßõüË?üþ£ø÷‰}ÜôˆÑÞÛËYŸâè}š‹Ï1_؆xÌ¢µGl\à‡ïÔÂû\û/Ð<òßÿÿ+¦>ËÿúÿùÎÉ÷1Þèã¯^çþü}4=â_þoÿ)ÿ÷w¿Åß¼©ó¿úÏÿ7|çíwù£¿þCþÎåt/n1¾›n³A£Ñ`Æ?åi9޹÷ѹŒCÃoP¼·KeÛB™ý»*~Œ¥m=9ÀB£Z¤ÍI.hQÅÀ\Œ¹´ÑäÍ[#v^{‹ßþ'/°½YagüäàmedrDûâ2ZTgðî ¢é Ÿ¥:;B¨Û$V“ÑqÈåNŠk¼õáwõv^CŸŒ‡–íP©ˆŸàþDËœh Ví9;FHÿŽoL©]-™ì,âD:Ê:ú¥ü±Ož§à ê^@„ØM*V¬Ÿ0žàµ\+£“)*ÂF.»Œg ùÞ…Íæê:Ú(bpÜ£?™âÔuº.c<’„ã }Š8(±……^䄦Áþ‚xbTs¢°ÂÝ`Àfgƒ×fo÷ûãû<»ðÚmîÇ·xÿá[—f¸Ý-D°7Ý£WqÏ|Œö1ËÝ.ªðxg¸Ë–mRizhºÎQ:¦§Æ\·.0nÛ{7Y<¶yú¹ç˜æ9·ï¼C]¯³¶¼F0 9LCB'¥..ðIúsYO˜µúéê3ꮃ¥,‰"IB "÷(sPŒñ]P*ŠYå$R8¹†cF¨J{&˜TRt]‘G9¥«#gŠR唥ÁIYàè6õ4#”&¾Yr4 Á‰Y­µ)P SEõ¨Ù6™#0d{ž1ËgÌJ¨“¨QÁœDs(Ê¥rò¢øXª¡,žÖÏ>@ežï1&ÀKÊ£„AÕ§%‚A-IK•$AB’ \O‘V*Q8Õ²pÔ pZÞy5* è%ž\BTCƽY”‰$T ó Z$bŒlB+DAÏ£%¡X‘þd¡óÇ™¬¤€ŠuîúŸ'P&ÈŠR ”(Yb E~ŽÉ¬s1²œ Ë.H”ó£|dIN$<¬Ìa)Ò9¶Û¢RóÉò9ÁlÀ<Ô1,³ˆDXÔ7šøÎ “ãs¡Íµö3hŒå)ªSdŸ.9MZGäñ”ê´A½j¡e)BHr'!‰R—¶ea¸ŠY…@yàGçš"{"¡T!ž/ð” ”!‡òœOÑ’9è;8÷sJÇ'ëxœõ%ùèMHê†ÅB×bvšž¦„ËÂí"“€ñþ” iÖ,jFÁx`¨”LST㈠{™~mB%NÉ )l=kRdè÷"êö:®e3¯z4[&I2ãx&è´ªløs“qŸk+ ªµkìì=B³¦l®_%›Irg„¡%xq*>†.hs=$7»¬´®!³Ã*þ*[[—Iò>'Å´ðØîVyq­ÉµëO!¥Išý´^TLɳŒfÃg2‹¨Î%i© …^{‚ΪOœuB“œ uI×®2gŒB oµÎb¥ƒ1˜’isü Ôº+ g Ò€º_Òè¬aØJš D5ÃB§îéÈZ3—iÁ‚^G¯6È3]ÓÑ5 Cè¿TÜ´( ê —¨U ÎNŽHû2÷É»>u ÁÉé—/”´.>ÏkïFˆý×¹¶µÍÍ0æäámÛWX®71ÌüÙ«o0–-þ·ÌØðßd}~?ÏIþ²8à% ü<çOë#æ ߺŋW®Ój-0<::cÿ¸ÿ©ßÿÁküË?ü Ÿ²â úoá>SgãWÊ`GCƒÆÖÚ7¶yôÚ™òÂß{‘$ ùàÖ kϬrõÎ>oþÅ-¾òõßãůoðø?ÿ×t§þ“úÏxõðn÷=ž_‰ru™åÚ1öþß'\ÿܲ”Wßþ«?%?êñâg>‹®ï\}:[prtHïäˆn§C¦iœèŽ¥D'à,9T»Wˆó'—ÕHƒ”I4Ç’6V6âÈxr­åMn ?dx¼Ë׿þ l»àûS÷É–áÆ h…K§cSÊ)ÑÙ;È¥6é¢Åٮɚ-i\<㤿CYõØ´Ÿ#P¢Œ‰¢ðÜ:ÿÅ…[ g¶Çþ£ N•î…EvûgLïPëjÔWêÔôå_é<‡s¬–EÅ® f ¹­á,û¸®"J 岨X¦QõIj“ýÔbãåg˜æÓ`8.F£ç¸¸¦Gt4%µuôDqppŒ0l®æe’ÈåÁîmª.¬6–žC4˜39PöœÚ²Žç8<8Þ!î'4Í&ÞêœùH'ŸOA—,‰:Ópʉ³G):ø¢MÊŒ%Ï'TÉø§:GXQ…Úò mRT¯O®ëèõ*I’ÓI椢‡V¸¬]X¦'önö©NŠ…ùc0Q|,OP>6=þÙ’ åÏ­Y@/Lè AK'y^2Õcò²åùfžVJâùôÆßʉ*Sr§†.L&Æ„rRIJJÏc2p…ŽÙhEñ9ÐÊSÒÒÄS&¹*ÉËf) ¯–‚I¡Mt"Y£"4¥¯ëL¢»ѲMòÔѬG*jçfÏEÊós€U?lþ¼úÄDQ~. “~éÐL’°$qrä„ðÈÁ¨LЧ U»Š3uGB ü–Ïc!wÂ~ˆïû´.ºôv J(%à{çfÑy 2ÅÇCѹRR!G*ÁñP!éOu$'çHªP Y ?&¶˜:è!P6IN‰¤ÈMJã±^— Êè¼ÉÁ<\y¬céÉñR \\Wc~Ö£ÈBª­&¹í!J[&œgLÆ!1å¸ý6z³É•ÕË朑¡ÿ„ÎHÒ×9E(9 í®°´ê2vîô‘NB·ëbhã("ô=ª$/{„¡Äu]º5 ¬sÏŸ|”“ä”À;½ìMó‘@ð, nI’ôѧUF9¤-¨Of\ÒÚD]ƒQª(…P.éš…‘*§ À…” óˆâæ¢K³¦Ðf‚›“”êbÁF³ E阆GbÔp3ƒÌ±Ð´€d¡æã¶=ìªI ªfÊR‘0™N­Bzä¦ÛêÅs ™ãÊ*iæ {UL4Mâh-r Æ 7WX…NÒn`ÊE¢y„W‘¼÷·nîsq±J‡-‡S=äk‘έNx¨éünûFý˜¿úï~È¥×ï±ð~Οzšk×o%)ýÑô§²9áßýõ¿åïož¯¿Èÿ_þoÞÚáK_û:ëvIïÝ×øü /Òív ã„Ù<þÐãˆ[¾÷q\¦ +—;diÉp˜Qu$R¯`ó‰çÛ®X¤QHyz†jtp¤Í,±ópÌà4dó‚ƒyÕ‚Ôg°7 Á“7< ã.É,©Ðª!:J»ÇPÏN^æZ³!SÞ}w³yÀsO}™Ù¸ÃGý÷•%¨”8 ɲô|óú‰m듺X nÉd’0žØ7e­í²»2›c-dè‘ý+Í}xpÆ4ÊñÖ›ÈÒ%:’fCÚ76étV|4$JBÜ‹62óHs Ó6е‚N«Eb»œìèl^»LM[ ræÆ„ÓiªrY]Ù¢hI{CŠBcíB“Ü1x„¬w<..­svrŸƒ÷OY\o°¶¹E˜Ìyãþ}̬Ág®®’Zsvz{˜óe·ð¬酌ʜÑa‚…¸^Šl/K‡ûw>`­µFwy›§88ñùç®SoÖùÖ·Þælx‚wù"mmp„8©¤uQ0ÎCäNB˜i”¥ Ê_X}â)¡‰!IBÂt<Ÿ ÈÉG{H½N§î øž)„âˆqÑ‘«(Q!Hú”¹AÅ0ÉC‹RaØ6©šRA§Š 5Sgºb’ÏiØ5eƒ8…Ú6à´‰Èеœa’c÷©5t„³Ä(- ŠÐK›ªu^òSAVQ”¿¼4ø¿ÏˆiÓQ—8R’S%!‘’$E§*èëÓúbIæ„"¤åËÛý¤#h ‚1y)KHÆxBž[êx>¹PôÈ¥B …’’1r, î0tÐ 0ä¹oN^P¥ÒœBç¯ù±*éy9Ùä<&,( òÇ€Î8Gí]O±-›ƒIŸä,ú5bÓ šÎºNN ©Péxx唊ï²Åѽ]²LçêöUnð,ïí1ª|š')UžÀlé˜F‡tvR;ÏÔZ€›Bà!„­”$5 ¯aÑ%á´Ç4ñˆ,‹ZVfç„ÕiO¡Ym/(ŠÉˆZªpýQd1œ*šé€ÅZ åAmê1 F$yŸšï³l­PÌÆ‰j –„öC´Ñ4˜œ‘•’ [WÑtÅÆéC,«dݱ1*’\%P¯“tª¦ÐJâ4‡N+M”áY渮’Y– Œ mÊ\Qèç¾PªHÑŠ¶äeJTT0Œk8º ËÒŒ6h™›,/-òü /²±¹Åt2?µaÇCÞçMºÝÞ¿¹K•,z%¶i¿šõñpÆ WV‰Âœ¡2Øp-¬®Ž0[Dc½S‰*Ì'uº+3jkK”g&ó"™œ²¶¸Æl>g’Ö$ •ud æƒb¦‘7WñZ%qtŸZ½%;O.W!mâ$e>Ÿ’éMü¦‰1Ÿ@íç‹ÃÖý&/¾üy\©'sžYm‘+‡éû|oJáùÌó5É߾χOHrÁx>Á—‚J¥ÎÍâïdŠi±GÉnÓ}Óä‘.988 ½°À3Íužû§ÿ Ã4™ÎBŽN‡ÌÂOƒ²,9>:ൿù6/\ Ò\ £Cµy0øåªô«ë›|æs_às—^Dd }ÿuCaéÁ=Ê=&•*¦LiõÆä²Jcz‡ƒû.yœóåÆ ƒ“Çí‡×¶Wˆ£”£þ‡t+ožLвœßm%ðÍos¼°ÀË—6yî…—0 ƒIÒ~8EÁÁÞ.ï½õC¤4Y[]á›wvÓ]ž¹ú½X1=}ÄêåÊyêý‰µ¯{ŒU„ϹºÖbÚÜïˆk/-°ôr;"÷.Ò}É¥8˜ ‡&ÎrJRî¾;ÇíúxmÚ" g¬ú¥ÞÿþŸ3^ºú÷蜰ǻ÷iªKZo‡(Ž˜S a -ëçr±V›  ¦d£#™R¯{ln4èTž-T¥¹ÿý¿ÿ ò"GØÓ”äaZQuk’âJDZ&¦D¼ÜB'W%VµC¶¹H2Ÿb Ãv)×;yJ–Ddy‰á¸x¶KšDÌ‚{©ãl…1šÊ1-]ϹÔܤ(ö(d*Ýå.ÁÁÑ|óÎÛ*Ü›”ÜÛ=åBÃ@n´ %yÿ!So3q°1Î¥„GÇ`׋ ÄJï5…K¿H½–!¦&ÊS´®yŒvBú{T/Uéê]öOzŒF‚ù² É[–(ì/«–ùÅ^ÝG ŽéçkätÖ w(HF!#ËBoçä3E—¸€ô]ÊÅ<ˆ(&©*iØ:ežécj'¢ª‰®C¤`Éqˆ… JÒ|ˆšT°í¦#N#L{†9€Ô©cmIÓŒÃ^I¡÷Y¶[h¸¤fA¨S1mÓd®"FqeŸ— ¥(T Ư&^›%%2O¤Cu$ÐÓ +ñ•" $8!a¢hå-’pL(eÝaºânzä§pÔïÑR³%žKo¬@H|ÿÌi áTCèyŽR ½Dà¢è&.c!¼1Rù(‘BpÞQøá§¯&‰Ì (ϯ¹EòXK>#å9×D/`fƒ•SÚ)Z˜€^¡Ô— ‹*Åù{9˜äó¬TÚèĘZŠ ]¤t˜ècÉ»Øz›™+)Ô*Ή# Ã0 I©§¬Ø ì 8?àƒG%Ï.|Žç ÉGgo~zÓ§$YtIत§‡øÒŮٌCˆŽÆ¸]– P¹ƒOIJH"ŸþÈq%¸c—‰÷£»¶”´V#)$¦7ÅÝ PþAkHõØ Z„VŠÕ®²ŽH  ‹JªÁÌ ÷=bzÄ¡Ä,z Æ2£3mª>…H©ê¶ng„±ÏåÚœöû¿wn›þ‡ÕšÑ4ÐuN§‹ã8EÁ8˜sr6ú© [å9îÞfpÖ£ÛéeŠ¢ªcYMÆ“§~‚%¼_éóë•.·?ÜaùÚV·)ò)jÖǯ/³ZióPSv,Úc‡ðáçùEž¹´Éí·orÚ;Ū7h^ìŸähRëLÄ˰)ª-–Ö@õ8µ5%—7›äOôÝ]0Í nÎwyêÊó\ñ+¼ñþ‡Ü¨-þBy‹—?÷% Qâš:÷¼,ùÿ˸ú‰yúßû‡scÒ4£6¢?šF ê',UÂùœ×ð݉ÊgYI?NX“§dF‡™Ú{lÝðóÇÊê:íN×Ôhù¦aü{^€çqÕj5jµúyÙVÓÎcë?Ží“ëpLùÁw¿u~l®\æ(1©8‹ƒx0<æ©g_bg?yI×Љ§ÓIØçÞ)Ôœ®½°ŒEÎÙ»[þ gö1õ±G¤=ù¹ª×tÔÀ¡ÐFÚ"³hT<æZ“ W|jù€×_{H}ý_¨w9¼µÏÍàÝ­:Ï׾ķ_{V4fM·t,ËÆ0Mtýçs±®l4¹ùðŒd–3õLªz†“ëq_dü2 ÖOÎý—ÿǘû¿­dCžÓM¸óá»Òc¾±ÅÝG8ÉïsÝ{†­ŠÅ]ó=cX ¯Ñ®jìÐ%Œ,vÛ8õ Nî¼F7Þ¢òÒ&ýáCf̸rýB¸¼yÿ&u½`»å‘¦É<çìá”$´6$ŒS&¥Ç¦»ÌN¹Go¤±Ò°)‹ò1ÿèG™š'V?Ö4d˜¢êêãýR°æy,w}ú{GŒäˆÖÜEUª¤Ñ)ÁHW0ëÁ¨O™ëtD‡ØNÉÓ ÉP˜ ·„ÌVÈØd¤AU€Â3º²+9ÅȦaÇÐøÓ˜ÉÄF•Ç8²FT¯àÄ!Ñ0Æ’\: e„6rÀž}œ½ú1ëɳWPrJßBö$Šík×é½}übÆ¥Ë_§†ìÍîÀ6Öº¾Ëøî)VE§Û]'læ €¶x2{¢0ÉÊ*« ×1«{§§¸Î/Þ°u]GJ“ªcQ÷*8¶…еÓt®d> câ$%ŒSæaL'?ÅÉs‘È÷ßyÞy)M®^¹Ì3ƒàþ.Í+˸rަÀàKZ˜&•ŠCÝ«à{LCü{_?::ÓYDšeDIösc‹£ˆwÞø÷ï~DµRáâ… üÙ»wØxy Óz‘›ÜãÅKg\zúßzó6ŸYÏŸø«R×F·ÀˆjÌ#Ûí ËìäÄöpžZdó•ë½ó!"ËyÒ.]%LÆ32Õfù…*®yJÖ_Â5Ââî£;$k=Ö·^æàî*wO¿ÍÆšÉf÷‹Ü¾ù&ƒp‡…î2Z6' ³Y€ã¸¿0‹µ(sº‹mÅÑŸð0³p¤Eõbjh€˜ÿzçþo9†“o|óÛd³>Ó,Curj]ŸyRåp|Ì…Dcc£ÆÁ<ãðNÈÕu›Z­‚Qýþ.Ú« ­r:r0}EœOŒrêU&¤QÙ ™Í§î$ø-—õ….³<"IN95šxåÌ) â±þåOX=‰VY²±Pç»ì"„ ¬:T§cŽŸµ®†{¡K~²Çô¬r¬†$) < òvÇÉÐÏæõ$˜“ÒÆo)ÂT &žÓ†Á´¨P‹æšÈšƒÐ!Eå)5i I ê tQ’ôú©E­ÖÁÉ ÈçM2ºÂFÕ"™’ÎKÚzD‘i”…:ç^ýˆõDòŸ(£ë!%Mòh€\VäªAŠ”i"è8‚ ø"AŸ–häá~€¿ì“>®Rx = ‡ðʰ…$Ä‘’±RxŽÄ BN%tBAèC_'­ÀãTX0ö"EJñÓr ±V ‘žuÎË2!Á~¬áPäçÉ,À<צ Ì då J-‰!×@+ÁVJJiü`Eq‚éVZ•`ºC!]ZµEÂdÕ˜Á쌢ÐYì.3žž1/&˜—p~†V[@o Šyˆ½°Îªë°wt—²(¸±yýS!Õêm´$b/îS¯·¨6§…S+q /tåAOÐuK¬åò‘ã™ ‚2!MB4«E³­0aòXÛ(ÕFDéŸeBåS¸=Z‰¦$URQâ–M ÐhC‘ZÙ4g'Ih»°Ün£0ŽL˜Õ<ü4£ÖZĘò`š±4­ðT÷ü ž&Lf!“`þü‚uÞRœ·Ù?Í¡*Ë’édÌ_ÿÕ_0Œév:Û&ÍšA0 i6]B¯M–ýJr·¨|Âó/¼Àíã»ìììѬ| }mÎðxÊÝcØþŒF'÷xÛ¼LÕ½ à Ýkt_¼Áð‡ï¡cã· Ý­“̳B„$]#Y¡µ­ÓŠn¿÷l¬<Ñw‹£©2®_]ãþé}âQȅε_ø7eY’çŠ Œ‰“ ]èhÿ¾æ©(É•"ÏÕÏÔ„ú$ïêÖûï~,\ûÒ Ï“»&ëËmŽd<Ü;åb·IiÛO´6ÒL1šÌæÑ/m øÛŒùáåyñ }ñâ(âÝ·~È_ýÅŸœÇõâsÄzÎ׿¦ó½÷¦hÑ*¯üoðá£ûpë#þŸÿÖìÑÑ$'¬qËU$u6»9¥ îœÑ¶\~k½ûÇdÇc´§/â¾úá¿÷lSLs*Ï88ªM•‚ÈAOòÝ÷o±|£Âo_þ=>¸{ÊG'Mmãó¼¼µÂïÿwîñì+Ë8ñ"ýã=ÚEJÎI³ô—f±ZŽÃ$­ŸÌPNF±Z`F ôg¶¿þ¹ÿÛŒ{÷îñ?üÉÿ›/~îeöG}¢“9Ï<»E¬YÜ{s‡[Þœ‹ÎE¶* Zg¼u×á¥:¨ mî|p‹h’òìWn„&“×ß`éÊ’¥§¸ýæ[¸uÁ…n—™áÊ€"·™Ž$õ\”ô{t½.! £}êÕ-J}vî½Z(ÊBQ<XeQ~ªógëlþøÙFÅ&à¢*ñœ*:b?h³éûÔÛ›Ü|´C½ (Íu„¡1JÄ8 YiP.Yäg‡D¥‡W1™§ÐHSFfI(3¤jÐI3vŽç4q€ ±QÆsfaúUŸj³¿ÆÔvبéT‡˜)gý9šS!¯º8Ú˜(UØiÁ&kbFQœó°>梕ŸÔiÿÅÙ+€ÓÓŒ<8bÔòX‹\¤žµÀ‰f’c\­À³ºŒ8â(…m­‹»qÔ› O}œø„~gL\[ãbY®ÈUÁ,ŒùM?WßùæŸñá{o!¥ÉK/>ÇGGHbâš©ƒÜv å·Ñ¿ÿíÔç¿ò[ëOó½7‡|ë;ï²ý¹mž{ùexÿˆ÷¼ÃåWž¥Û»L2¹‰ðKŠBÒ;8Ä\_äËï÷Ý~ÈÍß`aËgõÒg‰ŽJÞ?z­Rð¹k’`Ét„8»o?ù]x¥VeÜïóæGïѹ|ƒÎ‚ÁädDÍrždý¬ÌÒÿØs5ŸÏøà7ùó?úïxæé”õ¯íìòÒõk]²ÝSö«Ù»‚´(~Š÷4®YÀ[?üþÁÕ Ï£{.SwÀƒwÚìöù½ ³Þiñ/ÞxƒéØà·¾äÑ£1_û;טWe!…Khƒ÷Ȳ”ù,@šòg±,ÁîÑ”¢Õ¤åd¨¡ÉIy“Ç6?üöë‹[­ëq›Ò8!WÍÂDÒÂ]lÒX°ÍK‚ãðæ,­.ÐÑZŒŽ«ÈNÏ™ÌçT¶ÖŸœ7#,f—&§¨Œ3ޅȃçj—?ý7ÿíÇàêÚ•Ë,®o2œ ÒÄçÎÎÈ".¬½ˆÑˆáC~ÓÇÖàÿçÿõ_ \ùk›œRepû'c^x鎮óçÿú¯¸þÕçùíô,ùê½_©äž6~µ‰žä„zÉ|6Æœ•ØM›ñјàÖ˜…öú ŒxÄ4é?9x«ÛTkz9¢q½ïLÐWøì3/Ó;Þåïþ%/<·Ä‹Ïý#Þ~û<èý5—ëe’i—<ó°–Ü;ºÅ£É•Ìg3Ò,ýT)ÿ§²X“mOQi*\·Íp÷;8ÿ)ŒN§ÊÖÒ½ó6{ï`,:\¼¸‰î¸|¸û7²¸¶y‘ êñà½ë/µÙ2™=š‘‹1•­%Ϧ$÷n²,¬+›”$œœœPœdŒš9B(Zx„b™p–ëd£>™^g^Õ ƒL¦ç⑃«²<? XýÜì³Æ’ßDȤco ø´r‡d:"< ±–5º•m¤°3:Äœg Kr[ÁŠþyQ)`¤Héâ<.¢,TGŒ’úÁ¹2¾¥=ÎB•´BI Ï»P<6”ç^Õ~O2JÀç7ÊB¨Ÿ,"Ь0ÉðЊÊǺW`ËsnV!ÏÙbÅùQÄ¥ Ç”¹‰2lLÝDcê J~úsHUŽ¬Ú¸¶G<ÍÀjùä)ÄÅ Wå”qÍw™ÇÎð›‹(¡ac`Ú‚ypÆDe4Œ:ó,F8+ —?Ô ËøJÒk8õ 7ÕQ®`ì:† +²Ð.Ú$Å”r˜!ÍBPÍ|ÌŠ¢¨À¬€Vá3®ˆÇ5[¡—@âÂeH¢'äšO¯›"'-ü4‡tŠIÉŠdæÒ° Ì ¯€9á8Ä‹|:]‹û©döpÒ,Ÿq#Aø%ݱøº`•eIGìíòWñÇüáü—<¼wûcp5šGÜz·Gb¸Ôº•9d3Aå©:hgÁôWú¼KEò°Æ«ß¿EÛò;ÿñï0`ÆëMÊÅE~û•/cìÁ½×Þ¥X ©m^!Ñhn¸˜†ÅþÉ\OXøÊçh„Ë»û9®ŸcYuV]—2Ü:=ÅiÙt®;¿ Å3ÚŸ]!Q·ß¸OŨ"ëIÇ´\(W«Lngô‹C6%$>{"ÀTå*.·|jf“ï™#:®Oß8J娲@ý¤ŒÆ/V?5dâmzˆÔ%8/Qu@”Á}…pÊð–Oé”dAF”Èv‚3Êpbº’ÈQ˜S‰žF¨JŠ9äö¹z¾Ï©È0¯E¸¤¨™M¬ëPSÔ)˜E6©>ÄìOh˜:¦©Ó‹ŽQ• ³BlFÌÒZZ¢!~´‹²x¢ÌÕ~µw6Ç.RÂQ’—9yž“— I"q„  *$‰#HEÈ™0÷¡Užï¥ÁãDSŒ¨ëSò©N„xË`*MI8'ËWI"H¤ „ƒ :’óÄ .ŽpI~ÂÖT—::¨ìTóÙ5ž¹À‡‡=£IÇÈÁëÓU6¡òPjÆiÃÇ3š‘ U• (f‚–`V §à¥>•€^š|ªûøŽNëî*–ÛÊRôIÜV€§ŽP‘‡Të$í”4Jñ<ÁéŽÕ¥X@ˆAˆ"Ç0B|ÕBZ§ì°I%¦cÂÚ2JÉa9dž$ƒE‰qdv[l<ãÓ{õ‡œ.­°ÑÙüµÏÕppÆÉÑ!÷nßäìôäSsuõÊe&ÂàxpJ( 7  ê´×/1œ0:¸‰ï½D{ë"½ók‰Yš2ŸŒG#FÃ>'‡ܾõãÑà§Ö`XNúhií`ÆóOá\lóÃ?ÞÁ[¸Ì翱Ä[oþjç ÛÏ,bŸ=y«VLg0Y4hØm´4e´€£ºÜXÛ kNpg6·®£OÙªáh.™¦Ó/CªYgjËœô§Ü9>ãÅëרØtù“ó§ä=Å×ÿ³Ï1Ñ&Øó&—®ú¼ýê¿#:yÀï~ýïRPåèVE-`:¸nÓ”ˆOéôü8‹5ê³±XåÁG¬Z@gÅbxË‚ÅÿÿX'ã3’hŸ­ /àuæ<º·ÃÙYÀï\n’-npç£ò]•’L:Lµ#Æf‹åÅg8 ÷8»ûIk“Ú¥Џ`Ú°M›‡õœÍ0aM&ì9’³`RpŸ$”Ü6§8Ùåý6ò™e"-C•¹RE7ËGŸ`qœo=šF·cóÞQŽ´q¤â(ßÇÇÁW]„£Žvv謵Xªn²wx›pzH÷âSX†$=™ÙŠ¢ê`©r8"«ØT#¨SÅMI…¢P’ºª¶L:Ÿñ`>Aت8 ¦Ì˜§»X¦æKú•úÑO6ˆê t5¦“¦Å9—ê%ç1?.~Ü?úÕÁh}"@H‰(;H9¦ÌCú¸´hÑ’c‚ A¢]—–JQÆ!È\è Ò÷Y…Â'C,ÚNðRÙöåN" eÂw=ð•#É </=G8  „ü”·³Ð³ÈET\Ç¥TœË1œkd¹:|,Žœ#Ä…¡Ç0OÉ…Ä.@(DH‚ƒ§d¦BÏt0>ÑEXXÕIÉÄPè¶$6³4ÄÑkÒ@%6z1öj”,r20ÄÕ$Žp(l…fdqÄ^ÿ˜U·‰ë´É¢Ow¥}¸{Ìõe‡íBãþAŸÓv‹Š2XÒbÎýš»ƒ …ea[’±ÑG$<†š- ÕZ¨† Š$–ƒá£´ó»QÏÈÉS—Õ ª¥,µÇhJ2¶R\åÒŠ,޵#Z®N?:Ä2j5…et™!ayBšä¬×|${ååѦÔÛUÒBp¤JšC`¢ˆ–Îã;ëxëõWyûüÎæ~rüH_èâ… 4×îì1r·…_‘Xz ƒ*þV ¡õ9:^ yÑÂwª0‹a<'G?Ÿ±|¥Éù"GÃ>ÿïñg^á?{®ä{‡·øçþŒ¸òwxå…—øÁëoaß°þÅK¨}Ù¬S<Ê9j=`e³ŽûågÜÄ÷o±3ü£¾Îõ¯~ÓÎHpíb5)x´È_ý.w?ú4Ço>›LωüõªO8NÙy÷C.}á*ß{™ƒoß%iäܹ{ŸüÍ·Ù´ó1W/\`kk“9ÇÑ”™4Iì*«˜ÄŽF¤GXƒ®lW8ì]â»òÏNmkïIâªV*¬­®°µµÉ8+Ø Æt–W1â?øà„/<ý ŸÛ^å_ü·ßC®_âï½ò ï?+Üýè&/½pf«Î|ó`ç ^û›ï0~îZœ‰Û6(æ­b¦1÷>ʹü —í• ïõ³KÝ×2ÍHJñs×Âiï˜B©Çw»êšÁîþ.«—W¸ä_âç$•]žûl‡-ÿ?øÖ}æ~Ä Ÿ»Æîî1h]*/ù„o}cÒcñúïpum•|ð¯íÍù½m‹þÁ„·ßø“ñè§š Ã$Ï3&ã¿óõ¯ðÜ…E>:zË^ƾò<ðè×:÷{ÖçL:6ÃQÂI2¡ãw~‰8yÄî–˲R4½5戣ƒ)¶Ù£ue‹8¯Ò»u„oÀhy›H)Êt@Q]#èǤîðôµM×ØÉˆÃBºxXäU‡éhJ~ÔG´Z8†Çhšã§ŒD ×UK…9eaR>îþýEÀê“c»»ÀçûLÃC”kÑK(Ž ±p„C(G8AN˜”è!ÚNÅ&)SNoÏ«ŠRJìiÝ5H«}ªAJ$k¨98B¡#ÈuôˆÒNQ³3O¨É ãzF:èÅ”ºí@ÒcЧPÝ0eŸ‘{f²ìDZL¢ŒOA¦¡S <]ÎÎ鈤L ‘x-ARH!¡ªrâ%R†„©ÂÆŽ‹¨s1Ñ–ÀÙáž'K:ÊbìB é‘ô\D7Áq-DÏg¬ÆxH<ˆ@@â5f€Ç&0 ¡:7þdý# GašJèBÞ¹è¨e ©˜²°ÁÎÑrˆ#ÃJ¡È)lI( ò<L,£ / 0@CAö ,GŒ‘ÛèèvFÂ8=¢Y¬¢Ws¢dL”LÑ I×° ²‚ƒxȲ¨Ój· Âãx@CèD…`š§è?é?6¹Ä\^ªÓÊêÜ/Mãtæa´ÀJPV—Y¤p* ŽæâU%B¦… Ó4d\(×ËְVÆi,â0Ú ÝÝ®¸¨(Eì B÷µ¼Ìêi‡AÏȆD3Jò`DfJ¦}ÁJêà6"F~‹r'!§DOsæZ‹ty„µS’†@s•º€€?üƒÿ‚“ãÃ_ËKJ“†ß8ÿÙði6|üF‹½ñ„wΆœÄT´ ½ãa5¼ F¦¯à\bŸ é©VÇÇÕ!x¼Q>i<šQämŠF…V;&ü`Æ·_¿ÃßýÂ×øªŸó­ïý€Õßç‹Ï¿Bå…ßæî¿z“÷Þùs®ÿϯ£µ_áôÍ}rµÏÄÑñÒmììE¼Ê€PìòèdUסËÄÅ’©=$ †ŒG9ÿüŸÿ_ùeÍÃa^°ti‹ÉÍ·¹ùá].½ü.-ñð£;üÙŸýéoÄ\-v:Ôê>Çã)§E uÉ ´Ñ3ZëKÄ$èÔ¨·-<"†Ç’*©5eeÉç¹–)VcúY€áåÌ*Sª¦"?S4k>´ŒB‰o8$aHè…$†Äh†¤ƒ‘¿L2ñ­}P>Á}A­ëá{Š%HŽ |—–áY‰žÈÊ”q?ÅÁ¥ºl1ÅcºÛGz u:„Œ éã<ì$dìJ¤;D‚G…ÆW¾ðò¯í"•æŠA2ÉR&AÉè(àæûw˜­l²65ðMˆ«6z¦hŒ\²Z•Z;AÃãDQ¯]ÀïŒÉúgd¹Ç°m?Q<;ƒ€ªßf0™‰’…î2׺ ¦}n}—ööËl÷¿Áû÷Þ¡\ý€Í…ßfõé§¹yóÏùÞ>äêÕ¯°Ú]áX›RO-æó5{‡Z£A°±‚´Ÿ3œ¼xº…uå*ó÷o2MŽù'¿ÿñ1&÷ú÷y¾˜°ø[_GݹCÿµ7Xúú7X+\þ‰ûýšjj ˜9IªÀ±ø¨Ÿ0) mDÈX­&SÛ – .\%9+¸dhWªÌÇ«cj«S‡³ÁÃ_ëÚûÑÈ‹‚P)fA‚Ò2¦^‹½³S-ce±‰éìÙsÎÞIØÞšó…¯­°sgÌÝyÀK¿÷u¾ù7»¼öíC¾ðÅM4sLuö<½©â‡ïòÔÆ2ÿdýÏ×Ñ$Aˆ‚~1‡É}Z• je49§bUÉÓ ç,­Zh³k¤'÷µuRKðO~ÿ¿÷˜‚×φø¶ÅÕ•ËŒz:õŸùÂÓ˜áEþäÕïâd3>÷[LONˆ†Ûl|=çøûßâèÝ<ý?û}®l<ËÍï¿Or„°·Øð]NR ¿½üK?à$ˆxï£)Ö¥ n¬Æ¿‹Ã­Å߈¹ÿÛŽ‡Gú* ôÈ$z%$›‘Z›t/äôØÛ¹‰¿Ö¥bo±xÕáÔ Éß8¤™”L–§¦ÆZ£ÁäQÆÞûo°½¶Fwé:·v)ó–ôp«›È²äþÉ=ÊxŽÈ}¢íe:¤ÜÙé‘ë%~Ëaÿ~•zŽÊÕc¹‚â±á±ö3Gù3†¦i\h5ȇ:ãè!-<½dÿ(DvZ@Š˜9(ÿ?_†‘Obì£LÝ®’G&GG ëK#ªq…žd2§*$Ä)Q,p*TÄp©¨ «M¹ŒÔÃø˜y<§ko’5bæpL¥ICÆL‰QLjm(gAÏfù+€«O“ÿïöéÈœ9¹’«RF@è„(Âôœèž{ Ãs`’$à¦)Jº¡qÊ„r㮤¥„xìÐBâJH…幨ÔEàœ‹@à ðõ)B€™ÅD˜èšŽ%iXPÖ–S¤6È0EJŒ¡çä¦Ä–*ωò’ª^‰ž!(„ÂÁ )µ¬¼¨a0E’0• Ït¤«# äi>CÏ]jŽKžÍˆcIÝ‘¤y•89ÈNØÈ무Vô8Ì™Ÿ&Ì´ŒŒ¼î0NAÑ]ÖÈ"Ÿ¨wJ¶ä0R-*ñ˜uK0Xp™Õ¬‹²ÊÞQM"i¤HK2I{4RðD €ýãO°ì­qàqï'$G)éºKK ¢„ñ)´—´gGjÄ<ßC•-:©Žµ,Øs%b"’‰ƒX)[”'=Ì{SW%­FãyNTVØ‘‚8ŽHO¦å€Y:c¡¢##É4™ˆÌÂYˆpªƒc«7å8èShn,,0˜• †tÛ&Ý–O4˜ò`xÂ4V,­®ñù è §|ÿ½»T´9O߸F  öfG4ÆÛ/Ѫ­5’³ §4ñÖ}ZÕ{“aêR•OI† :¿„m=d~4À©nâUn ð:º%9|8`7°Ü5è¸9wߊ†,?eÒP_æxvÈ #ï×Ùzn‘å­œ¿¹õˆGƒ÷yù•—¦Ïòo_=å‹õoò¾ò"“Ë_åÍõ]Ž¿ÉË¿ó%Zãg9œâN÷9‹5”²¼¸Î,­¡kg §;äïÏq7jÔë‹<Ô}‚ãfË ƒÑÉ=:$‰f(« Fƒk«kl:1ïïòôè”—^~‘у›|øÎ›×]^yêëüõ;ïÐß;äÆ+ÏœLØyç^½AfgôâÛ O(')ÞÒE2Äë¶i™-níܤB½Ùb4=æÂÅmlápÿƒ,׿òZF[úœ`2Ψ2D¯U)¢•4#ž(צÔ~7§ª;œŽJ¬±ÉFúÖ)­9—§‚«uîïX›ûl½¤³œŒØjWÙ]¹ÄŸÞ¹Å+—·¹±µÌ·þæ]zwh¬xŒg ‹š˜Ò;>EzÚU›ˆ y6g~)ñÚ]ÆAˆ«t¶d-(ØMÞdaµF§óŽ_}—´=áê®rp÷€Ýã˜î ¯ð¹ú2ݻÛý÷pü/.,òÑí]j^Ĭ»Á­û;‡ÌE³*¨èûGu3C¯6HçcŒJ ³ÙappÂÓ—–Ðo\âÛG©œÌYV9mú¬è6g£8¦À-%ö$ÆÐrfvɬаF!®2Ñ+LÒ ZZâZ-l’ù˜ Ôh4pªŠáéœlRë. DÉäôW/iu™õÎ8÷i,-’Ybšã¹’$Ó˜ˆ¡Ï¨gÏë2ÎBfÃ1¶O^: ‹!2sX Œ…*ƒ¸ ´±½¸A,W8‰è¹ºzƒÚÕû¼óîþ‘Åï}­Mè Ä­£¾…ßué\0˜G9‡÷ç¨ù)‹Öév:L§=&Ø”„—Ö6‘NÎ;''”Ó>×Ýe¢vƒ$豓$T« Ÿáh™©cS1å8£ôLÊT’&)ºnQu VSÌç"íÐ×{Tb‡Ìê°Üž2çŒÙCµRE5¡BŸ³ˆ´lçÚO#‰hGˆqŠýÄ–Ÿ?¼î÷g ɘs“å$@z.I¢ðHAH€ï¹(ô- ߌƒÏ…(χüqY^† \@)„E $ ‘aƒÄÒRun­ã…Œ'‚À JBâ{³4Âý —Ë©Pf’Ì£TV½@ ‹»°”‰$¤  /}ì"EåXF|^ÞÕÐHÅ9ß‹íñ¡›››ÿ» _ù:B”¥" †]`J‹Ñ¤E¡ô4F¤Utaë²,ÄU@€Jɤ¤BŽÒ4bƒp@h o¾ÁW¿úU¾óï0]ÝÆ«UXÕröúTlžsBÕReI-ªk)ieŽÇ<3ðNÁlö\?ш…OÔ:ÁU&BU™›)_Ûhsk÷˜Ü‚iéP@ÙÊ’˜¹N’渖‹fk˜s…ªIŒL1‚;/ñ®˜¤…O¶EA­Z#42}€È+Ô¦ÐËŒF„3h¥E"b4GQ†:æ @33tWÇÐ ˆrmFv“›v·‚A ¢Œ…Š!uNBªÂaÑ«Ó+K2#£¡g¥‹©ënƒTs1rƒJ#$˜–è…¤¹Ö@Ó FÇ=’ºCU´id:s× n êIÍÄt'äõµ¢†¨vq/$$gS m ÷Â*¾ )‚Ñ^EHIL±bž¥Ø mÚµ*"¸IåòuÑé.ÉÁ1íçWN FÑK›4ÝM2õˆê°ÇòöçIVÖ˜~ø×¬z]n¼HÿöëŒûÖ¥UZzN˜ô)²*uZe„Û]c†NYhØyÆh<¦½Ø`cë*Aÿ„qÌÊåK”†AÆ\¼¸É¤7ád<çÆå&FUæ.EÅ$² 6 Zrj”¨J‹mßÃò+Ü9`R]_¦n¹8¡Eß+hz’ë­éÂód†EŒ¥¤jØ4Ö6°«%ÉIÌx’àZ’ú†OØ1Y^¨p&k¤Ç ßôí>ä—¯\@Ëtöû§(aÐXZ`Õ6˜k:qìáIÅÜ‹PdÂm´Xº|‘Ùx‡»ÇWÛWhtsúó-ñVWM Œ ­¶HÅlP!D6\ŠÚAo·ÑäòÅmö'§L÷G\Y}–­[Øx°;ƒ4gaËb’ģ=Öí6#Ý%IÐ Ïx±ñ4¾U㻾‹Öš²åm3™ù Í0Xó*¦M?žÒë¬×¹ôüuŽ'ûŒv®]_#äŒ^êr©µJš(æn“NkJ6=DOú„q•†lsáª>›sçÁ„ÅŽÍR»ÎÞpŒ˜%\¾¾9Ò9Žh<íã-^å{¯½Gá–|ýé/2èr26ñWœÝy•G7ï±víïó•/<Íßzo~ø:W6/²Ußà 8Ĩ-0™)´hˆp\¢²Š+"4¡¡fîb›\³Hã ¦¬5Ë:5§ÂÃC–Véê:o¿ÚÃ|a™—Vkì?xİâÐÀ‡iDêäØF‰,«”2&, jØ8Õ TLÂÓ'›R,º ‹¬*Ÿ œÐ›Îi˜’îåUŒ8fçÇài¬\½Jž– 1~Û¡Ì ´Ò¦bWA¦Ó¤ˆ ,¬,31:м´†fødÙ'hŽŽ]óÈ“hœQµLêuUqpã*‰J4§Ôâ-i¡Ç:ÓŽE9 )Ó*N5A¯¶qÊ’, ¸óè.~£Å^~šý~ÈÜ£al¬_ Iàöø„r4ÅÕ|ÄÕ¾érvzÌ0 hyM¼ û'p‘yÎrÃAJëÜGV笟ÅÃúh«,K¤¥óöÍ3È+dÙ9¦é¡i.óÁ±`áŠ5‚Á£òav)sLOñ#¦dl(´TaªgÙBK%‘*1 ] ™Æšp©YFç#™³Q4ÑjUÆá)iRÓÛè~Î,Ó°¦!…(qÌ:ó…kZ"µ€BdlVÂ0¦Ä¶m¤´0M!ÄOeðÊŸ8ßzm‡"LÈLôy‰’a!†:qEQqSÔÜelêH-EO$¢–‘M#á—:S;¦%@ÌbÎZ.__«ñýc”uNËd‰˜ºfŠ¡ dZr†À³bªÊf¦R¤•£,•N©@#rËAÓ~®Ó/S¬³;c‘úÆUÊRb” Ü¡9HM'ÕX`è:¥Ð(ED,$Fé"ÝE…u^Ì2tÍF/s„^’˜ ²ó.B¸ùÝož¬+/}‘Rh$¹D9¦4Py†QšPÅ!'GÉ¥yxYN(5-¢’ÔüæŒ&1®ÐÑ*†ibˆœ“÷^ÿ8¨â¹-œÓ)Õ´BY“ŒO2F5‡ÎÅÿQA¤ëè. 3QÚH7C%蕘Øl"§ŠTÓ1å]¯`§%æRþîµ6߆(kNzjacAS'ÉæAˆ¥$Z·†7wɳãd¶^ÃlŒKENBšMfäØžVT(0–5ì '.™MH& ´Ök¤…C|p@V1±lÇ´h2Ç$£”±0—] !‘©‹”&B ÅœšÙÄqÚvÁq0ÃÐ ¶»-¤•q8VÌL“nk‘• ›ø$än@*]>{as¡Áͳ3²ã×½ú7êhºF}TA×S ߢڮ’„1¤t:èЏŽUi²Xƒùø€¸¹DÝé2õeж°‚c;D‡T’„Îj‹éÈd÷0fý¢Çâ‚CŒ“ÌÌ¡ÒܦSÓÉó §úÉQ›§–Z¬>crüÁ1ñ£œ¯}a‹¿9 ¹ÿÚ!—¶`{³…X½È£Ã>óÞGÈå.Q¼@»“#²9A IŠ­4Éõ%dº‡î¶H’™†¸F¢å= JRV:ŸAKr 5¯‹t ¼ eóÚ6õî·>zˆ«Ïyê+¿Mhš¼óGïðôKK¼¸þ2·ß¼Ë‘}ÆÕë×ÎBœtÄruÛ{x —®?ãþ1–Qe¡Û ÷h„°=–·VXð“‘FŠaêh¦ðª +t¬*×Ì„=3eÞÜ`Õ¬Ò9^½ÊÙ0ffG4}dYaQhTœ“ºƒ¶,ñM‰žèÌt m±uÁ g­39˜²bik’»‡3r3æ¹õKŒ³”7ðN{‰ç·žfVDD£cŒXbt}j­Nª8*…0ðtž¾D[‡Éþ I½Bua•Ùñ€®Õbiy‰ÐN…+º‹*­ú½)a>áÚ†MÅ[%̪XnÎâ’IžYŒÇåëW·Èz9Ã(b¡QÇ.õÖ‹$²™QÉ×x}oÀÞAÈÿò…ËŒtƒÅ+—®óZxŸGwvøâó_Fù!³‡ÇDõ úÈİXØ”„“ƒ£Z£ÁåëKôö9͸ðÜ5V«]Æý˜¾Ý#n:ܰ7pâ*ãdL]_§ºì3Û›éá”´±ÊEjtÚ'J1OYªv(êGýM š—WÑ”@$yÕ%±ºDÉGØ•e–+›ôÞ¹‹Ó°Y}©ÍðÃøÁ[}.\½Áï~a‹£GðGwÞ§®e¬o,PSÎrô~Är·ÃÉàˆdÐÞ\!!ùè˜ÜlaØRÓÐ’å,T«ÔÀ1±ÛS¾s+YàÒ?ü<Æ`Nç]¢¶‰yH™â96Q¡1#‹¨&5jÍy£ÎäxŒ?w¨]é0¹Ä÷W‰}“`>ŤT.mÓÒlv÷0Ì‚fw4HHHðWÛ¸³”(—iSZ&i IÐnvèz-¦ó1ÃYÄúâ V!‰ÌŒ,Ó¨;uüê'µœðtÆf½AÕkÓÏK$%²«ã¸-úý)F²µz ëé{¯í1Ÿ;¬¯kÔ6kèQÁè¸Éý³,t®\~™ñQÉñi´ËWV©È5Ž{;̧,ãa]è¢T@ØâMµÖIlrŸ²à- å)³¬`«iaIóãÎNM×?Mtÿ%i,SèÜé©TL´Ê"ÉüŒ^q„_]¤× Ã!™ÝÃt©•.eib%Ò2É1ÐÈ)(IUŽ“* ³r^ªÒafaëui ”B·¢¹NU2"-JUC7t”6ƒH¢QY ]g”åxY•ذ­tY®æa å9À²ä¹WæÖÏWïï yóô„P¯bF9õÐ2Q¨È¤B7À *ká0…Цb 1‘ÌK \aÈ0!TqÅÃŒf|éb›7îI ÁØÐ© u&•’vžâ–:gfF% ‰¤–¢©JÒ¼NR*”–ÛÕ¼š ®jç^‘'}ŒE—Ÿƒ8Gú„(D–CÍÑ(sƒ´L1ËQ™Ci%ˆ¬ ,m G MMO0„IR–ˆJXZ¤qóÖö³ß +ÁL«@ËS2C#É2ª¹‹*b O"”AœÏ(µ Ž,QyN)K,ÝÀH (b†™†¨xÔ„BÄ‚ý_ý8¨jçyÜ”“¸@Ê«2--ÅO!šK2mLµm“¤‚b˜cÊ1ªîaO$€Q5Ã1+óœ#Û'‹ÆØvÆoo-ò“>ÆÀE÷ÆfL-÷™›!:Srš´ ‹L/™ˆŒ"ÉaÕ å*ÁÑ€ ìá6;ØŽÎÜTPª}k1ÒWtJ‹³\G›šX‹cÔ\ÇAéh„r‚aU)Ò*Y`Æ1#ibÔ<jÆX!Uµ˜„¥\^o¢5ŽcAMËñ ü ™We–” [t;߬0ž:HÇÂó †…æ”,wŸEŽ4s¿Ñ¦"6ÐR0:Ù¢@N+ÄiêbÁEK£Ÿ5È]:fÀL¨Í¬$%ýé žåQ¶ëˆÂÀ³rÊ“3ŽrA®/PY±ðʈޤ‡ÓºHÓOrЉG§æ ºn(˜u’¸µ9*¯PÄKTòvV}•³»C–Åk¯¬¡æÜ}û!š€+OµñrÅÁYL?CÓ§L[øeNó«.ñ¤Cz«O¨z$Kp¥ÃñàO¯á/´˜U,*a7M0W‹³ù]jù-n\ÿm²ªÃYÿ!5k±‘±Ö€ãƒœ³YL÷• Ø£>£YLåú¦C“á›\z¦CdT©5M®\¼Ä÷_€kY<û•Ù;;ekÁÇZÞæîÃ=–,ÉÅ‹› ÆÛ¨ÓÝvizúê ªj³Rk±á(*ñ§Úf¾ö4õJ'ê³Iä5Ÿ/5—8Ûõù(³ J¶\±ÖâèØÃsªdeL’—Lõœö¢AC6¸ûá®i`,-rðà”-ÏbûJ‡Û£!u³Nce‰÷÷È+Š—ºËà6°ü&b˜C½ÆÒŠFØŸ1*Xº~†‰3 üf‡¯Öx0Nè¤t—V¨yiÝg•Ö: 1cbÏHTW³X¨h¬_¼Fèd<|ó]ªÞE^þÝÏ黜ÞS˜/áF‚µå”iÆÅ —±ïÍoÒ êa“¼ gƒ3v‹ÛlåÛèå6'îoAGÄ9jf1U’IÄå VÖ¹}zJïøŒg·.£W$у]ÄVƒ¥…EE{{BõxŸý£œdõW]·]e^fô÷N°[ lou8y2MF4ÖYRuƳcÉg±ÒäƒÛÌê:çÆ³ô÷sÇ#:7\òùŒÝ[1k«WغrÁ`—ï¿ý}žï^æ¹g¶9<9bg|ÄjcÒSzјÅÊ:¡]ŸÑn6õ:ñ8$éXõ²VžgR²’LeTô*ó, h/ðb{ÙhÄ' Fݦ]&sƒb¡AÍtÉ&)¡•еô…%â(Ae)ÒÐq,—ÊÅò@Â|ÄT*:®_Ü$ˆ&|ðp‡ªe±zã9´I@2œ¡ùM<»À°[ËÁL#2]PÔ+P©°â/ ÅÙ`B{µ~›yú0f¹ÕÁ\¨1:v?Ãj(ʆMÃn Ó0G•%fËÂxhc˜ îsåa•ŽÐÍS暇g.C³t‡eGçÒös…GìÜ;¤ˆcž¿ô,ŽUãý;wɳZúÚZ‹Z·dø0aQ[ÜÀ,=˜Uåá’3Ë®-èx6¦”ÃÀ0š¦ó¤,ðè zÚ”ºr‰³”™Š¶ÍBî2f• RµJgP¤´eIÝÌ9Q&¹ž!•‹hDPÔL \GÇu@ËlQ%-,Ì<"È &EI³&©˜Î’˜0˜á9NÅbÆ”`Q‹jN‰,1e„šÇ”šƒÒ,|=¤å€a˜æ–õ €õó †ÿî½[œæ ?.‰cA¬L4=Á¤ÀÕt"ß#DøFÁX¡Fhfø¦I_ŸRä¸B¨e"¦»|îŠÏ_OCìñœZXp¬R–“Ì293 djSš1zja)ƒXWÈzJûUUƒt&qõŒ±­ÏSº…C~öÁÇXdíÒS„:H=ƒ²†2 ªVIIˆÐuAª ôLÃI.É40)д‚4“(l%Hµñxî-Q ÇJdÜüþ¿;X«_ù2N®£k%¥a‘è:"+¹†„-P©EiÌ05 TI™I¬º…ÊJ"`i¹Q'#ÃH²Ð)ÉØÿൃš‰ÆZYa3:Mioº,”&ƒhd8µŒ¨ô8MÁ"£(”©cÏ,”k0-RüjFEÁÑL e)–gâš_][äÏß`×ÀÌSLSp:5Y6së\ LÌÇä5pZÒTUð§$É5¢iV(³ Y:® ìÜ#Û ü»½‚­FœžD8²‰±Ù@Ÿ ôGXvDÙiR5’À¦ÈÏH²‚̱iµ[e>ò¨¯5)Å g〼²Ä¶w‰ÌœÇ3¹…ß\¦¾\a¯p<ª²yµÅZNw3òÒDnµØr}Ì$ã½ù 7ºËˆç.r”Ïp{3Z-ƒd¹ŽÒbìùs£ÊxÕ¦)2LÛE:Yòf 护¹ÊÚ¬ä4=ìiØå6ŽÓA·Î˜Ÿ†Õ:‚ÁYf¥ÂÅ•Qjððì>Ô}6+O#«½Ñ!©¢/±Žƒ´FœLSF{Ë©4l½õ€ÅŽÃsë7$ÜÍÏpFë«]üµÏqÿî÷Qù}ŒÊÓ̲ԉ`§8A>g 'ÛDÙ!i-ÃÊÐwé/ÆlÖ?K%²ë7AO•«\©m3L>Ī›øÉœðÜõÏP6×xãOþ—½Ï=õ5öƒ‚·OvY[¨°Rk’Q’“Æù¢© 66.sh9è…är»Î»·oqqq‘ß}ù~¸{ûw†|ö•—(rÅ„3^¸x™ÜѰjMÝä®Û`¥UãEÇäÔ²¨ Ýö .,cW«$Y‰äMÁå†ÃÖÒ*cÝá½ ­ä€º ²îv“Uõ¿=çÑ Ä‚§·/f3nÝG(‹‹_by¡Îë}‡t2çï~íwÈ\ƒ{ïß!•VÃf±RgcqÓ‘ÌG…3Å®®Qñ”iàWɺ%³ã ]py{¼.Ù@²|Jw)eem“q,qêm Õåøl„°§\ØzžFc“ýã7Ðj’ÅÖuœ”²­ã5/Ð{8äätÎʵU®lúLL‹7N°Â9ÓEƒÃþU±Âg_Øä/þ⇌Ow¸~ý)æq ßÑÀ(8¸¹G³Ó¡¶Ýavç§sÅ¥ço°\ó9Þ=æQ¤Ñªl.´1œ:·wwÉ]¾~ù î}ÄÎÉ>Å.Íb›ÚJƒÔœÓ?=¥K…ÚR•Û–š+k«Åá$d©³‡™>ÂK4L{þÁnˤùÜ"·¿÷»73®½°Åç^ÙâÑî.ÿÍ·?d¥+¸¾v…¹T¤áœÝ³œ…Ȥ¾iпÀ lsuM°3è!S›v}…@͑Ɯ´æSµ¡c/“öM´ÚL%œŒ$ÛO–v5çµþ5yásãú&áƒ4s¼¦Åp¦#lEòÁ\ Zv‰q“Ö•FŽB›$¬vŸ¢¶írëÖ.fXòì ×Ào2¼ù€H”Ôo¬c§%ômâ •”8‘Äluþ¿ìýY°dkzž‡=kýkrÎ{Þµ‡ª]ó™Ç>§O7 €  ’¢hˆ²-‰aË¢²BGv8¤ËŽ l‰R„e ÍA A €ÆÐ@ÏÙOÕ©¹jמ‡Ü9çÊ5O¾¨ÆéGÝ(|ƒï*#ò&ÿ?WF¼ù}ï÷¼¸® È ¼4ÁQJ6¶¯1žt÷û,´—Ð*“ÂÃHËÁ­ôM}4Æ1ª˜ú‘eNÕ@–~  NFtn.P™kqoÿ i”±q±Ri‘ôÎÆSòi@}IcõÒ6']ÁãpÒ¸ºYï°óéFÃ3Õ&ÎÕyÒvÉð£>"ö°WWH ‰ÇS°m¬©EbÏ(…Z­ÊS/àZËBUÕg"CV> kÿ‰«òGMX”èŠàþqD…¤IJéVY-TŽg1a¥O'×Ȱ8+dÚrBÃr89†—£ˆœ\•PF:9ºªãODJ…š¥“2" 2M%KšŽÐ4¢$#eÔm•Ø™A*!‡…¡H ¾l’+:v®ä#Ф¤ÐU–ÜG(Š‚¦é†‰®(Š‚?ìÞýÓÝ«Iñµ{ç$iF-׉LAáû¨ºÀ¨øÓ„Ȩá¦>¥&“ÓR™ˆá©djʦ(87¡–Ë@¢'|~«Í÷>ì2tT2_fÑÍ)K•3 Üœ$CA%*slUÁ×]’0¥&{Ì2EV¨ ÝH§‘g(³’IGE?ü¡Àj_¼ŠDV(HJŽ¢:(F‰\B‚(‡Ä@qdr‘ã*%e¦#Q’ËJªj2j™>#Zˆ’$–ÑDJž—ÜýÞÖ…—~ UMPr¿Œ¨”iȆJœ $B´„¢—¢E(*„aD ”TM¶ §y8Cm}ø½Ïµ‡ÅÔKج7‘—ë¤=2T±’Ïr)œ;ÈI3 ‘0-?²(©ÒPTdOeé̤œ¥®“£ò¥•&¿½¿‹E·A2 Q„¤êhY‹Äõ9ÒJŠ=ŸZÃBjÕ3ƒ®×Ãd„®4dXÈœz˜"àë2MWb¹7 >§òòRLá.òý»ñx‡åkËÈO›øÚ)õËØ³œàö©¡ÁR‹\ð‡Cj½ K.¢]!=8¦H æš/rДŸ|À–]gùÚs”¹`tæ±°i0wQ%9HxÚ³i¿´Ár­äèëLjÕîÆuö>~Œ3š²~}“07©¬èTóŸ< ³¶ÀÞø<ŸîÒWbÜæá e±RY^a0Hˆ·J^­¬Ó}Ü'¼^ãzc‰Y?¦m*lçð}YAno°U)@ÞÃ;Ì—ívI<!·³Û‹%sn‹a¦‰•ý±ÎQ@}Î¥a[ &!ý2bËÙæ,ÉФŒ NÉIàp6²Ð©Q3xÔ3/i¬ÕWéUêÌËz_vSºÈ\ÚÜæ¹f•ý½c ¶æÒZ²HäÞ±Œ‘ Y¾é0û ´-¶—[´Ê€ã¬dš',©‹Ìo[”΄c¿Ä)8ɵ/¾‚»f²ó½[ìì5X¸tƒ7/Ÿ¡h‡®…ßÕ©im>èßÅß9áíí/Ò¬¸|ëö‡ÔìzQÃï:´žÓJgä=,»C` ˆŒzÎÆ\›nOeŒXßÞdEòýÝ}û KÛ-İ$9“WB¤±ŠÔÞfcmÙ f eG4Ý÷ tíÐíMimo²¶$!ï<­k´jœž“§U^~õu¢“ û£=ÖjØñ”O=ì¸Æó×7(ì„¿w—ªãpñÒ2“~ÛGæšKl;5><@«,n^åøáv£„/¾u•³½OtY½t™–’õjÕ9f³Ù (2é,¡yy‹†”3»ó”=© jK4Õ •¹&ýq‚W8RL4αšMæôŽº( T4O©­5gO†diIóê:Eg<žr88 kµY[\!ŸæHk r¨âyŠ9nxB'Qdær•ùsEä¢Õ¦+áôMÁYœg¤gˆ½¥£cµJUÆ)›Ì¤?ÊhÚ"YED.ÍzA¢IdçicŸùö&n^e&öxôøCwØ~ù:Q0b÷Ñ.¦'˜{y‘%µÎƒ½sN'c.ª*æ\‡ÀÕ™Þï2›´/\ÀˆTºƒ¾²¦/¢äS†QIT±ýZY¢Ê2 ×DU4!?–ÿÊE»²K•y÷Ö3M£ª‡Ô’gR†’¢¤-B¡3È‹Å=/˜:6jº BÒHɈè(”Ž¢j¤i"ë¸(äÊŒi˜R5çPEÁ É‘‹§¢’gY–äy,¨Ú.že”ãd±– „IaÊ8AÅ,pµEQÐ ã™K7PUå³s—ÿ5ù»·v8èë”Eˆ%¥øy ²M¢Ž¦ ÚUÔˆi7¥nxèÈy„¡çš€T&Š4 ‘ƒž† Fî Û)Ÿ[oòµÝy’£,&T —iV")Vž2Õ,I'U"‘b¤‚2E)Q-A–iøyBÓR ¦9¦#£Æ!RïÑgZ¤³yÒ˜27t×V¡0P¤„ó¾BdqFY ŠLB’@*eJI ‘‘È "-@˜²Lk‘’å%’®s÷[¿óL`]zëÇÉ„B(r¤HB'AH%‰n!²˜œ€…´HÑ„‚P2üTE“BJTÙ¤$DË TKAè)Nn²{ë‡#Ân9Ïl<@Ú¬qÃlA–0*úTÝyäÙa¿7á«o°ðf…Oï÷xï[1·ÕäÕ+Wð{{ãZcf&Êœ…^:œ$SÊ4`~N'rÂ…ê¼&ô£˜¥v‡ŽÝb|zB\•q… J§¾FC9çÉ胴ÂU. ¹'ò9¦È©ÊM¦QŽÅ·ââ „¹Ä ± znJÝÔqô*•Êgý3FÃ1?õü«hk |òí¯s²—qáæ:j ¢”éx• Å¢&t¥€™<4T…å­›xÇù£Û”Z›Êê®PžçØR³QeˆG4‹¨Õ-ÈU4Í¥Z· ¢‚<*@Ä2—,•…ËMvÎ<ºÓ!WVš¹ÎÉùŒXž=¬lù¸+KôR††Ôì>õí¨k+Ü=úˆpÿ+íUÌ ËeJvzD1„Ú¥&dçþ9 Qöl¦þ)¥°±ÍÉp„PYÅÈKMã™Ñ[Q~8*û—ÍËþP]EQR9û»ä®K‘çä °Œì8ä ˜«øXr…AÀ3ïn!À5! ˆùà³Cë‹UeÚжÛu$«ÁQ/¤T–W0®KhD¸‘E8“‘×#I@:)耦R-srW&=³HÌC|a½ÅïôH¬ ËQT"oÑ!vš£g:..¥ƒ¬á'>Š©&-¼ŠŒ’¦Œ‹ U XŒ]Q’Z2c?¢-é$ °"ÒÔ@Pf9¥da4mâ^ÊÐÛÁÐu”Öí¤ ¥l¸”RÞY‰Û®S Ø6ÏþéECê5›úæ<'w%N‡1/l¹èsçIU®R½ƒ:Wrz6"-kl¯nvtºÒ€…±Š[Ó˜ºSRÚ¢ÃAàp¨ty{½`)¨rkÔA±e®ub´&Ã!òXÀ…&špÈbGˆ}¾àÜÉh “Äh ÄˆmfÓOfHªB§~¥©BÂÞé„åE:óMâý˜§;ç¸K‚ÖÍÉ~‰é§ä‹^?fAn¡JŸ|4åêK«¬mD|üá ½_íòÊf›%gƒÇ÷‰Û)ÛŽÅG oÆòÚ2Fž2˜î ¦WX_ÕIŒˆÙÎc*°_¾H(ù<¾÷1›–à‹ˆKÛôvúïñ¥7/3ŒUî~4fáõé4#ž~óSªí V—7èyg(û!¥ø”•—`ë¼'O‡3ÓĨ6¹xõ _½óàð羴ͽ[·9Ó<Þxá Ì”SÔQ…ërъʨ.¸Ùláz kÊ=¥É7õÿ³šFÍ<çnVRZ‚†UŪ/ƒþ˜mÓã¥Kϱ³ãòá´àª#3‰'ì=ìraÎæù«èí9JöqŒ š—¸­šŠèzÄíµÞ¢œ”8Ê^r‚aX¼ùÖ댎ö†OY¾~ñÄàjhQu×°ê§È ^/cÖ P;|é'ž£2Iùê£#Ž‹„†á=¦£.[‹n\úS|ÿ;_a¿ÿ>oÞx­ßal§¤[½ï>Á–Öˆ_³éß=¦ª¬½ð&ÉŽÏ™4`Ù¬’Gp8#]ªsÝ]dØ?bX†ºƒfºÔ——I‡cGK¹IãÂ.òr“"¯²{7¦ÒYÞêP†2êù„4G·×X0OÑ2‡H¬2NN‰ÇAKgIщ“1ãQ…7æi;5~çÁï3=‹xníE:Ë*ûÃs¢(¤Ñè0I}zG]®¯­"%ÎÒZ]`‹6߸ÿ>Š»ÄÊ üî!no–ufJ€r4£§×°+¬˜SŽï‹í¦ •:f2!Ê"†™‡$L–œ ¤ªLÚK‰Ÿ†˜—«P–,˜-²f|'f÷ì€Åç:¼Ð¾Â½£cfÇ=¬ÍUt·À ”:b1ÇxwLÊEw5‡¡ÆNÓÈ®®^gè¦LwzdŠA9_¥­d¨™C©ˆ%—R”䧺¢]E1[ÈEÆì¼@«G´„Ã0ÐÑb……-“ó2 žxÔ%«nb”3Écÿî‹WÚ¬-½Êi²Çɇ»Ä´®]c±©pÿî}¼nÎ|¥‚eV‰;.ó#òIDûÂ¥+ca‘§Åì”t’Í[´ ã aä( —¹ƽ)‘0§iøè²Jq4FÖbrµEl¤¸™c/b74¦£]>tDMw u1áÔóÈÍÖ*ÖrÈÙ fš/p©"#j3’“ C×ÈMº j2äΩÅBË¢Ùªp7ó™Ót.å+ø¹˜³Ikä3R—˜5–¸Á€íÔã#³å”­)„85ƒÖð}Rp¯S5%ÜtHob“NÈsU$!ã…;´­t·ÎÙã§D¸qýƒŸé䈴ÞÂÉžý˜fé€0©bUWQ+&ƒ§HEg}žè¤ËdZ°¹ä²Ó=¡+¹¼ñÜ6“ÃïÓW#.]ýYwÏ8zô[6¸¼Òľ¼ÈÙÎ)£CŸåK&²U0›€gÈ©ËjÛgÒï°'õ1Ë´V¯3º÷.ƒG÷Y¸þ&ë×xúø]yc=au^"í×È_P1ï’f‹Ü¼Ö&wb¾s«ÏÝ¥ÒVI&ÜÅKHJÉ»ÇTÜœKÏ¿J*ÄOŸ ÷²”7_\æÚv¿ý·ÞÅ^]ä_ùóì}ã.O6lÜk ŽŸŽØ^‹¹ÉßÒ¹Öa­e±wt‹L–iÍ/áVæ ÆuÜñQ Ðœ©vZŒ» DJ¬ž0ñs¢£É®ÑpL’á.3Ý%ˆZè™JmÃd6=cçþ++׸pe“ouÿ€é£®?X_ãÉñ>æhÆêÕëÞˆ£³­k T+$þœOs)Äè·Í‚±pyÒшëKئÁ§O%*̳¹®#²”G‡ô’/~îEšv‹£û3fC‘…•’ÍãÑcŽ-SÆU~â•’7k[üw<ä—ÿÛÿï\ýYþ—âOpÿãoð͓ϿôbÔåÎÑ ºm¢žÚè‹I­GöÀ£ÚXÃ×t¦wéÔ–®níF ¢eVAo*ÈZ—XªÃTÂ($Ö¯n‘‡=úSÖ¶¹l7 Ofôº}j›S.¶V8W—99ãí±¶½MË”éŽÝ«‚7Û%S,/oŸŸ!©cÔÅç½>gS.-móÒå ·ö÷yïÃû\n¯qíÅñÙ„Ç;cJ7`!»@RxÄEˆZq898ƵGt:/÷è'ÌÏmñtÖÅœÌxõò›ì 8<ÙckqžTC’@N†Œr&-ƒf\ÛaÖ0•Ô' ¥b“æ#LÛ¢²Ú!Öß#ÕC2,¬-1¯ÍáõSŽâsÌ|ĵåç×lŽïßgïÐçÚÕ-:—;<øà)Roˆj-P]]¢jdžÍ8¯iÔ: kéŸÉãÇôѨ޼ÂÃgØK‘F!Õ ËŒò/ÓvT\1‡WT4‰¢Ì@h DÊ5«Nu¡Ê­³1£ñ1›k+Øn ¬3)v)Žg¸u}}•t”áß¹+ T´GºHâ3m@g ÑôÞz„ªÚ++Œó ÿÄ£bƒì¶ñÂSRËÆÕ,¢îð©VÅ`Ât¬¢;5ŽO¸ºRG(êüH?0»ÿ+„ÕŽ5!s:Í̈,FÊRÂDgÞU™f¹ã¢vS\ↃåeŒ¢M×P59òU›l” ë A8ÁW–t•B ’€jibÍAì ò2¤LTò,M¢05("ƒ8Ÿ ;%ZX¥ŒJ=bj%4s™†ž#„@ÓÔgw󇘊ÏÎû#TÕñ,âWî>Æ•U|!ðr9QÌ’¢ŠRä)ÂH|FÃ&ÆŒUéèr„¬kÈy‚PJrU§ˆ-Œ,ÂK}~üÒLñrŸ™Z#/CTµ$ó Û¢Œ2J ˆÊ2ðæÈ³’RPË)Ql.:4sð8"Ò}¬†‹´û‡¬ËÏ¡–*E–#«–®Pæ‚\Ë(åYr±â”({† ‹‘0J‰D*Ñe™RÉ‘réL†¹P‘ôò?¼¬‚»ßù*2x„šF4žc($ÑS¼ð!ö¢Å¥?ùo3Œ`÷—ÿ«uXxû $\*ªÎ‡ìR‹}þŸ[âÿswÀ'™ÂþýgžðÕßøò¯|?>à«îó…W^áÒÇúê•m6’ Bëâw~½,Q‚9ZÌœ²Óë¢×?b¾þ2±ò§² §ž²^”öÝ‹<¿x…n7äÖÙ.Sï·µDåÚE"ß'9S* 'Š ô&\ȶ`CpgzÂeã"ÏÕ¯ñÝ;ß è}ÊK?ñÔ¨CÞY­°£ŸóÁç<¯UxåÏn2mpð>e|:æâ;W˜ÏKº³*Ë7æÑïÀCaýæ+4…ËÓûq4žQ-°ÌZ¨«—0gºŒ3]×ë•@d-Æ Í%ú<‹vYpFÝ)Gò[}Ò$!Ë2ò¼øa^dùÏW?"³eÁÕµ¢5N€‘$`µHB\˰2ƒn®¡Z¦P1ÉI„C>M‚©™‚iR‰Ôlüp†~3urPLD^†2a†\03AU@Nr„ù ¢¦12JÊþ„íÛ\–$dYF2²ô¬[Ò?ÅY}öâëww^Œ0KDC„VCàÄý~@8Í6Ç9q ishÄ"&Ï–æ,I‚ŽE)¦þ”xÿ æºÈCôA4q‰5—~“•Zü,RGX.X 9{‘ 4W åƒ‡[sqk.ùøæ¥jyBZŽ0M—‹$*QE†¡Y†’e$JRI‰°’œLÖ’Bå(ròL<¡An€^@þYJ+˜|øÌäþÚOQf¥áRä1e’!YPPÈ2J’–"Š*<%CÊ\ò ˆBÊšµ KQPu ÍTŽ3f¾ÇùÝ?S»Â$ÏlVÚUâj@,—ŒŽSR×d»^GžÎØ(85‹9Ca8NIƒ€š#“{²ã#†:i]¦ '‰rT¡b‘ñÎz“÷Ÿ ^T*5-"WIÔ©b&  ¨š5‚aI&T d+D¦A‘*hiD”hTíM•89Ë Å) ]Æ©-P¤%é,¡P#Dn“d6¢¨ÈÆ‚?>àdçœz¥Åzs·%³?2œŒ©[ëllhìœÅÌB‹å%›2އ9šYcšªEŽc”œ%Zí%ÖÚLû#ÎÇ%¶¡³%ì™9’lŽ5n×~úRFþ˜ÝüúEϲc°WŽˆäC²ñ2uÛ`~Ñ¥8;9c:‘¡³L!'ã¶l"Æ~ˆ«­*-Ùääì”|Ý¥)êLGŽˆðÊj"c”)ÓxB\ª\œ[a0ëstrÎkõU‚uƒï>ØåsÎun^ù½û÷°' –—Ÿ|¼Ï…“ç.]'5»ÜùúgÇ2×ßZ¦ÐLÞ}‚£šÍ&Y]!ð}L_GÕd„möOˆ÷±~e›‹—.óé§!­(åíÎ ½ÂIµÆ•W^gìsöͼùòè‚Þõ0ô%Úî.ƒxÄü¥/“ …ƒn3Wo!“R.Ö3‰ÛßzÄüµMÚõ!Ý“sœù:Ýqõí ¼<ù‡ŸÞã`Îã_{þ9V¦ó+g˜ÛKÜÛçÆ¥•oï̘_3©W¯pþ Aéö‰*éB@3^ˆ2µEW†½hYÊfç"v©q8bh#¢¢ŠïUh×BÚjÎèiºÁÊÅ*í=$&¼P߆ºBb ?9ÂЛԟ«²ûðÊÔàó?ÿý{ ß:ù[/»4Ç ôg\b-'<ʪ,H>ŽeÐÓ«´è´L<óþïâ[&?ýåE\ë%îÞzyºKGû"檋.=â<ñ‰w©ª6¯~á2í•€¿ù÷nñk¿ó€ÿãògøÙË/òþ‡ÿ˜³ÃÇüåŸÿqvÏÏøƒoW]¤=°h½Ü¤0z¾ß'×jèk:Þ΀zuÌŸçèXæüðË­a(0Ô†8Zj²L™{ŽDQBڮд¦|ÿÖ˜†a²ýj ÷BãÑ2;gÓ\θ°v“ÌO™ìÞ#21š›ØÙ.’ %[dšÏ,Ü'.ÚX•’¸7EO6®­1õùõo|Âåú%®^¯2èyœÏZÖ¥>¦æS¯idjò8 Ÿœ°|ãy4ËçýïïQ_^Án*D»÷ØX¼HVuùøÉ·Ñ—¹Î œSî”J¥Š¥ªX&$ºÄà´KKØ´ì&SÙc¤´ÃE’R'=&v=ò…uª¢N§.xºwÂé‰Gójƒkk—gìö& Ë ¦ÚâÊÖ<¹—r÷É -–n<ÏùàÑÙ¥½‚^ͨÎ`A]c{ r}Às‘iâÏúx†J³î’Ÿ™2M×%Ò³g$ò hĤIUnP¨&«U]{ÆÄ²üƒ®Nù?Š{îè‚ÓýIHM±ÐÕsÙÂEÆ•†”*Ä£NÓ d9"Ìr4Õ"J|t]ƒTF5½ ¡k*õVN žŒjf(i†lH¥ÈS‘‘ˆ S3!Ô(hfLV–C¨Z‚e'GÈ2BUÑ5Ó´Ð MÓ¥? -ýÞˆ¯}Ø£(T¦þņ–Tg&ÇH¶F:ÈÔä*‘­ÐgäŒS ‘ø´-Ÿœt¡+r­Žðd‚  tɵN•×V,~cú S¥@Í#T£ ÷rJ=ÇÒ]¼$#ŠZ"AO¦u‹4/Ñ'>¥“ º:Ù¨ œ"z{Ÿi‘¹‹7(ÒŒ\6š‚Uää†@.’¤Pd9B͉J] PÐГ´˜"”Œ¬pÉå ­(ôâÙö¡H ÿ`DøÛ?¾þc,µD"€L bÅQQ£ŒH–‘S…LKÈd %S!M¥„,)¸V†YRII")ÄYʤ”˜ÜùVk}fP‰¤R`é ˜ŒÆO˜É ÛË—ñä ÙdŠ(*d’…¤ …¦å„„ ƒ,{ÈD5gRÆTr‡·7j|e1ñ#$=¦êY$¹Š°b"" ‰*V”#f%a V%Eä¾ä¡dŒ–NØàÄÀ´GDQŠ/êÔì‘C”khv›lâÑœ  ÓZB/B2U¢*çAÌùh†a¨4k52ÓÆó†aº¨±T//KèºF>U(eŸ©a¯¬£&GÇR׌Z“ƒšM# écRVHL…Ü>¥ìgö5öÕ”›RÂ’"Ós]Êñ9ÒáÈip4sÃáZ™å1 d–…Xm1Ìdiˆeu\‰jâ÷fz„Ör ¨÷v1 ½½ÂÙñ.. Ö—¸÷Ñ-üqDó¹0ŸäÁŒHL ­±Å†®ððþ=zf•W¯ ûü‡™[z^÷”Ñ,åJû2§Ç»T>ßç‚|•ÁçbÈ®<æj£ÎâªÍ÷îÍPŠ6/¯œöÎÙõ :Ïo±$˜}|‡™õ í7Z…ÇñiAEÞgšî±ùúl.ä$)Ü;>bA©óâÍëüÝßü>+/ló³/×ù/ÿ¿ß!]ø)þíË5î}çC¾»”ð×.¬â<ÜãkÙ¯³Ý7ù’SçîBÈï?xĺ?æÅËWH´uº“ž†_§?Œyµ}‘|©c•´Rcq òEzS s1ÁŸ²wÿssžËo2ê?E0ŠSº3…—.mÑœñýàÐõ¹fŽÄlsÒßaÉl?ߤûÉm/åå?¹Á»÷†ÜùøÞ1¸t}žÓ¾A÷dŸÒt˜_]Á<ï3=Ù§»<åš}]\#O`:]º{UÊE³Õ§HÓ³*§ÚˆŸxý¯5ÚüúïÜçW¾õ÷yég¿Äÿ|ó ßüøÿè½S~|ëETÿ¯?~Àºu Y®#Õ‡yŸ"W¹Ñ¼Ì‘Ñã䓇\v°/nâÏf„£!Jš¡Ë6¥æc†)ÙPGn¬P«iÈSÇ&Óà ˭E*KsìfOh$j ¯ab/p¥ÞB=,œöˆÞ˜§%Õ î}LX«Òi®b×"ò“1Q7$˜AàZ¸™ÂJµJ}«ÆïÆøŒ™éÓÖ:t:Unß¹K™ú¼ñæŸÆŽ}¾që.®­²°|™á£§X‘†ºâ0ˆÇL{#Zn›¶¯M<>ýø6£zYRÉM2È4$R‚h‚cÔ‘åœ,Òpô˜>2j$£Ê9Y¥Icà1fŒTš”®Œ’ â,EÍ+HduF’ê$š‚e¨$I“)u­E½™Q’,£©*ºa`š&†f *”õ‡rò籞0N=„§¡Ç2å–E-Lz>3+ æè”¹Œä„5Ps I(DŒ‚j¤ä’Ž]Sˆ<›,’ëJ[£GŒÇ9_¸Úä{gHÖ9о:’Ëácðä²Ô!¯‡ @žÈ”DŽŠª¨äƒµ¡‚®ŽT,m„¡ûÉñ`•‰È2d5A³«”%MC rM#P2Ô"À A)•„É aè™ ¡„ RYF‘J$Q@R>£¼ €ø‡¬×¾L)$ˆ=Ra¡2BR‰gŠS€üÌgåY£H$$Š8§]uÑŒ ?ÎA’(g8)U¶ ¼ûÃC-¾Ì$ßå4ŽPUI`¨>Yê„#üŠÁæÚ"³‘Ïdº‡¦Õ\—8áO m´™Y}D˜ƒ¦’%ÝA1KÞ^©ó•ãäD(RN©Ê¨µ*D3¼ÔÀÈ|jšÌyP#w} ᢠOÁ«ÙÈrŽXB01zC£ˆQš1j´Œ(¼i—B)0 EÊP µÚÂÔt£CFúÔk‹K—0m‰£Éý# ú<õ« ƒ±ÏñHf«¨c¹3z¾÷l{!6°)Èœ€ ÍQü9l4"9&äh‡ËÅ*bö“ŒZ’¤5>˜Îxã¢Ë "æëûyÙfuÞ"žMè'¥î‹M:V ½6@”=ú]UÈìeE§ >!ñ—0Ý Y4åÄÒ¨ÊÕ‰‚, fÒ4ÍQä1%¡&³|†F8ÎN%$92,áJg傯ãÁ„¥•«9·í„ÁÓ€Z!ã¬Úx‡!n#gå5›ß>âd ñÜϼÀùéO?>€…„ ‹W¹`TñúûœLª ³¢R>Œ˜Ê!µÅœvÂé=‹ÁHgmc—N'|º§ñ“Km^úüœgÜþý*o\¾Âúå+¼{zÆÉYÆ%­Ï8>ÀxõgQÐ8|÷·h.‚¡®#ê‹xªàþ'»Èƒ>7>o‘ÉUníÍxqë2ZòèkŸðùWnðÝÁ{3ƒŸíU¾öý»¼{¢óï½s‰å,"ÖˆÜeî Ft4“ižïu?àj+¦¹fóèlH}<‡¹,Ø‹àö“OØ*d.Ïß@ÍçØ;ziDÛlpì¬Jv­ÇáéÄM.w\zÖéP¥¢*ÚOÓN©T*Ìm˜Œz ½ÑW70ëüî¯ý,·#þü—~†÷î è¾{Ÿ /­UŽ>–Ùpû˜Z““¨#OQ÷y2*HŒŸ~c‘Y2Ï7ëI=a£µÄâµ×ØW¿O°wÑEDœð…W7YjYüúo}›_ýô ¿øïý»ü¥çªü'ÿé/3Цü—õÏóSŸ¿ù•ßâ­Ú4Ö‘„ÊXºÇh· ðLÌmï¬G’èl¬Q™Ü™Qš*UIçÜ÷)œ»E<È9wÆT”Iš#PôÑ9al0š¼}¥¤Qqø­¯˜ísófÁÆË?ÎÙ1'gßú¶Írz@zD?Qˆw-ê­³|BÿtŸjcLÉÉÒ„åÕ™óû¿wLSQxéK—ðÎrÑ®µÑ#™“§,-tXm]áÖ½o2xrε{Ðó¹ýî=¶—¶±;&ÝÛ÷k…éI=ô©B6зâî}ü#‹¥ëkøùy6%ÊuN‚˜5 Ö–æN†<ÌЭn¡£ݰORä,.\ (4ƒ²I[_aµUÇëøøãÛÔ6:\©o¢©%²Þaxö˜÷ö÷Xo-³°êð`ÿ}dMÂ0¯¡ôîÑnWñÄ"Ó‡Œ•ˆ©ÑqÖØ²eN©9Âv"4>³²d¹º€Iœ Nˆª ¶½Hž Ê$£ÒtÙ;÷)'§ÌßXÇ(½P!õûèeIcnsÙ =†G’â¶ÚHEAXBáù˜‰F}Φûé ’à^½˜*x‡‡Øs*n»Æä$"¯æX†KÙ(ƒm^aš©äa‰ZÉÑ’/)}×i`·%ÆãCú§ óm‹¦k<ëb HÿB‘Uþ`›°,KÊC¡;ÝQ!ôrÌ¢ (5âÀ ,[AVªÈf‰' $‰(õ©I:’­’K&¶q>+¨2j'GÒ ¦Ã!…°1M ¿HP3KhÄ ò3—)sY‘äúŒ|TR&çsWE‚%„PP5 Ó41 M×`pÿ£Aß¾½Ë÷χ(aŠœÊF†£^ÄDаe‹\– ;)É)QCfû$¨h¥M RÔ‰LmÉÀ÷$ʨ‹'À2M:¥ÃXÖŠ>?uq‰o?ÓÖ«ôË/,PàûÐÓg¸Ö"r9Déh¢¤ž@èʈ2%8e•Ò´Õe’Ê¢ûC“ûÜÖ+deˆ&?Ã/ dTÝÆ@aläÈäH± ºN@XªùÙ&¡ ¹ •K$IAÕ2¤ØDÏž‹R‰¡”hr_{ãó ( 49%‘(c %fæ+ŠDj¥H8ÈAH!ˆD¦©ÇHvŒ¢W™©Ù³|­D%wª²‚*ì}ðíÏ•,,^R6ÙqBZ×qEÈ ©Ÿ2 |”¬JQ(æ)€C¡ Âä|+ß!w-Œ,DRs>¿ÒæëOQ„ŽRX”ŒÑÜ Áù ¹ÞÀå('ŠU,7Á*T<ÒBà´jáS´\ÌŸS„›HqDnÂàî|ÉXJ‰OO0TÐ*u4["ÏÊÔ$’Œú1¥«²b6±µ’qÃpŒY« Zã©K^*4D†TH¤y•ÜÍá4D®¸(sýÉ>É$fqmƒ )HöF´ vs ©UÃ/Ñêg`Q¶h9‰«Ðô&é35¤!Î(E•05ñÌ’µ9—Ñ™àtÆ3Ã岇­W™ $Ìøˆ#ª¨ÍóžG 1æ,„Ù¦R’§ç,ÏWÀ¶99:fiaZ»Âto¤£apVZ<ç«tµîrÞºòEœôŒòñ÷ØXÜ`qy§;÷ij.s«KÌ´#‹l‹ ±OY‰Ùž_¢¢(Üþî ipí¥â±zN$ßäÅ„»ý»œ X{å"¶Þ ÉZýZNö¤ä… ¾ø¯-³spÀƒ‡ÇüÌ^MåÓÓY3vPÝ9~ìs?Mwÿ1¿û·?äåíun¼r‘Gр݌G%ë7·¸R7øàû¿ÏAšñêëï`M4ççèŒ0µœÉfßhòêŠÆŸ¿ÏÚÍ%nêk|kï„_¯ñgۯíœýí»¤Êã‚‹MÇÆ6'g{œ…)Ÿç¬¬ÌóÕ£GØÞˆyyžß¸3bÿ¼ÊÕZFe%ax+!*‹7æ8žqtࣷç(§5Ì2fa5àýƒ!yñÊüM"yÌÓ4À¢¤BˆTk"í °/Æ\ÝÞà½îâç:_þâ Îw<øhÊÕ——XخѽpøøçbÀŒÅäEü¢‹ü6Ooϱ|é «G؉{OÎCþõ?ñ<×Zþö¯ÿþû¯}ÂÏÿ¥7ø+.ñ«¿ù„ß»÷!7ߺŠÖHxpkÌL6Üô2àAv뤃¹ÜÀW†œÝºËJuí7_¥Ûp÷á–¬&†œ1’":kgjrz&P:VÅ£OIÂ:©mÑÐRâf޶haŸƒ%:drBîç´ælZžÎt"\—° Oñ†¦[¥1_²wü>~_0·uÔiä¡êµVƒïÞ Œwya±Éå‹ ìž¸ûíS6:Mæ/Ú û]ŽÏt*5V"Ó¾¤3,4ξÓ¨l 5vâ.[­—™„3Nýû,úÛĦÌÔ1‘¦:ç^Ÿ :æJë&±âqr²ƒbÚÔŽB0î3_©¡†™á!òj•Fdb¨ SOÏa4vu §Ób6ÞãÎÃ[,Ö/põ¥·ùtg‡'Çßáå_§2 yôà1¢¶Æ\ã»Ý.Í8a£ñ&Ç“Cîõw(›fMgÃÝb2ì2ñ`ùZ/38;yÊ’Y!s&“ÕÎh¤c5GLÀÐBª¶„ï¸äÇ)®t€ÔžCÕç©è2ùéçQLuý"n§‚|pÊ£§{8¢ÂÂf‹¬^2: ˜K&¹„œªÔ–k †dñ lµjŸ"44éMÆH‹2–]!: HRwÅb”4Ñq5›noŒ§‡´œsNaÖ£r„íÎc&OΦ\_vÑTYþQ.Ö?+¬þ™NVYRSm¾}ÿ’¡aj*e!˜Å¹’ D*µ9Mˆ‚;ÏÐdß1QÊ„L ,-$ŠÞDxÈR Tʦ q²€lS†ŠU• i9 e¡ƒˆ(ÐÈ¥%•)Üýöf¾ú9”2¡R Ðâ˜LÈèèJÆÄÝTQDA˜ä¤aɼ¡ã\0ñ¢‚xâ!ܾ_0“=:®Ž‘„ŸÃ»?Ì"|*,ŒjFn’å’¤ŽKe¡å§d3~Pj5*f ›§S„º„®æD¤èI‚Â’•áú>‘ “4ã§6:ü¬ (¹îbYÁŽJJ©D.,¦rN¥SFd ~ Í"I#DV26ŒYWaΧè7‘Ê„(-ÑÔªX}–S—Ⱥ‹]1G{øwg¨óæksH¦ÂɸOXil’[ÃÔc8M‘ƒ ®ÌÐJ¦¸y ­“` †!j®R]tè¥"Shg*­Tðd<¦(LêK rŠ^ÓYUsöŽ9ÖxÙí§ †h²„[w˜—6ñÄ i¼Kodc5×Y*f¨ú”td`è.Z{ŠDQ̰Š6r¢Ö$‚ À+BjšI–Èäæs¬!©¦ÒtÓfÿé§œ$ó¼us‰xzÄý#ŸíÖF#æÈ0kì?.q4“Õ… ŸÝgmÅ .æyÿ['l½dÒÖ:<>ÜÁY­±ºòáñ€G;÷9èM¹úöe*ÌÃш“Á9Í¥eŒ¥”ý‡4ÊUªŸ‹é=àðTåå箲y£‰çí2y—Kës¼¼õ2µœ;ßx¥ÿ)Û++Ì]þüÝߦ*{\ÿ¹¿ÀÑ'2÷¿Íõç&+<9‰xii@ÁíÄáEצÊÜ+!̰`Öi¯¶¹ûà”ÉÑc.6—±œk̯8¬Tc~óÛïò›ß=ä/ü¥Ÿà/\}ÿüoü}¾µÿ„¿þ×þ*coÀÿýïü֬ʟ~îy&NÄ»÷>e9èíËBp²ÛG§Ïæå6 º~@”‡èqŒp%J]F™AœHHJpfèrÅ+˜O°½%”ö*íňÅ"äþ^Ä{O»|ùùߺÎ÷?éã?ú‹7–X_{‘³Ãû‡Ç4ŒÍùyü>áAÛr±¹g zÆ‚Zã»·ŒÎù±‹[¨Kߺû)5¡pùâï=8ǰǼùâë|òÑ]>þà{ü©?ýsÔæ×ùêßþWZl\mr÷[Ÿ¢åæå&e fìåÒrM)ÅÛï2ÑXK%‰ßg¤·i©íy‹ó(Â;;Ås´Û5âÁGÉÙ¨pÉm#/¶yðø1Rï{ñ"ËE1§œ ȉÅëë”™ÂÝý#šŠJÖP FÞ¼~™“¤ä[÷>fɬ¸×¨ ‡qJÔOÁACc¹q‰%IâèD!0Üz [É)&1{Ö l·Wy|¼Ç‰<å’µ¬[ÇgzKÍýfR5*œB¤Ñ½©`lÖH§:ñh‚ä%”EF²œSJuœ0@S,†³Sʦ¶5G´¿Oæy¨+‹¸¹Ët÷îʲZ#2c´L!Å"—=Š4")uæ*u,Wà=é1SR,s‘ª“Q÷úÜ\m¢(?’Ñ÷Ù ­üçŽ ÿð=]•ñgƒqÈÌı‡•Z¨©$dЉ$gøÒ3`°aÔÑÔ‚8 ˜Ž*FŽ¡Í!ŒœñqU a¹(ñˆ@׉ã*=!+dô"–%\*ºÀ ÊIHÅÒ©%Z–p¹ž>ë^ÉUU1 Ó²0MMS‘äú¯â$ãW¾ÿˆîP€¢ç šÓ ’—ôA3Ç ]dd( 5¡M'˜&„AŽZ¦Ì[‚A"ˆƒ€\•±d·–{‚¾0çAYµx{£Î×vž@àmŒ,Ç*C£Ju6EªYd¡ŠaÍð] ù<'/,ÓÅ2À÷"l7!³Z”£WCw÷3-ÒÚ¸‚ID*Û”Š"çȲN‘‚¤f8z¸ô)€LÖÐ Š$™¦–P€TȤaB)h"¥D ”%…þ#aÏ›¯ý29y)!²¢R ‰ ‰¸ÈQAéCY¨¥‚k L»$-e¨gdc?ñ¨W]„%áŸçdR€bê~ò#Q9­ËøiJÍnP´J‚@¦TkˆÔŒŠ‰ÐbŠóC¼¤Ž¦U(Ó,YµÊ˜5™RÃ` «dºŠQ|i}žß¹‚®& 7È)U ’&H"½5;çøD`ˆUµÀ, †*HBóQ‡¡Z`k3H;™EY ¦§äbJ5E.J¼\¦b Âx ÈDÎ’|¦£sFb2¡ž-0®õ“ò$ÇQl£B=AÎuô<Ãu]ÆÖ”ô¸ÄRçHc 38ÄL â+W`Ñì¡96Ƭʱ\pqqŽʇ‡)c×fUrxêÙè ­L™”ŠBÇ©%,ûM¦Ã˜##!ŸØ¼Ô@)"¼³)’ïpPI¨6¶‘1i|aVP”Ãþò#äºNgN&:ñ8‰sZóyšyCò$%i̳ŽÉòŒ§î<«r…9po|À²9‡$-ú}v>aõR•¹í«<úôc‚¡Ê•ÍMõvQ´€íæUž>õâ)6MëŒÎÎpg9[kÐÝîí‡4œ sþNA/8A1 *¹Œ¾gpá…+l/ŽyôËOxû’ÃÒK/ð«ÇžÄ·™Sn¾ýo@ðÿ1 ¯Üä…—·9|t›Î]ª}…WÚ2){Ñ1#µÍâÊË´\—ÿÁWXº$a½~>Ìp7Z\Éc¦ïž¢,t…Íó*¡³gîs#1x~¼ÄÎâß”‡¼¯Ñx2ã»+ëKðwŸòdÿˆç7®2¿z•£Á)ïçl.ÞÙ˜ÛcŸ­–ÍÒ—Û·wI,™ë+óLŠb$3Jm¤,År3Ì$ IK"mƒ‹NHµ9á~_Á˜´3Ö:&fcžÇçs³pRáA,±~Áe{£ÃÝ÷™Ìd®±Éùî˜÷¾qŸ¥+‚›/½€=ÏÁ䘃;ÿ qÜæÊŸú9¢ GLž¾ËÉwœd:ÿñO/óúB‡ÿì—ÿÿÃW~—¿ø¿úù7¯®óÿî×ø‡ñsþÏQ_•éyHYN55Îõytúˆf¶ÉJµÍØ8gÿÎkí:kom3=ìóädIètÜ6Çúi¬Ñ–šô³™VÐtl*¡Ãl&1k”,æ!½îÖl´8øÖ>c°´º‰áÎCR•|zU G‰°ºçŽUÕ©-JhsþÔ£¶°N«épþÉSfŽÌÚòßxï)'û!o¾=OcmóSžì>ʼnŒõŒ²ßa:ÜÇ‘#Twƒs)gÜ‹¸±¸…s<:¦£láM2öÓÚòŠTáHíÑ8ŽAkkuâò¦ZCQØø}(U..¿AœœÓô ¡ÒÀ©Ì#ù=2CaÙn 'jB#¨fÔ=«Ý&-Æì¢êk\\¼ŠÝÈøä{ß&ii\¹°É`0âÑaŸ/¼|…dtÎÝOîñÒJ›ÐºÌ0ù9”e.T\%bÿ\bîRFZfLžž€¦´T게–̈åMµ Œ8}VÚ2Bn2={Lîå´š«”ÂåTN‘»{"Å¿†eVˆ’ÉNŸ‰iÑ^]D–b†½.+ò(ŽÆê\‹¢?dâIhóUTU%Ÿ!šMÂ(a(©ØŽ@• ØÏIR™dCAu˜)h•¸æ!¦Ü¡í4èåg“>ªá’É èF57 ¢>^PH:«M÷YK~¶e'ý+­î%%íŠÆ½ãþhBGo8)ú„ØKQ‘h› b“å>Ö4!S] dfAb"”i\"Š”’&ªæc%‘l£kCòTƒL£¬”ᄼ’ÏUˆ-wà±ÙLq”g›ƒBQÐõgÞ+Ó´Ð ý3þÕ ¬ßüh‡Ûwö j!’æ°.W¡€ÝIŠ^L)Ky^G sÒ0!oÈÏîÌ?CÓ$„ì"'%‘%#RiŒ«>ªdÒÂ!¢`) …‚*›|n³ÂÎÉÓ<@WQeÜщ£}"»©v0Ã÷TÝŪfLóŒ©gÑ6THK’) )Ð}ð™Y»ô*³"ÅH2Ja ª.”%Z"™5‘QÎ b-Á2y¢#!” ƒB.Uˆ@–1•‚BHEJfªhaΧ•³ýÚ—ˆ0rˆRfD%häq®‚ªFä^F™êÔŒœZ]b(rF쩤“,H)Ë„¶Þ ÎførŠp,NÞÿÞ˜ÜWð§i£Î·h-ºèaÂô¼G\³pÕ9Œâ¸ÏD6q‘A”¨N‚’Ï‘ ȤBTÈåÁ—Ö¼÷蜩ªƒ#¼*©ˆYA/nœ@š«P$¤rBnؘFdv—&‰6A’†øÝ**:Æ‚ÌdA(áæBÑ©V)êçGSäc »¡buªÈeÉxv‚9q)4—B›¡ÏTz~}q‘mNò€ƒqŠSVè¬Hd(Œ÷äTìTÉ¥ Z:£´ç 5tMåøäc³¾èrª4ÐÏrÖšS[#J²ÉIRPöºÌrmñ%̸‹¦ö…*ãz›Š>Cž*ôì ¥O«Œˆe…¾’QvT[Æ’(íŒÜ‹ÐsƒD‰¼15''«ìEW^ja%Ç|ûÉ)Ô×XÛP¸µóÖ´M¢p™ž‘à81 †DpFÍh5ÒòÉœ¡Ûuª„=-©£‡w8·2žÿâ"69úôˆÀ¹O½²Ìå&·÷ ’n•‹?.xºwHÿqÀâ›×¸ÖÞ&=þ*÷Ç,¬]Å¾ÒæqRPž–Œ¾÷k4·7yõ ™§'O¹÷«ÿëëÌݼÁ§}A™ŸÑñHYÆ0lªJÀ­b@=¬à˜M†£ˆk/8Þ~ÄûÝ#æ¾üyæCíP滇ßáT?ç>÷gˆ«¾ïpeßÇÆ!\QÙ–—)¨äzk=Bê'Ì2ƒ§Ggl²uåUžä6·ßýKZˆ~a‰é£’ÙQýå„^P¡4ØpFLe~2¤I{Xº‚F5dzâ‹ úÒTb?b»±Án½Ám.¾sõz…þ[õÇ\ùòO'¾úëT¶J^}çK<ühýð>o Þ’’*ü•®Ò‡ßøè]–%…š²Ä±ï±]µ±js|²;æâü* ›úßã½Ù˜ë¯ÿ?±¹Éo~ë«üÞã{ü‡õߦüÚoPTyîrèø¯žÑYV˜Ÿ6Ø÷gDñ1ª^²¶¶Já-s¯? Œ÷Éãª^¥±²ÎxrÊ™7aµ¥` ›P*IK¡ö‰C‰HÙ¤µX¢tÏxz’ašuÚ6 Ûô "ÿ»¼õö*W¿ÄÞÞ)ò.‹5Ö6¯pÔÛåÁÑC®jWX^›£o†$eLe ñÑ`Â4qcižvÍáÞñ}ÒS…W_äÛ£CÆé=~vþ'9¾ýßâÊs¯±ñöEþàŸüÂÉ„×ÿÔۄLJôº»hÏo£¤ gŸ‘$ Ê‹*×"•£ƒÇZA«%áV5¼~Š7ŒXè¬bš{ãsÎ {Ž•†Á¨q¢-¶lÂ( 8@N=*ëM:r“HMÙëwù¬®¯P¯-÷&„ÓΆBx¶ÃùÞ„Å­·˜ÌF=}À;Ï½Š­·ùï}‡z£d¥ÒäÀ ÙªT©øÇ;§Dë:²ªÐœxyÂx<¥eÖYX^æøpʤ{LµÑ¡S«ÓÍ#úöa Ë*ñ¨Díh„º‹´ûk)åÂÒe“ïx„™$ø•£t™¹ÂÝæÓÉ 3a²ÖZ`8Û#8 ©Ï[$Žƒu<…ºŒ#¹ôO0z8‹5¬X0ë‘ë r袛1–‰#¦†OKj£˜%h9ùhÆáxJ½Úa­¡á SºÁ#¸íEÆM¡]1Ÿá $é_bx/ùÑ< hØ2wžôЭUY06Ê^‚‡èJ…Úb Y‘ †]¢ÜÀÌ@o|ÚÄg§ÈV€]¯Â(#KdJC¤ˆ ²)"i¡ÕBdÝ ñCÜYN☹DöSšÍ‚e£DBBòà¢?2ÔuåÙ”nŸŒùýïîàir(Ñq:$U™¬×g¤ Q­s–‚<ÈQU¿”ÉÍ‚ )In£Ê.^9Â6 L¡2§`õP¥NÕ¢<†g)ZEæ™AnDüØF“¯j¤Z„èù®A™kÈa‰êèDrzJZ@2VÐM«Òóô\¥-BJRUΑå_ï Ÿ|üCÖöóH(ŠŒ¬å¤¢Ä*¬c¤3feAiY(…L‡È¦L)X%ÈFA^(¾„"JTC¦È#¤LÍDJ2rYâÞw~éwÞ)âßÿ%PTäYFb©èEBPÈ Øò3—~ZÈ4ʆå2~2Í%eDeÊâŠAxZ$!Ng‘HˆºSnÿÊÃ/ýÒ/ñK¿ôK]y•´?FWkÌÖ«AÓ€~îÓõ\6—çÈËâ³!™Ü@3²X!£Iní {5±ˆ§å”qŸ,‹1ÆÞ˜ÿÛO]áëëëëëëª*Ë’¤PÐMçÎàø±Ê†z^–%YžÇïSdUÇø—ȱÿi*Bî=Ø!ÏsdYú,{Ðq\ÜJÛvÐgF~Y’)‹Œ,šüÿížÿ¯¿õ˜œšéqr~Ž®t¨×%ôT'w=ÎÇË›QoÕI*y˜3çt„…^Kˆóœþ GXº®£ä9ú§÷3-rù§þ"e\¢XªR¢¥r¥‰S±¼Y‰ÐŒ‚$QˆÆ3LGCH…Sd) N¦£¨‘J9è:Pð+ÿÙÿ StŒYŽ‚È`–XŽL™€ˆÀ l«Àp23!L$ŒÄÆ 3 ­¤Rx= Í ÄÁ G6Àþ£—Vñ ¼úiMP9È8’Îh\˜§S_¤æìžÜ£j,cÑå ºd ¥6DpM2OÐòFµ²?"><Äsù¿üÁ˜1žÈ¨e1!cw‘¦+(Ë)þqJ_Ψ¡£¸:‚ ‹³>±XÆÌ=ÆâÙçojsÄZÀØ;ÁJ\”VË ú ÊQŸ@‹©é5Pr‚ˆsARó¨Å‚ !'ˆ Ã€KI¨)^Øe ç´ôs9íÂfaÞÁ34´ƒšS¡2¯0Â`:ƪæTæ âY%±¹0Š7§<ª6à(ãBV¡s1çnÏã`?!*%u4‡j0 È©·zhb‹ý®Î™wB¤Ž™ÛØâ˾‹+}ÂA>GW,#'i4-û M#D‹LýjcFªÓkÕEÌæ"“´@=ïç#$÷m^»zë˜},ƒ¬¸B¾¼HÍ;áè×þ1Ý—æ—¾Àåž½³óø ž†\~ç§yÐŽ8J¿ËÍý ï´.ð¸)ó¬A½ptüOXÂ`åúÏð¡!ðï½Ç…`вÖdÒWìú4/|:®qúµY[Iq_Ø$7xòðœÉù}n\h“Íë¨iŠVðtYIð”thà¬IÔ’dNAcŽþWòqrÀÿþßÿE¶5øOÿ{td™W^¹ÆüþÇ”~ÌÏü;WØ9ñxÿ—{üÙŸ\bååùßý­¿‰rÄÿá?þ_ó{czûߦ!û|õûcþòŸ‹¿üê |åä]þÝÿÍÿ‰—~á?â¿øù/ÒßßåïO¿Šrzƒ ½Š¯Üe­V'‘/ðßÿö¤Í˜µù5äSŸù4¯ž ú“EæŸ[eÿ@æ<¹…<•Yp6)1OÐzx»“2†è ]Š™Ec”ŠMÅm %žîQŠ‚Ös:µ¼-¨ÕnM£¥¼Â4>ãÎÙ]:‹—¹¹yƒG“ñ“Y}ùó¬.]¤ìq´€¡Ís«(§ë[“³>~Yblµ©ïHÜ=Ý'ÑÎù /ý÷ÏÏø[¿û+¼~qåK/³Û=EŒJ6¶[ß¹Ïí³>W6·¹|q“OÞ»ÏépåWÚTÓ*wßïR¶MVšµ¬älwÊ!xþªËœiòøÑOÏ#–&sU•ÑAAlN . Œãq¬ƒî¡Ô$I‡óes€G€èX™ÎÙ,dY“Xz®Ã®1ù(¥âH5‰·²Üè0·ü~ Kø¼òÆë|óî'ÞðÓÛ7š%ì‚ÍAˆŒk.yõ|Œeºœts’p@kÉÂm-²w~^@½ÙAÇbp:Æ­‡è•EzÇg¨NÌÒ¥—HR›îÉCÌteƒ0 ±ó¶MŽÅ(öèû#–í6bzB7vqš5ã  ¦ih¥ ›iˆ8¦¦ehNÉÉÃQKÐ;-ô¤@ £Ú/©Ñ±r*9F×ñhŽsB¥B³£ãy1Á¨š f­ Ä€n\⢦a©3~ñí7©U$TUýáVaùÏÙ(üÄSUT4]g–$üÊíÇ<~4yÆÞZT¨Y‹¨rŸìÌGÈ2F»AˆD‚=KPÌ)Tç˜E1"…œœz³Žßïæ RÍ@­øÝ) S3MƶS•ºÒårM üÀ6&ÉÏÆƒš¦ý€¯!åYW‰óqÀ_ÿƒIfŠ^¡®[ búÝ>qV«BKi&çC L4ƵžHÇ^Ž– òE¨y^ì‘iÆ9®ë2ÓÜüYÄL¬ o ¸tÜ1I¨`Y,Ý#C¿ÓBñM-d&\bã@ Ïræš‚,ˆ‰»9¸µÚŒ\‡<ѼñùnŒ,ÃÏbÿŒB!¯ÚÈYJ: ‘tÈU¹Q#®ác¤m¦Ã±”ãÊæ9g*¢@'a”7©!KäY€É³±eLA^¤S’¢ AL—0ëá1®0Qm™2¨y ¥6fB>™A­ÀqL ßaö…‘´IÍ:áÐÇ‹GÔKX\¨2ˆÇôUpS«‘[m F:ì#´€i.p¤³ÙDŸo"÷º;ÌU:óì¦ÞhÌ[ <ª”ô®´ê8†Ãñá´-ªqAPL¨û2##gš­R5N¨Ö%&ÃK<ìßBRL^YZƬ”<ºÓe:î±us¡×˜~:$UމÛ* ¢‰Ü2ÊG$¹šÅœ®0ì† W€Påî!l˜‚ºQð0{Dݼ iέ.,›Ì5ê̺]'Sªá<›or?cx*Suc²ŠEj[¤{ð¦cV7oBœ1jÈÔcO?}„¾’s͹Œ–w(ä=úOŸ°ÜXÀYžã¬›¡Uë<·jóÝß¿Ën1æ¿ügPcþþoÿ?yþÚ:W¿ðyÐ}Èèãorí¥-Q¡çµÑV'Ô³áiB‘ä¨ Ií`Ìtl­ÏžRr)¶Y¾hó›Ÿô™,h¼µ°H¶ëq(EœïñÜÅËM>y÷„»C—úJ çòˆÙaë¶Ã÷¥#¾fz\w–x+3xpë€(Ÿc—Üw?"vç)žß¤y÷÷º*Ïo`=Ž8ŒyíÏ^&ÃâûwîaD>sËP•$˜bÌú Ð)­ ,ùO‚{sÕÜd÷øNÖ;¼Ø¹Äå‡{xÛåÖ ön}@uðæç.²_ªÜùÞ}^\ºÈÂs ¿ü7¿É–zÿà¿È'‡c~çŸü·üøçžG{þsüîßù~îå#õ"ï“E~þ§çY­ðß}çã´Í/þµ¿Ä;ë[üÿõoñë¿ù]þƒ¿ôçø±‹›|åþt?ÂÊ<~?e°?dí¥*7ä*_ï!‡þS.ËWißx‘ƒýCoÇØ+3²a€¥eXª×¤àÌ;EªÏh7·±t…Ó=˜æl·ª‚ÉYÂé0#ªÈ4ç*ܼöOîñÞí.¯á-®µ8gck‰î©RH+¨°âÞZO¢;Ü»sÆÅW_gsÉâ㯿KOªs£Õb·ûNÛäúâç8|rÃÞ€ÖÚUÈÎÕ·hRÊ:§§±ë&‹µ gr„õ±…ƒo¨œa[—Þ$-d>8ø-҉Šu´¹ 'ÓúéÇš£™ÏSu û€§»8¥ÊÍ_f–Ø?»Kde´Ú×({9^6¡¬™¬jUŒ@ÆëöÕ µê<½ãÇtã_zë¨ þÞ»_ei¥ÎKóKŒ]_¨ÄO»D’Og¡ERjì%Sv3‰™ÊÍv“ÓјòÌc³^Ç^ªro°óô¯oo²¹t™û;§ôzOXj;nC.I’‰¥S£J* cæôy¢$!bJÓ&M}”,Í%s$NOf Mè4 ²Äaä%TšX6ùÑáÖp;9ƒ³«ˆ(5‹ÚŠÁÄ;cö¤ «Êl/YøYÁÿ°ÿ –%AÏóÀ'½«,_§Ž?çž{®7Ý·}OwŸ0 ¼#!¢  €»+.E­áÆnˆâŠ» «•(‚ËI€@€ƒñƒ™ééÓ¾ûöõ÷xÊ»¬ônÜž0¨ýQ‘Y‘Y‘‘QÞx¿÷{Þ©x)šõªA›Œ½.~, IG'CÎÍ—Q>&9Øžÿÿ)„žÓT§>©˜Ó›t• îá]¯é"~*®DÃУçb® Æ¡ê¢ ±#Š YO"6Uô²Ó)±+£©9½¢DÃS”犚˜>iŠ"ŠòH솉iZšñhCR’ˆ³ŒßûúÛœô\JÅŒº:CDNà:VŒ)›¤B ä1i*‹ .’¤¢*"®g£JJIà %1E´” ŒFDÉ”v,P«™ˆ‰©„/L0‹8N$›PrHý„D«`h%ÊjÊ8¸1¦¤RVfP47á EJU K”hÇ 1¢Ÿ T›ØC¦JÈ͵HùÜuR?F7"Y£˜hhZŠÅ$¢Š)礹@âùÈ"5‘Ä\òS“\“P„„0Ë@ÊbÈR™Û¯Á:ûôO ‰ ~ Û*Jì‘:R4|ʆ †Dúä¡J$j M¡ £5Â0Ŭ $H¸ƒB-Ç“TâQÀé†Ü‡çf¡“a‡ ÎlFP(0›@oÚÃõª”êULá€I¨@£NUöÈûR[ƒ¬O$@1›Å‰|ç¦h#ÉËô”)ã±GC²É »‘`F¡Ð mLËU2!#¦è±J¦IEIW0Ã"’àÄ!z¢¤ SI ªÚÄaFæ„$–‡*¨x~Фè$bˆeÈÕ˜NF8F-èR²bF~ƒ@É1B‘ª!Ý C$ê Wƒ`ÐA 0M‘8fºïcÏɬ¬[ìRÄþ µ‚müâ”ÂìU¤cfõ˜ÎÙ'wŽĈ«—fX ¼ßué—Rfå)d‚nÒ ÛˆýYÎ×CÆÕ»³À\ÚâöZƒÉY–Ý1KizgQ³NÉ‘¡”%cf&)Ž3,„\¨xhÉ,Ƴ¦’9í°®ŸC-ÊÜ©ÌÕŽá$¢>3K.ltNY(7 šE–æëtŽ}’V‹bAÁA¤Z i,®3Ê&[{L=X/V™7DUE­ÙŒ[òRÓ\&Lz»GôóKÏÚ×V8~PâÆÑkL.B饟a­§rïµW)ÌŽQ/=ÅÑЦºÿ6iY'Òרă¡O7öçHÙCï>Ë«#Ú£ ß¹ðôãóÇ>·vp,xv–O^ÃûÒwZCD»Hñ¼ÄúµMTÌt“ð´IÚ¸@X7ØéŸ0»ý.×.T°/ÝàAâ1ýþ—)45ìÊ9´“mбIwu†·¶·…žÉ™–B!%ú^Èöi‡ÚRÊúÅÇŽií·¨—ÌÅa5xœd´É¾pJ£¼Ž „‡R]enÕæêu÷¿çòêá!Ÿ½0ÇŠíñÚ©ÎâÓuÊÎ>wljÕó<µnóþá&ïÜÜãêcë\›1x¸}Àû[ê²Àg.¬sí©uîß>äwþ¯ÿˆåç?ÉoŸ»ÈigüGÿõÅç|m™sÍÌs_y8Ïéi£×bñ‰5Ê”ùÆ?}o%âÚ³U¯À`Hqv–ð„ýïï²~¶Áò3³loè…UÉF*X‘ˆî¶ps•jþhÇ•E¤®ÌÑÄG)ìðÜÚE–f×yûÍcF‡s*<~i–RAàí­MÆ“ˆ§Î=O¹óÝ;·™¯ã…»ÎÛ_¹Oïô!ÊJƒ¯aÉ!‹MošððáO_<‹–«|çÎëd¡À§?ö ZÝ6¯|û&kËe.ž;ÏávŠ^È(K wï!„MÎÏ/]ú‰ÄცyŸùçGzhrÔ9¢2“Q¯ÌÐÞ°ßõX[©±PnÒmóÞƒ‡¬Ø‹¼øÒ FÛ]Þh¿‰uö …œÑà -læ×Ä~J4 1›u‚<ådô€zZ£R¼H/»Ç(Q¸\Ó± Unß½ƒç¦\]_!%Áí¶Y(—Ø`¼¿‡PSYX¸Ìt0ezçóO<†:Ÿ³wç€r&£5™ºÇ(”]…¶”ç>M¡„*Ž Ô2R/`ú¬(% úÓ>aQÕ¬KÈ5‹þ$ÏEŽFÈV‘êTc¬ ‘å"³J‰Íp@؂兑”âÄÄeEÏcÍP0âgšƒêSUdü( •D¤À -§˜Ó,©?¢EÂsÕÍAé $ŠŠU(p¢ÄãrO¤ªÍaÚ)ƒx„ª4RÈt‰¶/’H·û}®4Ê ¡…ÿõ¿ÖOøa"+ËY0eNe× É]RÅÄP30M?#Æ'–T,UÂO"Ä4GSôb‘ÄO™N]ÌDÇX+J*éñH”)«‘)‘Mr$Ëã²!bJÉ£Jœ° ?à^™¦…i˜¨šŽ¢È„IÆÿøÕû´GC*²ŒZhäBèáraÓÌÐ"×Iu =EÍp]…4UQô>L2Ôr™‘›`êrZ ·tŒÉ„¶®d*KJLäÆD¶„ÄH¡Nˆè˜ (I@?—)vî0°ÁJœ!‚^F#'}¢P¡YŠ\•¾’b“‹6Š fß%ð<Ôª†'ΠŸ¾û¡))ñQQ!–È«¦ e¡/’e ²¡¢ˆqª ‚ûhsP´ NAË2%Ce4Q ‰|529ãÞ÷¾ùH`{þãç(ŠFâ˜øbF…˜ª¥’$ÆA€ƒBœ¥¨¢Œ¤f¸žHÁòHH„"Q!´nþ0XvJQH ”SÏæÈ™*‘ˆÓÕɬŒÕóshžÇɃYm…€ZÐÇ4.SNùˆA¯LU‘—|²@$ð4LÕÃöR"À5`&V Œ€–'`{S å& Ù°‡— hBŒkVÐ裋B,á›m¦'9º¢ØŠn`x*a’=’ÀLÕF)C÷¡â­¨ M$)—|úAHS±3t‚Ä9Č̚A‚L‚8â¨#ŠÆ"¥HBLuÆÖ>~×#š@uQ`YÑÙÊD“„3v—HŠ9µ5Èd]™©¡³ÙoQMæÖ×=䑋ܬä!L&XUD›]¹Ägõ¬ÊÄÔn0b‡¥³ 8ʽ½û­€Æü2in°èœ²Ù{@jq) öÊ Aw„7`ÌYdˆÚMI—”ÈG‰TRÉÃLTŽòœ,©I5rÅÁ›x¤–‚iiБÀH㜴¥P)å¨óþhLwßA*)¯ÌÃ’”P©(UT¼ÌfÚ0 F·eвà' JªÚö=6ƒ1ç(²ôâþW¼,Q >8‡%5g7AGALR´eÝKI§à©`[ ¸`Ä)®$I²¢‘¹–áZ%B!£ŒKèäȤ%1ɨi1W­UÌ?W‚$¢¨*º®c¦i¢éŠ¢Ð›øüþhíöÑ *j¥†”@/ì†cô¼ŠYQ‰<ÉŒˆÄ)ѱuÇËÐõ¤¬œa_¦f¦¤¢B¤FH}A%À E‹!M$5ÂI3Œ‚@6ÊRKQ>!”MêUEr8q{„©NQV¨5牺#ÚAH¶˜·DRCá„1òÀCÈ ê"’+1ÈB5E¡žµÛ?t°V×H ƒ,RÐEÀL !R³Œ$ $­ “KñÈCÈd´†Š’ʱ‡!JLM–Ñ}WÌ‹DU¸ó½¯@réyâ\CHS´De,€eE…iA#Ì&d‰LBB®H¨ˆH™‚ MÉ,JI¡¬"{¾7ÅÖ5ößý!É}¨,ã¥Äò,ª–£# ¦‘ŒY™œãÕ9 ÅŒ8>v1ç,J’HœÅøŠFÜj#š1Öj™¬1 \4½†çLÊSŒ´§t½€Øs©™eÒ¢ ݱêá*š.à d2½O92‘ÊUü4fx4AA)‰˜ò ¢¨1ÌNqƒ B­@%Õ Ò”4ÖѬ>i¤SdÚ/ÎÌ-•PR— C²q"Ñ–ÀU° i I“bažš^b89d*Å$Æ,sºG¢Öp\Û¡Ècv´½X¡ž—¡Û¥§û–' çêPžŸåÍ{Ç´}Ÿ+ç8ÙïÆlhKQ’<ƒØ8$ì”= çL‡ÍÓ³ŽÊz¹Ï[™ÈnßäÇ­cô¦ÈpÐÍSDÕ ‰›øR;ÌQc—ͰÁ•Â<®÷:Ý¡Ë\eY)³_8@¨Oš Gn—~î±V( ³„‰ˆUír<c†Mʳ2í“mÔXÇš•É UO¡÷þ!3WÊÎt÷,MÀ=€bQ_¢2AÑFhµ8¹µÉù+Uæ®ÿ2/¿ÚC‘ßá¥"‰û8®—1ÛÛE\é³mÕ¨œ\¢jû ‡ß¦¢\B«5H·¹‡:gsq Qšëp±¨‘ž¦|ëP±D>q^!x½Ä—÷7yæ9‹‹y…ÍC7’« KÅúTÇX—¹*¨´¿~ÂÍÂ,«µ%<úŒÞ½Ã§çÎâ^zÉÝ»ô¢›´Ï\¢¨­S÷G{Ì,Ð’æ7޹ü1lò½/u1œ'ÈQkË«K„Ãïßßa¹Údaî"[â“'»TVª¬Ï<ǃ;o› ×k×iF^‡ª|‰óó K'Ó%6â1 åÎõ $Í¡–#îßþc¼@¡¸öÉÔçÌ9ØÚñêí#þþo?Ï¥+ñßýá¿åèøU~îlj§/®Ó´øÇÿøo!ÉÏðw?ñ,K³9òí—y¸Ý@Ÿáék‡|üñY¾·ŸÿòÛÊ63WÏÐh)Üm-êXšÌ­×;ÌÖB>ó©³¼~ Ò{«ÍYCE^1È=™Ü1 £°ˆ!º¨…€ÖXAtSÈ[,ž·1óK<Øi1ôpíì ®]m £sÔšÐ9è°¸~ž'³yåõM†ŽÌ>u‰ƒžÇæï±|þ¶ÈÑà€`¬Ó´zûwÈXãÌ™‹tó¶ÚcŠ'ÅZD}u?ºL{kÇìS(iha•S/bÉ´¨ÌØ{pÌýÉ+Õ®®=‹+ïóï¾K>ÓàÙóu²=ãl„¹PE•F÷vÑö¼ÍÁÁC„ÜæÒê9â8¡Ý?f®jc‰Un»@Äõú<}- ½}ŠØè‰ˆS› ¨fX¦¤I6öØ´r.=³†»ÈîtÄåKÏ{;,5Ur­Hkš³ )äŒqå‘f"ÄE%ÅÖu\wB IL•ªL¢˜ôöÛ˜…9ÒJF4‘‹HpÑb }v©Ÿsâœ0S«£}'á´¢‹PPÊhj€D$7b¹*3Ô}b¿ŽR¢/T’USÀMº½¦“$"ûG-Öç¨ÊDÖLjÈó0áQrž³¢+$FÊDs¡_GP|U$EDs]R«D¦ËعÀDŠð‡=J¹J2³B¢OPº>ÁXDªç¤V ©±`ŬÛ1$>,rVdC×1 Ó²0tMÓøÿ¯oÞÄÙšbÔ ½€(kxÞ1„ú#Æ•Q@ÎE¤tD_Ì©e0‡ FR¦ãg)zš’GrMÆÔRÂ$G4M,7ÀËǨn™TÉ)!áK $&e?ãØ ÑkÐP,&î?©R,h”|‰;`¬«(ý„ºU"75"ÚAŒ)èu› È)»1C)¥iV!õ™¤º¦ D:™àArw㇭2ë‘Ä!Š®‚¯!Ú"R.9$&†‘)9a“¥ Yª"É ‡¾’ f:n « Y‚Cš“Ê"²(£D9·_ÿ@`-<óc¨‰‹˜hDX©‡¦ªˆ9÷ˆR“tê)Š™ L%Ä,!USâØ@QˆP*, (>c7@šªZŸÔ.a6zà¨]HR‚hS†‚ÒcêÚxjŽzh©Ì¸W"YN˜ó¡.-2ÈNƒce™Úü ^σ8&¬ªdãVn"-/1ì3ؘ²xMF­ç´ßÉ©«Šë%ºGK„þ k6véûaŠ2iã TäFFcæêî1;n_6¸ Õ©š w!f¡2bbÈޝsdfÌè"Ê$æxoLA)4æY¬Ë8ƒC^ßmsãÉ'™­T9=ºÃñ{'ôÚŸþÜ:•+îÞ’ï:dyJuEÁ¶¦H–…œ”í!.¤Ì—g«&©`öBúÑf²ÀõOý<§Ão¿ö¯¨ŸåÅ+?M÷Ý·yåáÎýÂ'xr¦Â÷ÿbŠ«‹ œ,„üu KuvƒñÉ)Ï%s$×f9*9<øîßNV/®óLy™½·n34_Çi¬’ûgùܹïlò`óÏ^P™ŒW©/ÙÜXi%múºB¢Ñâ2ÃÑ]òs1s泜Þl½ÍÃÀ讉Õn›™su O'˜tØ0ÚäN‰óÊ {ûÞ~˜qõ‰GyÅ^4D[jPˆ—ðßÅ›ŸPk~ÑÛãà×X¸²J´|†Þ=,E¤hflY¡ã1-Ò¸êñÚ{Gc“_û™g¹yzÀ?øGÎßÿσÏ>®ò×ÿÛß!ŠüÃßú;|ÿå›üé·¾Ê'{’|¾FG€_8»Joû!ÿý¿}‡Oüì‹üÝ'žáÿóù;üÁ¯óøoþ6gâ6ÿú•ÛTŸx‰Ÿyq a´ÁŸ¿vŸý¼Áçæêt»ï2ºØàsûý/mð‡oÝcå±UÎÜÞi1_Ÿ¡ÑP8iMÐÅÆyŸþhÂÒÒ5JbÊfû]¦j‘gWê„R•ûwÈ:- ³ ¬½0ÇIŠwäSTʈZ™ÙõŒÞmg:dq¡€$Käƒ ¾¡°¸tÁLyïí[¨XÌ/×™în‘7tÄâ³lÜ"$]æ4â0åÁf g œoÌóV{ƒƒ·Nyúú/˜ÞnáHsزBz¼ËÀi.¯QÐDZÝ”d<âD›°liÔãyüÈá$ŠPÙ“ARP$Ɉ ‰èu&ĸ\¬=Æ Iémmј×Õ"Î@C‘E¤`„+™È3Õèžî2ICVk×°JuNÄ} ýæD$Z7‘‰Þ=½b—Ë(®‚!ØÈF(¦F=’M èJDÑUhÛ1Ž1aÁר®>IwÒ¥÷Ú[\>ûÍÅ wۻęĂVbX¢&U‚Á”H€rœÓLlÆvF˜éÖˆsóMæª%öîÙs†¬/X,Ï]d8ôy°ý:Íå&+Ëgtºv[”gXºBÇL¥1Ó‘¨RâÌ" =‚AHc&¦ƒ]ÑÕŠÓÇ‹0'ø‰L9Ì|‚¨$„‰Ïtƒâü<ÑI—±;Eñc´3¶Æ¸ëq:ñ©[ ²!#ˬÔg(E¤Šè 蚌‡†It…­–ÃL¥ˆmª?t²òÿhVøœ>º%§¬ÀŒªâ„R_A/¥ˆÈXÌÐŀܪ È JkD"D07ƒžÉÈA@ÈšFj–˜S}ÎÛ.U=ûð!Y\=b^™˜¦‰a>*v~Ørø³WqsÛôˆ„™©0êô‰•R.#h%ÐBÒ$ÀWrj‘ RÂ(µ1€$u©*9©h"J ¢/)9eD¤ æÄP °Ô1¶p­’d!M!MRô œÔC•#Ò¤„aŠÌJ‡i‡9dP€¹ÅeʉƒäÈ’ÁÔ™ ”käe°\‹¢/±•âÛpÖ[ 2rІK;®°··ÅS+ujÍUnºìtwY×-ÎT›ì}Zî6ËgÞïìG”Ì€çdî&%ö*ÏH1sJŸ¯ÊÚÓyæ¬YבƒššFwVFP(œÞÆñö)]{-™ckºE)ôh -ÈtœøNðôå§)t^»yÀRQÆ#*…9ŠÄÜÜx M*±té ìÒ<Ò~[÷0Ï—˜Y™Eò:>S!Äž/1cjô£.ø³%ƒÖî÷¸¼²À³?õ˼û^‹öá¿æç?y óÁÿã­=žÿÙåŒÊ·§;lªOñSq…#åeîµK<¶r‰(³Õý2Õr•Uá%NõŒš½ÇíÍ)v§IaÉæ#‹Eä{!ߟN•|~êFí°Á¿»²Úô9›98N€ØhP|Â¥!Lq¥YíkùÍï|•«ê:/>ÉWüC¦ÎâfMä(BÊ6ðCS™¥•ö[ •¼ÄÁ­AQyªÌXo>™|Ž£E´¹:_g/óþk>+ZUCÒD­³ßÁ“z,×fд ÷€gò&õe“×wö %•ùçÈwÞ nÍòÌG‰Ïßý"›÷¾Ä/¿pkéùöÆ6õæ”b4á_|í.?ýóŸáo>v•ÿýïÿ _ÿê÷ø»ï¿àú…üé÷¿ˆ³ýU Oñ‰gžåê¢ÈïýÓ?⻿ùÂS˜×lz£ ^ùƘ?~mƒ»4Cqá›opJ©Â`0¤¿ßãü¼…¶fÓZœìLÈ‚MšÏ¬"j6Ý»‡ÄVˆ¼8‹9®9:}DZóìÅBÞääžÈÔj#ë5VÖ5,!`x:Á—Æx’ÆÂê%üø”Î{põËHªÅÛ÷6©h}–ÊóHJÀ@,¡y2­Áz W/<Çw¶Þ õî>úñÏR7U¾þ•W¨6çxâÙ lîµÆSfœ"“x—5buæ38ñ{7)çP¨Hzݯ1ؤ{ª2³P`¹¤¡E=vĈhsaD§žPº‘B»h±¤LwOhs${Œ4[âLq†½î!½c'Ξg Lp—pÂt?¾†¸:ä›môµ^§j*¨©ËHŠI*ÈjNi>Åœ1™î» §Õbˆ)OhZ 0{…ÎxhëJ+7¸6\¢íût£Û|t}™……sܽyŒ||‚ñÜÖ#·õ&“% W¿Âh»Ç‹SêOŸg³’óàóߥ¯pöÓg)nŠ<øÆ}nX¾>Ϫ¼Œß¢, ÜÜ#¦üä§Ïñõ‘B6s³£1_ß¶(/¬sƒ£‡Ìž-S’(Era›¯öºˆñ[j2Ý|@&&HÒǾŒ!Ũ‚B*§D–Ç›û]T3ãêÚe¼qÂÞaŒ‘ÛD1ÿ3Ñ)÷^ûË+kœù‰çþko"Þßceö›¶M{ÚáÓê:+k¯t7Hë|ä©5†“mÞøÖ>{e¿8Ç÷•ïðÚw¾Çÿý7ÿwìäðgð%–M éÜ5j CNxC:î.ZýŸ>÷“·ù÷_ü"ÅçžæoæY¾ð•wøÚžÁÿæ¿ú²÷þ€ôê.¿ù‘OòñkO°ñîáåpùùkÜùB‹ò_âÚO_åùµó¼ùµ¯Ä g¯_ŠS:½SäL É 4m‰†Tä¡Ó…VÆ«+P÷îìÐw'¬]¸ÈZi•íñ&Î~Âìjºlpê?DÔ®HçhI)ïpã‚ÅDÌQ¤ªK¶ßhÉðÔÓ z·:ìÇ\|öGéÞí²1ù6Ï}ô’ô¯¼ö ™ÍG>~Ž¿xçïntyæ™Oc.)¼÷Ö˜r“y»ÌØ¿C/̸\zŽÄÞ¦7™ât`â;Ì®ÌqQ_b·¿Ã¦:¢1!n€Q3ІÈ(q:‘¬„«K¸’ÄÑÎjæŠe:Sâ„ZÅc4âMêÔÎW‰½6ÓãCJ‹‹4+%îïo£%)ËõNaŽ^ë[Ê(fõwHP´hù'ÈeªÜ`ÜuÈMPÁSm&Í!%7A°‹¤YÑÎ=ò‚ɹë{ö޹:³@Z.Ðmí)u AÖ5ê’À0˜²ë8”r“‹¦JnËlíMðD»¹@£; Ç-xìúó Žö¶Þƒy™•¹&£aÄTN!j£¨ÄtJ;H÷æ#SCu4¡Ž”88£¥„Wíä2rTÂÌ=ÁÏ„Cq&Cœ-A&2Ø“G"¥svb3pzjÌ\ CÃg8Õ±QpÍsb"*™)âh)JGFsD]ÅÕ‡HQˆØpˆ±ÄBÝæ?žæ|?(~´(|$•²3k@ÝN(«9©3¥¤ËÌ–uJT&!ófFÓÎXÔjbŒ,f 9áçJþÅðH\YÄ•a22¾rÿ€Í iêb›!‚®Ó$<ô²Ù7‰Ä±i1J|æ &ž1ƒHNAï#çiA#K ¤ùþÕ¿È?ø_þÿÇ¿óøù—øÓßÿ#Þ½÷ Ö_ø)Î^|†ÑÆCúÝ"u†ÂR™—ž9ÃÑë[ü››s•€ŸüÉç°Ï¬ðå¯M;aéêc=<ád°ÁÕÇ>IU.p»³7²°âɉÙùEºo‹ôÃmgê(ÅŒéîˆÐ-+SWâÆ¼ŽhUÙ¾Y¼Mý|D]•8Ü«!i)=­M÷Xä#Ï?ÅÜÙ2þƒCBE¡6Øîî!L»,Í/P?™ýADgŸ¢ªR0sºÅN|Äà dmí bU¤óþ;8‘ÁÓ¯cG#v>âTD‹|F†Ê¢Þ 9œôF¨SPå„Ò¼‰™68÷ñe™Rž3ÍeÆN@­&3;[ Óž²wàQ+\‰9Ô2 ×`µ¤aÏ ÚHšFL )è’詨 å)i©ª"u]Ä3ÊdD·²¬GuÉ$š¸ÝSL½e›È‰"°é"†:fT¡l'„& ½©—¡Ø¥Ùy"FLG”P›–f3œ:ô¦9s^ ͈~nS‹’hˆ¤ªDÒˆ Ñ(çeHûtœ»Y ¡…§"#1A®”)Ë9¼»5¦VV¨~ýË:Kø ì.|@ƒÿ /þàFPÅ”ª-RÖ,B D °Tñƒ{þ¡c%Š"¢("IŠ"£ýåmAÓ$dÞ:ðê{CüqF^ôP¥2 ¾$À©C®÷‘…rž“š:’;déÌ)+'ÅHH(¸ÈrDó}4rÉkñ#tA Þ8¦`="›CR¨¢‘bØ1LR¶„3ññä5½„žŽ1$ˆ`±¤¡*Eº±B·(ø2F±D£h3RéíhR‰ÅJF.*õcâ,¤dºXî,Óú€Á4¦ìIè©L»ªP8ýaUÎÌòEE$Ê,AAP20-’8'ML Rdr!AÍ,2iŠ ¤¡†ˆ*%8‰„¦È(¢B…„q†" sï•8XŸx–,-QŽBòjB*©dž@¢Äd‘† g Ä(™Œ ¦d²Ž(z‚ª™~F(Š‘FF„L!LI4ƒÓ›ßÿð¥Üâ2²'‹>¨*ÕRR…ᮇ״h§©LN‘(3Ȧ¨JŠlV)ÄÐóFä™À’4g9LÖg ‰>SÇF² lMH ÇWÈ$™FäbàYŒ3ŠbBOR‰:>râa–«äb•XˆÉ</U)¡æ@/W =µB–£¹óEŸI¯C/Ê(ju„ @–ç4g ‹U†»C´\BišdcWž 9šé’gª^cà´HÔˆRÜ Nb4M£XV9é{Äq‡feuP"/†M‹´å±áL¸Z)³dœ%I§<ÈzMž™]¡fì “~HÅаÄúr _î ³ÄU‘²ï3›*K%DµO% èº9baÌBããÁ„ÃlȲ4ËbeŒo°×_!T äâ)ËÕ.Ð%rO£š{èÇpÚÓ¿–Д+T…m_ä¤å1¿j#D:}oƒ©ÈxR"·C毊œžÄCƒz¬#—:iÄd<ÇB½É©<Æ<ªNg0%H$Js95+DŠL|jEc*ê&Ï>ÍqëäóA.Ô8üâ[Ä•SÊ¿°@£½„ñÆ„“FͰËõžCÁ(À³³÷¶ÿà.«ÏϰüãÏ#îôa÷¬jé<¾ŸãÍØq;ÌlD¼°r™‘(òöÃ{¨Ð·uˆ‹ŒÇ#V”€RCgk³ÈL rÔæ½ñ€ÆÊY.-F CŸAû z´Coï}j¥U®ê'ÙÝ~‡ÍW¾ËJuêÇ.°5ìSl÷¸¶t•¯õßá òŸ=ñ,éômÞ»¿Ï åGiÖMþç?ù-©Ço?ÿæ«E^pç+o`Ë ¿õw~ «ÞäÛßø.¾1`~õyœA+«];ÛÜgžÏ<ÿ þ°wÀÙKgøÄ…ˆo|í}ä¹ù‘O?ηÿøËW¾±ô‰Ï‘é:_øÒ_Í”ø©Ë/ñÆ7o²Ý>àcןE™©±·yÈÎÉm–ÖÖX­-3íO™†c¢@gmÉD.¹}ó”~wŸÕ³sñB÷·vžúÌœ/R.W9ÞÝ'ÐM>ûÒŒ·îóæÝ >þ©%ì³ÜÝŸà)òÃ#!á±gV—÷ov¸ôâj _ûü«ÈÍ”Ç.~œï|í5âq‡?òŽò ßúâž¿ò8×Wk¼õîwFU..­º÷¹Õö87s}^ä8Ú…Ïñ)ÍŠ¬5V99=äÔí1W(0kñ˜ÑDBކød–ÂZq‰Ð Ør¶©¸%–(×`è…L²!zQ@Œ–QIPÕ"'ýmäPgy}C·:S_^F–,öî[!//sºïàÝÞ¢öô9|Ë$íF,ÎÄœîÇD“!U]Ç˨ ]Ä DÕf¥"Óö²&!4U‚ñˆ ˜3Lìr‰vÜfÿøùÙ5jZ•8ï»!Ý4Ŭ¨›EÒ@ä4"æÎ(*qÃar"ÓyÌžÕY¬4‰¦*o¼ƒ$Âõµ‹ˆ“ ûNŸ\°\­":Ú‡§¡Êzcž¢sûâ2#9…Î ¦­Ûý+’°´œqãIÆ4†8G¯*ø°ï"«"jI£¡Ú ‡®—3'' *Œ’”ª,É Ø? ŠSÕ‘Å1¾oS.¦ÄÀÐ/bT 9GÁa0†0Ô w·´Æ ý(‡„Þ?á £^È#A?ì:üP|‰Âóû%ˆ"Â+Qú°R8kú£gÓ$5¶Fß¸Ùæh’û<j±Zƒa`£…>ž5¡0˜!Õrüz‚™¥$†-Ex–F8RÀs°mHEˆÈÐÓyÔ×-lt çH²‰‚¢ö¾"r}ÍF "¶Æ2Šj#§!¡5"ölRU¤‘i8ˆxãÛÈÂŒ~4ŬȔU!à †LŽ %l—ý‘§¹ÿýïñàtÀÚcçвˆÑÁW®Üà•ï¼ÉIÔåÿü«¿Fk»Ïïþö×Ážð£ïW9}]çóŸÿð#?wƒ3òS|þæ+djȬ^‰Fh,:e†b‹´°0»Àø`ÌéV‹ôœHCZ &Æ„•áP'JZÌ4 ”Tc04P›s¨µS†­Õò¬\°HFïsêW G kSlÍ¡{¤¢Ÿ}Œ…ŠÈîÆ]òiĵç.ÑÛïsóöåÆ"¦R'HvQÇsõ&qZÅŸ2êx8“ ¬"å¢L»Û#r<Ìú2YvŒT0Å&íÎ)( šQ$cðB2U`±ReÔ?æÁÁ”â|‘gçg8žL9>=¡^˜¡8+ÓóOLT´’…)(®‚o¸´ÓïRXŸEœ&<Œ¦,g æ¬Y† ƒöûïQH”ZN2ѬE"ݧ¦iHžÃÉáµÅ&ŠS`ë¨Ð)J:%©AG1:'S‘N)c¹$£ˆ§]™Q²M£|†º¼ÀQÿˆái›k—ëH²Ê½n‡²h2Wè%" ’2E :_eÆV9êõˆ•Ê5dŧ?ØC ë ø(aŽ:J¢„ô€úAh]’]“%ùÛJQQMÓÐõGaöPиÕ÷ùÞÃNNBdU!eJ¦K‘@‚ÔÉl•,ž`È:A*ƒ]R'Å(×ý_J@˰LÍÊÑ3GL&‹“ yÝDÒÛŒw|‚RN¥i §2Ó,f:P(+1ãRŽ)è’ í»j‘êÊ%œ,¡ªÈ%M-g)I`"‚lâe.i,#‘“j Yž¡ª*ifh2Y’>r$U YMPŸ ‘yðæëú•O!J1‘"¢DAdJ(’ÕBÌPB ² ÒÌCld!ASÂH õcd[TDL#"Ï$²$çôýf°ÚjÝÔÐÊ Ú0¢5I™U Œ9ƒÈ ÈB^aȪ,“ªMºŽƒªLÑäœ\0Ê îéˆhSœ)ù‰1µrŠ;ò ³2Ô< ^YB,ÆÄØ”Ë ¦SN9òÕ½°„¤Ä¸ã}S#è†1¡¤"“ÓLe4Kc,È SŸä`€.5(-•ðGcÂ`€\2Hû ¢ e,„Dfg¸=Q©­—Hä”`*‘(1®8DWšT‘HF!R+œÁÖUœ~L*Ž‘^[¡ 4M²‰ÆNÜÅv=ꑎV™ã0ï³íŒ¨Eg.ЖúLƨàwe’tD³¢³ ¹<©%‰§Ç¾TeªŒ™SLRa™ §©y<&+xã!Ž¡’J( °å6z©Î;»ÎŽÄõ¢Ä(²ÝK0ò)ò²É²4ËápÌ)¸aDl‡4Åvwû¤söò„bG¢Û›c§¬Î;xqB¨¨=ä€ã XCÍNñ¦"Ó©ËÌ…¦0Cï¤Lâ³°¨Ñ´dü­Y¾#ÞB[Ðx®ö"ùýcîïîóô§.ñâÅy¾;BîDp.åææ!KámÌqg¶ ÚíµxòGG3Êl¾üáÉŸc=ý"öÒÊ_¿‡«¨-©Ç,SaxÙÀ¨dDßÜäû»‡üÊ?ø,ºVâOÿ‡?á×~jäüSì½wHÅ{ÈûÕœR¾Î§ ÷ì:ÿîÁ{\ížÒ\«$îI-xl¦‰P¨sóAÀéh@^1›%O`˜ 7ïps»ÁŒðäÂ.Zõ?ÿ×~“w7ÏÑì}‹+ëÞ8ºH«+ó™‹&¹âq ±hCìŽÑógh±‡l0¼3^|œ_úÌE¾üÍÁwßðéŸ|†¾/³q본ôé"ÑË{oR˜SøÌåèº|cãMkK\¬Öèz-v†RÂs…³×Š<ìtéoõ9»Ö@2eÆýmœt‘Çn\§õÆ»|þ÷ùÑÿüi~ý“Ïòåw†Üð.grÝ©ÌUHr™Žã±T®R›™á½/¿ÍQ0äÇ>wkTâ›ï£5EŒæ,¼O±fröÌ5&½cnßï°~v…ycÌ­ý–pž¢.1vHý‚#ÓX±)è:'{-¼x€`©ÄEoÀ‘*`Έ轄8Ɉ- UÕÈü nÿ”©R`ÉžGP\n@w0¡è¹Ô«gˆé`ˆ!ɉ9Êø ‹éNŒµ3ËO‡ôÆc®Þ²ÃEs[±8NÉÒŒ\ ±<Ÿši3jÔgrN»ì÷vùØ —9¿¶ÂÀÙGÙ­ÐÏÎáÕ¿Éãõ"ÃvAmrã©*þ­ßݱð´ÁùØà[oo¡irýì%Žï~Ýþ˜ÇÖ_@Èe¶{{Ä–ˆ—†‚‚Ì‚Qaßk“HcÖͦƒ>ÙcÎX"LàÔìS˜@âËd8dYæÔœöQŸžÜ§¤¯ðÄÌ<ð€[Û‡Ô‹f‰qÒ%IjfŠà¹¤I¡’‚*¸mP,ŠšÎi’¡Ž#–U&U•á|!À*ŽÉ¦"RVÄ((ˆ «¡9w] V‹Õ:ï & •Îj3dÃÆ)UÏA•ðVúDI‚?GÏUèêû¬ ø“œ­Þ„ò‚ÄÙZ_¬²çí1> ¸¼°Š$Ê8~Ñ5 —TŒ‚‹äÖ½€‘à1Sœg¶sp|Ìñ~ÈìÒE½Š—g(ĸ#(« ¥’@whãœî#5Tjæ"òéiq–¸åÑÏÛ”±Ðê:R2AˆªŒ‚½ºª`ö<|w‚¸´Šæ„øƒC—)«˜¹O/ÍðF "S¶úC¥lb'9®æ ø"¢¢‘ç.‘ P.VÉmG3­¢aË2a ƒ Eòeª•±l G®"I³F n'Å×lxu·Å;[Gø ±ˆ(KšòÈ­úÀ±’eùgJUµGݪ†¦ihª†(«¸©Lgš±ÑŠxëtŸƒžF+ŒñÈI&c$ê`¸„¡@9UÉõ€HÑñ'–8Ä5Êh©3D öUlU#HÂ`Lœ:˜¥*f$ã«SDO€¨@*&˜&¨@'±½ÛN $•¬ß±™8w!RH)r™D 5¥‰.ŒU‡~+£$Ù˜u‘qäc©k’×-¤º‚3uˆQ/P" ܸEà—i”D¼¶K¬jÔâ2©1¥eIX²‚’j8ŽDf§˜ý­nž¹†$¥H‚L ŠˆY‚iƒ Kˆ¤„<•@LÑRL2‰UŸšˆ¨+ø“„Ü̱¤”(‹QR‹(P P4='È’-”Ñ ¾£)¾*a«LsMCÖcNÞ{óÃ—Š–VžŒ‘%ƒ’m¡–#œ8'ï ˆRL©¤“˜&ÒxÂ0Ì0u0‘Ô*$&áø#D+X ùñ„‚«3®À4‘rèJ5ÅQÊÌ1aDp3Ì<ª†BI)‚Tc”ì …™,¡ªàBRu€nªˆ¹F”úÈRaêdfl£5ë¤YLwÜÂÌ(ª52µM{œ`*SÇGÍÎÌ.é1G§=´¤Z1Ò˜zlIÀ-¤8“]U´‰FÀ„Q*"g)š–AV¢rFÃÉEï:$²K¥TÅ2dü\Åu‡Wç/rlŽi÷Æ,Nš`M8´©,רUËì E.¢Ó2ºaÌ‚P¡€Ë‘ ÑÏ\µ&TB›ý À-V(t úýùÿئ1Œ)Θ¤Ü¾3$©É¬-¨D3sø“ñ^ˆXÖÀ9b²pM}†ï½ÿ.ê!ϽôI’c>®r…Êì-êRG¿Ê`ä£fF½ïÇTO"#£×ñ1–|ž¾ú4ûû‡÷xqnžòÂ,oõÇøwvh¾0O³8ƒø®Ïýá ¥¥5~ùúx{ƒ?ßqöÉ«4-‡­û|úüÇ0æ«üûÛ/ã ,_i°\/#§Þ8a:ý*öµsdWž£¾»Ãî»;Ü)Íð”QOM¤ªˆ¹ Ñzç!ßy>ò‹O³vVâÛÿâùA‹OýÜ5¶óY6¶÷°Î¨Ìè |4¨qhwøýÓ}.h)륃Ҏ7¡½ù*?ñÂ*šOð;¯~¸—°zmžFêQ,Øl¤ û›tn[Ì× Î_ɘÊ)u rH¥bš2Ý“1‰\Ä%ÂdŒ¢Í0™ÒÒ4ò2W#‘¹¯#U,¾ñ?Ãé8ü'Ÿý »ÇÃÃwiŒí¦üí¯ð™'?ÂûgÄî¾Åÿå¿þmnI7è¾üÏxqáoG?Ê»'ó||ñgžZbo\äÁ·ßà\¥ÆÕ?É«oOZœ+¯p;xfFœ¹œžðÒ¹§0ô€ï¾ý6ñnÌÅç ¤ ‹|åCB¹ÇÆ%ö&_gѪñø•gÙ=:åýÛob6f¹P_C«‹LÅý!¦Ò\Ô9<Œ%9ÏÅ…œÙIJÏW(\œÃ qN¦3 ²§²¬7ˆóô'qZ¸A™ù‹UV5‚C=g‡²i±Ø|Š8îóî½÷(éeV›k¸j„,&$‰Š›‰”•€ùÂ<[á^;dv¶Œ*¦lîO0K%[PÑU‹ƒNÄ8‘& •r¦2C1¤ XT¥€” EŠ ßÏɧPžW‘“Ó13^€\+•ª¤£ ~ PUFøBŠY(jÞÀÃ(€¢(¸‘êm$á–Œ,'°ËDyŠàäT‘‰)#¤ô#ÌR…BQÀÆaŒ-‰¤‰JR”)Ë&šC9˜2J °E”¨€ù´â•5ŽÀ÷Þ?겕flöøÃWßãá‡{ã G£!·î÷xØé±?•Ø™úµ]vû){•·ö‡Üj°×w8pRò\AÈL\"Ò4ÄŒ4rSGL&©LJ˜Å/Õ"SqBY‘I¦*‘æK"©/#«Yáê ¶¢D&¾-@.ÃD{t4(H(¹ˆã‰¨“”¨aƒ*!ŽÚD‘d™ÜŒÐS Ä!Š Qì‘§ã:%f­œ0PRÀÔ™zV!µ9È•C!ª¥x£“‰M©â1W8ƒëOX#j¡@ôU…µŠ€[ ONl¢6‹Ô¾õ¡™_»N’GHŠFç膂’i(JF(I$iŽ–fJЧšä‰‹”*y„fÄ¢@œ‰ÈBެÆ$™úˆbŸ义 ‹<øþ×>({~î9ÉÄ Ct]xd U´@"4$9Aðd9AÒ32I!ñ@‘2B%Çö2òj‰(uð º"‚©@qòÞ[¾T^[BŒE¦yHâk¨™ÎÒJ™Hhmž ,Ø\.Ïrºßg0>¦4× ¹¤18 è‡!J 2:¢ÌyÝ&©{µbdO¢:WDbúLµYDz$ÉÇäÑ£®¥q‘zZÙ"7'¨I¢>‰Z'Ç(BÅÔ‘sII¼˜Dñ *™§ Ä9¹ ¦ä Äã±G^q±â a1B•*Æ B%$ð²i†/‡¤ž€iûNž+xâ-w±JMl³À`pLÜ ‘š%¢Z稖6Ž÷QFfk Í:™±ŽFË9bcØáâòGXYf{|“ÃãjÑf¦¤£f  )åñˆ «_ ÚhÃfŸÓ¸@4¯PÌßCEÌÔN¥ºýë3}t{ž[aÄÙqŠ]ÑØ8L™N¨ÎwI«åì"övƃpu¥N± Áêd… w›õ /Ø{§ÇÖ¶C^lpñ£4Ùçá{ýÅë/‘7"F·¾Ã¨3¦¼øÍ9Ì#âÐäxh#*p=õ©6“TãÁ¨Y*­¿„½\âí7™ U¢kËÂg´˜ØQøW›*Õ¿xõY:~ƒW÷¿»ý€†¾ÈÅë%ò»|óŸÿ Éùu*/¾Èø¯S t¼?ÎËïñØ+¿ÇåŸø«××ÙýæXÓ-”§?F9?ˤ»Çr`TÞÕ]êÇÇüÇ9ÑËܽ·Í¯ž]e·nòíïÝâšì³8³D?i3*ô0Ü×êE¶Š ïmw™MÖ/¬ Þùþ1F7§4SåpøÏ›ðÜç>ÉŹÞûæ7øÖ½. gWxbnO©1ð:¨ƒ­Öˆ(?àçåãl¶m¶þíŸòŸ|îœ?»Îoÿéï3ÙØâ¿úk¿ÎI1åÍýÃûF®r‘'¯Öùâ·vxKKY½xã¿ØäcOäDgçù7ÿú}VÏTxá™ËÜ;8$T>Ù,q§3à$Q¹|.E"c4,Ñ=V ‹êhDÝ*ñXãü§_e<òø/ý¯óö½ þì^aqm†sçjLßO9 …DÂ1R˜‘eúqMH8§Ÿ%¬ûœŽGXªŠæËxSÉ6Y=_§s¯Å÷öÚ|ò…süØs—ùæ½;ƒ>gõtc€YërV}–=W¤Øl±hÜ<Êèªc^z²ÉáFÀn'båZã“Û´wÆ\~ú\+j¼ùþÛlIg¤uì f?PÓñ¼U9Á*Îàw#Ž X_(` §ý€ýíS./Ô(”lÚ±ˆ.§¸Ag³•”º€Û9dã䀊q–%{±}È(ˆ>þHB[( ¥:RÚ%4s²‰Jæd„5…hœ "S:o0Kd£S å9&í§SV/^D_ž¡ö:#îíSç¸z~–Ɉþ䀙XGk. yÖ¡äáHš2 ·YSWŠMºæ=,¡€~ª²én²¾p–+gWÙÙßcc»‡$)¬.4J%ÜΣI£ºLýœBÒ hï;ÌÌè,.­2rú-¯çR/,.Í‘·ïoÒ°JÔ+F8ù„þÀ¡TöPŒ¡¦£O4<£‡7ÊÐs…êJ•Ã~ˆáEغ‚cûR‘t,pèL¨›3²ÉÔïã+ ¶ÒDÊMœü”i\Æ4Ô f(x(‘EÁJIRÝ×õ2AØC”§TC™QÕ$‰â,ÏÂ.THÔ˜ÈWðtÑ0mMÌMmP\ÊšÊ8N±…)®–R°Tæë5öŽjr¦Q²ëÄb·aÊ:CE`:u[C9e<Ɉ¦M!yŒÇQ ‰‘3UlSÇODt­H˜&(“„@±,—„$’Ñ¥)RSµ@.&”IHCÑ´É )PBÎ}MÅrDEWMØ™&¦`–&¤¢î8YŠ”G”›6QêuCtR4Å$R\W&¡€©%HQŒeéôG9ó¦HR ˆ‰Ü­a×+ +ðOI½“ºa“6â“g,Ò4cr¹Š'´Q¨RVªŒû#;ÂÒ d§„ŸúX¦ŠEtµ„bû‡VùÂU’L&K ¨*DŠL"ç(ªHæçª€/ H‰Œ˜8ˆ¢‰ D‚N.$¤šJ®)¥ˆA‚ ¤5ä”{ßû`‹pýù!ˆº(ú *ˆ¹BàFèR –þ»ÉøBˆšæ¦Æ4L=E·P$‘@ÈHM°H%‹“›ßýK ÑE fޤ‰ôz]¦IÎ|©ŽÐ(’™Îa—iæqf¡œŒÓŒ<Ñɇ ªâ¸F¤Ê4²‘¬# Q¢ÓKŠÞ”‰ÒHm³HEN-‚À"T5ÁRš¤iJŸ`ä62ßÀÉÚĪLUµHb)Ë ‰‹㮃ç˜vMÌð‚‘ ÐÐÈŠG!Rnc—S‚>TL©drÒêÃ(`i¡IWŒÉZ-d¥ˆY*ç A(#TËØ"D'CÂTaZM(#aer[¥ßÍ {‚‚Hií YâC7ĉOëËÚYl­H'>DiY¸îQzL͘åjõÛ£» FÍÚ2º!ðàt‹™ÐfÖ.2veNT™Jæ2“qâ"wô”YKfUH)-vFš= ©é2ÙRpî´ ç]ÖעÆãÃ)¾—!§:…ÛÌ«MÖ£òpóÛôÌ>7>ù1Š3¾õÞÛ8óç¸þÔ2 Ú&}‘ñx‘@°²`å1»P•9"#£:“²¶Ødxqoƒ s\~þ2/ïÜeëý-žyî /®ñ­÷îálw¹öÄO_É™ty#“Ð˳,- ˜N‡” Oqyv–ûî_ðæŸlò̳ŸàìÓ ìïöpb´ )Z{‹ªt…åÅeîÜzoívxéÙ縱>Ëé«ï2T5zò2{Î}>z®ÉÅ,ñÞkûîŠ<ñ”H©'rs'a{ºÍ/_œç³søƒ¼Ëï ø¬z†OøM’Œ»5ÿî1ç,xìñ üÉ[»¼óÚ;|êÒœ»ÐàôÞo·ªÖ:ÓQ›ãÓ.מh —dvˆH™NýÜw㘭€ÚÙ5Ö.—©å6ïô8‰†\~ú<»›!«ŽÄOýìöŸ¯½|‹bTàÙ§>†hí1MGlßOˆe^úñ'yáêy~ïõÏóî½{|üêÊIužîàϹ"o°±{ž{ÒKüÄÅëó·éŽÖØ{§Ÿð©ŸøIîuöyíÛßçG.~ŒIs„ƒZôŽTžûÈܼÓåwÿèk”›6Wfê,½4ÃN?àöÃM.¨ËÈÂ,â1E#à|u‘–#òÞþ{T*Ï}‰ž7fsrã¨NEIê!^¡{M×—Øìµxóõ»|êñ2ŸùÉçK_ksg«ÇÓË—¹qÞ§+t9y¨2Ó”9{ã£d‡S^ëƒ0Œ¹ÑxQÓÙžì3¾»ÏÒz‘êÌe¤I@îѳjXÒ:êÎAÑ'¶gP;ûãææBTå Ψƒ¤Øœ™Mè÷"FaJ’FfŠ’´q :Uc†¨ßc»=ÁXnR²$Œé6v^Å÷ÚŒŠ.e3“8ê9%UIiž³V\%M¹/ÝÇZœk.1[ÍIr“­IŸQ: ÚqIƒÔ'Ë,ÏÎÑßÝçî½Û€ÆÙ'žÀ?™°s8 ù¤‡ô7KøjÆÒ¢‚°)óPÝdÖThȘh0Êv)ï'ˆ™L4c°P=¿wÀɨÏìêŠXÇL:#ºÌüê*)){§ÐeIšÅ–†˜j:G£Mfª§‹}ĸŒ4œâ—R´|†²Ô§å±…¢‰¸æÿ—ªÿŠÚ%=ÏóÀ«rúêËáÏqçÔ»:¢nD0ˆ„(Š”¨¡rðŒfÇ>µ´lmI¶‡–,-›I  ˆÐ9ìÝ;ç?‡/ÇÊõVÍAÓÄÌi½Gu¯ç¹žë–PÆJÛÀ¶'ˆ&š›OEßPôˆp4AÏšhbHd TµáÅÄF€'Ù”ô3S…†‹Òð¡1ò5 †„<ß"fä 8šF2ö˜Îç8¶#1í`ä½jÓW]²Q@qüðO³Hcý""QtƒLQ1 UU 1Q”I5O–Qå AH&Ù¤ÈÈäè’ŽˆASf‘L¦É¨š Ïâ,EUcn½þ' Ö™ç_Á³e´\ É ÒX%“v5&ð,$?&w2rb È&²‘£’Ç.²œ’NC´’†fëdO˜d¸YÆîwŽ ëD@!–1ëÓ fê«Ì*• Çá”îA—r¹ÄÜ\…AŽè‹1fÜbÌšYCÏMÆý‡´{k,¶ºî3mg% ¦áh9“x„™ÈL2q:AÉæ(¸1J-ÃË ½BC1ÁŽ(*>}ÏA'ý¨[1˜‘Eeß$–5´òˆpà u]¼õ V&!µU&F)mpÂÖ ŒŒ½°KÅ·ŽA,eÔ´ÂÑH¦>"Ì šbÛ-Êí)ï˜P8HÅSÇ’u:ƒ½cÀ\ó1‚’ÍÑñ}6‰Ts¸¥öXóKœl¬2IîóèpLÓ¬P_Öðò”^¨á){,Ø.jR¢SP°µ˜•­cöüãõuÊ ‚ø`cØ¡”5ð×ê$#›Æè&…Eƒ«G £ Ceï#¶fÌÍ×h-Å´Í«™°7âJª¢ÎO91.‘]Ú³C¤4¦ `ûÎ1Íç\õqª¥}†é!“qi§ÂÊ|‘â)›Ûï~üžIùé_D‰ çC·IÒ©1îvÈ—êLŠÇÜêΘ˜Nr–«êÂiÞìî3ºñRk~A¥ xnPà»í€¾êñŸ={–b­Êÿý{ß§tñW~þsìæèܤ}ûÂÈ©?þ UWfú£? [y’-»ÊÂ[_åâù‚s/²;¸ÃôÕoÆî¤œÚ¨3+Öè]‚Þuª‡³Æ%îÞ>æN¸¦9a§¤aã´ÍòÈ¡7}ÀmeÈfkž¦¹ˆkV¹óÜÎxâÄsl.9„Ý®l X0KTKeºþ˜Ó«e¶;.ï¾s‹§ž³øü¥çøÞoò½W¿Ã_ýÉ?Ï'_ã‡Wn²ÿÞ.vÃáÉŸx†VÁæÕo} OËyêùÇùðcN¦^úÂYþÇõ>o}›ö>‡ÛÜàûô=¼m¤•sKCÞ}•µªŠ?>Ï÷ÞyÇŸÓpc™Ã}ÓŸ¾Ä7ìñîƒ+¼tî$ǃ=ÞÛ=àì…S<}v™éw¹s4Â_hÄe·‚Ôî1ž)„J†™ŒXj¬R¯7¹uÈÐ{ÀZ£‰î™x%êÒ2Þ픽½wY>¹Ê¥S›ÜH1DH1ÐÉ4 à ÈK åF Éu¸ IÜÛ·¹=Þf±9¢Q.ñ£û¬pByuLw žXYÆn8¼óáCfû{lœ<…Q)áy7M4²‚L’2q2ð *ó-»Äƒö!»½}6ÖX^\äöî¥;AR"RÅF¯;~HJŸé8¡©TÉjùlŒäyèÄ…*Õµ"Š™ìÝÇŸè×[ă ½“ä%äY½¥P­¯²Óõñ“6j:aogÀÙS§¹øØcô‚ ‡·pïê.‹%“—ŸâØÎèïÞÄ¥,;'—TJQĸŸÙ1‰7ÅÖ›¸•‡ÉÒh†ˆ\úƒ!«Ïžà”:ǃã×ïÞÂ(5yöɳôvûìµ!å* §q– ’à ïÜßfÑ-ðäSϳ=síáN¸óDÌÕ±„ËAç…Èbyy‰4fûÎ!y°°a#e5´8%ÐAS¼Ñ€Dqq„ÌÐô0g%l;'ªŒ{Ò¬O"ivªQ ¤OØHVD¥TGŽG d°$ +Uð$F— d¡¡i‚HDiˆˆ2æ q© Óc¼±€Ð@mé fÈCƒ<ĶÀž¨¨E‹ ”£x!BR±£ø#ˆÜhZ@. ts…°Óa$•f‰J–3•'øcJIsðå!†C®ãM' $E tÇDM53D“<òD'×%RQÁ–R1%d2-£¨WH² /бRC†¡)¹‹.BŒT"0€8&/çHa )Ÿ‘( ~ #û]lÃa3eL–”°“QSPf‚PñÈ…ŒhÄ%˜jθKîgP5Pr‰p¦¢¹ž`bëdy‚«øèBàé6()Fbj2L:¨ZU²qJ:"Afȵ:ã;â•’JÝ­0L‡ kT<…~Û1«Ž§Lý ’maºp<–©1¶i ¶ìÁ*¯]DS2LÝB&%‘ÁÆ!Öc4ÈRâäM$õ·±u‹SvŠgd µ9ÆÓ„Q›áb‰=.æ:µšÅýG3ît”å!Í‹¦|çhÂÍÉ«PŨ=$Ø\Ð>F´Ã–y•ÅÅç) d¶?Ø"®WùÄ/Îs9òí·¶¹×·XXXÃ<#o=àx·N×”(Ú­Å Ö*~®{ä+eäEø°£0nòŒêrêücììòoqñü+|fuŽ+·ïsÓiQïvH$ŸO>ñyæŒ2ïÞú—„{òòÏry­„\ç‡ÿá>æ‰9OÖˆúæÊÙ-¹|å_ýg7øÅ_þn¾ý ní”?þ“Hy›µëßŬ¿Àavž‡ÇG”µ=ªË.JVa9•ye½Ág—–ùrÄ}÷küýµe^¶Îó{yÊ{µsÄ+aƒS›«|ó(ãÊ;{\¾Æ¼ºÇ‡oûœzéYæÎ8¾~“×nîàÖŠüÒŸ{Ó[àk¿û%Öžã‹Ïå¿ÿ¾sXæ‹¿öóûïr˜úhÉSì]ã¥Oo°TÑùÆWßeëÏSO~½®ÂÚ‰ïóò|Êÿþ»oWžáoþúEª{ßäîƒ~õ4S«ÇÙ•%21âêÁ”uµ†S‡CÉeçú]ÎëÓ/“éCþÑ?{ƒvÇàùŸiàf%v‡mnpÌrR¡táIm¡õîÓÒ–I¶UîVwhT6‹+DFƒã›h’ÌùåFñ!×ï ©”kœ8½HÇossç*§ËãåK'xk´C÷–Ç©’FeEa's”H\ª6¹øôz`ðÝï½\:âlñ§É×-îÞ½‰´H¡éR_9K)M¸·s E*`T–¶»ˆƒ{ä óhé*ã{8z›åõ§tgLü6õ…E”ÑŒG}âLâLÅ@ŽÊL'º“$ÆÇ}Šó'Y6› »¯óèÀ§Ø8A¦¨˜A@6ßDós:í#äšÎ¼]Eö½|ˆ¦YÝ©!Ós ¬Œ$šNÀ¾ ýIH16( |FIByy•ÆÊédJ¿ýˆî­¹*ÙúްZ 0µ:WBF&<þq‹ÞžÇ‡}Jå!ªËEå;¬{:qÏdà„¬ØÄèÆì‰tj5“á0&òG,/¹›ÎdDæa›¸Ê…¬Ë„”Ø(¡IPK}¶¢”åb[ˆ5m\Ä AC)d3ÚÓnÉ 3Š ;ñ ’„æVH«æ8ÇSB”¢N1 Q…¾¶­Q rfb†i—ˆ- 9Í ')†é 9j’Ñ $$áSqe […Ø% }"σB†e-¡º‚¨}Èhª`[vÙ%/¤L' bÜG•niÔŠH«i„ ÈLÉ…¢h„IJ2–qç«Lâ1Êd@n@d8,ˆÙ4ç a׋TŒòH¡;+£6WEñ'ŒF*µRâœ(;F b£†Vä"BNP5䉄0SDœ£Ä1†b ‹€H‘ÐðôGÖpãOÉQK êP!ʲ£Ú*úh„Èm¬¢B?Îhæ–0䚆’ŒHfÌ…*ª9…A^†Ò(“‹F¦k΢¬`¥¾."…v®¢j!¹¢¡x9qس”“u1ãèÕãQHÔK05«XbìL(LbÊ£2ÇîÉð¬ÅI„ì™d†ÂLJHrpƒ4F„ÜþñkåÜE|?#UAÒtÔDCØP’5„ Q"#ezj`j2±š!e1yš™,¡Ž$GèŠ GGÈV.!A¦p÷?Y®>õ)4%@Ç % M f6žï¡-bK`Å "6PÜMúê’ÈÉãÓ‚DƒÄKQà ËÐAÓ‰UŸîÕ+ú¨^yÝ ‰=4U©7 ¬èl #“JÑb¥i0öÜëÃüæúŠ‚&f˜©EàMÌtJuXHc:³6±R£Y6ÉT—w¦2ª'“§hZƒ’!£§$ÈÙHB <„UEofø~D8ôq%S±Iðð!±%­„<™2)G8‰Ž?ò ‘d(R‚â ”³• Ø¢ÅqBUr Š b]FÒœÜkó¤Ý6³Á”p¾NÝt  WëÈINÜíG1¥…sV„ßÛG‘ªlÖ«ÜŠ$ðR­BäÆ|ð°O1I9yr‘<yØOÉÔ1V¢bYÚb̬?ä±!ørþ¢M½å£ û>Â(¡”æhËûÔ{S’¢DÔ±©è˸+!»W†Äa‚jT^VF)ØÓˆ‰©Ò›{Ä¢·Ìº¹Î«ý§VÜM²Ü#”F‹ªÓÇ–΢ ”Cœ‹F·cº{ ͳ`›ÄûïÑ\jrP_aûÖ 9JÈ›ÜÁ”Íö˜ùs›$N þ„ë¹ÅhìóòÚ€ìÄw„ÊðpŸö`VÆü§çËØY•òúûL¶~íó/1·Vãøá=µÆr”²ÝÒí?`e©Æ|óÃulJ®Iìˤ‘ ­'(¡ I„%•TÉH;3¢‰CnÎp+f± !L•…¢ Peºý„²cçD?aŠiȆ`iøa€P3,½ŽëÊxQ„?KÑ¢u^E*3'œGØ„qL¢å8¹Â(ñÐtÈhf€ðT´’û»•£V]ª©…Kܱe”\fÞЉÔ)"V™"K¨FŒšJ$ŽŒM2Rd]!HÒ ÅAE%Hg„Y„[k!K*R0I=ÔlMXb!¡$F’!T„<6P%œ &ÇTm—L–9L©T]ÆAŒk4[òD  ßÕ˜š1å½®?ÖÉt`ç²iæ‚IÓ‰•>Nd3Œ ”É 2ª¬Š.ä&²í"…CÂP#'ÂHuLGW0!4¨ªj­À0 (¥2®"s¥Dž…\¨ÐÐãpB¨Æ‹Ø£¾‚¬‡ØŠJب£w–7. ¨9‘”b†VI##"S,$ ´K'W Îcd!“I²,“g^–¡dÍT3IhJÆTdXB€‘sçÍïþ‰¦á“Ÿ@žé tG"‰b"9B‘m„ˆQ•ìíQ"HüËR0…Ñ0FÉ%’¢Ž•*$“”\ÏÈdÈÎÑͯEu+s‘?0ë ¬rÕ¹%º³6ƒA€å8¬.¸äÌèܵ‘"žÚ°ÁíΩ±É‚)£ílB¦d45›Ìi1n¡(2A.#åÕŒb‘$Qñg*’&!OºŒâ"Ž®¡•!ëeYˆd*HÚG0ãT³i¡áæ ýòkj2 mœùŒ0šA¢bj c‘²ì̖ʤÉépÈ8Êfœ#Pkx"À)—Ñå˜Ù$¥{Ô‹*-§ÌÌ´˜ô‘ã>©R?±‰1J¹ÛyDUuiÕ 3ĤAMñÙ¢Ã2 ¾3 ÑÐËXzÊö°ƒk.Ó81ÇÎñÙí¤'N°¸y†ÑpŸþtˆž:˜QƸÚ"ÑlªñÌ–`«_@Î#.]îÞj³?P¨I¬®Ú¨Ù:ñnˆt“#«I½ÓÌ ö‚:ÌHü3§ÅIm1hó¨<àâ¹NßÿÁ!w¦œþ©Ë<1WæGð-:³Œsç^bQRº\>yš»]>¸;¤0wžÓNÂÁý[$™Â¹õ"Î0E¯6ø‘7¢TÊùÕ‹klÝOùá½Ök-v ÆGüÅËŸFmJü‡ßûGôÛU>óëÛÔé=ü Þl¶ô ­ªÊÓáŒû²IOJÙtŠ‚_yþyêòŒúϾ…½ò4ç_Z&¹ö%ÄqÊç?ÔTýÑoá– j?OüaÄ¥uŸ…Ö"¿ßí±³õ.{ñiÎ.¬òztÀµ¹èÎøBµFb^â·Þ¿Çµûð—ž+³¹öoßëbÝŸ±ü˜Ë£aÈ{רV °F¥ªqíê5B›'[&?> ß+Q~n‰ÉÝððªOõÔ"?ó3çþÎ˜ßø§_㩟Zæ?yåãì¿u•ßøþ[¬žüþîŠÁqt•ƨ\Î7Éæ6¹ù À¿ÀÂÙsúG˜Õ>»¸Èÿû·x­¯ò_ý7ŸåRÿCþ—oÜápéϰ¼’¡YÄ¡ ¸±ŠVYcðÞï-•IѽË_ø3ŸãÐ/ówÿþ?¡StùôÉË• Btz‡ô·M–n:Ûßþ€óËç‰Kç¹ß»ÅœQ%„n3ˆ2Â$aÞQÅ)ÃÑ>Õzƒóógé¶ùÞÛ×ÙÔ×8ub“@?&õ¦„f‹jqJ0ŒµM?ñÜÙ§˜´ Þmo²vaÂæ"í÷!w;ä›+ ¹,¥‚ij¿Wd®h1Øö·˜[ja%î »ØãCUdšxÇäE‰“õ*Ž:Gcžº¸‰7 9ºsHc³N6Ô,kžŠ•÷éy ÖEjEö¸,|ÜȤ3ô¨.©„½x†ÍpÝ2®Q ³"HèmQ‹cÔ˧å>Ζ„<30¦”¬slœ>ïÍ8ߦ÷æ6µHõé'‘TŸdzD"•9¸ï#²K'–‰—koüôŒ—žzœ©nóö›·(-Z†Æ£Þ€Åõ5Vãœ÷G䤇a¬RÍŠ T§s¹ÉõíIÁ`cåbÐa|›¥¹¹L‘̈ÝÝ=\½Nkc¯³Íñá˜FÑAÊ#2[!Ï ¢áˆ –hT—04Þx /#96n¡ˆ&$‚8D6 4džÀ$‹ B»\¢&ÉØfL§§’»U]¥ ª+3ç(ôf)ƒI7+RªJ†A”ÄH¹ƒ78 ËZ&ªmNx‡Sʲº¢“Æ@E$3„m`æ&jŒ$LjÀFvsd/!ŽU×%V=¦cÐm%Lf4Õ¥¤« ¨LÇS˜LÉ›5V*ÚPpœÈdÆGÁÃ4$ÂYr‰f%'ˆ|™GÑ,£©&¹™!’!B²\à Èõœ<ÊÈ”"È)²î IHB%•2*jÊH|7B‹5 ÏTt¦Sæ)0*eˆXGö³ Æte$©yÌ(™`‡*”ʸ²O61ÁF´4ÊyŽH%0l4-@ LÆZˆ1el†!””µ Åj dÕ…Ì4v‹)jš2_l·T†£ý> e¥è0–ª€ˆá@Õpe‚aP‰%ކ}ŠZ Í0ì´…]Kñú(²&¡÷¼"tOöÉ4þ"Dt„©‘‘‘É)F¢$¡hRš!r‰<‘ÐÔœ\Òð³‘j˜aŠÜÔ!KÓ ò۲ؽúæ»%"%Ç0ÓHf¦L‘„Bµ¶AÁH¹×="ÚŠ‘ ‹Ës$ŽC¸;Æ`†ŸÚô¦el3d¡aNG ’)*sdjŠè߃ò<¢¯ËŠ6 Ô]’ôü`L.Aè˜hºL1—ˆº™•‘ÙE2Ï'I¦dºKYËñ„‚§OH¼2¶ãd9B*¢¦RHi¬×T„Y¦wxÌ8I™+1ƒ=\EÆÉ4!‘êÓpü¶Ì´3E̬oZÄ»H¦¦+“~–²vê¡,³o‹zªS>× w¶ ¬¶RJø° ¦›s®e3‹v¶I‚ûÔjŒJ)þ¸G²¼FÏÒéöúœ–\òqJl&d‹ËDƒ.n×§¼Ø`èÉTt‰’7ûŒŽl2ì“&V®’ ƒ¤02âæhÃsÃKÄ•{Ü÷pbá,µ¤ÂÕÁ]²Øe~®ˆ¹:äîà ýv9õiÅÄÈJÌï3,¶íZ0Çòã&Ã©ÆøØDF ²•ج̫\Zw8š:3ð:°äd¬,Xda¡ç0Ù}Û°rñ9ž[tIý„+ ‰yúéÏ’·JÜóú´ìðl³…íøÜÔWN27óÕ&Työq™i@ßyŒKgj\ÿÎïBËáÜæÏsôÝW™´\ĹË, ÞB¹Ñf¶ò2öz‰Êý«|Kßç{ºÆ¯©-Vd•+fJ¥²Š<êðÃí[l4›\(—yKªòÖëßásË%N5OñþaJ#`çÆm¾üþ5þÊç?ÇŸ}é_ÿÊ#þÝ¿»Í/üÒiÎÔ\¾ò­;œ¿°DmÅçÖ[]ìÊ*I|›ÆÜE8³Éî÷_e]Ÿ²qùY®Nè$9/Ÿ?Á’6Ê„zÂèGïræ§>ŹS|õ7þñ ãSíÏñú«wò÷ù/ÿÿÅï½Ï¿ymŸßøü Ÿ·Ëü³w—wnÝç³ç>Ë…_âÆ«¯2}ô'Ÿù½>F:¤®v‡ç/ü,‹%…}û«X…8½ˆ8.Ñ\\¦´™òÍ÷·ï«œüss\(§ ïJÜè#‹6Ë+«d~’é bŸ›í# ŽD³®’÷rÆŠŒÝT‘g“4F¯I¤†²N³hz2¶ï‘ÊMͽbS•_A:<Ô?`;XKÖõúán66.œ¥1)óƒã.á$¥Z›2ÝŠ™©Q"úX¥ RÉC5Šˆ^—m4ª‹5¬Tb²{@?öÐ+5jzƒœƒ½m<¡±R+¢è³ ÅŠzDóKè ‡7ÑÔ«õMŽfÇìßߦU\âÔ’IŸ1³~ˆ!·C|Ñ¥¬.  ”¥€½ÌÂð=¬ÄåÐS0#–äyüú –ßfœ>¢}Zeñì“ìåGDÓ a#Õ°[EÈ<nVeæD}a™iú€¢$‘g tÂ>ë7)xÛ;#r-A34VJOsúG[”-ƒÊÚÒ¶v>@šDœ¹ü õê7ï½O{ÍJ‘µj¿¤qÿà!.'6×è1µòEgœv©‹6JÇ‚ÍSÒXçáÖŒÌXnJî ¦ËC h=Ÿ¤¬`TdÏD F±†Q±Èù­3ÄGï$P)2Ë$’ý)è9†ZÇ.x •ÃÁ-5ØœkY.Q~Dûî„¢c"UuD³†< ¦SlMZ¸©„¬‰C] CQ) ¾ øNà !²7Æ.«ˆ¸Ži(ŒÂ˜‘b²H˜î”í©‹‰‰PdÕ£jÛL‡RÑ$‰=ì$A33EÃÌd„e¢Ì2"âX¦Z)‘é‚É€@ÏP5…bª344Ô(%ŠUë#ß×È“)8ª—¦ID8C)¶d—e¢aL®&Y¦Ë L%&Žel!ƒáâã‘$ÊHA®jr̤oQ-ËÄ3H‘ðí;ŽpƒIf£É ’˜¢ª6i*!lMµpTA?J v¢¥I+„xžF½¬“JrAB‚܃i¢ Ø#rC£$[̼ · 3U\„>F6Mò0&OUÜrO̘Å¥ÑÖâ™óL¦¦£”Kd¡Žd~dÈÏòŒ<—°ÉÑ‘%9ËÉSAb¨ K¨JŠšf¤yFFŠšYU`d:pûÿ`°N?ùI"MBÉsT%%Ét‘"'™¡‘#“ù>Šâ ¹)ñ,"ÓTs…¼ã‘L #C~æáq$qtãÇ¢ÑNy5õðÂÍ-²ê.Ðŧ}r¡Â|ÁàQç \Ê ‹<¶¡ÒѾûý¥ªÆé¥2±š²·µ…^h.¬1ÓʈþÓ4FžVÈ5Ì¢•dˆ‡)–¬F&¦&S®HôzâT[Ãte"] ÍtâHP23r7F™hˆ„$P“Ä‹˜HàÆ!FQ‚J‹Aâaú>E4F`Ë4ý)~¤p,Z®Ð(ËL›Ô ˜d9¥9•JZ%ÑcŽÛ>AÿˆõÍ¥Í îóp÷>gVW©­4hïm³ÝV8S¨’Y‚žœÐ0t9a×O°CX¬•8œÎ¬6.5b¸yEÌÑXŸ§ëOI£GÄc•¦[ŰËÇ …¼/Bf~‘ba…¹$e{Ôe/NÐŒ2ËEU|4Õ›ô‡(õ¹é¡û¦TdkÔÇñ‡”—VÚú0ÁÏèe «DG쎧œ:ušÕK›ì|çÙ¾×㹿ðg &Ç\¹~gž«“4xõ OcÙdÅPèܽװ9ñ±ó¸ƒ1;“¶¦S0Çl4duû)¡òˆ•Å QAÁ7ŠäF‰+þ×hKüÒçÿ<©±Ç;_ÿ7´«¬¿òY†³]ÎÝyÄæógx_2yøý-æVžá1mʵƒ]^ïN ›. ®ßã­/]¡Tù4s¿ô×ÿÃ?Ç ¸ðS°ß`vÿÌ—t¾7›\=àÿöÌ㤥%nNǤÊU_pªÔ¤(Íóõ;÷¸º?ãïm²öésü_Û¦vtÌ_xéq®õò[|—Ç^8Éù'Îrý}ŸáÖÒš‰§¬;6˜UÞìŒh¹‚1G/ÿú§HÆûüö?ú:ŸûéKüÚ¯þßûí/óåoñøO?Ãgê$å ßy”“Ýíñ^¶Èåß¾²²²ÁºcòÚ»Sÿ ƒ/žmðwÿ‡ïò^¡Ä?üû¿ÂÅ­küë/ÿ;îØŸæ'é)½xøÚ”êùgN¬só÷ÿg’MÜgŸgÒ¿ÏåõÇhÕMþ?¯þÑDðÉgŸ ¹f!d÷oÜáõïµyjó­§g\½~“úà…ùUöw¯3Þ¾ÂFõ,îÊÓ8f0ìÓ’d¦æ„`\£Q+±T/0jû<<ºÍ\±Å™æ:É D÷[%¼¹›šÁð¡AõñužüÄÃwÛÜzßqál•ùúyî_Ûfüp„sV¦:'Qí óû*¡Ù¦¨¨Äcw¡Z›çöý!Î`ÄÅËk´}ûÇ(vÆz¥JNν½}š+5Vª+<¸¿CY‹qçL:û‡Œõ­šÊÑl‡x¢cŠ©3S|ò ǰA*LÓˆJIfêäŒXVVèf>‰4%UcÒYB­ª`oœ'W'\{ý>¢3åÄB{á,ÅÖõá nzÓi…n{B©$¸XŸ£ã+|¸{Ÿàp›K§>ÆÂÚ9Þ½ñmŒYLu±ÁP°°2O³/³Ó2ѧ´Jek™Ã°ÏØë£š-œ$#)D”ææðwútF ÅÍÖãQDrWʱä2…•y¤NÆÀ¿…œk¬¬œ@ËrŽ“]†Q€ìÙÌ× bÕ@urzÇÇDT©¬™$ÝAìJ {Î@ééìOvq´Ø©`5꘣#M%(䬚6~A%‡4µ„ÐpŒÆTeAaÎ&ŠK&z÷µd`+ºÁH?BÜ÷p¸h¡•ò¾rˆ" °LÌt†g§ Ö±å”8‹Ñ¦ ¡a‚!Ï ps„0±=Ÿ™CÜ   ØId´Ød¡0%h©D{ùЧ7'XW ØJw4”$#Ãge¸r·¬„*Z6F‰!“#¡’ÆY×±')B÷ñôåÐ"´c´8C !rd¡¥1º¢aØ)ƒ,GÏÊžvnãª@’ é*Þ4a¨¦‚¸XAV!Éh ,»äz„ÚÈŠA¬åX†Ç Ñ‹’3›jdŠ†ì†˜²Ã,Ž0„FnÇh“~–š?B®°ä*û½cÄ,aÉVÑË5fé˜8ˆq¡”ÇT„LÛÌä!vV@QK$F!J”¦-¤@L–ÚªÀÎÚàþŸf‘úêcèJ„-4¢ ÄÀÄÒ,’<$"§€ŠÈ©)e ÙDP±tB3'ð$%´\G(32ÉBW$ò$'HC¼÷ÚÿáÁú$y*!i‰¬ù Š&#[±œ!§ ¤%2'DSÈMrmJ:½P@3r’Ã^ˆË€¢«á––¥>Ç»û,Æ9-3¦Àô`D³ÖCu]öE‚“Ïa–mÒÑ.EÕb’; ' k‹ãiÄ£]ÊŠE³‘‚ Ù ÃócÆÅ,Z.Åô%v÷ï7ÞEˆuαAÈ6u8_¾ÀcçU®]ßFÜK8yQÁ]µé¿?DžJX+«|ÿˆsM~¾Uç­{·y8“©*§‘Ä?ÙÃXÜä‚5åèÖ€·˜giQpIQÈMÔæ™²…{°GE ëu6N²·›ÞíwøøêeêÏŒLRt!M"¬y¢È7¸Å;½Ï}rƒ@>ün‡'ÎÛ¼òâäüàÎOœšrùìÏrãðûáMNpûp„¸X$]:‡vp Åó©lõž^Zàvÿ “l®}Š®2%\%Ž3¤ÔâÂsgµZà~ï¿gЙP;õ÷§?a2—ôùƒù‘hqêY“…bŸ`[ç^t¯Ã|í$Â(áIj1ãÐ@–Ç´œo\ÂëDXçë”$‰ÃvŸ‘/aO›«EšsSºcÁ ‰±ó˜ÅJ—?S¡>¿I﵄­àGxÚ€³µ8©kÇtÚU”Õ¦âP-ríð.1çN¬ÒîôxøžàÒ©e‚Ägv°Í\­Â àÞ÷(e²Â"M‡wwØ?ÚcñâÓ‹*ííGäyÂþ ,­ÅRËbØž0ËcjvNR!ïàX0_^ÇËw¹{»G¹¶ÁÊÙEöŽ®ÑéôX,œB*ϰ‰Iž2ó&# y¸rÏ%*t¯cU.pêôe ÆŒû;Gm=À2êTWçQ…‡V‡-»P )”ˆ¼³tL±PÆÑKÌòq2ÆÒ-&ãO6_¤¶¯³7ž™]2æa8(LØ>‘Ô"§K-˜=œ¢ˆ.‹ëOAnsïÁ÷IBŸg?þqLoʶ7Á7K˜Ç3Ü“%„¯³}‡…ê2•»{û Ç!-§ŠêØU i°ÇáÐÂur*F Ù,‘Ž•=¬d e6EŠûôÝ*-[ÃíÏ8.N%ÀŽ~bY.†‘ãS#EhјÜ0° ¹jã}²ý€ÀtX©5È û³!éíGG_QPKEÄaÇ#h¨àXæ$È¡@²–“ed{„‚ÀÊ8­"B¨Ð\hä.š3Í HÕKÕQÔ)ã´Œ…”g*i='‘\ÐŒ|B%ÂM P ’ªŠÊ-!𿄦OY.c8^8C¤¦Š¡“ ‰qQÉ „ª01fh^„nëHɲðtƒâ´ƒ&éD†JžGd’Œž©$NŠ»Ì’œœ²'3)Y% L±Çñ²ŒœäqÕ4ÐÌÑÈF˜6®­öf¤æ‚CO!V# ËE3R”‰LdD\ °u×réë#”.BE¯(™Šf†tñŒ’]b;¸rB’Hõ˜N6ÂHm ²J” 1eHq‰âè£6ƒÀ@þ˜Ájl^@V$TÃ$–4Pb J‘Ü€$e 9WÉñ²âç¤RŽb(­–E%Qòð#˾œ D‰,¡XwßøþGkåùO¢‡…)K( WȤ’‚ø$Œ„2Y¢¢ ²®0õBÈ¡Ð(gÈA†â–ɦ>±¢¢Ë2?îêUÕ!+¦(#‰$J\‰¦2Ï‘8`6ˆ9±ºJ£aqw÷>÷÷ö™w׸p¦@IÀo¶1å”ù“tï$û³»#Ëg‘&i2FkV(ô%¢0%ˆœâGÊqTÆþ€4•d—JYÁ aªP“t¦h®Ž)èSJ†Y$“–0‘cF‰¼T 3ÊpÒ:}»†¢ô)GH:ž]ʘ3u¼qÌa? \ÐPj2ÕHà `<íŒVÎ5©Ï5ØùÑ>ؾÏg^¼À™“‹üàþ-ûcM*õ:Çí1­F•tl¢É)×§­gL†*­‚Ei±ÄÑÑ-D;ê¿„¹4d4xÄìØ¦9+²¼´ÄÃpŸîÞ€svƒ‰f!iVsÊ­;[ȶÉÒ©uìŽJךa _:¦8Ø• cX&ˆç‘82Ö¤Žå(ìKÇŽ Ì5–P.Ïï« îu .)œyê:ßzŸ£ÝëT?÷3Ì"ŸÁõ+¬œ]¢|ºÉÕ›“NÈb-B C:¦Áã'¡2¬sx{€ådĦNqÁÄZ­<p÷èÍÓuÎ.­Ì–ÐôwÇ·É×øŸú4jÔã_ÝzÊÆ No¼ˆw÷Câ+°þÌÇÑt…?|ó6÷îz<ÿ¢‰©æ¼³SàÌó뤽 G?øÁÜš=GuiYôØûæo³~á籟¸Ì{¿ý¿¢TƸ§Ïà.©üùÆ3¤yÆëoïÑÒ3”9Ý^Á [Ôû|?Ýá‰ÚIž|n‰ß¼?d¶Ýã×O.ò ºÈ?ø/ÿ˜‹O­ðWÎ?Å{ï]áÿñkçZ¬¯Iøá]mxC^´ÇÓ¥†ë’©%¬Íœ7¿ö©(M¾ðë‰_ûWüàËïp饿Ãóµ>Éìˆ7} w’óç_¦2×â¿úÚ7(Öø[Ÿ9Ã~ï ’\ä?}åsü?ÿá¿å7ßïòÚ¿ø<™\å¿þŸþïŸ|‘/~þ‹Ì϶xóoÒ2Ÿcî¹'¹ýæ?Ç8Ò8ùÊ_æJp…âØæLe…[ãoóÖ‘ I“ŸØlÀJÊþxÀ{oíÒ¼4Ïók·v‚9NlX̆×9˜F,9ËÌ-œ¢›÷¹{åCªM…¥¥¶Û&Õ Á]™ŽÆt(‰ MbœÏ˜·¤â"Ç¡t{u«„ÍŒO\:K+VùÎD/\®áÆ.;7ËlE;˜OÌ5âd}ü¨Î¨"P‚6­i•Ü”ØÑ÷ÑÇ.É4 XRÐu‹{íeEçì‰u:‡Üi_¥f]`e©Jàuí#O`•ÊHšŠPJJo¢Š:©Ã4.¡Ê2yî3d85YO`ì£äóh¡ÄQÔCGÁ^s±F Y®2ÍCòÝ. ¥Åe*óëLÇS q—¤p( ˆc[(çFABe$³=9¢Qª²Q¬r¿·Çn»Ç‚$1?ß@²—¸Ú}€ÿð§WŸÀ®–È­€R·Ìq:Å»”åsËKìtlïu™Ÿ78Y¬q˜¦xŒDM$Š‹Žb{í4@Ogœ¸ø,Ó´{÷ÈælŒIN¡`áVÙÝf03gÕÑó©‘:1ê,àx¦Q)f3‚m -/Nhí T ¬Åu\‘3™ô™Î¶$ã,V‘¢œÞħ&Åèfƒqäá%] ÛÆŒ-;Gó#"Ï(XMdËFˆ6áx²‚ÕYn’vSD8E®àA·‘mx–#"AjàäjtÖ§Z59Î,&.@AÿH¸=ô'ó® $Ç c )‘ Ä ·¡¢`1É„Õ Gµpâ^&H[Í!–6h³ˆ hÑÈLüâŒt’¡Ä:Šñ34Ke$|ÈÁÒSPT„¬£è)i$PF2bBMÁѤ ±“ª"Ô)) QžPÖL¦Ù ?ÑR I­‘*ÚÈ'Ÿ…° "ry&‘"pA$Ic: *F¬Ñ# lÈäjJ,\L-&>&BíSPm4·Â¡ï¡LJeÛ²g˜v‚!AîbÇ3b£€ª$XyBªZ`¨LòR*SÀ ÒdH4rY#ˆS ® õ†@Û»ûcÈ}ó"Yš,™Š’ƒbi8šM”ÉÈQŽfHx™ Èc,ÍÄQR$]"Êò(ÔrB9C( vI¦()™¤ §:wþ+ÂÓ}’Ø‘Ès%«H‘BTˆP&)‰TÄt"’Tç2 ™7F±]ô¢‹˜ ðú>f¹‚YÐI‚c)Á lKçàúÿƒ%¤PÌ!ž1Ôu$b⌆Çúâ9gc„Ôç-zqJ0œ’w‹Tlt}F¨ºôÁ²¢C:¥x•Y/V0W˨ô:1¡>DTb=G6*VÂa/&Í$ʺZ†/|5¤ŒN0õÐÊä9ÅPÇ«ù$S`ª"Z]"¥@Cª0Ñ4²i-C³†ˆl„@Gt<Qt§äaD„„¡€JÝ0XÎw…°;¦U˜N E²A›ÝaŸš¢¢Ÿ[Â6 t·“”êJ ]wɽ!SßD$)š9%1EEšVˆÔ¡fDÛ#6V µ³í-jº ^k2~¤ÐèIÈ-AnK(YÈh £`²RU‰º¼nÄ£4§¡­Ð\–vgøÁÑhF"í±âo`5Jxã{\¸\]À²ëô¥.É£.3£Á§ÖÌÚüèÃ7¸øÔENnœà¿ömÃá¹W>ÎnûG³€]>IçÑ!×îÅ<þüIÌã[÷‘p8e.2ðGtB“Ku¼q›éa†8µˆ££bÜÂ&̦݊›R L¾¾³ƒ÷˜É/5žan÷azHB™^Ñb{<åqy~î oÝ~•/}û'á |ú‰:÷ÿè·xKÌÑ:uÛt°ãÑŽ hZ‘ÓçÚµÛ|áÜE^8ûÿøÿ/¨ó·ÿòó¼úõoðÞ·ü½³g …Î^Ì­j›Z=€1Ía}¾ÆÁÌGÚmS<QPNa¹×»ËõíûœlZ<óóÏq£sÌ—ßÞ"3>ÿ\úc˼þ£#lG|ìrgAcûãɈ?÷—?Á>‚ÿö¿ý?ûò%~þåóüáo¾FO9ÿÊ“ÄWoQØ8Gøâœw¿Ë¦~L´ú4ƒý”æhŸíµÇéj _4ï >ç ‹î|…ßøËK,w¿sõ&?Bâ3•OóØ%¸úö×Á—1O<…×}„jµ)Ù'98òY¼xžæBÄkøe¼£g?þS”Ò3”´¦ùßýÒMúê2>=OP½‰ì÷lŽ'È”9.£SŠŠIëÏcÜש” ¤²‰™ÔõÙëÞ§¹àR^>ƒQHØ»µÜ‘ÙØ,sãö1=_æó?ñ"¯ýÛ#®°ÅÚ'Êœš_£^©s´·ÍV·‡V*s:ì’9EŽ ™ÙxBaÁÅžúÜwÈâ…>æðîÍÙшÓgÎ2Œ9”VÏbË£‡7Ù’2ÎT/²0o²÷h›á1Èe IË)ªEfÒŒh2¢  žÎØÞciq‰’£r89f2ó(//Sw«Lǘbê¥jA'˜ ;¸j£gyª0í&ˆtJîÄXµ9Îo>]ôøÎ÷¿Åƒ;‡,®¬³öܶü)öD"VLÝ¡YÐX]\àî ÄïuIå£hS×Zxí!º–¡Tí±vv•sö:ïÞ½J(yX —j£N´Оa”Zœ6ÊÄÅ!îbŒeW°Ë%ºw’g^xgâñh¯Ï4X®ÌáÔËôF;Æ, ,¶ª< ö™>Úf®ušÅù9d;b°½Ç~Ñ,Ρ—$4O&Ð&؉Œ$¹dRÄ´·‡i¸X•E RÌôALß1Y( ¤±Lf©Ì5ºû)ãÜÇñ'TªK¨©„ïH)Ðíƒla¯TÈ#‰‘ zÔ%}®ŒÐæˆÇhÒÛUu Yä÷!6›fßf1lK5ãšft-Þ÷ÍP1r—ét†HJZñ!.#…CúIUKGÍt:º3 ÐÆm„q½„HıGì€fÈ™AâèÌ«ãLe<-‹ÑÔUÓ‰üœÄRIE‚Œ”Ëx¹†% RÉFÎ4„“&2º¡ëEFI bLj¥D¡„­ê!¨…Œ´›¢ê2RÁ¢0œ!Êœ²DÜË%—š0 @ÓlL3ÄF£ßÍÎ)˜1"ЩŒáªä±@Ï  #YCû4­2fÉb¦dÇ1–-£ª%R+ÃÍm:ã ™P0\]ÏÉ%IU‘R,A˜¦AÁ6é(CÜ)Me æ]»$²‡6QP?XõÍÇRD.†f ÊŠ®«)…Ì ÏC’4%×mŒL'‘|„¬"ÂŒÑ#™4Y‡BžË:B‘¤ SRP$Á­·ÿäŠpõ•WðÓŒ2™ä‘±/“§2j!Ã÷cHMLYè>’l‘…šž‚¬‘LR4 TÍ"ð3Ô² Ýúqá´¾J0ž [ 9e2-‘IJS¤êÀ‰ê·;»\½ý€ÍÆEN­68nsÿÖ‚SàܳsTÕWß¾‹Úš±hŸ&ñ¡l$šB”LÑ}™â´ÌÄ QÊ É‡ÐŠÄµ f¢“aâ“û9•–Ž­¶8˜z0âÔô@chBÕÉ$‹±6ÅLj(äLB\/0_‹Qb“öÌ$Ÿ"—lk‰µZ7îpýÖ-^üÄežyòI~ø½òàá¼ÄÊÂ7¶ðµm–7°SƒÃî!rQEH`÷äŠAœ*ǰ¬!EõEê­€ýÙCîl Öó9>öx•7ó#w§¬8æG+FËCRrfýÖ¤@¾ÚBòCFÞ…Z«Pa°ÁÒ„šZ`º=c,…fŸ¹Î »ä!v]TE¡²’óðø!ñmÁÙK«äÍýïîô&èçÎâœhÜÿEͦb5ù`'$=êÑ æ.j¼é€æ\BÖ[å¡2§‹)æ)×u cÞêS›[féâ&u¹ÎÎö>ÝìÇÚ§ù¼s¿ÑxÀïß>æÝ²ËZ Þzí=TIâóOŸ'VÊüÛßû#Ú¶Íóg—yÑ1¹6QÙºqƒ¥9•þÖ.&§yâüöw>àú£.§ç Tšä­5 Ý ÓGobš£}ü<Õ~ûN•Ý‚Êl£ÈÚ‚…·{Œ;(²œJ|]ߢ27Çãµ*w·ÇI>—O,ôßûÚk”ŸÛäWW7éï÷øò¿ü&—?¿À?þ»ïu¹}ÏÃlfÌH(KÕ«x+›\½ú!Q÷€'Nþ<ßùþ›ü‹o¼Î¿þÏ…Ï8-þÞ?ú«ü»‹üµÿ쯲ªŽøÖ?ùMªçϳüÄÏq÷‡_¡çðÜÇ~‘|—áö^®}œýä€w÷¯3ŸžãSËuÎ],ó/¿}Ì~õ}>÷R‘S›%öÚ·¯ãíÇ(Ò-Æ^‰\·X*Öç2×îÝ`©Raiuî“Þλ¸‹-äÆ Á¤ƒžGhA?±rj™y¥Èèøˆ{[Ìϵ¸ôSë%šãŸ-^txº9ÏåÍeî}ò~*Q<Ñç‰ýµ–ƒÒC’YÎÜæ““ìÿ ‹{b??¤Ýõ9ÙÜ`(,÷wPê2‰°9éxìS>¸·ËæÂ'N®{<8ìÅH wcyÿ)ží2ÊÇhi 5Ë™¤>NY¥{”Ó÷ÖŒ Ôb‡Ö¼Îö¸CªeÌUOÐ=zÄqСVYÇ4e¦Ç¶LXÈ(–U–­E$5'ËBÚØÃÁm EN#«˜Ü¹¹EppŸÅçæ˜7\¹qˆÈ¦,J8ª ˆ¶‡}äZÌzi…¡cWUô㜇½„ùŠJ6Ñ›Eâ±G{HÓjRž3è Á,¤„‡‘¶«2ÑØCÍ$Û!/¨,Í7Evb/ÌQ05ÄAļ¥ÒmdvöX¦A^\Àî`Û¬¢ÆÎACvpÍuš‘º[.“È ÃÚ-(µN $1‘ß%ðªk³`Jé1Zãj¾lY)Ýcl½†QK%¦ã.Fϧ¯¨ÈÅ2nj“—S²îùÈ"]¯a7!ÜÎñU“‚fÊ9r¢Ä&².¡Md¦Z†l8¨LQƒ”T-Ûä|D\ÈP"'6Ù YþˆSV 1ÚÚQB¢+”ãœYÑ"1 Ü鈸`öUü$ 6t4£‰©Dà)‡1%ª¦‰¯A0öÉcCO±…‚gšÈHhá[/æ*)†žáG1y$ã: ‰ª#=ÌhF”(ŠA’¸A@j…ˆÐ ÕB¬XU ŒýÔ‘+Ø-•Ñ0ØZÈvŽ-ŒRÝ:‚¼h#ÂÛVÈó˜YlQÕrfªŠÈ5\ƾNšø ”ì†,hCÂqB¡,P- ß)—rf® Üw?’Â!znc)Q’£ê"ícàb(9Qœâ&6}-FŠ5ZnN¤„²L„‰PÌî«rj'.‘‡1ªd€m|dƒW@Ou$5aª©d©Œ&ÈfJªyˆ¤›ˆH"ÉsD’¡é²$‘Ä v®#¥1Câá›ßû(`-<ýš±„g¦d©Œ…(¹AZ!ŠP5K@IIB$ Yõ g)BR¨ÖKø½]L¹\Å•$üÈ'Ncúw®þ؃¥:H²Lžf„²K©`¸6ñL"O%'$ÍF‡!VIb¾5Gd´ýh8Xy7OIš>{=•Š4Æd(Š‹ê¦Dí •,Íд2è V¦2œM Ò G5YŠŠB˜L‘+S A‘ ™Å×Q¤B!F¹H>«“*}Ê"Ë$š&LU-BL½‰ÉGOjˆ ‚dDA²QK®*èNÇÌ<µXƙ˨és´ow8Š2wz {a™(Tz)ûJêgVÐ’Œãƒ.x.­%›b ¶·FH]ëd•B¢„¤†‹•n0ηèÉ9åªN:L±‚µ2æ\N6Ì(µ#rÍG_¨0óöYež’l~Ô åx4Iéç§æ4”Í£!Óö#F>••uæ ‚£ûCê'æi¬¬1>¼ÃÑÎ]J…6žþ»Û¯qm¸Ë/þį¢+]¾ûï¯ðÔϱT…7î²Ø:ÅLÏxxx§ØâÒsUŠ#‹÷ß÷ª3æCƒÎnÂùgŠ<¶áðÞ£;øÃeœµ„z!ÜœdW°ßï±~ºÅâ¤HïhŸêÏšÍwþýþOÍ3üä§Nñ›Üâw¾u_8óË<·1äµo}›k»)ŸþìËœ+—øêïücܵs‹ÏÓ1ÆF‡ÕáÇlòŽ:£==â×^z ÙüÓÿò_ðâg_áùËãûxŸÛ–Gc5ásXÁ†1âQ¾‹·o°´&aªËl¨L§Û$ÑÉ‘¸øøËx´yõÚ-R­Êò3§:ð¥oOQž=­áI.WnMˆºc>õÅgPí ÿá·¿…,šüµ¿ù ·nÜà·ÿð¿ò7>E³Ýã«o ˜ûåOréà=ìàúêçiO§Löî¡8-U^>á°:ÉùKÿâ=œçyÿÿú9ò[oñ·þÇؿð>³y~´M;Ý¡\m²vêyÚ“·™õ¯pvñsÜîŽò)?õâ%nÞ}“7r.ožgñd…0.pwö×ïßd%8E}­ÆŽº‹4*íÖ¹ùþ 9`~}‰9ûI¼Ù”½üC$µÀÔïRÒk,ÛrB7PwcòÀdšÄÔ«˜¶ÉñÁu£ÀÜ©3tãÄ|ÆæezÇÛüÛ߼¹ |áS.uF=ŒËÎaÈB½Ê‘=d´[¦V7)ôº<تRš·‘»¶Â@¢„F£òpœ#*O\4¹÷n—‡#Êë›lºM‚ðm¶Vl / 2*HQŒj*¤AA6À®H´6Wètf?œ±~®¥<ÜS.+,¬-pÐ'ÅBN7Q5V˜Œ"ÒÑ.º¡âÏ Ê¥Y¯áGlipƒ·Þ°²1ÏcOŸeçf‡É~‡UŽLKÓ8!×yØKLîRKeJõ:Z²Àñ¨¢OµRb2Ë99×¢*7¹ÑÙgÒ»Ney“Zs•ɽ>»ñBVɤjtãy(S’MœrÆýÞ™ÍõM¢Dcö Oœ$”6—Ñ•[’ Æ4–WÈphw‚ÚdÞ™CŸ“Ù=x›^/a½¾€* & øÁ=³qŠ5üî”q´‡QhQ+Ï3Kgì=Ø!wtæ›%°tô‰ «" ƒK@µQÆ‹ct]GЦ) ÕœZ±€l˜úm”~@,1ê)–Z Úq ²\C&yøjàËY¦‘dCd­D¡#f3$L£@>óHe©›-ÆÏbÚ¾ƒ!+”æû„^•œL$Ø"§`$ZŒ‚CF<–ñVm4lÜAJjF(r‰8˜á;Fõm&Â#Wšr†P,|+…ÉÙV(dBIåŽb@PÒ52Y"Ͳ*“¤ ©– k .*ÃÃQvÀø–àâZ­( =-Q]“HPÍd¼ëLû36-Ÿ–Õâþ^ÊÞNùe§ž<ÃñÑïïôY=ý8KIdG!½ÉOÙb., -]`?Di?äô³ŸäR`rë«ß¥ü±>ó™èþÉó[ŸÜàåók”? ÛtÅåšNºÑ”V˜|¯Ë`þíÂy6”^9QäííC¶om±vþ×ú’:?u¾Å«Ö>­ú*µ–ÄÝá'ÍZ 4šû©„sy±F¤s; imÔH yõ·(‹üÌå%>è„|ó®òÊ“UV.<ÍÍ»?|õ[T/Éæ7Ó)FœaÔÏÒ<à`÷6Ï=õ$åÕ_úÏŠ–ó¹ŸþyÞx÷!ºÑg¼`À{·øåO½ˆY*ðoþùWi•/²ùó?Åôà=¢;ï¢/>ÁCÍÅÜÿ!Ï?õYN×ê|å?þC¾t Ï}ì—ø3gK¼ýûÿ9·ª<ýבþÍ+´ß~OþÜ/óà0ãöµoóü™g™¥.×úвs6[/£*‚­ï15Ö–›Ä¶C§{D-‘Ù/G×P7-"u•Æ8&míÓë•°%A¹9AWŒQë&3çHÅ„ü·9‡ÝZÅÎC – C—»G·©1¿ôì Œ—®¿uÄY§I_žqp+äϼrËŒø½÷|J­)?kfhö2ï+2“ Ëi»‚ìÛ¼¾ÿw¡Àü…"÷®Îh)fÜ Ó $æ-ԉͣ]ž´Ïz£Á'Ob{´Ë»÷GT§!ZÓ¤ä.PÌbÆ› ä‘¨æôÒvÐA-ÌÑ‹Æh³6­Z…Lq™¨>Êl€ÈlTÈ3Ï4iÕ[øGm:»}Ö//Ç%BήÖø;\»Þ§Æ”XmÒZßäÂê"ß¼ö:ï¾ñ&þùsâÉ|ã‡7éo1?·I¡¨î ºj—ÆœŒ¡Ì3ï!5,jA…á8&ÈsÅ„Yî9I6A$ÊU ‹‰¥PžI”Ü"~¢Óïà$feÅšQ²4Ä:YŠ;_¢l ²½ òL\ÓñFG¨Ó­zãTjlsÜõHýf¡Aa‘Ù ¿`£ºLLh—0u—ã½mBÕz}䡊UÀÀÑ5üÄ'‹ú(y…z½€0‡m³„š0(.V2áû2Ù™RY/¢×‹DÛº“@A¯{„b¦B¦Äè~ Y‹4Ÿ ¦R»…+Ió!Bd¸’@• (rÎ4cj†Ø¢LèE$Š© \IcT51ýŒ¬=`f»”+2¤‰b`§ò(f*çä¶K­dt%²uÉ¥[ŽB¤FLÃ"JRˆ#"£„¯*Øb‚5²XÆÑ¦ŽŠÈ2Ð,¤ÜF’&ÄhdHšyŽ,!‘È ¢¨P $¼xŒ¶˜àÅ*ñH¥de 6}Y ‹ø#×£& ,ƒ1U@¤‚m”'h±†žA?QÐÒ€–+ÃÌ  HQ‚KŠe¹yŠœÏÈE™LÑB8R\qÑ£Èd•‘H£§¬"Göè 5u±Ý9€Ž"S <4ÝÆ"WþÿÖ™3¤˜"ÃÐ4rUFBH¦Œäë(FŽ‘A˜JYEKR‘)6–.cÄž•bD Rž!ä™IÑÉc{ïý‰¦aãå—™ÆNl `’ Ìô£5`.#” 5¨ $yÆ,QPc‰²#3É2âaˆæX”t‡$ ˜ˆ¶Þ@Ú·ßûÓG äb$䲸„3 kI`èíÝ>ƒÈ`¥Õ¢YNðÚ.»tÑ*3æµÇqâœy‡|â"g‚RyL¹¶A{:aܰ2ƒ±$Q0äÌF2 Æ2j]A’’0"R¬¬Af…¤iB81ÝÖŸÄ1¡R»OÄhZUq1Óã .ÕHb‰âÑPJH¾Âv:£èMq"7‡a!»Øn/ž¢ø™'ˆ+‚’]ÂQ2Ú»=4›ãÌ…e‚­>ögXJLTs¨4V(·RvoìÄœ¾0Oa­ÁÞÞÇqîc§)Vì=¸IÜ™R7Ï »!-d˜š”ÚÅ\"Ÿ+â)™4!ÝPõy¬%zÇn‰çej—ÑÑ#GwŰ̢’‘ãMÈ&]â…%æêt'GäÓVá)OrêbÂýíC¶o>âôÊ%J—Oq|õMƒÎ>AKª°sw ¿hrîñ ÓŽÄîÖ˜²b +]Âe•5qa̸w#aÄœ{VB=Êñ×LWâîëcòY…ú…"'¤œrÁaÇ 9î\Á*Y˜«§X*sv¥‹6ÍøÚ{ ?qºÎO¿ø4¿ËMþ§}¿pò‹¬6à ûƛϱºüVò€oýk¨R™/¼ð2^*ó•?þ./Õ$ž¾|Šßrêrš\fçæMzã6ê'øôùÇ88Œx5»Å__[â¢ïŽUNÜ `Ó#*Õ8±´ÈÃãi'Ä”s¦û Ùt†{á"±Yåæƒ·9ê„|üÉçX:!ñ¯ßÛbt{“ÏŒ3‹[l§ÄO¼|’Q'à7ÿã;¬—7ùÂÏ^äÖ;oqïN‡Ó=ÇÙ9w¶ðv ów^(q²¤ñÁÐ#×VñÆ,œ:ÅÊf•éî˜?øú÷‘N–ù?ÿs¶®óéÿ׿&ÿÂßæßüâ§9úÃïñ¿|û‡<õ«¿ÎâÚ)ÞýÊ·Ð6+¬Ÿúwo Wwøôãxø¡à«ïòø¥‹<ñô;GLw§îSFé W§÷Ñuer‚ÎÎu:œº¸N«\çêÞŒÙþ#ê †u 1™4elªø"¡•˨ŠHô¶Y©[Xf™c£UFö %‡T/¥’­Ò»u‡ÙQÊç>qžÅ>ÿëwÑm›‹OlsøŽtšµO¸s<ÃŒL2wÀÕ÷z4ÜÅr›QWf®r–^? ã:.Ó÷šœkhÄ“7öî²|úgVN³µséÀÃäxv•rS%ö<´\B‘T:¡‡ð#¤z‘’ê‘PâêÕ>ÍÖŒSë«<¸×EN­Ö¸·çs´Õgõ¤†šYÜÝíb»5Sg:ÚÃÓæÐ )Ó¡G2·Æ……*ðì÷h‡l”(7êd†OìÌ‚ YAF‹StÏ&¨̆ RDuî;“d}*ó‹8’KªAæiŒÚ,X åbƒ¼2¸Ëí[¨õU.nÌy”lF³XE+¨<œ`÷*P°bÊŒÃ!º>ÇZÉa:¸K·çÓ¸¸†+ìÞ¡”•91_e$išÃiŸÝmŸÕb e¡JØC„†kR4*LúGôvÆT,J„xÁU5¨Õ‹hÖÝþhÍm¡LC¦áˆ\˜¸õ é$F(1¦b’L† ‹†j“*>q? éR•t¬"&v†186Œf ¶J¦]E›¦31MŒ<Æ64Ò‰En']¸c”‚ ¶]B%"¸.¤v‚($BÃÔÀŽSBÛ$qÊ$Ý}r·†›Ž‰TW€Ÿt+%tÍ jŽIHÆ4òpR“ÉÈIU Ydú[1‘óI¦Sby¹B8e÷`€³¨óÜú"Ç]“»ï_¡~±ÉÆò<þ½>;ÛÈÖ2ËÍyjrH÷ð€ÑT¥P«’›*ʼn`?H‘2«&¡†9½ÐG±@ ›XÊ”ŸQ(héMrcÂ@QP"%>DVm0 ˜J ¢6£|†Z˜²JbšdÞ”\–q4¤ÀÃSTÌL '*QTa¹š“Ƀ(bêSU«,4_gØrï ÃÉKs\>ý1n=ÜæÊ•+,Ï—8õì x·<<¼ÂüòIN¸ ìÝÄPS³`çL‡‚ùbB® ò®ƒ©7ˆì!¡bõæÔ"éºÃÁxH!†eסcÆtz3N%æ«5î#ã ÆÈy@«¾NÕ$]ªQˆ²zŠúªÊ‡Û׸ùÇCά/Ð:W£3:&˜°ÂÇì6í°KqÒ¥ž,¯/‘Nߤ÷@æÜKŸ 4ï³ûö­â Mn¼Ý¦Òš§hO8ztýÄãhFfð#ªre8å8¸ÇI½Ê…_{éNÄý÷Þ¤r~ž…åŒí6±¬0«:L$Økk:‹SVšœ+58ø­ÿÈVEæoþì§édø§ÿý±ò3ŸäñǸpý6G~Êýš„n›¥•L#|×áú¸ù¹3ü™…3t^ýßP¯ã–7Y.žÃ.¼ygµN¸p‚·îð±È¡ŒŠGv¹€™”™™Cd?A’Ê”ç-&YÂèÖÕ•0:Ab«¤¦ÊL5¨%fIÈñýc¬‚Jn¸¸†„œ˜xýC %f ‰—m(Èq“¬wL E”r½ “e<3Àt,2oJèû¤Ž š¯P¨æLÄ$’ˆc…‚œ£U h^Ž%hÞˆÜvˆŠ®ÐÉÓ1! ºüÿeê¿¿µKïó>ì³ïÝ÷~öÓŸçôòžsÞÞ¦W`0 @€E$EÑŠhÇÒ¢{Ù‰¬Ç+v§'Z+q"‹6%«Q,bA4¦Ï;ï¼½œÞŸ^vß÷Þùa(BÂ÷§ûZ÷u]ŸKex‘$Ñ êžÆ$QæžQ`N™“ çÒ³S‡Dž"K&2vH¥Äê 27ÃÎM<Ò"%H ‘x.‚µ˜ :ø†‚©ùhÌ †17¦æ·ÌœPjÌ×l¢þ ÝqŠ®–qs‰ZVÉT… 0Ⅎá’Ä‚¡Ì1­úØD„YKG²(ü¤%'R( r=ÅËL"3Â5kdZDìgئ …$*4jz¢)²c¨ ÓQ½Ü¥¬›dÓ ¤…!|&@QhTB¨Q$‚jáJá&0#øªŠpºxy¡˜œ:zoˆpt;'%êYÄ.tÒ0z9vȬ‚"Ì( Ĉ©˜ŸüžF!^àb2ÒjÔò‚ÂÔÌ‚x–®"„@¦:RMp qúLÃÂêUÒ$SBæQ FIAÓ+$2&U2”\"ÃP""Ó²­8æÌ¥u¢¢Æ`|Œ±ÊÉÉ!öúS¬¾2ÃÖï°w»Ïg¿ú*JÕ¥÷á.å%AF§£áÔmv·nQ¯K¼ ë îÁù† 'cE‡lä&¦×"Q=ŠØÇUѦyÞ¥¢Œ!Q9:®‘žÞÃmV˜9û)®%S†Ç÷¸µ;aö0æ¿ø™çxíÕ5þ§ïñÖ›¿|éVô 7O¾ÃÜÆ§p¼§ÙÿÑìùßeá§yR†›GïóÁd§Vxbu7ÃSnÿ›¬\Ç+[t6}žúÊEâSxóîa»5ò'§¼8|ühŽ[ÞO5 Ôê2§õÛ‚á¨\Pw8º×Ǻ°BóŠÁ̓CÔÝ=¾úBqa™wÞ¸Ë[ß}ÈÚ§ÛÔæç8ÞQ ʤä f—ÏQä)±‘ÝÝcJ­Eõ‚!cŠ#ƒê ”Û%v„‘Y_d¦e"Ç}>ÚŪx´Ï.!¦C-"ê qtUŸeìw¨J(Z%ŠDØÀ†xZ„b4Ñ+C*ìMŽ!©Rjg˜N›°—£!“–ŠŠL¨è:¾f£¢H‰GäªI(,ùÉoMèè8BE2AL„ã J:$L!t‹DɈ„ƒ®eˆD'Ð,raá(z¿`¨ºŠeB(UùQ5ÆÔ LUE™H:ÒÀHS<+Ï!–‚(‹)²ÏÐHµ†®£©Cü¼ŠH>™Í1°É´ÓH@j¤FªK\BQ`g>MÅ:Š‘á.µB! $E ÔPc4ÍIÝ€JRÂ/bRJ¸zƸ$x¦CV$~. ):)…ªbä C©"DŒWÔÁÌ™h*z2¡"!.L ¯Ž>žR~RÉS’‰DKtÌJŽ;Lg!Û¤¢iÁ6n1blÍ"Š•\c,lŒÂ'Ì \ Šœ@—žÂ°#)Ò"ô.]'Ï|…©ãè*ja¡Y!™4°ÉІšä"KÅ™"0Ô˜,É1djhä–‚B.%Z®"uP‹„ûïühôì•Ïák`ÚJìÇ)¾ò ¼¬Ð š ä˜9˜®Í4ÎÈâUÑP5“,$zB‘¨±Cf§èRÅ'`tïã¿¡Ó¹ÏÊÂy³+mï3oùÆB ]”± Ùäd¹Is.G=tí)xÔ…Ì£«LI³ í¼†ï&ì@e¢d1A·Zé`)‡™dTh255Ü4Bl:UŸ\MPG¤„f„•ÕI-II0jD– ‰†á”pÑØêq¸wÊúå5Úó—Ù{xÎ[¨ó<Ý:Ã@é²·wH.+¬Î×0•1C¿¢X¢D˜˜i‚Y…<Õ9˜J¼RDm­Dg’2y0f&G;?bЕh…Åœ1Íœ¦ԼDž™³x)“#ª†Ó^€QÕó)ÍBZj3 %áh“Ç{)«K¬Ï«ìø‡l? ˜µ/²veƒ}ó›Û÷Xu¯Qoµ¸·ÿ1fš°xñyjv16Ì85|ÙÅŸ(8IŠnÁ±c°ê.±QŠyçÃéR×#¬9§g¯°u8âã›÷М—®ž§¡í‘MGt/l ì=$œ Ì™96j³‹[ýGwÊì…_|é9Là×þîÿDó‰—ùò§Ï¢<~ƒr5ç…5&[Bö1dcr' ¨^Xà ³eö?xÄolóÄk¯ðÄõÏð£þOMoóé/ü1 v÷X+¦¸—[\_NYnÌçܽ‡ðB›ç}x¿sŸF/Å[¬"ªàUâ'kð À÷Ö%åÅv¶2¶^ßdymĨ:‘Z$t8Ó4é§Ü¼}ÂÕ•%ËWxó?æBUç¥k¯òƇ¸µ“…•5žx~YÄ<¼1eXø‰qÑãµKŸ¥ñÃoòÛÛ› .]cݯ†’?L™/?ÉÓN•‘s:º‹§*Ü©~a ^,>" n¯Pú´äìºÏé ÕnbψG.¥¼DœœR™-Ø:R)Þcõ§ÆUòÞßüׄ¶Ê¹Ï<‹ºr:=¥CAq e£„gëh¾Á~S¨æZ:ÝÈct4fmU eN|ÇèÓ.Í0 |•ö¥§(êšÁ€•æSÈÔÄvïÑö4öwøîQs>ó‹Ÿ£¯ð?þvŸW/78;×çko 9SóX_ðö¶r‘–™€²I6¹7 X©šX…ΰs@£±Ä\mbÚã£Ócòá+µÊçV9ì?&‰UfgØíž¢„C[éX£ŽÑô#/PyœS]Ÿ£ð ¼·æjœŸ?ÃætL<Þa¹r†¬brtçÞÙóͳt<æ$ìòäÜKÔªuìS“`¯,QYªrÌ£÷q³ —ΊS#äíÃû¼Pnpné ÷‡¼÷ÞûØU+ç^eÒ=æôxm~×TqÂŒ¤äcéU‚ш­ý¬f…ù“83HŒ å B)tlUrl¨8§3匑ç6Nt€ï´¨TVðó{G}ªóg1𠇣!ú¡@³5’ZÎÂ\9H¸qÿVKà)%¢ „¡ç¤Å ƒXs‰ONH«9­–…ß1Ã1ó–Žl&uË$ˉFa ,S%{œÚ‚b,q ›F– £¤'=B3AbáŒ]à›&e™01T‚a‚ééž‚šÚŒc +–èVŽ##†šŠ¥eÍ#ôû˜dNÂ/j‚BÍ#M2¤©úCêŠG©¦–(¨G9ÒБM]$Cª›áK =‘ØÒ jl¦ìØÃs+ 'ĉFª¤È ´¼‚ÐÒIBPÍ=ÑÁ/uA®ªr‚‹ONBáWHµª?@‘cLÃ&—0-,la“ l3K§ÐÔ‰Ž =*µÇ(ˆÇš‘¡eYFÉöHÌ„"”8©…$!Ð#¤žã -ÂÄsGßCÕ &š…A‘èLÝv”Q›úŸ4Ý0Å/$ŽJIC 52GAW4\4¢…¤%Rd"8®zx§Sš¶ä¨žAbS¨: QÊ©ùÐÀ-øƒË ±ºÛ©E––. ÐÐQtL ‘Hl‘‘æ%d–¡é1 Ÿ 5C ‰ˆT,M%)*D)4rUCÑs”<÷ßù‹ûü3ŸB”…´0”I†«k¤™F*tÄX¢Y#%& <Ó ¢@'$±F n«øZ€2–¨¶…(lºw‚i85—¨TsòÜ$9éY.-·LTr™ìÑS#5›ÅR“ÎnL`Lh:UÜ8$SrÒ"‡n†e{(u…ñé‘ ©6FmŽÞ¡Š¥ %h‘š}¦ØV•Üö‰ãœ|¤áh9‰5ÉÉ,Àá RJn™êdáˆi’J0&f3#ÇÄ‘‹áNPz*±¨b• Æ{˜Ž‹Sqˆ-—Ý­]Le‚[i‘¨Ö(&QFl> Jƒ «gª§Ü¿q„1Wæ…™¦¥ˆ£í”c"ÖÕ¯µˆ¾ZáÖ›L§œ{ù*3­Eî¼y“Ã[;\õiV—–¹ùñMv83?Ã%ã fŸûØflS¯ F’вiT ©yôs9Ð˺ÔEê3”gºÈÉ”ÝC“ic̹æ QœsºwƒãÝ#ÖÏ]àÒÅ'Ù;>dëÃûØ*´Ë:^«M:S&¸{—ý{]fžz–ÅEþÇôâ6ËçËìžîa±Û>ý`‹êü9æÜÉðˆ¡V!*:¤°~é͵6›{[ƒ05:“œörÎåÁý¸ŠtbD¤\à‰‹3L“‡Ü騥:çŸtøôW>Ãë7¹÷öÿåðlòµ›_ã3¯ý³ö<øè&»Ö78sñ%ZƒyþüoÓÝù›žÃ¡Á7¿û[ä“mõ2 ³ƒ ÿN9GÇëçxáåŒû6Y\z†Eá ¶i·¯íKîù{\ZobmØä›û¬šÜ^­bÏ´9º½É‡÷O¸ôé:×ÍKüéÃ)ÿÎû(gL.¼ò ³w÷¸·sÂÙg.a(C¾õö»Ì-^çù3Ïðæã?dûdÌó¯}•UqÊ>~‹q>Ëz½I“Yîôwx|Ÿç//³²¼Šìïï)<ÚÛaæ¢Æ|å3¼ñÖCþé7þŸûé¿Ëç?½Î£÷¾Ç·~ãŸq|ö9þWõ™Üú=þïÿò[üûó?ã 35þ?¿÷ßPxOð3/}‰{›wx°ÿc^xú‹œÞÚfØyÀ¯]e°mòøýËžxí§øÞnν¯} ýSg™”`á0B6.²iöiÜ!\&I ;Ë‘Î!ÕÙ3„ÉÖÁ}mVã<±U Ä8 &cJÍ‹li BÝäż„3×D=ðÔUƒGMÞ{ûSŽ8×N3üIÎõKû[]F{¾t•íüˆÛ7n³~f_±iÍX‰Ï{o<ä©s³Tgyç·´çÏsÉÔøðÑC¼Ò2sõ7'’e­Jµ¾Î>ÄÖ€Åõ‹î”t³K¿àïÆ´šuÊsãÑ5Í™SÛhM— ÷w1ÂŒ¹¹r·L?|Lke‰ÅåYzGô¤Ì]¨’¡Ó=ô±‚)^¹Aªë,ÍèLÓÝÁ˜y³ WËiHBê4ÖaLwŽ©¶g˜oÕÙÛêãwh[x³6j#áôQÀt4¡R—˜v?Ê I©¸  ÁN܃1”Z ­@÷]b†LrBЖ lE'êO˜(Žf"=™$¸CHZEXà’ K·‰¤0ÔØ#rBLQ¥¤œ ‡RÓ@“:a …I©¦¡)] ,™9~b°`({{ªQͨd‘ȉS?4ñ,V(%eD6á`¤ÒpD‘¡ê;e2¹ƒ:è5ŠêP¢X#Ô²¤‚UI‘ŠA*è2Bñs¤®’6ž!ƒ‚Ôh $F E¤ØÂ'Š4ì¶Ž5†\?Å´=ü°„_ °#BÓè}ŒÀD- |ÝÆ” š’ õ5K:n¯ •9iE"õ‚ò´†¥è+ÍQsI¡ihfÆÔT!@(©k˜˜ED\H*ž‚ï{¨2¡(Ü"!,yXBaf è=“ØÈ˜÷z ‰2–Õ¬`¨Yq°~òƒÕÞ¸J&¹£ã¢B’ '3º É,¡ 5r-M‰È T,]Aæ 9è Š¡Cš‚b  þ$ƒµô™çpbAFA˜Å¨º™JRDhh(e ?õ)â×tÑ‘L”Œ ÆPabàŠœXËÈ’ÛßúIÈ=YD™šô§§ø€…r5©0õ‰ëçJMŒALw¨!fK´mx<î2LRÚ• åî÷zLÇÇÌ6WÑ¥Cí3Û¨b¤:Ý“>¶p0ÈâÛeVõ˜L"%'ÏU*LÐE‹TÈÜù$& ļG–”]É(ˆ &*KªIQ’¤ÓˆÂp™Ê ©ªâD*¹«@xJRiSU@wsâ¡O^x(±@8P¢Ä è²Ý™°a5Yfž‡9~w“™'çY])Ñ èö «ÄÅ mÂ(P; h5´²Šihe‰Þ‰¦9ÂxuÂ8gûÖõE–_¶9æÐQ œ}ÔIFœ9¨*\<³L!Êܽÿñاrf…x,('æWëŒt;}ªCƒ¨$‘Í&G÷úwS›©R›_ Õ®p»{“½o¼Åúê‹\|éS<~üc6·rýüçðüˆƒa‡Ö\†-¹}?¥Ñh ãÆí®0îuðâ€Aä²yp›v}™ö ˆƒ?0èÆ uq• ‰"rã~ÌÒåuJu[‘?`vå1ƒ§žäîÜäØêsÑhruf£-v¢†ÓÀu]Lr²3æX-±ºì2oŽèÆ [Çu¿O{e• GƧLK' R m\¡²¤ÐÈŽ“êZAY[`)×Y¸X¡ß‡oÿNÆ´¶ËkûÞìYn|ýBEò3/á`¯Ë»5^¼:…~ÂûÃ%žž/1žÞçþ‰ë-bÔTÌüˆ~<@È9VV—))wÞ{D÷dÂÒjVóÁAÑ<ßäôÁ}>xð€ÖŸÇq N0h7-º·ßEHÅs—ùñ׉)/=ÿeN£)ûïa¹%.WÎÖ ö·ЮµâÇwPë«çW˜!a"XÔk¸—`¢sX0S2ÕÀ¨¶‰âs°Kk~Å«2<é"²1õÅyP-ºG›L n©A«1³¼ÈéÁ˜;›Ì™‚ÖÜ2-èZ†’ÙvÎdR#M@µpÜ&ÉD"ã GG(fs†h¡]¢aðfдO†%Cò¾†oØ”EƒBž"„ªlà«r_%ƈ–F)®`iz*ˆI਴¢O޽̔XRbè‚N ºtVD¡aJÏ™RgÈÈɘ’WCÑÄÇBG§À×tôØGšEX W‚(@KB¢“œ ma8E¨#‚3õžNnI?À‰4Òr€L%¹b’%í–Ê0MQ‚_Sƒ¤Žô&èfB1QQ¥FQÁh' å|̸h)䮊L¤VÂV§M%.„:Fñ]d¤ãÖ ×GŒštÓÑNiIA’$ˆÔÁV &H¤¦S)2daZÏw˜¨I¡ã‰ݘAD ¡ÕÁKJ˜J‰a̓b‚Ï0nà¤‚Ä Ñeµ±TÁpXPèuO±F FŒ •ºe2é¨dªÒÖ4v›Î$Âp2¢ÉžH]²Á‘Ã(EmxˆÐ ç¡¶(»û7Í9w=7U - M(¸ªAlë0RpH Q)ŠXA1Y¡¢i †‰Žêš$E†¦&("'* ¿ó¬õë_¦PR%ÇÊ<ê±Þ¨±V*q ëŸøý;X³%ZgÎci=âÁ122ñ ÕU©83?8av%#Z©¢ꬷfØ{ÃD™¼ÿe½Á®ã".Ÿ;¿Æö­SnŸnÒXz–«ÊámNšÔÖLJñÔ®pÞ+Øì…dj µÚ&p z[ïr|sÀ•WÎóÕU‡¼þè€Êì)ŸâyÄHãÎÁSkŽ *þá‡Ù—.^ãí7Q»[\ßøOxuy–ÿðúEv·Nùwßc0Ûæ…'=®·šLß÷yýoãn4øÒ+Ïr÷aŸßûÿ3×.¾Ì³¿ð×ùøÍoüàû,¼öK¼°tž“w?¹Ñç¥þ/­öøÎßdÎðSOŸåTv؇T¼+¼þæÎø›/ÿÞùÚCþá?þsO·ùÔÊ9’Ç{`:®jŒn‚aä±”V}™aæMF˜b̺ÞfSõèø˜¡…Z.MŽ)W¸^‰ƒ»û4Š +gŸ%W÷˜uº¨Î,·îû¥\~)çÉk×9òÇìöÌkb4&+Úx-Á£éÛÄÇkÌmœåþé ãÑ&gK$-…ã;SôX Ô%ÍúŽ3Ëéñ)7÷ÞÇçœþ C§Etÿc\Û„ò<[;»Ì>•¹%Ù£Töèõ"òl@»²Œlf<>:epœÓž÷ðÊ«Œ‚>Ãè”zd2Kh3jÏg\ºHK0>8elÔXY¨’¨ ‡S’‡s¯\æìì ÛïÝb§ÛáŒ]Ã4à¸Õb¦êâÑ ãH H}°U¬PŠË4”&ƒF‡Áö!ËÆ,v›ŽœÐ{ô€ž€†Ycf¶Æiâ#Ž5šå2NÅb˜Ó?a…’ê ¶¡pØß~Jsm…Fk–ñÉ{ÇÊó³x‹‚~gBÚÏÑKc¤îR]˜!Mx|oŒ¥jË þaŽšû8±Ž~N'hì=Þ¡j»¬¬Îpê÷9íœÒ¢E­6ÃdFvûäãOBËz³J>Êq¬ÏLð“1&j$±E†éÔICIGN¨š.Š(°Mák äO3Ñ\LeÌ0˜à ­dSD¾b§:¡‘PMT-a –h&™îS„>…×F$ÂТœIxŠW«£Ù)A&è³’ v ’f!ÝÇRêÔ—¤‘ª…H†X.ÂÅEDô•á˜T4×€ßFË&Á„–9^…A4ÁJNPð(tÝÖšYˆK|ÅÁ9¹£!$iLŒÄ%‚4ô 'ÖS ]CÕB "̬ÄÔعB=NÐõ2±¡0R\Ý¥0}á#Ct5,H­ já"æÄe\Œ)s`"LA§4¦œx¹…Ÿ«Xr@†NI¯"Š):ýáxxJ:ð˜¹n3  QSuüPeRõq—ë¸;>§§#ÊZ‹™«rFvÃ$­RVj™K§œ²*…có`û˜isáÚ9ÚUoØÇ"çDdÑ6N´Dk¶Å±ºÇñƒ˜ÅšÆú¥½F™éÍSún²Óíó™_âÚg^âÇ·þ§ßzÌ3_âêå«|]Ÿ§qq—퓦,q0–¼/|ž8é1tùÕ¯~…ë‹ßÿî7©^ZâH¶È‹W¯´9Ú—7wÇ Š:/®ÌÐZo°o‘|¯·q…qù›ÊMÎl>àâÊ_a/4¹ñá·i_²¹pþIäN‡[§tê/êC~æÒ§ð–|ëwßD×rž½Ð"h•Hw›<Ü?Å÷N8;Sã£þ„½hŸ'ª—ñÝ ?~ýÛlîîó©_ù ‹ãN@ýRòõyíó/ódÙæ_¼þ]lÝæ¿ô9¶ü1ò‡w˜õ–¸üé§üÍ” ÛI1Â2+×ÚÐSx¸û.›e›õò ¼Vªó'7¿Ï7Ü2ÿà¥/ñÌþ©ÿC¢b·{}f–õ¹»ÛîB›ÒtÌ·Oïðäsˬs…ÿáÖ6/­ñ?[-óg¿ñÇÜíXüòW?Ç$éòÆ?þ3.üô:³×_äÁ;!Ö£#ô3>£¾ÁÕ2Œg–ùÖ‡7hŒtZW´^B´=aKŽY®­pÑíñƒ£ÇŒ»UÎÛóèë:({›)By·V¡™¼HÅLØka¹ÂS uŽº[ìß>d½¹Ìêò%”bŸ7ßø‡‡>k¯<ÍÙö"Åác>È"òf\†t¥3·À &[·1=(—r¢}(¼2-âhx€â+ÌjëND7Ü%~¨P½¸Fiå€ÍïBõ<çìˆOhz.\Ÿã‡>"~tÈ«Ï?M²êòøÃ=ôB’‡>%Q£a»ÜUÆT2¦3Ïé´Ã\Ûc´ßãÖΞ|ê)Zí3|÷Çßeq¦Ì¹êyÔrÈ£K5><ØÇ˜œ{ê:ÇÙãÇG´Ï¬0ã–Hz*;ñ!¹gP)ÕANh'èþÝñP«øÓ.2<¥:3¹Nçè/ˆP¬2¦ãra®ÂAG᱿ËL-¡å6`¤ÓÕúˆ±· (ùeöw˜«˜Ì3Œ%ÒߣUš!tM¬ŠDeŒNˆeŠWª¢¶[TDH§‘a˜%E£CLS¢z.C™¢N4)Éke Å&þ‰Àšz5 £D¢§DĨR¢Ùm² EAÉT¦ •bE…í põ©H”S ?ã*P/mÏ%Lo?¢9„­&bxBªäÔŠ2ƒ0!4s´"FD9¸*z 3Š&8®A˜j ‰^ÅR?á×DA™šš0q"TéR6t&¹h¢EÅò¦òÔÃYv°ŸÃ`‚5Jqæ‰DމìiRÒ©Ì4‘½v†GÔ*uζ]²AÁf$™d’e7£Z^"Î}¼£œ{~ mÒæ`ÿ!½á +ëg¨Tæé<¾Ïñá.Õùg¸¼6C÷àî=JxúÒÈ¥„Í?;¢õX[?ËÊLƒ»AÆã·ïR™·X¹Xa´§SÕ®_ð8<ÊÙŒw¨Öf(&!CU¡aÔ9Í#\+D%&µÐP¦øŒÜ¶}Ȳ·ÈRâàþ v:aqã9¤8a?Êh5‚û{tË>W/ŸGäÓÍÍVØ>üt—Wž{ ¡fÜß>bªD‘ÆÂÚ‰<âðñ˜§Öž@C$Æež]µ0̇lmùœ™1ñƒ˜½;vEk…Ê5ªUÎpHk¹ÆC?BÝÜ`'ë³2+¸RoðçÿÏo2X‰yí³¯Ré)üßþÛŠ÷W×ø{/¿Â÷Þüˆoýçž}™t®EtÒž{ÑKÙ~ø5æ>÷3”ËýÖ¿B®\æÚ\5; ?–h“‚ñŠ$Q(—uVƒ ïn ykx‹Ï>ý"Ïœ}š›ïðç?x©Žy~é2Q³Êí´OÿxIJo£Ô¦ŸÚl´Úøî1a¯Ç•åkìšpïÍ8Sž¢Í¯2‡ÇÙÙ„7öNøà¤à++^¹Ú&ÜVøÆæìسü'ÏϲZ-øñ€íC…ÆŸsçè'Ùÿ.~ÅæÕ_ù÷¸}û”÷ÿøå¿÷Uf.^ã·ãŸPpLåÒ_cã©2¥è¿óí˜rm–_|"æîÉ›3–š‹ŸŠ){ nìŸüÆ2:WæÊK/3×ñ–Þ¡3í0c¶ðcÓªÐT%™9E–Jd“Y©ÓˆCŠ`ÌŽ³@I¨XnÁ|Yaw3$?í³þÄ:¹c°õî}ZOë<û¼G‘Ÿ{qóçß¿G«nðêÏ\æ8È8y˜ÑV U•ý“œ‰1'†c_´Y›[ääÁ;LÌ”ù5:›}¦Û gVèåŒãAC¨<ìàw¹´öFÓÀ?ùmbR^<ÏÉáýÓ»\YX$­Ÿeëp GŸR±šììîQ*»´7.±»Ó'89döÌ"%[¡ÓpÚéa+mœ eÔIŸîiFÙžÁÎ:ìžvX(/P¹e™Q?9fƹÆ9œÞ%N".¬´x¼yLR$"™Eµ#ÔI‡a®c¸-ê¶JÐé3umò’JzäcŠ&ÍómâшÍ;›è³.+sËøÉ”Ãá j—sjq“$– N‹s+U¤í1Qº´s†žË@‘ÌÔdjqº Íùµ)S|’ÓSðR‹ŠëÑœ…˜Åö·÷NNXš5Ðó加Ûœv}ÈÙp£AľÓÅÚ‰X¬Îqvuž·îœ²·yHÃ³ÍÆ:U}ž[÷þ ÷wÇ|啟åÒù ~üáÙ<<áâü<ÚúÇ'·ènÞâÊÒKxëM¶ú'Tu¢Ó=ÜF´æ3¸NÂ$hóhgDÊå39Ó“‡ÂbueƒZ刓ÿx‹gÕÖˆ0Иhu[§LIû‰Eœz‹+­ V[üðõM²s_®?ÁñcɃð&öY…w‡}´û /®W©_­ñÑøˆï¾9â—/Š{g›¼7ús~1Ú¯ðƒ]TW¾t™%ÙäÃoŸqS§<£àµá̵«Ì?šòÝ; jýê a¹ÂÞK°š].y*!›}Â4âéµ&—ñøÓ»‡|xóøÜ¯þ4Ï/-ðî¿Ü&òÊœ«†|ôÑŸS­?Åç/,ð?½ùC&Û‚_û•¯°}¼Éw¿ö3gϱú\]àß Ø™”ÈZ>5™P¯Ì ®¸œ¾ó%¥Eë•W¨§Ç8»ÜO«—x!ñø'G3ÒvøRó‹läWøZç úþ!óí(×#Öã›ìj ôÏR?ÝfhLX¿¼HõîC~çÆ”«_ý"¯žò/ÿÑ×H”*ÿég¿ÂûÉ.·¾ûágžÿ%FáY޾‹¡S£“`Åv£D-±8ì†ôû ¢Q¡UŽ8 C:·#®n, œ!c¹³Ì;)Ãð„¦Xfè´ÄI'¤Ù¸Êôè{”ò³ÿóÏÓ|Ì}o—ÆšÇWŸ=æÁ£–ë³ØgK :9é4d®¤¢IIÒvHbƒí£cò蘋Í5´¹3„£Û$û…i°Ä4g×®¬Óëtyïö6ë…ƒÓ‚ÀŠ(Íá¼5Ïþþ1;½„v@\Tyaî9‹7ï28<åÚ¥eÕdÿ¤CŽxamDZù8éA hÍé  t×ÂjÖá^Ÿw«Øµ–—ú<-KÌU’!_\Q9|k’òÅ‹k”W|ç»ïsü=›Ò%ÉϾü*L~ç¿þm”çÎð¹×ž z÷o|ý÷9ó•/ðܼù½‹ šÇÖá{˜ÍyœÒUÞ¥T.óÔò½i—û³¥a©(FŽZ^ fYlmîóþà˜¯,´øüõE¾;žð[?Ú¤ùòY¾r±ÎÕýS>ˆ-nÅ/ÖæÕßV—Yxø‡ 'ÊŸþ"žmrôÇÿšÒ™6¿øy>ú—?â‡ï¼ÃßùƒZ¥ÆïÜÃ9è3Nc®¼2Ï­Åo¾wÈ ˜ð>?ÏT«ñ‡ú¬·T®+ܰZTgcâÎ!¿þöMœdŽ k3õÆñ %2VM< :A™E„Hyø¸‹3sµÙ˜Íƒö¢œe½y¾EYSxtãÝQÊKŸy‰5y–{~ŽÌ¦D§]Š"ãÕ/> +~ôn‡Æ¡…]õ™î2_:!9ŒØ+ÏQS«(Ò¹»O¹>Om±ÉÖÃ-ý„3kžÝ`:͙ҥÓÛ¥P,m,â'}ÂÁ ¸ÌItÌöƒÛ´KË,_½ÎÇý.›[·¹|f™n¢3=½Ç……3ì‡5¶ÝæÜÅ&íò '»LÇ}U•ZsÎt““­€åöE´bÊã;èå.-”Ùœž&Ô-‡¹Ë•™6;ÞâÖÍ-–çÎñÊg_âq0äÎßäÂl™KW8lO8ýèg®Ÿ¥Õ:Ͻ½÷p3ÙÖ<»ã¥(¤9ãqÚ;àänoe•õ'j¼¿½‡žòâù—Ð& ïr'”Qq…ŠêªìwÇDFÆRe SME‚¼L­Ú¦Zr ú ¶rB3cu±ÁÊl•ûG½‡»”›&vmŽò åÔb•ù†I¢ÛtºGhyL»Ñ¢7Oðt“Â[ Î÷‘åĪb—°MƒÒØ$U"#ÿ¤&j”͘Ì:*ýjŠšE´Ì ½B¢…cœ†N64ÉSŸ‰©ã:!|ÔTHI.t ¡ ¡ÓLTÆjNZH¤±*f!ÓpBîj m2Åâ“Ef˜–C,$ýpLÕ5!¯£Ž$2%¶"ÜÐAS§àjCJ»¯ÒQ¦XŽB¡‡X²ŽëHR]%Žl&ö+¨æ0q=d!QDFb’%6ºg p˜DǨª†Š…!3¢–:¶¯!µ%Š( !jª‘:vñxŒo«”b…TWQ‹]/Á†rJÙŠ02“¡Z`¥9(:¶[ù&E)'‹zÈÀ£ðêˆ(†"½Žš…„u7€HÕÉ' co€gÏEJB:TpÛ-Ìi‚oq2‡¬0q*dRFˆ5ï“N\ÒT#ôJTŠfµÁÄ‘Ž'Xv…pN!ëFØEB¥Òf˜£ dY„>jXGºŸ¬G`µÖΓeMU±L ™(FŽP¦ i¬!sE¤"bE!ÇÄ&ºä&–ša*‘–¡Ä–VjZ¦RdÿíTNóåçð…,–(yNjb¥XK#Ë ’$ǰt‘C$Á,>t1Åö4ò¡N*$†gbF9y¡g>ƒGýåQ'%Q/Æ2,j^•®›’DØØŽGj ˜H¤›à‡¦>CÕµMïÓ=pXX›åÌùû?:dw’0³¦1—O馳„}A%ñ™h–`¤ijc«:iP Yœ‘i¹ ÁR;—¤ª…AÆÄp±Š—âß¡ÈtÒÂG˜:u Ä(b«hž‰¥¤I‡\-°.“CŸ"´fçÈñé>ìS˜:óçklï‚0#Ú³95s•trÈAï„È®Ó>3KÙòè÷z˜AŸ¤TG³ Š"Dôª¤©$Ò- oJû´Fª{œˆV*¹FšÄ,6ë8ŽÉ»'ûL÷BÖª6•¹2³‹k 7»t:G”Îh\³¸¹ƒág¬Äë#>ÊöȦfæÅ$ê{(͘Iï!I¡rù©Wˆö#¶ýˆî¨àÚsϳ°±ÀÇ7~Èæ7ÈúõW¸ú¹¿ÂèäG<:¨-]Åø&½É1Ÿ}þE´jí»Â阸Йo•8S1xø0¦Sr9³ š2áèG ôŸÚB€é®1k¼¹w›ý£Ÿ¾4ÇÌòî‡e”b‹JyÈ KŸÂÉ †›Û„f¹mmΛ}æÒ}~îç¾ÀÍéˆï¾}‹sŸyŽ3WfùõÍ,NùÕ˯òß¿;f¤Ýç¿þ…Ÿã» ÿïóÏxeuƒç_{™½“>£ÒWí*Éá»|ض8{î,%Eòî‘Ê`"ùåõ?Køã7;Øk/xĪàíïòÁëopñ«³üêÜu¾þãÙ{óÚK6n÷¸µ©ñâÕ‹T´}~ð·¼ðâϰ>còßýÓïB£Äk¯^% FLîØ l¢ò„Ÿ*MðÕ%Æ¥ûG·9£º8F?âÌeù²Êøöwùøö/~åó\Zéó›¿ñë,¯-0ûÂWø×¿ùö¾Mú¤ÃS^ƒä¶ÂfTay5Ç §ŒG85A6 H r]0’r¤Ñœ-£ÑeøÈÇœ{’vyÊaç.^íY¦ã»Ýø_ü7_á-þãÿÝ7óY~í?}Q–ñƒ·N(g>×V]æW¹3°ùàÊλæ'èé1¹:^ÑQ»]4ÃâX—ˆÁˆª×`æÚ2ƒÞ„ÝÝÇhŠMk¹M5ï0¤Œs ·*I}‹4Ÿ §®¡3D€7¦:Ôy~ˆ•0£?B“%fË-4%&É#âX%Ld=A‰%%á z“ÄvAc¡ gšˆq‚æyäÓ˜Š(áKáù”}… €±ãÐÂ$즊S11Š„²ŸrÀ'¥­D=IQÕ±4U&1ä"UC/7¥õ4`¤©X¹$CÃsé4r¦Ý!U''´ê¨}I’(¸UI&™FE™Ò |TáQÂÆ2 v­ q'¡¡Æ¨e‡±œAíNȲ!šé`k5²Z¡ƒŸõ0âŒDW©$¾Y`*Pm©}å.Êv¨1Î$ž*‰U…iRÅMœJB\¸L„BU òT#Ó ŒL’:V>` 2µL9 QM(t§—àW3TÍE•!BD¹kc†ªOIQ±…¬pÑ#Ç)ê\ƒ¢7B®)éi*N!}¬ô#5ˆc“©ÓN æªmö&{L†S+mô,áä(¦©;xõ*ƒØ'HÀQs¤ˆ°¦T›H'Áñ EEíÜûIkõi²<ÇÕJ¦’Šžàè jdh’H ‰šŽ‘H–*±Bf䨉 S2ÝBÏ5ò4¦ ãá{ÁÁÚxò3LŠGÑ‘JA‘e˜)(FA’FÄ™ÀÕJžæ9¦áRD B—U%LL4"rSA’ :I,)\•þŸÜ›m´ýË1‰Z%죀˜µYǰs<,úqÊáQùyO…IÖ#ì¨ÌW2ĬÃà‘ƒ_Œ(•ŒÙŒhú¡êq|rŠVMh” û-ÏÉJ ³GÜ 1R1[ARE#ð#‚rŽƒDê.^ÃxBáh&äB P ô˜‰âS 40*2™ ¨òX —*Ô…@é¦N&¤¶ÊJ»Bìð}Íq¨zÌÒ,½0"Þ™âµVÓƒQ7AÊO÷ðÓ1ÉØ¤dZ8óštÙì?f¼²øÌ:^-cçÆãÌ=±ÀŹyNøÑýÛ\˜]âÂjƒwnN¨×ç®7go~´ÇaQ>7ÏQþ˜éi™EQ£qÞäÞaJÏr}³àx7¤qq™Kõ³¼~÷GDù/,>ÿ >yª'ǺåpvµÌãÜGšl$‹¤Õ2NÞBÜÛdñÒ ÔZM2"ö‡CFQÆŠÓbõ¢ÍîÉ)[;ž}vLÑøè`ŸE»EsfD¦¤4ªçYÔ >~ø€»7SZW®ð™¿î`í ¹}SçÙ¯XÃÏ}~?üÁ ~ów„ûÌ.>uìîCäïý÷hç¾Jþä,}ô&·“ˆÞF“sý.;SA¼8‡§ h£rvaõô„›ÃJ®ÅÓú¦-…ÑÑ+Š) ÉA[ã3Å*…«ñ‡w>@/t¾ø3_f÷ÑcnOXY uÔE ޹¾²Ê;ÏŸ¼½ÉËøê+ø‡¿óƒí”_ùÙ—¹»Ýå8ðé™î¥Mv¹~y•µ‹Ïò¸ÿˆo¾u¯¬¿ÊÏv•ìÍÃi´ÆÛËçyI?áÂ0çÊ £p“ç;]8û2ãZƒã?ýÂé1ûéÏ`Ý’ÜýþiiŽO¯ãö×wø°¿É³*”Ü+O ‚ô>ƒ´Ë¥ÆeÎØÿãN‡ã`Ÿÿå_½„ázüñ§û&{o„=J¹ðÂS°¨søÞ&iÞ¥yVG85ú÷§TªŽ–ñ ð¹àÒÙY’Áˆûï°\eñ¢Ë§{D[ ——tÄ™”ǫ̇ƒá]çO^]&îÔÉ}ÑïR²äŒCìÚ´OvéTd£‰[™#öGÛ› ÜùŽ8z¸Ky¾ÅZeÚá;·n`K‹ÕùErÅfn±ß ¨›ñ(À©Ú̬\elsøî ´…ó¬8ƒAD˜dT›Íál•s³6Ö‰ÎÍí”rÈZ{‰´Ÿ²9í³Rª¢˜‚ûý[Dz“‹î%D©ËÝÝ7Ë™9oã8 Nwøèþ#./lPž[€æ˜ñ&*Ï=ñißùÚŸc5RžºvEkqüÁ=vww™{ò<çfW9ØýˆØÌhó¼uã6 ‹®\‰7|ÈäÖCž;û$͵‹ìîß娻Çj}ÝwˆƒœÀìp)sDI‡TÑÍ: í&IfrªL898¡¢8,n´pš:ƒÍ1[§ÌÚ&õU—ÉaB7Ð0ª9*:e##UÃ`B«j!…I8Žhy¾‘2šä¨AŽVЉc…4M(5´’”&jN’„Ø…BÅ©cÉ ýhŒ_4põzÃapd"ô%Ï%é ,«`dûxºƒæ¦p,ª(2ÆÌ]0ÆC\¦va2 r:IfµB)ÑHTäˆ,W¢GèÈJŽVI퀤çÓðª`ðs‚[¨˜³-²)èÑ)©­ƒS!È#Ô¸ÀÒ}&ºƒíë$º‰N‰h ú vé˜`d óYŠÆ#¨ uÂLgRO0”Op'ÑHEÚ.ħg „a æBÍ?W*Œ£ Q”í5´ˆñÉ …ÌRÐF6XÓO ¤©‰TL2¦Q„ª(˜Õ-V˜"E“üR SµI”‚^1¥QÔI‹)9‡²®âbõ sJ…’Œ"m ˜$³è5`Ð 0s¤ÑÄ i€£"UçıÊ@LiæÚ¬K4 Ð'1¢RF*!‰”Ì©6RZt´ŽP±L&¨jD†ƒžäX™Êd’ãMþ-Âåk¨tI ©è8F‚š•HU›DLqs S)H(˜ZNEF†®š(䄦Fžh™NáqDœg ¨–Á£·þ"ä¾þÌ‹P¨äZÀFŠ½Ðˆ4¥P0ÑQT•(-Ѓ,0‚(ÕA‘¤†Š¥ê0”D2Kà …ãG`Mä ÒqHmq”‘”=ì²F.G8TIúc‰C}¥Ž²©dp¤S®Õh^Õ9¾{ÌÞnFcao&%šD¤Û*e]G¯¸ ŒŒR>!ÊSªyØÌÉÆ>y˜ «:4>ñÀÕ(%¹g &])SÈR×1d‘eúª‚?ÔÁäB"£1eQ%­z“ †Œ±jÁX%4ÆÌ‹6qµÌáñ-ò±Kí™làoª ¤ÏbÓ¤fµæcÂG#|O²èV©¹6GSŒñVÚÄqˆÒËȬGi¢›:GrùžN©µB=‡šg‘*,­…Ö¶yôhu’âY5œEµaÐ?R)v¶™¹âÐlÍpë㜓“#žyá2k¥÷ïpÐÛ¦òD“«ýENCAb¢çeúÝ.†S£¬oŒ†L§G¤å„K+9Ü{øÛ‡÷¹~íI^þÙ_àñ?à{|D½iÒ¨Ô™îqyy•žâõ·Þf÷Ã;<¹q–¹ó‹p4äÎN„_j‚WÖVH=þàëßcá§ùùç_Åzg÷‡[ܘ\>?ÇÏ?q‘»› q‡Ÿ­ŸríÌETEáæ{Rœ¹ÎÌ¥&ñ1K Õk+´©ð/~ã;L—_ý…Ïs÷£÷ÙùÞïòs?÷kÅM¾ùÎ=¾ô+Ÿeqó¿þßþ:k_XåõçøÆ÷:|û{ÿŠ_yjXs9øœk]¡¦Elª]ŠS•gZ9¶ðÏÑæªüí™u†qÄw?|Œ±ðÜ…‚Õ6÷ö5¾ùýw¸¾QcùÚ*ðNˆ*†¼zÕãû72‹+UÔaÆã=Z[<{i‰¿~Ÿ;!Ï~©Å¬¡PL2>eì ;¼8_Ð/—¸Ñé¢ s*«n›{ŠIÚÛaiü3—ˆÇáñîܸɫçŸeñÙËüæ·¿Çæ¤Ã~ê¯ñÔ¨ÎÇÞªEØk3èí°ñ|ÒÒGïm1|¬à=¹Ž±ž"¾ó‡L8ÿì˜H‹þú=î•>äúÓ/bo¯°£<İ$ó•ŒÓ»ý¡‰5WŰLÄà„ÓBÁ¡Ôª’’$è‘©E1G«V"ɶèŸ`ÖÚôºTK+¼òùWù“׿ÁýpÌõk?ÕÖø×_?ÄÍàÒzòr›ÍžŠ¿ÿ}æ+mÎ.¬1ÉÜ~¸OâÏpaÙ¤{4a%4V\LâA™ÂlpcïªæÏ_ú)ÆÒâôøGŒrž~úótöC>üÁëX uV.œg8™³õñ&Íæ‹«Üy¼ËÁöc^øò¨¦ opRôQ«ç×±F‡ì Çn [ËжOPæHì#uЦ>êÔGõÚh¦C<ÚçpRë¯bzæy"–ìx¾E}-Á4+ôF; GÊî*²×C®ê¬z †»}ŽõcÚ牧9Ç{‚µõ © ¹¹¿Å…V…Ú§º‡&O°òŒé0ÀʳktÞåÐì1³ø­=ð³»è‹kTÄÓ¤‹œhƒ#ÅgVËÙØ¸B:àæ‡·°E‰™³³Øƒ‚4‰â˜ÔÑ™+[ôÃŒÔ?¡» r! êvΰ§’º –›Qdt}•Ã)SöÉÀgªäH©Qs 4½‚˜öƒ@5(‡=¤^Á¯($ƒM:¯ZÁ46±LS¤LPQU ‘d©†-WÁñ F2 µSªe GB$DºD×%Žê¡O &ê©èf"JÐÇ9~9¡ÐÃ'L27 Š ^˜¯ œ¨XiŒíæø}C=&µ\ÔÌG§"&ìÙyP7$˜³J £Ž*1ô †© + L`˜û8ŽŠ£šX~ÂÀÖ1´2LI1(¦BAަ9¸JA(u’ÔG1À–:qZ"7UJy@né‘N]¦ '$Š$²ªÔô”$0)Ì5¯é!v¢ D5\-'Q%j(QU—‘*ÑDŽ/AwÆ”Ã1ˆõOP:~‚mk¨—‚œì*2ΩH•ÐÍ)¤O;õÆ c2Í^µAçô„ŽRñÌØN¦¨ºÆL£Î¸ŒŸÔ¨êŸPÖuÓd<XU)uÔr×"J|*ãÇ©EjWVQµPÉ„²æ!5Išª`XV„šH„¢jI”¢i1ªfA¢’ fš#tÂÊ(rÐs•©H1U‹R¡rûí¿°ç®=¥˜DB ¥Fê0±S´P¡¤*d@¬FhŠ‚H!)BÑÑÓOðõ¶)Ps•8H‘–Dª È¡:œþ;$÷“´ŽîæhšÂ8K°m£{(…I?ÛÅO–+6ÍŠäð0ç0JX\,Q^‘»uŽÆ ¢¼««”ô%0ºŽ&eüÁ>g–S&éé‰@­Ç؆ÎhpDëx Ô‰N49&EC8:¦LЕ2öQIɰCßrQU#D’ƒ`UH) ÈQõÕ°ñ;<Ÿ*rU§s4BÔJ´çÀô8=i ë ^^$zÙñZFbÕ(·ªL‚„êXP´\dôˆ©RÃkÖX Q.¸;ž²¬Ô[+HGÒíí1ô#³³lÔfèð½;[,¬¶¸°0ËéQ—05ظ8<qg¿‹ÉZ£…áv—iëm Ä>÷ÇÏ{Zê²éÌ.Ìsxt“½p—§g?ƒÒ›åÁ]ôlŸËÕ5âõ5úý!Ùæ6¡=òYα„~¶ÄÃÇ?büÑ µK´¾ü Ýácôiµ®‘— Ät 3q˜Ø3,,Å9a\ÆŽ2Æ"&Ìsˆk<{Nãa¨óÎ?à©«³¼ðó/nò[ßÞgí5—_xy‘›ß~HóÖ)¯üâOó( ù~ôæ¤Åµâ?óÕóÜìþ˜ÿö_~‹ÏÿòOó¹/¿Ì·þìO™Ù~Ù—¿ÊÛþ ­ä!OnœðúY6wø÷Ö4ºµ³ ë/»< áãxŸ…ÙYâù VfM\ [»Ûœ›uñÂ::"šsxÁ[%Ot^¿w›ìöŸýâs”æB~ãÝo”ª|vå,¼wŒ7.X½<Ç÷aÆ‚¿óâe¾óõð§ïðïÿGŸÃ-¥üÉß`£¹ÈƆǻwn3£|ñåë|ïã}>züO?ý*çë«íþ͉~þ+œd]÷š×8¬Ú,…7¹ªa¿4ËGßûgRï–ÁC•äí¯3xÖàâÊe’»Þ<Ù£Ú<åú\›ãhŽ­ÞxjCC„Ÿbwä3¤G2¸Ë OåÅúEþÉ{øÆ1i}›â4dA>Mý\ƒÓGˆw·¨•[xs+?19°ôœN7Èéݲrm“”½‡{$Fg.lpœô¹{w‡ç7š”ælþìG>åÖ“|n¦ÂØÙfãÕ'¸Þ·øXÐ:³ÄêI‡[ÃCj‹uN µ¿KPØŒš:•y“`_¡·ÓÃQC†%÷“=Üò—Ësôú§|k÷{آąWˆ³.‘ße›L S÷hÖUô’dêOèL%ÎaŠmš¥nÔgDXYPcÂF ­{Šfµ8)»pñ©UDQaoš`¸1•žÁ4É \ U5hxUN§·‰nç\¸p‘ì¬Ggï1ÑiƼª2w~†EvïÓ˜Ìy&­E‹›FÜä¹ËÏeK¼ù?¥1[p¦v¥²Ìéþvް[3XYaQªzìw8><äÚ§9ûÒÓ<|üûïSšuXZÝàø´ ïß Ñœ§â¬Ó¿ý¹8¤5w7³9UFIŒ—öQ¦6 ‹-Ô+-öïî0Ø:¥qy[¯õÇäfN$u,7¥œÚt’œÜ± I)¢šX$:%F¤ ¹SvsN‚€`¤QÑ5š™ùöÿH`ZN©‰•õ8:$PM pT¢¤ :‘Ô—lÝ&Ù7IJÔ¡ÁP¨fŠ(t2!QD‚ Cb!Ò[HFÂ@ !t"œÂÁJ")å– "©à8I¡»JžõSªŽCT¯÷b²ü=] ¨Æ$û1¢^§\÷˜öG G!µ¶J:D(8ŽŽ œ¤*õiN  Ñ£ ¸9Z~ˆxD¢@Î9xaФqŽo\½ ÌTÕD–DRÀHEZ` ©“áé6YF9®© ™ªnŠ®ŒÈ’ $)…! 5ab;i !J@5FD¦ê¨C’H2ÍÇÖJxR¥oúDR¥©¤QÄØŠ0Ã5Ïá4É>!â;¡V‘‰dqªYæPøG¨N™P‰•å £”@H*¦ƒå©ô&CÒ Â2[ H†YÀÅJHw8÷0“º5`Z4@&$J f ]&èyÊD5`Ø¡^2Q{~ÂÁ:û"“8D9eS'ÑLDa¡:9z €ä€Yš¢h%]ň-GQ2 ©!\…"ÏQ"ðÔâË1ËxðÞ_´×_~•!æ¨@/å æh\˜ª„*yª Œ2(BÜI1Õœ0…ÂPÊPsWƒif’ÈуyÔáGc¤:G¥VEHkDbÔ(NJ%}Q0&¨#A* ÌRB]48>é Ón58œtˆ»!íÚy"d8$]ÂA×KP•£Ñ1Étj³TE@&(Ñ„‰UÃUS²°@ºuH'¨jÀ0R±¤‹YJš1îDBª“:: >fR¢ŠERŽ˜œNðÊ*B¤„ILɬ£»'{;  h.Ôñ,›ÝÃúÄB‰æœC4ñ9éú˜‰ŽµZ¥\UŒ|ôdˆh¸„£)£©C­¤²X1Ù”*ÇwifeÜ•s­)áAcª‘ AɬáÕl¶·q'L»Ì´f3;;‹=L<îc¬çh¶B÷fD®ú<mƒ…j~|‹[;#.½0Ï‚ʃï%DjÌù'8}¨2069³t†è¦N¨í¡Ú.¢ ®S¡³»I¨¼KségÚŸÂïlqo÷¥eƒÙÙY”i‡Š­Ro´¹{²sã.—×+<ýÒs|¼uÀ[oÑ\Ѹþä­¹£“ˆ¯ÿé»,»‡üçÿņ×vùßÿ‹N*àSÏ|š§gÛûûÜú`‚ûr†\= ò7·0j—©\[â úïüÞœ³ø™/]åÖþˆ[ÿè÷ õמ#eŸàOßÀ¬¯ Ÿÿ<‡w>dQ™â•gø£ßþçP^ä?þ[¿„üÚõ).¯òú¯ðÆVÂí[»ü­K3lê£âˆŸ‘mNÆßÞ'qÏò•Åó”üþðÁyßäò{!çÖÀæÁ£ ­ýŒÙ×fÿìó *í…ËÜ:8A-û<}ù nMøöÎû|ú…OqA‹øÝ¯¿‰ZZã—~ù<·n ùÑÖ OlÔ¸¾1Ovœòðñ çV–¸¦›xþ1ÇÖTÒhrnqžèñ éá‡ì=¾‡õì“l|î9nþö7Øìîóé¿ó×yí åO¿óG|tÅå3KOS0à¤rByÍB9ir|{ÄÌËìó3l÷Û<¡ÎðÒÓ_fvÌëßù6wÞþ>ŸyúWÏsóÍ8(îÐØ8ÃÄW¦ ªv™¹Y¢±Â‡÷·i®¶ÙX_Ãßë3Ü9ÄôJTÚsLó>†‘#NFe݆rƒ$HpåÛÔÔ>Ÿê)ÄÌUîýÙ]¢Þ„Ù§lVmɇÛ]¬nÌùõ9Ò3gèN§œ<ئB×Zd'ÙbÈ€™j›¢˜a:Ž Ó¹µyƒáŸÝx‘±Xf:ýˆ$`iÄEÀÁö;x–ÊÅ—?G8dë׉çg±œç…N±¶ÎÑæ6Üäò+O²Ð¨s÷Í#†“9—¥‹ Œö"Ž¢J×É•cö‡`.Tqã”$DYrpy4B?Øš@Vl2cȺ°Øî¨ŒåÏn,à&ƒÑJ L t ­yÁþ^@¡J„1!^<ÃÿŸ©ÿüº$Á¯2Ñ'¼?þœ×›Ì|Ó»2Y&ËuW{µZÝjZ¡ƒ0‚™ápg0Ö\îÒFWØ5 Ó²€¤nÙ¶ÕåmVUf¥7¯÷ÇŸ'¼»JÐúbE|ر{?û%ú/\G\®ðÈ¥³\¹q·ð±cJ6F;Ø™ÉHEkPJ q“ƒ"C¶ç¨t¼liΡjÏû!Á¸@µz"ÆBÄñ£Kܸuë 5Kgáø –V첨–ÂT½D2‰è¬"D4²¡•Y˜0ÊÔ´¹0ètrÔšFÙ’P5‚^˜£3jK"zZ¡çÉH0d4+Ð -‘ (Ûbá0Ž;²Q”ËQÅ*‰ J& Çe  ÑB)<\MDÒl7ç0?$‹šÓ&bjeݰ‹¨g¶ì×)—cÂ,ç`Ò’T ÁBȆ¤†Š—ˆhJã9Äå3“„*“¦‚žE$nÄž§’žËÄÐÈ“R+SéÕU²}—†#©MŠrDgd±N¦„ kHŽä‚O¹–ã´m<1F²<Š4"šy…Aêc¨ I2†‘‰6Y,€ Iá|¸Å˜¥ TA‰±&SB$ð†j†šÊ(¹B¨Kh–ŸB…@‘Ò”"pË"Z``:&ƒlHMLH|™,©P!#{à@11p$Y2&=DSE üÌÄ5ÇØ…IÍ®±;î!x!e³…¦´£.¦PcªæL:ä)F˜“™–×e\8h¶ŒûJ 5Ü&•KˆšŒÚùÞ‰°¾tŽLŽ‘)R)Ä‚B*(YfÉu_"ÒUb)¤ð lI$G#•S´""ËURCEÈD_&sd£ÀÌu)#ö#Ö®¾ò¡ÀZ~ü2b¦bé2A’¥¢­Q"B!’+%L"±€Ì$–ò‡ •LÉÒ%t…q%RЏ ¿ú½ûºL„8F€™ë¤Mn4"ïLM-¢h}×Åí+8zNuÊ 9¹µãÑš•hØàÇZœ1ˆ&$a Ó’Ñ›;ÊQWs´p„5’‡#L¦ÉJ£ÎݨI"¾b‹ J˜(cĤ†›ú˜DÎQQÇ"ªš!’f&nÞÇtÁ™VEâ8®Má¨2½±“Óšrpâ16ªna7°]X³‰÷A˜J©H-7F3%üPÂõکɱ#-´,âpè3gØ‚NkF¡H :£K‰„ˆ9³IWqãú>KÓËs‹lŒ‘ÌŒÖLƒ¸=f,Œ{f¹A¢ %%¦kK Åo“vf³XÌqÊÒÙ¯& •òÖ>q‚pä fÚp8¸În>æ¡•5óÞ½½Ídü­úIŽŸ}šrbp¸ÙcË»F2È8ß<Á‰'N³!rãý˜ILìK+Œ†.Õ‹±t–½É&ÅÁ´*g±¦aõÞ‹„†‹|þ´F>SÚ!oÒçà»ëüôG>IýB…ßü/£¶ü³4¹.xðÎRëÿÄÓ<ø“?àµ÷Ë|éümÊG/ñ‡¿þù±ÆÿýÏÿ„¿ö‰Gùä~’_ý ¢»ý*Yª±êКâÏMçN8duøSBÄié<­é˜oôé”*üàl op£ÓAˆ÷hÍÍ`ŸXá½W¾ÍƆÇ_¿øq$#ã÷¾ù>G¦ ’¥/¿ÜãòB ÓNyéΜ;ËÑY·¿ö>­M>úÉ¢È#Þ¸½Ê©åËèºÅ+/¿ÍÑ3S\:³Â•·¿N¹Údfåyî%÷n2/€ýÔCô7}OPV¼üÂ-Âà?ð©/pس¸}å;Ô2æ—#Þµ¸~ø™ÜçÄ¥JÊö×÷¤÷iøÏsß_¤3ùc¦¼!g¿ÌÂÒ[Ã._ýÆý«oQ[?AC)È篮mTÅž9ŤÓGL]ìf›‘a <¨‘E=‹" ¢7fæäEâqËŽ\z …¤PR†ÈbŒIèšJ¬iÄBŠTd8€:äRŽ•ådcج –<ÔHÃC@BPE¤@'‹S’ ¨š }‰,I‘Ì>ÖÄFLÜÊ£°))&“"CÆè±CWg. »ŒQX (HâäÃ=ò€£Æ´û&¢P‹k4mv±œ¢ƒV3‰&4ä2Š¢±1î ê …IÛœ J ÒÈEH[(%…Â÷HÆC2­‰c ¤¢„~ø=–µ´‚–ªX’ÄP…²ªf :….‘‡)Ež£Z*Q f*¢¬#‹ a”å2†.¢f“<‡0VßzùCµøÐhŠ„OŽ H…Ž˜MÈ…Cg" ¥Q¬#%2y)ÀÎ ‚P$Ì4YFU3”¤ .r$EA. Dzf*g([H¦‰«ŒŠ•¶î«ÔM±)B¤ÓÙïc¨òÌš¨‘ ø±‘aÏZ˜ƒ±?…ÖhqÝÆJSêÚ‘ߦ<'0 ëÄ{·Ñ«:Š6ƒ„Þ§d¢e>~ãÄub-&cŒYÔ‰• ÉvQ3½’x(S(õ6^¡ú%b # ÉFÏ’NDl)7lÊl¨zŒ£yê¨C܃Œ0S0fTìÄ$ˆ‡b‚®(ƒ˜‰ PjDÔâ2“@çþþ%<Ž=ô®/“õnáç \be~ŠDJؼº& H•*¦šS©;h±ÌêÖ˜|^¥i—I».##`¥6‹®Õ¸Ò{ƒí>ǹÈñºÂû¯m0Ò ž¹|”œCÞzwygžùÜaóðß:dùlÙ­³ô¯!•f9zæ!´¾Â`¼ÃÞLŒãúˆëÚB¡VfØMˆÓˆŠlÓP[ “1·ïncæ&}bž¬Ð¹úò[÷nðijOñÔǧð"Þzãn÷OÍ?ÅìÊc\¿þ{ܻ٣üÎsÖYDsÄ.K S¬_œçýÒÜ·ð™»5Î|þEøµ_üeòåã<öñól n |õ»<{ây¶›´{.OÔ&¼÷`‡«7Ú<º$rú™Ç xù¥ÿÊÍDåo|ñ9Ÿ|áwÞåÇÏáÇÎÌó·®¾ÏÊÐàc¥ ¿ÞrìØ<ßW[äfo‹õ»7±穯˜D-×6b¯P—jÜyë¯ìñÌâ9V|ó½×˜^p8U~”¯ýáMªç >öÄ o¾pŸï®ð…¿ôN;6ÿê_þ.V¿òã?À¯½ø€·¿ñ:õ§?Æ™…/ݼÍᆀ}éºíÑ%T¦"žôyç¥?¦³<Ëg.?Ãø5ÞëwxøKÏòŒ<Ïwÿ÷Å‹K!Ÿýџ扵¾{ï>ýÇ3ÎÏ-Áï.r}òŸi>1Õ.à {ò#¸ºÃ/ã%ÞúÖaöØeNœø(7ï¼ËU÷.Ÿ;5/ÌqsÓ§ˆ<–¤%B/æFѦK¬Ä~‡n4†D¦µP£Ñ˜gpçÖåÒ9Ê’Í(¸‹¬•˜«aý`ÌÎÚT¦g9}â8†!qï­ºi„ªŽhÌ.aUé?Xcgo }ÊãäÅã Ç&÷6™iÙXfð°Í®\`˧ì÷]Wwh=´@ia–ö‡ ‡8Õ&™\"÷ö°³‰Öà0M™³#ʵ“x‡›¸]—™…^ÿ.²LdÌÑ¿¿NîLaÍD±„q¸GG(/#è'ܹúGœ_x„•ó³³yƒûÛ–k2F«NÐב¬„²ÏØk* Eˆ7WEÕlÌ‘DwàQ³‡Œ¼}ÊâèÔƒq—[¯m£NÙ ‹{ÁC1ÂÉt«ш`0D·,¤’@â8‘Ç$Éñ£ˆºj““0ÈÁ!"v¦¼€ŒœtÒCk”iŠÓt'#\¯‹ÕTG˜™b#%6ž£Å)Q‘#W ›„Ò.~ТVÄLD3ÓPbð‚1š¬¡+e’P"U=rQ,E×M$2&“”]7bvZ¡„ĸS#6:ê˜8†rfcWDrAdÒ? Q ÊJ™œ E cTb/g$ºŽôð4£º@ºÈÈï ë¥\ ÉMÒR“¤w€(ºhbƒ¡¨‹#´ÂAc\E„(ƒ~Ff§ÄõržR sö¥œV =A@Ôe¤¸ PK$I—Šj¥!™SÆH>ä\jAD ç8؈…OJJa6Ðó"õ U 3UÉÕ(Rq IF¡#%!±)È Vf€‰‚Z!ˆèŘ0 ðt› ÉrÁ+ÈŸ Ô0u G±2¢b %ti‚lkH‚N—È“@T¨";þˆª1OY“q]—î(G“ê¶L£:M§³É¾§0ßh IÝ!èÙEÖPêuR¡@JPÛ;ÿ]‹L­<†Æ$ºŽ¨¨8ŠO€¬TPÄŒ‰Pç)z¦#‰¹ä‘å £!(EžÆ!H ’œç2¢¨Fh¢àðà¿e°†$Ë‘b­œ8òÑÑ2…Lˆ‰r]QŒâœ$WãŒLΑP™¡ÂDEbRIC($º÷¾7öÜѦpD…ÈÊé|Ò®ÏòÑi”i‡½íIÒ2šZÌ )z1šÂp,qÐQª5(™Ø(™yž1nëTH³fÚg'ŸA=šUo!„8#RAÁî+ÄVŠ˜Pª„v’ˆÒƒ šà¢É‹Äºˆ˜lQìÙ8M Os !5§‰®„®Ë0î£-•©f%z{9¹*RÖÐDLÜ('tÛ‚ÆÌ´I`(äAH˜û½Q¯³pšf•[w‡l²¼\pæÄ,½aŽW$$™…Lp4Wsèõ¨¥¦2pB­É‘9‹^Û'‰&ÄBHªÈds&‹Ó¥#²Êú.…Y¦K2-A"ž-Øoƒp+¤r4&_š#Úòè^_%_0Ož£&5Y{°Éæƒïrde–33Ÿg¼5 »ó:Ýò-Áb*™£z¤„;ÙçÎê=ŒIcçO€9"çl‘‰ƒ;|•GŸÄœ½È[wßd°{›Gæ?ÊÒcçHWßdó½wØ´h]<Ç—?Öàõ tûåáïãŒÕáÿ¹ñ6ÞÙçøøÓ³ìÞy÷~— Kg8yñ,û·W¹í}ZO|óü"ñö5zß¼Êò'Æøä³¼üG ­ïÂyÞþÚ=jRÄÏüµ¿Ìýa¿ÿÿŠK+Gøéçç7W拾q†ÿîïÒ-ø};Û«|Õ»ÎÅù'8aZ$¤ôï ˆ”ŒÊÔ„Ð^!½º‡¿µÉ…'§TZâ—ÿèŠõžù‰YV‡e†vôiy™j¯Dàö9áîêÎÏÌó‘žç»oo°ys•sg¦©J}z^K'¨‡˜šAsqŽýá>ëëC¦gÊÌ·HÓ$›{Kc\?eõ`ƒGN£Ô:Æ«o ŸËx´v‚µ7îs;ºÏñZÎRë"ö‘S¬Ý ™‚õí¢…gäÅ?å±Çžà¡“Ÿã¥·_çÖÚó¹J•˜Û½:FkŽVå;ø{ìµO17}‰.»LúX­Èבw*è3 Ve^WF_k!–=´9•ØŒ ÷ö‰•2ŽÐ$4ǸaF–ž¢þ±=Úâ×§X:SçHw‹›Û.ýRÂÒÉi.—æHú.7ØC“mä´N0³ç…Ôª®ä£ñ˜#ǨžÃn¼‹&•¹X9Άëå›,Úulg–áöU\?CÆ©êx’I¼¶‡k…DnL­\¢|ä$íC—õ÷¾Ay¹Îlk‰êX`w8b»·MU°*Ó•ñÚ>ÉFD­Zåp.'uÇ”t‘ÉšmX Mܱ„%d‚‹Fñh²UŠm†R±ZåÜL„ë™l ·x¨¼DVhÜϯӨ¬P‹Ú±Ïa!èC›z+éñÝÍÓ4ÓWÜg&ŸÇ@”²"Eð3Z‹§p«;ïb„ +!ïºtîQ>¿D«Ü`ó`/WY˜©u;õfNM“ní³qgy±†:u„Úæ:j]` ø‘KE’ȤaûqÀœ¤c–*Ä~Ь‹èø¾¢Ç(æv{ÈXuìš!÷4†¢…VóiøCLqŠîö„L`ÖZD‡!aÈb}D­Ð;ØÁ¶3BK/†°ŽbdH¡ˆbFdb)¬à¦Z Ž&Ùº> TWBÌÇH±Cì„8²ˆB8Ì ei¦‚2QIGH kDmЉ(Ú¦šT[5ê•‚±?râØÃ•–Ufz-V;Ccºé3U;†§Îáí¬!Ò&U5ÊÍD7doxK¯R_RÉR¤zD©l³»>F™.°3Æ ‰àQ§(Í/Ð>\cÍYY(“w„‘L`I4ffÑ'=¾ûþ:•òižöy:¯_ãïÝ ýäV±Â¤»Ç’t›/Ü~ˆãŸ|ˆß¬¬sã?¿ÂB4ËsŸ~QlóÂ?ø¿xò‹?ÀÌé'ù“kßfe‘³Èþõ?á3Ÿ¾È—øó|çÞo^‘ŠëQX9®¸Âs¸28àúžÉO,.0[Rù·„s'l–†)o}°É#W±\=<¤ÔyM^¤Ô:ËÁ`D=-Èvº¼,´¹tò-«¼tÿ}”ÈäXuž¶;䆷E³&ãD Vw\–Ïâ+_ù_ã­ŒŸû_ÿ:ÅdÌ¿ýÅ_á/þÕÏñ…'áçþÉ?ã;«.ý'?Ê¥²Ïƒ+}ôÊ YµÅí+ÿ…¼¿É'~øÇ±]›?ºþsßwŽËQ“á·xÏòùÜÏ|’K¥e^û­oð–ØåsŸü~„·s^yå.ÖgG÷¬U>v|ŠæF…ÝÃŒ‹M4Ce¸ÁÈ;ÊJE¦+ú¤C‚è«9C³9;)±uxÛÊ'*çк0ö\=¤Ý Œ-榈Ãw6nÓX>‹’µhß»M4«°,ZfÄîAŒ´Ÿ¢0“ídä2{hó!Í•%Œ|†õí{Ħ–FRvï23½D«UeóV—÷>‹åE*—–ñû{ø·v¨Ÿ9h;¸«ïcÉ ½i›ìP§luÑ´ÒqF^„ìzCŠnƒáhBGʈ\´šÆ\iš¸ý€æ§WX68ØÝà¢ÖdöãO:|÷kLµ¶ÄCŸºÌ¨±vãKvÄP=F{¯YQ˜?R&ßu‡8õ±4bÒõ0NœäHUgíÝmn WU¦s”G¹a°1ê ‹FQšr0ÙdAÕ(JMú£v.å.a1U²ÐóC!'&XE†X‚òú*íq­Ñ iÖH²ˆQ¸AI©Çf¹F´ÑC ÉWØoÊTr¹p™Ì—qú"$™¤)J¬!„¹–RÎ4ÂØ#—%b]¥‡ôt‰¡žÓlTÈ [Á欄còj/ш3“˜ EHu‹ZoL^KØÀ)2„  —3tE'3¼L¢–ÀXÑȈq´˜8 Ü “ßC$¤ªÄ¤Ù y)rÕBÈЬ€"A²`Z8Ñ_IÑm)…42P´ŸˆD°‘„˜TCb£Êi’º\e‚„I²QW(†2™¢`êCÆžf»Ôì‚8®‘¤–+;Y%Çì*ˆÈJÁHPh…2T2¡„£§˜¢’E8¤ç XœžÁhY c¼ƒÆŒX.ïOÐõìC—I*Poÿw-Rš=†¤ XšBiتŒ`Zxqˆ”JèHÈBAh¤a@N‰Â0“$ò‰E!—0õœI!"ù“©þ…ޤ©HYέ7_øP`9õ$G¤ÐCbWBT ´D'+2ÄX@0#L=g8‘Èc°d‘Dˆ±2…8 TȲ= A.C zc[gôg0 7eWH©JÉž­Óö|†û15GŲS¶c™0È(×*¨±‚uˆ‹‚J¡#N/1ï ÷©/,âmK¤rÓ “î¶Z&±æñ“6ª0‚´ŒºÔª9rÜ$‰{„53†ÌÕQpÃ5sÃ1¦–‘*2ElS©‰­ßGSL²’…ïvaRÇ:j1ކ VMÄ‘ERO&ôÀlfˆªN$¦øaHá*Èê[oÈ®«rD%@׫Tª:r0aoF>sÕ„ù gíFŒ¶©7˨©‹P–ѳiyÇH³74QfË1Ü:` ‹`T»ªS *‚M'Û¢«9ecÁª0läcš5ä®G·ˆYybŠövÊá•»Ì7u¬§ç‘Úíõ5Âø’>ÇÊãÏa<ˆ¸Ý½Š\£ˆó$ùQ¦Z2aþ€ ŸºqŒ£'f˜÷úëÈúqÚ{žy›§.ÎSx ¼wû&1]ž[¹ÀÃ]äFØæ›ÿö÷”„Ÿøùÿ‰s‘Ë7¿þ]^–Zü—OrA©ðËkÈUÏ„Ÿã‚òï­­rúØ .?w–Þj‡_}û}¢gŸà‰#3¹ý*ý·^æá/}†Qmƒ€‡±yàoðʃO?É£—eׄoÿÚï`Ç?ü3?ÆZ·ÇWëUþÚg.Ó8¥ów^þcþîñgùÙs³üì/pîäYþö‘|í¥wy©sÀG·˜8*¦Bw£À¿qÈèT“#KKì¬Ýç·ßù&?òøŽ;Ãú¯ï".?ÿ;C…Ý×?`8S.UÉûKÇŽ`Š3¼þòë„»üÐÓŸÄßøf{ƒÓÇk\\žå½·ºŒý;°8…“LÉ a½Ê¬1‡1°or;ÊX2TÎø%ÞÖ-¦OOq2JøÎo^县Æò3Çy|ăü]j~—tt‰±4G&ÝÆÊ·Y\nr1{„ëóRïÿƒ~ð: Oü8wŽçÊ»ïñéG2/æ¯ö9qê,#|ö{«”‹T­#M\K" {ô‡)Z·†]ψfØêÖ¾Íýþ}ª5æç(n÷‰õ&-LjïŒTæNÿ8ç«#~ÿ×Ц-ZJ}qtz™Mw)Ÿ¸ðQN c^{o@`…ZJ/²â K•)ì†ÎÕ{{ä{]ªÎ,²®³Ÿ÷ÑC²d3Ö& Û›sÓÌM£s@gЧæŒQ2“æâ 4Efgý>[Ã-Žé³L}‚xg̃õ›tM‡*s¬È'¸•¯áí»8¹‰à$D-1·ˆ7FøhfŒ-NãWUüÕ=êÓØË-¶oö0›Ö$æõÕ!GO­°²Pa÷–ÇÚá{®Êr#e§Óf¼rþÄi:½}¶vv°gmŽ[©{ýMÁ‘H…1Í$Çi,£‰C6Úê2f-GhˆE—DÈX"WBòÑ:•šÈôâe:n—ý~DÃÐ1L _7Xœ³ îvÙܾEß®23Ó¢ä™ÌØ1;H ÝˆŠ”P“uziî¤JFyºF=·XÛ½ORâè±2q“ú2þDg‚QGôE&Ý`À‰Ö@2·›'ûEe)–˜dröá‰ÙÍ÷èsY¥6U'Š>„qkfL¬ èæ¢4&ˆ\?Á! JÊÐ(ìQì»("då*¹” RMA-©ÄIHƒ+dÂKäÃíBr [Dò$ŠTDÌ=ü’„ž H½‚L‰‘L q2ÂSt,t9!õ\zAŽ5ã|èÅE(ck*’ãÒO4ü'/0ÊóNÁ¤½‡ ˆ¦EUËèæ1šhRMz½aŽ.ãh®¬á'Z eAdTM‘G²¡Ø c SK¡ës‚¥g$aˆÞÿ¦¡~âB I&˜ R!¨*E,“ …˜#&"’i’i ±‘f"r&`è"¡ SŒs"UÂÐ2MCðÂÌçþ•?Í`-\¾ŒæžHn‰ˆyø!GBHHÕ1UÈr›<óI„Kuˆü€DË‘0ÑòŒLŽÐ“Àiœ3Xû^‹ð–' Žuš urÅ rû‚B¡tÕlÛAžì‹!¦³€·ÉÆ"c{ -= R ³Û×ûH' f–ÙY“¶;”ê,«Œë&H¡G©žàåÁf‚5(jEÂÑÆ©‹*…V‘ã-VH¦‚LÂÜvI+ RY!›DĺESuñ:CBÅ¡^VÉ2¯Ÿ¡9 …“x²žáö ÌDA•$¬ÅÒt?´ÐS%ÐÍ f,“šYecèÓ¬³p´Dkæ8a· цaJ'îà8§PØíÝÃÒ[˜UƒÔó$…Òb ;$ÏþôgéDüâ¿ùÔÍñã>ÁÚÄçfëËV·?¸JÛ~ÀGÿqª}›‡o3udŽŽ9ÏyZÃï¹#fNœB¼û-NwÈŽ=K{'f°q–BÅ¡(Ù8›.oÜ_£¶`pæô ¶V;¼ÓÝF]êVÁéésxª€îÓٸ͛ßÿåóñs§øg?÷+ ¥ˆ¿ó£ž·ßû#þŸWÞãÇìË<õÐiÞ|ã}_ãĹ›÷îÒÙ¸ÏÃ_†#—ø£»osy&ã‡gNñ­¯¼Íí_áù/?ϳ¾ñæ]6Ëm>~é1Jíþð÷þNôùÁO‡Cív@¬×¥w?¸NüÖ ~òþûœ;5Å/þØ?b•÷ùü“_æöU›{û×øÔñ)v½ W;¯qÆ®Ó8z™Õ»l¬=€\åÂÒ4‚Ú¢ÛßG/ïP¯6m.²+ÞgÆq…Ó¤ê*ñLL6œÙ©³¼óê!ïlìðS_œÇº'ðVoÂ¥/,=:wN™átm–·ï²¶ùsÆB­‰*æX¢Åþäý—‡–A6áÎ{P³M*g`b’O+ìÞècHµ‹+ô·诡Oϰh׸7 Æ"¡˜"²™aZÅb³½‹ûÔ—ÏâÆIDkh :v£-оËüñ‡éõº¬¾ð6ó?Êô¥#øïí2i·1k³Ôžœ&ôç*ñüJ«ŠíSÏ ºº‹ÅFD”ª, ƒ»£8f !3©7̤Éîöz½DQÔÙÞyÀIyŽã'N±—L¸öâ†ó©/~–Ã;W_ûõ¹ ³Çcàö‰z;ÌÚSøht÷P™c®&Ñ[?€éE.]Xaý•w¹¾±IóÔËVì0£\+™íö6õR‡íÁ€ŠäS+Oã©!ÑH'–\*‚A&©#Kaˆ2.Ъ5ì²DÞé²ïŽ©ÎÙÔgfH†.ƒî ŽiT©Î§i‡dO]DÑ Rd%GZP pEÃKðjR("&q%C‹BM!Let-ÃTöd#ÈÀwÐõ„ÈTé)1³»²#3q@VbrßÂF ƒ¡‹TÑñ "*ˆò™K«"K d¯ÃV>ÁÇc&®aT˨ŠD»=f\LÈã„R£Á,&Ý^^æQÑe´¢ÆAc*1Jb»À4K8ºFÉÛ qSD,ê}¡Q0fLÜ‘ÐuÂcÆ^¢ ‹.“ÂÁ¬Êd¢mU× $ ÃsÊ EEˆ"5C’?\m %ÙIu‘ È( ‘–ÅfI&DªL¤ù(šFÉÕIÄW,bÃù~‘…‚¢ãQPõdT%% 5ôR ë°Ça.!ã4ldA$Tb¬•±â!È:3ª(ìzC §‚Øš‚§™DÅ€x”Ñ(YˆS-†í˜ØÛÀQ§P«3„“Iè"é:º)â Eò†„½÷½ayeAPÉóQM‰d1V©WTAÁ+<ÈR´ÜBRDt)&#‚ÐAP4!%–"?CÔS,QF–,(`’w‰ …ÿ&°f.=Ž&¥$¢†1((ËRÕÉIR?Î) ’¨ä ˆbðá"w €ˆ©O&FÈr„þ½ïsu ]‡ƒ0£(x’@Åb,Õøj1¶‚‡Ä£­qùY®olð'x€ýü9ž>í ?¸Ê­×v(}ô$ö±sÜü£=–¤ËU¾þµ·™:wŠ¿õ…Oò÷_â¾ö§Lj.Ó^’h¿‡5f_ªóÕ×orª§ñ·.œçuËçêꈿrr„€ŸûãWùøc§øs'ñ+ß~Ô! “õûó§[Ôe‰n¿H´Ÿðÿ÷ïíó{WßæóœAŒ¼½zº,‘‹6#¡Çéì)5âþ:·ö^£Q_à™cŸä»ë}V³;üô¥çؽ?àŸ¿ûU:÷8Ggž&{û:ë³O.ƒ›ñÚÕëY‡óÉ*ܧÃìsg¸Xˆüê?ù}îÔ ~äg¿DÓ×¹·¹MZݤVH¤ã“ìµËèk¨É8͇8;ó[k»¼.‡„×þ S½ |ùç~Ž?ø¯/ð¯ÿá¿ás?ó9v:ç¹»zƒ ó)n_¥—Æ_–w úûhu]ZB CôšÇ°¡QŒ›Tòˆ>zñ„…Öì,Ó^ßæÔÇ>X½N˜¹üŸÿóßF¾Þá«ßý SϘÌÕgHöm:_e ö¸ºqgN>Â…ì¿}ç=®tp®RG‘]BIáØÂ,;Þ.×wEêjN*G¬¶Mæf3ºããAÀù³GèŽ;\wqNÎQ–L6®^E’UZ­dYdèä÷{lÅÛ,Ÿ]fF-q¸sÈÍÞ=|?ä™3G©N­ðê›øƒ æÔEJónôPÎ4œû;wñ­Œ£GÆëà†3suDe–ûÂ:ÉÝ!g*w­ ½­C>zj o~ó&§WÌ?t÷~9‘c©ÏÞjÓ2yüÜ£Í1wú»,7N0té–9"Í£›+gÿÖ…qáÈ1¢õ!pÙˆdFA¥*`dÙ NºŒÂ£0ÑJ õæ<–Øçþ;÷éø N§Øæ‹’„\ÓéuÆÜ=`ÑlaÚe<5CrGaB²¨£Žl†‡«(’‚9½„)„¸[.“4@‰E´ÓΤŽ?Üä0²h/Sš§·q€íP2¢”sB=#kçÄ¢D¹R Ä)ñD¥@@_Ö©Ê%†^×ó¨«&ZfÐÎìBÆ Ò RO§ìÄèAÆ^–¡«eªºEŽèøDSb*µ‘Ô˜¢Ÿæ¹¢BèA¹‰¥˜„‡]F^aê(²B‘Ä„H(ºD9IØSÀÏ4šÆ%Í…dŸ½Â ,4qƒf)¤– ¥ ½¢‡OÐŒyÄj º„Œ)ì*²(¡ÄR>¡?vÉ…r©„• t‹ Ž";5РԂЙˆŽ!§1Š© b¨™„vNˆHÚα匬e£ ™;µŠ0‰ˆÈ E‘Ú*¶:FK„‘4±ª9~j ‘N؆Š9ŒŠi1Á-4CaœD@‚mЏ‘ˆØ×Ä€’m¡Õ3@!¹/WuÔ²„æôÂ=4Û¦!L1Rb”î¸,PRÆiL,BV¤T*R¢2ì÷H3©ªŒ\Rµ#¦ýOÉè2Ó¦ˆg„}Q Ðl‘¬¯b¿w"\X~Š ‰1lˆ ­0CS€ŒèpÝXE•3æêsø¡Ë¦·CÙ>BÓÔÙmãi ê¢Îü“´(óþK/cWl.?ú‡QÀƒ÷> j(yô)v‡cvï¿Ë’ÙÄ:z”p¿ HÌÏ5Ù8lcë*s/â]ïóÊ­ëØÇË,O?B:ð0‘œÛSB ê2Y¦àx!jK$¶gh¯ï  V¥†§(ñ…i"9"k÷°ëÓ”µ¡·Íú `©1MõhƒÞ¦Ç8ØCÊIJƒc·È{ôÇ#l© šÊÈN'2‚ br˜ŽTKd{Ø…I¹j2Éc´(#¶%l+Fäì: ºbÒt ú$ø•Å“½»lâ5ÊdY‡R¢~X¸ÐS†¢H”¦;B'ÄnYé ºã ì¨]ЏÌi¹E^RHí.ݨícT5Z‹-ŒqÈêd@71Û2©ÛSŒRyHÍш|™ÂG)#„!;qÉ1‘µÒDƈ=°dÆq;ô̘¡®[ÐTRTUB³§H„1^ØGBÃRUBQCðDjY@le˜ºÆ¸—c Sh ˜:R’j‘ †™£'%Â0@Ô$2± ”Ë ÄC¶±R…±Ô#&Fj”D‰ Vê“"±àP2 ²"„âC|‚nK„‘ÀŠÐbº&á*éaD6ÉglÇBÔL ÈýÉ …cå¢à†£lDŽi¥þL0‡iY¤V®!¹½Ó5Ñ" ³š¡|äñÚ÷Hî§/ È>~bbe(’j‘ËÄ Ž¡§&Y<¦(BRÉ"‹ÁÖ}&Š#‘TŠ‘´ ‹TÉq5LÔª&q÷¿µO<ù i£$ …)B(#Š!…,G~ĉ¡B&‚ïéЬ!F2bV@BYA(,ô,FbüBføg¬fƒÜ+@ ÐQ˜HrQA0,e‚”Ø$Á,ûÂ6³†AYkÒM=Ä,¤¬êŒ5=Å®{ ÃXc®aÒeø#Ÿi­ŒZJ؆´²ZÕ$ ]<ÑÔ(ˆ ËBÏ ŠBDÒC¤B$tÊh~Aáv)ô T2²6dZAÝTpS‘±ã&JU#ÌLÒÇ Éª2)›ÃJêãX :&E ãe è}’¶HlשÖmJL߃Õãj<ÅxkHé´ˆ *xÝ-l³†¡7ñww™­Ld‘­]—Fs‘éºL1Þ&ŠlÛ÷z¼ð*,>áðñËG n¬ oÒ>:AÁ§³3ÏcÏ>LX ù—ÿè×Y~t…¿ó“Ÿâ÷¿ýïŽÇ|陓l¬ðµá:ÿƒ}”ÏkòÇåWïopYq8Þ:Æ7{ûŒã _÷1¦§^yëOXnãÈÒi~ÿÛÿ™tÆàþгuÿoõŸKgÏ0³rŽ·ÿà‡<ûçoSâúƒ7¹ô£3\,à÷ÿÉKÜήò±ô×8éÛ\ûæ·•e.=}ŒîÝiîïµÉ¤¯Sj–˜žŽRÒ`¼µÍ–·ÃÍÃ÷hÙUþß?üWPEKŸÿ~¦§øí_ÿÿñ ¿ñ ·¾õë|æÉ‡™4W¸}ç]ÎtîÐ 'œkJLʬ·™]^¢ZŸ%Û>¤çnáÏ8Lê$ä„Åó»ì¯ èÝ©óØ}Œ‘åò_‰OüȧšOðæ×V^¡gìì~À—žý~œ^ƒ¯m_çýû8:¥0%Ä4%™ýˆ~И±Y±$^þÆêÓÓœ¸`pÿºÇ©r¡,óâk×1æ–xøÄƒû×XÛÙbjá,‹¼¸ÕE÷f,n+àÈÌ âîÛ›k¤ŽÌ\¥Ì¬½Ä{{ì¯ßæÌ±‡pZ*oÝ{@½0Y ,´X8y”^0¢¿>f¾Q¥V¯pϽCÍ0XªœdÇo³{ÿ•©LWËŒ”œÞ~«H©X øNHM+Ý »í6Bѧr¤,øÃ„åcu’²ÈöË D¹ãó(c5Ï8¿\aµÓåÖÞ€£Ë5d©Œ7|HEHHË Lz1Ò ÆØµeš¹Æž;"ÍB$«@Ÿ¯ …>£õ}ÂL}Ž’½H<ÚÄ=ÜG’êH¦¥x C5‡=%&žÌ ¤™”"Ëï…d èe\-Æ^˜P2Ì’@;·Ñ 1]‰.RUœ<ùÐmKRªZŒæ[ô˜R‚RaH×™R¦HI¡È)•Hpñ:%ÝdfÚ"uî{$m¥¦Iµ¤á+.í=Y‰c¹T0e6é  ²JZŸr¾@ É¤JFÖî‘ ÕFb“n·O.D¨š†VhȲ†V´J"b\AË'hÄLVqT‘؈k*q¤!¦!Ž\à‹ ®V x)³²À`V„±IÔí¢—M©€HrPt„ABÒ ¨º©f ’! &“dˆœÊØFƒTàE¬hŠ´¤Qø.È)‚é«D9’ Q’DFB’Š75“šm€rЋq¬Ѫ3ˆ®@½ÙÀ¶ ܾ…4ˆõ!¶\B•çÙõzDE#Δyb£Mì+†€\1É‹ z’ã'AìRVuä†H샿—!Ö3´ö÷Öì±SøžŠ‘ghš`˜ÈR„g(ŠIVXèZH&©BgTÍŒX”)Š ³ì€œ’º9q€¡):‚l!s÷í?u°zCQ‡j i+CuO@Îe 5)B)$")AJ2ô¢D¦BŘRAaZHÂDõÀTH"…hànÞüﵿW«*u­B¬&x½…Ñàˆ£Óî >l~h 2E&šŽfxÑYßD/Ï1µ8âÁÞ.‡;gOΣ¡±Û÷±Í[MèŒ@L|ýÕÍt‹|¬Šè9ÔƒÝI/It‘Z'ˆ6˜Jà}ØÎмf‚?ˆ) Ìi™ K ゲ“…@b’kÔX!ÑBª‰Ð*&ø.:A£Š,÷)9YÜ`ËÚcA¯¡ %¶GëfHY˜E|)#uì G¢¨¨b–IøeP-•šìàEþ6ºÐ¢<£!„9íû’0dúH mjŠÝÍ6ØgæÜy`0YÝ'@¬AÏ4ÄÍt}ˆ.äµ£»³Ï$<`qéº3Å›¨É=f¦g™ÒN3ìl²›"™2šºÄñ3Óè««¼µ9¢¹²Œè«tƒ«|âÉãôöd¾³6¡^I¹¨‹(¥92eÄë¯íÒ)àÜGWXlä{CîÞ³|ü,õ…œ÷;Œ‡ºóøéK”ÓŒBÚ${ô…z›¸_üÂ!£Éf·.gÉ©p›ô^»J4pО?kH<Õ‰·:|}}e$ò´æ ?r·² oÞC›[ä~dðp[ãäå&¯½ÿj[æãŸø·'üñ/ñÑ'—˜=þï\w‘·>@»hsÝ;Âqs–Nûo~ýáOpöÂIn_y‘û»=>óW/Sž,²ö[Üè)6ë4´GX=èò.ïpJÞE÷Nâh+ø •µÛ¯qA^šŸfCØ`Ü ©ö§™=nóÅy<Èú¬Ý˜a>³Ù _%.dæë±\‰0Ê#–¿÷[«¼þà6Ÿú¾3<´ôC¯Î«/~­¹Í33ŸäþZÈ{[ÿ7ŸxîOT„kïßåf{Åç. ÞxƒÞÛßá‡þú?¦üÒ/}…N­Ã‰§”‘×dsû[\‹qŽäü´ŽÜÙ0G\=Œ‘U‘üL•ÛÓ¼zÿhTO²V(dÝ5« /9urŠW6o°¿}È>ý¿²|Þ¢wíß1Su¨*³l½³}q†³Çë$[ ¥êFš‘„.í^%GU jyÈ’Va³ï²¦X<1­Ñ¿Ûá¥w»œ?––-³;Ø@(ËŒ¶$²Íò…%ócF7öÙŒ=ÔJ…F1E?•Q•}7襎Ì,’¹;´wÇlŒ†uΜ>˦róí¤ƒ ž?NcišÑFo¡ø#¶•u³Œ™´èq€î T³ƒóõIDüÚ›ssÔ”XÈ5Ü!£í€ÖG2Î(®Äµi™Ìn‘{÷ð'*†làNº˜­’ÜÄw'¸‡÷0ª'8:?ÇÞá6CJee®Df ûÒ°ƒ>eS˜1RS$6Ea2  yᑵLP´È$Óð& 6vCDòbz™HUU Õßð¬€ÖH&ufÈÍ€4šÐŸDȪ‚\h4L…,ŒI#‰\ŠH¢€¢ÖÀT58áOdÂæeâ°P1‰c¾ºÐ5r»%`"‡Û1ÞtÌ‚P%ʸI‡03«•Émƒ¨…’àáú.¾šÜB•eÔq¡.’¢8FÕ%\_`’hÌNr¤†¢H6(2Lµ‰’’º. 36Rj€7"ËL1ÅTI@ ÈrUÂT|!%rcªe°ÊH#‰‡d™CUõªâ´„å$åSšà: ¦—“¦Rb!BìÛ:u¥LŒq‘²”!kA>F2䞃¦¤ÈFF‘)njі©™o2I`hv¨#3-Vðæu²^Aúhi€Ü(CQ  ¹P+edŸ±“P¦„ž¸*d#ËýÞTŽ=†"+0,™´$¡f"‚T È*y"Qè1r.P(*¡ ’“ë E y–P²e´B Ïê¸â>yßEU4ÍFUB¼,`õí?%¹/=ò÷“?ˆ^}‚ý»ïq¸¹GT›áÖæLg?ý7ÿ Uàü×ßâ+ßx—ÿ³Á0ù;?õ9æœç/þ½çyáµ—Ø|oƒ³Ï=F8g±ñú»”:Vl„ªÊ©3e¶ïŒ¹uë:G/ͲX_ ³:¡¯yLÍxܾ1&¹súûÃÕ·Èï¼Ïÿø—œùdŠüÿýÁT•/ý…2é0äÂÅc´|“Wß_%*˜Qê¨e³žãíîpe÷€Ú‰3<5§ÑÞyùÚ¥–ÆSÎñ`¯Ï â„e®îº͈'.œÄíòÝ7îr¤µŒ]šegc¼ˆ™+Õ±,ƒqÜØLØí¦ìŠ#N4f°*¯ïpëð*³VƒÅK\¿}Ù‹9ùÐYv7îóÁ×¹pü,Ë+sܺóÆ–Åü‘Óx'=ú/¿OY›#=¾HÿwZ&Ç^Á½ȵ­;T–tŸ}ŠI”2Þ½G*ÃFÉið‘³Çxgó:‡áˆc­SÕÛ“uˆ fœ#¦ÎÝ÷Б>ºòq:»Cø8¡5ЉV&ÆG b/DÀÇ:1ƒÖ…}fÏU˜Òšl®Òv(-[Iˆ¹Ä™)‡Q.póö}´R“µ)ñ˜,8Ä’5b³ÎØõ¡½óaæÔ>‚)G¸¡Ë!•”ò,~gH¦L°[óÔdþ ÃÀQq¦ë2N”ã¢SÉd²lOžÂZˆr ÷ÈCe´²²IÒ‘Ã1B) œ–˜h"ERñDÆ&¤ŽŠÝ‰HIˆ¥-P°Ì2zà‹*…*`øí¤Ã´UF,;¤þˆIÑ—2j²F]µÐM“qÜf}ÐFñÊœ:2M¬ô¼>ÃýœB›`VÉD.M“ŒE]—fÑ¥:7‹(øÃ6d‘ ¢ÕÍÄïÐóÁœV(2ÝLaFì¡Ú&qZF#@—B†€ICMèË2º ’):1YRÓ4Æ‚ŒPDT=‘´¬"ÄžŒX+ƒ1f"H”ÜTðÕL°Eƒ8Ö2©”ûªä0TŒH¡¦L”€±;ÆJhS%2/#îOÀH4 5E Tƒ¬ìy²RØj¨uÇ^“ÊMÄ4g$hA€Y«¢:kÃ.x! M˜YÆ(dîííáµ]Ž”(Wç º]‚Þ­l#Ì—1zt" QÔe‘¢ˆÈZM¢CÈüCDµ„b䈪„Þþ3!÷© Ú„B0° UTDA1 õIò€\ÒB…’žk £É)‹Ñ•*’ #%]”Ì ÐDôØ@43&ÉA”ÿŒÀ:™BQÈô#Tð⥈ 9rP*B(’j1…,"*2òÄ#¶ ÄX#Ž",[&JE¼n€1ŽQbïæ÷@£‡Æ F1f< ±yÊ&ÄjA<0µ*’Q#vÐë6þ^ÌDȘ¢ÆÌ¬Áƒƒu:‘ÈÙÅÙ„í®Ç¬!á:yª“&‚!&Ƈ/T‰Èq2‘T«6 }¬PÅô"B³La…˜‘ÀJ1‘\™!µŠÈ8¶pÄ]V"“$z˜e¬lDWr¨Œºö…­‘ˆ}²ȤÚ¢¨ÉÈû‹säJq; ª ö»Œ•!Gf—±=ŸÛ»›Øá³'M¬%‡Ýû1kÛwyìüYš¥:w®ÜeÆ®¢>ºL„}S{¤…„«žc®¬#ØÛaL7Ë2…R ÷6© OÍ“vCFÛÛˆuÅ™G¨55Æ×î±68 ~ô1D7Å~À¹G Âá"¯¾Ù£z$âò‘dQŸNœ°3(âCÎ.2«'tß>¤ç§<ýðc8å ×6¾É@sxØh15]â„2á«n{*O~Þä#•*Om¶ø]' ,´ùí÷‚ ÝÙ&i±‡ûÍ뜞;Jhcèœ]Q÷|óµCäæ„;NWªñBz‹Ç*}¶×DzSÇùÁ#çho\a=[eys£yšñtÁÆËߤ²Ü`ê⓼ÿjD¼ÿ>—Wš *gˆFcž3{„WÖx©Zæ‹ßÿ1n|gÈŸüÁ¯ðü_}†Òü£¼ôKWy°q‹Ê™iŽL?†Ô…L.XË®£tïMBÔOb,dÌÆG8Õ7VïÓ3 >:š­°Íjšó˜â ï™¼c‰4— TŸao?ÇN{Ì­´p+u^yy‹l}ÄÑ/Ÿæ‰•³ôïlóê«o0=cóȉ'¸?®rõÅ_`æ„ÊgŽ‘}I૯¼ÌÜ#çiöÞçÁÛðý_úß8©Ë|îý·^æŸý‡¿Ïü6¿þ•ßâc?p}ùã"u¶'²¨°P«áÉ6JûµÊ WvT6ùäÅ£¼;´¸qëçÊÓ—(»¼ûÂvÅó?ʧ–f¸vÿ—ˆ –’‡ø`2ur‰ã§sï†@7ÞÀŒÖвsœ{¦Æ[;«tÚ<³4b•7òŒÁHäI+%÷L^¹=âØT•™…—o¯2S6©¤un¿»ÍÌ…*§«±úÎ}Ö>ѼP¥jN¬&Œš»Ø“I31NL£ú!oܺËvsyî(•©ë½1›¯mP÷5f>} UT™vÙ9P$µy“q¡‘.ºc3mÍ3VFý"f¯ŸØjË%œ î» NÍÀ²söÖBŽ7§9ùÈ2¿ùêÖ^z“/|á#4¦üö+/r,-ó©¹s| ÜÚŸ%iŠ£'ð`§Ëν˜µY<ÿýâÞ­ ì~ÀÔc3HvÝö:v×Ášsè¹›øƒ˜jµ‰Q³P G‘ñz{Ü»×AÓ™Òç± =ò¹ßí1Œ!ë ( 8†ƒ{xH1%2N%”N‚c:„5?¢&9y“k"™VàH5üQÄ ^¥¤Ï15‚Dê³óþ],½‰ÖP‰Å®?FsCšå„Ž™1 Ôƒ”ÄŽÑj–¯pÐ" eÄ+SH÷ú¤aJ©UBf1Š‚XãI9 >)á8:c2,3%—-˜d¤±LX °ÝˆL±É¥˜" Ä‚¦¤ ‘“”!!‚¬2]ŸÁ ¸WPcñ8FE%Ù¼Gæ†ØgN+þꮽ‡Ü<ÆÑ~3Š´bV÷w©+&Ï=õ0½õCþ𻯲|á"Ï-Ìquû-¼¹ÇÆÏÓö{¸òsœsî¡i–­Yþë‹Wè÷:ž¹Ô'(ò„†ÊÙ‹2ÕulVø[Ÿ½ÈFÜã?ü›w™™Zä§þÎOðúÝßáé[÷øs—¾À»çs¸þ.{Çð✟xÄ䆭òí¯¼Ïb³Ã…gžF­-ÓÞÞÇc—wo¾Ë‘}›§Ÿú$ßâ}õuž­·H?u„—Þè¡_·ùKŸYf»ü_ýû¯ð£?ûÃ<=§óǯÜbàM8w¶ÂEq†ûºÆbk/åãó³DŠÊ•î°Uw9åÌѨYì{Ü ŽO—P»'yucƒNø6V]àéåã8˼wó÷ÙØz‘Ô9ÎÙã?ÈLÕáOÞÿ³òˆO=úEÞxp›Õþ#§N³×“(_˸0å±ð™ Ëâ…ßùw(++|úáç™ì¾Çõw¹ô©Ï³ùn—?üæ¿cùçø›=Ïõm“ßùê¯sâé&Ïžúó\}ý*·ú¿É'ð§Yš½Ì‹_ý.Ñä€ç¾ï¸yå:»×¿Åÿòwÿº®óóë_RYÎù©ÿã/3¹9âwÞz›ÔòåzÑÚå+¿þ-ÎÌ>Ë… Ó¼ýæ5F›>O²³Ã4ÇpÓ¡^0Ú‹Ó!WhÄ=Z'™.WoÝB[.8~òaâÍ>]ÿ³6Ow°sý VêçYzò"·ï¼M÷Ú!Ï<ûÉJ»ß¹ŽÖ™Ðzä!Båpg¹ã xiƒwßÀŸkr~éINŠ í¢Ï;7v¨ÚJÙoQÈ›luöi–ÎQŸ>ÆÞä]Úþ˜ Kg©¨Un®¾ÆÁØåÔÅÇXUÞû`•šP?¾Âpd9#æý‚î eoÒeêÂ4FîlæL-;LÙMÖ¯¬±1\§~TF/,,±ÁÉ›ýÉ„÷W×)›&Õ Ç(5Ön}èz,œ¥}oäp@mYG­O‘Å1i§K¢ªè¦Š¨M¡3Švˆ‡cZÕ̆@¿ãâŒp,dAC´ÔÞ>n¦ Vt‚@D·ÄLcâe8eÙkMDÔòϱwUyS (W« :*95! ³+Ä„ô;.¶.ƒ&Amª³&Y¶3òRFŽŠ™Å`—É‘4˜ºýá˜N-œ J>Aa3L†˜iÎLi­5¦¿ ô’ÉD¨–b4%#¤Y†.Èèµ*n:!v3Y¦Ð%lµDlhD›=!Cw*ÄB„˜–MaÄ(¢Îpâ8)I¬11d¦4“X<S E‰ÑE™Â4( ½0bÝLØ •D'ìI(å1’)¢0â´ÀL(aA[B(R U4ú…% VM´X%ŤJ!µ1ëMŠb1SÐ(P%‰žÐÛ9 ¢Ë,ÍC/·èoïrØíSiÚ”ê%ŠÀ"N&Ī‚¢$”Æ qB¥.P„Ó$zÌ,PdéOA£¯¿ñKg.g2r–‘"#K&cdQCÌ-ò!GûÐ:“2""ÔÜ@‹%"ÛG™˜¤2(‰‡ŸÙ¤AˆfÆTŒ ã\%r=¼õïáé?˜Èèb‰Ò‘*Þ~0‘h“J…š”’e9íd„ždÈZ4Vhè1ݰÍpr´µ‚©Êl­ïRn9ÌVuú{ÒLF+&øRŽO ]‰c•XŠ0ÉPTÙõ0ßÉÒ³Ét ™á$C·Att”pLàÖPð‘›BÖ M(Ì1""ãPGÑ2 1£0e ¿@+r†ªÒÉ@OÉ´†(cÅc‚Ž©kJJرHû}J+*¢Ò`´½ƒ9×ÀÁJÕY†Z}¦eΈ½þ:ÝÉ!Jn‘È¥šCÙƒÕÝREfþt™Y¹ÁµûÛlúë<~ú8+S§yi{ƒdìrjn–nàîì²°0é—ðÒ -ÕÄ»<ØŠiWZ5,–ã‡ò˜Á]­ZcjºÊþ»Lò1+§.cM7ظò[ã!g.|Ñw¹Õ}•Kçꄽ\ÝßbÑЩ”5b± Û‡½Ôc¥.0رò:uQ§ºPb$…¼°óÇ«³ý‰£ltÆlm$(DZm®_irôq•Ǧvù—om¢•.ñ¥~–­ƒMn×yj^EŸ¾ÌÚ΀¨}³ÇŽÑ- ì\ër¼RëïðÄ'/óSãW¿ú»äOUùþKßÇoýá6ƒwort¡Ckv…¬?ÅAÚF)z„ã·×%VZ³xRfo´0†Pqqƒ•é&Ž3Íáƒo]—xäx‹úlƒo¯M¸²}?î"ÖZ‰{þUŽ?ó4§O„Ý÷¾Áõo½ÃÅïû"çorÿO6xg«`æ'ÏpÌxŒ[7®±þö×yj¶Âò…áÇ:·^ÿ.™¬`-—©ú]N>ýež°þÁ¯ýooò«ÿðKüþ«6ãgÿ9áT~æÿõùï¾ÌÛßø}âqº"û½œK+ ÞB¹Ìtý Y¹ÇpûF¦²;°p¦>ñÄ2¯]òÒ‹ÄñË*=ý¿0ñë¸ÿ…òÅŽjS´ï&¬ÎÎñ?\>ÏZå5n~ã1Í<ô𳿵Öw­ãÌ7,Þ½×e+ððþQ|Þ~«EeL°çpÝëÛŒ» ¢6Î×6±>³ŸÍÅ€~ëUöœe®r„Ýk«HåZ±Ùë4¸ñ I«Û% œœ¬19vˆï,ßàÁû6•³Ót&ÁÍfä³é¶©TµÊ8«½±Údª2JT7Yiö1;”'4¼’Ãv,“û‹,¿O–˜=5…w{™ÒX‰œàöËosõµ—™²+#I*®ÈuAÙôdÅO)(1ݪIÖàuc Ã"Í”T K:ZÉg7ͨu–yü‰'9þ•éƒÈ"GReäD"ä¼@®k$žô> TIsÈ Q(8ï?ažaZIž„ ‰"cd))‰#(x> A¬“É9¶š“ª‚A7¡\³@Sp‡>’•ν¿{ÞÑcÊ=v·{Øc5/'¶PG‹œ)ŒhÀN°èW˜›G.÷¸·u IÌ1ј'loÐÔ§G°Œ[k9"ÒÐGe„€vS¦eiLe¤²JASq®¶‹ •ÛDô‰"˱É]‹_RÑDŸn$SP$DÝ¢;+ê“[)ˆùÀÇÈ#KGä&¦Ÿ•Tä "EG8 ô¹¥ ¬!Z§DRä¶‹Ü/ÐÌW(Õ*Œjû¹ßY£ìâ8&Õ"^âÇ-†ªNÅp¨Õtš­.f–0ì¤8ŠÎüá›[mü¥ *3:N©JÁ¬ÐÙ]¢½ØaßéC “;K·™ªT(ËlìÄj\_ÇÝhÌ?ŒV7ȯ²6ŒÈ÷NR54T7B‹7pUmüÎF››ù*ùô(3iÈÂH™ÅÀäWߦ66ÉÙ½YܹEw0`Êš¡ŽÁjæÓïos¼4ÊøT•ç/m²²Øå™Gg+»×[ôL13ÊÞ1ˆW6Ù¼£3‡×:?ä/\â±þ8ŽíѾ>Ä­ úáǽhG/¼u‘aÎÙ|„‘w}þ(üs¼ñN¦‡ÙRR.]¾G˽Íc‡Ù×x”­U—‹‹ßbÑ}‡Zõ#|xáGp «,>x—< 86»ŸíxÈ­[»ßWgttœ—ßÝà€:dä¹"ÁX•ðÆM$×blôQÔ¦¹v™…#âI¾÷æ›\Ý\çgê Û5~óÛ_adt—Ï}’·d…Å?ùwÌ­³÷©/²öú®µ¯RÿìÉî¯òÆ?ÿ>óÿùyž²ËüÒ¼ÂÒ•ùÿáïóÛ/Dü›_ø¦?asüÌ,÷ï¤,Þ}€Z¬ãFèxC¶:MFç'9=UçÒ«÷XnÝáÔñcîaë­WQe—9Š…õ×.÷påq>ôPc¸†¿g ’QÞùÊEÆÛå_ýíŸà»/¥üƯþo8{"~êÃÿ˜§NŒÐ ¿Åêýdk’~¸È‹…ÃÓ!sïÁÖ¯¤>]ãà¡s,¿s—»ÞCÉÇI‹6Õ‘*…,cwóí^{lÃ/QO5ˆ½@a¤”RJB†šNØS z¨û9…ñÜë&Ãf‹ãŸz˜š7Aïú2ƒ‚NV‰‡7)”ËTƲ¹¶ÌúÊuöí?Èì™#Üzý]ï/sòÌ)Äd…Ý‹W¨h6id»9z½Í «spj;NxéÝEÚݦ¦§)Ž—¸rç*:Õ¸B”¨p»·gOq÷–_cEôØsø Ói™Û÷ Ÿ‘ª…1î{ÛXƒI©²â®’ŠŒ‰©CwºôÆ%¦'Ò^]äÞ½»ŒÍW((eüˆ¹É9ZÒ·®ÞĨ•™Ÿ?L–Kl¬­`*.òÌ(y Ѿt•òt™Æäa¶¢m’N R…ª¬"‡)®àû)£z 2B‹M´v]LbY1±ªÓòc´„A.P‹¼IÐÈ :~Dµ©Õ§P$ŸÆÈÝ):y¡Žaz¹d²C<¤)ZCFN NS†©ÍTš‘V-Ü(Bî 䂌‹‡:H‰ 2–¬BÖ‡ ½„0s¼ÝɶÈð».ÅrŽ©èH^J?JÉ{ A9E–"öØý¡A¯*P‚.iœ1L#ªBÇ2m:²DÙÖH#ˆV<Ò¹€r®í¨ôsåý•\™aw‡±²ŠŸ›xBE´|²rBUTÈ]…îSH2’PÇhøè²Šß…‚ž2,¥Ô|?î"l•ÔV°$?Nß/Ó.C’ Dß!/ ó4‡^»‹bè¨C‡’é1°4ÜnB1©$ôŒ‚›‚ià›‚´-º]ÔºŠYƒ8UÝ¡ǨIH¬I¨š‰äJÙÇÍrœ‚Ž!445!õ=4M°ÃÄ„¤‰êØu‰4·ˆ<—´å#MÑU¸ Ùpƒ–#S EIÓTÕ§7dhe()Xv…ÀÜ%ÎjT» NºÅ£>Â[o½Eyþ øšª“*)‰$£å2y(£YŠnø2d $9a–¢j9I”’ a c!kMòv£Rôa ‹(¬^zí}À:üØô\L…bªâ"òb„4r?%•R$tô$Ç7rÔX Ä:¹!HÉÉc0íÒœ\2 Å=,Ã`çö_Vf’2à ÔFW‘÷3Ë £ETC¤f‘îv‘=‰îа|‘Òê Ì ¥1Z ÝWH’6jÉ"O\v·Å¢Ù€¡Dî´ÐèY‰È+€ÖBKM‘£ÐÇHKD¥>©ïé «½šl„ µ#r_Dz¤ZëƒpbR? ²K(DÚÅ@•uH”,İÏÐÏÓ Š«’Bi™JÕ®L°~o“<„ÂB á ´a«âp«¿EA²8{hÍ]–vVH=g~”±‚K³ÇÐ5hkcu}÷ûÜÞ]äá“Ç™Öê¼}ÿ&IrÐ( ŒÔx1ÙÎa£„ìKyÊXq” ˧=P•Bê¡B¿ç³®Û,ŒMшSî¬]g{³ÏüÑcLž8ÉÊëÏsçêæÏ}Ž=fÈwü1 {°ßÛÇ÷7)Œäœ0Æh›~&ÓÚH°&:X1Ü\ 8»·Êø‘*·ï4éš"`ßl‰³ÇŽðúù zo¾Á‘O";üQ‚MZ÷±T³ºÌÎbäÌ3üÑ·oRéßáÌÌ9î%M®ß}æÄg9e)Ì×/rµª’¼}ïâ=žøÈ£(óíçor´Ö"Ÿeé"œÎ ä{Ü~ç*«ß©ò‘_y’SÕß¾}—ý‡Ç9sø0øÊm’Üà§ê —Sn܉˜; {ð§ïµÙ)Mð# Ót{7xáÁŸyô8|õâ+졃¶0Žˆ'ñ:)[ê-¼¬ÅÖÝ2†æðÄ1 ;\}ë:ãcÄhˆÔ© ”§yãÆ5ꈩ½Ç)p9á¯ðÊë}úÇøäéqî¼q™ky‡g>ò?0âÞáå›Dzî'Xxô,ï}åO¹u³Ãsÿ#‘—’ïê”Hu¢÷ëÆêe}”^܇f…»^Å25â°Eà Ûh­³å†86è¶Ž’›h™‹—¥¸ÝˆrKШ8E(Ç‚nA*0RL•° †«‘X»loI» 3{G)Ù9NÄ–ÛCŠ¡R‘‘G*8‰ÂN³Kߊ3M,*ì¸>š¡ä ¹$#ˆÔjìâÊ[ƒ¦R3ÂÍ:”,ðý2jî"[.ÝPÇ×+TMËÈô%bz(z…’Q °²¸C×­âÄ*º,覩'# YX䉊BšFXAJ`DD©ÊûŸ‚¦¤ÄE…¸C&¸ vÁET½–BAѪYâ’–’ø&flbC®›#§)V*ÌNœ3PzD’ŽjØXa ¦C{àöɲ…Ñ""ÌéI9ÚRYÂHerM{ÿB/­ÒÖz$Ë=t§„!X¶N8”iûyÚe\ŒJ‰•<§ÖIGR²,"Þ±Y€R)*37–‚ÙYþKÀªÎ$)"NÑM$“˜‚Èl?òC0Y“!‰ÆI£É¦]"’]|ÏÇM- ²BìûÈ…]­#›÷ßúÁ_4¹?tMVÐ…a ™$ÑY‚¡ ¡ '’ˆ•ÐPP„åøyŽ"CARðS/ŠÐ²Ý0¤9ý{ÿ]V¥ÈNÚÂIsæÆ¸ç ¼¥ë+6cãGѼ 7ïÑ–TNŽÎÐÉ-vZ›Ô ƒ±±;›ë䘔*;b iÅ¡l•ðeÙRЈÔAdmÒ´GŒän„!ëD¢‚åæz„&ðƒ«“U#P,Èsò$@.”ÈãðÑlèDºÈpÜþûcbY1²oCž‚2 M4lòTGíÆDY­:ŽY¥ù`‰(÷˜œS0%Ù®Ðéîàî.sxô0ö˜ÎÎv lævH–'쟬’‹"7¶ÖQå3‡÷P Dwõ27¶—yôès”4®Þ¹Ha»ÎhCg+O( B*s#drJ­e!fFWï²[ãþFJ¾%˜Þï°¿ ³ÛºN³k€ušL¿ÏDä±yw†âÄ“xï½7ùðh™Ãxbä ÅDçjé2Á¥mÆ·2ú=Åõ]®¾£rдyx®ÅµfÄ×ï ~î™i¾¸p˜ßùÁy.œ¿ÄS=e±ÞydØÁ)LS² :R⽋WyûÞ*=ó1ôzƒßzùQG‹ü­'bçk-~{}…ºÓcº8Í^ûk­%[È…D˜ÌpH?H¹âòÖöóØÞ^ŽY`e°NgÌ‘ š úZ•þîæCkGÒÐp/¿Á÷¾~ùäQc‚ÿöõeúù{üâ#æ6uÞù¯ÿ+–ŸòøÇ>F¿àp÷ù79òð1RyÈòù>g¾ôNŽäÏ¿õÏ¿ð'üÄÏ|ˆ‡ôþ¿¿óUNwø;?ñãüðïòý÷©›%¢þ2ë¢Â£ÓÃMvÚe k»Ü,cÌÏrðÀÖ.¿ÆVSãØ#"ë‚÷¾÷5´–…Q}œ#'¦¾Šºs¿?Å¥Þæ‰³EþÆ?ù1¶V"~åïý£…þá¯þOLMMrýÁU·ßf¢s>£ôÒ;ŒêS£ÆÊÖó´º;<ùôq}?wß¾A«·Eaª‚ŸYÌÚ*Z1àúÕ+´vR ccÔœ*YÜ$ÒUÒ%…Ìßd|j•pç¶‹žöI‚Ó‡÷R*øÖóï ¶vùä“v&èß]ãÊò îˆÌ¼\i““4LØ »”ª&s3{ÙØñ¸wó 彌?~ˆ;wn®á83´E‚:ª!oúèú(ÇŸgóÝ+¼ôÎ:§ÎMaŽÛܼp#«07²À0Kh¬¤H‡å2ž4do`2ïUi­-²®¤È{«T“It· ®L8¦àõÛ -ªæÅ)¶¥"£4dñþŠ’°o~×Ó±r QR¸³|‹Àõ8¨~fâ·Z`¤¤~‘B±‡„ÌF˜Òp2T,bU†8@V†Äj‘è¨RLVŽ…2©×CUâ’J!µÉô5 AI±C …@ Y¶É«˜ $19§˜ø6Ðm£:ÆêE2Ca8èPì hÙš2‘èDºOŸŠjQK-vÕ.ÌÙ%BG0ìöÐ"Éɉå# •ØK)ÈŠÔCmoü%`Ù{‘C@×Þ‚ÎUTK%·T¢A„"©!£È2yž!¤œá0$ÍT½‚aDˆ( •8d$˜^aèÄ’Ž&ƒ;ÿ°F?…&©HaH¤¾?è¬ä ©$£‡až‘çêû—oDzNùX‰Œ$HòÄG9±Y@ B:‹•ÁºÛV‰EQñ([U¡Òë'$V„Œ"DÂN+¦Øp(ư´`–rÆu]Àr#2 ËÞ¦'•®æ*2©Vâ Y4IÁ d!è)Šï êÊé)ᓦ:FÁÀZh®ElX¨Bû Ø9ˆM7èû F j.h)2µ\¦ª’ú.®PKFê.²èB¨‘;9J êТgn#9*æ$agH–uÐʑܠáiÉgÅÛFˆ³å ¶Ó`sc‘Õ-—™…QÆuÕÝ]¶û-ª…QtÇ ’éö. îó= àèÜ[]ÅQ5Æg%Z@¬ºÔûC*S‡ \D{pƒð”ˆâf…){œžéãnï`:óŒÛ,¶]Z™ÎÜt•‡÷5¸ý`•K/¿ÃÄž0ýÐaî^ø.]%áˆýa7ÆWWL•"†¬µ(Ëø„ÅU¨H:Í7¸³µËê’ÏžÇaþ¡ Þµo_X#oÝgæXƒ½?~–+z—¾ÉÇ>}ÓÞËÏ>Ϋ ËÁÛ|zt/M⿾°ÄS£Çx¸aqÛy‡æòòÛ‡ Ê)æøaëǹwûyF®¿Æ¾ÓÇØªž#½}›ƒÇîóî@âö÷ú|æÓ1~âçßú9%N?toÞºÁ””ó‡Ÿd­¿ÌíËKì;}‚i¹ÃŸ…(|˜‡ÎÔ)Wx}å<كǟáåµ nÿÉyêì1Êã‡i]éÐôû·~åWøáÅKüøßþ,Ÿ~œ_ýµÿõ—ù›¿òÏ8|Öâùßø6V‘Ÿû;÷vy÷;ÿO=÷OOŸäׯ}ƒí÷6ø½ñK¼úæ›|é_þkýõÏñØcŸæ{ßúS¾ù½¯ñøÑG9}ì,?¼¶Hkù>õÙ9ÆFö‘íöØÍ×0‘[¤=™³ûk,‡}î½|ƒâÁ #3Gí’ºÅ;këLMMsldޝü àáOñ¹OíáÅ+m®~ëûLÏú<öñg9¾p€p—æb ¹Ÿx=î”æ˜iÒ¹;äÁ²‡]ÊÙ_;Šf8ÜZ¿L{ÕGŽÆ™œã`Má••ë¼y½ÃLcš³‡çØt7¸u³OÑ,0ýÔ!ÂK,¯\¤4¹—‘j…­íR¯Ew³Åê ËCSóÔ wí;½mj¥È7ïÜ£6?ÇÁÒC\{ãUÚYÀ±#§‘t;W®¢”sNž<Â…ÕËôÖºüØSOqok— /¼ÅôÁ#Œ™:¾GL°z7äÍK¯3µÏdò¡3¸÷¹s{ñê Æx)ÐÙñP‚=¥½Ü½öíÁ“>I÷Ö{«+”(VeÚ (¶J5IŠ‚«MäØevÿ$Rª •|*–ÍZ÷A ÆŒºk}²Paß§v<Þû³×(­±gï4ɦAê$£ƒ­ªT¤&²I“Ýí5hÊ,ž%õ2ïRÞ3F©4Çn{‘¬»K¹¡]¥ $ˆH"+ôHÛ¢ ]T \UPî+¦Š,[„½.iGAŸ©ShÞîÓO;¨™CI8ø•š/¡ö%⺌]²hm¢~‡b=ÃNkZH,Yç(nÉQ1БI`§ˆaS)¡™%Dê#䘡ï °-‹00.}%§`ëUˆU‘¸˜¹FE8ˆR›­(!Î ¬~M/!+Yš”¬a—TÉ!·H£ˆ@ÓIÂ!™(£h*¦Ù%ª¸JŽèèšFêxHƒ„Ьé¸=ì<%WCLe”8wQPp‡*"JˆMUÊZƒ<Ħ‡BLÜÉPJ*E{œ´Òô° 6’C×Å6 %'TR’\E ß_>k‘“œX ‰2õR™ =ÀÍËtQh$!E+ÆH@q+Ȧ„VL)„Û'”"ôDF.Œ"ïÜü+kv?OQS…,—1µ µP"M3ÈCLt3BI"Ë<È S:è>iî“dT‘c Ë/òzËç{Šé=5~ë…wÙήðɧ?BnŒðÒµRŸ3™Ðösg1%‘ò»´ruk%Ù?Ÿ±Dô×%æFLBár§¹ÄTcŽF¥NûZŸL±Xã6rr²~˜Nצ«û8#Eã‡kgð§Fyuëuôì{è4ßí]bx¡Àêû÷ïg'‡ßýÝ?ÅÍ7ùì3?Θ6ËÅ«/ƒhQ©>ÄzÖd¢¼—‡ÏóÕ¾Ëúù]>òéÇÈÖ‹|­ù6”%¾4ÿqn¾×ä?¿òæ÷γ¯³›9Ø'F_½Ãí囈Ò4õQ½è Š´Ö–H‡>µÆCdò‹Þd{KåÙ}ëðý/•ÊÝ $i/×Z×ø©§GøìÏ}š;ªÏúÉ0½äðwþÕïsìØ·¯ý€[›÷™vs¼r†¯¯ÞDÊï2=[g×5Pšï1Q[ 8q˜·ß¸Ír÷ ‡ç÷Y‘Õi( /70ºáQµFÈÆÊdRÿîj¹€œëHq{ªÁ°ÛG^q1§jLb±ñΗß"ØîñÌOœ}cu.¾z•ÅåUzvÆLe†=¢ÈöŽGŸ]*ã:Ù€²UGíj¬.ßf~zœâØ,~è"õViue¦&fIä„ÁÝÛ… û™e£ßæõ_cld’ùcs¬]¸A;-rôð^îÝ¿L8è1:q€‘ÉQâ8¥Ý_Å”,2ÍÃoE8u8ðØñlÆFf©ù!;Q*3D[kì¶6(ÌQTGP¦:°*áGáû—fÝ £S•q^Žëߣ«(NÊØÐÁv¦ØÈºä»m*vަÓmÝ¢<6F#Ÿ§ííåmWC/[è5‹t½EäF8ÓQê uÁº˜•E˜h®É@‘ÑÚ¢´EÙž¥eõ°U(¨ªOˆŒÝò‘Le %´$"L<†]\µ˜¨é%}èǸiN!Õˆ,‹.q¨ §£”A> GŒH4êV™8ó4HÑ QpèwÞ?Î*©%‚D&i·iÚ*ª$h(»A§­±Õ_'ŽŒ×G)ÔMüN„ i© ²RDE'ê qˆzÑ!2BädÊø^N?I)à6yâ!Š9–V!O#†C¥d ô$áa)u"%Eˆ,Øe ™(ZQ;aàúìÆ1Ý ÒB· R³‚3¦à§:Ù¶‡a LC·HƒM–‰‹2’äÓîÆ”Ó]±Q &V1aØ×‰ÂÕŠB’ªIòþ tlE %E£JšyrXR–LôP3´š”"t<ܶ‡é4Ð$ I2ˆRtÉÄ =†šK]®¡4"$¼N1ð‰+c8І.g„4à £¨2'bv• qÁ§ÑËñ7 ‰ …‰ [-áÆ)²Ÿæ1¦0p2T¹€ºsë/«0yIOÐ(š…Rà£ç*ŠYÄKEF]‚PJšó~sA¯= (”U0D¶ RŠ£(ñDŽš –.þÅØóüÂ"Y…‚‚:HQì”ÌK‰R ¡1±IýœTĨ™B¨HÈJŠeôRP„XA€¢è¤–‚¤DŠ@H {¥`mšZ–`ä;„¤ùT2ziͲ¼Ý&ÍUFëU’$¤FLK¤rÆ•SE“‘É«-Ü­ñƒÓTc—þÐGAÁ3d¤²Œ×R±å€ É‘„M!ˉ܌LO¡¬"Á¬²BfZda‘ËBÇÊSÀŒT£c¸È.(²K®êÐ/ ; žR$N·ÑÓ¢T@ má´·Kí»¼w¯É‘#5öO9¸—ë¼þý˨g;üì}mgŠ—^¹BÞnòì¤[èðÏ~õí?Ç©³£üô?!šò [ãÄž1N:ßÞf±¹Ä‰öûŸ¦wpÈÕ[‹èí„é™6¶­‰Yäû—(Ýzö޳Ÿä`#àãgóå·Wn-ñôÈqþ¼Ý&N=¾pò0í ^~¯Å3Gö2kVù£_ÿ…â>v`×Ô7¹¼|3šd¾8‰æD¬ýð6’*8ücdùÖo¾ý5‚#E&"'ªrtjœ•t‹Õõ&f‰Ñ™i<ÏcóÞkI—“ÎG93?Ê+WÎsy›‘}EL?É'gxû|ók·xæ'þÏ,Œòæ×—¯_ìrⳟࡪÅ;ô=¤“ûøì3OóîÅ?çOßús¾ô…ÄôѾñåß!Ÿ(ñù§?Íí(àÿê—yìÙGyúôY¾ñöuοö5~éžj'ä¹ò+ÔfÏñ­Ÿù»üÉýÿäë¿Ê§úq¦¢/õVèè*' &Êô½;wY}÷‡8óG™šg{ñEjˆ’Í»ËW©K*ÇŽ<„\x°‚–O±¯´´u‡×®?àÉŸ=Ç/ýä'øÍ?¹Î¿ÿÿ‰ŸûÄ9Ž}äSlo¢Mèì¨ï1Ó*3Ü\ ™rF‘ª.K^Ä_aÿþ}ÌîU¸ñ d ßļ%ÑKF?{ˆ1±Î ¯¿Ž·*˜;w˜é~sÕû}”Ê(uTú¬¼»ˆÞ0˜œ?ă7–(K=Š{hm­¨) §Êƒv€‰Çž½³ƒ€ÖÖ*ŠPÛw˜heó›KÌÚÓûOðú+/r{ùŸÿì³,º¼óÖÛœ;þöÌï|õu¢Xâ±'#;ì •|„‹_¦´PáèÑSl_yÀÊÎ*5½FÁÌÉM•ž;¤V7¨W§Š’àèe‚È'ÎbÔTGÕ‘"°4E"ááE]ŽEÕUQ5Ùíãb¢ŠœT×1r™$uÑõ„…严˜(Ɉ–º(SSŒNª¤Á.«k}Š’†>êI‘céERÉB+w‰»1nßgô@ g °5lÕtªІ&™ ÛõPÓˆ¬¢£k ¹0¸†<@•Âz+´ˆD9MQý”¾Y¥jêuè'†U¥AËíbÔÀí±ƒŠ*1KÄÅ‚€t¸:X'‚0Žéø½Û†šƒ+Æ0“m”$¥í9hÅ€ª2Êf”#ü>F¢ªC%Ávi(:c‚ ÜBÈifRL ‚¼‹( ^0öˆ¬/¡E$'GËüfŠPtb=AøÅ‚‰(8 «$R@ê&qFÁ Ðô2¾ç‚¦a(šŸ±©k”Â>ræ |_! 2‘b+*Â2ȳŒA§d8# Aàa¶ü%`L ‹@6%rt G²d,Õ$W"dI' ¼(&’бS8ö cè!’E1Q BÓÉr’<ÂÉy&óàÒËqEøø£H¨È~DdgN*dr᡾šz±ÈyŠxiRŸTxhšI.ËH½”TC8Sèþw Ön*Q™§$lììâØ'öäï]]¡!Y˜š¢ÙëÑìõ)êTÆGÈ£˜\òh‡9’ç"å Úø85Ëb«³Œä CÅ,Èxë!¦™áZ‚2zÚÁŽ-0Túj_h8)¨}Hk$9ž«’ë¥t@¬Ü\Á 4r<¬Ô@±rÒT‡~–ŽPÊÄÉûC©º0pƒ>ª¡cyUüÒ&’¡cËS„b‹a¸D]žAsDR‡AÒ¤7Œ™°‹Ì.”èõ4vw[D¾L¹hSkØä~V°KÞW°Ó,TF¸¿û€•Í«?òårƒæÚü$$b]ÎÈä-Êq­V¡YxÃ-vLŸþ@°Ç“©N6èöÖh· êããôü%vÞëS«ez΢¨öxÐìqåÆ ÓÅ}Ì(q/XÂ’Jw·0ÈâcO°³îѺþ5̧©e·{-ßB&×Jl÷‡t:[÷c|þNSyãÿ¢´“’ž9ÍæÀfD­“±ËÝÍç98;E¹±Õ÷–Püš# û=vêûyùú.{oz|êçöòçá6_ûÅËü̧ŽðÔÃgùúåWÙl0¹÷#ƒ6¾°ðL•‘ÖgNÚÃýKï±Þkq⹟dºëó[7^¤×€'‹ãLçãlKët^Y"²÷qËÕé®?`ꨌÇË/ïR«ÖØ»GcINX»W`®ÔEÕøà’P…hE£çnÊŽ­âLÊÄ“$Ò€îj—b%æ©îeÝå{÷Ó>öÄI¾óÆ‹œ¿q…ýſɹ™ ¾øÿüWo¶xôÈGŽÍq >Í›/œçÚpÀìÑ(}…t\¥²»ƒ+«ô1>õé'XZºÊ¿üÏßã m†¿~êQþõ¿~ÿ{ç2Î?LiÉe)0™œ‚ÍzÁ€ºSa`˜ä^—ÎÆ(U™ÁžŸàÁÝE¼Á*h öúÅqeg½“7ùÅ_þÇ<þÛù%âóm~üW~“ñG÷0|‡W.2}ˆ³Ìóå\àÞFŸ³Í D6ëW},å&Vq?Qlо‰H§™=wMÎHî­óêÝEŠ•”µýt_†¾»C^Ð±Õ ôÖ*·Óm½Š3(“dòºÂ‹ï\bëÂ6‡ªGyüsG†¾s…{›kìy|[äý½<¡µy‹ØÌ[t}Ÿ­nNQ®13–³¤ä˜ê ‹v±”¡uï¹2ÂñŸúÉúu¾ÿÆóÌ:Êɉ)VWoÒéªÇFÉ}ˆ‰…1ÆÇFØ~ÐfíÁ ÌÒ>&FÆÙ¹¿ŒNHy²Jsm²1B£aâû=ºžL–øD]ÌÙ1„1‹ Éh†>IÅfLÈi‡¬8J­1Ëý+ì4wiŒLRW%ºÍZµJW´ w%ìJO,cö5(Th!¹1È%ôÜÄ,ì6×qú Úì^†½ezAŒZ(QWP:‚P h·88Ø%™0ÑÀOQU—ÈHÕ”±ÏPèäåFœ@,#çCzý‘=E©`õuvä>ÆJå2ƒ¾KWïcÙ:jjBTE+µÙ^âfÓVI,òØ•3Œ¨‹¤T);*;ÃôÈÂ)Ùú C7ìá{*³UGDìJ6ÍmŸI­ElNakAÔ!B§”ä¨e“aWÆ]TÛÂj›äŽBìøÊ69uª~†p$‚È¡—F¤z—q½ŽIøÃ!q9Lj úÑ=,¢89pqûª:rEÃð#º€# ’$#T å˜n+ÁŠZd£%Li¡7qwdÔXE”]QÅèvA„Å Šì!w7èk5ÉBè›èJ^”SÈ;”aAÇñºjLTÒ‘š:4"Ëp]“4I05¸.½‚JE¤¡Lh,+!î ×¥¨h8ÓÈ©ÇzgUª!ÌH)…¤Bª*ÈI›È‹ˆ: 8ZIÇf$j@¤WÁ1#¢8c؃ÀʘÒdvÔ0Èѳæ å9>a SPCtUa(W°<Ÿ81þ»»3u5ÏÉt“œM乎lèä!dJ„ë%xrŽ%kX’F_ê“ûº]¦ã*„hŠRNžäH²Iz΃ aŽ?üR‘ÇJjàJ)È J¢à)Z*¡æ) ¢`d¢2T}¬2)'•UBb¡a¨9jíûWþ°ZæA7ÄÏÁ0ÞïÊHô£!¨UJzÎŽ:Äu Jrˆ]rèl'"btÒ¦³ÝæÁç÷0=mskq ?2P* "»™ÝE‚ÔÁ´º8AG‹IýUqÈ-0â”ÄM6R¢âå2¤–Z M|ݧœVȸ¸d„D¨òÀK2rßE·dÔT'•ud‚<À/õ¨Çs(šŒ›ð×,ËÃÂÔl„â¶Z-“ÙsX~»M+PžTX¨LÙ«÷7ü„™=s¥ ÷‡;ĽŠã³Ô¼˜8 È 0èÝ>š=Oy,AKz¬¯ÅìµÆð ‘Ù$Õ,d¿Œ ƒÒ\¢Wš¡qbk=ewó&Z“ùÚ³¥Ãìö¼¹x‹1QbfO‰ÍTg òòs‡°÷ŽòÖKÈ«òOîí3ùÖ¿ŒR;;Á‡Zm^y燬N8%=Ä£8$Õ_¾ómÖßQXxôê™6v“°—1u:Æí˜xæµZx9£RŸ ³o„d3¦‡˜·9JD¸8àÛÍN:Ê“r•/ÿàU./÷øûa{Væß|íëTësœš~ŠNë.]¹²@afŠæâ Úo]@žcvJ¼#£Ü Ô쌊¹À]gcwYcaz?G */œ‰»­û|ä¯?Í^õ ­Å&Â_§wu…ìô‡ùìÜ®~õ·øêó¯óù/þ<“„¼ýÝWqÍҘ܋œçU®Üiñ©“Ï15rcw‡G?ú ÂûwùíóÏÙÿôüçžæ‡«K|ï¾ÎÏüÔÓLÊ þáÿøM-ð_øþì½ùçÿÓ?cöðø…Ï<Îë÷—Ù CtÕaü`áê·<àÔØÆÎœåÞk¯Òj®3sî’»K;ë0£î¡¼§ÄÝkw VÚ3CâÜãëß?ÏÏüÂßæ‹÷£ü‡ÿù—ùá7þŸÿÙOræ3_à[/·˜ší0½×Eº+W¦¹´$j]&æ‡Ü|§M!/±ÿ€‚g”¹xç"«Ã6‡FR°+ЧáÅ|çâpûŽÂk÷¸vÿì=Byn„þÖÞÒqIG ãTé6[ì.î`Ζ¨ê*Qâ:õ}4,²éî ;*5»ˆjŒ²ãn¡G;TgŽÑÌz„&µê$RÞgUîR«.PXëÒsÊ2e7Æíw°½œ¸jQÐ2²@GQb†Û9[Ñ*{F¨¤3¬,nv©MÌÈ*þò6µr{ÍéÀenl’íBJëÁ&sÓB©ÒòÚñ€1CG­N²»¾D7r™š™Ã”FØ•Úto·qª0:R'Pv£!rJiú~¾G´‚=¶q…~Ý@Þnã6Á3P•„tø¾CWfà Pãˆj}ŠÀMÀK14 I‹ø[UE ¢QÕC’%â~Ln(8ºI§QÖeÒjBHø’GÔŠ/Û(¥"ðOëÎ6aÍ XnP”xC¨CîÊ1Y ƒAŠ£ª8Án?b* vË&úô ìªø™S·Ð5A§å ªª(ªN”ò:©ê©9±Â LèEø…CNñû Šj`—AiȽmr=EUJ(v†ê¨YLWtQÍcNJ·›!T…ÄoôSôR‘KèI„ªXìø9’R×â\% ‡˜:QŠ®n‘h:9ÎP`4ÛŠä‰A`uÈÂIÒ(+(f„çéè½m<µŒ:YÄï¶H 3(«;ĺ@ÁBµc ©Ì ‘I šTÀ0m9']wÉSA¹¦Ê‚XÅ0Ð2i))ÕØD²£€-<ÚIN˜ù˜ÛCœF‘¤T Ù pÕ€âd÷¯«¸?ijä!tE7…Œ\R‰{¡¡P‹(ºDuÉr•(I)å)žb!* nIÒ÷3XºÐ°r+ rEeùÿmrŸÜÿº™¢&™' Rƒ\,‘ág>~V@6sœ$À M†r†šx¨"#V,ä %ËL}“(é-þU=ýO¡?P+dÌÎ"Ï:¼w«E ÙœÛ7‰Wиw§É¼9<ÍJ§K˜zLÊeîïöH"8vt¡.Øhîàô#ŒbBªª¨ÈÈÞ€X+)‚”RªÑ² ´h€9X6 trµ‰œ–âÏáaÙVÒ¡/ê|ƒÜêâ¦(¹E®§ jàoƒûUr=dä4#ògÙ,^ùÖŽŽÃèœÃ 2ÙØˆPì{¦!š n¬_cÜm‘LØ\q(*“8“1Áƒö>1Jyj‚W^YæÄ2ë©#üÁó—yauƒøÓ_ààäÿò+ÿŽ—ßXäþ¹¿Å©é ß¼ð zŒ³gï,ƒ Ýi-†×ØÑ¦çæØá1Vš·øßÿßã³?zŠßþñgù_~ý"ÿøßü¿ð/?†íuøÏo.qð£¦4ìpkû5ÉDÑw&A%E4eÊâróÕïÓ÷<|r†©“,¿ÖãÎâš‘rì\•¡©3¼ƒƒ{xêèÞX»Ì«¿õû<~ö—øôSGè:7ùÆoü>g'xöƒà›ï½Æ›·w9~h?Q’lÞEª©8õüíŒN¿m…Ê™šáþ­Ë¼~ïyöÕ03:Ag+bPíÐòTFà M«õ\VÄ2FGãøØ9ˆ,y«, ÉͧOT;>ÏÍßáÊæNeŠ…‰œ8`8,ÑïFXú[j‘†1ƈ™rõÚ.©ˆ8zhÍÞm®^ióØ#GqÍŒ›ïÜ`¬q€¤Üg£ïrpæ(ê°ÉËo½EØá™#縷ý6×—·±ê±—†¢#J ƒÜhöbð 2ZÂV v“~/A“2Ê>D㉦aú–¢C!'Œ#v;ªŠÙ¤aBlù¤Z‚(Y‚8Ç  €Y˱=H•QR‚´­§(>(é‰Ób3'·U,EAH Š•b ,¢T!GE·ÚDA‚”ê6¾d‘EC¼…Ї¤ª@÷ˆ:DFL½^ ³"Ñël£•д z¡ƒAi”¬&%­A?¼¿‹ê¤(Y‰a®¢Š.¹P‰¨c4‡8VNXÕ‘¶†v„Ñ…G¢@hÊÈ}‰$ Ø&ÓBgK Û.V“VT2ÙÀð5I!U ë'{äyÍÈÑ øQ˜lйK‡Â M5)Úaœ°Ñl¢Èc… ªÑŠd‚öݘ³y^"ë…Äé9NØÑL*ÝÅ¿²'¦!>GU@Ò@JQ…Bwâ+!£iæãc â[—è¤*Š¢`'˜)‰k’g1Ž™14ê0æþ{a8qŽLU‰Ó€8Ï…ò¾‚%KDA‚Ð  z”ã¡’s8@1dR¹€e(rŽHž`æ2ùB;gp篬{}<Ë#0º¬õAÍuªƒgíx9c…qI¯¤A *S# Ì´Ù¾w­¥©fSPr¢¶ ŒU˜N-•H•¨Ê-!aæ»ä©²YuTC"èG¶†n§¤! I(câËš? Õ%ò<"§HèÒ<€4«¾² ºƒœôié  "ʤR‹ÔuQÂIìªA¿ùÐÞÙ¤QclnIòà~@×ïSµ™(!ü„»ÝrêSvŠŒŽŒ³Õ[§åoQ·§ñby“†=d£¥Ð‹\êÅ#“%6;‹È[9Zm–ÄŠÉJììxŒîêÔç V[-²¡@›8È`séê ÖÉ3sTvMZþWî-ak6gN`©;¤½óe{›±¢ÍÞ§Ÿá­7мû<Ï~è4ž^âÒÛר?n"êU í5¢ÜäÞ°@9Œ˜Ÿw`ÄÄÛ’¸ð”l‹Ï~éƒ$£ ü—?ü6‡:»üƒ/}œ·ûÿöçO<·—_üߊeíÏøÉáeî>Ê+Û âÀ§L–þëor]šaú©3|@Ïheßt|ÿüuŽïYàÓGóõW~Àú }èùØ«š(õŒOÊØ(¤3Sô“»Üýƒ¯ñгû94uŠ7–¯²¢nñÑ3å#zÊo½ü/¶l>æïp“ßYâ“§Ÿ¤PƒwþüÓdüÈA¯_eåê:ÅCGŒ”Y¾µA½³ Õ:¾5M"oálô K£ìä7aXçäìÓÄ•5®½ý:^¢2þá}Lȸyñ*+ÜeÿÔ>ž|ü(f©ÊKß}a÷ ŸþÀç0‹¼ôͯâMÍ1³°yð€øåM^ºty_/9ɰ6Ê7.¬0Ñ4ýï±sÊá“Ç?ÌÆ¥K|ÿ{¯ò¹<ÌÚ,çŸþ!壣üÊg>ÌŸ~ã¿ñõï¿ÆÏ}ê'9YPx³“pwUÃÙÞ ô¸ÆdKpáìñ¦ŽŽp÷Ê-ä,`Ïü)ÚRÊæÛw°œ”ÉSgˆ6·Yw·±bcRãÒí²*ŸøâÇùÊ ïòê—ïóþùÏ2õØq¾üÍW`¨26UààÈ$ã o¬†HOªì­nðÚÛʽó°âm.^Ë0¥{*34Æð%…­ ÷¸9X¤Ý290;OcÚaãþ-B¯DѬ#z)½Öe²} cåc,µUÂÞåÑ §Ü ·ê²ÒZãܹÊG¸~~‰û·ß!•)Nž`Ïìrìsï+ܺÛãôÙûÍsïBÀâå×™ÿà1æNîåÖW.-ŽþèÓä†ÃÝ·®ÓÖY˜˜8 ·¯#U§=X¡×ïánî H{è–s´¬G56záX5“ì4‡èV‰rY¥^®ÒÝè³Õj2±o³8ÊæâejUžf¥»FÝpH:%†ê€ŠUÃWbŠÝ±3‰PlFd 3…út›²êQ©íiìP¢7ÜahHG'‰¶štº>¾%cÅ! §Jl¦¬¶W)j8ŽŒ+Z¤~‰²®¢” vVwi).‡Ff0ê#´6VYo¯2­Žcï)⇠®bnô‰k °ˆú ªbJ%”¢Dž@<ИH²ÈÇ‹è¾O* ¢d7'²4*–N›…Ø„(ºÉæv†§¹Œê&’] 5T­OÇ©ê¤ÂAH.jé)†ªãy2ž4„( ® $«N u®y¨F†Ó(¤)éVÊ 0QÇu ÉÇÛQ¤£•=t?‘ÐrSò1…†› dCE9a¡hËd8ôÑ•]·’c§6i)'#Èè)‰”¢H)iš“Ë)¤ ~ ¥š‹è.†¥ë5 ¡Ç}×EX „á”S zÃ"™ì‘e¨ò¤:¶Ø$ÑFÑ•LZGªäºJ?rÑJ9ù°B©˜••Xê b¿K¬µH(Sh[ôë=ò$A vˆè¸I†eÙ(VW$X­˜ÔªÒ‘:˜qŠS·1†Aâ"\‘R’ ¨å vñ».SÕ”l’2R‘`i2Yª}ôzšBÙQÐ’œöÐGøÅ‚E¬YdYJ˜÷‘”7‘±«µò—€¥Mî!H¶IŠ@&V$‚L&Ëtµ@A3È2—N&0ä9Ñ‘äÄÐPÃâŒ\·µ 9Éè†9Šœ¡Y±xé/,‰ӓG)aô>åKB „2q’h:"ϱ‡1¾He–Aï=Fy”’):ª•£¸>!ŠR vï_æ™gžáÅ_dS§>~¿Ïî’ÀpªÌMV‰>wßZƬ9~p†^;áþî"ãö8ƒ´ÃÖzÀÁs{˜( Þ}m e,ÀóÚàí§Vö ä€ÀµQ .å4¤kØt V¹‘BLJš–Kt=(U2$e€ßÙ1!-½Ql1 ð~?—Ð1‰€‹„”R–AQLb *žBnVÓ€,éÑL†”F¦ÑTy8@V»|Tvt‰´ÑÏc2uÈœSC2+ô‡-ºi3)0;2ÏNò·çR«VÈÂ"R¼N±œ!  ­õ]LËc²>ÆPêÓÙÚ@ K83 IE£é´\‰Þ` '±hT÷‚Ñg«ußàÈè(µ¹KéÛç̤˳:a™^[A.3· ±püC|ëûËì®Ýâäerk’n¯ˆ¹½Dwg“Âä)öíŸäõ ßCò zâ9Œd… ë"%Ö–¯£k8y‚nïöùôAšã£üÎÿúmÆf+,üäßåþú·Y¾Å3§þ^lCµÏ£¿ÿ&ÎÞ"|ôÃì¿Q€¶GtÌ&rû ¯„LŽ5x3[ã‡ïöyHÒÙûÐ&ÛM‡«kc4êë<ÑpH³ î-nË*S§"bC0ü†Ûˆ™,ë³g)(&¯¾ö<{¦*|àܳܽßbµ÷ ¬ý'/Œ±rë2Ç¡º*h æv¨5&¨¥ ·º=TOáñÓã m“óߺHÙèræGžd}rïÛ¯2Z®røÉƒ°©rçÍÛèåÛT÷d'Í 8²?âíÅ+Ôº?öè#<Ø\#^ ÙóÈInÞ?Ïùë;|æ§Š-èüÞ÷¿Ê¥ë*O?qšSLðêŸþ‹ÇküÜØQÔŽÅ¿ýêo3~ò_š¬¯l²f}œã£pýü‹üñ×øø?ú0ÿôÜÓüçßþ ÿþ[ÿ•ŸýBÛˆÿø•„ÂH‘IÝgmýN¯„<Ñ%·ü¨†×i15Z$ˆS–º7• Œ=rŒ,ó¹ÿÃ5Öú ‡÷ô™?Y!Øôzk”Gf°ŒÓ÷øÊ¿ø^9_äþÞ•ùÅû8ÔçŸ>÷þÛîï~÷Û|øÑ³3ì^Ç€zœ]7%^E¯Í3õÐ켆·r7°ó¡ƒ¸tý<£qxb„`Í%ðÛôœ€d7î)O0ŠÎk·/°›'œ)›H¥ mr/÷/÷xÐcËë²ävÉí: EA«ãš*zlAR%ìZ™î¶G$:øÝµ¢Œ=~Œ{‹»äJŸÓGöqçV¿õ€ùÙ¡SưëÈ[CÚÃû8¦qÊ#t»Û¬\¿%›ìÝ¿? éÞYadÁ³t>ã%›4ÔY[YC aâä^šK}·ËÞ±)Ö½’¾ÏtuTÁJwƒx8Àše¤ZÅoÝGô4‚l+Ci:B$û8ý>i¡LW5Ó»ä^Bdh(ã:©7DCÅóc¢K Ç]ÝÀŠ"t×Åw’D§ iT ‚¾—³uHb•1CÇLŠ„D©Šìº(ŠÀ™°é÷p;(vŒ! BÍ ïE ûA?£8«RÒJ¤iL·×£`Zè¢Db…Èrz}ä4ÀT¦€0´Sò¢AúRŠ"U([ìÈ$° ‚ÁÁ0§TÑ©H î0&ÊØ¡OVª¡G2A?B.èDÃäQDjÙ”|Ad( +0$yŽ^V¡}È&H–‚ÞòI˨’§Ru€Õˆãˆ\3ˆ’˜öN‹ÆÄfQ¡ßmáj!UrtÓ†T¥ÛuiúJAb‘X6ê0&WrPd R©#%2zQa÷Æež}öY^xá\gòŒ¥Î.Yæ÷Õ#þ]ËqˆrV?Ä®ªL:÷¼÷dŽ>CUoq{m™aË ªë”% ;) VÉÌD9qÜ¢`Uð¥³-h#jQ™¤A§ 1´\a° ê)™VO%/+DÝÕ0ò>‰Bž+Qnð~êÌÀ'BrtäTB8yìöJ•*Šé³Óˆ%ƒQSgˆG˜R¨3c8zD{Ë£™4ª õƒx¡Ïvs‹HŠ˜+W¨UFYZß"ó”+uÂxœ~ÁG»©Lè¨õ‰1Z­U<ØáèØ)Œê»â6^”î<{ö;hý»¼ssÀøä,ª¥°¹z sî!¬…Q†wïÓYiÓÊdDIåpãqÐa±¹AÖ\fïè<óçç‡Vؾð&ûΨÕ±Ü)5—M,ÉdBŠxÙÕ©×'8d'„ÁÛÎùÕkþ]žýÌ“Øñ~þðË„õøµ¿ÿ3ÜÚ ø?þíä™g÷ññ_øen¿ûM¶_ú3Äô—³*œ*vˆ+%.\ÿ.Ö…>Ê#?JýHÑÛwùÝÁ*Nȧ秘;<Ëë¯/óõÛ—8}ê0?rf?·ßºÁúÝ6•=û™Óвˆ-à¹ú&“Z…S”ï-ÞåµÛïò3O>ŹxŒÿôö÷X­Íñùc§9e xeõÿçF—}™É{ŽðŽ×cå÷ÞæÐçñë‚WWØÌG±´2ÓÞA?b¤v˜–lâz÷)Ä>F¿Š¿¯€çºÔ“iF¬Œwî¿NÒw©xIi m®“J›4}ÓO »ZçËò§<5VáKýï¼×áíÛW˜?1N£>MƒïÎ&~~1óÓí£væßþûœÏc¾ôä^œÒo¼s%ÿ<{b´ÀÔÁüÆ7^Ƭñ«ýk\XŽyååKüõŸþ üõwù³[ëœzä Ê{·ñí>U£ÁKKÄf§ÎŒ²º¸ÄÖ}™jiŒÔéѼ³ˆ‘•9þÈqRÓàÂk//gÌÿÒû€U;ø(ºB6@Ž^J KH¶Ó‚ÀPˆ‘Е„ Ð:XAFN€„ŒdB¨dR€¬($–ŽšdD^@wñþð‡yá…ØÖ ¹ÓD“Ì)0t»,¯w™ÙKyÚ!®¶);©d. ækÔ×ïõ ZÅC‘;@ï°‹ ioù˜Å!ލáJ’§â; U¸EÞ•-ô<˜ÖÐýs¨–utWGNÛĺ‡œ;€‚œb5ÜÊd •>®¦÷‡HyËRè+.jOÇ6%")DØSH’K8\#ëk£èÄ \Á° FƬ8AÑ1ÙðY= Ãf¿9‰›ôÙŽ¶±”‰R@ÒúT”>r\¡ÛÎQDD­â Û;-†}CfÏÜ$¡žÐº±*LÅ%O4 Óc,¶Z¸»w>ÄÄÈûõ V‚m^øáý½sŸ8DO)°xe@Ð<Ïžé˜cO}‘7nD\xû«<ýÁ!sÕg¸ÛÍ1k¬y4Ô2ÇOžäüö²›»œøÀ'i4š´›×Ù8q)ðèñö=|Õ{÷¸÷ƒEŽœ:õ}|û¥×«e<öÌ'h9.oÞbÌü~l~{êÆ–\¤Úk'¦°qç»ßÅyt­½Pÿì%¼Â§Vçþ¥t>²Pæ{ânÉœm@}ºC¾8Ö3Mdñ­-4Kf:åΊ >óu––îs×[a¡4Á©£{)ôB.,¾Iw&äˆó0«·R:›oòäÂ^òU¾õî5Z¥Íì#|c‘‹[7™Üsˆ=v߸‹°†œ~bkÂå7ÀxR๟ü<Ëí5~øÇ_£±P qvžÁAJ-—Fé2ëyƒ¶6ΗNרxïÞ¾Fi¼Le¬ˆ®!ÏŸ¢4Ucåïñޒ̾çÙoõ¹~÷=®ÖÇy®~ý¶ÂøÝ_cyêÿèìA”°Å?~~À3ãT}ç¿ñæcœúèAþð—¿Ã[â{üÂß}’—¾óûëCNíOai0¥>gá‹U-ã„-×[ì=P$§ÁÕ]ªÒ™ƒÓÈšÊÒXYÈÄh@ G¡Ã¥!v· sÏ},fÖHùÓ¯X|𡳜:Yâ7þݯ1? ÿìÉçXoÎòë¯ý g¦ô07¤&úÊMdÆèÛië&’Q`júc v,zï~“ ½‰jïgºRb©Õ$¹1D;qÃ+rýÍ÷ê>Ó û®@Ï=ŠBæ¾×çÆÖE1ö2~îÖwXZëâ)!3šAh› û)ÅÔ£4=IÚksoiÅM™žªSujÜnSÈ5ú½­¥›Œ?ö(ûgíîun\¿ÍduG)ÓÜéÄ{æÆ‘Çm KX¨lk KK/ÎRT3Þ\ma+:ûö°åE Á õ±”˜úü8Z,1쬠%°@©1j=Äõm¢ä'Oœf·o±¸ö6cã£8ÓÄ­˜^ÖDS4r)g~~œn3æþÍk”'jŒLNº [[-j“9²:C¯ç’ø!½ÈV{@îwØ·ç­aÀöƒEÊK‘éhCty’Ç ÕßæÎòÓ ‡±Kƒõ.»á€Zäk¢DÏ0ÀFHæ÷ñÄ(Ó¥¥F¨aSéCCà6 R}UÔH•ˆ’è‚æ0ØõPÕ2AßÔ¨(%t|IÛ4c§¬#"‘G(±Šºtû)Ö¨N2Ðð5A± °´œ¾!ù&y< dê¨ ‡ÞŽÌÀÛ¡PmàXiÒ!ŽÄ9z¢ ¦$¼¾B6CÎIM¡äDyF–°5 EbGlÅhºG¤)”õÈEä’®0ª–Øéç¤"¡ªû UÇð±ÐsUII%¬ ¢,'ê Ô1ÅDI]é‘›&†¯Óeˆ¿?ðœæ9–Tkˆ<¡¹Ù$iJ8%LÅ$ô#$!È…B–»ŒZ ¢n€›vPe§Tb'±©F;¤…ˆÈŸ$7ú¨z€4tPë Q–“I)~ :.zj3ÌMt%AHŠn’Å‚XÛFjkĺŒTòˆó Ë7ÐÝ”¦„¿Þ5Å.ê˜F•$êÆä($0B$?C©UHô>ÑvŽ–úä*ĹD¡VÕ'Dlz!v&c+‘Œ( Ðú ë}™¦¡o+hN€S›aÀcíæ_²HõØÃ¨IFš¦ä)B.Ô‘5 MääiJ¤Jò7W+‰RÐ…‚liE$ªBœg¨Ã ¡Ç$J†&+$YÆâÿÛƒ5wì $C&K<ˆ * ²DÁñSB±Ð‘Ȥ†Œ$¤r@ª™$1è‘LlÈžD® U…<¡Ó Vÿê§®wKôR88á V‹l¯n#…Å#ÖÈ#Ri‹Å¥ÏUxøÌ¤q…{×nÒ(#:×¥D‰]­Iº8ú$²1 ëË(6„»)©ä£вOÉXRJ––pû1T=¬D å9( ²šç1)ࣦ®m#‡ Ÿ‡2)™”–¢ " uÓ±ˆZ]újJÅ.bê¶{MJé€,«`J1f±BÔ—i Wˆ&'Í‚bÎjs…(V™vÊL–‹¬$)Íî6eKE#k¦ŒÔ}Ô¼J;âÅ*ŲN×]e·²¯:‹Óh°•¬1Œ‡Ì¸{±ö¨xþ56Þ‹aî Î èÞ@·2Ç‘éNƒÕ{M6â"Úx…¬\Eì´Q´ŒÝ¼Å^©ÈìÙòÒ­îŸÿcž>-¡ÎŽA/¡´{žk>Óµê+¼wó6¦|œ³³e66¿ÁJñ òN‘Í»/³ÿ‘L}Š[þÿùÿÞr…ßý?ÿ-‡žá³_úe¶–¯rëÕ/ãœ}–gžåçGÏS ~çÒ"syzìq®ì±Ñý%xù.­“y†þæ ÿñ_bl ñØ{)ž¢³óå›/S«øüÁÓn´¹}'§£úTË÷9Vxˆó-7|‹ÇŽ£\^àÒ+·y0XçsO~Œc-¯m^æ»™Þ8rþÿìýGŒn[šž‰=Ënûûðqü=÷Þs]Þt••eÈb‘,Å&¡&Õ (€€$4MRÒ„SjÒ€9@ƒnJÝ ºÙl¶$v±X.+3+Ýͼþx>â·Û.£A\ņz HšåâGìØÿ^{íõ½Xßû½ï³Æó“?xÁ6/¹ñþûü¨Ý0xÙrcVÆGÈ‚+?æh;aW!û8¤"­$‡Äó#¸‰!}5‡â/pgxÎe÷Ϊ¸i,o?´_>æ;¡ã¯ÿÝ¿ÍøýGüïÿð?æwÿ¿Æ_ߺÁÇ?zÊÏžv\Õ¨‹1¿õk÷Г’ýÔsöÙ¾õÝ’¯ë7ù¯þÿ„“¯¿â¿÷ο‹rÿñϾOözï~·àþÁ78ùÙšò»¿{ƒøÏÿ)ÿ÷%ü{ý¿ÃâËŸòôñ³sã&OŸX¶Éþ›NÎÏxöãäð÷/éÚ ÎV97¿Éx'ð‹ÿ‹G+~ý×ÿ7þ¢æÿÉïqú'ÜýwðÆoÿœöé¿ùÍÿ>¿ó€ÿåÿìÿÄòì5ÿÛÿÍÿ”¡ÏøÿäÇüÕßà7þößâ?øÂéçKþÎo‡eìùgÿé¿ Lø›áŒ¦^>Ù0òœŸÅO¸}gÌw·Þæ{Ÿ¾àüeËöî›Ü.é/ÎùâóOIý˜_ù+÷i_Y¾üø˜õ›m±?Ÿð“GGl%÷¿±Çÿéøø”ƒ’¯}kF–f|ù£dÚRÞC¾Z£}×uË“ù%ÿÎßø ìí)?ù_ý§¬š}¾ûï¿J-¯~ü’õÉš¾\ó`´Åº(¹8þ”nkÈv9£™Ÿ°fD_Ñ<\â‚`dR=„D°ÜÔdµÃ™›¥ ¤A¿ì ¡& 8rs.O˜Œwg3tQ¡ñÙ£/I ÇÁäž<ºbfú `órÍ@÷ì½q_KÎO^â«ÈÖH F[tKIa˜7lã™ìJ6ó3?>âþ»7¹qû_<EÖ¼1¹Íñò’ãjÎ;r¹;aYm8_Ì¡Øæ¦¨^r¼Þ°Y{ìŽwÆû<;¿$¡c¤,…jj–µd` ùVÇf ý*’;pS°ik5 ¿ˆ˜¬¡Ûäd:Cî·äÒзŠåÕ%=Ž$ÑŒŠ1YÔlš :Ÿ’M†XÐu5IwA (¦‹ gA*òRbdÎbX«Sònã¡ÖúDB7À –ŒcFÓEš&a{ÐË›Õ]œ Ç‚­‚(‰=øù%> x+ä’¶Ç%^Ö="FKÂ`¨cŠòŸR§n+ò$àë)H#éÚ°Ö‘$«éä.e+híõ78í™å°Ù€v–Jt3G9>$tqƒÎkb;EUŽÝ{ŠåbÉYØDÃö–¤o%Fwx)a5Äûc í5¦ŽlҀܲè:ÁÌ[Ô4§15Å)¬³–ôö.,[Õ)q½ƒÏ=fZ£/ y>Áw°² Ùªb•Z¬.ÈÏV<Þ¬¦x.xq˜$3¶'ŽÇ¯Ï8:‰ldDK>^µè³Š“)îpÂåÅ1/_0Øæ,ê $Ãdó´¡>¾b0üçXdçî7q¾Æo] “b‡Ì|tÌW`‡U)ÑZZ·Âo"]´¤"'‚¶[Ó2Äàaè­éÈÓé5”<ý³‰ø­ßú­øWþÿ*¡pMƒJs¤½¬ètÉåë_°|ô @DŒD \#@ Qð_×ÇÜfÅ?ü‡ÿðþ•7h ñ¤‘)ñΣ”@)…ó×÷m‘FBŒøÖb@è¯.ñN DÀ(…®ÉjQHDð-ˆ¢ ˆˆBÄH "Iâú D‚ˆp=B„ D/®ÿ_@q! ´F ð¾'RHIŒ=½XeQRñô¾'F…’)"‚D%ˆ”€@ †€D"µFiIß÷¸ÎcŒBkM×;bDJi{}~ß·¡U!P©¦÷ÐÖ ™ŽkA¤Ô]O߯ȌD'%. ú®ï°Ú€Òô¾‡V§`¡ïq-x¡ÉR’šªnð]G1ȱyÎj¾ ïù`„µ é6´µB[Á` PbÕЫŒ(4:V¨ÄÒ`𫆔HXÚ¨ç BG²$EK… ç.¬µdVÒT }ï1Y‚à]@k‰’×KœH /#4&ZçQ*ࣤn;d 󂎎ͲAiK’iê¶§ëzŠÌ¢„`³î°©!M꺢«:ò"Ed†f¡¯ÐC–ØE¤Q LªÉœ¤ŠmðXiH­Â·ŽÚ1 ñ¨¢$ºMÃÚ·Ø4¥´z.Ö-&±LÃ庣÷‘2³(ú6`Zßrzº&O-Z[\ﱿöÓTå5Q:| Îuh#°R£¡‰ ƒCEOa u-YyÒ‰¦LšUÄäcWMG*Ûyƺñ,WŒvrJ™³¨½Û`ur­ÛÓw±yN”’n³Æ9‡°ZJœëðA`´ }ÕDM2¼“„Ø`„& èCkJ\Ó᪙”Ö4›Ež£TÀ¹€ë{b€4³´½£k®çÓ&á ¥ 8Ð…Å·=žŽ ,©6 uÝa”Â$ ]ß ½@(CÛ×(©ÈCã<¡÷`®×-4‘@×uh¥‰ ‚w($!J„$RÓu礔h•!8ß¿² “@‚Є#p.BDiy½Bõ=¨HŠàO* .âC@¨ëñ+‰Q^端©%^\Ͻ×ïŠT×9ÑubD) J} D)À…ˆˆ!4¨ë\¢'8®©<Ö ‚Àp1"})Ð}ýçXD¥åun—ò«¹ÿæ±E@J$ñú™ÄðÕ³Hqý¼b_½ 0½õ³¯½9¶÷¥4MÇïÿ¯ÿçh€†lÕáG–.8l.Ié}Çòñ§üÿGÿCþuÄÿ­ßÿõB þõ›ùU´mËßû{ïßú[Y–äyþo÷_¿Æ/ã—ñËøeü2~¿Œ_ÆÞø¯Ç¿ÆRÊÿ±Èÿ»ïûýήˊ}ßã½Ç{ÏôŸü_Ùzû}RØ‹¬kJéàz;\¨sGî º¦¢Bcˆè22¾yŸôþÑÿW“ð÷ÿþßçÿãüo ö¿éF~¿Œ_Æ/ã—ñËøeü2þÿÿÀ";ï|‡ÄÃ*8Œt¸Y&ú߬¼èé„¡ê†.ÅYG”ºM™ÝýÁøP1 uݢŠåRœôtlq¥s‘EAU\\¬Yþà÷ÿüFÂá7HsÇÖí-šUI½ª1ù‚Éè ŒÊqjM½îÐ1¦êkœ;E†œ$Ÿ1¶’«Mź]a††‰ªvL'7è^0²šúß)BrÝÅ UÒ dPt´öº¼•xC´z„¯¶ì{: %GM GŠåõή+!•ÐôthŒXÑË(Œˆª¥òKÒX„@–TVËš•«ØÌØÞs¹©X_œÑÁ°ÈIÍØ5.Vô$DCZJä&P­{Dá(Ë1‰0lêSVk˜L§1§ë±¸_]²^=a°÷€½énþ‚³ùNÎwÙº1åÃÃŒ§Ÿ]ñt~Eº#IÏv< ½5ãÓ~J¾¼à­oþ*Ò¦}´À-ñáÖM¸uHûè”cßó‹rÉ·×C¼sƒg݆ËOȤcûîæ&5—Ì»¼Sïà¦Û|áO˜\ž²?³iR~Ü÷„Zñ`½ Ùs|Rdg0Ê—¥b¹œ“I“4§O$G§ F©f6Hxq¶ ”fw¦\5Ï9R‘e#voŒáıQ=;³-ní &ÙK~þ\Ò÷{¤wÉñ1Éf sÆúÑè’Þ|ûM–g/øüâ4²ÜúÖ»¼I§ò%?­^QN þê·îÑüßþå)÷÷ù[ÞáG/øÞ‹Gì¥Û<yÎüå1þÚ=V툇?ÿ„#Áôæ Næk^_n8˜å¨UMÝyìðÃIàÕ³‡4'í÷¸yKrüIàóWû[Šqy‰ÏjÆéw¹¿sÀüû<»Xñ¿ø÷‹n‘ñüÿ)³}Ëßý»‡9ððÁÝ·¶é#þÙ¿úgL„åwÿÚß Ú(~úñ#}GvÐql&l-%¾zÍUš0eJjáñ£‡,×°óµ»Ü(Ëgž;MÔ[i…Š[¸U൬x†QÑ^-©ÍÞx›öò„¾äÖ[Øc³?þ9«ì¾wƒV¬a¾‹l^ÝÚb2›°>½äj³âÖÍ7Øk¿~Íóç -ÙycD™Xœ²Zv4ÚñÆÁ;ÌYóôGD:ÜçÞÍ÷™/ãu ÎÚŽ}QXÍ…^_«ƒÏW—äÅ!Y–Ð^vèÂáŒEŸ5-Y’‘U书Zh|7Ø CàÉjC©+ [°ê 6lð1%šd«UM¿¨H³„tº‡¯¯¨7õuùDô¬.¤Ã[ÛSÚEÇë«òÂP¦)íÚQ50("äF²Y@ã{ò$B‚ôžª€¼ƒÐ@ÐÐÅk‡]{V]é%2¬F¸¿VÔ¦'ÓŠ4)pâf½¢Ž×å¥$ØAeiH0Z²Z·¤Ú¡möU¹LâÛ§ Ç¤¤Ë°Ò³ª*‰Œµ%HÉe_w‚.ztfÐ <l6¸Äaåˆ(¡s$݆`‡ÔÖ"7 ‰sø±ÇÇ‚¤´ÖaÚ€ÉSh¡v ²+Z9Bw×u¨2A0Þ°Ô2ùˆØ@)} 6« •ԅƬ5Zz¼Èº6# ŽÞ­ˆéE mÁH…+ŒÉÁt‹^£idÐx}‰1äÚ€ …†Ò’ö‚M ¬7è&G¯µ¨dgpF`û²‚ [ü ¼öd8ê.Á)# ‹ª¢oZú(É%I ~éè”@ÛHØ80`³‚¦÷¨¦&HAÛvd‰Åæ†f¯ùh©«¨žù\¥É GT=BÂU•±ceQrÒV\Ο#ú)÷on­àr½áÓò¿ûs,òÖoÿ]6ýšnÕà:ím³5ž 6çÖá«#R áÚÈ‹:E×oè;M, Ӭõ)« ð¡%A#mG§_é`=ø.ƒ(Y9Mc¥ié…aã=ÖY ¥O@D…¯<†]ßÖø ˆ]Ǧêp*°gS*ß°šWtÊÒ¿zć~ÈG}D±u'u-~ňBã\Òs²tFTó×DUQŒ5:â®YÒ¥Š@'jDëq«Ž¦“•5²MÕÐÁPÔ¡c­6Q#B ï =>¶Ô\ó¦l/èGô }”Ä(ðÝ4A€ókT°`:ÒÎfŽjÙÑ6›y\ÛS£(âœVhD§QIOë<­«ô òi«9].élËL&Ø,a±ð„ºbÝöF!2M+äyà¢õ´ÂsftuàtyÎ<§É‡Û3ægûËSÔÞˆe²Ë¨Û°Ðsòµ¤]&,gLá>…#añ¾Atž{7OÏ<ÿê'Ž_Û™ðöᄌϟ}Êè‹Åþ6ö`BòÚóÜcÅ$#š†ù¹ uñh‰ P½–d“5ë.2_6dµcÞyž˜Àífºæ'믞.xïà.ÍþüôSÒnÅ÷îs²™S=[0I úB²œŸ°©56Wؾ¥^ö¤N”,½ÀU+Úá6÷F)oï7<ì%Ÿ|ìH“†·w§xåyòã+†²A$/ Ãý;,OV<þÉOÙºuÀÞÎ-ž>zN-Jñä20($o f\µ=¿X¾ o;lw&üÞŸþ—ü_~ðS¾ûßbÖtüèì%üàìé:Jvwx½¸äêé'Ã=’áMNŽ^ì†qámÂr~EâzìŽÀ--ǯz$ ì áõósfÛ9wÜ‹+ªûä#^,O¹{s‡°Å«ù‚u¿$[º¾¡ušŠÂ&LRËÃW'œ>]qps€ð-'OŒ§c&[%ñ%í%Ü}ïMÖËcžÿì3²#vGŸ±VŠ[oßB›ÀÑÓ—$˜vÍ—çstYòÆþ6ÍêŠW/æ˜н}ê×s°ÎÖ„ç—dƒ1QK®Ž_!Ó }l(ó‚Š ‹®fJNßT,û ±Î‰¡a”f¤»–£çsØÔØ¡¦]·”"£NZÚ¾%M бcYWD•²•yšç¼kÐINRd€M· xÒÒ)‡–‚°ªYÆ2PK–KOjs9?;'O’KLÍiwžÐuÝbµgµJ"àÃ"ŠH”–œ’¨$6‚ß{ŒI x_Ñ*AlEð5¢Ó«°¾£ßÔlTK[ ›Zú¶Ã7ƒ  Þ[ò"âúç#½NIBEÅ5ÇRû D‹ô‚>hº~…m{š4¡w=¢õ„6Ыˆ›ž^(¼¯‰uDu_FÜ:"¨iuJh¢]xÓꈎ¶×ˆ¾%” ¿rtx4==Ž4®©pÞ`tO÷gH8ð¡Ey‰3šXu´šÞ#DKl5>íiW BHô‘¦‰ÕSw5QJ„’:º¶F¥5¡+1±§mÁ9G’Uˆ˜±^´tÃ$5:ä¸:â“¥4UÕ#Ç•Õx|oУ€oqÕ]ƒÍhèƒÃ×Bd¬ý%u§±Q¡›žuÒ „Æ;A¨{„ðxè£m+º@góõúš£[”е,6sj¡ImFa,›ùë¦ECÈ-6ô¬Û5 cëªejZz3dÓ®¡n饢5R'L†špÜðúÉOÿ 9¸MGL-­€Ð ЦšŠÐr Q;º§éÑJ¤ëh»@#k2/‘:{ é7¥1“’¤ <þñWJî·¾ö«,ºžq¦h“r¬StNRqE‘HTÒÔ°Á÷‘ ¯9Z®iñM2 %‘^wÌÛŽ®5LŒbõêáŸßTvç.ýº§Ût8uÅhkŒ‹S\…Û\“•UôÞÓÌÏðR£ãŸ:Bµ¢k[Z+¿ÒëhÁ­@¬:$}ví*¿Y÷hQÊÓTîš”(]둪§’K•Ç›ˆpF€hZ\Ðdìp¾#‹ bðh§ñIK»jòZž¢ê"Áw䪡w2Bª6›Kº®ÇêŸDDÓÒêŽÚí†[3ººf³¼dY׌ʒLæѲ¼Ü°1ŽÔkrYnZD³Æê&Ãûךþ3(‰!m5gÞ÷H‘ã«sÊÁ•¯^±¨8º²Œ¶§ì¥%óó—¼^vôV³U}I×(jÓ4ì¥o0Ïx|ù%'/Î8H ‡öxxºdyb¸ûÆ®þ9}éÝ}NŽ?¦("{7¾ÉùÕ3ŽO2í£÷îÒ½¾b³xN6+)ãÅâ„õB²5N8~yD}+rófÂï¾Y0.fü'dí1oO¶8^êæ›YŽNÏÉlÅ´x-jN7?ãOž[>¸q‡[³šõùs†ã„r/_œ°Z.£„±ì¥Ïølñ„²oIËÁ¨.ò‹Í)³Æsk<æYaþ’žÅ äepˆu˰¯ÝŠQ.pé-V«9ç§G¨\#éé¤Eæ¼:}\n˜ÞÚ§é—<~tÄÁì&Ó7 ¾üù 6¯×Ü;Øb8ÉàùsTÚa¶›KN6W<«¦ŒG‰Z`®*Η‘³I‹ ŠteiÛ–3±Â0l:&[%c~òƒ± +öîÜ%$hÝpò£sš5¼swÊ÷x´9¥ì¦|ÿ÷Ræ<¸½ËÑé‚ú|ƒ÷ÒC‚—g ÁLG\YÕí„ö茫‹5ƒí=†[óãSŽ^¬©m`\ÌIô„Pì"ú)óÕ9Ÿ_œóÁ›ïòö–æŸýçÌ ×üÎ_ü}¦yöÅ`Ü„ÁlÆ“fÎÓqïÖ”äàmŽžž³>}ÌäŽÀˆCVÆ/Ÿ³Z5$³{˜ºåñ‹/Y¯îìßA†Ó“× 2<‚ ¨}I‹8§Útlû”ÕzÍéæ˜A6$VõEÇp›Â*N>§QšÁÝ’®½¢zZs¾lH¶sîÜÛg~Zqüì57÷vÐaÃO_Q§9{1Ú?Lqõ†ùË úfÃÞƒ7.ðìç?E+ÉÎî]ª¸`Q]‚"ø”©Š4¾"x²‘ÅbA»Y#(ȲŒ$ª¸ÄÉ–\§Ì/*Bílhܾu˜®¤ñ-!DvLk5‹«§Ä>'I3ª¦‚àÁœpXëKGè;†3ƒ[vlZG"$½´›5 -S–í ¿¬èû†áp„ŠË«5FF²´gÙyt+¡ÇÛ€é ëà‘] ï+”̨êž;H ¦•lÖ G5Ψ{œ øÆáó€” UGV]‹£An42Uhݳi*TŸõ†Í: TÓP7)%ÞÕľ¢A‡ñ5½å½ôÝŠA¦p°ºX £@&)®×TD ŠÐÖ´µCÛHL$q½¡“k™@4a…n%Og%²–ld…p5¨’¸‚¨+B Zàè¢YÓ …ñàSÞGè[¼÷„,*… W8í‘$t+Mj*‘÷„‘DšM i 4_;ºØ’$ ×ETr]ñ BâIÚH-|0à#ÎG< :ñè6£sk¤–41P-*¬h•°éœë¾#zEç{¤44Ž`#®OPÑ!•GÄ–U-ð±&O1Hš®Áµ%h‡‘¾ö¬¨QMDIßÕ4}Â`¨MCU ¹A)ƒt5µˆÈE‹ËsrèCËÅÒ3s .Ihã%‹å…Èå)]}ÁéëŽP:.~üçXÄŽvèzO^hŒMhœcsu‰L#FITG㸊¨Äµßr/ðUG ’iÊSU†®í0vƒÕ9¶´W=Vhÿô+€õÆ·× :³¢9W„^ ðiKGhk Mh"2ÕÈV±’V™¦‰œT=R¦…!‘‘ù‹‡ü¥¿ô—øþ÷¿œ ²”\×ô®$d³abxm…Ьéûžá4Ç ¶á²ÅÚv<ÅØŒj½ÂôàmBbÆx›ö+1-E‰PšV·/Ç & ôF |J¢!1B‹™)œò$Q—kH¤ Ñ>…Ø+ЂD¦$ mˆ´B1JS<šÐzl"p*Åêkr¿@& lnꜹk蚆½½eqƒª¾Â5™¬5P )A†N8j,¦Ò¬š?”lM¶Q^Ò´‚ëSÒ̰N¹¢ª ÖckÿMF V«Ç1@Ûm”­ÑZbl^Èmk ÝåÍûSÖgÏyõÅŠ{¿òmÆã!G?ùoƒ[cv·w™o¼nÉö3:yÎîh‚YÝäxuÉl[bî°:»Ä]½bïÖ!³œ\|N×ÂÁíÛLf9Ëççøq7† õ€°œ^¾äW¾û#u›åóSn-{ûŒâp+á™s¬^>§˜Ý#îì2[>ÃËŒ—ý.Ï7+ŒüΛCÚ þÏß?âM6üÆ{÷y´UP?{Æx©ñ‡¼±5`þdqŠ•†7Æ4C~”²; ÜCV>Ðë–>³ˆfÈVí¹*ÖÌ›!÷òÛìÞèùñ³cÜ«Ž÷Fø4ãôì’AFQæÔÑ!HÐUGn=³{œ÷)¡—›S:Ñ1¸ñÓq‰¶\„ÈùÙšÝ<ç½;»t™áåG“.pë½!Ë:Ûf˜±<~D·;æÁý·_¾à(öìí¿A¼|IÜhò­]\\³B0N¶ùÖÍ›¨7~ðÅòù—Þ}óWyç çá¿à²ìß}ãjŠÂSg)WŸ/ÈrËÎáûtõŠ£õçÜm3ÞyƒÇ'HWskoŸ0ÌYŸzß#¶Z¸°øXòλL!Ùœ¬1YÎÛ»ôͿ옪5íL³³{ƒ\dìÝœrüäûWŒ'Ük‡Óõ™ ì &œ·TUÏhû«Å9Uµ`ïÖ}’2ãÉÉKÎNOÙëÞØ>àòä’• ˆ^ÐÇpfªœÕU ›È®åÙã%ÙÍ!‡÷'=:çb±áëïÞçJô<ûò Þ»O~³äáŸýmƼó­÷¹øô ›³öõ}Ò|H÷úEJª sái•b¦,ZYclÔ5ðYu¬;M>ɩ痘:A G\ù3¦é>ãbIJZ“YC …•ˆ$Å5]l‰.£´–¢ÈÑeI*8íɆ†8J±\ðdyŠ–%kë0c6QkƒŽ„”ój‰L%‡Å×%Ô±& R¤èLã­'«%1ÕôÆxAè*„™Qn¥è®Ã­70S…ï‚-0&%s5~hÉœª·å1Zã‹„Ì\+Ñy‹ i’`¥Ák¶©røÐãE‘fH!èô†É”AYº ÞIsô(!“M<ˆ›*BÔ(%®êcD×$¶Df*‹Œ£LJ:‘à•§†¶î°iÄ$%©†Ngá 3 =I‰ýõ®–M ¼ÈPÊcdB,<ºWH¡h2Aî,&á0Bad¥Gu¡ª½î"Ž*’e×àÌhK®PòìºÃQªa[T°ˆl@Ë™hP4Z‚ò)®K«!#5eäµË‰Rc ]‡°RK’*!0‰A+‰Ö9¢a:¤MÐf€ ¬@Dés¤I…C7MŠ1)Jz"F2kñª¦íEžDEUb…T꺻u”“áé7->ͧ#¢qTnà ä$ã:ô\®[Ò)äÙ„ÄønÉ겦ÈXnè­!³š´Ì uÅÀK´$FÇj¹Á&†ÔL‹YªX¬;Ϋ+lž±xôñŸc3½ERäx™02 c KßÍölˆÊR ÐA’h ŠÊDp$E Ñ‰s­#ZZØÊñ•Âô=>U<ûñWV9‡÷¿C9ÑlGÒº¤§Ž=B8ò~Jå7´]Gi"rÚº%˜žÂÌé;N|G! yV  Á¦î¨^^kOüáþ!ÅlŸè;ôd ayŠ7%û‡»ô!2ßÔ$8TR0MwPcÏb¡!Í,‰Ðt=ZHòI‚m:ZñÊPÄ—8™$¤œ­sl0DÓÓK®$Ié‡)sòN°I ZYb£>öH1BçÙIR!ð™º^„º@YT1’ (FÑDWRd¨}/‘&e¶5AzØ´=®7dÖSJŠbDµêX¬ä܃=„o¨W‘* c±IAݹëòâÀ˜à%$‰BA9˜Ú@Wˆ\’Ë #mè’gÖ_R{C²}‹»Ù˜óóg\Æ5ÃÑMÆÑ€n Å”ÍÙK„½b÷æt›Œ³«—œº w¤å½ûïðª5¼xzÁÍ·†(NX×—ˆîÛ„áš\Ÿaw¿‰®Zž<ÿSö÷ßæí¯qUŸ°9_ ·7î|y9çøâ%AŒLF,å†í{š¯ë·ùn“ñ"œó‹Øò[oì2R%¿×8šùœ Ïb°ÍÀ&}ÃEîxy&™ Þà»oΛç|òZó`wŸB.ùøqÍ{nó`绎óêŒwDÂd<Á%×&¼*Öd¹âA;¤Ø¶xm8¾ $Ú3X^Ö#²ºb2è8–R$Lgcæ¢ä‹£W^°µ·Ã¢ƒ‡9:®¥[7îqæjVG§Ìvn³óÎ]ꋟ~ü ÷Þ¼ÅÝýû<_žc¤`ëîEÒ3˜7œ £éMîåtƒ–ϯ2’&ðõwvh|ÆãN ,o–}%)÷÷Ȥá£~Ž=ÈùÍ_ùMUñÑë/é炇·Ù›ZºáÕóc\"yõÙ;ôü·ÿæ×ùù£ŸüÞOxë­·I÷¨×ϸºØP˜Cöo ªõ ½R¨…Q)¬mY²sk¯:® r;a*Ê$`JŠÃŒ[ÚТ(÷RîNÝÃK>^.ÙùöûìM$Ož~ÁöÞ!wò->¶dµú˜4½ÅdoˆŠ‚æò’YÙ‘Nﱨ$ÍåcÆyN68`JŽÎ^³\ö<8<`8³¼^^1J' ªõE>ÌÈrK²pyr„”CTf9~qÆ¶ÊØ»½Ã¦ê¸\EöÈDà£ógLw¶ØÚÙáôñk玃o3»¹ÍãÏ^Ó…ŽÛ7wq¡ãËÕ -3ÞºqÑ×\Tkf³œÕ²§Ý(î~íRÃÓ?ù#ŒðÆ×>dU/¨W ¬£Fã us‚· ÔŒ¡,›’,¥†²ÈÙ˜Š¬Ñ)8¿œsïð9MX]® %ßN°¡£lÑf%ç´MŠ)ÉúΡÉ))BêMÄØˆ[F.«aK¶Ç)uˆ†éÖ€uÛ²i:ÆEAfD’p܃ªÆC‰Ÿ–èJ!‚F¦ t‚w -:¬´ôaƒ†4hQ Ô•d4g‰Ñ…E¦4KÉ\dቲS"´"Õ’€F…Ñ &HÒ!‰3$RR«-r‘&‚è#*æ˜Ìá{¶%2“xߣ½› 3‹ê¼*IÆ%i¿aÞZ’©Áf)4Úˆ§¤*Cö:³¦è.Ã¥Ð×\KÒdèàéR…̦Èl€l{úüšÛ•d \„ÄPDƒ5Й™¸.“’Œ^ϯ÷¨Ò¡]ŽÀ" H=x©I2…ц(%^)¬ä¶ ô=^XÓ‘*oI…"‰J®½†s‹¬$ªðíPI†hFŠiI¾ë‘¹f@BL¤†”'A9¢ÍÉ„FKM2̨|‡¬y®Iz-ßàiY¢m‚ÅÑöž˜KiŽ‚>D‚s¨aŽ©Æ ±)ˆ¤tºÃEI™O° 8uÝQfCŠIIÛÔ¬ª5B 3¢§Z.7Œ7 wGø ˜?üèϱÈàö;DIƒ s Ú:ÊéAKBµÆZƒ.r´¹ö¢ ®!¥Ç§#s-²VØ¢¿ö2Ì'DQ. ³%Oÿu‰pëÁûø¨Ù6µßˆÔâ{AÀ‘æ']c(C›:’ç“4é9‹ÛJ&“™Kª¹  ËŸòï|‡ï}ï{wîƒÁš‘vXcÐ~À:“ ¬ÀÊÐ9Bæ(§#dó‹+b€¼Ø%/ÆD]ASSMT#¥±TôQ!µ¤0 ÊZúØ¢P¤YBÐïÚgØ©¡Û|6Áú¡ƒ,!H Œ.…EDK4jhÀ œJ¢ÅÈHÊ>±p¬C MK9bÄ]ÐlÜšbèØ;|“Ú9®ÎOyJ1`BÐ‚ÂæÌ}E”‘¡b•£ VÌxÈÐå´Û²0¡´Cλ Bä.c]wLnm³=< yõ)ó¾Ç”°ªaÒµte‚ )mÛÑ…%º¸Éöp1ÿˆÇë†rç›Ü¿=eùð¯¿|ÉÍ÷oðö‡÷¸|²áì¸eë‰O.É{KÚ¼Ëóê ¢v¼ÿà/ÀùO_ý7öß"›ìâûŠªu˜Á6ÓÃ-.Ξ³^ŒØ9œ¡ò–°ªx¶*Ù»{ƒ¿ùõ=>»:âÆä‚÷n—ŸèÛg—ô‹žOê%·önð­íÛœ/OíK¶ò{¸½Åù¢æ³O^“ìh˜"MÁoݹEÒõ||¼áXîÏî²·?eSÁ鋞[wï’ÏRž¾n9,5e™qZWLö˜Ù=~ò‹Glê¾ñÁ”åŒóÓ ‚ H•"$$AÐÔ 6 'nÞsyºdïí2ùüáK·ïróÖMN^¿À†Žûw8yyÊéó#Þÿúh¯8úäçŒï¿Éö]Ö¯N ç›xâ0£—,Iðôã*mÙœÔ(;£ØTB·>!‘9—² »73ŠPp¹jŽr”afÔ¦£žjÕ1Ô* $6EŽ´º% ’( %eX¸š"ßF%†¶9#‹9‡;„\зsš‹Œ˜E b¦d!a‘¶$NRªr¢qHçémI‘O,Y­Ö 3L‘‡jZ¢²ÈqÎÀEæÚ`£_cD`˜mã’kË0–#ZÑ2ßD´Æ2£i.¸l"VØÚNYwàêH¡"q(Y|ù ßüæ7ùáÈäÍ÷‘:Å·'hRÆ[7IÍürAªKö··èZ ªAá,âG9ãé˜Ðfì̉Á0_utÞ0)R¬RtÚa‚ ÚJx¢Ä4CÅŽ^ tÌ)¤D #ä*§2 Ùo(‡ÛH<A Ál—"’–<+i­Ç.“kr{>À´‚R6§Ä~Œô뉾ŲEZH’ÄÓ¶žvݳµ5`4ÞFºŽ¾†ófÁ¨”ÜÞ¹ ʰ¹ZÒ¤ƒ Z$tmäZ`1“#º:»f44ˆN€I)§)Y›1ßÌ!*v¶n ^åû„EÇF9v‹7h×§\næ¤[w£Yù=HIº†«•âð`ÂŽxñì>[³{ø&Ûã!óÆðz]1±=;ƒHWmèõmÈ Œ¼ “)±7¨xFi·ßGŠ–§'0r›7Þ¾A·n™Ÿ<§Ë‡lï¼ÁdKÐùšs4w¾5ãC·ä,‚¾ó&wMJ{lùÏê—¼/øÆïðDvÈþ1I6ãÂO髞;w3’®âûÇoxkzÁùúˆK?㯽y›Etüã/Oø÷¶ùÎÁmþiµàbqÂ{ňlk[õ€±îùÄ/°mä@Ï9;vÅšãmÍÒN8œÏè×?Z\¡\ä½·J.Ch·Ê‚×ë–¦Õ¼ugļjyyrÁ­{wxãŽ8ùü3&³-îø¡‰ËW¼8þˆ7ïÜ&+öi—BqÆz0.v±ã1‹å+ÜeË`ö6zØóúåëMÅÞÁåÔ@P,c‚’ÜÖz¦ƒ-.b5­—4ËÓ|Ëñâ˜Ýý=TQðè³×¤*çæ»¼®¯¸zyÌ;o¿Cïàó?ú>;ßx—·íWøÅŸ|n#øõ¿øë¬._ðôák†;·¸¿³Å¦[R{Ë H(¥e³nÙÙš`·G|þã_0j ¿ñ5–õ ëË#—QÞ¸ÁHNXø36«Ž»Ã=ìxÌòìUì2gds̨À§Ó§¸MdYmŽ5ÓÙ]ºfÃÅå1ÃÑ6³é"8df!‚›bi±I Œš¦5ÈAB–²#‘š¤ÌRÖ k#fœë†Ö ˜”)fYÏ7hk™ Jzé³]Gtê®oÍê%6/ÈÓ1u¨QFR6.W´¢!wŠd» ƒk¡Ó葹BÙ)‰s8+Q ÉLI–&¬]Mp‘<‘ ¡•ô( IÔô& Z¼Pø t–ÓEƒL`"aûª¤9ÿO×5ÉîM~ý;7X >úÉ)[7zßw\tн‹/*b~ÅNù6e{ÌDÞæÝï²X\ðý'5¿õþïfüñÃÀT×Üss›!®®(ç=£;9»Û3ºJp´è)w,me9L ë+^^)nNo³µWòÓ£W\œœóÆÖ„\ì¡ÒKüJqww#Ãr›/Î)´bï­Cz—ãO¯p4ÄýŒ³E’ÎÍÕvÚK&·vÉLJôù†êá wfšÛ|›ŸÞqá+Þl£7ŽúŽÀ¾áƯÜb”Îøä‡£ªŠ¯ýêFƒ'ÕŠz}Áì[or~|ΫðŒ·ü*w/;~||Á…lßÀ'4Ï1™ìs[ª¥æÎþŒN/yõø5ÅÞˆ;¿~ƒ“/k.>zÎï²wç6¯žqÞ3”Ì’1K•ãEýtƒS9éí<zô‰äÉYŠ¿«)TÂVòöñ’ur›M²whðg}ªäýÞ#T’«õ+ªMÆÁx„ ®â[­àâꔳö%ïí=FÉ_¼~…Ò)7Ë[ԡŨš´W¬½`«Ø!5’õ*rq¾&ÛƒÙÍ«ž‹KÇý‚ö\UKFƒ=†.gh«ØÉÆœ©šnÞqgo—bºÃÑË׈õÅÛïÑçÿtN¢$¼=¥ï–ø— *äÜøµ;,6KN¿xÂÁþ›&㢿äþ½’†¬_]Q É!(tçØ\ ”l°“µ8¡H§²l„¶ ´µgk”ÐkC[z†zB¬Î½dûæmäö€‹“úuB2A~I¢Kº6Åâš3" ¥¦ ²R¨aJ’¦¸º£©Ïƒ-¶¦CÚf‰[ôŒ'Cð=2I¹h#… LEÀŒ·1¥ `\‡zSl¢„Bz’×$›gèzEe=ÖfähœÎéiÁwleÛ$6çª]âƒfX (Kè;C+#tE9¸¦pà^!†9yTëŒÌJ¢u$¹ÁÅ %<‰î©…%O¶( ¨A=:Ë*-"IHBF(‘–$&Ø$«Ð²§v–"uhR´¶äIÀa‘J’FÅ:Õ+K/,ÊJd0He0úĘt‡Œc„M0"ж )%¢´ˆ¨P:b¼¤7Ÿ(¬`Óž>¨ë’^¡ˆIÂÀ¦hmè;IHŠ+ ]!±rHo<Ò[Òò$¥ V¦¤F¢½&êžÌ èˆé@@¡¤ù IKcªŽ0 CG™ ÉC  1©ÇC®KRÙ°J¶WȬ€®!$v ót ƒ,£ð=WmÍPïæT«@]¯P &7fšåzAô ³é‡d}¶DŽ ¶&3Òp]­ÝĆñlLç-›£srk0³’½ÑÑ8›KVF3»9aìs.ûêÚRO–¼øø{ŽEÔî=d.)Ë!& F…¢1UgLv†ÝsY)úņrk@1™ ¬§?s´®bXމIßjlÓQˆ”j,0 ‡J5 xò£¯Öî­P¹AkM¿ˆÄ `ì™v 4ÖÐ,úP1™îQZÏE{ɺIÈÍ(-¨íšÍ•cÖ[ü ge j©X¼ø„{wïðÙ—û7Qí’2¹Áü|…ưusï=M¿D”ŠŸpÙ´ÈÉ&à¯$i®hEÉjuFïRfI‚5«vI©-QÆâ½‡(HLOMOësr%Ð>R«–¤3@DÄé!µjØ8¤±H q-ÃßuÔH²¸!š„V ÒeHZ}mêš}+&%K%Ú9|»a±”䃔ñ­äaÉÕ‹9RQŠ5Ûå!$®'tî’½é”Ë|Ó Ù0¨zï:\× ¦%yTt]F-5Û…gs¼âǃ·n“u‚gëç¤6‡Å”e;YQÌÞ$=œ1=¿äë;w‰å”³Ÿ^quú‚‡ƒKþòø r1ãŸW¯8àœÛÝ[œCS3P'.áH öúŠUwŽóŠÛƒ»è­_\=B,5ù­=.üÿÑ'¾¾kxwgÇM-1Ûe·âUÃ÷6'ßq0SQ“¬줖KÍG«KæfÍ[;ÛTUËÕiͤØc£+æ«57¶Ø„ Gsò=ß8du|ÎçŸ>b<òöÛïq!"Ç/_‚OI]ÂÁ´çðGÕ>Oÿ³Ïø«¿yE¹ó.?zåxo‹Õ)ÿå}Éè[·ù`œó³O2·÷öÙ,ŸÑ}ù”­ƒo“Ýòéç?¤Y¼ûæ¯1ÀñóŸñrá Þ¡ìÖlïFÕŽùŸ7ìMz~ã­-–Nò‹‡O˜¿\ò·Þ'9˜ñùÿ”‹‹ön}“ýÒRµ§\uK²<èY΢踵×^=þœý7w(woÁtŸÙªçì“?a½×cóØ« vÕ%û#.ã üéšÂ½d3Ù§Ö3ÔÕ.¯ž"§»$ñy]<âùe‡šÞàÖœ‡¯1uÅpwŸ|’ê% VÕŠu·`R€²C®œÆõcÓP™H¿Qh‘PùK–gsöË»HGóÞÙ=$I¾üäR­˜ÝØâé£:çùð»¿Í髟óÅG?çWý·)äçÿâ)nìñÁ‡pyòš§'—”%ÂGËžrF!2Ž›ÄÙ2Ίpöj9âpg²”£ó9º{ÍÞ­Ør›£§O¸˜/è’òÎZº‰, §¾˜SÎJfÛSNW ª£Zvï’ÄȲ]amBßz·Ä”C\Í{1ËPÂábë}¯@)ÌØ²¬zâÒ‘‚ñø¥¡kÒ‘¦H4ç«}` <-=½ÍhEð-2²¬æôí‚™àóŒ¦Y!bÄf–ž W¬¨‰#‹Údt¾'¦‚ "jS3PcâH²Z¯é›²‚²T¤]B×mXw¶,I:G´‡ Á’y‡N¡×‘®#‰5x-pG"dH@¯ic„Nb³žNçÄØR6–XDÚ$A¬+üЊbg€ê—¯Ø,EØ”D{š¨‰Qae@y¨U ¨@ÑœªÁR' RK*Y­èÑfD”5Z®iÚ!rL¦ Ó¨¯æ5G”§¦Š„mzm;”ušÖ{6¾ÅJ…U e7¨¨ñ:'E[¡;Mš+}ßÛ‚(B€G’H¤!È“º®%¬;Œ±äC 6£:=ƒ IЈDµÆ‹‚¬¯˜«HbW2’*ñ´®cÜémK¨#}¢Ñ.‚«±ƒ«$«‹^Jy‰žf4çô²G&c2BÐ41 èQ1àHA÷à#6«Ð‰` RNÏ*¢\! ‹Aë}ˆ\.×$&R–J—tµg¾YÛŠbgÈñ/~ÂÝ;·ù싇„ít(؛䤅f±jÑ6!-KªM}-Ñ%w(0FãœEV5> † ºŽè®¶È"o:Z©h›Àã|°?ü&I¨\‚Kc·ACUfˆ¶'„À& èÔ2 –ÐWœv’Ð÷l¥耫,Â×l’@n2¤Røê!à§?øÙÎM„‘fBÚÒÔv0À`®…4Š"ó\×TÎ1I¤eFßža„&¥¡"tŽ$zº\Ói,†€U‚Öj¬è©ZAçÙaR…ì#¢UÖb„R”¨èL…QC|{ &3%ˆiÀwe,ÒœÈé¯VX#ÑC.£ˆžÊ4tNŠ” $\Óv¿väyO1ÙFp›G]K"Óñ[`›³ZwÜÞÉ膂guÇn,0u`!׌gŠ-Ú“K.Žd£-ÌnC8é©W–l¦htË ²ˆ4¥n;IJkÉGtçÏOQEÆhg kV‹5i&ÈÇûÔ«š6tØÒÐ7kTlIó1d´±#7ns…74 ² È´#è’QèèP:Ö´Ÿ’XI4õÑÖå ™Ö«+Ú&RŒS&ظ 5Y¢Ñ>°×Þ±ÖZJ種錆!Ñ—4]KæÈr›Ø TÒ³j<­ Ì …¿ê!58£Qb¿¦ÙXL¢HvrBÕÒÔ”NÞ¡…Á¤ ðt| ­ k h¥CÇœ驺OÇ0 VÑaeŠQ D¤®"A™*ªN#òŠÐ(dðø4’zMP9²ë¨B¤H±3¤ª@P³ Å5ð \@ ]}§ÐlŠŽÆAÛ¤äE@jh[ÅHÔ¬µ¥o‰í Ä>A Cz»Aô)‘°ŠKzuB1XmX¹€õ5Ž{„4Ôz‰uC¤PtbH¼ÅëïJQª¦ N¦Ù”¶™³ìjœS 'ò>Åõô'1% ,VKŠÔ°“oÑwŽó‹s¤0ŒÊ]\ðTÕ%®…rw@™OX.–¬—«ë÷w6cjR–Ž‹pé=ã|obÓðÃïýÃ[oS޶ˆ¾a3‘¤×ôƒ –’õR2š*FÓ®ækºÅ ©:’íy.qóŽÎÕ]B_Dº>b¤%f¢•¨Nóø§ÿò+’û»6¤‚k²“ÄÖ›ô®aÓ¤d ‡Ì7Ç´• ,RŠÔ°jæt¥P“H:}£)kM²SF;è› w'L’ë¶gík2•0+Ç  º[2ÐÝ˦%Ö»J+iWš.“TnZDF£1i&8Y\zI®¨L±18J¡Ùô’ÆráH¬À7Š>xú,Eö’#™l$^Cf˜P×=½T$!"<¨ÄM‚é$¡©±éÌ&lºsú^‘Ø5ô˜®£:K¨Œc°›’&˜¦fqqÁq+™Îàæp—.lÚ%¢_bÊ¥5—U†ÚâÕóæ%²Y"¦%©*èV=!’4õ†óºÂ̦ÜJž>:ƒ|Æhk‡n9Çè3’>!ŠœÞÚªÁv³ËfÝñtØ6ŠÙÎN—צµÓ„{³Væá¯¹5u”3Å£5ÃÁ>ûwwxú³È&·n°zô¡·ìÝ¿ÍE\±Ü8òÎ Í%q8Ä„!–]™0Ö.;΄CïìðV™“̾àï¿9„ä§|þè÷¹qÏ¢î¼ÏäYè{.·7|#¦œŸ½Éχ/ùV²!ÖÛüÁÅ»WsðcªaÇÛ¥%Ùð¼¿$s+&³²iäÓ×W¼Xi~g?'íS~¾œs¿„›“>ëšòÉ?äÉò’ß}ëë´‹|úÑ#†7¿Î½†9_>zF¡'ÜÝ=dyv±Ìáƒ_g\%ŸþœåVIó4ãüèKn½“³{p‹ßûÞ¿âäUÇïþößDØ ü½ß£1’7ßû¤ñ\°ðWLÇûLUØY²\u4ÏoÜ›ÒÈ„ßÿÕtÊïüú_¢ kõŠC±æ8Slº’ìÜÒçlß³¥¿†W•.`^ðå‹%ëú”ý©ÆÆ’Úl³›G®NÒŠ7ï¢Ì}õ/_“$ŒËízAf5•€Íë+¦»†ñ0á褣Ï`¦Ù\Z.NçØ2¡h°®®VT,¸ÿà&íZðì蜛ÒEsÅåÞ¡\ÏU3'¡à0Ûåeýš£Ë3¾þö×ÉgŸ}ú1ª÷ îì¢B`³r:c-ޝõýœg8„õË · ì¿s‡³õ†ó³nß ÛšòåGS-.¸ygYXt=¸K&ƒ–AÀ³#F“‚æÆ9w´‹%Ž–Ýƒm¬1\\,*’lêkΰÇeßÒõ¼°d!§U-›¸a*2¼Oé”$ªšUS£%Œ´Ä&’• °q¨2%Ó |ÏÕ²AÇ€N!º5]Rc*Ã:̉:29²°\…%MW1+ [pÜVd±‚D#¤E:‡V‰PoÐ2%Ë-Ñu,k¶šqj@*VKG¯Z(†ÞÒ¹•ÈëŽ@­®E£ëˆÌ¡IЩ%ÈY5´ªÀ˜#ë®'‰«%+/I;CžJh[ªF¬¯kNjE9¦Ú,©æ ^g I ß4é;:mœ™ˆÇ@€Ž€¯ ‰l RÑÊ@.@R…%­óè,!C± 5‰Òt­$$…º.ßÑÓéž¾³”Cèû„L[špÅF*J!|È, CJ’Vu˜ÎdEÇÂy\“R–ç:úN“ 'PAƒ(%qH@êœhjúMÀ‡1ÌÉBIßl ôdÎB 1€ eGP’&¾À O‹' ò+”JI;¿Ä A1Ù#Oayô‚º=*(ÓŒ¸éi¤D)HZM+Â9ŒV´¹D8Oš |ð4Ñ7uhš´H°ÄU›õ’®oÜ8`œ–œŸ.¸êdB°µ•!“!jQ±È3fo¾Ëî7™­[±ª[¢(ÙÞB…[J!‹daÄ`pµãübÕ éXk ¡F`X*AÙ’$²2iÉ .ðèÇ¿ °fï~¡#BwdA° )1‡Qß²Î$ä9ÛRR¯¯Xùˆsš254ô oÒúqΰkzZhØÐÌ+R[soZb“‘NÇD× rC^äT«šeÕP–šd4£=¿@yI9½Áéùœ.\’åSò¦§’•æø¶G÷gæ+—ûØ8ºÜPXÐÂÑl@Co¯…ÜlªHÁBlH}v]ÓO6È´–ÔN¢cÄ >æØ®Cô¦l®¹h­„lE“ )j iwÝ)ÓDZ_‘k˜ÎÆ%X/6\ö’<:vó¾œP×§tx2;B,—„X2,-õ²¥#+!a6Œ³’B¦4}O×®P"ÇÙÈ~*‰áÄ7Œ'ŠîÈqEσ9ó\évºg–×ÏÞÙc¬\ž>Æ Ëdt›þê„óåz0áÞöÔš‡Ç§¨1‘ÍiÌoRìX¸úîà›Œ¾ÿƒò€äÆ}./_puvJ™eìïíÒ-ÏŸ½D”[<¸½Mo/¸8,/zÊ­§ Déù{¿þ!G¨Ï8g¬Î*Ö/znÝØ§gˆ£ xÕ 8Gj3Î踰‘pxÕ_rkß²øøÅ}¨ùKß}Ÿ…¸à“¿ 0oñõ;[¼î^ðäÉšïÌè·Vüô…åNY09LhL¤x¹a½YóD–”¥æ¥Rôó”ÌŸóåÉ)Û:e<Úæ²k9_B–lØ!¥h^^¾¢>Ûpï¯SÞñâO_±ØsøÆˆBÞä²_’ø "OøüÉsb=æëó[œÍþÇ?ækhFã7螬àÖ†¸Úæâņý·†è¥ã‡ösîÿµoòö`ÿêÿñG”ûŠ¿ò+oñÈ×üÙQÅä"a{Çc' éÆòe{J¯4¿1ݧõÿÅOÆ7]ä/ÞUü“/Nðꩼ|õ9_»õ&³û<~}Êé—G öÌF9né¼@ =—/k@±=ÞÂLj|ˆ¿p¬Wgø­¼õö]¾ùÞãõЧß÷¤w2…ÙQËëº`xûMÞ˜Œ©7F£œR ~òr…nVLn©×6/ÑvÊn±ª6<úòKÆåŒ³¶aùrÅáö€MðtMB¹eKÅz¢Ò×ÂÀæ&¨µ<£®-j’2Kàx#x}|†ÊY W+Šq‰›m±xòŠt¢ØGO¿ Øž’ìgÔO.‘^3»µÏÙÅ‹úœ¯}ã·ñ§<üÁyë·~ƒr6æóúOÉ%¿ýׇǯ.yø'ÈÛã;·÷ùbùŒùÕŠÃdÆ(Éx±:%™Í˜Ž-þ|C#-I/Êã7Kf8"ÍR†ÒðêÙ ÔªfûÛiÁ‹ãó®å¦RøÒÑ霭ñ.º—<}ø in¼?dùªçüÓcfwIóžx)‡–y׫–¥ Ç®ï9zqN*£Ými^œÅVN¹P\Æ •ðd2Aô+t´”³Uß2hSÚbÃzåÐr@*ÕµÀ³K‘1!¶+$c¸¾#j(Z‹‚µêð¡a:LIúœÓúœªSLrÅpXÒ¬=ëz©@Ö¡ÁiH­ÁÅŽ$jׄ& I@¸#œJQM†ŒUBd$ žØz*1‰$XK2_±R“K ]Ð…Šåº!ÈHa$Iª0FÒF‡ÛD¤†Æ'@K–F| 2pÝeIO'zl'@%ôaÎ`s ¡¥o=™KHŒ%ÞÐõsd¯ˆZµ¦Pç!¶+B©¯åC߬PZâ;ðFsݨ¯¥„¼WÐlÑ…fÝ;tc0e$¸ç4©­ñN T Z bK¿îQB`lŽ6Sˆ¶'†ˆl[Ì–%Ñ ¬=gMG¢<ÆYB¡±ÂÓÅæš°Þ8¬„^@êPÊbå5¿Ù·WøÐ-ØÎšà2Ìq­g§Qd†+XohãétÄ,1/Ðy óžà*:£r‹ÍbÉÅâœL Ê­mŠ|ÀfÙq~uB9K(·vPU ju\‘v0Ðɘ®™³®kšÖ‘ÃÐZPï,þ«€¾ñäùç-žÝéGËÉå i=ãé. ’ú¢Bæ™çD±U‹Ï- ­:Ù¶,ã’?þÓk€uóÝï 0h"uÐ ºH-$µêØí¡ÌÇœ4ÂUƒ¤SŦë E:TèÔÑ´=ªä!,"rÏùÕU+îL',DËÕq….5{{%q- Ò’MÞ š¥Áö-åÎ5=*hDB»¼@Z°jŒÔ›ëŽ•6!ÉZFê(É\ÀÐ#\Á°õHëpUŠ2’ÆoÒb}$MC ÑæºýUFZa¯·‘$hzhh×Ñ…H¯%#´Íéý)u£(œYúªÂÍ-# ™24+O\xβ†!ít›t˜r¼x‰–2)©\GïcUdIiÚ«Š¦›3™ ;l®®Øt é4!DK}µdZfˆlÊšs¬P­†„pL¾Zâý»o¨UÂó‡—È~Ãí7pºiyuô”±ÝæÆØp¶Úð|åØž¶‡Û8xytA™Âþ]ÃgO×È͈¯=˜rÞ¿âáqÏÍS”«¸x¼bçÖ¡4\]-H6+Š Ød혦uý 7ÙbÒM¨»ñFB<ïyù¯NøÆwwøÍ½›üèyß.ŸòN·ßãå«È‹ϘÜÙ&ÙPýô‚ uÌÖ4C~Ƭ՜ÛñŠ"Ûb©=íÑuËìî‘Ü“-‡4˳ùk¬Ýek‡“ú·ZòîÍ;4yäÇ'—üö0c¬vùÃÓG¬«%‰ÌprÆn2¦–¯8«æÖ)±“|±\1IîO^¿>b8›b*ÇéjCr8`+ °+Ç™:þ²÷˶®éu&ö|î·Ó¯¹üÚ~ï³OŸ‰@$Q$HˆFŒŠ¢(5¨¨ …bGWP7 †BµÔiT¡ ¥`1†0 iÏ>v{·üšþ÷ŸQc%C7 &Æ%̘ßû¿ïã¡Ý(vG» o8Î_Tˆª#ž«è7~3£Ÿ+äOf„ê ±7dk|—¦Š™ò9½½ŽÝý‡„³Š—ËO[»ìú MÄóçKªË9ï¼»K’k~ò‹'œÃoÞù¿°üEûc¶oßåÛâGO^0Ó5÷¶÷øƒÿ„·Ù‚þ;ÿ¿øÓ¿áÙ£Ÿòƒßùo8<üþâ`•røõo!—'¿$õÉwðWŽÖÖÐDܸ1FÇ-ϾxF½Èø­ßúˆþ8¦:ɯé„/eÊÅâ”톚{Œ¶"¦ãê “· tÍÓÏ-]´`k¯‡škÎV–º‡¦¡¨ É­»Äý–gù„°l)†C*1ewܶœAã[Ûs’,a¶ìq¾¨Øë Vl¬ãò«1•Ü<Üá²XpòtEçZ¶oFŒFÈ Áz9ãt¹ ™ ¼Ð6%VGà=ñÒÑõmî`Þ²ÿCJ–<ú³³}tĽ÷pòäËŽ­›cDÑpñvE7é“íº¦ë£Ñíwöxó‹¯H✻Ýäå_?â|yÁíw÷!qúÅ1%wÞ¿ÍÕÒ²<¾b8JȦÎV0;gÂÖ„-ú,›5•¤ñÝïpî’ê,`DJ»¯Wi¯Ê糊‘nÐQNÕJë0ÕœØä¨Tጃ•¥™HèË„M´¦© ´5FkPt$é„'Òk»ÁúŽ‘Ï F³Œ×ˆ LR2ËÆÓøŠžè|ëÖˆacIµžÑм7¥SõÆÓÉÀ8`­+*/‰˜("ruð„Ä‘JM[K:éPM‡È#D/Âm¾."e§xµaµÐ ƒØâuJU{dðèÎSÆž~ˆ¨6’TÔ$ýœe[£. H Q¦‰½Â넪¶À\c‰²¬#$ 4¤AË/!} žNy—’ä’y]¢OœÅxœZtŠð–¶Ä&@P¤ Zu×Pg@b(3‡nbdp8Ri$Ðt)>ò¨Ð‘É”6t”uCêc’^ŒìZ*+¯7mIt=© 5M NiD#m…Ç„¤õòÚwä Ø`’”®ÓNX\Ç }\娉°eU½¡² ôzšÑdÊfcq͆ÆY?fØOp”T«£™‰µ%M6DÈ®!‹ztmMÛd—ñò¿Ú`¾ÿ] ž eRxZUP”c"›&ׯ4¢ßµxŸá‘ȲD{ƒk$ñº¤î%è¨Ï2²zCJŽÌb\ÙÑF%=Ð=TæH´b½j©ZÇ0ñ¤;ºËkjâ|‡º:ãª(ÙɶÈțiÞÐ ‰ªÁÄ$‰Ã7%ÎGT&!’ŠYÔ ü‚Ž1Þ#Ä™ nkœÑôt„«+‘™Å‰å2m1‰!¬ÖDOÓ÷/–’2@ܦ¸AGâ%¦k™·™‰É÷¶ˆ¬g¾n˜‹+ú&½)Y–sÑ•([#³¬D4 û YX¤Ji£W:ôX’WÖÅXÕÐuŽÄxDœšŽR6ìä#ZqÙÍØŒèë%õbC³µOì-Õñ)õVJ/ʰó ËÚ2§ÔÖÐÍŸÒ;½[hÙñöùQÃ>g'sd4eïþ¯Ÿ>¢9ÓÜ|ð³ú3tÝqxë7x{þì+¦Ã]™UžÕjI·r´5¦YYÞ¼¼ ¶1ï}ÜÃ.VLw÷ùWßÅô„óc¼Úç÷dÎCqÆ»™æÉf„^žïÀãáÎ,Ã7km7LJOô6[%‡£ÀìÅ„Çþ-¿ñÑRÄüìËgä£ûG\øš“ ÆÑ-F=N͆«·‚=ÍÞV_¾.PÉ9Q¼Ãâ¢%Í/ɲ![ñhqÂjeÈö&Ô.°Zìê„^ÌödÄ/?Æáøæ{÷2áäø„ËuÁöþ„½ƒW-ݪf°+¹ØçâÅÏß>çïþÖ·¨ª”¿zú{Û|œy¼XóºRç F}ËÎYÊfèùåËôìœ;ïnñûŸ_rz‘qxÞ\~JåîqxkÂÛ³sê‹ ;0Œû f#˜•5 DiN”¢ãÔ›jÖ/sŠuÅ`†Ó ßOé¸âñŸnˆ:nÞ¬xò£@é$[1£~Æn^r•FlE óˬŒãÆî.gœIrïÎCA¿Ö ƒ ¥™º­Jñ¢Ï(᫳uËhkI® —ó 2ƒŸŸâ«‚áíÛ¨jÍÙ²áíÛŠ~êùxgÊå³·\D-û·È6)Ò­IÌl¶âòâ’{_»GRΟž‘=èC£Ù”3ÌtÀ¶²Z•ltÉÁô&'Ï¿àêä?ø'ÿ ë3>ÿýÿ@4ðá¯}'¯.˜=úŒ›G{Lâ^·g¸ñ~‘0Þʹܜ1¾bçh›JÊUC:O5fãXÏÖtF±}xÓ·ÇÈfÁþh‡¼IY±ÆFš#3àùÅ ˜š>¤Xžþ’x˜³w°¬šÖÒ‡•TÝCzD²åòä-^ÅLö¶02aþr35ý£#Lm)×sÊ.…¸#¯­’è8ÁJ….[„n©h ëŒa?ÐàØ¬q R œ"‰ò×§ž¡nðz‡¥[Õ22d–Q5­ˆÑ©aG@Ñ–Ô(h<&D>¢ í;¼²x§Á8:Ÿ’H;¤lJEOt>"˜ ¯68¡ˆc°u@ƒõ R¤økß¿¹Å§//˜ÏŽy÷ö3•s²ÔD›5…zÚ†{œ\&Ñß|wŸ»›'úw¹ %Š’»ïr¶>¦xü‚;G÷Q»{\ž¿eHÑ™ðJw¼½\³—fÌ..SFÝ)µ{‹•cŠ‹…Þ zxÖKš:PIv§=ãL’”}^¶%RÎÙêy2¥3%˳ɨ·c²}vÅh¼âáýf¦‰§[¤*°yù„2ÊßÚÆ/ð׿Ïð½m¾·ý>g?KÓIowJÕÂÎ]®^Å|þÙOùÎù¡SþøÉO¹õð6¿Ó¿Ëÿè˜?ûé¾ýõCÊjÁüâ§üï÷àæ'üáÿãâ½ßýçüÝoßàÏþ§ÏÛË–ßû±¶œž<†,¡7¼I»npÅÃí1:ÖHU9çx¾Âé÷Ó„ñîŒq渑a<æGóçdÏím~¾¢–+Üîóà`aêù£O_±)wn ñ]Gñ* §ŽÑÖw*–ÈAÍ£ÏfåÆá”ã¶$Ùvx²Q¦<¸»aS¬89õ$rH¤[£ëØþéSGr0!ï-Ù¬—œ~^SnZv¾yD&#kð(ŠMCÚ„͈ó³ÇôoŽnM¹zyFÔtù„øB'½«¹xuÊÉÉs¾÷ë? Müñ¿û7lý6w>ø;|ö?渮øøÃ›ˆÂóòó/ɶ9ºÿ§_=FGù֫˳“Wôopãæ6Ï>}…j÷?ºÇym9ýüû£Ûïír¼ÚP<>¡ŸHú[[4™¡X¯p:mØJ &ƒ‹Çsd0dG;¬稥`ë[Ì›íÅ{ù„j4@-j6õœ(hü`ˆ¢Bµ Š« ³‚.Ò­kD›@nˆ"Gã™Õ4Ê]?¸&c˜Å\´dÃVÓ•ž%‚HÁ Õt™À6Еc,Öh¼oéõ‡t­g¹Ü`ìõb”I¨š’yÑ`K/Z™!lCIdé%uY¯A)ƒeèÙ5\ TI³Pˆz™#„„rH“Ÿ"ƒVBUA¤IE‰Â^\³ó¢Ì“©!m#ð‘CJAPà0Ó1žF&4kK?têú¡LÔIM× z!'ÒEã ´hÓc*_¬DhÐeE"H㔦ï¨q×Bâ©‚F528´Hhã@¤t­èH(‰dLë#J*²Æ ‡®–tm 1Ñ3„B€(-¨ƒ…È'9QU44è&è€J>ðÎP·-‰p”5ÈI‚&àƒŸ@(p(‚ðôüV4@„U¢-h»™õ¥}ªvɺØœ&Íz("-¡Jé|ͦ*‰Lv§„<¢~¹de`4˜ÎQÔݺ$H£mb/¢cyURFkvûSúqÄåUCQäÆ0ÝÞÅÙÀºšQ‰#2Õc¥”,©Š’ÄŒ”®[PZC4ô £AJW×\­jâÔ“¤CZ+HµCÙŽšâ@¢:V뀕&$µ¢²MhÑm½˜ ,/üŸÿ'BAУŋëÊ”T.ñ±eÑ&ÈÊ0‰;ê4Å®,Ð#ê.¥× 'à†v½A´5c™²IsÖ«‘ ĉAËítjY– B;$ ±ø* ‹ÎšECÕ¬ØaJHE³f4Úx&HÖA^óE‹+#êr4Æ;ºÚâ3E”y| º4CKWB“e—HìªÆ÷p¾DG ‚ƪˆ¬®°¢E©!Â9 5'qš(  ßQYhÖ Â[L®õ¦›ºdÑΙÁÞt×¥Ì|…é*²x€Ô‚&TLâŒZºR‘iÁBHÃX¢;CÕ‚ÕiÖ(‘Ò1…+¨uÍVo‡Epõœ­¬#!'1ž61¿òlŽOP‰drpxm¼µW´æºý×u%µì˜mÔÀ°8=Ã:ßÜ¢z;§l3ß=äòÉ4KÏÞ×àüº-ýÁv fí L'ÙìÓn.)¬'É·Æ›X±ùbC–î|›³«+Nž-É&±«+¾5yD¿œŸöÑ7iÁÑÙç¸bO§1Ûþ%ý~Ä^oóåg73âƒ]ÚŸsQÈ©Gžj‚Ùáæ ~Éê«í %5)r!)òÀ8*)ª”Ë¡ÇØšŸsã åxQp:?åÖ¨Oa3~vyɽ½1G㌓¯N '3ê5™0¿ÌiŠ5ƒhÜàôü%¯^œñþÇ79ùüù›vò/"MM³.È’IóÅåŒé4å[ïŽyuZ¡ã%{“i›€l.Þ> Õ[ÔóK¢^Ç3×ð²Üâûãœa6çóeÅ`³À³ò”æiÍôÁ„r~üø“iàö!Í.6Šn«$n[”lø‹O ŠÓ„ûnxR®ê;ìÚ9:k9o4eeÉbM?ëÓu%k[¡dL)j["œe´3¥Ý”œ¿X’ŽÀôÖ¼)-7Æ1‘sšÔ±5êS/OxtÙqS¸¡Ï©ú=>z¸Í–ÊxYsùjÁôðMUpùâ ãá6Ã\p%®ãõ¢¦LjfçË•áÁÑ>Fy.ˆµGö"†éˆº<[Ôä¾eÔ÷ølˆØfåËÅœdoÂÈe\¿á¸®¸±5åh¸‡m=ónIU^á7†dÒc«×2;vTÕŒñ­1½fÈy³ Ÿ@ p5¬Š%›MÍîPŒöð¢ÇÅò5îrÅÃo¼G>T¼þÏD)rößÿ‹ù‚r=gÐËÙÙ™pº¬xõìK¶â1w¾ý ŽŸÁÉyɃw¦”]ÇÅqÁ IØ›î²R NNßàaDfgküv`¸3%œÔ,ô†;ˆŠOž>¢ŽàÁá.‰2·sªÙüš_˜æˆÆ Wsò'¿3!uåqÁ†šþ “.ål¶¤ ‰`e@‰šklˆÙ– …¹bÕµô¶tVµí-Bj:%©ƒD'Qç°IŸ¶„å9IˆŽvXÛ¿®‰G}\k‰œ¤Ì-ÎjŒXCk2!2§ hè,Nj"Ô3êÑu–¸ÞŒ@ T l<ÅLç±!Ai‹ŽE•ЂìÒ” 7Ð6žuÙ UDšzŒ±}hPDË‚ jÆ×•ÐÄòšoè’èH¡ÛÀJ ²Æ" \‚žáƒ"÷9^:J¾±(Ù ’1q䨭¤ñ :DdÑ$´–Nëk_W£piGŒÃ !¥j%È@âKšVGض# ´¦´ÐVм_#”§)Qv©)Cð‰I®¡ßÖ1‰J\#€ªÎµSÕ§lëî á ²dŸ^ÔcÖ\aëíGô{†.x𯑴š\èÚŽV×ôÕ4éѨ ³®XÉ@i úD£!©µ`%J¬uä=IšLð6P^Hfçõ'D"ÅúšÅºÄHã Yµ¨q‹c†G$ª¡³š¦Ü"&ù.ºrÌš96X”±%#œÞP­ Yl¨(qÕ5‰ —‰_%=>U‹%Áiä(AK¨d¾xÁ´9ahÞá"°2W\ÏÉ¥a<êsµjHlÁ(S?ä¼ÒßÓÈùK.VŽÑá6v³`ye0»Š°Üƨ­ Ç—_±ÁÎpÊYk‰ýšæ² ŽGô¦ U;§ï>úøW_e\½yÅÍwG´!¥»ª¹½¿ÅŽ}ú'|•øçï}ˆ8vüáçʃwØéßãÍ/O™êŒ…¹¢X×|x÷§«3ΚþîíïóË—ù~ÿÇüýÿå7øÖƒ˜ÿoþŒ,¿Ítg›ÿôÿþÄÇ·øïþ¿ÉÿüÇ|ò7_ñ­¿ÿM²‘᫟~G²5=Û²ô3²,%IúWR®64]ŽÍ§Œ7眭çìÜ»ËÍÞ­ Ô…a~Urg?Çœx´Øðõ¯ÕüàãmŸ)~ø—/è"Å?úú=lý†Ÿ|>§—)z7S\Ý' -²·fYjú™gVXŠc’¤ ã'E`49%iž~Ñш†wîÄtlX¯®Ëqq bA½\S/§TuE:€øVõ¢#vŽíéÇOXÌ.IwrÂÚ ¥/©fs)ù0'Br”õ9>©8¹\ptãB.˜W<|çm¼züˆÜ§lݽÉ*8fožâ|L¼7¼9¯šÈ‰>¦*ñ‰!V°ZÖhç‰r…3Џõ¤.c­é6Š˜‘¶lŒ'´–QfBSØ‚!WB:Š:‚LÑëjBÛ±‘†>×&÷(À*êÈb¨b.YcWž´ïI£!Á*ºª¢3šÔH"!©ÚœØ×(“”®èHE~H#”*Ùl&ƒ,D+)[‡F´…$”“·ˆ¤‡S’¶òD­EÆ×à^ë$¢)+:¥¨­$aC’ÅTRâ«âˆ(˜Ê#è¨cMd­Šˆ=8pbEp#Rci•ň¤Fv5–;ŒŽ MIí’ÈÙŒJ[¤ƒ¥n@õIã©Pà$A Œ [¥1ma»ò2,bjÙó d‡Ò)ÞǨºÃ¹ŠV“"£€ì"\Xûš\„h .3ȵ£qDŒÑ8T>  ‰Ëüu¥Rí ¡]¡jOY×$£”8NiË5Uá°^°ÝÑÈÚMˬª‘¦"ó Vl4EAŒd²³KÛ–œ½:£³’ÝíûYJ.V¯Y-‰ŠÙÞÊéõGœV¼(_p#1È·ð² l=F¢Ü@m²ÁŠÚŠÈL0ý˜PTlD@J‹ÐŠ<ÓéÛ8´dRd •%qè#Q”º&q› |™ Ô®a¹:cKíCìi…'±ž8D<þé¯N„G>¤ÉbT£uŠd…TŽÖgH(Gk@\(„jH·.DÞ2-IÞçxÝ¡mÍ^‹lÌz¾"¶kzÛG´]ŒlJúƒšRYV³Àöt‡tÜ1;]‰!ý„«ålƒt€;:6ŠIšŽÖ:l¤E›Ž¨ ,MNb$Ø×L–¢ÀÖ$"¸ÐÑ©!y×Ò¤[ZòÈtŸJZ„hFDQ58,iœa¥Åú‚žOð¦GK\ÛÐ,K²ÞŠ1:EyËU»fÝm$}v{»XeY5%ºœgCˆ"TQë†yalR6¢ SÃd€«…)q¥d ->Ѭˌ–4J²=>¤WNš ‰d/OiË>§gsêË’Ñþ˜éöÇ›‚åñ+’¦#Ën"mƒK–dý ƒ$ãüê˜jU19¼Ålñ#2nÜÙã³/¿bÓ ¾ùñ7Y]>a¹X1éÀ¬®é¢K"Q³Óe$û{¼y}BíŽöoÓ%KNÞ¬ØÞ$ºë9¾\‘^-¸së}âuÁ«¯~Èßý;wøðð;üèÍ1^wä²£;ý‚nßå§eB¼Zñýñ-~¸öÌü†é훜|zÂÕélݸÁBLÈ[ÇÞPðZžÐœ®¸“ÙD¡–'ìö™‰ '_¾"Þ:"ÙrÇ-ØU#ž\yVÕ‚üæ?âÍê Q¶¼ßŸÒÊ5O‰T†ypŸåé’Õã×ìÞÒÜÙðÙ“ŽÙ|ÍÝ›}†2¥.-çÅšQϰ3óêòоæ<+›n‰ëZê]Æ£ŽUuÉýè€{÷Ç|ùvMµ)Ø9Ú‡P`æ–·qÅy™ðkz‡&üuì¦B%†(l(DŠ·ž¼sT‘BfU+ŠPjAFILe,uˆ­§ï>IXn6 ÛÓmºuG×,QŒÖ1¥/1b” Pë45EÑÑ©×Ôë†fèé';ˆ6ÐÖR€ì´ H[ÐÄ)Rö°®"²å5øÙy„×x#²"4 LB*ÞÚU‰K5*Êp]ïÔu{«v´…À G’€u 0848‰1-šÀbVÑ‹#Òha]`íZ\W‘Až§dÑ€².¹,.ˆì½´Oå/±‰&IRdÐ&Âæ5Å²Æø™4”›@h i ±òl*Ë<¯ˆ »iÆl½fYmØ5jÁÕX³ÍñÛ®NÙg€M¶¹|vLž¦·v¹œ9‹èáˆÑt Rðèíb¡xÿˆ''/iB̃w§øóg¯ ¿9aŸ1#Dsij§ÏHwæì¾»M¾6”ë5Ë®Á ‡h±õùjó‚ü~‚Þ²ºšñÞÑ/Ÿ¼æxuÊßÿG÷ª ãÑ6NùlñK>?qì?xHùôŒÞ¦$ùè&EÁÕüŠOî¦\<~MToØÝ¹Mu²B*OïÃv¾À~qÎôþ>.Y¼Z0½? 4§Ÿ¾ætÏ0Ù¿Å O¤¯XxA‘ÜÀd+ªÍsêµÁôH¼e¶:f**fÌÛv„!eäÏyñâÉx1˜Ò>ÁÒ[[‚]9e“ Ø´sÚ‹—ô†7Ɇ,«¶[_#râSœÑ´%ã;ï0îÝÃ._s¯ç¸wë&³µg¹yÃÍ)õú˜'/¿ýÝØv-õ£¢š‡_ÿ+'x=;£-;£Ì ž6gì&슜Y›ðç ÿâÃŒïÞñ?þ¿¾ÂVùžæ¯fŸ²ÜåïÞföô >}rÉà(á»ïsòÕŠ§/¾âî·FèxÄéË d«ØÚ½ÉÀ(Îæg”U‡ŠvP›ç,Ïç~ï»Üy/âô÷Nyçë·¨vG|úÅ[N.Ìœ—Õ~{wápʾRÜoxçfÊç'%þ³öwy÷ƒœ³³ ¨\ǼëØ9l®rž=n™¦ \ k-i$˜7(éÐ鈳‹š8¹ÑË9¾,Hô˜tâ9;}…jƒá”ö² ŽKÂVб“KróòüŠó³ övèç}˜­QÛÜzCîcp¤4¾¡ ‚†ŽáІ)oN©rÃýÁDŠù¢¥©.8¼qŸã³3f_>âáoüvnðä§¿`ÝlPaB¦»)`õ±Ç3êvA=œõ |‰Ó}\ÜrúÕS\:æ½Ìž32ÝtÂx¨™šO_qæÖìoeØEDz\ptã½.çÉétZqcûøš×o±‹šÝÃ)=±œ/(}TcúBш—*ê™@Ùzš^–Ò¬;tí‘i„5YgP®f;ÒvH-/ "ÇÈ@9¤P˜Î }L ¥³ e$IÆ(m¡í(…×’Õk …íБb])œªÈcEªîX‡@p–ÐY޳Q­‰"CáQíq‘Ãi šÔÂZtD&"m¯ÁЮ֬©‰ˆ(•¸N`«Û´ôû',Š`;IB㉅CéŒÊ8|Sáe„ñ)¤XèB@ƒ¨ VÈ\Qù‚È¥h©éœÅj .!¶Åu]QOBÆàË5RF‘bAnèH‘uL׫¡íˆ$4Á eDÐŽØ‚óŠVDk‰[4žNDT¥§—;"%h»ŒJ4$Å:‰Š5ÚĈÊÖb½CŠÅä*Á‹Ž¦2>k°•@ÛYèBÔÇ6Aëj°04‚41,ÚŠ²(_¢²ˆaÔ§uëºDII®$Qn¨}L³®ðªÂGJ­¤µi‰Ñ£(ÛšÕé’(…»‡·‰úšóÓ5g³+´ì  ?@´5ëÕWkÁ ìïL¨jÃåú åc>¾¶÷ä£#„°(9¸nÌ–èP® Vé`ŠèjŠº "!Ï ›£KrR*V­EÛ€I"Ð_iF©c)6l.*bÓ#ÝR´•CJÃØd´YÃòªäÍÏþ⿘Üã5Bw¬…#C8buPàj”G ÍVd‘‰äJ¥ÈjÅAÈ£ŒË‚´«ØÚ;dcKêå%ƒ¾†Hs±èÈÃÏUÑ_HôÁ˜U³ÂnÎé…¢±¤T i1ÀG-mµÆû&Ú°®«6Eæž¾_‘´1s•D¡ñ)±®%~õl1Öa꜊ºk°ÒÓ‹,ÆGÞãµ#Vb ÀâHlŽÈZšÎâÖ% Ñ8¢‹zˆª¤k,hè…k#2‚Y7£j,ƒÞ€(Ž©ê%iÔàœ§m·¸w»Ï¦<áäuÃpk‡¡5ÌŠ ú·†qO°laQm˜æ½Þ”vÙ²±sœ”ŒMÄaœp*.ßÎ)7+¶îÜ&ßJ(NßR-[âF£m)'o4 î1+f˜Õ½6Ë+"±w{›·/ Î.>øx›öꔳË5ƒé;´EË•þŠ(ušmDšðªîpo–ÞLI'7xùü‚ÜuL>øÅóŸb7k¾ùÞoñ£§¯y½úœ¯ßðÑ7Þ%ñ˜Þ½înñjö‚>/u¾ópÌV¢ùã®ànÞg÷Í?|}IÖï3r#â4f8 ØÙ—3Ø=|W)ÞÔ_òpç!z<»ø‚ svvî2ÉædUÅñeŠMknô¾ÏËO^!ÄœãD.åMûguDoçÖ'œ½}N™W¼ûámÞüìŸã¿>æÝɽ~âW,j¦­àËggû&za¹|vAœ)¬tÄJñáô€Ï~ñ%ÿæG_ðþ¿ÉöpŸÿþÿòE/ZÒïøñ›q/Üe'»ÏÉås²ýˆ«¢eñUÁÞû97Þ?äÙ~ÎÛÓ%_ÿÞ]Dóêñ y:f¸n±dU²F²J.ðíwú^’$¿óгaÁÓg:Æü‚ƒÛ‡<¾Ã«Ÿþœ·Éá»·Ø?zü–Ó«’}çaxÄ; ÊÏX-⬦=œï‘ꈲ^pZ,pvÊý»}î&üäÙ)Ÿ¿à»ï¿Oì¼>>!Ë"š$§)VÜL{¨ÜðéÛ·´ëŠ­Ã}r™²ZJ¶MÂ*š±zuÊd|ÄÕz ·nÁ¼bQ£-ÔÙÛ;}úG÷xûò”³‹ç¼÷ñ{Lê¿øÙ_“܉xÿè#VÇK.« öÇÛç–'_~ÉáÍw™îöxôèÞÿø>[»wyü?ÿÆò¿ûWÿ’×ÏÎxôÉÏØKcz½=NÚ’P—|0½ØßåéÛÏojÌÑk\µf¼½‹ c®N^§=~ýcNÛ+^üäçôLD¾·‹+zùˆF(*{É`´ƒ†‹å"ëHTŸ·($HC[Õ`I"¨6]Ê“¶T«íKT>f÷¨üU×E[ˆ`)lƒt9"wȲA¦×}ƒ•HH¼¿Þ„èŒ6´wEr”¹@[µX‘F¾†:jÑ¥BˆªÁGÆ‘¢¬+жe ]¿O,6ØÆ"tB̵¡¾6 -$¦©¨CJãÛÆ!eJY·(¯º»æÐzIÙÖè h{1©ÔtÇ× ´Ç')],°!T-¡vøX‘¤O„p5>ª°~D\yL¯Æ9 „àZ¤ª –(áEL/®ÏuÚƒ t?P[‰+Ê4˜¨GWU8ë:Æi…ó-JB¯Õ8e€T |+A×(-°^<ƒ÷žJ{r¢ÄV=ÚΑ%-w]¯ M§Ö ¼ô¤‘ÀkIäÖ8PeH;DO0Yí˜S)DØø5ñ:¥—'(嘕t–Â$`ëîzØŠÀ ƒì¦m™ K¼oq^ÒU ¤%N-¹NX&’ú´@KÞAåh®ô GHKQv¤dôÆ’nmÁ6}* R ©Pw+<0šŽÀ:‚¤yŒi+ßåŠÆIô¦%V‚6 ä!¥tyDëA!CŒ Ž(øu  É "TWo‰Æ«®€N[ú:-i»/b2tR²^µÄÒ1%™Ò 6ƒÖ¯H‚deÐÏ(ª5Wë [iƤߧv-5k¼KÉí„|wÁzUÓ†œ(Ù fж£A×T¤ÝnwÀ«ÿŸØùøCöX¾üŠH(ž“àÏùÖÞ€ÇÅ™­ùøÆ³ö„ÓOyçΚƒV§¯Ù‹"êäÉ3¬Úbúœ{‹†´p< ‚°5Ú&Ò36WçÕ©tôÕKJ[CvL΋å å/é™%‘¯YV’ñ^DQVâjÉbݒƆ8ÉYçž< 4³3ªF3Ìn²¨—tëSœ’Lü6½ÁV×¼zû”pÞÙ%—”›=ÊÉÚTBÛDØjN¬-"Ëuó«“LÄúÙë`?Ü"_Ör‰º1a4ËY^~Ái½“Nr†Ñ˜é(å‹7\ž®Ù>¸I:ô¼~sŠÚÛ§=-˜¿9F$쎦Ä*cíœß ↲jÙ1GdcÁÛã’X'$7úø8æ(hŽW+ÎýŠ£Ý1³SËúø”÷¿s-¼øògÔjÈÑî-„©8vƦ,î3N8?IU.oß k\´§t‰%©r|BKP ®Ë %Ê "Nh›³YR #ÒD#ºWuøTw9kQXcÈP¾‡35б*bTêXM’J+âÆÑ511(oéêÕõù0Þ"Èë¡Ðà X+O¤! 1Q—PÐà»6•Çšzã!AEL¢¡J)}‹ëE˜¶AX…ˆ<¢óH£ñ²‚Já´ÅÈ)Aɘ®¤§ˆÛëÍ—ŽRÒÊbCC¯K¬ï1Ò-uÓ6 ‘Ô„ôW˜š PYBÓÖ´ÎÒKRŒìXu-6ÒŒ6™l¤Áf¸jŒ<‘pJaXYሉ]‚T]èp!#I hIÙµDªEµ›¤4Á“T-Q(Œ@Ô’TD8ã°MßÕÄyEÝ$Hß‘ôʺÁ8‡õ­!´×DÊÐÐN dG(©Q=³ i#Ûb‡uYK¢íˆ¨UÔuÇÚoÈH0RåC¬è¸Z®q Œ#C”õh€dY± BR{E5ÒËb6ÅŒº(ÐÄ ²è›æŒÍ¢a0ÈõG´¥eSBë6¤iÿÚgfJŒUl:uý8¨!e\’µöñ'Š„`$a p'%ô"zÄ®Ö4åÎ$äB‚g)(G¿ièL QR{„ÐÖcuÇrV!¼fºÝÇGŠõ²#Îr´®içœIú ÏþæþKŠðÛ4¡ÃO¨\p ÃPN„BG'bDèØx5ìHE4œ.kjã9Úª˜ãË3¶sC2p<[“YÃîQŸ¦éX”Žž2tùk%ùl‚*lÞáMRKüÀQ4× ÊÈYŒŽXN3ή¿(Ö¥D'-. ›˜O¡-¯ð‰¢óþz€êzHªÂ4è$Ay‰ëH=ƒÎ #AUB$:b¨{šº)hVžmÙC¡u šŽÚ[¬óÄR“`eŒ­JQ1`‚Ï®m£ qècW)ÉÞ_¯9¿š3äô³=ªîŒóº£¯ûŒÔEÉiWÒ }næÛñŠÓyC’·Œ”$¤X‘ðìôŠâeË¢¶cžþì9Ò×${{$\]S¯KZ¿æàÖM–+Ïrþ–~Ö§j$=‡{†³¹§k=‡‰b¡7x/™´w™5]ö™´lɇܘxZ\rõåïåD·ö8ÿÔÐÙWŒoä§:/Ø›NÙHÃOþgüæÇGüãoÿWœÎ/™LK„Þåj½Cœ,ø³?ý¤eÌÿöŸýÞtOù“GOxðÁ·Ù›Ÿóã“Kf·™¸Š±b§9Ç'ŸÓ¼mØûè#ÒØÒ½zËàÎ ²ÑˆG¿x„iwö¸½Ê±ñÏ×D´Åô`¿nñgKêhƒ¾7a1ïX=}…È"2³O>Øasy†/Þ0î²Þž|zÉ#Áx\±¸°lô-†{éò//{;ØîwœÖ–×W Yñ–{÷ßçâBóÅÉ ;}~gpDˆ"þüç¯Ø§ã½Þ ýøVVüÓï½C½ÒüÁóŸpk,§–rït0Á¿8çâä˜,”X¦“2;æ‡'ÏY&žñƒïð`Òç¿ÿ?ýG>}qÆ{ÿr‚ØÔ|çø!³:ãYuŒÞî(íœöJppxÈð(æÉ³§”¯[†wvÙyoÓ_\PÏ޾‘áLÊÉ«ŽuQqÿ¨ÏÌ êMÇMK¥øð»SF‹‚ÏÞ¼ËézÆ«O~Ã÷{|mûwy¶yÌöÞ³óù~›¥å÷b¦»Sæë†7Ç'¬Ê–‡ïì“N&üÍÛšñÔðù—kz[7ñõ‚ÙjÁ'ž°µ=ä{ï|‡ÏŸ~F©güÚGïñùç¯~Ãþý=žùšÙlÉÁt—\öYꀛ9ã9çÂrq,•;ìo儿dq‰žŽØN Ñ|Nؾźa/—LÉ-ž?ý”M\ó¿Íj^sùú)[û7ý1Oþ Ú7¿ö-–³QÚqïî×ùì¯þ†öø þÞ¿ü¯1ÝGÿáÏðî=¸Ë…µ,Ï.ø`ç[ã)_®Ÿsu|J–1îVó†<ë‘L:Þ^,™ Þ}ç6Çgç¼øù#¶†ÌhW,G=JØTg$r-k–Ä‹@?I©"‰ò52xTˆ ñ$¤QB<‹P!W œy’•©0­b'\¶ ¦ • °¨BÐiƒ=ƒ¶&ô ­½N Ý ¤óS¤’t8|hhá‘\ç‘Bû /¾qáZEš†5QiQrL;„D´tÞa­Bwb –Ìh|”´„.bZÈz4­À»K I ÁFÈPP.#L_£bAÓy"í ë–†^”‚÷X-ñ΢}À…C@Äë,BiZÀ´¤B‰†Ê¶dÚÓIOíýDìc“´Ñ(#ñmE”(‚(ò)*tœá%45.3˜ÎÓÞ¹_ý.^àLLSyú®¦hšFâ {Ý?f#P),:†rãF’õ4UCÜ!šîz«¤:„¢ò§:ÌFPÓàR }-ïÆ ‚ßQÙ‚¨KLFåXµ¼ðä^An:CWkJ剂B‰@:Ó¤¤,eMµ¼FÊŒSƒ–kGd<£¾aÑB}¹Æ¹š­í)q6Æ–K–—Kœ´ô·G û[¨fÃÉrκp$#ÍÖ(!¶³Ù)•¤é€qªÈ’ˆµ/X­kúz‡xÐc½9¦i‘qô‡Y2ÄÙŽåé-e8¢” ¨©èÙ/ QjXû é2ú&bÙÖ,êSO=¬!q†¼—Ó™’uÕ"æ†hÜ‘f†¯~øGÿ•óMd‚-Î%XU]wc …Í4º’„²Aö)‰i°µÀm®Sq£½ÀtÐçbÞâVs¶z[ÔýŽÍ¬a8‘ŽZÖ‹]jèÞ‘‚žÌ)óŽ®]“¥[é¹Z/h ÏînÿASz*Ñ‘èBvš(§-u™Ò§¥Ì<²IH¬c9ŒJ‹u.²hµ‰ˆÖ>Q­ ȲÃ' >ëp…&—5NhŒÁÔž¶rH‡1J±a‰ë ‹2²A‚Z—¬‹2Ý"'„‹ŽÊ,ÀzzÌþaÆryÎú´e8NiLƒ«bäÎ6¢{iA&æë†ÜÀÎþ6 ¯kð±åN°ä£˜+Ûgõ¢Cç¨Û’Á.þmAY_Å‚¬·CÛ8®–gaéMo±š½Fõ;[ïñêÍç”mÅÍûP./Y” ÙÖ-K¶f'ÿO_¿f¥¿äkß½Gv9fqö†ÕHÓƒMÍÊ4¤uÂh“÷4Ïê+â¶Ç·|Ìyù3>yòKŒú»|ó`À÷XNV‚g?ú‚ïÞüë×o ßðnÞCïMiz{¼xþ%§-û“{ìÅgüͼæXîóý‹·üÞÓãÝû|Ô›rUœÒHz øåɈ[GžíbM=³ç rÒr”î#|Œ-žrâÚí“©sü°ãÂŽY]ÅÔl0UÉpO“Øço-—¶Àùj®Ø=¼ÏpwÀóG_°\͸ùîCUÆÛåœñÄóŠ´±µ=áçO^R- >øÍ9X­9ÿùŒéû·9¼×ãɗϲ$*·y‚äpÐãhh9É$O^.¹šáwx69Ÿ1°õøñã_Rú–øî·YmÎù·òˆøã”ÿÛÿð|þì-ÛßsòÙùÝîÛì¼÷-þòâ?s~öB~ÌÈ$lIêzÃÅñ+¶öŽðÎpþÅWìî÷x﷾Ó¿xÉ󧯹ÿñ ¬rT//™;AOÅì ¤aÈûÿä7iÒŽúg—øÓ?YÍÈàsëÛÜx÷€§KTÒ#ê[š·NE(žòÕË”iÿˆÛ{ggÇ4ÍŒ¢ÍÀm3Ùv¬ææó!‡Á(cokDUnxvü Ø—c6bÁ`+£°Î_žs»·E$·8}ù¶šcö°›”ñx‹P”«çŒ¢Œ­q¼X±Ø¼åæø6ƒqåÙK–²‡÷ЍY2:ºOÑ5,›–Ì(ÄJpÚ-轋‰ÉyþùgL·÷™{|öù_0[¿fçàI~—æò{‡»ˆaÿÛßçÖÝ[<üþ}~øÃá·Fô¶8ÿÑ™e7?ºMj{\µŽÖèFP·-ífÎ0ÎÐÛ]Y“ÄšÁxŒìbÚ¦¥TÖѾ³xÝàbKp F'xçh}u &OÈUŦhI½C©Ÿ*ßaÊ’$K¨m i` $Â8œv„UÓ*I*R{|D‹ê,uHˆÍšÐ¤˜ÄC0T¥Æú–Ä |¡ðZ…Õ©%ß@‘“nk´ë(›Žª³Hˆ“ZkêÊS©’Ä:zb„ —zÜÂR„*I¤n±!Æ 6)R»Á_­ QÊp´4 Þ.YÌ+ÚD“')©Uñ™¢¨EWÓO ‘ô4"ÁS0Ö~Їå9¶Ò8a£†¨ŠÑqÄruL×i;‡ô`³^S5ŽØ3 i®‡xëÑ«‚D´‰AÈ©QȦdV¬Q]D`ÆF®65*ú=M×¶ëµ#ÐMD[YžÿôW=Xï~¯ÒÚb#ÐZ¡»€6RD-XéÐRAuڀω}ËŲ\°·=D4ó͆Èt$¹f~¥ [³»=&ˆ˜Ù鲎¼—ƒ ˆ:#tµWáĈì¬ÅûµΛ‡T³)[ý—ÍœŸœpëp‡éGw¹8YÑ,Þp´/˘±Kxÿ½/–oЧªíŒÉô¿wëÅâOéÙŽ­í_çÉó'Ã',+ÅwÞûmF}É_þø/IF7øÇðèËŸòÓæœÝÁ»ìÎ×$»;|ºžsõü1ß½ûEÖçÅÕc¾¶ú1?ÿäYHØ{ÿ.Æ@y|ÌRµ ÆSö·î“UK®?f&û„ÁµšÓ/K¼ÉH†w¨¢’ãóWÌÙÇõ÷yÒÕŒŠglGŠu7¡MvÉúŠT¾a~¾îrëÃmºÕ3~ñèŒíýC¾¶»Ï/^/xzüˆQÄßÿè.ßÞÛã©»bvzÉG;78ØÞá?}þ‚+yÊo½ûjØççOÆäê ÷öò¼ࣈmwγg_Ý>@ª!Ã¥áh8á?>ý”~Á¿úûÿ˜=-ù×öcä­ö¾³þä?à[|"ûüåæ ïÊåâü„wî“§)O^~BS$ìO÷À´kK(kÌÀ±÷½¼ú‹ Ç?yÌ÷~k‡°#9ýÙ¶Æ1¼ówFl jªÙ>ÇWo/þ-Ó)ïïý·”W‚nýˆï¼;åéeŸWŸ¼¢«çÜטþ„âuàÉjÁÖÄðõoì±vŸþÙKÖ‹‚ï~ã>UXóåóݺÁ°ŸóٓϹ¸š³½ý;7vysõ–Õê Ó-SÖ ¶ö¶Ù¬|õbÎ`²Í ¿F“œÎ–$IÃþ1ož[Þ¼)9Ìþ„«Ù†nµÆÜyHäWtÏ)¶vöÆ EKY­0rȳ/¿@æ5ß½ÿʪe¶|MÛÒŸô9ýêþͶoÝ¡7ÊNO¾úÉÐ8ÞyÿNN˜m.i_]rpxˆ$¬¿|ÉHïòÞ7ÓÅ ^=ù’Q2a×@EÞ#&ac$ÑFs{šRzÉã—oØd˜ÑÇ/_0¦ô¶ns5Ð)FD,ý’Äg(µøVI‹Î ºÕõm,Ñhˆs[Ì02!Q’MÛ )ƒR†Ú9b4µ“ĪEÉ€wJˆÙP؆MÏ” ‰'ò A5èHÊ@¨vÈ*A•*¼ïȬ£Í.€ñÙ„¸ÄuõuJÊ€rtÆ ðm„8ÒÖ |†1ï;´w„,!Øg%.t$ÄHS³ –$@+j¡2¼@it]]Ò"ÈLJê;Ö^€‚¤8]d9j•Ã$m­Àz.;œ÷øÞ£®©PÒ’Ê>NIr$Þ ¤Êq¶¼/Kƒ 5š@£û(:*#ÐJ£ ¤šªVt.§×•¶Ò€GF «.%s=JñëºÍuÁ«Iˆ2 e„„¢”–žì¨´G¨ˆ¨QظÂk…¶ŠÐx*»&•ýa„+ WàEG¬$¬WÎ×ÈÒ"ƒ¡‰:&Ó>zS2£X^‘ûµ‚Kh— ¤0ä£>Áµ¼y³@¥†­qšÓÌg\,$I´7@F‚«Å±)ðºÇh8@Æ–ö¼bUµx`ÐÏgc Ë f"%W†­4bZÊn N“Ä1:7¸²$”ŒGEŠ(Ééê–u{ÍQÍ‚!J=k2Š…#!Áë5W« ‚ŒévNÓXFyŸ[³(:ÒFï¦èJàÛ’Z¶¼þéerÿà7ÂÒÐöúví„"è ÕT´>"Š,Ö¥è¨Av ›¶”m„Ê,yšQÍ=%WìMcÒhÄÙåœ8L·&,+\ ñ §Ô%]Q°m· iÃe²d´ÑK=ÑP_nH¦c³>Yà¬d0ÍIlCaBJ’`ÙƒqšD9šÖ’Z6–jä‰V)JxVF7ï"œãJœ ¨Æ 2h‘`^iF¨-ÊZ´ŠÑ½]A,mCe#!â„ I³æ´ênÀd"]GS:¤rÈ´Ç$N¨EÇòì =Î3ª*Pt†<o¸Q·J¬¸G´ñˆY¶³7òô£œ¥O˜o6¸‹9Ó›C’›CVŸÕhwIÝoHÔ6Û½!Wås.Î:îìá¼-–ÜLY/–l䜷ޡ^XWç´Ú™€ˆ#}Äåü€?yôKþæí9ÿ‡ßú5Æ—¯ø¿òœáƒøæî€ló‚åx‡b]óöé q0áþn|uÉâ.CÆ½Žƒdç#ºâ‚M8$ãNÒQs\jÒ«œ›c‡I³3 +‰Ú„ÙYÃà†Dðu`¼»Ë¦š1{zÂøöM¦»û¯s¶Þo³\§g_†ŽÅÅ%·>à7ÞÝcr¶â«|Âî~Jtö%?ÿÜòðö.épÈüê„é4âÊ÷8~¶ÀÔ“ËÑá]>ýdú:áÎý[|ñÇ?"Ï4¿ý‡<~sÁŸÿü1ßúÆC¾3Ú"?yÁ¿þñcæ½]~ópÃ;½)ÏÓü¤øŒÍ§Ý˜÷ï°=œ?áåKÇt|«ãåg¯1½1ïܹÅñeÍâäÓÏ™ÞÚ¢>Ÿñæò› ðBqûã{|t‹Â¿æø 9mÿ”ùîí~ƒ<ëöƤq‚h*Œ­x~¾àJ×x•r0½NWœ=?ÃoçÜŸÜf}—‹3ú[OÎñQÌG{øZpÖ^q~uÁº‰¹wkbªbç¼}qN.Þùè<~ò '—+vîÝauQ*Ï`œ2+ÏÈz9Y“0?ÑÄ“á€8fn/9¯cÆ2e7íØ¤i¢†k–†×oÞÐۉؚñòÙ &;CnÜþ×çxóËGìnàorñæ»G1·¾õ?þŸÿÓÔ|ã¿ú.?9?ãôÙ%ß»õmZÉã·O9¸y“þÖ.gg¶"ßî³XoX½:e¼»ÃáÑmŠåš•k˜öR†;Ž«y kJúÜÙeÅj~É­÷"sÛ_þ&ìÞ=Dø5ó7Wt­c¼»MÒAµ¹äÜ;&IÎ0˘—KjçÈ{=âN³\Öé KI]‚2øÒ#…`•xr)ICL³¸BöýhBU¯i—K’AB/b]CÛ¬)­ Kr’ é¤E™åuÑ"-IiØ(‰‰*"7¤VYy„êh…ÂWwh¥i‹Žnhé©Ý*žb|ˆ,´]K™Î¢!è!R¬tH× ý5²&•šà$®sø8ÐvÐO3|UQµ• 49RzlWa] (¢8F$-Îæ„È^÷[©k? Œ”×ir# u’àK‡ :8œÌ±Q r•$yŒ¶‚K'PÖ“ˆ÷.ªA÷ *2”Ë–(4¤Æ€ðT] õ‰q‰Â[O"#qµÂÇ¡pN’éElª %s”H_D‡v !AHªÖ"l R’…b‹³Z…Ô’€%P£«”Eˆ(¢-ÖÔ«Š4ô™L­”¾¥í i*¦2¹²ˆÚRš€«<ÆŠ¡'i"L´Æ“ʈFtlÖ+²¼Oš")hjGÙ´tÛšzÑÒt !JI¤¡£eh20-³Mšé`@¯§¨jÏù|ÁDgèÁu‘rw4uÐŽñø€ÈjÖË36uI/šÐÛÑÚå$ué¡Yâó˜(é¡­À-2¸6ÐሢÊ­¨ÑH™\mª¤r’EÝ¥ž‘7Ô¡¡ÖLôyö“?Füà?ü­þV«¿Õßêoõ·ú[ý­þÿ¦ÿïߣX4”9£IEND®B`‚salome-kernel-6.5.0/doc/salome/gui/static/000077500000000000000000000000001177004724000203625ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/gui/static/doxygen.css000077500000000000000000000307621177004724000225640ustar00rootroot00000000000000/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { font-size: 150%; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; padding: 2px; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { color: #4665A2; } a.codeRef { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.version { border:1px solid #0000FF; color: #CCCCCC; font-family: Arial, Helvetica, sans-serif; font-size: 9pt; text-align: center; width:100px; -moz-border-radius: 8px; margin: 5px; } div.footer1 { background-color: #DFE5F1; border: 1px solid #AAAAAA; font-family: Arial, Helvetica, sans-serif; font-size: 11px; padding: 10px; margin-top: 15px; } div.groupText { margin-left: 16px; font-style: italic; } body { background: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 10px; margin-right: 10px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 0; margin-bottom: 10px; } .memname { white-space: nowrap; font-weight: bold; margin-left: 6px; } .memproto { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 8px; border-top-left-radius: 8px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 8px; -moz-border-radius-topleft: 8px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 8px; -webkit-border-top-left-radius: 8px; background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; } .memdoc { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 2px 5px; background-color: #FBFCFD; border-top-width: 0; /* opera specific markup */ border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { border-spacing: 6px 2px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0px; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; margin: 5px; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ div.dynheader { margin-top: 8px; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; text-align:left; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } .title { font-size: 150%; font-weight: bold; margin: 10px 2px; } dl { padding: 0 0 0 10px; } dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug { border-left:4px solid; padding: 0 0 0 6px; } dl.note { border-color: #D0D000; } dl.warning, dl.attention { border-color: #FF0000; } dl.pre, dl.post, dl.invariant { border-color: #00D000; } dl.deprecated { border-color: #505050; } dl.todo { border-color: #00C0E0; } dl.test { border-color: #3030E0; } dl.bug { border-color: #C08050; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { background-color: #175783; border: 1px solid; height: 80px; background-repeat: no-repeat; /* font: 300% arial,sans-serif;*/ margin: 0px; padding: 0px; } #projectbrief { font: 120% arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { background: url("head.png"); background-color: #175783; border: 1px solid; height: 80px; background-repeat: no-repeat; padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } salome-kernel-6.5.0/doc/salome/gui/static/footer.html000077500000000000000000000005221177004724000225500ustar00rootroot00000000000000
Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
salome-kernel-6.5.0/doc/salome/gui/static/header.html.in000077500000000000000000000013651177004724000231150ustar00rootroot00000000000000 $title $treeview $search $mathjax
Version: @VERSION@
salome-kernel-6.5.0/doc/salome/install.dox000077500000000000000000000241431177004724000205000ustar00rootroot00000000000000/*! \page INSTALL Installation instructions NOT UP TO DATE AND INCOMPLETE DOCUMENT BUT CAN BE HELPFUL You'll find here generic instructions for installing the SALOME platform. \section Summary -# \ref S1_install -# \ref S2_install -# \ref S3_install -# \ref S4_install -# \ref S5_install -# \ref S6_install -# \ref S7_install -# \ref S8_install \section S1_install Quick Overview First of all, you have to check (or install if needed) the dependant software programs on your system. These programs are: - common development tools as gcc, automake, autoconf and libtools. - third party softwares used in %SALOME building or runtime process (python, OCC, VTK, ...) Further details can be found in sections \ref S2_install and \ref S3_install. If the dependencies are installed on your system, then you have to set your shell environment to get access to the software components (cf. \ref S4_install). The next step is to install the KERNEL (cf. \ref S5_install): \code $ mkdir $ mkdir $ cd $ ./build_configure $ cd $ /configure --prefix= $ make $ make install \endcode Then, the %SALOME components GEOM, MED, VISU, ... can be installed with a similar procedure (cf. \ref S6_install). Eventually, the platform can be run by executing the shell script %runSalome (cf. \ref S7_install). Here, somme additionnal variables have to be set to describe the %SALOME runtime configuration (_ROOT_DIR, OMNIORB_CONFIG) The following provides you with specific instructions for each step. \section S2_install System configuration %SALOME is compiled and tested on differents platforms with native packages: - Debian sarge - Mandrake 10.1 - ... If you have another platform, we suggest the following configuration for building process: - gcc-3.3.x or 3.4.x - automake-1.7 or more (only aclocal is used) - autoconf-2.59 - libtool-1.5.6 remarks: - This is the minimum level of automake, autoconf and libtool, if you need to compile all the third party softwares (included OpenCascade 5.2.x). \section S3_install Third-party dependencies The %SALOME platform relies on a set of third-party softwares. The current version depends on the following list (versions given here are from Debian Sarge, except OpenCascade, VTK and MED, which are not Debian packages): - CAS-5.2.4 OpenCascade (try binaries,a source patch is needed) - VTK-4.2.6 VTK 3D-viewer - PyQt-3.13 Python-Qt Wrapper - Python-2.3.5 Python interpreter - SWIG-1.3.24 SWIG library - boost-1_32_0 C++ library (only include templates are used) - hdf5-1.6.2 Files Database library - med-2.2.2 MED Data Format support for file records - omniORB-4.0.5 ORB used in %SALOME - qt-x11-free-3.3.3 Qt library - qwt-4.2 Graph components for Qt - sip4-4.1.1 langage binding software And, in order to build the documentation: - doxygen-1.4.2 - graphviz-2.2.1 Additionnal software may be installed for optional features: - netgen4.3 + patch - tix8.1.4 - openpbs-2.3.16 - lsf-??? To Do - Instructions for installing these software programs can be found in a special note doc/configuration_examples/install-prerequis. - Installation shell scripts are also provided. These scripts have to be adapted to your own configuration. - See doc/configuration_examples/* In the following, we assume that all the third-party softwares are installed in the same root directory, named /prerequis. Then, your file system should probably look like: \code /prerequis/Python-2.2.2 /prerequis/omniORB-3.0.5 /prerequis/qt-x11-free-3.0.5 ... \endcode \section S4_install Preparing the shell environment Some variables have to be set to get access to third-party software components (include files, executable, library, ...) during building process and runtime. The shell file prerequis.sh, embedded in the KERNEL source package, provides a template for setting those variables. In this example, all the softwares are supposed to be installed in the same root directory, named here INSTALLROOT. Copy the prerequis.sh in a working directory and adjust the settings to your own configuration. To get the shell prepared, just execute the following command in the building shell: \code $ source prerequis.sh \endcode (we assume here a ksh or bash mode) \section S5_install Installing the KERNEL component We use here the notation to specify the source directory of the KERNEL component. The shell environment is supposed to have been set (cf. \ref S4_install). Installing the KERNEL from a source package needs three directories: - the source directory, denoted here by . - the build directory, denoted by in the following. This directory can't be the same directory as . - the install directory, denoted by in the following. This directory can't be the same directory as or . The installing process is: STEP 1: preparing directories create the and the directories: \code $ mkdir $ mkdir \endcode STEP 2: build configure script go to directory and generate the "configure" script: \code $ cd $ ./build_configure \endcode If it doesn't work, check your system automake tools as specified in section \ref S2_install. STEP 3: configure the building process go to the build directory and execute the configuration process: \code $ cd $ /configure --prefix= \endcode Note that must be an absolute path. When the configure process is complete, check the status of third-party softwares detection. You should have a status like: \code --------------------------------------------- Summary --------------------------------------------- Configure cc : yes boost : yes lex_yacc : yes python : yes swig : yes threads : yes OpenGL : yes qt : yes vtk : yes hdf5 : yes med2 : yes omniORB : yes occ : yes sip : yes pyqt : yes qwt : yes doxygen : yes graphviz : no openpbs : no lsf : no Default ORB : omniORB ---------------------------------------------- \endcode If a software get a status "no", then it's not "seen" in the system: - the software is not installed, or - the shell environment is not set correctly. In this example, the software programs graphviz, openpbs and lsf are not installed (optional for most usages). STEP 4 : Building the binary files Execute make in the directory: \code $ make \endcode STEP 5: Installing binary files, scripts and documentation Execute install target in the directory: \code $ make install \endcode \section S6_install Installing the SALOME components Installing a component is done by following the same instructions as given for the KERNEL, replacing KERNEL by (build_configure, configure, make, make install). You just have to be aware of the dependencies between components: - MED depends on KERNEL - GEOM depends on KERNEL - SMESH depends on KERNEL, MED, GEOM - VISU depends on KERNEL, MED - YACS depends on KERNEL For example, installing the component SMESH needs the previous installation of the KERNEL component, and then the GEOM and MED components. The building process uses the variables _ROOT_DIR to localize the dependant components. The variables must be set to the install path directory of the components (ex: KERNEL_ROOT_DIR=). In the above example, the three variables KERNEL_ROOT_DIR, GEOM_ROOT_DIR and MED_ROOT_DIR have to be set before configuring the building process of the SMESH component (STEP 3). \section S7_install Runtime See \ref SALOME_Application to define your own configuration of %SALOME and run it on one or several computers. This is the recommended way of configuration. The following explains the general principles. To run the %SALOME platform, the procedure is: - set the shell environment to get access to third-party softwares: \code $ source prerequis.sh \endcode - define the %SALOME configuration by setting the whole set of variables _ROOT_DIR. Here, you just have to set the kernel and the components you need: \code $ export KERNEL_ROOT_DIR= $ export MED_ROOT_DIR= $ ... \endcode - define the CORBA configuration file by setting the variable OMNIORB_CONFIG. This variable must be set to a writable file path. The file may be arbitrary chosen and doesn't need to exist before running. We suggest: \code $ export OMNIORB_CONFIG=$HOME/.omniORB.cfg \endcode - run the %SALOME platform by executing the script %runSalome: \code $KERNEL_ROOT_DIR/bin/salome/runSalome \endcode \section S8_install Suggestions and advices For convenience or customization, we suggest the following organisation: - choose and create a root directory for the %SALOME platform, say . - install the third-party softwares in a sub-directory "prerequis" - install the %SALOME components in a sub-directory "SALOME2" - make personnal copies of the files prerequis.sh and %runSalome in : \code $ cp /prerequis.sh /. $ cp /bin/salome/runSalome /. \endcode Edit the file prerequis.sh and adjust it to your own configuration. - define the SALOME2 configuration\n This step consists in setting the KERNEL_ROOT_DIR, the whole set of variables _ROOT_DIR you need, and the OMNIORB_CONFIG variable. \n We suggest to create a shell file envSalome.sh containing those settings. Then the configuration consists in loading envSalome.sh in the runtime shell: \code $ source envSalome.sh \endcode - When installed with this file organisation, running %SALOME is done with the following shell commands: \code $ source /prerequis.sh $ source /envSalome.sh $ ./runSalome \endcode */ salome-kernel-6.5.0/doc/salome/kernel_resources.dox000077500000000000000000000316701177004724000224070ustar00rootroot00000000000000/*! \page kernel_resources Salome Kernel resources for developer This document describes the development environment for C++ and Python. Makefiles generation and usage are introduced in another document: "using the %SALOME configuration and building system environment". Development environment is intended here as: trace and debug macros usage; %SALOME exceptions usage, in C++ and Python; user CORBA exceptions usage, in C++ and Python, with and without Graphical User Interface; some general purpose services such as singleton, used for CORBA connection and disconnection. \section S2_kernel_res Trace and debug Utilities During the development process, an execution log is useful to identify problems. This log contains messages, variables values, source files names and line numbers. It is recommended to verify assertions on variables values and if necessary, to stop the execution at debug time, in order to validate all parts of code. \subsection subsection21 Two modes: debug and release The goal of debug mode is to check as many features as possible during the early stages of the development process. The purpose of the utilities provided in %SALOME is to help the developer to add detailed traces and check variables values, without writing a lot of code. When the code is assumed to be valid, the release mode optimizes execution, in terms of speed, memory, and display only user level messages. But, some informations must always be displayed in both modes: especially messages concerning environment or internal errors, with version identification. When an end user is confronted to such a message, he may refer to a configuration documentation or send the message to the people in charge of %SALOME installation, or to the development team, following the kind of error. \subsection subsection22 C++ Macros for trace and debug %SALOME provides C++ macros for trace and debug. These macros are in: \code KERNEL_SRC/src/SALOMELocalTrace/utilities.h \endcode This file must be included in C++ source. Some macros are activated only in debug mode, others are always activated. To activate the debug mode, _DEBUG_ must be defined, which is the case when %SALOME Makefiles are generated from configure, without options. When _DEBUG_ is undefined (release mode: configure --disable-debug --enable-production), the debug mode macros are defined empty (they do nothing). So, when switching from debug to release, it is possible (and recommended) to let the macro calls unchanged in the source. All the macros generate trace messages, stored in a circular buffer pool. %A separate %thread reads the messages in the buffer pool, and, depending on options given at %SALOME start, writes the messages on the standard output, a file, or send them via CORBA, in case of a multi machine configuration. Three informations are systematically added in front of the information displayed: - the %thread number from which the message come from; - the name of the source file in which the macros is set; - the line number of the source file at which the macro is set. \subsection subsection23 Macros defined in debug and release modes - INFOS_COMPILATION\n The C++ macro INFOS_COMPILATION writes on the trace buffer pool informations about the compiling process: - the name of the compiler : g++, KCC, CC, pgCC; - the date and the time of the compiling processing process. . This macro INFOS_COMPILATION does not have any argument. Moreover, it is defined in both compiling mode : _DEBUG_ and _RELEASE_.\n Example: \code #include "utilities.h" int main(int argc , char **argv) { INFOS_COMPILATION; ... } \endcode - INFOS\n In both compiling mode _DEBUG_ and _RELEASE_, The C++ macro INFOS writes on the trace buffer pool %the string which has been passed in argument by the user.\n Example: \code #include "utilities.h" int main(int argc , char **argv) { ... INFOS("NORMAL END OF THE PROCESS"); return 0; } \endcode Displays: \code main.cxx [5] : NORMAL END OF THE PROCESS \endcode - INTERRUPTION(str)\n In both compiling mode _DEBUG_ and _RELEASE_, The C++ macro INTERRUPTION writes on the trace buffer pool the %string, with a special ABORT type. When the %thread in charge of collecting messages finds this message, it terminates the application, after message treatment. - IMMEDIATE_ABORT(str)\n In both compiling mode _DEBUG_ and _RELEASE_, The C++ macro IMMEDIATE_ABORT writes the message str immediately on standard error and exits the application. Remaining messages not treated by the message collector %thread are lost. \subsection subsection24 Macros defined only in debug mode - MESSAGE(str)\n In _DEBUG_ compiling mode only, the C++ macro MESSAGE writes on the trace buffer pool the %string which has been passed in argument by the user. In _RELEASE_ compiling mode, this macro is blank.\n Example: \code #include "utilities.h" #include using namespace std; int main(int argc , char **argv) { ... const char *str = "Salome"; MESSAGE(str); ... const string st; st = "Aster"; MESSAGE(c_str(st+" and CASTEM")); return 0; } \endcode Displays: \code - Trace main.cxx [8] : Salome - Trace main.cxx [12] : Aster and CASTEM \endcode - BEGIN_OF(func_name)\n In _DEBUG_ compiling mode, The C++ macro BEGIN_OF appends the %string "Begin of " to the one passed in argument by the user and displays the result on the trace buffer pool. In _RELEASE_ compiling mode, this macro is blank.\n Example: \code #include "utilities.h" int main(int argc , char **argv) { BEGIN_OF(argv[0]); return 0; } \endcode Displays: \code - Trace main.cxx [3] : Begin of a.out \endcode - END_OF(func_name)\n In _DEBUG_ compiling mode, The C++ macro END_OF appends the %string "Normal end of " to the one passed in argument by the user and displays the result on the trace buffer pool. In _RELEASE_ compiling mode, this macro is blank.\n Example: \code #include "utilities.h" int main(int argc , char **argv) { END_OF(argv[0]); return 0; } \endcode Displays: \code - Trace main.cxx [4] : Normal end of a.out \endcode - SCRUTE(var)\n In _DEBUG_ compiling mode, The C++ macro SCRUTE displays its argument which is an application variable followed by the value of the variable. In _RELEASE_ compiling mode, this macro is blank.\n Example: \code #include "utilities.h" int main(int argc , char **argv) { const int i=999; if( i > 0 ) SCRUTE(i) ; i=i+1; return 0; } \endcode Displays: \code - Trace main.cxx [5] : i=999 \endcode - ASSERT(condition)\n In _DEBUG_ compiling mode only, The C++ macro ASSERT checks the expression passed in argument to be not NULL. If it is NULL the condition is written with the macro INTERRUPTION (see above). The process exits after trace of this last message. In _RELEASE_ compiling mode, this macro is blank. N.B. : if ASSERT is already defined, this macro is ignored.\n Example: \code #include "utilities.h" ... const char *ptrS = fonc(); ASSERT(ptrS!=NULL); cout << strlen(ptrS); float table[10]; int k; ... ASSERT(k<10); cout << table[k]; \endcode \section S3_kernel_res Exceptions \subsection subsection31 C++ exceptions: class SALOME_Exception \subsubsection subsubsection311 Definition The class SALOME_Exception provides a generic method to send a message, with optional source file name and line number. This class is intended to serve as a base class for all kinds of exceptions %SALOME code. All the exceptions derived from SALOME_Exception could be handled in a single catch, in which the message associated to the exception is displayed, or sent to a log file. The class SALOME_Exception inherits its behavior from the STL class exception. \subsubsection subsubsection312 Usage The header %SALOME/src/utils/utils_SALOME_Exception.hxx must be included in the C++ source, when raised or trapped: \code #include "utils_SALOME_Exception.hxx" \endcode The SALOME_Exception constructor is: \code SALOME_Exception( const char *text, const char *fileName=0, const unsigned int lineNumber=0 ); \endcode The exception is raised like this: \code throw SALOME_Exception("my pertinent message"); \endcode or like this: \code throw SALOME_Exception(LOCALIZED("my pertinent message")); \endcode where LOCALIZED is a macro provided with utils_SALOME_Exception.hxx which gives file name and line number. The exception is handled like this: \code try { ... } catch (const SALOME_Exception &ex) { cerr << ex.what() <CORBA servant, C++
The CORBA Server header for SALOME_Exception and a macro to throw the exception are provided with the header KERNEL_SRC/src/Utils/Utils_CorbaException.hxx: \code #include "Utils_CorbaException.hxx" \endcode The exception is raised with a macro which appends file name and line number: \code if (myStudyName.size() == 0) THROW_SALOME_CORBA_EXCEPTION("No Study Name given", SALOME::BAD_PARAM); \endcode CORBA Client, GUI Qt C++ (NO MORE AVAILABLE in %SALOME 3.x and later) The CORBA Client header for SALOME_Exception and a Qt function header that displays a message box are provided in: KERNEL_SRC/src/SALOMEGUI/SALOMEGUI_QtCatchCorbaException.hxx \code #include "SALOMEGUI_QtCatchCorbaException.hxx" \endcode %A typical exchange with a CORBA Servant will be: \code try { ... // one ore more CORBA calls } catch (const SALOME::SALOME_Exception & S_ex) { QtCatchCorbaException(S_ex); } \endcode CORBA Client, C++, without GUI Nothing specific has been provided to the developer yet. See the idl or the Qt function SALOMEGUI_QtCatchCorbaException.hxx to see how to get the information given by the exception %object. \section S4_kernel_res Miscellaneous tools \subsection subsection41 Singleton \subsubsection subsubsection411 Definition %A singleton is an application data which is created and deleted only once at the end of the application process. The C++ compiler allows the user to create a static singleton data before the first executable statement. They are deleted after the last statement execution. The SINGLETON_ template class deals with dynamic singleton. It is useful for functor objects. For example, an %object that connects the application to a system at creation and disconnects the application at deletion. \subsubsection subsubsection412 Usage To create a single instance of a POINT %object: \code # include "Utils_SINGLETON.hxx" ... POINT *ptrPoint=SINGLETON_::Instance() ; assert(ptrPoint!=NULL) ; \endcode No need to delete ptrPoint. Deletion is achieved automatically at exit. If the user tries to create more than one singleton by using the class method SINGLETON_::Instance(), the pointer is returned with the same value even if this is done in different functions (threads ?): \code POINT *p1=SINGLETON_::Instance() ; ... POINT *p2=SINGLETON_::Instance() ; assert(p1==p2) \endcode \subsubsection subsubsection413 Design description Here are the principles features of the singleton design: - the user creates an %object of class TYPE by using the class method SINGLETON_::Instance() which returns a pointer to the single %object ; - to create an %object, SINGLETON_::Instance() uses the default constructor of class TYPE ; - at the same time, this class method creates a destructor %object which is added to the generic list of destructor objects to be executed at the end of the application (atexit) ; - at the end of the application process all the deletions are performed by the Nettoyage() C function which executes the destruction objects end then deletes the destructions objects themselves ; - the Nettoyage() C function using atexit() C function is embedded in a static single %object ATEXIT_(). */ salome-kernel-6.5.0/doc/salome/kernel_salome.dox000077500000000000000000000240401177004724000216460ustar00rootroot00000000000000/*! \page kernel_salome Using salome.py module The salome.py Python module provides a set of variables and functions allowing access to different elements of the current SALOME session. This page gives a short description of most useful variables and functions. \li \b orb Reference to the CORBA::ORB instance This variable can be used to initialize different CORBA-related elements of the SALOME session (for example, naming service, etc). For example, to get an access to the SALOME naming service, you can use the following commands: \code import SALOME_NamingServicePy NS = SALOME_NamingServicePy.SALOME_NamingServicePy_i(salome.orb) \endcode The \b orb variable is also useful when it is necessary to convert CORBA reference object to its string representation (IOR) and vice versa: \code studyIOR = salome.orb.object_to_string(salome.myStudy) study = salome.orb.string_to_object(studyIOR) is_same = salome.myStudy._is_equivalent(study) # is_same = True \endcode \li \b naming_service SALOME naming service instance This variable can be used to register/find objects created in a distributed environment. For example, to get access to the SALOME Module Catalog server, use \c Resolve() method: \code import SALOME_ModuleCatalog mc = salome.naming_service.Resolve('/Kernel/ModulCatalog') \endcode Similarly, method \c Register() can be used to register objects in the naming service: \code salome.naming_service.Register(myObject,'/My/Object/Path') o = salome.naming_service.Resolve('/My/Object/Path') is_same = myObject._is_equivalent(o) # is_same = True \endcode \li \b lcc Life Cycle CORBA class instance This object can be used to get access to CORBA engine part of some SALOME module, available in the current SALOME session. The following code returns a reference to the Geometry module engine, loading it if necessary: \code import GEOM geom = salome.lcc.FindOrLoadComponent('FactoryServer', 'GEOM') \endcode \b Note, that in the above example, \e "FactoryServer" is a name of the SALOME container, where Geometry module engine should be loaded. \li \b myStudyManager Reference to the study manager SALOMEDS Study manager is used to manipulate with the studies: create, open, save, close. It also can be used to find the study by its numerical ID or name. The code below demonstrates main functionalities of a study manager: \code # create new study with the name "MyStudy" new_study = salome.myStudyManager.NewStudy("MyStudy") # open study from file /home/user/MyStudy.hdf study = salome.myStudyManager.OpenStudy("/home/user/MyStudy.hdf") # save study salome.myStudyManager.Save(study, False) # not using multifile save mode # save study in ASCII format salome.myStudyManager.SaveASCII(study, True) # using multifile save mode # save study with the new file path salome.myStudyManager.SaveAs("/home/user/MyStudy.hdf", study, False) # save study with the new file path in ASCII format salome.myStudyManager.SaveAsASCII("/home/user/MyStudy.hdf", study, False) # close study salome.myStudyManager.Close(study) # get list of all opened studies studies = salome.myStudyManager.GetOpenStudies() # find study by its numerical ID (integer value starting from 1) study = salome.myStudyManager.GetStudyByID(studyID) # find study by its name study = salome.myStudyManager.GetStudyByName("/home/user/MyStudy.hdf") # ... \endcode \li \b myStudy Reference to the current (active) study This variable can be used to manipulate with the date of the study: create data tree, assign attributes of different types to the objects in a data tree, create references between objects, etc. \b Note, that the term "active" or "current" study does not make much sense outise the GUI Python console. When working in GUI, user always deals with one only top-level study, which desktop is currently on the top if the windows stack. This is what is called \e "active study". In TUI mode (without GUI or outside GUI), user has to manipulate with studies manually; no any special control for the life cycle of the study is done. In TUI mode, \c salome.muStudy variable is an instance of the first study created when you call salome_init() function. The following code demonstrates some examples of \c salome.myStudy variable usage. For more details please refer to the SALOMEDS.idl file documentation. \code # get study name studyName = salome.myStudy._get_Name() # get study numerical ID studyID = salome.myStudy._get_StudyId() # find SALOMEDS component by its type scomponent = FindComponent("MyComponent") # find SALOMEDS component by its entry ID scomponent = FindComponentID("0:1:1") # "0:1:1" is a component ID # find SALOMEDS object by its name (first found object is returned) sobject = salome.myStudy.FindObject("MyObject") # find SALOMEDS object by its entry ID sobject = salome.myStudy.FindObjectID() # "0:1:1:1" is an object ID # find SALOMEDS object by its IOR attribute sobject = salome.myStudy.FindObjectIOR(IOR) # find SALOMEDS object by its path in the data tree sobject = salome.myStudy.FindObjectByPath("/MyComponent/MyObject/MySubObject") # get SALOMEDS object's path in a study data tree sobject_path = salome.myStudy.GetObjectPath(sobject) # get study properties prop = salome.myStudy.GetProperties() prop.GetCreationDate() # get creation date prop.IsModified() # check if study has been modified (and not yet saved) prop.SetLocked(True) # lock the study (prohibit modifications) prop.IsLocked() # check if study is locked # create objects with study builder builder = salome.myStudy.NewBuilder() # create builder comp = builder.NewComponent("MyComponent") # create a component of the "MyComponent" type attrName = builder.FindOrCreateAttribute(comp, "AttributeName") attrName.SetValue("MyComponent") # set name to the component object = builder.NewObject(comp) # create new object, a child of the component attrName = builder.FindOrCreateAttribute(object, "AttributeName") attrName.SetValue("MyObject") # set name to the object attrInt = builder.FindOrCreateAttribute(object, "AttributeInteger") attrInt.SetValue(123) # assign integer attribute to the object attrIOR = builder.FindOrCreateAttribute(object, "AttributeIOR") attrIOR.SetValue(IOR) # assign IOR attribute to the object (to point to some CORBA object) # iterate through objects of the data tree with child iterator iter = salome.myStudy.NewChildIterator(comp) # initialize from the component iter.InitEx(True) # init recursive mode while iter.More(): c = iter.Value() print c.GetID() iter.Next() pass # ... \endcode \li \b myStudyId Identifier of the current (active) study This variable contains the numerical identifier of the current (active) study. It is an equivalent of \c salome.myStudy._get_StudyId() code. \li \b myStudyName Name of the current (active) study This variable contains the name of the current (active) study. It is an equivalent of \c salome.myStudy._get_Name() code. \li \b DumpStudy() Print study contents This function prints the study data object tree to the terminal window. The output for each object includes its entry ID, name, IOR (if there is one) and referenced object ID (for references). I.e. this is the same data the user can see in the Object Browser columns. \code salome.DumpStudy(salome.myStudy) \endcode \li \b IDToSObject() Get SALOMEDS object by its entry ID. This function checks if the SObject with the specified entry ID exists in the current study and returns it. Otherwise \c None is returned. \code sobject = salome.IDToSObject("0:1:1:1") # "0:1:1:1" is an object ID \endcode Actually this function is just a shortcut to the following code: \code sobject = salome.myStudy.FindObjectID("0:1:1:1") \endcode \li \b IDToObject() Get CORBA object by its entry ID. This function checks if the SObject with the specified entry ID exists in the current study, then retrieves IOR attribute from it and, finally, if IOR is not empty, returns CORBA object corresponding to the found SObject: \code object = salome.IDToObject("0:1:1:1") # "0:1:1:1" is an object ID \endcode Actually this function is just a shortcut to the following code: \code sobject = salome.myStudy.FindObjectID("0:1:1:1") if sobject: object = sobject.GetObject() else: object = None \endcode \li \b ObjectToSObject() Get SALOMEDS object corresponding to the CORBA object. This function finds an object in the current study which corresponds to the specified CORBA object (i.e. it has IOR attribute, pointing to the CORBA object). If there is no corresponding SALOMEDS object in the study, \c None is returned: \code sobject = salome.ObjectToSObject(object) \endcode Actually this function is just a shortcut to the following code: \code ior = salome.orb.object_to_string(object) sobject = salome.myStudy.FindObjectIOR(ior) \endcode \li \b ObjectToID() Get SALOMEDS object entry ID corresponding to the CORBA object. This function finds an object in the current study which corresponds to the specified CORBA object (i.e. it has IOR attribute, pointing to the CORBA object). If the object is found, its entry ID is returned, otherwise empty string is returned: \code entry = salome.ObjectToID(object) \endcode Actually this function is just a shortcut to the following code: \code ior = salome.orb.object_to_string(object) sobject = salome.myStudy.FindObjectIOR(ior) if sobject: entry = sobject.GetID() else: entry = "" \endcode \li \b createNewStudy() Create new study This function can be used to create new SALOME study. Returns an ID of the created study. \code studyId = salome.createNewStudy() study = salome.myStudyManager.GetStudyByID(s) \endcode \li \b generateName() Generate unique name This function adds random numerical suffix to the passed string parameter ("Study" by default) and returns the resulting string: \code name_1 = salome.generateName() # name_1 is something like "Study682" name_1 = salome.generateName("Obj") # name_1 is something like "Obj32" \endcode \li \b sg SWIG interface to the SALOME GUI This variable provides an access to some GUI functions. \b Note, that this variable is only available if you use salome.py Python module within the GUI desktop (since SWIG library is linked directly to the GUI library). See GUI documentation for more information. */ salome-kernel-6.5.0/doc/salome/kernel_services.dox000077500000000000000000000275621177004724000222250ustar00rootroot00000000000000/*! \page KERNEL_Services KERNEL Services for end user (Python interface) In a %SALOME application, distributed components, servers and clients use the CORBA middleware for comunication. CORBA interfaces are defined via idl files. All the different CORBA interfaces are available for users in Python, see CORBA interfaces below. For some general purpose services, CORBA interfaces have been encapsulated in order to provide a simple interface (encapsulation is generally done in C++ classes, and a Python SWIG interface is also generated from C++, to ensure a consistent behavior between C++ modules and Python modules or user script). \section S1_kernel_ser General purpose services \subsection subsection11 SALOME services access from a Python shell See \ref SALOME_Application for detailed instructions on how to launch a Python interpreter with full access to the %SALOME environment and services. You can use the embedded Python interpreter in Graphical User Interface, or an external interpreter, with: \code ./runSession python \endcode In either cases, %SALOME services access is done with: \code import salome salome.salome_init() \endcode In the embedded interpreter, it is already done, but there is no problem to do it several times, so it is preferable to add these instructions systematically in your scripts, to allow them to work in all configurations. See \ref kernel_salome for a short description of most useful variables and functions. \subsection subsection12 Container and component instanciation See SALOME_LifeCycleCORBA for the C++ interface (Python interface obtained with SWIG is very similar). In the following example, a test component provided in KERNEL is launched in the local container, "FactoryServer", created when %SALOME starts: \code import salome salome.salome_init() import LifeCycleCORBA lcc = LifeCycleCORBA.LifeCycleCORBA() obj=lcc.FindOrLoad_Component("FactoryServer","SalomeTestComponent") import Engines comp=obj._narrow(Engines.TestComponent) comp.Coucou(1) \endcode The answer is something like: \code 'TestComponent_i : L = 1' \endcode The _narrow() instruction is not always mandatory in Python, but sometimes useful to be sure you have got the right type of %object. Here, Testcomponent interface is defined in CORBA module Engines. With this example, it works also without the _narrow() instruction: \code obj.Coucou(1) \endcode In the next example, a component instance is created in a specific Container defined by it's computer hostname and it's name. Here we use the local computer. Note that in Utils_Identity, Utils_Identity::getShortHostName() gives the short hostname of the computer, without domain suffixes, which is used in %SALOME. The container process is created here if it does not exists, and a new component instance is created: \code import salome salome.salome_init() import LifeCycleCORBA lcc = LifeCycleCORBA.LifeCycleCORBA() import Utils_Identity host = Utils_Identity.getShortHostName() import Engines params={} params['hostname']=host params['container_name']='myContainer' comp=lcc.LoadComponent(params,'SalomeTestComponent') comp.Coucou(1) \endcode If you want to get a list of containers and component instances, client %object from orbmodule provides a list: \code import orbmodule clt=orbmodule.client() clt.showNS() \endcode The list looks like: \code Logger. ContainerManager.object Containers.dir cli70ac.dir FactoryServerPy.object SuperVisionContainer.object FactoryServer.object FactoryServer.dir SalomeTestComponent_inst_1.object myContainer.object myContainer.dir SalomeTestComponent_inst_1.object SalomeTestComponent_inst_2.object Registry.object Kernel.dir ModulCatalog.object Session.object Study.dir Study2.object extStudy_1.object extStudy_2.object extStudy_3.object myStudyManager.object SalomeAppEngine.object \endcode \subsection subsection13 File transfer service See SALOME_FileTransferCORBA for the C++ interface (Python interface obtained with SWIG is very similar). The following example shows how to tranfer a file from a remote host to the client computer. Remote hostname is 'cli76cc', we would like to copy 'tkcvs_8_0_3.tar.gz' from remote to local computer. %A full pathname is required. %A container is created on remote computer if it does not exist, to handle the file transfer: \code import salome salome.salome_init() import LifeCycleCORBA remotefile="/home/prascle/tkcvs_8_0_3.tar.gz" aFileTransfer=LifeCycleCORBA.SALOME_FileTransferCORBA('cli76cc',remotefile) localFile=aFileTransfer.getLocalFile() \endcode \subsection subsection14 CORBA Naming service access See SALOME_NamingService for the C++ interface. The Python interface SALOME_NamingServicePy::SALOME_NamingServicePy_i is not yet derived from the C++ interface and offers only the most useful functions. \section S2_kernel_ser All IDL Interfaces -# Containers and component life cycle, File transfer service - Engines : engines CORBA module. - Engines::EngineComponent : generic component interface. All %SALOME components inherit this interface. - Engines::Container : host for C++ and Python components components instances - Engines::fileTransfer : agent for file transfer created by a container copy a local file to a distent client - Engines::fileRef : reference to a file, used by a container for file transfers - Engines::ContainerManager : unique instance, in charge of container creation on remote computers - Engines::MPIContainer : a parallel implementation for containers and components - Engines::MPIObject . -# Study management - SALOMEDS : SALOMEDS CORBA module - SALOMEDS.idl : \copybrief SALOMEDS.idl - SALOMEDS_Attributes.idl : \copybrief SALOMEDS_Attributes.idl . -# High speed transfer, object life cycle, exceptions, GUI interface... - SALOME : \copybrief SALOME - SALOME_Comm.idl : \copybrief SALOME_Comm.idl - SALOME_GenericObj.idl : \copybrief SALOME_GenericObj.idl - SALOME_Exception.idl : \copybrief SALOME_Exception.idl - SALOME_Session.idl : \copybrief SALOME_Session.idl . -# Miscelleanous - SALOME_ModuleCatalog : \copybrief SALOME_ModuleCatalog - SALOME_RessourcesCatalog : \copybrief SALOME_RessourcesCatalog - Registry : \copybrief Registry - SALOME_Logger : \copybrief SALOME_Logger . -# Other idl for test purposes - NSTEST : for naming service test - SALOME_TestComponent.idl : for EngineComponent test - SALOME_TestModuleCatalog : for SALOME_ModuleCatalog test - SALOME_TestMPIComponent.idl : \copybrief SALOME_TestMPIComponent.idl - TestNotif.idl : \copybrief TestNotif.idl . -# Some useful command scripts - waitNS.py : \copybrief waitNS.py - waitContainers.py : \copybrief waitContainers.py - showNS.py : \copybrief showNS.py - shutdownSalome.py : \copybrief shutdownSalome.py - killSalome.py : \copybrief killSalome.py - killSalomeWithPort.py : \copybrief killSalomeWithPort.py - appli_gen.py : \copybrief appli_gen.py . */ /** \example example1 AttributeReal interface (creations/saving/restoring) \n Methods : FindOrCreateAttribute, Value, SaveAs, SetValue, FindComponent, FindAttribute, Open */ /** \example example3 AttributeSequenceOfReal interface(creations/saving/restoring)\n AttributeSequenceOfReal : ChangeValue, Add, Value, Remove, Length\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open */ /** \example example16 Methods : GetAvailableUndos, ChangeValue, FindOrCreateAttribute, SaveAs, GetAvailableRedos, Undo, FindComponent, Redo, FindAttribute, Open, CommitCommand, NewCommand */ /** \example example17 SALOMEDS methods : RemoveAttribute, FindOrCreateAttribute, NewStudy, GetAllAttributes, NewCommand, CommitCommand, AbortCommand, NewComponent */ /** \example example18 AttributeTreeNode interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, NewObject\n Attribute methods : HasFirst, HasFather, SetPrevious, Next, InsertAfter, GetFather, HasNext, SetValue, Append, NewStudy, Label, IsRoot, Prepend, SetFather, Depth, HasPrevious */ /** \example example19 SALOMEDS methods : FindOrCreateAttribute, Save, SaveAs, Close, Open, FindComponent, FindAttribute, FindObject, LoadWith \n Attribute methods : Value, SetValue */ /** \example example20 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, NewCommand, GetProperties, Open, CommitCommand, NewBuilder\n Attribute methods : SetLocked, IsLocked, GetCreationMode, SetCreationDate, IsModified, GetUserName, Value, SetUserName, SetValue, GetCreationDate */ /** \example example23 Methods: */ /** \example example8 AttributeDrawable interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : SetDrawable, IsDrawable */ /** \example example9 AttributeSelectable interface(creations/saving/restoring)\n SALOMEDS methods: FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods: SetSelectable, IsSelectable */ /** \example example10 AttributeExpandable interface(creations/saving/restoring)\n SALOMEDS methods : SaveAs FindComponent FindAttribute Open\n Attribute methods : SetExpandable IsExpandable */ /** \example example11 Test AttributeOpened (creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : SetOpened, IsOpened */ /** \example example12 AttributeTextColor interface (creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : SetTextColor TextColor */ /** \example example13 Test AttributeTextHighlightColor interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : SetTextHighlightColor TextHighlightColor */ /** \example example14 AttributePixMap interface (creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : SetPixMap, GetPixMap */ /** \example example21 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods: GetValue, GetNbColumns, AddColumn, SetRowTitles, PutValue, GetColumn, GetColumnTitles, GetTitle, SetRow, GetRowTitles, SetColumnTitles, SetColumn, GetRow, GetNbRows, SetColumnTitle, AddRow, SetTitle, SetRowTitle */ /** \example example15 AttributeLocalID interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : Value, SetValue */ /** \example example22 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n Attribute methods : GetValue, GetNbColumns, AddColumn, SetRowTitles, PutValue, GetColumn, GetColumnTitles, GetTitle, SetRow, GetRowTitles, SetColumnTitles, SetColumn, GetRow, GetNbRows, SetColumnTitle, AddRow, SetTitle, SetRowTitle */ /** \example example4 AttributeSequenceOfInteger interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute FindComponent FindAttribute Open Add SaveAs AttributeSequenceOfInteger methods : Value, Remove, Length */ /** \example example5 AttributeName interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent FindAttribute Open\n Attribute methods : SetValue, Value */ /** \example example6 AttributeComment interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs FindComponent FindAttribute Open\n Attribute methods : Value, SetValue */ /** \example example7 AttributePersistentRef interface(creations/saving/restoring)\n SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent FindAttribute Open\n Attribute methods : SetValue, Value */ salome-kernel-6.5.0/doc/salome/kernel_services_cpphelpers.dox000077500000000000000000000034421177004724000244410ustar00rootroot00000000000000/*! \page KERNEL_Services_CppHelpers KERNEL Services helper functions for C++ programmers You'l find here a documentation for using the KernelHelper package of the KERNEL module. This package provides the programmer with helper functions to deal with the KERNEL services and the study. -# \ref S1_KSH -# \ref S2_KSH -# \ref S3_KSH \section S1_KSH Quick Overview When developing a SALOME application, programmers often have to deal with fundamentals objects as the %NamingService, the %LifeCycleCorba, the %ResourcesManager and the %SalomeLauncher and have to manage the data in a %Study object. This documentation illustrates how to use these objects in standard C++ use cases and with the helper functions of the KernelHelper package of the KERNEL module. The KernelHelper package should be used by end user programmers, i.e. programmers that don't need the complexity of the complete KERNEL API, typically when developing a SALOME module for a domain specific application. For illustration of this short introduction, the code below creates an executable binary program that calls the SalomeTestComponent using the LifeCycleCorba and requests the Coucou service of this component (the test component is included in the KERNEL module): \code #include "SALOME_KernelServices.hxx" #include "Basics_Utils.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_TestComponent) void main (int argc, char * argv[]) { Engines::EngineComponent_var component = KERNEL::getLifeCycleCORBA()->FindOrLoad_Component( "FactoryServer","SalomeTestComponent" ); Engines::TestComponent_var engine = Engines::TestComponent::_narrow(component); STDLOG(engine->Coucou(123.)); } \endcode \section S2_KSH Usage of the SALOME_KernelServices TO WRITE \section S3_KSH Usage of the SALOME_StudyEditor TO WRITE */ salome-kernel-6.5.0/doc/salome/main.dox000077500000000000000000000061131177004724000177530ustar00rootroot00000000000000/*! \mainpage SALOME KERNEL Reference Documentation \image html icon_about.png Welcome to the %SALOME KERNEL documentation ! Following your kind of usage of %SALOME, you will find some specific introductory documentation, listed below. \section S2_main End user -# How to configure a %SALOME application\n The end user may have to configure his own %SALOME application by selection of a subset of availables %SALOME modules. He also may want to install his application on several computers. See \subpage SALOME_Application to define your own configuration of %SALOME and run it on one or several computers. This is the recommended way of configuration. -# How to launch %SALOME in a %SALOME application\n See \ref SALOME_Application. -# How to use KERNEL services in Python scripts\n The %SALOME KERNEL offers a list of services available in Python. See \subpage KERNEL_Services. -# How to use KERNEL services from a C++ context\n The %SALOME KERNEL provides you with helper functions to manipulate the %SALOME KERNEL services from a C++ programming context. See \subpage KERNEL_Services_CppHelpers. \section S3_main Application Integrator Applications integrators are in charge of configuration and installation of specific %SALOME applications over a local network. Application Integrators built %SALOME modules binaries from sources tarballs. -# How to install %SALOME\n See \subpage INSTALL for general information on required configuration and prerequisites, compilation procedure, setting environment principles. -# How to configure a %SALOME application\n See \ref SALOME_Application to define your own configuration of %SALOME and run it on one or several computers. This is the recommended way of configuration. \section S4_main Module maintainer Module maintainers are in charge of the development and debug of the %SALOME modules. Each %SALOME module is stored in a CVS base. CVS bases are organised in separate branches for developments and debug. All official or development releases are identified by a CVS tag. -# Source code structuration and Unit Tests\n See \subpage UnitTests for general information on code directories structure, unit tests associated to the different kind of classes, and how to run the unit tests. -# Some development utilities \n See \subpage kernel_resources for information on basic utilities for C++ and Python development, like trace and debug, exceptions, singleton. \section S5_main SALOME programming model You will find in the next pages informations about specific points of %SALOME Kernel : - \subpage kernel_salome - \subpage dsc_page : DSC documentation page. - \subpage salome_file_page : Salome_file documentation page. - Documentation of the KERNEL python package : The package salome.kernel provides logging tools, high-level functions to handle items in Salome study, and other utilities. */ salome-kernel-6.5.0/doc/salome/salome_application.dox000077500000000000000000000255531177004724000227030ustar00rootroot00000000000000/*! \page SALOME_Application Salome Application Concept The following explains how to configure your own application with your list of modules, how to define and run this application on one or more computers. \section S1_sal_appl General principles %A %SALOME application is defined by a set of modules (GEOM, SMESH, ASTER...). %A %SALOME application lives in an application directory. %A %SALOME application is a virtual installation of %SALOME in the application directory (bin, lib, doc, share...), with, for each file (executable, script, data, library, resources...), symbolic links to the actual files. %A %SALOME User can define several %SALOME Applications. These applications are runnable from the same user account. These applications may share the same KERNEL and modules. Thus, the application configuration is independant of KERNEL and must not be put in KERNEL_ROOT_DIR. Furthermore, prerequisites may not be the same on all the applications. %A %SALOME Session can run on a several computers. Binary modules and prerequisites are installed on the different computers. There is no need to have all the modules on each computer (the minimum is KERNEL). There is no need of standardization or centralised information on the details of configuration on each computer (PATH, LD_LIBRARY_PATH, environment variables) provided the application modules are version - compatible. Details of configuration stay private to the computer, and are held by scripts on each computer. There is no hierarchy between the computers (for example only one master computer used to launch application). The %SALOME user has an account on all the computers. Access between account@computer is via rsh or ssh and must be configured for use without password (key exchange for ssh). Account may be different on each computer. \section S2_sal_appl Application Directory First, the user must create a %SALOME application configuration file by modifying a copy of ${KERNEL_ROOT_DIR}/bin/salome/config_appli.xml. The file describes the list of %SALOME modules used in the application, with their respective installation path. The configuration file also defines the path of an existing script which sets the %SALOME prerequisites (tag "prerequisites"), and optionally, the path of samples directory (SAMPLES_SRC) (tag "samples") and the path of a catalog of resources (tag "resources"). The following command: \code python /bin/salome/appli_gen.py --prefix= --config= \endcode creates a %SALOME application in the application directory given by the prefix option (local directory by default) with the configuration file given by the config option (config_appli.xml by default). Providing an existing script for %SALOME prerequisites (the same one used for modules compilation, or given with the modules installation), the installation works without further modification for a single computer (unless some modules needs a special environment not defined in the above script). For a distributed application (several computers), one must copy and adapt CatalogResources.xml from ${KERNEL_ROOT_DIR}/bin/salome/appliskel (see below). \section S3_sal_appl General rules The application directory must be created on each computer of the application. The easiest way is to use the same relative path (to ${HOME}) on each computer. (Sometimes it is not possible to use the same path everywhere, for instance when ${HOME} is shared with NFS, so it is possible to define different path following the computers). The application directory contains scripts for environment and runs. Environment scripts must be configured (by the user) on each computer. All the environment scripts are in the env.d subdirectory. The script envd sources \b all the files (*.sh) in subdirectory env.d in alphanumeric order (after edition, think to remove backup files). The envd script is used by run scripts.
  1. env.d scripts env.d scripts are built automatically. You can add your own environment scripts in env.d subdirectory, they will be sourced as the generated ones provided they have a .sh extension.
  2. User run scripts The %SALOME user can use 4 scripts: - runAppli\n Launches a %SALOME Session (similar to ${KERNEL_ROOT_DIR}/bin/salome/runSalome but with a different name to avoid confusions). See parameters below. - runSession\n Launches a shell script in the %SALOME application environment, with access to the current (last launched) %SALOME session (naming service), if any. Without arguments, the script is interactive. With arguments, the script executes the command in the %SALOME application environment. - runConsole\n Gives a python console connected to the current %SALOME Session. It is also possible to use runSession, then python. - runTests\n Similar to runSession, used for unit testing, but runSession tries to use an already existing naming service definition from a running session (hostname and port number), and runTests defines a new configuration for naming service (new port number).
  3. %SALOME internal run scripts - envd\n Sets %SALOME application environment, envd is sourced by other scripts. For remote calls, %SALOME uses one script. - runRemote.sh\n This script is mainly used to launch containers. The first 3 arguments define the hostname and port userd for naming service, plus a working directory, the remaining arguments define the command to execute.
  4. Other configuration files - SALOMEApp.xml\n This file is similar to the default given in ${GUI_ROOT_DIR}/share/SALOME/resources/gui - CatalogRessources.xml\n This file describes all the computers the application can use. The given example is minimal and suppose application directory is the same relative path to ${HOME}, on all the computers. %A different directory can be set on a particular computer with a line: \code appliPath="my/specific/path/on/this/computer" \endcode
\section S4_sal_appl Examples of use
  1. Launch a %SALOME session with a GUI interface Launch is done with a command like: \code ./runAppli --logger \endcode The --logger option means here : collect all the traces from the all the distributed process, via CORBA, in a single file : logger.log. There are a lot of options, a complete list is given by: \code ./runAppli --help \endcode Note that, without argument, runAppli is a non interactive Python application, and, with arguments, runAppli is an interactive Python interpreter. Several options are already defined by default in SALOMEApp.xml files. Optional arguments given in the command override the SALOMEApp.xml configuration. Several sessions can run simultaneously, each session use a different port for CORBA naming service, so the sessions are totally separated from each other. When the GUI is closed, the different %SALOME servers are still running.
  2. Close a %SALOME session, kill all the servers Inside the interactive python interpreter you get when you use runAppli with arguments, you can kill all the servers of your session with: \code >>> killLocalPort() \endcode or the servers of all the sessions with: \code >>> killAllPorts() \endcode If you have no active Python interpreter connected to your session, you can kill all the %SALOME servers of all the sessions on a given computer: \code ./runSession killSalome.py \endcode Remember! it's the same idea in Windows (R) operating system (Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries) : use the start menu to stop... When you use only one session at a time, you don't need more. To kill a given session (when several session are running), one needs the naming service port number: \code ./runSession killSalomeWithPort 2810 \endcode Note that the port number of the last launched session can be found on Linux, in the prompt, within a runSession shell (see below). It is also possible to get the Naming Service host and port number of the last launched session with: \code ./runSession NSparam.py \endcode
  3. Launch a %SALOME session without GUI interface This is used to launch a %SALOME Python script without GUI (no GUI %server = SALOME_session_server) Example of script (test_session_geom.py): \code import salome_session salome_session.startSession(modules=["GEOM"]) import GEOM_usinggeom raw_input("Press a key and the servers will be killed ...") \endcode This script is run in a non interactive way with: \code ./runSession python test_session_geom.py \endcode All the process are automatically killed when Python is closed (with SALOME_session delete).
  4. Add an external Python interpretor to a running session It's often easier to develop and try Python scripts outside the GUI embedded Python interpreter. Imagine, for instance, you are writing a script involving geometry and mesh modules. first, launch a %SALOME session with gui, then, on another terminal: \code ./runSession python \endcode Import salome module. salome_init() without arguments creates a new study in the running session (note: salome_init(n) attachs to a running session whose studyId is n): \code import salome salome.salome_init() \endcode An example of script given with SMESH: \code import ex01_cube2build \endcode It is possible to connect the GUI interface to the study created in the above script with the file/connect menu, then browse study and display objects. Further modifications on study can be done either with GUI or external script (use refresh popup in GUI %object browser to see study modifications generated by the external script). AVOID modifications with GUI when a Python script is running. Not all the modules are protected against concurrent actions...
  5. Different uses of the runSession shell interpreter runSession invoked without arguments gives an interactive shell with the full environment of %SALOME (PATH, LD_LIBRARY_PATH, PYTHONPATH, other variables). If there are running sessions of the same %SALOME application, runSession connects to the last launched session (i.e. gets the naming service references of the session: hostname and port) On Linux, the shell prompt (bash) gives information on naming service references, hostname and port: \code [NS=cli76cc:2811]prascle@cli76cc:~/SALOME2/Run/Virtual$ \endcode If there is no running session, prompt looks like: \code [NS=:]prascle@cli76cc:~/SALOME2/Run/Virtual$ \endcode runSession is useful to launch any script or program which needs the complete %SALOME environment, with or without a session already running. For instance, to launch the ddd debugger interface on the gui %server, first launch a %SALOME session with gui, then, on another terminal: \code ./runSession ddd \endcode Then attach to the running SALOME_Session_Server process.
*/ salome-kernel-6.5.0/doc/salome/salome_file.dox000077500000000000000000000071551177004724000213150ustar00rootroot00000000000000/*! \page salome_file_page Salome_file This page introduces the Salome_file feature. Salome_file is based on the SALOME_FileTransfer. It extends it to enable a higher model for managing files into %SALOME applications. \section S1_Salome_file Principles Salome_file is a CORBA %object. It's role is to managed many system files. When a Salome_file is created, no files are managed. Then, files are added using Salome_file_i interface. %A file is represented by a name and a path. There is two different cases when a file is added : - Local file : the file added exists or it will be created by the user with the path and the name used in its registration. - Distributed file : the file added exists into a distributed localization. To be able to get a distributed file, the Salome_file has to be connected with an another Salome_file that managed this file. This distributed Salome_file could be located into a distributed resource. \section S2_Salome_file Simple example This section shows a simple example of the use of Salome_file. The objective is to create two Salome_file; one is managing a local file, the other is managing a distributed file. Then, these Salome_files are connected to enable the copy of the real file gbetween the two Salome_files. Firstly, two Salome_files are created : \code #include "Salome_file_i.hxx" int main (int argc, char * argv[]) { Salome_file_i file_source; Salome_file_i file_dest; \endcode Secondly, the real files are registered into the Salome_files. \code file_source.setLocalFile("/bin/cat"); file_dest.setDistributedFile("/tmp/cat_copy"); \endcode Thirdly, we connect the destination file with the source file : \code file_dest.connect(file_source); \endcode Finally, the file is sended using Salome_file interface. \code file_dest.recvFiles(); // Status check state = file_dest.getSalome_fileState(); print_state(state); // You have to implement this function. }; \endcode \section S3_Salome_file Advanced example This advanced example illustrates a part of the Salome_file API dedicated for situations where multiple files are managed. This is the situation : \code #include "Salome_file_i.hxx" int main (int argc, char * argv[]) { Salome_file_i file_source_a; Salome_file_i file_source_b; Salome_file_i file_dest; file_source_a.setLocalFile("/bin/cat"); file_source_a.setLocalFile("/bin/ls"); file_source_b.setLocalFile("/bin/echo"); file_source_b.setLocalFile("/bin/cp"); file_dest.setDistributedFile("/tmp/cat_copy"); file_dest.setDistributedFile("/tmp/echo_copy"); \endcode There is two problems in this case. The first problem is in the file_dest Salome_file, there is two files. If the method connect is used, the Salome_file cannot know if the reference is for cat_copy or echo_copy. Indeed echo_copy could be provided by another Salome_file that for cat_copy. The second problem comes from the two files of file_source_a Salome_file. Indeed when connect is used, there is no information about the choice of the source file into the source Salome_file. For cat_copy, did the used want cat or echo ? To avoid these cases, Salome_file API provides advanced methods : \code file_dest.connectDistributedFile("cat_copy", file_source_a); file_dest.setDistributedSourceFile("cat_copy", "cat"); file_dest.connectDistributedFile("cat_echo", file_source_b); file_dest.setDistributedSourceFile("cat_echo", "echo"); file_dest.recvFiles(); // Status check state = file_dest.getSalome_fileState(); print_state(state); // You have to implement this function. }; \endcode */ salome-kernel-6.5.0/doc/salome/tui/000077500000000000000000000000001177004724000171105ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/tui/Makefile.am000077500000000000000000000036531177004724000211560ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Paul RASCLE (EDF) # Date : 16/02/2006 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/doc/salome/tui/Makefile.am,v 1.8.2.2.22.3.2.2 2012-04-18 08:01:12 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am EXTRA_DIST = images input static/footer.html static/doxygen.css tuidocdir = $(docdir)/tui/KERNEL tuidoc_DATA = images/head.png dev_docs: $(DOXYGEN) -u doxyfile; \ $(DOXYGEN) doxyfile clean-local: -rm -fr KERNEL log.txt doxyfile.bak install-data-local: if test -d KERNEL; then \ $(INSTALL) -d $(DESTDIR)$(docdir)/tui ; \ cp -rp KERNEL $(DESTDIR)$(docdir)/tui ; \ fi; uninstall-local: @test -d $(DESTDIR)$(tuidocdir) && chmod -R +w $(DESTDIR)$(tuidocdir) ; \ for filen in `find $(DESTDIR)$(tuidocdir) -mindepth 1 -maxdepth 1` dummy ; do \ case $${filen} in \ dummy ) ;; \ $(DESTDIR)$(tuidocdir)/docutils ) ;; \ $(DESTDIR)$(tuidocdir)/head.png ) ;; \ * ) echo "removing $${filen}" && rm -rf $${filen} ;; \ esac ; \ done salome-kernel-6.5.0/doc/salome/tui/Makefile.in000077500000000000000000000537321177004724000211720ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/doxyfile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = doc/salome/tui ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = doxyfile CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(tuidocdir)" DATA = $(tuidoc_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # -* Makefile *- # Author : Paul RASCLE (EDF) # Date : 16/02/2006 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/doc/salome/tui/Makefile.am,v 1.8.2.2.22.3.2.2 2012-04-18 08:01:12 vsr Exp $ # EXTRA_DIST = images input static/footer.html static/doxygen.css tuidocdir = $(docdir)/tui/KERNEL tuidoc_DATA = images/head.png all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/salome/tui/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/salome/tui/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): doxyfile: $(top_builddir)/config.status $(srcdir)/doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tuidocDATA: $(tuidoc_DATA) @$(NORMAL_INSTALL) test -z "$(tuidocdir)" || $(MKDIR_P) "$(DESTDIR)$(tuidocdir)" @list='$(tuidoc_DATA)'; test -n "$(tuidocdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(tuidocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(tuidocdir)" || exit $$?; \ done uninstall-tuidocDATA: @$(NORMAL_UNINSTALL) @list='$(tuidoc_DATA)'; test -n "$(tuidocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(tuidocdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(tuidocdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(tuidocdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-tuidocDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local uninstall-tuidocDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip install-tuidocDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-local uninstall-tuidocDATA dev_docs: $(DOXYGEN) -u doxyfile; \ $(DOXYGEN) doxyfile clean-local: -rm -fr KERNEL log.txt doxyfile.bak install-data-local: if test -d KERNEL; then \ $(INSTALL) -d $(DESTDIR)$(docdir)/tui ; \ cp -rp KERNEL $(DESTDIR)$(docdir)/tui ; \ fi; uninstall-local: @test -d $(DESTDIR)$(tuidocdir) && chmod -R +w $(DESTDIR)$(tuidocdir) ; \ for filen in `find $(DESTDIR)$(tuidocdir) -mindepth 1 -maxdepth 1` dummy ; do \ case $${filen} in \ dummy ) ;; \ $(DESTDIR)$(tuidocdir)/docutils ) ;; \ $(DESTDIR)$(tuidocdir)/head.png ) ;; \ * ) echo "removing $${filen}" && rm -rf $${filen} ;; \ esac ; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/doc/salome/tui/doxyfile.in000077500000000000000000000207401177004724000212710ustar00rootroot00000000000000# Doxyfile 1.4.6 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "SALOME KERNEL Developer" PROJECT_NUMBER = OUTPUT_DIRECTORY = KERNEL CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = NO ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = YES FULL_PATH_NAMES = YES STRIP_FROM_PATH = @top_builddir@ @top_srcdir@ STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 5 ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = @DOXYGEN_SUPPORT_STL@ DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = YES EXTRACT_PRIVATE = YES EXTRACT_STATIC = YES EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = YES HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = YES GENERATE_TODOLIST = NO GENERATE_TESTLIST = NO GENERATE_BUGLIST = NO GENERATE_DEPRECATEDLIST= NO ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 25 SHOW_USED_FILES = NO SHOW_DIRECTORIES = NO FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = log.txt #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = \ @top_srcdir@/src/DSC \ @srcdir@/input FILE_PATTERNS = *.dox *.idl *.cxx *.hxx *.h *.hh *.i *c *.cc @DOXYGEN_PYTHON_EXTENSION@ RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = NO REFERENCES_RELATION = YES USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 3 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = . HTML_FILE_EXTENSION = .html HTML_HEADER = @builddir@/static/header.html HTML_FOOTER = @srcdir@/static/footer.html HTML_STYLESHEET = @srcdir@/static/doxygen.css HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = YES TOC_EXPAND = YES DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = NO #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = NO UML_LOOK = YES TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png DOT_FONTNAME = Arial DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1200 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = NO DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO salome-kernel-6.5.0/doc/salome/tui/images/000077500000000000000000000000001177004724000203555ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/tui/images/head.png000077500000000000000000002313211177004724000217710ustar00rootroot00000000000000‰PNG  IHDRèP°È6 pHYs  šœ 9iCCPPhotoshop ICC profilexÚ–wTTׇϽwz¡Í0R†Þ»ÀÒ{“^Ea˜`(34±!¢EDš"HPÄ€ÑP$VD±T°$(1ET,oFÖ‹®¬¼÷òòûã¬oí³÷¹ûì½ÏZ’§/——KÊðƒ<œé‘Qtì€`€)LVFº_°{ÉËÍ…ž!r_ðzX¼pÓÐ3€NÿŸ¤Yé|蘛³9,ˆ8%K.¶ÏŠ˜—,f%f¾(Aˉ9a‘ >û,²£˜Ù©<¶ˆÅ9§³SÙbîñ¶L!GĈ¯ˆ 3¹œ,ß±FŠ0•+â7âØT3IlpX‰"61‰ä"âåàH _qÜW,àd Ä—rIKÏást–.ÝÔÚšA÷äd¥pÃ&+™ÉgÓ]ÒRÓ™¼ïüY2âÚÒEE¶4µ¶´4432ýªPÿuóoJÜÛEzø¹g­ÿ‹í¯üÒ`̉j³ó‹-® €Î-ÈÝûbÓ8€¤¨o׿ºMîòÐ]9ñLaŠ€.®+-%Mȧg¤3YºáŸ‡øþuAœxŸÃE„‰¦ŒËKµ›Çæ ¸i<:—÷ŸšøÃþ¤Å¹‰ÒøPcŒ€Ôu*@~í(  ÑûÅ]ÿ£o¾ø0 ~yá*“‹sÿï7ýgÁ¥â%ƒ›ð9Î%(„Îò3÷ÄÏ H*Ê@èC`¬€-pnÀøƒ VH©€²@Ø A1Ø ö€jPA3hÇA'8΃Kà¸nƒû`L€g`¼ a!2Dä!HÒ‡Ì d¹A¾P ÅB ByÐf¨*ƒª¡z¨ú: ‡®@ƒÐ]h š†~‡ÞÁL‚©°¬Ã Ø öCàUp¼Î… àp%Ü…;àóð5ø6< ?ƒç€¢Š" ÄñG¢x„¬GŠ ¤iEº‘>ä&2ŠÌ oQEG¢lQž¨P µµU‚ªFFu zQ7Qc¨YÔG4­ˆÖGÛ ½Ðètº]nB·£/¢o£'Я1 £±Âxb"1I˜µ˜Ì>Læf3Ž™Ãb±òX}¬ÖËÄ °…Ø*ìQìYìvûGÄ©àÌpî¸(—«ÀÁÁ á&q x)¼&Þïgãsð¥øF|7þ:~¿@&hì!„$Â&B%¡•p‘ð€ð’H$ª­‰D.q#±’xŒx™8F|K’!é‘\HÑ$!iééé.é%™LÖ";’£Èòr3ùùùEÂHÂK‚-±A¢F¢CbHâ¹$^RSÒIrµd®d…ä Éë’3Rx)-))¦Ôz©©“R#RsÒiSiéTéé#ÒW¤§d°2Z2n2l™™ƒ2dÆ)EâBaQ6S))T U›êEM¢S¿£Pgeed—ɆÉfËÖÈž–¥!4-š-…VJ;N¦½[¢´Äi gÉö%­K†–ÌË-•s”ãÈɵÉÝ–{'O—w“O–ß%ß)ÿP¥ §¨¥°_á¢ÂÌRêRÛ¥¬¥EK/½§+ê))®U<¨Ø¯8§¤¬ä¡”®T¥tAiF™¦ì¨œ¤\®|FyZ…¢b¯ÂU)W9«ò”.Kw¢§Ð+é½ôYUEUOU¡j½ê€ê‚š¶Z¨Z¾Z›ÚCu‚:C=^½\½G}VCEÃO#O£Eãž&^“¡™¨¹W³Os^K[+\k«V§Ö”¶œ¶—v®v‹ö²ŽƒÎ[º]†n²î>Ýz°ž…^¢^Þu}XßRŸ«¿OÐm`mÀ3h01$:f¶ŽÑŒ|ò:žkGï2î3þhba’bÒhrßTÆÔÛ4ß´Ûôw3=3–YÙ-s²¹»ùó.óËô—q–í_vÇ‚bág±Õ¢Ç⃥•%ß²ÕrÚJÃ*ÖªÖj„Ae0J—­ÑÖÎÖ¬OY¿µ±´Ø·ùÍÖÐ6ÙöˆíÔríåœåËÇíÔì˜võv£ötûXûö£ªL‡‡ÇŽêŽlÇ&ÇI']§$§£NÏMœùÎíÎó.6.ë\ι"®®E®n2n¡nÕnÜÕÜÜ[Üg=,<ÖzœóD{úxîòñRòby5{Íz[y¯óîõ!ùûTû<öÕóåûvûÁ~Þ~»ý¬Ð\Á[Ñéü½üwû? ÐXðc &0 °&ðIiP^P_0%8&øHðëçÒû¡:¡ÂО0É°è°æ°ùp×ð²ðÑãˆu×""¹‘]Qب°¨¦¨¹•n+÷¬œˆ¶ˆ.Œ^¥½*{Õ•Õ «SVŸŽ‘ŒaÆœˆEdžÇ‰}Ïôg60çâ¼âjãfY.¬½¬glGv9{šcÇ)ãLÆÛÅ—ÅO%Ø%ìN˜NtH¬Hœáºp«¹/’<“ê’æ“ý“%J OiKťƦžäÉð’y½iÊiÙiƒéúé…é£klÖìY3Ë÷á7e@«2ºTÑÏT¿PG¸E8–iŸY“ù&+,ëD¶t6/»?G/g{Îd®{î·kQkYk{òTó6å­sZW¿Z·¾gƒú†‚ =6ÞDØ”¼é§|“ü²üW›Ã7w(l,ßâ±¥¥P¢_8²ÕvkÝ6Ô6î¶íæÛ«¶,b]-6)®(~_Â*¹úé7•ß|Ú¿c Ô²tÿNÌNÞÎá]»—I—å–ïöÛÝQN//*µ'fÏ•Šeu{ {…{G+}+»ª4ªvV½¯N¬¾]ã\ÓV«X»½v~{ßÐ~Çý­uJuÅuïpÜ©÷¨ïhÐj¨8ˆ9˜yðIcXcß·Œo››šŠ›>â=t¸·Ùª¹ùˆâ‘Ò¸EØ2}4úèï\¿ëj5l­o£µDŽǞ~ûýðqŸã=''ZÐü¡¶Ò^ÔuätÌv&vŽvEv žô>ÙÓmÛÝþ£Ñ‡N©žª9-{ºô áLÁ™OgsÏÎK?7s>áüxOLÏý nõö\ô¹xù’û¥ }N}g/Û]>uÅæÊÉ«Œ«×,¯uô[ô·ÿdñSû€å@Çu«ë]7¬ot.<3ä0tþ¦ëÍK·¼n]»½âöàpèð‘è‘Ñ;ì;SwS—yoáþÆèE¥VÈ‹n€…©^ÀÑ<Åí’jq¡øa~4J8N°ŠGÙŠF0aH·ˆV¡‡ š™ + Iä*#×;"Nr<¡ÍÒšÚŒ1‹!.HÆ÷¾ë4¾‡.‰t˜és2š’=S‡ª>£„ùà̵©nÓó{({6f¡™mÉbƒ˜99 xyîrê¼/SÀSÉeÌ÷dcºRâ• ÓÀ‰t˜l<•AS`÷Ëbó¿Éxÿ¸g D”Ñ•ÄQ#§btþõ”Gx8¾sÖÙ™x`ÁgÖ˜ú’êÿ ü4UósŽWÏl¤‡)9‰·ôºtyš÷!jš_yï2_v[´îh9„Ò`p­)Ëᄎþ䢦~t/^¾ù㯶 B ±–9§ë”Ú³1±Ÿœ…iòâÏy1)q™ÆEÃŒBÃh5”ÁHºi‘wÆ7…}üùƒG—uaÀÅÿôË+çØƒXˆÀÇÊþ°Ì[j«ë¬ûk¬ií®y(2Ö†áÉ3H(ø)ð¬Oßù@ŠÑ‹0‘‹@™VlN‡ !õ @tFJKfË: \"y”ð¤‹I@¾½¹z´)‚_¡ÏgªKùñùŸmGí¶Ì;‚ t%]…>Ð ”ô6‰‹zóÙÅã/6 áƒM¥#!¦€Vnp]+ë±ÝvTž×›#ë´÷Ò °eu]¡ú¿;)É\U¤:êüøº…ž¥"ó°‚Æ†–:м¬`cƒçƒŽoÍÝ€…a«1 qR"ºâQ6×+s³±e}Õ€¾ìøç7þí–o[y׋⹨Íõj ¹%M)›J…‹[çU %AUÆð§ˆ¨§êÿH*lu¸ø®÷ÿöþ®Ó§\@H h×öÜ·N©u[a¯ÞhnôÚáWµ­š2´zc,Ù Uu@I' >ùiýÍeS[{Û»ÒÝVm9q…ÎÊt]Q'¼©­©Š¢)Wu¹.Ío·þYÛ5%)½~ôïºÁ ìÞö_SqUŠ±Åª±«‡ëuU«êúú_õÃÓçäœwƒáø K®0±*È Áï}ü¨ôေ‚êøèUF±yfõFãUa¢ï]ïÆ˜å’ÒWõ[G7Z*]Ý[x1ƒǑӚº”s z 9>J* ö¹È‘ö”z¼ûÌŠõ£b"xuÍÃìkæ°éHÒ<ѰbÆ«mÃ@—d;]›¤´a”±Á`0{ÿWØ{Ñ–’uIšØwûî$+²åÄi©q©kKîéî|÷ûä|í–‰r'ÂP\~½™UiA+KVU°Ú’Ò H©ðÖmÉ|¾š2ASÊäô‚(M§4=:b²<¬£¤£5®žIV¢ÀgÒIÀÐ’3`T œVåõ¹Q@´–m$3v¹´­ÁfònëTQÈ ¦°W ò^¼É0–AVÉÖ˜™ÆºëÆâ1½¿Á‡æ‡2^<ôRR"¢TJ±J2± 0çÄí¦„OYÜ*ÊÅÚ6lb,F åÊ‹D5ÁZ2äC®¡^œiXâ6Ǧ†ë§D»Í¿º¹]­· ôL±¶övµý³Ü@àâïzw÷¸»_ÒÃ?5˜E¿îW¿–óR7ŒÜ‚Æà³ÊÎßàÒÒ®Ù6$?²ÏˆU“’Wdª²ÂRÅ-XD‚©i‘@@˜‚ú «ß©æîžõZ…Éê6Q\âGA¶»y!ï!unØ.•äwÂÍn¿©Ý†Ä;¨'”EuÆê7b4õô5ëxüz[EP&ÿ`ÕÜvÛ†a0,J²ãdmµØ†»èÍ.÷þO°gØÝ6 V`G,ÝœÔ5‘”d×§C‘› ±J¢¨ÿÿëÓlÓõ¸ÛÏ«éA½^ÃÉ’óxBþdÂ=ßņÇGwo¤]0s»H³Ò¤¤Óã°åûÙ…›Š]`ËR8ŸùÃqðÑ6qéêQ°¬žåuRèL´F¸7=m ýi»xk˜èÜ5ƒÈ;Ø p8ùY;.°öñ[ˆÌPÕ¼¿?i°WvœæäûÉ'œœÌ•ÏY(GËFnR‚ÏEu²‘ø¡.ÔÏÓ“Ÿ²ç@.#K„Á–g×$‚£¹tÃáûÜ1œ¢û ž­¯É›ºëû/ÏL©–…Õ¯/7¥×j®ZDÚÞÞ\=¿Ø¾¿ýµÿ{4àœ¶€¥Ž3ªÐLÓû£î‰øÈˤºŠ Ø$>Öù}l–t à Åú’¡:Í篮ÎvÞ7ÎÙFµûÃIÅ­ÞÌòAÀö¸ü2†#¥=8 -4B`$ãÀo®/+cÞ}üv¨kÂᨣîM'2¦óòyÔK¡8{a,áÑaã‰nšëóÝöEùêÂ~¸;|ù]CiDB¢Çï÷Ç›«JÑB„°Â¨‚‚ƒí¦’Yg¶:xR²ÑÄ5uV]Bš*KÁ}¦p´U ­[p  ‘¢õ„ñï}×ÑíæŠÁ«dŠ|¾@ºôåLWQœ‡¡Ø~[)Þ%ÉRe055a{É#ˆÌÌS÷CD»tÔyä4)b"\cðƒ¤vÔ!2ÂÆüUHvÐEHg‹>Ñ|Êûn&“Ï »‚IÉHóES&ÃÏ,¾fœiíqLŠºq-k2ž‡ç;ç—Éÿ´ GîìB”?Éî%˜ð/—Ò4LRãòOv‹ŸåÉÌŸóèô\['éΈ =1)òà>„Ák?N"®`k¥l:© ¶Zö¨ôÄAû̲Cv]Ð=Ç­M´.ì·qr/Œ«dÜ.É¥œ\c¥ѼÞ8_—Mèç´ÙÆk»â>£ð¡‡.•EŒ€8ÝÝV–²R±kÈu>O%•^ ¼k{rm¥¬—H¼W<£=«U5å_·ÈÝ¥?dæÐYÛ4¨PI1&—<þ˾U$xˆ€ç þéÒ3ç‘Wf"hq XÚzÐ}ð^Y'¨JR ¼ˆ3ÁA|BU| Ù‹k©|« ùXP)¥ù§•gø÷ð•{”Àø®@ú lSƒêUW)6fW€óæ)zÂö¿(…þ˯fíÂv…P®oÚ¶í6ŽB2N…oû®iz£Îþ¡ûc«íÝCûnߨº¦)”ĆQ$)‹ÞõúýÍýK­Z »fýzS]à¢W¡ŒÒî!ÀjUV%@5 9þ§bâj“ß‚ôÅ1©%ÎÅ@Ùn âÒÕ¼¦ÔPùÂY‹P>rA̲>%t#âçIž¡ ‘k@"0"ÇL²d åÏ´õhðí#oq¢` `Ýêz›†¡¨;m·¤ ö‚WþÿA„x‰J[ƒ­«ãkî‡ã¤¶Úi}ˆÚT‰¿ísÎ=ׯæŒ6q}zX9‡ÝŸ$ntú¾0£°>“6?:5CQ'òª5Ï]¨:ÔÌ&Âô£~¯¶}ˆ„ìÞûaÊA÷t ŸEZCšÛJ`½LqÕ´Ÿ4Þ ë B ‚žÂÄS§ãñ„­Äwþ´&]uÜ>PVÃýÕ7W‰AfΤ¬£Nöeþ¨Îz,ëœcppiy/˜Ã'IÅU3ÉX®t*ë˜Q++“ÉÏÕ;'uHÕx“õí¿—:ë§æü¸‹Úf ¬”0±*õÈJ[ÍWé!Ý`(k’Ìß™QUëJ>U©+‡ìÉÄ R ƒZjýærÙÓy\SOJ„¢;onñ}÷ÎÛ†wmêHfJ"4b³PÑRÂÿ˜´q1‰¢‡€ 1,±®.H`ÇúnwîÇÝýÖ£¹—öÎÿÙÁ«59VÈ-ƒÀÎï×­¾:_üÂ?¨ß»’`˜$2£¸Pjn0=H"&P'*8Nb~]ÈtΨ ˜óa‘øðnßí±Þ$ ¤T¦[ž|à!D77öÙ÷ö{²UàM?#vg»e9‹=P8ˆ†£dFhmú8¾`NAÑSrø•pð3ýª ‘cHÞ„f•´É'-Q!åtŸ4€ÄYHÔÏw[µìr*÷Ýí”æl–¨Ã·»û…^~¸\l½Ãue˜ŸQ.BcÛÖ[eÎÏûç±÷õºsF#+CÒÉŸSdŸÂ79ç lþºOÛ¿wízõÞ¨·V¿¼h׺=SÞÒ݉‡7×,»húµÙ[|£[ˆ7·HjÄ¡À¶v±^®ÒVà ä6µ¾°FÕ#ú5¬û8ÎØ©—“±cw qªŽIŒÒFWâS „HÆè†‚»}„ÁæÎ©r«ÿ'-×¶Ü4 u$ÛÍ¥å†ÿÿ~€xc†0Ðé%™Æ¶.œ‹¬Ê¶ì¦LyKê4–%ÙgwÏnªÜƒþùqù¯ðVg xìþ6Jí°ØkŠÏ…R»ÎÞúÿËÊ3R^/ÕP§ : °2j¼EMR ä¥q(”æá7†Éb˜ÍDï$û,¦9ˆãj{¯Ã̺2ŸÒ(@–ùÒBºYŠ*Ý Cç§(€x.H0–ÉÃ%¤<»¹î«YêN•õ‰Ó&}&Á²Éæ4`Åæ¼È:&/&_û¢÷i‚.LÄHìÂÑ×v!&´H#óÜð‹Í‡|+½šu]|ΚŠ6•%8»ÔêI´!Ç 9žÎÏ’¯ìÊþ\ÚiÞòý™CØùø—E< ªŽîÄ(oŠÃ‚û~¿ýpÝ0–Ûሖ|Åq5Jëðý×}Ûö»¦r”ΕÐg†EÂOW”»(T&«‡U£  ͳ ΠÅkñsqO\øÚq^ßN‡‡§S×m«š¤kY?ˆª/DP¾yø[ÄŒP©4Àì^#§>ó¡í-þ{…`[ („Tò嘘éhç~žƒáyÍõJbzÔ»EŽäæOëßáfã~ÜM0d“f·fßÙþØ»OpÕsÖ¿ÞÀF·5úw0uô~„”.ø¸†[ǰ YÒÆŽœ<œÆS9p ¥bÍmg‘&Qú±<á:Çut“¸hm¦b‡–2ê<μ£êè#nT–ƒÂÀ1Iņø0xϵ„&¥ÌUL% o3oð­÷¢$+ÂÖ쉜ˆ}9dVäœ8 Zï-ðÇ(ŸK.}"HBrµËÖM—bëQª-f2“È>÷8K&úsð tŽŒWzXO²¶™PÞlü•KvÄ­ðõöñæêf_«FUv§Ik(¾¬ïœÕÇÎ"òÞª/?ßløüqO CC ¦Fž:,Å!V»:tNõÁîÎçë§ ûªï;h6M m­\G £Yj‡Áƒ,´},Ò5ùÀ]§„liê +ö÷# R,îueZëh‰ ÿÝ2⇸ŽÂö"cvŽ9¢Uäêm,²¼¹Í¥ã½P`Àd€sô(“Hu(!°%_qþ<ÿ++ײä4 5#çQa°Nœøÿ_árâ¶[EØ '–„¦G’)q…Z®NœX#YêéîµÊàQ &ø‹uWIï ó÷¼Xà?áî7˜AÓ»­?éºT9´Ty¸nÚ×ÍȆüv$ŠÌy‰¤{2"æ-æBRU»SæÉfJ‰3#áÝ<+D>ŽÍêκÐtxŒ­Ða²ÊŸ~¤ïU½¥ì˜ÿ=WDTú5s^Š˜Ê%n§7RIÐ4¿À÷b/<‡;\˜ 5øÜô˜Î•sLÑ$îÆ½ÑŒƒÎq5L%”gJ«Ûó8uÆásѤ^õô˜"é .·Ë¬Â©3p.‚ÚÖ#ø®èELlþ±™ÌÛß ² X7”Éds6 ¹®k±ŒŽAË.œIá9p:ðBOÂöq÷c÷úõáîçKðíÎÉÏ!ºçý‘?ÝG<¬uþ°ëÝóá¸?…©½õÄPPžñü9+—äS{5/åÄÍ­ý!$L¢¸¤ã­waß »x¿òxzrô2ø5šêèð¥:·ØǨgÚ«§œ $ê4À eï‚.È’Š–bÅ´_Aú꬀aƒ0‡ C¡gÏb†%«!/gtLÅÄ’¿ŠÃ‡[§Çg³+kÚ º®Äè÷Èݨ#ÛÅÿí$LRfŠcœA|(­S¸ 0‰c–ç‹ÉË›2:šaûtøroíÚöë‡>‘ì¦å»%}{üµý}üð°ÜÉø©€£ Ÿ:«ÊE1•~UÞœcF5x:¹,zsˆ@ÓѺ‹ƒj(Öc¤À(ÝYq$ÔžÒK™ ÖŠqF‚¸ƒ°6IÆ ÷krFQ‡!…c)göšMÄ2À2f=ÆB«°ÙàOÙW"‚OØÈfÍ*£¤—G :wŒ_€)ŒÀL¹à™f\Zý€™kÙm‚»KÉ6š"-ÿÿ¥ú=¤Šš FÅ%wI‰ŒHYu/õ)°%G¦Hqfvvº5”©«ÐèZ ø¿_j‡¹è·ÆÆor “=Ä1ûl£m碽°=8”Æu¯NŸ¹dêžÑŠy bªPŸO¡%î“—*HËi¢WpaÁ¾ù‡6urµnA4·HÊJ)¯žˆmÄó¾©!”Ì­Mù1·LøqmUåüümAðmæ°%ßì#ßNbÙ°0íÔìùt¿Wg¯-¸íYjÕn›?UwÇÜv­š@ëv¼‘Þ¯Ö=6ªUY} ЯÒÚu훂IÁ:P²/ü^޽¢‡{¿íÓšŸm®#&ðG~ÿíÁÛbwYÏ+í(ˆ=.®Hù‡$íƒéž•¯ùË{ò‰$’yJ/IÍĬ ÏÔɶ³$ƒ­XIÇe&™Ä/å%Ýt̲ aEʉ‘ºDyŠZÁ2+°LAÀµZÇç®»¥kî<èO_ÏS±~l¾Káatôk˜.Ó ¿ý¼<¿ ϯ'v¤I©hU^6.´Ñº¯5ŽØ x ´ Š6Ó´b® R):ÓiKÃh^&üpÂà™’ŸmùN‹Ó3r0·ÆR*Ðejæ<Š”#*”ÌΩJb¬ ’O¿rV–žp¢6²»†qŠª˜X‡r%‰k!Ò ~©!Þ|A4"ÇÇ$·zx/Ï«³âwç²U2;¥Â/7Öß Fú¡ÓU³¢}Pýa8Àñ}‡ïOc°ãû«=õ@ww¢/OçÏç»û^kÃf}«:£ÌEÎ=Œú§\‹§Ö4ù4Nþ>LÆè¾?{Õux8ú«P*`Q“,RV¼Ýlžˆ«Åô×h\qóÊæùÍž±‘YfAüçÖö 5“-fz.J‘Â¥\ïp®ñv±G9­aY š#¥â”Û7$›>”Ýê×_`îÜuã†(JÎpe ©Œù€äÿ¿Á?:@"€mÀ…]ÖÞ•È ç!‰zš ¶Hµ6°´¤—wîÝ"pU‹Ovð@òfêýoz¦šx¥Àª”¤Pr–X¥Ðõ5#Í4îéŒÞhß¹èC5_Ò­q ÍÒ™•þ¹|/ 3Ö©?^YXòmaú ã\‰/Ïó7P 6^Û9TÄßý·F-3$•ÏLÁ˺¼5B­^oQ±· {5áUúÞ_­Cöw±ÕãXÉžºàÈ×ÌKåãâó» Ò”d’­0XÍŽhFhÚÍJ-ÛWßæ±L"me`¶^)0àóÝvEÙ3Зõ4$ *ÍûS><}ýüéú¶œ>¾R#4«ˆ¬Žçó÷ÛGíÓÁ4)‹ÎXìc"|ý.De!ÐQQ˜fnÇÈŠœé\uóí6 *°¸}EÙøš‘1³^0â}ém˜oHx³NÂLµ"â R'X´Ù»^¾7:YñèHåÐaù¢é·Í†ÀA””qŒÉvï^ºøíþwŠÝÃsÇØ‘€M–àŒ}'£šÖCëG*4 Ë gx|†»cÀ¤iY·Ø§Ml2.íY¬ÁÓñôH `Rß`AGÐ{U†jáô«NVË8OG ÷Ä•M‘¥Ib| †mûÏ&K)n¦¼F¨ÚnAt’˜»Æ“öòʳ“\o"úòšÎÙ#g7Ðûåó bà {×ÞIÆCR7œú ,ë+NjÃËÊÖb'C­Hev•Q•yÿ^Þòˆ|ùHo1¾Ûæ€y¯Bs÷|ºùñèåBÎK&Åä•DÈÇ*?ñ,,tÙK÷2ŸuÐF¾\α‹]™ Ÿµ~h04‡–sè%@ˆë#ôƈ«©ïØ–ÀŠèo9`©âȸ!HËÈq0¾Àó¸S+Øù¢ëo/ BJxž<š™·ŠYt`½ÈKIJ“ºÿ4{I •qô®Éµ*¢þÀÜÕô8 Q{ÒPU-ˆËþþÿ/áÌ qB!-‚ôÃöà™7vœ›v»ö¸M›ØIì7oÞ¼Ù½%][sHÄçvææÍùÿfyy°‘+nUã¾üÝ¢¬¦Uö½^UpM÷ç%:¾³ø/ÇÙ*M™Ü!‰;áJåNÊTfî°…ûÔ¥ò"V°Ôp'fê1â仾nµ„÷"L_(nùv%÷¹´œ;϶ú%XyV‘ë ]„VPÚ5ªñ.a1Z)B}‰¦¥+ظ!hy‰¨ææ[sNÕ³îoHbta÷œþÌO¬Š:æïxKšvn_ÀîGeM™¶Ÿ…$½ù†Ö®£n›C¹žôßÍ;0ØyM¨žQÔøåûïÇ}øpwÿîMÆ0á$(ÑI•ûyøsäQ6òÂ}f.Ù\¶©}ÊYÛÇÃŒ¼ƒ—.>5ýX;ôµª¨ 1ºúè›ÈÇùÉ«¥Þ4ãͧª3ßÛˆ}éÓ«p3ÌS|Ènr}™É«%›7šfØXùFïSÙ(¯Ö‰©­ap¥†IÃñOÁÓ¯ÇóéßÏOÎ?¼_œ)ÊiÒ×§ ÖÔèæ–7-Y§‡n|¡2+$+Ùv`;Òoäã¶1Ž7™K[D³HÈ•ÛÛ¥¹åLÍsM››k¡5TG³Œ¬¤‚ÚožÄ8Û¸°Å#fàJ–É ÿ õi®›€Ñ7TÂäj<¨šK{®vê'‡A80"{õ‚=cÒ.Ü;º =§;˜²;õ©Èlç¶ }¦ˆ›I½^â ²˜Å ½íJ+%V&ˆ|²Kž|#àõ’Ãäl–®¬É¸"B8VäÛæ\©Jþqš[Wò-¹Å ûͨe x$ܹ6ðdäŠ<.ªM»D­ªkÙY½Uúø€`BJ–&ÅÛeZøXiÄâb´h5{»@°A‘‹|éAøõ1/¨<Á>‘A9ïÕ~¥ Ëã# ”Ya÷¸Ç!CŠfÔ‘Àö"MçþË÷¿÷ïqÄ|s¤Ï¿¿ßbE‹+Oâþ|‰yùå:Y¬tÄKé¹…5ëtBðÉœËlI`ó\4ƒ 5­vBnBSò]…SY4â;ðèDQjb‡åé’Ê~“âÑJ~Ï¡ã>\¡CŠ01ÎR‘³x4u)~=ªyÕò‘'Z—+äK¹¿ê ½ÑÏ-ÿ< @Ûµ­Æ Qi$«PèSÿÿ«y, „RhK—² ¶¤zn²ä•½5’ Ç’bÍÌÑ™s ˆ½rÃÊŽÖòcÛIÛ{~‚y- ޙýìq^òs¬D7™A.Šü M«KÙ„[œÛB—÷-ß·jÞÞ¸ou²ÜßôÕU„Á¶%…"X›•I{å.°~ ¢ÜÍ¡·=ïƒë;v•—.Ä¥o>ó"÷zyjö¹3Æ“È[(%w™ºë–àöîŠÚìüÑ]' ß”7íß8ÿ‚[2šï.÷EõÕÚIy,Ñ‘O ïbÌTä•í½’­ì?e°”Ü”^Gò2ôó—d¿ž~½Ç@¸ã÷ÃñÏÛÈÕÆ\ESm{(Q˜ë©Õ®YZª¡2§€³2ìD]À$ÚÏEæÕYðÈm¸ êŽÖT²ïœC)fu/Ñ&7ɶJ±d©Ô£õL–­d1TD¡ï¥éò½𻸅–ƒ'<‘&XÚÚ¬Joº[qu"ÙLa¤3ŒcÆØwXÍdžáhp›É(Šbõ’"‹yhÝn±œ„„xÞ‰‘Þ:"”k! L¯ÀÞL†¨Qù„; £"X™©Ñ„+9Ë冽SÕ«`ÔÓÑÍÇv*€»5$ÌÑXyÁŠä¿Ü© W3x‡“%Úœ¶<ÅTðÙÌè2|ð‘tC`dvN”'î·¸ôI橎äeŒRøi–¹ÉÁ–syk&jÁÓÔ7Q’Î篿ü~ > _ŸÇ`ͼ‰S'mÊsQ6e£¢ñQèùiŠP=Qßa~OšÆÑŒ<Ãiþá\iCðÞ«Ÿ˜ð¹i å‹7L$‚oß…ÒA‡ãyrñ[ƒ¤-Nä€ód:¦ãe³à y!WŽò$Y“¬í8èÔ'„ªevšþ·>þ @ÚÕô6Q½mA"½ „àÊÿÿ#Ü9 qáÐ EU¡ ÍÚƒç?&ï‰[ÅÛÍÚ±gÞ¼÷frUãŽRŠLÆ—ž¬ák îFƺ[áå}ŇëáT›K€^få.ÿoɧ«ºªV„æ 9X7()^Š ’7g§^šBûUZ_Ñn¤³×{EÚd×kvPñ‚¯× sl ^£nlÑ}‡‡Œ½V~MÏ0C^´~‹PɶV©ù’’;O÷ÖüÛm¬ötè7·OFä~<›w¸5A´²ªsg±³"~Yþ …z«%·ÖƒÒÐ-¤fÃèçÄw«ÏÔÃdK½7|ÿ˜ìŸ]`·Ü‡F4ûÜòRÜ!M¹ÿkutùgöÃ\®Ý(mYÝ5į×IÉ™ŽŒåc£M`¥WJ£û±‹ÁŸ¶)Ýgþ¬°wîOÚ+e®$ê`ÓçV¤uc²Üq{ž<Òm£ó4½=F2µíÊŽŠÊÉO|Côíáéç¼||sûáõáþá9.³ @àUÝY*‰l :k”ö%L(ÖÍ•^]~áÒÅ«—QºJÎçÐ%(/qœöœfíoI&V‚8ʸ¢jÀ\ëHŒ–+ ö ú ˜;Ðe¢ÀW½üsq¼ù|ÿxȃ¾?}ýáu¯râÊ n«2åºè¬»ˆâ kÂæ%1<çà]˜JSp˵×áæÅô(lÅípo£…¾wÉu“m.ʼn}n«$b“±H磄IÁÏHzAÍÈ*ßÃrýÆö/ð…á§ÅæŒB× 62{2L £Š #lìô¨eÔNDâÕÈL:ß§7 ›a~zeÞµêÊ›Ç};Ã®ŽŒŠuà^§Gkuë|üOëXA¢¡³¡ {š”áèO…”£p¸p]›¶»üþ»ïYd£­Xe7á{‘^…gê`jÓ‡-s´œßãKJPÑV”E´Ùtº3,Îoº­çž‘7R°°ñ¦qª>M€HàÝ@ d2nÐ6L˜7ž.ðS¸*ËÀ1¬¶ih”âÆ*On–øŠÑPLóbÌ/¾üZKA>I)G±É6z‰Ý«ö­¬@ªCÓT-v­ŸU1”ÿOÚ®m©mˆj%9I봦͔/èÿÿL;}èc€é` ñER½»ZYŽã¤ô˜푎Ξ‹®‰‰ÑÕÂO‚éÉ$Ä}ºêSy¯=‹uÜ8KÉ«¡Ì-ç¡÷â°üŽëf^§s=°ëç{v4Àçb5h¿;ðUãAdÔ>òòÅQ¨üô¸tigSºgöwÊ~ûaÈÀ®Ô¶w ŽÐÛ¤©Þ$¯—{®!çž³×ÇA¦»žB'ä.Ç¿úA4ù|`âO)Ïþ(w CÉa¼ {»l^ÿø2¦Xð3 ÊÕŽ]?×÷¼1æ- 86]9øb+8qJp–[wÄì4ÂÐã‹ûGÓÅ©­´ùÇÿ‚€WšË&›G¬cpÙÁZ¯~ÞÞwۭŽÛy™áN= kÏ" %õc7I{dß«eùå“m´€m‘¿f… U°ºœ?Wþa[!P¡ìtæ:)[¢ãÌ×wÝSV!gbɽ’_ix ¹JÅ I9a‚PÙ—fña93Á|ý\®.Êm ëÍó‹7÷ÛͶžqæ5Úkç9rPì~Ø#„öÆï‹o«‹ï맛Ǫ0Äêc:LƃpâÏg{räÍ(èÆšv³U¿ÿ¼Ø(Ùs°Mþ«]Ï…„˜E¡ƒ~¸¾Z,ÅíS³~¬Ì2×OÜ5¶X…t7&D£hD¦ØÿDÀ“tü«°<½J‚'+—˜/±ÿ’ì@ŘLÈŒ¯ù¨Òã!s©Þ7qÕ¹þÚÐL#D©; „˜à»¼’P &Ð’(¦;gÄÞUZ¦÷¬GJøQ%Ï4JÐ×ËPÂüG[ßUa†Ç¾: 8¥õ@Ù$fæ]w€ì¨!:¿ßÑùE…øE‹'Ã'Yèá{Óám‹žT߬ãð˜|‚A’T5Eù‹øÚ¤Èä¤ÑÅæcŒŽs!ˆªÇ™™^Xƒ Ȧe_‚ éTø*Ú $øDã’S»­ì=)¢”£N¼{(“1¾°¶¦©ˆmÀÅpv.Ã"‡«üÜ-#Êóñ^u'iÇÆ ß÷"‡qåÐX’×=Å„!~2´¸9>Vü€¸kÙq‚žžñ¡´BËò|ÿÿ\à‚Õ ‰ífÁž™ÆÝ=3¶ãؙͅK”Cbù9®2ƒ% ;ëA僭ë(9ÏŠr^´ô_÷{îhˆ+§H¯øHº‹‘5žpZ’ Í/òyj˜–¿üîT¬LYªÈ0õô2Þ[ñµcF]%QJ8cSEÄêÌND‚F,N©çv¦öX“Ô§eúØ|rªH™„ а~„F†6èØš`"?8`yµoÌ•0laòk©Ì§&=äÉØ!óˆN‹<ëñÿXRçüW]â›óaöÒV¼>ó§…2w§ýSŸÄœ±¤Twð庠µ¥o¼®ö¼°¶ÈçëõgJ­h<ƒL^sqë¨ÈFÃ…PÔyqažõæV_ѬEI\eb ퟥMï7„³­3Ø#íx6ZØÝ|ºÚ?·Àd ØP½ÛÖµÂoû£¥ÑLªŽ PÓD÷á`"ûÉš‘¯€ôú¢‹™ŸYs†^„ÒMSQÙc\÷‡R;7%¼¾{[–vÛ/??~ۇã%ý†!'“BDºL6“Syç7uõ~Ût~Ý?ךa„m&Ø—h/ÆòŽÍ( ˜¬xg+ñÚoÜÞÔûǶý‹º¶ÈGBM'Ô$Û×QÆz÷¦¹ÝÔ­{ú¾o«?¤ØQ–|p-;¥éý¥0j)I0⾋"%|;;À޹U©sŸ¦Tqv—kPL)+À±S“ôñYNãƒD’´Ñ8@‹’QK…ùÅ j±+ä{ŽÎ³ öÔ.‰;ÕP¼2tCõ>Òé0ÛʼƒÏûËÙûQÞ䑯šRµ]a…öçO’±w ›É ÀƒÿcÍ(“-o²öH©o¥ÁWR(<Ìë 1 ”¢ /ùY4ÝàÃ/C`ˆ¶³žêv×Ó<*`¨BÖL ¦ ˆ Þ–g‘jÿäŸ"!Hq ‘/„¨‡Èœß£!KÝ#k¶é!ÜRøçô AwdðÏÊ)´UÉ+FøzQôP‹ƒ' ”ç±Ù"D é‡ñÔj¤K\p8Ã’'q &xÐÿ'i×ÖÛ4 …mÇIXiA* Øþÿÿà^ö²Ð$*„Ø(jibr.vœ4u"xY¥mjåâóó]ll´s(PrìLÊ{„™°ÃÿaOõMlKLZW‘(ñu’õ S÷ûÜ~œ£Ñ_¨ÌR9æ"^,›×‹ÍÓÖÓÒpÆ–1}_Rƒþ›ûÍr/üüAãIåëøs¿ðŒ_ÐèFV Ì¿t"RlœZ‹\†Ía:ðÒ ³RAæ@©^@ÊRs¶ýi§@'Ð|ò­~i_˜4‰Ï<&ç»àÌ [r®P1øŸZ‡éñÌ’Hl~ϸ¤ãňjϳ— ;[zúèÐ![+·„)©'Æ'·;ô—ÝþûÓ¡¤w¦çÐS ï·W7¯VÛÝﻇǓw%®©êsÞ»$N5Ò¨ãeðHXð¬Å¢pId»lkòâY±©Ëk §‹cW°4Ísko¯77×ëÇCs÷P}¼ÿNL¹á¥m½ûÙ­³ÜÿT˜> ²kflƒêEqFÚ­JÊz©õ°yêOÆ[¨Jýn»z».ßlÊO_Õ¯c‹ÍYîÀÑ«•¢H¼ /ÖÄ€’ÇÅZºzÝÐ<˜±‚a«ä.`u¨0ž$…¾o3qš¤(û³›6Ž èìlÂÞ@ü,!Fç ”çFXìZ³99RÈqÑN , =5îf‡‰‰gf>-RLó6TlM’‚¤}ÌÔ‚ÂVÖjm1~ÇÞb¤ö¥K¤%Gþ7šeú‚÷]ÖÍôœ*¶æ%ˆoŠ9 ü¡Qg”¹„&ðÎÒ©)öÈÎØÏ×@ •ž ¾!ixy^½Z? Áùí‹•Òúý×[OD2L1”l7ÝûA‰L_¸…#}‹ Áª”ìË®Dô-‰XˆÙÙªU…Ù…7!w%ÌÙ²zò¶®äÕÅj½ÔŸ~>ÞmêèCD ß³‡ü—Ÿ+â&›"¡H"2ϓݡăqJQ#¹ßî@Ô 6›êj]_Öj®gáÂožWßï·(Äâh4Ò2ÿÆ µÕ;[ŽNWûwï5¦1–ûR2¤D Z%#‘l£áL$MkNkáPÛ†#­3sü›"Öì÷{k-6…M»Ð²œŒP!MÒÝÌf‘½"c¯¨Ì†äÏä‘{ž š½ÝÔº^..–ëËóE=Ó_nnïî´^R’9‚¾ø¿Š¬…}(8zC4+ˆiDY«”Œ‚üyÐ=)ü—‘ŠûÇwK)„£Ü?H»šÞ¨a(èçØÞ4ÛZ!Ð#ÿÿÏÀ‰+ ‚J…v›ÄÆïÃ^ÇɆ]¸uÕU”“xÞ¼™y¦Ú݉u ¡›Ò7Ñ%2^ä9æoÞp\2@VžI?{˜ü­ë,á\§NûžfCÈUZƒÉìÙ”hVà×ßgÂ~_† ÿyºâTó’&*TŒˆ{æ[>)½hPÔßä–ÉàÃ~ȸ+ß0‹/ƒØ¡B±ßˆ ¶¸JBKR4êÌ•N«ÈX(´Å´¢cpg¶FdîÔ¡[do캫8fqvR5!r­‚ k,~& +µØâñ×áTOàÚçæ×“f8¦+n»b&ʯžeíšã­*5ÝJ_©‰_T1fZW,0 eÀËT¹‘™E–Õé•(–ëõßÿ„æ¸nêºh¾\¸Å*eÒ˜m79 ª›P{&¯e¥"H 8IJÀ!µ &1S3½>¿R½6gN¿}yõéÛχˆ(öF!멉GÿØ#òˆÀc?îüØh”¼fA êÈ -Aî/"ûôÕF;¤,ʨ#pÁƒqš ŸVM]y€7¹l)>>ex±´BDè–wÛ@»±$QÀ¥¨ùWã¹s­3k» ^“›Î^wî.÷¤A„?RX5‚Iò‚Š!µáÙ2}·^^\Ί¯·Ë]í@¤¡4¶8À—•*9–‚Ë% ÀWQŸCãÕ„ *P$âÑã‡ÂõÞq^²[8Š’ˆ°ç³ÉYiN úkøYîÜŲ̀¨`OPd¢lí ˆ7Ð`WÉWÛ¸äã©{Úÿ{k2î`qu"QF18ï_]ž^ÍMm“;=/ÝÄèçOÊ›åy~m)-Ÿtœß£ÄkTqª7ÙTÂïé3BÀcÃ@žþµr[»ªòÅTÛ(H¼ô:HÄhÅÖ? C!$FÑ å¶£“…E”@’8ùYY(Ñ#›©Yá…$¦EÑ3 Ô‘‰D5Í\ø,1(‹uz£td9h:KÛA8PŽ90‚Å à,&€öµŠµm׎š' ï¨OLÒ•T!k YãÕZTO¹ÛØ‹R¯¶öDÉ0…/æåÛwÅç»õ·{žùÞ†IT©¿á-3TÜC9aªI†âZÖá?è¤Jä|’>„eU.ˆ.ƒí¢3B|T´J£n¸R§ •$g+·ßí­+•¡˜TX]–Ä”1Æ’Æ{jèÀq•~R¿*À»V É<ì¨çyQ“I@ãúã›ëð2ž-Š«ù,<ýIiÂïðnþ^oCð·ÛÖÐ…Šì_‹šv²b’KH. †õc(ú†}-ÍM-¹Ù’žöPwY¥à®sV¦¸T°Pu';I/b|yì û+k×ÖÛ4 …}l'ÝÖ–]â"&!ñÆ ÿÿ•'øHñ€&&X·¶,‰m|.IœÄíúÀ»J­4>ß9ßÅfO |úÞO>íùØ`º‹ S‰Ôuzlg©|±ƒ¨4U2­{€ÝõHê¸G7ÂF¦^õ»ù¿,2T¯‰ÚÑ ]ã>{Ü»!¿D°Zw”¨«ìß/ytÝÜ´„ѪB±h EVIl8dMʳ „Ý"-Y’ÓzTpKì°›M:ßÓR8y%$ Ù·ûÊFõä’¥×$‘Sƒ’¨û¤ëyG+Ò£ö¡J¥À’ÒÛhL9ÖÙêYåòØÒŠ3 „F€ „ÿÙíeóê'»º'¸7û 8Üò%ýô”)q`çx×wž6w§à0;²èW:¸å5Y>ϨÉΨ '·÷SWÇ, p¿` {Ûd}ô÷k-”+ìá¦?JZÛåîŸÍ‚È~v‘$aà·;œxl(ed¾(°t;.ͼЋã«Ë'Ÿ¿ßü¾ÿKÁòÐÔhïàÑ…°)5%£C‚*U߯zq¾¼]o?~ùùúb~}[ÛQ!Øœ%¨6¦´w¢Àߤ¥š)þ¿¨óT]*Po÷Á kêZƒ'¥±–=à †æ`aR㎎ ùÃ]ÚÕfóôIùærùífUpº)o{P!þz=ÄŽf¤Êm`ñy$ËŽ©c݃ó«M½œ“v’òG¨òÅ£ýùböcµÅ:3Ld`<ãŠ2•Z‰`F‹G"ª}A›––€Þ @ÆðŠU–ŽÊPtwD¼cÙ4ÓÑžøi.xì Iµ{WŸ S§§ÑPÓ5Xã3(bÆ‹¾ÐZ·šh%þñ¬ S’y* è l(3m‹c©< ÖŽ6îäŸâËA‘a†¼‚—lnr¤ ¤@,Ko,Ö4 ¯#HÑõYi~mÝÜBÓøSnÖqÝ`K‚(@‚b› ꈈ dÖNÜׂkSÓ*¦ˆ!‚~* >-LÖp2Åà´K*žÉ. U ˆû;v‘ &^éÚRð¬á‰ï¬j÷ºil¬ÙQ“‰ùKŬ0¥iâÂ*•œÑt›QßÐÑK¸_ñ*«æÃÛ—õƒuvWùgËÅâ¤Øl«Å±­˜æún}z2»ß<ÌJûçnûîÕù§¯ñkÆ> úq†R"Ø/4ƒÎ†%‹" n’ìö±˜? ±DÈÓ+¾x æ‘Tô`7 XaõðûŒÆù£}i8E­J@öWÛ‡^î:R0¹C/! ¾TÿÀŠ÷s *qÔ½4ÃÌû¹¹1ÆöF¢ãñ|ñ¹'"–{¶´v˜åaÀög¼á31Š6ŽšRW˜?µðBcíîw‡¿ ,Žr!0ÉÚ”P; v”bH׉á˜_Ö«üþöúÛçww×W?žŽ…‚r×a:Q4©“Éí¢¸Ù+ÑÆSÊÈñ*ó{ЮV³ÆŽÏ7ea­ &p_,`•ëUYç«Ã±=µ SÓ¶çÝñlÿá—Ív]¶´Gª£ùrᢳ(×BŸo«›MîäÞÄ$kbÄ ]é0¨ž[Õ» {’Ãqu’ÁÒz XaÃ4è÷#¿\¢Œ8­6; —Tå‘C[â¡@³¯,)<±Mâk?«ø´)%ÂèÚJ¿}-Ĩå&Hë]Ø`®Ù/m¶Jœ1äÐFW6>Å®ÍÖ(…ÚAèbapn[Ðõpßÿh aatåE(¿päu0R%¸›¢*›€"re¤›¾S§ >Ä ‘èä«5ÖIØç®#?d’È ! Ôel޹rD¾=Õ6¡_¡=ÒJä…"YöñæõywZ‚ ]Ç<ÜÚ4ÍÝûÍsÛ=ŸÌU¥~Û*LúõªØïÛªVöýº.~N_oo6 C…*ÜŽ0£ ÉLê–ÒGʳقJË`ÁJP7ÍtjºXþ€º+Øq¢;q“¶Ûe) A¥BÜö'þÿ{V‹…¶q VGÅ!¬™×6;á–ZæˆTÜäüvÅïB&—ÒÓz”[ö‘îèí„Ñ@8öÆÙ †«’bu{ƒÌÒÄŸ*ì¯65%ýÜ NÏ@ÒSÔWI :ùÿÐÃSΰ÷˜\Gå_Iè\~Åi!ás¸ÑŸò€ßõ8ÇF-e†ÜfìøqÔô5Uc‘š)! Ìª*cè#üÿvß4-äã…¬p ÄpŠcË©$’R)y Ö«º¶þÍÃüñÝÊÒÙPéÒˆîÄ›ZëLï§Ž;}÷PvÞ³÷*åQˆÂ…íü(V~}\33Ö“ ¦ –Þ¯ô¼Ð®ÅçÝî×®}ùÏûÆ‚ —öá•¥Óñ‚¤™H@tEä–Ãéûûeõ´yýeóP׳–í_Pä~äã½ÿ³k¨A’QœØVfi%™5Sw&Q­n¹ú"„µ)>¿]|Û,¾¼û´¶3ÝÕe%”£ OB{m´UçH;À¼`ù8û¸S'ªËáÿn‘T8X゘¢¾Ù³»!f5Õ(Úg”Ø3òHè²SÆyTIçUOÉo-ð¦€M(*‘ôDUÀÖ1‚ËbÖl0Ò˜? %;Z9P+[G{ á³ÕìƒÊ*ßÒuÝ•zÛº­sa&˜—ê¥!»ó˜ ±P%²šŠ’®yIQ&ÅšMhR@±\j‡W5ëS$a:f£gžqJв# už#Ò$æ;¤ù)ä® ÙÉ»¶98×8X¶j«’L_lIÃѰ~°ò²† HB~O~’äÔ¾G ÷ö²*[×üÜÃrVµ·³e>3‡ëª8üýÌnÝ¡P\¶˜·ÆA~ ŽXò!Œ¥¹ lgŸäRª;Ö…õ4üØ0\ŒçÆ×_X»¶å¦a ª•d»NÚ„iiàÿÿ)†éÀô!ôB;–%´»’-ßBxnë©$[:Ú=½x<Ð¥Xœ´EwÊÒlT€êÓ%œc¸ö÷€îI;”tÌÆÑÈÿ騆¥[Ïm;ôÅÛ^À:e˜SÜë£pam8šð¥†@„TÐ)w!ìémO¬]InÕÆÐ>p5‚ø” „ï°;ÁÃ?û÷-Ä}§—±¡¾ô‹U¡M¨*aÉ…¾üshOVz¡}‘æOç2Y…*°ƒw…a³èÆWÆ÷§)¬ -n6ËÇj¿\¨¥.ÞZ<4òf­ïí¾ú{àZ#]Ĩ£Ý´l Æ/Æ:×_*EŸÞ}5bÁ…E,rÉ4L öeC ZâÌâb <•†q&¶³Hëÿv%»mÃ@”¤HÙ’³ n ôȽÿÿ=õÞCÞ4ARÀ±#˲D²³P‹µ9AoA E‰ófÞ¢§ûXQCU§¶Ÿ?Ä®²£§d”‘ÏÛÃ÷¼úx±ÈÈÎB„ K™†ó!B²Õe¤UÖxY®Wé×Ûu‹—]µÙçÈ:Æ$nú‡®÷ì¡|Øe?þÄ÷Ûýe’\'êË:½»IKkK$Šx­ÈKRª½…Ú MÑ)ÿÉ~ºJï>ÞïBðy32O òÔWYá¿ýú‹."U©#L§E—´|¡4M!¯€ÀÞd=%³¬p¨¹c$uÈç¬xÜV¿7ûx¡œuHgæ”)ìö×n‹ ± ,ÄkY]cêþ‹TfB.•\(–'b´$ ¡•¡ë0¶V\-Ì€‡¼ñë¥yÌ 'Âc‹–Mf:S²éæXD]–H¸P‰î]èpBÏ£›ÌcÐú0F,\šidjƒA]X*QЮÅF±c ›ª Gò$ñ|Ó‡ÔVä§ãˆ¯E¾œˆÞ,yÿÐΣe#cš¥P»á å «HdBÀȶˆ 0.·G{eTà Etbüó¡ÌK4Ò,±äƒ¿‹o–æöF_&úÃ2ÖUÉVOF³&{úzÑ´XMj]äE=²uud¯ )‘øï"iF°7*lNØÊ Ü|ñ¸"¢V>ýÐFweù±ËØ+™FiœÔXk[Ðí:š@ IäG@z…=zµÉ«$…  §Z'F=¼¼&FÞÅÒÄ‘=V6Yš4ÑEY ~[‰ëÚÑQ`K¯&”èÐcˆÛUéJ< ¬-Ü+ëQ{¸Jß”L0k3…ëë×Py¾±å1î}4ph g³ ÙIñ¼T1Ûz:t©#©ÅEmiWáY«!RÙMï<²œÍ¸„‹ú&`Ÿ{îbëS.ØS_m˜´ñëFˆ±…UãËÆ}{(•³ˆÚ†”8!¯f×íJ”£-;*µ tï^m>¾]-³ÔßÊÍuþù¶Ô8 ƒ½•Ȩ3èÀãCÕK„îZøòóÉ_|Wï~üZÀUy’¼HÒLšÆ!?þeª93-UðTã0ó² C\ÏX®ÛŽ£¤¦v›£Ô#¶¹èíWªFE#¶e÷f™TFlkûõ®ø^ÔÇò‡"й r˃mÀJu¡}¸Yv7âYRŒZ'ß_-îv¹i!ý‘Hu WÍú˜O¥4=Hu*DnR¸oy”30s0=2( òlŠÑåÞµž,îYÙ¾o @p²aœ˜Õ¤ ÇÖ‡›ÆÐ™q¢sR¥Ùïc€¨’ƒÔ I‘\<âƒÒ·€¡ h MàC²jbM<Ô·Þm;±RàÿBÉŠò%Ÿº”ˆË´~M}xÊv€µ¶÷{lìn'k›$¢KrX[ña£7I–g°Î|Æâó‘Ö_·1z¡º–AÚ™†X‡’´œfÝ3å·ÜÇ`¤þ^öË&ÜÔT¼•&¨õ±gÒv(èQ´È¯MH$Ÿ|¦h¾ª•öi$­¬ÃÀ7íLØ3ö8ó%ºuc‹ªZd ¿ÒÊj·Ê—KUëøz½úõXúð2MÊÖo±LÔÍëõ§m‘3n°r/ƒ £ M§½¹;Áuú¹>@”¡TæÏÙBu¨Òö|!çØq.>”e{°éxÿ @Ú•,9 QmÎZ“…b¹P\øÿ/áÀpà253À¤’x‰e5êÖb%²“Ü•±dk¤îׯßSy©oQœ™À ÛU©§ÙÄ!ÚÓÅnœØW¨–wv+^‰«rêE|;W°ùÜìãRϤ—5̯· ‚³žœ¯‡h¬ÃÓ”"V/á+pðL_ˆ¡Â“äOqôs°wÙeFè>GsÃDu{!Rž2M‡Üù®J„h’‚ßsgߊ]÷nìß*cl¤ßñöÏG—›dшÏ÷!OšGÕNLO…b|Ð@žh¾OÆ ›ƒ³þ•Kì™ßÄØïþŸ½©èòOñ÷5ˆü¼è}•+&#ùÿ½Šü#?¯l\œ|¼„uÁªº’mÆåÃ=ç`¾ÛͪƊ]yóhJyLáRß±Ô<¦4âœÜïùH­$ßçJ¦n‰>à î9‰jU€·ú{¡Ó)$£ò}ÖÙìll°5”*Іè¾2Ø=® ’I!/N̘ @¿¼]|z¿Y"ï»UPlÖ‹í²~µ‘:~¡ ªœh2¹Nª(øog2/äf©vU÷\veýf5_HÞ€iZV´â].e[jþýçîiß(O&N?¢óÁY+¸y‡—€[îÍ||“œ6‚!-=ÆÚ]Ù<î‹¿÷¿ŽphÚ\ë©JÇ‹CP_ ‰"”\Rl„÷XÕ!ñ8-¨ÿh—¼Ø;i3›±`%’+Tò*HZ8h³’úÃtÒ]¿Î  £þ;án‘‹ÂÕ;ð`5ás!‘àŽâeü‚!éÔP‡"ÉÆ£‹ý¶”tm /çè}\Ç©)Âç)¸T_lqmD‘Ò9ýZøÁài:ŒŒ˜cn`NG2ÿƼÖ`^*±”0øìÞªHÎp.á¥Æ¯UsñqÆŸ°5•­ ùíX›M(óù¡øº]v6!“¸mmâ¶PºÖ6±¯© lgÅT‘ÏÄ[ƒ°¸G¸µMT˜Í…¦ë|ëP-ÚŽÅ…v`N(çŽy¡bÂW°p€ ¨!äDaï)ÊtšV›î„„/Ñc·õDNgó²¨1eàQKªÑàª<ÞWuÈ.ÏNt&OeçVØ]Ô™]cÞ­çÊBˆÙTéNìªf½X>÷' mçÖ"¾/¸výÎ8qó Ô5pü{Ö×$Ä“G‰¼¤¬«4¸ÂA¤³”x…^ Ë9 ò¯¬[nÛ0EÅ¡äG£ $ý.Úýo£ 肉Q4±;Öƒd9R”%:6Z€#‘eJ¢îŒîœ\mNÞ`âÄM(…4Ãý›)ÒæëÀ*ÀâRJF5wì¸Ää%Zè÷ë¬l-“…Mï^6ržr\ë²9à)¢‚,#`/‚|&8XS“©²ß‹× ÃÝxÒ,ΞÈfÛÇmVf™GlPlSZ!ã¤ú}î³GY1=ÎÌ ~ÉòþHaC(ÄPî˜b‘’+ã®·B÷„jw9Útq&Qê\dîlœ^|!CÎ+õ^DNµæÒeæé‘ƒ’G1)‘†x¾Át_å½’Ò[Hýùÿ%«=Z@qAý;Æ…Œ°YYgxP— /©eÏÔàçuŽ>G»pŒ›(å6{Îi?ÐÜÉ‚¾ˆ¿ñ6O³e&«AŠ“ ˜ ?Ç?y\Ž?4BLÏðóŒ÷v|¬¼\š„':$Ç3„¼Š$ˆ•ˆ°‰)BÍ¢-*`Läåçñ$Sð,%õ5Rô– ¾ß}úvûq¡JP¢Hk¯*øz{íµiG])µ4Ð0âȤ;u%¦x­×Æw«å‡ùÌ¿_)Ø5êy[ûñJëi»cïä¢Ru?÷ë×j~°Ñ¥É+áCÄLHC\ã”f(@%¤`?º[Bé‡Móãþϯ”ˆh(FhL§9¡I-“ðþ†ŠZ,?ìR!jÆ:­Ôgjò¶£Þcn˜*> xÒaîÜÿi±Ã«WófÓ¡CÎxgöM‡¸mg03®¤ìðåI²×³oEz‚ÀÂé¿XÀyE‰… ºÔ+-0 !æ!„–ˆhð‚±³¹ÐRK3¼èûÂêžõ¬âE鄪ÏX8Í¥³… ñ2.8”Œ}1ö·-žô¿¼:tm_—°®UU¡ËëËBßï:¯eW¥^Ú1s¿S?Þª±þù C†¦ÿ¦[ÌÀ`£(t¥”7U…åÀTw˲“–Þ—Ásê%GDT€ú+Ò,Rkm°º@Q¼t‰ÍP¯£ZT^_c„ÚºmÚŽ‹¾+?¿þ´_”z¦¡¤b-W­­Ê^¼8)S~ØÖ­m¡,ßêb¾ô?ÍçÕlýüvsµ¬‘ͤõÞ¿ó¸Ù]W‹Æ"©´£ËÍ_`cº&-tq!ÍΘH¹ðùa5Ì +P\ Udq’…wÇäå+9eAü+g×¶Ó6Dg×»vQ‚¶<ôÿ¿¦?зJ•ZUBA‰½—î\Ö^Ç¡H< Eıc¨)öð¬%ê±væ¨8Xx=äV˜m»z¡-màòE‚ù™uf-uº;Éêžz)|•X‚éâˆ(E’«šßÂWñ,õã¸Ù†‚›C°•úqøè "d%K\Þ?†Aas*Öü©Þs>(ê]†^gQûG{’Ѧã4Å ÞÇŒÓxÄw¯A$“UŸoÞF…'Ç»Îóâξtнóf˜2ÂZ† Ÿ²%˜äÇgo¥Qòv,¨SeŒ ãe„fX?]>¢K?ÔùI~¼õ—TZ9!ÅkB3æËÚDªø¸u`LBS.Þ^ØO ýü«€Ô\ã9{Û%(ðÙÏ7 Z¢ï…06w.<ìÚ»«æÛõůÍkÕÞûï?Ÿ·{׀Ƽ"”Ñfa~ºŽ!GXSˆÎÏŽ"H4á;5@ï‹3lá,Û |Œ]‚žT€Þ%-Rí+OÃKÜ+ z×RV˜äM¾#鸱×ÕÎuû.ÓŸD¿nàæzñðâžÚ®!kK¢Žß¹@몶Øá#}ëâÇíçe¸“2œHyÚ’‰E%À1™ˆ‘ÁŸ.uìÅ\´G±OTö_Ô°Œpðð;¨S‡ª€ç¤ÙÝ ãÙ0GIÎvé Êxåì"€uJ•âCn)SÉд?ðó-u;ü;v$ÚøtnþɘÝA_â:½Eµ²qpµ†û½»Yèí!}‰]4å„â ¹Ù§ROJ8^!ÄÈž-œ,Vïžl„™.ØJ`S^sIw±J¸ƒ>{jRLHðßcîƒÏ~À}JG×Ü`¬ÒVužÐ‹"˜ o‚­­i*»¬µ5Êš²ÅÞ…ÃÛ©¢Š€¶3é„:Ôïb T·^š–<í_Ú«U}¿Û}½\‚¯­ý³iïÖÍß§×[³X¯Œ•"¦ÀÆj%؇ø³q[ÏWgå±(£ÅuWþ•uÎ3 O¥fŽxÄ#º›÷-ô<û'e×¶Ü4 D%Yv.miKa€áÞxâÿ?ƒ~¡0C …¶‰mYBgw¥(¶“Â4™¤±]V{9{ÎŒ¿S¤sSY¸¥œj¡x¤sñV8°òR ? þ÷NÑBÂER³,ÓÏ:”ÿç”u•%]Jñ)Ù\ -æèGÆ,c n"ÜXÑ;P˜,qzŽLv?JA™TÚ0 ÷ÂçÍë°+—Œd}8΂µ A‹Ãœw=°[Þ™¸7¡EÖÀ䊳·ßÍãxp<õ• fidÆá2L]Ì”„fGˆ# Ū•æH4tθÜp¡÷x|ÅNÏx ,„„Èè¬$µC‚ ÎÈkÏhKódƒÄlÖmB³ e5ıÁyë]‹ç>þ¢?Š^×0}.HyAM©æ…9ÕÓ¨•wgr©üçð;èóþ*f1”æ“z’̺ ¦å-Ê#¥€ŠFGEÐ8eü·’Õëò‰^ð¹oÎy´Y0q¸fà,Y(&Î÷âÏ@3¸KÌó†uÁäx°œ2ù¨Y0÷ÿâõ3­9Ê-3`=»Ë8lK3uXg´Tss1]Þy÷ùP¨{,æ»wKj²|£ÃÝäèâÕÃUŸÿmôñR¿ðߨBCêõ4i¨Ôt ²™K¤}BeC`e®£O ÷Žà¯"XAJDv8Í¢3y”È:Zª¤?öþò=¸úâ;}ÏÍËêÃë‹ÆÂmð€ÂÉI{¨à‰}‡ûꬹZ[TjIyÞ³¿·w›žjCï>}ÙÜm»xgGÄ8z°\1$Î>ˆ\Jê°j†$ŸÏõ‚ŠÁ÷#wì ì™qÒ‡¸÷—«US±átnÍè—jãQRŸºOMZÕå‰}¶PèPjƒK]ÿŸ<ül»¸õ?¾:‚§’©¤.0×pé.CŒn·áÞá.žO.ö¡iÜ„ˆ\°D´&ß?ó7ˆÜquù| >ßkšö¥Öæ¤RïÖúí©~ÑO¿´5á~s±t.^B’šb@b` 25?¦Â›¼F$3š+ûš!4X4Aèˆk)-%‚#§®[õµ57ý°qèA8«›8¶¨:(·ªìmŒ×ê~±Ñ96 î<æ{ˆáP|q¡}ôB¬é®*á/ %ÎÓ$”K R¸W¹f@q-s ¼„Cèå`^i>_“&>Kê^U}çÐÃëQð®  Û,lEÒ¸b¡iLÙ}ôB‹„ãÉè›?íéÚ¶Nm»é¢É`Y›ûί–÷mO¨…pÒ4ßï6/ÏVÛöÍóõÅÒ’l*Ð5•ÚÑ8fF€P°U{æb‡$a$G4FNT/€a­“a7z¯ êwe–ý|g¿u¨¤Þ®Õ_;—Ý8Š( ×éK¦={F–MÀJX`Á"²b1¬Ø@²È&+?k ÀñH&Al N0JìH$($ÈÄ»çÒ—*êœSU]íé“M63î鮚©sùÿïÔ4îÊðSYSd `ønÂÕ¶+y>ß…¹¾þÖ­×Ö/÷Û|G{Ïwž>ÿö»S+r«$lÇ¿ŠFü³ÄC¾àZo~zóÒ«®ÜþÅW_ ‡âE·G(lÒ¯ÔŒƒmaCD0ß ó˜ çZÞd»éׇŽUTÅãî#)ßbºqãÝ›ï½#\™P¸¶>ãtë§Ç¿<ý]£EÑàˆË¯­l~¶á²ûÛ»[SéØ-ÐßÁª=áq¾Á—‘K—,“š þ£ëë÷¶w­!ƒƒB¼Þæ'ïßþàj·³Àìû‡{÷¶÷¶>1iMÊ(‰9ÂÓ´+C!9U<«f€{Q¾ÛÀYZÈŒcõ!^1¾Ö¬v\ðÙt~Ùçw?v¦³šÎJ?ç“ѯÏ^þ°ó›}õu‹q(×þ#mŒçü‡¿À\‹bJCƒta£Ú»/Ö®4à¢Î”7Z{šBs=ÄsFÊׯM"– ©¶¶¼¨¿ùþóJØ_hh˜óPß^ͬ ·ñb;¾¸Üyò¢ÏJ-ý î|xõâJìøå7÷¹¯B/0#‘ùÄ™ÓR›£W3Ìþ¢^vm4-L”ÓøQåÏn0-ІœsØt†Ô­Æºñ¼PbW¾õ^ÕyæŒ^åݬ3øžr:Ÿ~&MÛYm¢9v[g^úÿ(1=4MZÙºûÉVªj¹ÚíþÞ°µ˜jQµ4¾ ø¸‰ä8„"ÆT' 7!Ǯ¶TÉû'kKI+Ž ° ÊPŠÛŠâ8 ҌΠ2aÀl¶ÂR;ºÐÿ:*__ZˆÂHo…Ä ä2â0-“¨fêÙÁpÿpØBioÉ"oÂÃ1›ïS'£Iñj(q Ð{.°?>À!œFÙ ì³¥Úk@˜wžòY®´“+kKýãôç?ŒN,)L-YÃýÄRb@ÎÎ@¼Ý‹{çÛý§«þ¤ŸfËIÒi©K½–Q׺b,“Ý¿'$"åàÕLwçr&eb‘ÒŽwåÓ0°ó—°ŒÜH غäßm/} ÝñC•àóýöˆàê±:Cˆ)ÆK@¬¶E!Å`"ú2àYKL m¯²”UFÈ£¡¨ˆ_²~&`Æ#mâdh?UfqaQâBÒT”€(+Ro ½ÊÓÁé†â(Sc!³I7,Orè´ -Ä›Iô"Í9œaŽE 5.aÉÕP9µÐE+h²X0.Èe'ayñÜËшŽ{æƒ"V“š <û­¡äú0CªPÔ¢DbiT¹Ç ?dT¶„l¸‹Mdá m· Œñ?EÄQœB¬÷/ˆXÆ­x¬wNÂp‚\S&¦Øa¬ßM“­pBÓÑp¼?¯vÚé(× jšJE*Ë ½H>1˜ù…Þ¿ÇÙùVÆ2ÒyÌsbAÚY7ƳgWžµK\,•¦;B !üJ[M¯;ì)DÔ}É3W,…Ú™fí ^SÛP_ç?(»–)Ž0\î™™ÝUó_à MTDE’àV$Q>.ñ ˆñC x‘(DP/¹"!ñà! xñäA¼xR=ˆQÄMÖeljî:Û;Û*믿ª¦ºÇ™¸Ã2—éiººÿúß#ð¢ëHâsÒ¥óGÑ’\Ûc٢ϯœùqhóÚB|új½zÿíıã~¿zó¶¥t çÐÀÞõ¹‹ÒÁ¿\8=´gÈ?øÙËפi´ƒã„is›Æ¤–"1Û?ž) sÀ}Òæøv›Š ý€á:°î½Lk&ÑÛÆÿ¨¬ýô{{ï1/FÇü|nøïø€/[0ïô±ýî¿¿þqýîýa½shdÊzÃpsbý0†;ôÛ±qÕ/Gvm\]Ú~ÔŽz¿§âÙ•SGïÚ’[ÐM_xòœh ÕàE[÷2ëeÈ6¤·üvNÞ¶œÂ¤Q"·º˜žPà… 5Ï1íLaO~¿³÷u~9Ö8yé¯[÷†±ƒ'²„ñPBØ0ÜuË÷/)>&–<Ψ_‚Rã=¡Å»É¥Û¦°ÃãËë›»²Í‰!åÚù$ DÁ^·ª£Ã—tÖV!Éà#O ”Œ^îm÷VýZòéÀOßmÙ¿mÝÁó×FÆê84ƒµT7*×Mô7g4X)‰5¦ƒ•¾C;7þvÓŸ·¿Ÿg/-éè›èñ¿˜¨ôKï/ÂJè®›JèjÁÊùƒ«—åsËT´¤œˆâÿš‰î6±ÉúDR¢ñfÖh&Æ2™B h†Àh«#³4¨•7,H$¿ó´‘@ž&40…#nÀœ-çÂ<¢`œB<êP™Ô‘ZŽæ‹3IÖJf*a ð€¹8_5i†£µ–‹PÖWBR­åP%è%•Ç¿šˆÞÅòëÅÁú…µ·­lljFU+æVûKüá?“º§Ëу ƒ+ ÈÁŠe94'ms„ÑèCõEî¼d„–Ýn‡_f€«0fy'%uõ¨4£Th9ÀßSò.Q9¨º<¦¦…¹ªöIÇ÷r!Ï*…É ¸j<”%©m¼ª×]§zAù:•ÎÔRÐáQFê‘LÒé/ç„óúø«Vòº%T%3µyËXÆÉš/Hêъ>V*’CŽ­Ð“zθ0Â.*¹×–EHj0ù©aúšÐŠT#ìFâ°•¨§¤žØ†JÎi–fP6ÄiªG¤4=ÖÕMw-m»œè;‘ÇF-\Dý^°Ú'•Êø›ÖâϪõfZæ|:µ lÒ˜§œ„²ø©r2šQ_©7â$Ÿ˜®BÂL@.çLsj}d„ÌÊ3=?ñ°-yQœÛH“w9Iœbä°ºjŠsEõ#ï ìú}ã(¢ð¼™ÝÛ»‹mL¬(  )R„„DŸ$ZÚÑÐÓ Hù'€Ê”@C @QBásœp¶owæ û~ÌþÊ­\áÊöîí̾ùÞ{ßû¾l0…¶ÎÛŒkÔãå¶,¸˜Þ±.»{¶yîǽ[õÏuAs¶¹ñÅÍO>ùêÛﵦÊSé1+Çö¨«=±êBnˆG4ÉqNŒròj*ª"¬83«Ô tY=«Hÿ  w(Ã=znò–j$Fµª#åÝh]®Îþ¼|qç›Ïo¾ùþÇýóö †áíb!YZO-‘†ˆ&vÚFþ0¨q˜Ë^üôú;$h‰Ë4Ö¾ñÚ+Ô.Ÿ?ï>¨ƒ:eèT6‹ÛL™Pú dQJ¬ê»5¥ZlÛ̱Se ÓÒ'?kÉð14p’`!)¢v~›Xýø™Å¿/]ØÞûìÆÞ×ßݸõ%ɲÖa-FU)ç¸+M°ÄkÒ\ŸA§#q.Îa¢¼¼1šÛ–b, : ¼#(ÚN4Et³ÂÚ&Y>U n1åðen­Í:™+ë=ØF|³“±”‘8NÙÁÌúF!ѧ]A¾ä椸~íê‡×®nM âè™»"œ7 Ù"¸öÒ1š¡ ¹dûö½·_ÿèÝ·v··4øÙ†f0¶ÁÇ­7l­"›‘;ö:Z*Ľhc2Xõڲس)kÝâôáIÈéŠ ÊãiLèMÇ$èéIÊ5UóÕd§†Ò/¸¢øë®¯x8¬ ˆãý­µ¯Ã³#éS°r£7gé•mŸÓÇBÖRãÖü«3™÷pê¤Á ab½¬Kês²©°­bíâ«çg—¶·~øãþIœK¬f9오â®Zs„7îÞüh·FЂVG·þr÷`œqÂSèñHeB’1°6ç²9N,‹‘WùýÇÇç7`c<-+¨Œ/jXÍĺß·÷ÿ˜ͬ$Æ–ê¹ -*Ð*Šñ•‹[®ÈrŒWv§?ßYPL¤’ ›°<•m³ÈŒ ¶#²¢—¬ #‚Xéœ8ÂðÛ½Åþ‰w‚ò;C\–“óS«ÄLœóIžyœY–0?1›#xé¹â\æ@ÿ$º8›Úqž9.¢:Ï‚Øèˆ º©ÁÚšÃ6°x74 ÷˜jNÞ›:yÔ:]à{£oäÙHÈb:)ÓÓD/½Aì]Jüè¼Æñ5 ÍPFÖŠ1lkŠ˜+áVYËT“å‘WA´j@ £ÕD;BÀ2= Äeå!ªŒDNº o®A~¨žãO~gž/죓’ãW –õ–©s¶ã*ø 3“xD¸Œ&;bÓ$OøF™#žLç’yx¸ŒXýú÷<+è`/¬N®8nö€ÅsÆBUÿ{âd—‹ìËß:1¢™ ÚtÝ©öÇa±#®ƒˆºº»L™ncRíºhEÓðßÿPv-¯nTaü¡¥"VíNq¡ wº¡w] ®Ä…Wö(þ®éN°¨›J•*XµBMÒÛÞLfæœÏó=Î#ÉXì]…$—É$3ç|ßïû=ªÈ@ÅÓ|ïˤú5~¬0îÓxIº¨”4Áÿ÷ñ;§Ëªýâ·?~yéÊtoòæk/O÷wÓóçÞ;ûÙ߈|29¬;kPAˆ$ жñ²»s–™Lºè4QhËGǵ:j3 ûÃX% ÜÓÁÇm˜œŒaͦÿ†*ˆ.*W@ÌôæÕ›”<¦Öÿ“ãÖ胳¯¿õþ¹×½É– g$¹YŽ"µbä¯)­ðñ'ïž~þÔ“Å2†"¶Ò¼pê‰ò8¿»úáùOC¯yåê5º‚,_ëZ¤¦(‚ÈuOǦh•ŠuΡŸ2ç5ë‰)à£,ÑI»?q29 p¢²ä]§˜Cµ•žxO:Á7^yîÂ×ßþÕe¼Ñ!™SEŒ6‘öÛ*mÏT éc°Ü§À¥¬'nwvà)GXœ²hö@_$M0¹õ4¶Šˆ¡4¾ˆ„Ô¹e$áa(1z©Jsh1S,MŽ![š¦o¹ù4H¶Y© ñ\’˜Z§õè´ôœyñäÛ¯>[¨¯{èB©Ýñ‰K?aU.„u!V1\;ýÌS}tæ¥ân ;N«H1ÞðÓ¯–:ZL€M±­È÷¼)äEO`Âl–#es¡Â·ð?•!ú?¬…¦ ¥XoüŸo?˜¼;E4(íPYBwÎ9kâ<%©ê™is÷(º­¹Ùk'ža úæé—ÝË`ÇQí®ùÛßÏ6Z[âÚA>^È3E Ö¸=MOñš8Ðßß86=>Eéñ‡&?üñÏ®­9ò:ýp [Òû‰·ŽDtúX4þ÷[͉É^ïÔå_þºy§x;ëqc'ˆW Hï ÞTÈí 7¬»ÕºffÞoûÐ* ÔùÊΗþ羚-‹]ϼJbí áYמÈOÝ}d/ºõplzd~Û͖ݲ'ü5”¦èˆ+2E­ë‘5Gï¿ïúâ°Á!ñ )lÇè>4ÁTømцú¯fî{‘¡‹‡ÌÀHád¡>Ôp ¬\(‘Ý£Gª&£ÜÁªGgª~¾ÑÌ݃5 7  (Ô ©ÉXJôy„ä-D±‚´1ÎM'£a ¶"«0o³fÑ ;èãx‰!¯vÈ©xæ+Õ¶Pt/ Ò‰ª^.?ÚZØ…pVen ÙŠ14÷„JèâäÉ!a¼¾„GÐ#3ìHP·}è§:\%Ãvó@ß8@»ÅJ©&”ßžiâf¶ê¯ªUkœZÕzŒšÒð9êð2P´ïGÆM”^RgÎJwâRiLœ”òdØðWs¤æëɬÔù8¼µ´õ9qƒMªt]ÛV­Ø}Çõ¾oÿ¯<άl…³ u=jŒÑ³„MĘ70öÃ3œ¨>Ūé”kövFm‹ÕrlF—®Í®ÏîŒGf~»],û6\ÝxlkS3;…{hWTa NH8¶Y ™®åŠÒpÝÉ]T´BaåìãZ”Ë>Æ5ëkHl@¢æ*õ¯Œ]9kTQ¾ÛdfMˆ¢AEjÀ.ˆ–Š`+ØÚjm/V‚þK ±ÐJ-ÄÂÆB+ w0MBÔ83¾wïYî}of²u3¼YßrßwÎùC¶¬‰p¿Jcî@Ž{c5¢ME±—™ÐŸ?s²Îë8{ñ tdƒ¿u÷Áûg÷«Îñž©c³ß¼ûÀõG¬Ô¬ÜÛ2æ~’L¦1ýRf*K"Ö1[îÖŽè*å«Ä¨\þœ¤óK '}NŸ“xèç&È>Ý-Ž#™ú\ïË$æt7y»–2±ý˜O¿¦#ÅóWoÏ^ºôôîn];zè@ÞtúÄaª£Å p£LK/µ ›‡Õ 6,Éðó2†Ù#A¦KËùª_¾µÓ5 ¤R_ 0$@¨í,Š;Ô;Qßd„Òü ISTe³…¦œx|£ÏúPј…Õž&{žgJ"ôyã@•b6—Hç\¿çɆ9Ák9· [ ®ãˆ²!d_߸]Ö‡Wb0LoÖôW×ÿRⱬg\³9Ëfüs6LŒnŸ¿r3•OêHrÝM¥®H±D‹H! ^îÝ>6=Ù*ÀEìšh]l–e|BÒ*a ot eLyÂú Ú‰ßW¶Ê÷ ½ï ´Ñ0ØÀU˜¾£ñDµ({Æóä+MEþ0bg7·Üû²´²sk{¼©#›ïÓHò‹Qœ E7øM\(#Й™×à1ö #ݳ¥´êÓÂßK=xn„z´!Kë»…mŽ´öoß:³£Ý)ìÏßöc„Òñ·x€Å ×Á„¾¿ØÁBâiÔFùIЍ\üÈošwêür/îÑ}“cñ¿Œ¶M׬­¥ýܯâÓR7¢/KðkPƒ¡‘DjrSŸzS»ûáj›y’jŒXìx4(H«Fž 4ÍŒ E¬"PLQ̽dK_l·¶ÆŽ&›aêØ0z8$iîLk.² †±¢Âà‚e¤(“Λ>0U”J`уí(ÞN Ï0Yð#|Òj{ ²‹¡ð\‡çà …¹i`WÆäx¼¡©½£þêí=åU]¶ûR^.±›×fFJc:7–üX½ø³÷³ 3£ð»v—›ËªÎ‚ÇË—Ì3}´Ê#¾^¼ïHUÝ%)¹IaÀ¨ñ/È^”mL–õ÷àœÛ;Ì–+efËXŒA!ìNÈœ%%NêE\V×½ûÅ¥?Wî6y†=/ô¢–dqà‹›:[_˜µà~ã¬y»µ·¿ñ«¹áZÙ©<ý…ÙÆ‚ÌTCôtÏÝÔî3ÁzâöÎCfËÎÍë7.RKHÉÄ•Ûàz5$/äÔ“òŒ‰K“¢SbÄÙfí»ÔÒùSÍŸ=íR‚=úËÕéqá!øj´Ý}ð]ùïK“fä.HX– ¿M÷úí•çnþpÜ‚ƒÁ¯!F*‘W *xÔŒ’Þ$ã+; iõKÑ­wíÊK…(»Ux?Ö80ýª þçië_,_y•ä~¢á¯wÍ=áU^ï¥4ö™ˆàñãûY?‚ì¨m„º`µÚvðþ>Ê`•Òf¡Ç’b#ZÉ´B°ñ°Ô†äì0Ë\ízIJ„ÜÜHd‡E`†ª±!2E‰J‘C‚’(7ÔŸ#E¿ûØÕóĪ™¬¢m«ù08Ø`p% .Õä €Ñð@?­¿Z€¾Z(‡2}azÐ$•/€ø¶ÁQ7Ϫ}ÉÓ4ÿõw<RûP>O1J_F0[÷˹¡å:ŒÇYȮ†¦PMM¡€[8kåE,êr)уiè~4J‘~0œp²0K6ät«hau‚€'GÝw@u@Ó ©P`æÂÙgd/vO"±³… ^dïhTŒ•rDŽ&ƒzF%)qIT¬&’û>(›‚4ñ¦KÎ~ˆìaqq‘ùA‘[Aj|b̘‰E8¼’…G ·ÚÅ„‡º–âJ~J ³9©)”\åÈóØàÎ:làŠº” ª UÝ¢bXtŽœKµ„.اW †x…ÓELRA¹Ë®Q¶ßÅ‚8¤Û1âv~4- ('¥¾U4tåh1a@IòHŒ'ÇØ-Ô®~HŽå¨(’èd €r àeüssJ…Ï(áFÉ#–(\Ǩ…Ã(i†&A¨`x†å\.„y/xbh*ÑÐfÛ•Õ_Š` ¤ƒ¡ iˆ›´¢&V°{1xBó ^%»ËýdÆÊÀ$öòN¤”6>bö€"X$U¦Q¡ Lhšâ=͸à’çÆøûWþã¥Áÿ ÀصÆÄQEá;…Ý…e¡ÈÊ‚a"µÁSV„´¤¶]"¶…¤R4mH@š*ÄUcƒ[›j¶ÄDM°©ñ•%QÓ˜´,Ñÿ4¦M|EÒ"¯…Ù;ÞsîÌìì¬nîÝÙ;»³wîÌ~çžïûŽl<oHl1z¬~(›jù.˸Ï\<³°´üýµÙ®ßøîúìÔ•¯‰`qÇ'¾üÜ™‹oØ ¡©ge­»­¹¹ghvî&JbÞÖ(J„šŠf.½icØ3 ÎÚ³GBï|på¹3ïé4eÖ”®4ﯟ¼=j X÷š|}0=ÕµýÁ’î¶ÝÖí—ϾÔûòØÔ§ß˜ô÷Mu¯õÛ¾·ƒö™,hå^:¨F£([‚ÿñ×%j´ DQ¢ž³ÕFŽuž:ޙ؇ÖBÁµå½¯ŽÃ–œ-Áö‘7Fæ3ϵàÎJÛ»5e>Ì ü̯”‰Wúº÷5ÆñyRÝ¡]µ¬ =5|Ž… À¡Ôërkb¬›õ•#=ûøóíÛŠXdEiÄëNn|¨Ì쳿¡ª¿½‰atþ’=éjm`žœí·lwuí ÔÜ_Ð:ø›r@´”°rž¨W™Ò¸Wg&Šãt ƒñËßöܽÃþx´¶üêOs\ƒQ]šÿùØIðÕ±<ªK X;ÞdØýÅ ÓÝ þ:Zvœ~z¿-_áMqí­¯fíXhWhèüâÊ:Öo¡U>îK,9ˆ7.Xmj¨Šmÿñ—›¸À¬VúrÍþl^M<ßÁºÙÁô³‡[·Âì Ö ?Cüõûò•¥ l7¸¹úKr>d¸ß÷3+ŠsY;º·þý/¯ž¾ôºß HEQV]y‘yœ/t>ÞÓÆ‚¬ôö¦üÌ´¡ñi.ã†Ê"á4U»1)[zŠòž[0>’Dâ%ó‰0ô^H5‰Kþ6ë›M*•n².nÇâèYYºY‘.ï°‘+åFÜôDâµ¢jb¡ëÿ³TBZ¡(mîIeUY¾Ê^W%V4:NzÏ5G¯åsgeýŸåõ¢ wTb¨[3Sç—•(–4âD?Â唈ÄTÜ–" æô ·¦pw«åér\!½ÉXVƒCà³–×’ÀØYv9¸}祰zãöÝ<¯c1•%¬‚ cA”Œ ̽Å-©®Òìü`—ó\j¶7Ùë‚5æò϶Lõ«_ç›o”4·#?ÝykaÅ›,;ìà€é~gUY‰¬ˆn Œ˜Y‚ñ‘T\ÖÐÁ{"/³@Z‘Q±¨[!Òw×çWIfJ4'-éïEÑ„¹?Ã$דç‘t·ükiíÖBD_¯'9CÔ€˜µ¨>‘Ïm1ÑÔP4Ì?‰QܰU°¨ß4£v=Ï¢;Œl&E!•Íø0Q$D)Ó U «<Û+!Çý z’D32Gkxc!EOˆ„˜é@8Qy1N~(úˆBi\˜ QLn#zõÔ:ðŸHQ¬jdÁá"*'ô²¢¨ r·ŠõThX‘n+Êïÿ¢Ã»@)¨9ÙÌrʘ­€™À­q0RõufÌóÀz¤.M@®(g´ê‚UUã^ô¨ ¹ç‘™fŸB‡(EEÍ!ÉŠ Püeç¡öUÝP‚IdÓT–Å$w’Ã!­cÖ¨·1­ÕµozÉa¸0ù ”E@àó|N”I8nh"ÀýF‚JºÊQAw ?JˆqQ£5jr)5uB§’ FÄ‚ç%SºÒ\ œý¿¢‰1e4^ésÈq[í [ŽÝÿ€±ë âã;³'&‚V1h Á´!V0üS4m¥*i^l5XlS 4PЄP­>*\)–¾´ú O –¼U|ˆ DBh%1&žMLš3çííìtçû¾™ÛËÅ yÉq;»Ãìïûæ÷‡Gbµ|Sb[j{.¬öŠåEÛãRgW¡uߎ­ÉŽ–îë<¾y9Ù~LÁЈ”"“'ŽÚ¨=¸]÷zöØ¿píüÏŽÔa–Etœë×VÞ¼xv]l롆“-_9¨4l>Œ³}cÚÍH¶5Û¨ÝþÜ$knÛP}õ—ö\º(PÞêþ¬Succ¨}äÕÄݾÁ8¾0@ÿÔ‘½ÒWð¾õ8³x=¼iիʯœŒ£v{|³û“?Ƽš¦Ý ø¨b™ÚÍø²¾6œføåÿ„ÀóÒ?Òn‚˜$=Û™®œ–üIÊI°˜DµX§Ù`Ù˜=eá>ŸÊô§&Â5£fP³Ã  æÔæéóýK”ò1Ðß‘…KPÄ¿t„É<<{gpìîàø­þ×½ÃCciá)f³/‚áWï¼ÈñÆyÕ’²L¦³¹©w>Ú¾ çËâÒyˆå†ü`A¢²¬´|ɂڋK汌猦So¦Ã žòüi‘ÍŠð²9O¡X¬Ê“æ’;Å—·e×Q&•‚ENOä%†,lùÂB!뉑ÿ¼ÞÔ´/x‚ñtNô¾}™Î…sÉIçQ*Õ€]w]p ”¤1%ýSÄ ‹ù· (\ê7¬& #ïNñ¢«$›\Á<(Bàe¤”½…0Î嘷¢Þ}Â0æ¡`_`.2º e¨P°¢´yHÀ®B¬®Ùm’šË¦îºÝ¦ÍÖd¯Í\<ÿùÿ9{vfCÉ0„åìì¹ ™9ßû>~ý óA¤×ÇÛKµãà±=ß÷ÍKвôŽÝ­ÏžþÐ0‘gÛ·,¾QÊÈÈÄýO½Ú¼}_ãÆäÒv“Cî½k aîy̆ö “ \ÿz²7¼æå޶ý‡¥ÿ•ŽwÚ·Rž ½‘+ŽÈðX<™ö÷§ÇiX± ÃÇ»ÞÐ­Ž¦M»×¼ÒY¿®µçÛŸtìÞÚ²––L48–GvÊk‡,¿¯÷øûÂùð­úºÄÑó]¯›¯¨[XÊú?G&T{Û{G_Ú¿vÇÁ¦;õëW7> æ0™L÷ DuL/m˜h\Í‹ÏñÔT¥ïû=6™ºüDÓƒÛžy²¼ül¾­ëhs{×ɾí^ÝpxÏVF––¥ýg‡&SSŸ|uJefy.Ýöÿ1ìÿá¢ýìø«7>Þ°Üq%½Ü4q[=óüëê*9üB:㉠õÁ;7ë¦Âgþzvo÷뇾Ð'йíiH’™ß]¯U{ž ¶tiÙÛýã/ »/ݲ~•Œ0rŸoÏ ;æp‘HÔò?ÑñÄ?é+þåEÇâ¬tf× ³A¾²­î]›UûL®¸áÍ#ßþìÑí¾9ý›ŽÝŸo~3hõqîÇÆ“±ñ„gÐ «óŸÉæÃƒ£ Í À4Ñc+ëï>7ñ¯úêDdõ®·øü±öC‰K}°Úæ¯ÑQýzú—2¢1<ø÷l¾hh*Qº—T,SX‰ºqòóÀÐ ïëøôë™\A5îÙ´œ÷òzù!Üãž›Hz:_ÿÈJì_*@)Ô^ý¹^P`ta&t%ÉŒõªîåòbeå ©Z‹©‡aý¸|>å­…UÊVË–¹._¤WGÏwô³j£>ç0ª;þ“‘ ¡ørU¶¥yÎ.gsÓÙb<3Mf@±4dÇ2TêX°²Œ”Úy©0 át22P††Äh°¾Yjê0ÉqbqÓ,åmûb¦8’,Mæ—ƒÀm V ÆrÝ†ä‘ Ì­óélɲ¡ÀÕ0n î\’!€` 8[ÙÍ!vÏíuËn«5>˜Ê]È\ø/uµtfìJäbîüT!“s ˜m#“º¬%dP‹‚Æ HPYN]M`É­µ2;†Èòd`”ÜÛbª6' —€÷>Wþ2˜g³ü5+6U˜.Øñé9MÙ@D~R0fd93D°rðQ£Ì^'Щ+Ý`±‹£4F/*t4w(Г‹ñL+Ä ]¦dJ²"8R‚O—M^‚¢²P,  ÌgH¢rt×bé˜ÅmJÐà2ÿa>£Uƒ)yòûOi&`2¹…5]6y}IP—kÛXä#·æ9¤—_›&ä¢×r‡H‰/FÄ\X×EÖÅu¤MT(Ò Òë7hlM!¾uÕbÔ»Óƒ\Bn10QTq#PxYUµÂÉ1(ÎbÕÔ-rf¤6àeså_F®1‡H9ìLn±6£‚F4ƒ—}@±¯3‹¤’ Œ¢§¨v…¡<Ø_¸žâ€Yx¯1Ï*Ù;Ìp| WÚûQÕ9¸îc>•õÓÿàíêcª*Ãø=ï{R"Ó»%ëªA5 †&«¡iÆîŒ6V±aÊÖº¹ŒiÅÚu«¹;`*›b1ÒÂZK°²}êØò2°Y-»K¨[¹ÈÒ07S äç£÷yÞ÷œóÞ{.ð_ç/xÏåÜ—÷|ýžßó{~:ó3TqjØTþ2›‘%ÚX×Òý)\¹6;p[ÊÌÍÌx§aû…ËWú¾íg |f+֜ќ…·³½×G‚Tž®(Ê1d]uáÒÐ4tûê–ɨ½ü¥z¶'­ïÁ2e÷6gW¨ì‘úm^š¹þ÷aÜ4#­‰‡úª¼ ß‘¶WåñÌÌ ¶®ì{³!°!ug¤ÿçANñV7´„$¶þñâ"t¯ç6Ä~µ'HϸµvF@Y®`VŠR/ßΞ§‡>ï9t´úÛQõáÂ%Е ¥;¡Ò• qT`>›Fk牶®žoï’%1ÁÍu"' (ÁMµáͲa|Íkïõ†s×±/!¾° =æÍ“ÑØ¯Ÿ5çØ¢©Péªçv¾¥ðDGâ¶æÅ†/£?ŠMhâAš„ÎóÖny¨àÞî;ä]Ví8{~Ua^÷þΞMxÿÐr¡ I©èa=U—Džá²RÒ¶ŠàÝWäJ¨½ÿép o ÀîËýÛ78»*J–ïiízpéâ;²\½Í©ÁPÝAËTwªÿl羑8yô濱‹¡nÊÃE ‰œ™TÙ)Ê<+ÙøAwãác Ú~ºwËŠû µo²C}ÒX-ó $ÿ®‹²üÎ`{Ïw±ß~çd|¸¥cÄÖ—-mÿâïÚµGNW7fó¬­,¯,+–cÄô<ùJsÍS¥[*JÜ{íÝ®¯Ïü‚<$vnh}ø ÑÒUË¿3péê0[†°×æÊ8{á|?ÚL)ë^~}ù²Üv>ïìêè69n¢ݯ Infå劖Ü-£öM{Úàt ‡´·j½K¢ßßôa·( –¶{£[›°ñðƲg[íŒÏqrGkç}ÿË–T‹)@!)±»WZC¦6KMzÚ'qE^L?:Oîo:“Ð?e¨ާüŒ·'ÚÔNb3ž‰ÆkŒOxšòßiÿ_!r°¿Ë'õW%ˆÿÀ‡1ö瑱 vãk µ£Y,Åôá.U®=«HJø,»á¡pšr£8>s3ç&Ò˜‚í üa_c†3u‡ ˆ  ”Bs(‹7³Æô>úf°×˵±‰‹kù9l:ófk³@XhÜPfi°RsÓÕEþŒs×o‚Y šüAïR¢^Ž_¹1΀Žf&ME#Âq¡$꘩™í¿u±?íÌÐè൱4°LdÈÜà¾+ÈÎ*h+ÆÖKu ›¡ŠúaP‰ŒÇ!f ‰¨0+he…ÔJü‹ ‚M.&q]yÑ¡¼#¬ä;'¸pÅudóqûX猫>nŸÏæŒt`ˆÒÐÜœC¿ ôbaŸ4ÀÍ^AøhÚ|8)º— ånƒÎKÍMtÕ'¶í6±#e»`µõ¨É1_6]BÖä*¬ØŒ/ûY—EüÜv {0ÕyË$4}À.ppCŸ„p‚] “&?DTã¶"Ä7 ÍF ZsÎ-ƒÅ h˃˜ ~ý &›¢2ÄZ”j†n`žÝqP®€­‹n†ˆæ@®¥5Ntz UÓ5åø¬z|ÂÔ˜'XxÀÀmy 2y_ôå©6‚:·,¡¿‘q@@dJuve¡ÔJI]Tèx2Û±Ö]· m}·•²Æîºà1ÛWbêöüÏÿ€µ«"£3³{gbüI!1ŠÑ‹Å…‹š *Jü‹ H ÁÂ`!–6 VV6¶ÚXX,rb¡ &!&$†`<‚‚QÁˆ‚P#ÙÛÛq¾ï›Ù›ÛÝÓ)ŽÉ%·³;;ûæÍûÞsÿ‰ÚC—q}(MX ÿ®ïáH_a(ŸÝ|öxw>›¡è¥ÈëâÙS#“3t_¨{"ÓÒܽ{{G[kg[kâçk\èáá=vSahÂ8¸±þÁñÛ×lÝ|G%|Á¦±û¨E-'l€~·0ˆ–µÁðTU;ú—òGöEhò+çÏ=gÄþ&ŸÛÊìè›@]žàõÃç/wúŸ^½uOëãÑì+1eX>€Ã¦{WîÐζ ½ÇÔµatìÁŸ¸¢`¡ë x,)güJ‘”7,ß|à´(g¼02}±·§rÚw¶M¼ÅÜÏ;xæNc¨±6©\Êg3ĉFH÷âÛùâÛêØF#d<™äPZe#c¢Iâ]*3eâ{‰êL¸ÐÆfnZ¿:Ï^çl>kþÞÀšÉÍ?yù‹¹\¤q(Õ¾yr[|ÈÜ|N“ÄxqÎè Xs|vDÚ©¨§«Ãþ'ÛZ7\:}”™ˆÇ”‚ø¦|®êõ`hŠ7'fmà®M„dï×ÛÐx›Ày€bÐm™{s™sÇšr[Ö·oiN¨IãU‡ ’©–ˆŽUr£êÚQÅ L½ ·ežLÎÚÀ]á{¤…bÝž¦7êó6pç䇃6 ÌxÛ±X,†4~!ÿ©[ñDN="sFµÂb ¸ÆÌ×TÆífLK³Ì­ƒZ±¶Ö<(»™P"¾¯¥„‰ fì/µµúŒñ¸'ÔíD%Döü >Å=Ì—ÀËDs°À¤ŸVÚÊ^I¶4Ö­[]÷îëÏE„¬Ñ›U8M+S›Ö8 zmo^UŸrÞûåɲCÒadg… ´ðýÓé`5«Ðá\ü^Î[Í­)p¢5{™’yÚ&9\˜p+ƒ°¥°Œe}7Ù*£w£cøøÐ¾XÝíÒEŸ°)«Å ÷©SL8½ëì•át`§…âÆ€E:Ç^jtÆXUäi¹IÀÝ/iÔÐAXîÉõK`Å«ƒ ÕDékGªj¡£A€þƒ’p‡wÒ„ú³]æ²@?ÀˆQÛ0°u«”ÇSá0bòA¤4j œ%O_,­™5—Æè Ùy‡`s O¸cæiT ¡‘""*¯Ð"È,{,á ÈXÖü•DÕRìúòTSÆÁŠŠà63 RÌÐ) Ø«XXô;™j¹Ðòø´ÊýîÏ=É"žøÉŸ**âZ[iü0Ô×cšzptW~J8·.¯m²ôažp@"w›„)3Ÿ¿£³§³ïb4dÊ´ ˆ1wúâðÀØå4pÿö“çPï¹3=쓾ØÜ¸ªEß|–d3øØ èí^Ù¬²(|J)ÛQºîîÏHh”²ˆŽŒ‚¥Ê¢f¾mP­7Rè}{Tò*ÊnL&èLv}MUåVÊêß1î)GGÎß¿}#Æë{ǯçžÏΘ_|tg"ük½ÙÐ9O’™GÀàhD™¬çÝl"ZÛþŸ’eôµ¢9Ù<å¹Öÿ’íIw”Cq<³9«X¥2™ÂC¥3A­AQmÂJ[9ÏXϘ‰R²ŠmòºëEµZ–µI°¯õý´×ápCÖjŽ´µGÎSÎÑbؾ7¡À±€¡™ Ü\Ò4ªú»z:Ù;[»U×õbDÂL´†ŠM¥¥.àìÈÉF§öHͦÓyr«AŨ Q¦ÌWRF¡ œLm¨´ `ž·)}¥îI/Y£óÇ–+Í—ÀçRoï&æ?¬L˜ÔIçdÒ;Aà#U¯\GÏY’';ÜØÔ|tÄñÖ")=j9)¹VÅD^¸¯ ½¡èQdŒé`:ÁN`eO}Ÿ$Q®¯\.@Ø$„ë9ÇŠžëy8¾C€Jt)U²AGæ7ÆbÅÑÖJªä·—Ó4~³%¦¹šmV’†FÊ(øx¨ j¥!µŸªØ•I¥‚ öú䘊QòÐö§ p2 åÈÕ’Ç{nü©sÝ0v5¡uTQøÞ;wÞ¼$¶„hüÆV($$ ¦”˜¶¨…´ A°p¯WÙ(â.[wp¡ \ä´„h$¥&%„”h‚¨¥ ¥ ¡ùyÁù»Î9çΟ;º}?¼÷fÞœùÎw¾ó}2‹ŒQi‚½"-5F“Ï)‚ÖC‹îZ¦Æ­ÿq?_¿&ÆG¼®£"-Ñ'¥/]½8’GíM}ñùW3´xw¶H·+Tu«Š±;T‹ÆOËŸ|0‘ÑùcÃ_ÏþH‹‰ãc Ò‹…e“Y‰ã¹o´S·'÷‹+¿æk,ÜN~‚^»¦wšPÌ1þFµ^ŸLz§ä[KàfÅ8Ê‚6Ÿ ó@W‰à<»¸:þú n–ž{j ÷ÜúÖߘ:_}íå¬ 9j.®ýÎh;½Œ‚¸Ò<®Þâg\<–j¤jpanéY$%uš}¯í?߃¹Qÿù³“ï_+=ûý͵ä¿ÿÃÒzþ©·_øfn™–Ô¯ŒdZ7–Ö“«r£¸¬ùÖ…þoçoƒ¨šóÎSí© Ê/ýöׯ½§6À}s¸ïÆ/w’¿{i¸Ì홂_!¡PžîzY/o¶®çV6?žÁÄÖHûQÁdÀIÝyEÕaºõ*SÑÁ˜52üÅÚ÷ÎèPþ‰÷>ûróÏí8 ’ßxæé®’d©E£KWª•®ƒÍ¯læEö—†^úîçUʼüJ_QE³™)O-É=£X rM`¹™™Ëó¢ÿc+ûó+#([ÃV±ãÅ™Ñê6‘«<ßlˆÖšoó(‰Ay®a°…••t{d1¥¼¦2yW¥«¯$P±ý%m†Þ|¥’½£¥„aU!µ™âœFÛù„ZÛ\’¶ÜÊÊ$&I/cßû ðžxÙGÝ-‰‘cJ© t€è!)CÏ´Õ»;@G3ø|çֿ΃Ýf*wŠPN`"VÌi/9˜¾à©DHäOñ;ÓüŸùž+{Ÿí’ ¨©¾žÎ[[»¨NÈîìdýâÜ%S»Çþ½ý“»:öÃv'|䇫Ûûwžœò\!Çfž€†ˆaJ¾³®v¯.“ÎÃÝ“¦»’rŸa¼Ú}Ú« ù¸~€Ìeç üç(ôþ“m'A|ï,,9eÐ+½5J@Øgå2Ñý„<„Ì U(é`Aižp$)@Iï€Z;tÌZ¨¢GÜñeÚ+yBªT‹]mÏ0hÙQ ¬§`WS·…*•F$1åGì `5‡¹ Ú‡N†J«‚À–‰\褄ã{,…ÇúL žîi íßÏxÊ÷ƒÍ8˜ß+]k°uÃ~ŽŒDµd½kè†Þ%FpOg‘0"öHé.3.±‰8ýöO[¥bÒz„JÕpÓWB^'Ù*D º ÉÄ”“XEç1ÂyUºC`Б%e=ò˜±[###hg€¬ïð¤ó½À‡­<0”9…m‘«6Žéëɚ/}·ÎkuÏ?j¢4)Ò;ŦKVYX( )pƒb­Qÿ$h)Ë7¬D°ÐXÎsZfˆx0twCpT¦+ÂUWbì1€ z›ˆ;¼h€‘Õ™|*ÓÞ§†t×Ã_ôò”PªÒ*e–ÉèóøººÐ¸Š0:?w³I“F·Ö-c«ñ¥`|X0/*iELE$Á>(þTð¡øâRÔ‚ø">‰P´T¾Tm±jµ´jš°%Ýn¤ÍƆFwÙ$»›Ý;ãÌ÷ÍLfïÝí¾$„Ýìܹ?sæ|ç;'ˆ(iô#ž3é1̆<¦m,.[$1Mþx¶PuLÜóÃøû~¬P,íèÙñ4„NMª©ñƲÃCƒcO6ø02Èr‹¯Ü¸¡˜žËÿë2f$èýìÐëG¾ùnûméÞx¡[ŸnÊÒÈ“l Ú¤x:u1;Ÿ¿2ý:2ybjvNÍÚØðîѽ»Õ› ¥UgÏ_Ì)Xïn}µ·ÔŒšÇ¯qHâ‚ÌhçÔÊKâÏlõîž½&µzÀTwçø»"S'M0{Y½öì£S³Y5?ý™¡1ï|¨êÖ‰oO9à®^_>phüë¿®½úÌ#Û=Iýä©ß-UÄc¦˜yUˆx†«¹íšÉ«á¶b$¦G6‰¶Ø=äy;0ç¢Ýøúàå}­èÌÓŕ5õf.çg²Wûûn7ÀýþOŽ~qü×;Ò[Þ{éé ÿóýâJÙ‘ñ Þ;ñ΋Ÿ;qSgòàs÷Ú¾ÕÁþ¾_¦ç´ .eÉÍÄ›ûOO_êÝ–êõš\ÝO›0ßÌ$õ5ñ ÑÅÈ&ÀšñLnñÊÒ¿½"<µ‡ÙÜ‘8þÛŒßkÊ p‚ÞÞ¿7܉y.FÓÊöÜ¿óL&ÛsK÷—ߟiëµÔ~vþŸ ¹¼óß3°óÃWFŽž<׳µû­çŸðß­†D—y@ÃYô¦ƒñH?¼îXj=ŸÉ ^"t¯û;24Mìw=—68mLSÛòˆ&»zŒr„wwÿÄçþ#¸Ù?Wñ÷m[|ž»ÅwC‚[£Eo%Âß#òô|]ë~­–}\”ÐD»W—‘œmWÙÚʈi³¾¸¹`u.Ä]鮄‚³B&¬“¡¨q– îÌSã è7~ØSf$°ˆÝaƸöÒ²ªš7I¦‰aÝøR'+•´ïq­â »#‰Pà—–=3’_.w4½¹ãÜ•b©Fæ—ËÐYh cÉŒ=±Öê˜H©Z[Z©mé$K«Œ²Ç|T…$þ[KRšêJ*\_¯…—®—êëKoº3Õ¡&­¸V-Ug(þ·"cKøªŸ›ÚùÝ[ÛÔðÎ.”W«ëKkAa5¼z½žd<±ÑÏ@PÁƒ±7Ö‰ÕVQíŽ;1Xjëà=ãcMˆ*عHÀÍ\]² ­‡Wmk©YMZ•´R'•PÖ1EI#«–|¨‚@FA%s„+TÀsîbFì<—ÎÓ†s4v§6¬×¤ktÓƒò„Um"[€S{ˆ (Ž”šÌýäQÛ1Ž!Ý!Æ…BC/ž]¨àHÓöŠQK†¿G\#Œ[ ´´¯Ï3•@O®¡’v¹~k¢=ÕÆo‚EZ^V¸½]Éœcº¬º0äºVá aT_ê“AÀmAÐÜû€4Ëä>Yƒêü1A̸¿7.èN÷A`û£÷cÂ¥´®L‚éú@=¬é´³PøqÙÒ^AjÚ´œFF¸Ù5áv‰óÎx­Ïž&†¡ç’„ˆ÷¯Zaå1Tþ/cgE…á®êžI23†D"F4âAñ"¸ zPA=ˆ r1ˆŠ‚FA! Æå âŠ;n¨(êAÁ $˜‚f· &Fb4:1N§Ë~ïUõLo£ÃÒÝ™©î®~õÞ÷þßpÄŲÅVx¬:¸™žò²ˆÝ‰ÞMÕgNT–ý“ùnhy{èìuëÛ5¼nuÀ6[×-œ5=>(ZZRì‰Òtæ±ÉPÑ-|¥ÕÛöß?YeS×+Ͷޮm7í9 ø»ÜuÂGN. »“UØ{ÿ÷Á‰*Iþ ŠÖ]>ð¨öe<±W4S—•kTzáºP™ˆRŒXmA{Ô.cc2)ýíI‚Ã…ÐðªµtÜ(•/x~®ªµ½³tl‘ ygª!Ä:âãºæÌNÓ}V@=¡®iNÙN¿J¿4¨¿ù¤þô§«H±š¢Â¡Ç+Ö¸y˜Ï_7<¯ÉPÆÃAëP‘ùæ^@œ ­GŽuT°w\ ››:}ÿC¸^/Þ|¬:s ê±Ïr}õ…›{×Û°ûò¹Ó¬·k—Š#W?|é"ª¼úüéíéÑ Ó%×ö/ßµ»ñ«*â^MãüéŽìïŒÉcˆ¡wÒ8L”³!PE–ù’áŠw!€c²ñà¥+»¥HK~4÷î¾ògïò#¹T˜ ìû¤âyÈܶëF€»@HbÞÝaÀ_ ­¦ÙQ‹[:sŠõ† fñæÆ÷í™z/+W7µ¶,žJ®u…C5ÍŽIÚ+×hJÒ'\ƒ¿ØrøÚ…km¥š%3§,ÁÏùÚuê6àï$ùï^˜šIBw×ã@™LÈÆ$çÄâÛŽÉ\вpYèð̬¼éÓ‹™û—c¨ïÇËLWgÙØ7¡îEÃý¥ÑîRÅ Ú×w¯ mœs»/iÂυȜ²‚¼«ì¹wplºÅD£ÈüH^<³¦/ë>îêM¶ttÜÀ0a„é\´¤S?éöÓ\.?‚Z[ ‹hü÷ïþ–¶îÉEñTŸhüðs€ƒ©ª uX*¤$8á„t>¾0 ó/?’o;%þˆ°F×›$«Sí:éÕ%p?’}¯:R‘0ûÞ DôᦅâmÝÉþž’áÖb ÔÔÙÓ•è/58† ý£‡Äê?õÐ݆ñ+FX`:Å­ä¼hpN$ÄsCúÄáFíçDSW_2ù§=Ñ—34éÚi’;½4Wb™ê¥ò¦äÈ©3´à25É6˜‚d§™ÌÁ’Ö:qäRJsÛRöÒÛ`胦Aø8Å8¬¬€'…oêPõ7‰å„HZCŽ]¥d¸ò€bš*õc»£Ð@â7…ô°áÐå©2[Œü¡…JÎ*hÒTË ©Iñ’2!²Í&HªÈdðÂÅjë4§q9,Sˆ-fMÙFÓ%§+á ÉàCV\¦ ¤)É-¨Q–ä°‘pa4ÊŒpŠ3€(°n#)XJB–>…j ÿJ‘0¿šÖUÎ ë9ºnÅãЙ*ÐXQ*©6Ð’®J¸lúµ %ÜÞ2­JÈ T…°;˜§Tb×gz*!ŽZõp¾¼‡Þ޵G¼58AxþƒæC.|ãLhrèšü€²« ©"ˆÂ;3»÷Š””…HTZ=AO=ØkÐCÐCOaÏD$>=‰F?˜ h¾„bEš/be"A†yÉ S´ðÔ›?]÷însÎÌîýZV¸¬÷îΜ3»ûÍœï|‡’{Tú d¸ š¬ª­ ‚ô„jñªX¯‡[»wÆCÃc_j/ß~¶®¿z;6®(Ž#Æ=.P{Kç õø‰#•(îÏ‚2ü@ c|jæì•ú€¹º5>êzÐõRŠ]„΃ȃ‰…íÅšŠµ4ßqÄsü1ÄÑm]C‹¯ '«UÔΛT[wû'Çs¨ž­Ì$äOáäŒDRw¯ n Ãi0EV·h;JùÃnÜôN[ñ¿oÏ™š£µ£þúdΤ‡Â4“B©öŽþ÷ÑKþ8Å‚¼s* -èÜìu÷Ú;Fâl>þ}ö­æÕ Ø)ÆHLɘè&·Œ­…sÿÀ/°†$ôq\ Ië`Ú®©®|7$Ùã?·Ç=ƒçn4Q(»fÀ®'&f–Î×·­ùIáêv¿³ïI‘ÿäÍØ·«-;Ý ?æ®5=[õqxÜ Œ¦¾Nÿ|'½±Õð´78ƒ…öÁì65 q¤éh€e;?¦f¯?ô ˜ÓU*jçm¸ØÐ:¿¼Æ=…ÄÐ È >„Â…~¸.÷Ñhjvni5b|1½½ÿCZ1)TK­ªà¨ìú¤~¹ºò÷ï8¿\Ï»ÏQó8†úuG©d91 9,–¢E©Gr¾#à`%1ÏÓ“qâ—ŒŒä‹{:3qõ•"w+„d# Å5UàÛqÔ‹Ú®]<á†0G‡rQ~4/"û4,1/X1ád§H÷˜^Ð8w¸F ‘ ¥°‰,xß›™ìôÂJÆ4uj/®d6­,†M·©šoµ}Ç,gõ¿B©ÎV**.ýÉLÎoL-¤×³i²Ú…C½Ø=(p§ð½þD]eùÎ(/£‹x'[þèìá¡VÀ…¸öí^>òêÑîûíè9ýÍ9àVqQ¡bºn €¶™S8r {ós†Æo>øÂ{´©£Õû(T•×ìèþê§ ´e†€eh;(ô&˜:h¾ŒÏù_Üviý¡°ã8bÄlð€ÆÙÖÎŽÁë 'Ó‹Ò.+¼N/Ýr¹·ñB;ÛNð•°¾¤#iÄzÀÚPΆdpÌpÊAÃfƒh&æAG¹–Ð{ ×UtGè6B&"-]ƒµïœ©?ùܱ§›¥ÏÙÖ®¦ÖŽê½N_½Òí[ý3óôãäìÚúÏ?zãXõáHŸƒ/†h"b÷öϘzæ ‹ËðúDòÍÏ~ljëåÐêÇÊvnÙ¤‰’Ic绚8¦ÇL·C×ÂRªóÚ E‰òÏEVYM¶pÑ~Eï&»†'ÕêGÏ¡h‰O]ׯ•^rx"ÈRP:Ž‹ M æõl¨îÀ7cH…¨é%þrûd}99 IÿT(<2ø½{|c ìntHe›î©¹}ï~y¢fOÝþò'*•ø{æÊðø·ç/ߤÏ_w iÛ—êÍC=Þé·W=\ºå y~dqÉ=øåϾf v0dÉfM¤ŽŸnüäµçiãEù¹v»'¿hnùwú¥LhÂQ†_rûC2ôΪ 5uÄ–RônPh~»âî½|½î`UÅΊûï•x=1ê ^êýµ}€~;d¬NÍÂãÉ=†qÁõ<–°þöø‘dpÂqú•ŒòàSŸžûðÔ³wï(*Èã"T/T\¼qævüÈ_7¯9´·¨säµõy¿¿Øƒ”¨— |·–PðÍ[;ós{õÈ3•»” ֓Ǻêñýp±;@GšËñ ÝðNÏ#±½‡ÅÍÌcVñífº×;¥;½覥¢ïl«Ä³4(ãæ¤n¯…ÎW“º ßæ¢‰#…Ô³Ü3òʬ¢­(VDãÙü“lfyŽÍ‡R»ŠÌº°0µ ¥™Újm(?"­µì{s€ëU½^3¼ýÂ_+T¬'ÎÖc¬2q_«Bm®×JPÆ][¡TU†žòõ茇‘N§5O(OZÛî)š˜[\gš`;ËÙHxF+Ö Î™Ö@Z¦¨¢(#uÐ8ŠÄ@€ D–(Æ6ajNƒó—¯ •"tÀ›yøÑí+ï+ÌÏcÀ{WIÁH0F!˜IÌ´d˜Øš³HËd&6z1àÅĈ[B8“öE·YãÄÀÚÂ]+šŒ#¶t‘…˜=I”m^ïÒñå–>…ȸ”pÚ$?_/ݴ΀¥# íªë#%®`4y}69» ÀYlVåp%™ ©VJòGz¼R¤t^’A=Š[¢¾dLsˆ1ï>+ÄŒ#À‘žkh–η€›¯ɦá1gÎTó¿N%1úE"X>˜kSù²W‰Øƒdô O^°÷yé] Þ…TZp# Ò Ðxa&!MÅBݺbÓ-”“\›Š$)óôȨGÁc!âcLî^Éþ»·aeaY˜`„ËÆÄ [´$…ñvš.f2,bm0° Ûiºb»˜°Ø0 +‘b© (¡ÊJÿ¹÷‹g3´Ëp¸X ÒÐÓ˼¬d¤´=Ni? [ȇ2æ N* Äßè#l›6 ò\:ŠS–(äË%¶Îl'qV¡Æ83-±d¯§‰R¸9ÊMÈ]£ª±êÔ5E˜©ë?;—lj( W•íØîKÒ™F ™^ éÒlXÁCÌ#ÌKò,aЬ`ƒ¦Q†$é¶».Ô9]’td%v\©ë9ÿÿY}ûj'PBžËfòqŒ­ï”²0Àç Œñl¢´áfÜmˆÆÚ„„?´ò@G¦Òj#¢Ì9w.[‹h^B–fÑ'âÐR)ò]n?šÃ¿!~L¥\2b¡x ‹§e8pG»‘Œ\Žþ¥ÏÅÑ>䣢xΦ¨.K—dü…Ɉ)Ã‘ë€øƒ‚_FF%ÇŒKžÄ ŒohùʘÌÉ(¡C0þDn ¹jÂ:å§BkPÑD¤ gw6î|Ôäwàrb¹œeÿÍӨ׃–£„°Eäy¤ CA%#"ÓP‚ ‚œÁPI/äPùU ^ÅÞd~èmáX"b?Ÿ°È*íp»œÚ 1c›Æ¦öK˜Ã¥¸üVÙé 5ˆ*òŽ!”nÌ…ãbé8Àà™œ}2Äѽ­‹Ì¬€•*îÕö‹ †yÉàš ©}‡jÄÜV2†iCœÕ6KYË-âŨk~Òä.å;2ºœc™çªÀ?è ÐmF<¾Î—)ž{Nz7ßTg1¤øÓy¤kW§®“"ÄQ£¬ÿñ þú R~¤9K9c?ö[œD"žÛú«SB—9äʼnö‘”ÏY:Q["ÿ :¹?+Êÿ©Y:ü‘GëZÔ¦æ¯ìÅOOÞ›€‰PýºªÆiT¨ÙÑfVØ=–ª<둾»hhã“k(–ÎVH,8,ŠêFh̰R¡ã©YU¼}óòõmÓ¶4Ã~Xßÿ´ú°™êR³$úñåßó¼ÿâ‚|«ÖÔªøñaÓôy Wˆb! ë‹ zò[âë™úî~¹ôû?¶›Ncq…ÃspÂ6¾yuñù¼Xž=+‹û•¿ÑïÛñ‡_ŸVzøúË«E[K3-Úê²,&GæI¿ÌëbQÒ]ü ŒûÔ™¿Ç©00,À~bLdS*åÍ0-šò¦©ü ¾›ÜCG%f…»mT[•Œ¬Põº§Ý‘ o/Ô²bu³u;-7#5åd]oÌd*ãWÌ’âýÇǟׇõªÜtãzçŸårÙÞ¼Z¼øìêâ²&údGóôØm?u«ßVÛkMô^Á  Ÿ²U5¶xM$Ú$oMH¬eQv AˆI¤òã˺b”’¤¢§B ²§¦ó’&¾‹R4º- –$ƒ %É8³aŒo[ß,:ÖF£-F8.m˜a†c¨+t&ŒÒ0T(¶§þ#cW’Ü6 ±±ì\\9ä'ùÿ'’'äßÛ©’EÁt÷¤¶ÊÍE‹DR@Ï —!NM¾×PÂu¹6P‚”p>·q™0væ€ ”àöEŠ«ªc1ÞBa_´ƒ|B7> á’FâÇÕÒ¨ûƒ˜J˜ÿâéuVçøÜ²s‘Ë¡»íǾ©÷m’8t•"ÿQqe‰eƒ#rg¨íðÉ뚟Óu‘4n)„êÈàrÝð0‡ÂÃcß «ÜƘœæè=fHŒø¿n]#íëè MKQß ƒ©AN¬¾Ü–4jD3 …aAOÁŒßN[è÷ 65{n ô®nÂeG i=©+EÞ±gRpiA5}œò¬Öï[] £áyKý‘P‡)ç¢íª¼·ã»!bÊ=­©ÇÖx}X‰;;™Ð]CäneºÏ€EÌt L7Qsôl  0‚a=b b7-;l¤ òŽIŒ‚°÷´§À ¹‡~=™Vî¹ø²)íÅ1ÖͱX[Ž›!3ë´ºg™û+£ÜÊ96½CS)tÅK–èƒb8Šå1«þU±Ú¡ç¥{Ü’ç½î›G ‰;kÁftMRx?® ÃK|~š_Þ YŤˆü ;÷ùqþò8·‚౟_ïlÉbNssrH´.®Ð3& ÌòãçŸ×Óïã’gX§a"±WšZ³´ii)ñûËÇ·CzšV;ÑÓ4Ù=ù;Ò ›YŠê•ÈT£Z™L Ó–Ä¿ý£á‘S»§bFÓ¥fzÂ@PÔ5 ÍÝ–(ôü§YñÞv'ë“,ìÉæõ9ßÅ–b‰GYJ\Z¶”¤n=±27ò,'z¶2s2¡¼€ „´=@°7Ú86gA—S¡qÊÜ(k[=5éâQεo7Ñ’œñþ»ã&òÕe¢˜³”Lˆ`Çž/öÈ iŒk6 »NùýØ*šƒ­ÜVVYGõëç‡ùõm sœŽSΧváNÆì[N§uYBÃÒmÝÍé!•S»ßŸòÃãá4ÿ¦•VJ(+táð²³=¡½ìÁ0Ûƒ’ï! >¥9ñ³jšb^Hû¶X¯¸kh À§h“®6‚W숙È5ä^lmž›Î  ¯í7Ö±ÆÑ~M¾óòOÊ®d9j †¶Ô6$œàÄ…ÁÿWΤ¨ U)B%$㥅[[«íÉvË!ñLflõ“ô–¡ôy-”^ SêÆG-î1jU÷•¹Ú€.2;š¤D ;Àµ!:^àŠÝ H†Öüò@¸ùÅ;‹Rïj¨·!éðA¬i­.ß%¹¯H ßl-k%¨Ý¡·‹á¾œ@’wóT”‘”ti ±ýã,û¹cˆ2%Rò\,+GèâG×Vm ©£dh{c Áè÷yiæ“ÌïÀi9˃?â×UýEÐyv¨L» ç'rúZ ~”»¿í,\ŽL›þsxS4Õ[s¬žR†½>[ð XH¯{ ®5(¦Cë{•C'ãN‡/¨I?Ý0^Ñ6ôW°£”2*tâG?«„º\4½žåVâ³Qáµ’RªŒtüý°|>-¦Z]]ß]ÿ=%˜¹2‰n/'jV$ÑBKµý^s \Ç’Ñ-DÉ7Àòf‡ÍõÇ«»ÓöžÆ„ÆëQÔ¬i„ò0Ñ÷_§o_ò»­ùOx3•?7÷?oçyY¿~üðér¸ÝÚŒ¬Õß¼âtüQ$J'dE· ”š±,iþ¨×'?ð§Çoë90/²yÕc„É*Ì4mÞÔÖÑö¹õ7d«c}\¥äë”Ez}¦Ö,¤P ºVv'‰H•w|LQ»±ƒäöÄBYYIW5¸\µfÐ$%\„¸m“¢XÔúÛ©sE¿1fðí=ç1ÚÖ‘8}¨f1P^Ù™gàø¢²¬kaÚÿºTËÍ’á~Yçiº¨î0yk&nç÷§’*NGœøŽÙnÂé4­óe›q¨Y°L¸x?>^Œði»:Ñi.ÃqŒ!Íæ•ôŽ­2pMÂr=‹ŽÐWJ p"_É×hÉÇ(ƒ$=i]oàõ,³Ó“:_ZdÅ‚¶©õàÐq^¼Þ•Çœó»–]§a ê±Ûb,‘øüÿ7p×±D,XTEÜBñÐyzì¤í²QÙNâÌœ9sΊsn·“Ô ï·ök$³Ôwµ£XÍOÕV1ìJ‚¹ý¬1¤c‘ÑË• Ú‹£Á ,Ÿ Ä«¡¶#´À½éB Ð,gýõCŽ„Hp;˜¸œ°tewvË~Íœ’ИMNJfŸ ¿Õ‹;§üêlºÆÀݹYÍb7ÞåÈ–…â1† Ã²H7{GOhÙO\ú[§®SÄDÕîæÀT›ÜMÇ£kÛò³Ptˆ{+àœÚSÖž¨·]@å‰ÒƒŠa¹‹V™ñÉK9/è‘/Éü;cZk„PŠ ‡šxÎÅUóìK ªzŽ!P“µªBÙ蕼M3°MÜïB\.ºÊa.†RWƒOæ)˜nÂÔ ;õ¤ ßE¥‹v¥-lédXF¼óÈmÈ’bçN¦ lÃŒôæ1ƯšµüXÌMÑÕÝa„+ÉeÝÕÃ;FýW€–(õÛ ºm,xf®7ˆÌæ9ûF49à²wRVÉ\}nx4|‘þa‹¸ÅËïŠͪ"gÝÜ1QzÈäº*ÛDúÍLßò‡š_à®^Üd^Âc¿(CzVÕá|Þš‚F¯±WÆ¢n$Š>ÊžXѬ ÀÛe­%ÃýaÚÊ·û·›ôéû§ï»ÏÛß»çú²°Ì ‡»\Ïö–êK ¯¤^pºÆÉ%›6ÅIS±ÿzÝp/—bJÑïËúáe~ÿ`żMÏ^ð-Î=û5⎙B•‚8‘E…[°‘D{øÍ¾˜4ŽåPF°éÂ0”Tn#{9úá`n’¦ì ¼d…¡%xÐ O)FlûB/·)AEœÄ:‡U–t .Íšz‡¨!‘U2®Î¼•¿F<S|QÆd)6*3;zøuΦøVšGFÇfŒ$ˆ “ý®G§¡Èx¦}~ùûúÓÛg¸ò„#¡M°k4wˆ)ê–_Q)OZ•è.õèÛ4»yžæ·v^&Ç 77vi@Ž’»x¬Íø#r²€å¼Û IemHj Ë3„Ì"lч>é½(Ãs.¯Z¦8×!Ù¬ò3T;±4«‚áµO)H°}#ìÿ€·sÛI Âp $¾ÿÓykŒÑ wéŒC»=±@4ã€ÀÒvßÿÏTÖGÑ IŒ^Je³6V=uÖRY†-øÇËb-„±%µ }øo8,ëÿî–ËçWj0ÕÆ,•j,Að37õ3…&aªª€Æ–ñ_ÜË-ëmºøº4¼MUë݈¯¶°›3¯©o]²µnÏû ÑËRb=Ÿ,åœk˜˜®¹(ì«]}ÔëϬBS‹^QΕFâdFÇcS“×VovTP$ƒ>!á³@FfäÐÓnwð·?ó~—ƒxîŠÒIÚX®g6ÜÇ›WX'X|s&Õ Þ1Ýn†‘æR ÷›I箸cŸ·6Döß`¯‡ðL¿vZ…k]c'Ô× öê_³÷jñóƽq4¿­~_Šr×}î½g›×­L ¼c´¨!©¾YÈN§ iØŸiŽÛÒT äš²r½¦(ýv_ õ•cm½ ðüñùúø Á± ¤f!x…•ýóbôvF|{_>f±‹QÅõ #Ò8 ù* ” ½6–@:Ðù42ýhmåYq<‰–CÏ>ÙOÇðrüþØ;â‰ã£{*È Àˆ— FöÓ4&:ÍÌèl$‘õAX4üµ²+ ù†!›¿¥DRr—6©Øà§ÿ§”‰œ >UàSëR; sgSd&õ€ÑOgY$ê%·Œ…YÈ ÂsøL¡º·&{DÄìVÄðž@މS2~¦aBÆž4x†hji¶Ê›óK®V–Ø´S0'%jieYêg¥üê­NpÕ™Õ A°(Zγ;M>^*qhªŒ…ÙWêè›o¬6xTµºÊa÷2ÊàIüÑ7È»¹Eϲ×S«ª Nx§{wÂåËøÕåÖ8qÌ2J—çǬ*ypEûï„æ5,­``Êù ²ŠbíI÷«Ä¨¥ÆæÂa†Ÿx^ZHS Álu—‡ø•NwÚ)a–ª 1ÛD`ãóXA=§†ßÿíSüñýëöœéíο^樂 ÚN»ÿ6Ú³êÕmÚ!=S¶6€¨‹ª¶yt2ÝN%›[ÿy€éý•5:y3MZöãÊædízFóIÓ“H]¨Ì£Æ€c–" ZÁ™¿o5TÖ:øügÿ›áö²mìkÀ»,ÌÜÚ=.üR±˜£dþ-Vñæ×#& úP‹›£Æ0‡0…+åÞy:¨YØ—Ø@RÇbMm ΤaÛ×zÂ÷%U ;t|–#tUEŧZuaq5ÑE¢%Jq§TNÑÍ8$£uÝ8¸-‘‚~±™`k-ŠP¬DU>AêÉvìqÔ©ZÑÑC[Ÿx’Ï_™£°ìÇ×}OVëG&pAXÖ> ØU‹™MÍY/Jô̤ Ý„â‚bÒ®Ù&qÃãNT®.-èÉH‰o›þÛ——x»…ø1šœ¨èo]¿`Š ŸäŽ3:îY(wÝrTÝ”Øá1lºYmtµLÁ½ôRòjSãc³Óð–f(zGNù¤«a€%g¡íùFuóeOKýTÛÑÇ]ý'eç’G „aÛýEH)‹ˆMNû)HVÙe‘²3v×ÃvÙÝîéH,4fèi쿪þúj>yR™¦–ÇŸOÔ,‘‰@­å¥ÆD˜«|@U»9ô,þoöâdÚ£ñ àÞ³ÔcÞåÿ2ªåTVFK1•«ˆÇYϸ”íÙø¡k•ªÞö(‰rSa×gÌÎE[Z]cHˆ½TÈÛ¬(#Wß'³‹ëôòbãÎÿÜe:Áî=ߤÆï¸TOöŠºÙt‘=ò@ÏLÑþ[¦¶[¤‘°{×lÎr(Û¯Í*²í–n¬¢/¾r±‡ÚW}°}õ¢úthš¼óÜ+Á6q«øî]ð&So­ªö°çR—N6iö*#šÂmYÇâb¼™>?Ìß¾>aÞ2Âï?×—Ÿo8ŸƒzǺ$ühy…œŸ¶2` fbï¼eä !Û&nÇœÌLÔ^$¯|y¼ˆ?£r7fun^]RðïX=bÄ>³À\ÒÇ.P~I®à­7UR¼ð!mײÓ0 í[ZEHHHHœøþÿ3àÊ$.R{!ã}8qüHÒVT=µUê$޽³;;cÔ%/-Vl6äTøÔfi©… åºçÿi x ¡Õ¹i?ðt+ dRÍ㈤Øß¤ DÛn`SáL„Ò±—JH<êUJJ[ZTð(Åyry!@Ï)"'ÚDɸšœTø.l&(¥ÛÅ”j™‚uÊá ²ÓÝ@k¶yŠsXgÈÂ݉aø„õôøg/Âl0Tb—X¿Püäj.—yÞ|I¼žOÇ.§'ùÁ§À °rF­LKÎÚ}kGDæ‰{´ÄUlJ$·ÙѦBàa–\—ýe驉Ú?²¯,ª9!3^1FpKÀ¼Ž³ò³=Úb*NÏr'Š,ìvÛ—Ç»÷ÏŸú·ÆøÝ0Ñ¥ÚùÂh”a%RŠ®ÞoXý–©ÿŠ!éDªpÕÂ蔼î[În+ã¾?Övlo6æõùÖ…€ß‡úíkÁõŽð ‹m Lê†è{€W±Á$ ÝÞo7Ow«‡ëõf¥>ö‡ª£@H«+C bBO§}¨cÍè¼ÎƒPÓ}óe¯ocÓç1HYŽ•ú0´#ê¶‹+·ñ˜L²¦¿lšÆÛ|××gzÕ«vyж—–b)oቔ£ñþÙ[ry‚>ˆ|_°|"¯Æ¶H *•Ôxvp‚´ZŽk5XŸ@ .¿¿3jt±JC§(Zm„#}Ç1ÏñwqoÌ7£ê»éFÜn®²TÒÅDjŒ È:¥"c”V9ÔI5 <L~keÈÌcµ]UkÆ4„C¨AXE¬ï·÷bXg>ÏmpØ>iÊA¹;J‹ÖvÑ@æþ3js å‡)ãŽÓz>š Þ -£IÅÆ 6]$G?H»šå¦a ¬]Ùq)f íní¡^€÷f81í@iWÖîêÏ–erIrH"ÛòäÛÝïç¿€»7ß$˜Â½ay*ð\>#TUl©ªA›äË͇UAQöVC†mЋÀ|2ËÆLÿÆ}'dúðÓnᥖ °Ùy°w¥¥ߺlp¨Ð-:ýÞA%Z4;Uy«£%œ‚(åWÒÙ‡nÛhxM"¶5Ü€µñú’ÀÒmCmѵÛ`¥”i9+wäÆBæÄ .]Äl,YæØngÖZÔ°)‚ž]èö%ØOD^#%¿öªë‰Î¡±£ã¶Q{Ýyܽþ^Î_Û²ŠØÝ È/¥Ã-‚ •ë¸\yá|¹²ÈjÕ­VÈ ÆÚžRyÏ.Zõ¬ýÖ’Ö¢jsŒd_:µÏ°{,ÔyÙ9u§jŸßn(@ÙÄØ7õ- ¨l¹Êú«EN@¢Ô~Äo®/Žç]<Ão?ÿ|>õz˜Ð£öBN¯¾¡d ;šÐáLµ ‚ãaˆ`=k4¹Â™J…šHÔlLFÈ ÕÝÃÓã|¹~sy¼{8Ý?¿øHQ‚$PÙr.Žæ„fÁVÒ„Ó±s6¹qOOŸ?¯Î‡¡C¢nàí‡w_üî}²Ÿ÷ ¡0¢Ôg²1—ƒqepŒáÀ}ïÖñ à›iøL±½í½à‰AÄ~©µl<V£ÎüÅ@«4ea4$¸T€œ`••éÇ5?j©$žÑÙÅÞ×vW¹T…k´äre£©R%/ãF-7‹G…7ZÔ·Òšõ#u!ŠV¦{I9¥Ä°˜æ~þþxÿø;/[T€^¶íøGÉ|lf Âl·ˆx[ËAÃ×ï/_âå–â" †„ázÝV óÃS≵>‡+™•`†Rʆˆo¢È`tFO¹¶Q¬·Téšî%®&OPö{ÉË`l€áòÀWX5Šç½XX¬áE”®Øõú6ñá¡ÁËÚËíEÁz|8³­˜s’ bVúŠlöb]‹Þ à Gæò׬£`-5­ÜE × ¥ÎLï7l¼u³*îsM¨cØ-¿ôì9ƒÚ œPޏê-Éõ(—«5n<>I]¢qbXöŸy^æuš&>ܽ¢_Ðt.ÓÞ­No3[vW¤Lè¨E›ÁÄ,ÒÌhü¥´b+¡S¶sß®x°Ê ®ˆÉ¨Â/Ðôð0®ÊbN†7éjø§ FuW{”b¶´êŸ¸Ô:Oº-°•­£õ“V7ÄøOÎÎe·mˆ¢|Ùµ‹&È&Ðÿÿ™n».ÐE‹Y$ ›d5ORÅHYdÀ‰#…2ï [¸«Je<ÖBÒÈB2€®þKÙÖj£õ&ÍÚnQr¿eïѱ o´üÑ6ÓÕ¼‘8›gÝ¢¤ê£"Yl¥05¦ÇIh÷¡Fq ˆ”É(Ëhòú—ˆm&YPK÷ÊUØvœßÛo¨’p£ªv§2zMê ªµU1Ñ+ÕšýÛlÀN/¯û–>éRõúÄI# N •C•'fÜžbjÈkUÊŠ{ÛnŸŸ?8[:ôÝ;0–tãÜ!WÛÊGY™ÿL§[èØ.›ªé'šð*»˜¯Œj­£` §õT\Ùø¹{Þù¯í±BU%úl´¢ëÇXòà;ìÌhãEé»Ú:ëÃè<å²lº¶ŒÜí¶‚Q³¶4ÞKǬÇ%„éaßHZ[Ï1¤¯oñzÍþ8­¶Ûé0‰ëÝÍ£L=Ò±áÍþ¼\ŽÖs>0¸GöÞ\8uˆ)ä[KŽÃF„ŽM.Ȱ‰)~üv¶?ÿ^ÒÝ]Rüñë%ÿ•ÚÚj'·¾´Ô´Kd IY¦"±â# êÎßRþw½>~…f,ɨ‡Sx:»÷àYs™$VÊÙ,¸(%K¤‹•ìíúhtvÄ- )U÷!È“¹Aü¶j̰ÄH%@ŠÒJõ-²ü°›}h²pÒG¦gjNV¤£G°¬S[˜’é¡€ÒnAȤ/ö£ªÝð-2ƶ[I"^=ªÔIzP¾àN‡£ ÂJ4Z'$¥¦`îGŒV×-JNðEœL½O_^¢HhjõîáÁx[Žï3䧦© 0˜‹±b>X Ð|9ô⃋Èý‡»„núSÑbŒðx0ŸWÙ”¶˜ PÍ{ú¨²€îÈ›Rô©gìfBã£ÉùÒJ£2Ÿ™`üA:Âj«F³j*#)w'†îšY¢¯ù/gW»Ó0 c'›€I¼ÿ["€® µ;i›d@BhëÚ,9Ÿ}ww“w©aC}Æn4ıò!Ô`Bó‰lïÝ©¶±]7:¢„ÊšÆµŽ¢²So(v£sw oX po$^¶¢àõšK»zÓŸû÷ŠÚêó—PÍGŠõyÜ™å:^s¡€ÒÈÚ–/…®WƒÇ²˜L+©3Ö2!ÃQbÛiò}3Z~zµûLk'‡¦<ñ6é8D£1kóçHÛÖù¾ÙdOÞdu¥ÆªìÊÿæux½-6nÆØÏ*ýØÒKܾqíÑ2w«Ý=¥é÷ÜÝŠç|¢ÏÖ7Éð=DŽÏ\˜ÕËÖÔø„˜u+¶U®¯tÿ–ѳþà8¸â{š÷{¦þ©9§ñx80Ú÷ÙFv™-ILÏÇ}Ì ôþÒ,?î¯FÆØ½Ñ'\;–B¡“s]~ã[PߞР¿?—ôþÎÒÛÉŸN ”—=‡üÅ' 0%1Õ¹ œ`H9cMÔØŽl½ÖîÊ¢A*°RÈ,—DtÓ‹âïy:ಆ3F¤w] ÿäòxI²ÀWËå0uJP¯ú-Å”0jo`y¡Ï3é gž8Zÿ’Òë¾¾ÓÑáõ*Ùeµ—™çì¼ÈrE¡7æ°¼+qd=£ƒÂ.S0‡pL9éíGPjòJžÀô°“„ÈÆáÌ^g£FÊw¤ë4Üèå‘ xfR·V1äHhÆ€YC¹`+ê™Dæ É€"àÈK‚qA\äÍ­<å`Gñ%1US÷ýô)án ™&&‚a°êû»VÁJ”•Lü|‘'ó‘ŸVL9—Q Á95#Å­ .v¥—þ/Rº‡ &ךƒ%²›Üü/óü:Gd/›)@˜ðxpaùÂÄê*,½E~%nàpÀlÃèzHà¬SQõ„‚Ýeß…çØQêHq¥xâj¶Ìwä0aåÕ©WCnü½6\Cf¦ƒ%ͳÚÇþ`ílzÛ†a0LQ¶Ûn6`Çýÿÿ5ì°Ã.k¶ƒc}Ì")š²ì$vu×qd‰"¾ïpsªR ªvº¬¾é¤ˆG¢PIÚ>Ðl)je(«ÒI ïdMZ¤OÏë{:µ;¤6äÚ¶¯°—1©Ê³9önT¨ç˜agC(M\ÌBwX'•Jˆ]G«s\ë\ÉE–­rrþèØ ^œ;ø©¡d—Ϩ:rPúQ¸’†D˜m0ñÜàê™ê/ò•v±3Öù«Økbœ¤·Ïx}R­]†¥¤-ý¿ƒ«ðzÏÖ[µg6hÚnÅ?=kô@v;÷ºD&!Tn·ŠÖ«ßl·nZÿ-ÎØÙdÞŒõo2»W÷·1›;µÏÏôÿK[ê¶7ný­òf†k]X^sÛýÈÜÀ§ì,'cFšú:r6A3Ïõ?nîU#a÷°™Ú¡~— `ÀÊÉóùˆ»ã{أȻ—í»óáŽNhè:ÅÛ£w.°E0ÄÃôwhI¡;[ªÎ¸25ŽÈmï¢U5_­> )0#±E­oZûó@ì^Ý)qÃN™Ž /Þ–øå‚aü0ø·”:á÷_Ï?ŸÇ5Æ[ãÜ9d/·Rà÷Br•ˆ\œ(‘ì?sô ý¹ª=XîÁ9\Ü%%hÈß¾~|Ÿ—/¯Óððùi˜—å}‰™"Z(5Té ú‹Z´ Qã£)á £â9©ÉX ã*ø:§yi*‡É«zô¿ßRÀà<6ËîÃQÌÛ„d¯Ò€”²–U7ñ’R3³X&iÉ”hy‡´S˜bi_y9è*Î<±#¥{Š‘eOf¢d|ä9ò]©úvp$¿ÏI>ë €eVN=Q7qdo¿Í(ÛùÈŠŠ³SPˆI}ßYdnËs„Í‘ £!ut0#3_Âc­˜‚ÑvÄGŸ §^¾v!ä#%K¾\¨yéß")zA¬iø!‹‰—ŠPY¶Oý¬¥ÙwWKŠLëvâ=ÄazÖá>ŽÓÅý‰tí²í0 ÁSa[[ç¶@¨Õ‡EµÇNж¤ÔuJ¾~`§AÂj¿ãìŒ,E?TJ¤A»¾…Y5ØÃô˜NÛ°‚瘿v-»qÃ0’½qŠ´ÇÉ?ôÿ¤‡üAz(°E v·–T‘Ci%˯ ·Ç–åh8Îô›y–Z»H·IbìëÌw~¤P‰1 ö  Õÿë ûÝv0)ÏmÁµûì¤á¾Ctöãž|Y«Éb´ÐG.˜³:UrV6{%“9ÔÌÓÜXXÊ;ãnY°Ie%›"Õüó©ztåLUlÐà–K}Õú‡2En€ÓÎY’Ü­À¸–çÞÉïàé iö!,:Ü­x¶v{SHª< ìàµf£*ÿ<jsæ«/¨Pƒ˜M]{Ýgt2+¢ Ï²‰Û ‡…Ô'úÌDÊÉD›jùŸLkª©w¡z)õŠ…”ÜU韬±Khµì~ãŒXý &%„Í¡ °ÛhëLŒI¥A[©m1O[LÆ’Ô¬Â~iY&"«ÖãŸÚŽë‚Èp}7.ò–Ñß³oWÇp³³Íä.lÑ‹%N3éÊ&õôSâXQ™›vQ‹š 'ÛF|{|;ßß};]ƧŸ¿_>Î`>#Jx9Ï¢b·=w;Ð1Ž]i8ÁµgêñÐÓ—›áÏûÅ_oÇbÏzÞÂÅOÐøÐYûáø :ôðõðýqøõÞýx~勈›¹7W‹—ôx×Xµkï,2‹$|Ú ·©>ƒíˆÿ gsû·¿þ~è%Ý&B;ÿp7<c­¾äŽjÁñ‡Âù©·&˜x“þ¼jH0¯!"LÅA` ¶ó@ý@„2*JjûTŠÂÃHÐ;•@ ±’ÍÂI†Ymá‚8É’K+Ý»¾iö—¸,´ÍŽWüÌwÓN^ìŒLh¢E ä±ÃkIIˆ“‡u½úÅ{2uo@Qqð Ô…o-Âî‘ùlæÕ=¼CeEà–ÏNù,”鯸F|‘=s±drî–÷!ßQoì…\Üý™ó¾g—O7²™iܤLÇ[••c%J×õ‡XªÚåa /µêd¿móüÊ!K‰qÓB…²8´†„á„ÇíË—#«Ê»rd}ŽN¦¨»Á¬ ?~Ç«j•ŽÕîJ:X,™:a­lxNôpù(±Ê?h»’å¨a ªÅ’!U .üÿÿ ùœà0‰–FÝ­]òÄÀ‡TÍd¼ÛR/oY¶qž¼iëToÝTÊ ÜÛ€mmÄÝjþŽÆñýâ§Ç 5UQüï¥B&œ]TiQÆt20sÈã0ý>sô0È„1RIåÿÂêpÌ]&nŸS4嫺#“ oZ òÌÓ¹°¡‘Qvî§ñîÉ ë1ë¥(ØnS[éâyxιE¹Ê¹eìš;?Uö›³MuZýe^ô»-Q÷¯ø7ºOÿd™2‰§)€okyP¡8 Ä\«=ë1øû4‡{EF)äöÓ>e]×ÕÙHRplqR”“š[¥¶E¹/ßÞú~gמéôí–£ƒ÷ØšÛÿŒíGÝœ±…çVì†)¹Ý ï5üDkJÐVµ L¶K&¥œÓZ(êDÑ–¯ß?Ì·_ŸKXqumÑ:ƒGª\¼ƒ*ý ùÜ;„‡˜0ø¯êÃõõímýr÷Ùg »™‹A“LY‚ªï^¿½Zï¾Üÿx8Þ\^}z>®a×zñ¤U)J$Ïí±@ñTéæºDE®NrnÌ ¢Ô9Å0ÿ žîúö!<ýmÔ£ƒƒÎg ÀíÆ€X/U’uk=¤F%H¨Ro­X~ÒN)× ³ÊÐZ$ Õì§1Zé?ŸÅ p*!Í @"^"¢v‹çª0ž=~"âE' k±yQ”ÃUïNœ‹‰+I‰Ý40B‚AjðÊXËpdŒÄW™Â<ëïÃMùZ[–£<ü!‰‹4ÌÊE•Dô÷¬QC×Ò‚EåHÒ‰.„ÞldÎÙPîÁàò%d~¯VtïÂ_yo]ƒéjR¤9„ÇP‡dm•Œâ…µ²%Hä׎2–ú¢¹0K1¬m é…PGø)‡ÞU™†,¸[B-âTèOñ]eh»§‹<ž+6ºg–)tà0ÆC:²ô\ éãpñGÖ®d9jˆª%Ù®!œ*þÿ[ø NE±Ä›Z¨»%K^4c2Ì!‡¤2e[²ôÔý{—ò$K_÷‘˜ÒfOK¨k¯1VO ®[ü%¶ÐYÞðU=zSË‘WÈo|úìUfAmÒƒª¸ºÇ³Óá>ª£Ý+,¾á[¨.ÊþV{G¤ô¨_ÇÒOÀŠè³Æ Ý`‘š±š*Â’jüŸËøàeåäš­M‰œÄHTÔ9ä*«ôÚÝ$>ãè¿fj¹>ò¼¨÷‹–ë×þIØwÞÞþF:ÊÿúžÃÏ!ÑùÌâS£r]c™$7eI9‰9ЇÓ“én>Á¦&õ >œ·TT¡žL´Ë“éá›—¿ªX¸2L~Mžñ»ÂìL¢ÒS*Ï-°„.î7ïËe½Ç…˾ð›ðÔ[Ο+o·]„v}*¦ˆñ͘¤’«ä/Õ„®Âƒk²‹”îðÅÏÓÜhÁ L™–1*s ¤*¹bZ‰V3ï³6`o‡Ããýýc×||ê^¡ù=ôÏŽÝNÖ÷LeÇ€Æftoºo[kõçww_~ï_ÛOGA?Ck†V뉔|ÔŸ6À©6«ÝpÛŽlí˜h·DÒ WaVUraØ™Ÿýä Lóøõ|ý™F¶äœÿÔéÑ™z ¡DÕ±ÄMro¸äð:üâ¦Aï­Cû)m=w{J6•>KÇ(Är“õ̵W~cè bXlbPH§p9òzHv³Ó!’ Å]¾Uh}YØç™…â¬Ü%Cy:Ó¢:3Ü—ŒÁ”›|“"õ= $æƒ–çÆ¬ý(§% …›²ó»ü =ºï C”™@¦Î8£/j"þbyj3ÿËÅ’~¸À¶1†ì_Ü€c?;¶Æ4†„²Æ„Æm;ÛÞµMÛÌÃ(Ø5â¬Ð•Ó—H,b>¢z‘œœŽ1}QëSZ# çI,Ü…>;›í輤,íš"HXbØ3´®ª¬3™s+¿ù+iײÜ6  R±Ü´u§m®iúÿŸÔkfzh§‡xò°cI( H‰²Û\Û‘\,»]),覰ª{.Ûñ ‚¨|´íõ£EQr–yêÔà»eÏüouõ-0½„಴¹Ê8Æiš#;¿r±fÌ4J›R4Y Rn`–·ÆTÛØ–I0MW²ìù¸a§£xd$òá h^T¡´Xö–þµò§3mÆKPr òj·83KC4Ê©Ñèd%¶©Ç;Ñ ÝÒ°°h'“-î°V`ý öy„œqι„;<‹‡Vô닆ùpcÓ¬S§­Ïs}fR9èéÐÜÕëAÕ{g­Œ®ZFM¥MB¹÷™›†?ÅíWµ …ω""9^£)D1Øðq*¨E¸bUU?Päb‹‰X¾«²……ѓ٪n,.0üG0ßÜtrqÞ{IUYùUã2.ä&#;Ç:X……ꙃ›d ¦Rç'á5F+‘(à¨sü!û/¤RZìH âY¤ÔµbI 1¼N¿»Ýîöóõû­óXk˜Ü4}o¾|Üþü3q–MÔQµ©´Xȉ"åãýËÇóûçÃþ¸ÝÍËðúýë»ëÍáé`X*œÈ¡’§Šð”|QÈ1€äþ1môƶäâùpp?~=þ~ÄçS@ƒWõýÆÆÀݧí·Ýææƒ{zíî÷Gb™ùÈkn´&ïˆPè{\¼µ¬…ŸÂš%G›Ú, òä[Á1-8ò¾#ý#H;¡Î…)ŠN«y rèñë˜ $-!aAÚš»~6¨ ² ŒJ?0Ñj#hç© €œVŒÃßð¸ÝOB!Ø“ [m޲‰!`oDI¿<Ñ4Q÷'9»*®ÕroV^¥kÉ{.ˆÓª°‘í!Vwœ%*þH´¤ë†!ì€ú¶0¤ßòÛò?¦ážÊ©Hþ†…ŸzbVpï}³æ›‚²"ñôE•wˆt¶´‹ VêQ´(%VŸ£Ð”?ÊÛDÅð»Nö˜1hR꯰óoÙ…p²Ú¤ù@IkÊ gV¯R¯qú$ý+qç²5 DQ©eyHe(² þÿsøØQ,X•ªTb[-ܵåç lHe•šqlÏXêÇísÇÌ\[r¶x,à<Ô&VŠJßDäN¹à üO–•Õ奒… Õ‘ç @´=÷ÿ²_nÝ~±5™äëxBÔD^‡SgÛ¥âØgC·p%ˆAÅÔ,Ká¹ »JêTRé ¹³ÏšX•¥Oh_&˜P<,Ð B¹¹‚P¤e*, 'FH›2Öõ æ^óPƒ סµïÒ"­±G~ 䪡f“£ùâÖpaÌÇï`®«_ÛÒ°Ìk,W<6ŒÜ÷-ƒ`¥¶D¸ÝÁô&\¯VÓqü-áãkÝ\åò…þ©RV{ub¹t/vkÕÈíýIÞëfÏd+³ÎÔ ¤¥å5òl³ƒq{eÍ¿´w3ùƒýßïGçÇM›½Glï‘?hݸCiûqgxÕ{8¨4‰ÞXY Ó†ë&³‡úüÍuGɾ‚¯÷ß©+Ä pØÁÕ[¶{ÿE¤n>I¢Ôò='L! clïX¢0†r)“tàãå|〹w=þ¼kýér7|ÿ• Ù|Ö'Ž{Çw‡Öß·î¥K_ž^?÷o\xîòçoO?^^ß.çHÔªj)Ë2%™ (v=6(Ó—âÖJ× €sJ,Áÿ&ªRùÄu©ûú“nIëh8FNéÃÝéÓC|Æ8ž&¹Ö#«=V´Å©]Öt^ÜJK„T³…òV²Añð—¯'/6£Œm¬—uä9¶g=†sNBf'bóÓ¶˜ÚüG]â¼P—ªÏ×Ëö¸³MK·3)§6Y®å,¬Bë6~Õ?[:Êó{šæF•C At‚iÊܱAB´Âç^]_\"rÜœ¾,QZ]Aâhqiõ«ÃŸ¹]s1®#¥¯œAxÎ^`o¨‚*`­Å¼ün#0X˜4+u™'EŒ…ê?œä$§•üÃ:%rr¯ë6ꋳü‰¬.¢29S3Í0õ/,/C2&1ž ”'ä Î߾丟œ¤D€ Ö²®ŽSŠ”¸ìl7Oy–Y×=”’ íUbqOXoÔ0« ÙRV-ïÔ,׬%ê·Ò±­žoë”ʼz€¶+YŽ¢ZìIjÂr UGþÿsøNEHA’«÷ë–,Û’rJR5ÞF–žºß2vÇë³9/{ ÞXÌŠ.8Už0z̧#ð‰t[éÿw]ÿi¥Ù¢%_±øu SÔBô~§Uª_9^å]óªê£®OåǤ?¶òUj,¥*rÙ!«äîÙ¼S>°›rLœìk7±r#v´Ê¾ÔeÛ¦™š­Óä7H¢G*uë¼CëFµºØËcÙ‰bKCªþlÆíc¡š$–•”qÇCÓ²Y´«/;Ê~µ{^àj Žäw75Ó®™ÅÚ¹XWÚ:»ªsëw¿ùÜšeìÊ¢®kø#®NÓc»w®L¶¿Œ¿¤o Ô÷ßÅqXo ͽo¢´Ð?oqз}R×ßgÙ ûRŠ~p<Ü:i^@©üÅ™çnîRèÜ(½ëš‚Ë»9 W–ñУ?ÕRŒeX®g™c.ÓbÓŠsÚ»jnf}Z_Ç÷}Ç\•÷e…ͨîûœöˆH†V9>â†Qóï—¹; þó‡wçñôBSš¡4Óßüýñ'‚êÑg >sVª@£U«jqâ3hf‘l—ÀÉSTUªXJš#ÑÅÅoÏŸÞÜ‘¥÷ÕyNw£”GƒèWI³ÿx*J6Ž"lÄs3¸ÉÑÓõ‚ºeæ‚“²â<ÞÆSÄÊÄn‰ ¥ƒ‚ªÅt§áÈœAxooýÇ»óýûÓ—¯îáå*×*Üž¤zOµž´Ñ0?#¹Š1ù b€ìŸ&÷x‘B®®“·Œr±/QãA2Ùa…¬ö‚a&$™‚ÉÂ%î¾”ŽA€í œ0åaá°3š°€jo€,k)“Z]Ò_•QrJ«ËP[› */4]¬p”•áE¹.‰cRÅ*›1n\­]9Bú ŠÜ¸iD“*XIW§ÅõV&4—BJoµâøóXWT´ ¢c¡~cå²4˜ …h–ÔÔ ÐߺÇFc=cG†bfJ?È©ë^Q³²dÁÂÕ8Ægi(D7I‘þr5½„TÂ…™?ñ<~ —ñf˜!þ¤Á@¨ôyt³–‹ tÁ4LV9¨-²‹ZND-Ƴ<í1/ì<¨ £8A@ï‚PV×®øNòÉ>Ó´âùí“îDJk%[!Nlÿ’¯J ¶å‡•ª·å^{óQÿ@Üµí¶ ÃPQ’ã!ÅîÀ€½ìaÿÿ;ûîm@±ë4¶Ä™¤(Ù’§}ÙK´F“Èñçâ«Éã«(@ÌB³‰Öž)vV ü_F̪ÿã'mÄÌ[« kóá^¥NYÍFl¶k¦•ÛÜÓl«ænT «+\èãI«lë 8@Ýq§3¼Â`®ªùÕ*¹M3Å&©z1ß&+…YU÷li[w[«ŸV%Ôí»o5’[]³P©:û¦03\ ß ¼”£f°jÃëz-»w‡™³zr[ tEÛЖګbƒï¾–ìôê°Þ— Ä4S¡©³mV°.N^M±oI#[¿Y4Íç«*2·du7»\Ô¾$Ó O†Çň°iöæ–K!iÃÔ_\7ž¾íä„êùÜé+àð’zù¼F05[œœzïØ ‘Å]®`>€ 4ºoŸÞÞ½ñ\,Éâþáüëñwgû\h5boö¶j /ðhÂHX‚ÛrfSÂÓi©"!0ýuäípŒñûçãûGë=WEâ\IX²€ ?NS sº0áGÚÀÅ]Š …¥‹(}LMW’ùÕ‹pçÜ—ý×÷‡w8À‡þùÏy°Ì';GÊÊŒœäØ;¢ñÚªR£nƒCˆO—±³ñjŽ?O_yøa5=>¹á¨`Õ+¥¸TB0i{1ó›€k9±XQ]*%‰Âs,Ÿ†¨Á÷Ó#>ÊûF2sI­eõ£aµ-‘z0Ù:Ãìx¾ bºØ¢”U1êL@r`ÅN3Ñ`è?óžBëçÄèYñ þer‹:aV¹})ÚS˜M¢EV²:.ž.Ü32Fè£ôþ(&WzžtкÊf~2ž›^fº+H­COÈŽjit„‰æîHAëØ¡&L×܆ÄQ1~Z‰Žè=±ƒp‰Är?ö{ê¢#{ËpD–pëVñÕDiJ pEQ©Î¡*JAxÿRñËDˆm7#Ë)dLV4Ve÷Ь‚¥¼ Ï2r“0??wÌ£ðè _§„iêO9X8øOæÎn'nˆÂ'^²E´q‡DozÛ÷—öà©•J—=d~¼vÇ*Uäf¯vQ~ˆg¾9Ç6J#¯ïðÆ™?þ_1ó#g?Žj_tlËþìWô–Dп˹ òXcÜ¿Âp†T”¿•yH—9´‹Z¥A ¸Z‘ŠñOÔC Ít(òeÖÎkàM¾¼­]Ìb‡YUÌ pjÇ2 è­·~ó»ÅUOp.#P³aÕ„~]šv©»y.°LßÄ^/ž ãÂêýúÞ®ïQí[»ˆÂa$™ØfØÖ»Å/`•ªÂ ÖÊÝ Aã(u¾º ŒÚ8J•Fƒ¾nÅz{:bƒ#Úßô8*N¿ ýÞ븊Y©½â–kMp䣞ýtL¢ƒ$;»÷¡¨;[ËÐ-ý±ú+MÝH’Ê—úÃ~ÿ9ÊÀaîÜJ×{wP÷²âš{V8æi ?ïÜ=’ð \€MY÷³QõRQS%§sÜîösÿýë§o×g_†×/áò|ç'G¶Øœ¥ÃÆ8“Ì,^ìíÕ¹»¹@œùر¸“ÉJmÿ{ô–Xmÿð4þ:²£§fjYX,¹“T"åagTµhnlÌ+…äë Ï®U‡lëˆPáó-ÌD.âÊ“`O“iÊÆ#VªrÂF(¢+KžäùØÇQC@¦Ùˆ*êÞ€/JÊoédt¾‹¼b$„´& Y’›&ÃDF0-»ZyT2§¬x̲™æ›mííS&«áùÔ¸µ#Ú^ $Äv9|‰ŠÝ®§~oX;m ãxôÓsKòžPn!9ㆾß÷Î9ëzªý#ÊdCÇGLs‰˜ù¡hÈ,ƒP M7 ñ—C“uuP5@¥èÒƒu46ƒå(€3˜äfE9Þa±>ž>Ott<^ îZvã†a ('ÙG€Ûc°è½Çžúÿ_R ?-Ðlb‰5¢¹²lÇm>ØõC²D‡31ü©V3Æ€Ó¢áŠXÆÿÞƒÛ'7ós,;U‰’òg!ºÀ² M¥¬©sŸkìIW*= ”éµRnÞU.È¥oÊç´Y*TuN”¦ ÜZ˜âcô*Ç@œåùÌ‘õ«Ÿ¬ñ³¥Á”v4ÝjºhÛ„J¤˪ïÌçÃÇjTi,KMùOÜ:pkÐêfaÊLÿÐ^ ·[ƒ½ÖÛ°[h‹~¼#ÙóËQó*MA'×e²ehí18I™Ê#c©ç6ÀZ$šXÈÌ`M… çK¥3!€e…© {uÓwâ×¼Ê~ÞEל._õÞ$EMÄ—‰æIâ&“EV— •ï²Ä„ªÊ;> v³²s)éõ}ÿõ&^92’Ê:C¬ô°ïŠj™“ÿbur®ÅÔ’Ú]Y /ØçXæ8·å…N·¡«Ag’zþøùñÃi¿ë ëó³Àå5O»»Žuc"r!ùCÝöxóéãáËùþëùþñtLY g¥"`} éù’Ÿ^ÒÓÏþÛËóË…@ú ¢ª­$¥žÉªÞåcŒ—%¯"3m…kÚ¸©r€V@Uô\¢=ÞË% gVób”NßYã Å,i´˜/é_tX£UK™€‚Wéápé¢êÈ hÈvGÅ4ÔiÅé-©i7ZÍL`ÚØ³À<øÑk,øe@}w9{énX{MoüW¬V´l›Ù›4õÚš8£ ÙÀ–Z‘k3ÄA^ÍðuÈ75á[â;‚¾oÃÝ0IÈ/—8ñ‡ýîxŒ»½Ésb=é48Ï;zÒ³OÚ]0îéabIA$CáÉ(_×ÔÝ¥_¡‰CpÜM#@^Q™½šÏöã¢Þ†?ù[Ê®m·m†J”œtݲþ@_öÿÿÒèë€ ØV¬b‰‹x -9N ä¡AÝú"‹¢Èsé{…P(iC| ìÖ~t|Îí…Í4˜(7Jˆq&ú‘õ¾kîßÉ\l­jU®À䢿Yý0æIN¤ö—¥eäí:p×h,$ë—@c*A²ÖзßD 1 +$[``¡°?RákåÞUø{çL¾½l_KÙWuEÇÃV÷ ö6Žú’×ôIígOóÇwwj§õ³Ãut¾ÚaIú³õ.ðpv±ô俏zlkæçO t%ª•]EÝáEãJÅ5#ÛêŒÌ°ÛõñbIªÛ ^{87Óý{{÷Ô>„›ßÜo,¸Ä—J’IƒÉC'Ö‘0Ò@mÏ})Ý,«…Xëwtù= dÆ8~.ˈ­”*a òÊEXŒZÞѬ—ÄÿowvºÖ>“KõW«_áV)Ýðf@5Nü;q]¼ê80]þ=ÂW'û˜Ê1ê„6ô8J¯Å®àõ¾Ï_ö9í§ÌÊw©~›¬H>g ªDCÍ-E~ÄňR0ä¤Ú•ü5YîöG‘“4¶Ù¬?ÞŽ'Ç]óÇßïõåõ'Šþy°vȵ|¤ŽB%dã­ˆ˜Í½„êÛ(“‚²wYÔ©—èÃIïCDª(X¢gtÐ[JaúvUÍ£Ìhh©PB ´ÚM' ·žuñw ^™•5 ró·ÞhEcåmEEÇÝQ0}èú÷¥™ ¬œBýG ‹¾b ª1º8ü7|»Uf˦ÅxbÄÓéôõÛùøñ¡cýø”âßËШØæ¶ü:/@šsV¦t‹á9N:ÂäMʹf;eûOÏ—Ó÷§ç¿^†:wÇE¨¿2 溪P9päŸÄIÒº‘Ÿbh–¨@1¾7rXêl(KíÁ œ?_®ŸŽÙÈGk;<îão‚¥ßNãzß~ºWyÇo‘RÑú"ÓÄÆç“祒?÷b,"²2E&”¿d`æýµÛaQ%ÍO*E÷Ðð¨21¼J‡ê`‚Q¼knÜÐj+#˜³CCˆÕ ?«f‘ÜψÅ Ðp0´ÀBézJQÖ>³“ ²)q‹¢'A‹ú!ðð+%EÌû.±/o7UK9ÓÅô¬Ó"^•ÊŽZD=ÄÔBâ…PBîÆò+*N º ޾€Y&ƒŸNõ0 ¹É6JÇ`ÚŸQÒ!b`9Ó’†Ôwf&^{š»MS‡¡¿–Ç”¾|è>¿ÛÞO¾/öçñË9C×u‡Ýuc·Ë}ï$ŠkæÏìÛC¼2RŒ—Ü#úAoÖУÁeÒÎJØy®tRNÄý¾Ÿœä9—ÁWÀz HÂ8Dè$É,ùCÕDÀM1T¨ßu´W>ú'gײä4 G#™ä°w®üÿgq€Ô² KBó’ǖㄽíV%±-Ër«§§;íɆŒ­.Ž+…%Bݪë¤É,:Ë„‹¤½-ÆSLÌè©%Ýëð€}Ç­7ŽW1gÞƒ·¥ÛwSÊ€£ÌÕ`,º î 8k Ø—ò¤ÝÄÀ>úµ×ËÙ6f±½_‰›‡·oY¢’Oœh©» µ{'‡çÇPÉpÛ™×®äy.£j[Úw(MͲ²ü­ÀIŸÊ[¢Z^Üg[þ€>ÉYÝÃ_äSþ¤þG*w—sœ—*h¯7‡s*J5Bî î .´:Î ]Í 7e*†pXÌréý[m§ìNÄ{‹#•âG¨,ºù'Ã*±ÛMÂ)ÆˆÜØ`ÖÚèk U…Ó©À‰=ccÔ"ÝSÝQ™£I­Vãg䟩Y;"Nq½Fp=Z![Ý7ÂV%¤ ‹UòÉŠ™Fº[³òJÛñ½*ü0«PÒ‚6h°B™çÒK¹*ŠO„¾ ,$./wV™îîv÷ 9,t½èï‰í¡¼Æ(Z®•rÁÄž:4á¯|Þ ¡PÃãLJç«Ív§hΰõ5ÂmÆo÷ùñÃÈT²Qupó†Ãž>MÏ·WÆÅª qËBþó—Û×;Í+®zç7ÿÎO#ø—û<\6$ˆã…%æR“‘Æa'£¯Så eôfàn6dSõxíÑþí$ånY¥ÃÀÙUõ£ùµ‚*%Ϲô!ë Æ-—fsƒÖ —¢ÃøN—eOI–E§Ä•EÎé扢”7rL­ùÓ“Íèw²ë¥v$À@Uî¢Êj5…4;sÙ0h*lFÛü˜ˆ?ÔE yZ6w’QzÀI¦e®8¨Ûµß`;‡(Qé6ÃWb,²<›ÁкH‘²A÷qð£ooË+}Y~Îøà‡­®d@¿•e+꾿^®Ó4NŽÞýº»E¼>)J¹œ:n[b®ç¨'> r¾ÇÚâìÑ©¦óB_â †üºs¤{1V/[Íöà“Â@q›¦W×P9íDÊT ›å,'|,™½T´òøïoX»šÝ¨a 외[„@À­z)OÐ÷®½ !mil“ù³ÇvVÒ^*5»‰ã8Ÿg¾Ó"˜ØúdÉÛç¥ÌýYÔ`™›x8ø”ìÜ·Õ?÷<$o¹‰~b„ÎTÓv4ÒPü¤¥cÅíSóPGôW“ŠŸÕ¼Ášì\_öÉáÀvX“wík*h«ûŠñœæ5ól0ýœê°;Ik_‚°€ öÖÈZj!2ƒ|„2Kúµv"ŠŸÌ–2jÆJë­3rŒ@=ýĮ߉Leîˆ8[VÁ3G}Q'Á®à -¦il¨ýÇççϣ¹„çb)Õ__~¯(g0†õ‚ñšÒËuåÄ Dá¨láðÊÏ_o“%ù]^|úº1'¯@ðOØ,¸hÊ Mêì]E˜ N¯æAÝ®›U¼8«ŠH‘©äÅ’ÁZû•@ •%˜ 7 -W6í:Õñfå®6ó‰RûBZ¼®èPƒoS:ä*”G± u…R¾ZÇ+Ξ[Ù.Lë—GÆ=kØðk±Ê¬dŽré!OíKWÆÓÞ wä¨ÚþÍÛâ3ÏG-.b™õybe¿ó¨Ã)B•.fG ××m¬³¶‘À…È#î¶/‰÷p¹l¿µæUˆÜð.4û Y£@ÍjoÿÀç‘¥.ó¶QJš\Ø<ü8îV³ê-P®N†ëZÁ¶Ù 73n¦›7˜a%€£õZyëtgžß«õN:òMî– ïJëlNîf<½±>rSicõÇß„ª&­¥¼«iξ½§™;<€Ú‡©î˜±Ú?òlš÷uAÿé y7ÝI ëç_·|²(‡5ÊtMìæÛd†\÷ý[Ÿ…è`¿T¼DšŒ—µž')CÎN]5Õ4¯ç÷n (ê g;M7S^þlXjÞ\ê¹Õc¸kïOŽš£Û÷ª_Äí| †c—úö8pù1PO}åXÇ¢Y½i8‹ÞfK»ýfÛ~M²ðtLæTã“h^Ž…PŽô·‰&Mލ9ËEŒì£àŽÄÄ;ïâò\ñ¸7Æðô¹¿f¸"­ Ûh2äû.m*ý0Héù²”b¹ëaî:ç_Ï—?/·×iöU„ä´áÈ›]†ÇÞûÒ ÿñýãÏßãß å¿öðøi¹nœðR™Ï§Vk5ä•£ûÕa*IkeSjk’ »Ç»ÎE¢¹“× Ìa©U#¢¢TÎQ"›ÈY’*“N¬å\âÊZæi¹â¨5P¥$+Øž´Nt_¤F‚ › à ÔN(j9;#(š=tœ)Ârˆ.'PÄ©ˆkœf.;ØÕ\¼Q’¶hä¦T` y ÒÌÕõ 0Ï™4«ˆzÕWó"²q`¢¸ü2X‡Cì–Vk\Jþ×q|¹Miîp@¿,?GìÓb€`x>ôÃèã c•8\UC£Ó©’„¾×ëëKá…¨a]bįÀú-Í­c8Qi¬p­&­ûå1Q_0zŠÅÕj€ªu”¨À{Šýï3ÿt¤ö,>OÔIEND®B`‚salome-kernel-6.5.0/doc/salome/tui/input/000077500000000000000000000000001177004724000202475ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/tui/input/index.dox000077500000000000000000000007161177004724000221010ustar00rootroot00000000000000/*! \mainpage To browse the \b SALOME KERNEL module Developer Documentation, follow the links below or use navigation menu at the top of the page:
  • Namespaces - list of KERNEL namespaces and scripts.
  • Data Structures - list of all data structures and classes with brief descriptions.
  • Files - list of all files with brief descriptions.
*/salome-kernel-6.5.0/doc/salome/tui/static/000077500000000000000000000000001177004724000203775ustar00rootroot00000000000000salome-kernel-6.5.0/doc/salome/tui/static/doxygen.css000077500000000000000000000307621177004724000226010ustar00rootroot00000000000000/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { font-size: 150%; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; padding: 2px; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { color: #4665A2; } a.codeRef { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.version { border:1px solid #0000FF; color: #CCCCCC; font-family: Arial, Helvetica, sans-serif; font-size: 9pt; text-align: center; width:100px; -moz-border-radius: 8px; margin: 5px; } div.footer1 { background-color: #DFE5F1; border: 1px solid #AAAAAA; font-family: Arial, Helvetica, sans-serif; font-size: 11px; padding: 10px; margin-top: 15px; } div.groupText { margin-left: 16px; font-style: italic; } body { background: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 10px; margin-right: 10px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 0; margin-bottom: 10px; } .memname { white-space: nowrap; font-weight: bold; margin-left: 6px; } .memproto { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 8px; border-top-left-radius: 8px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 8px; -moz-border-radius-topleft: 8px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 8px; -webkit-border-top-left-radius: 8px; background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; } .memdoc { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 2px 5px; background-color: #FBFCFD; border-top-width: 0; /* opera specific markup */ border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { border-spacing: 6px 2px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0px; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; margin: 5px; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ div.dynheader { margin-top: 8px; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; text-align:left; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } .title { font-size: 150%; font-weight: bold; margin: 10px 2px; } dl { padding: 0 0 0 10px; } dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug { border-left:4px solid; padding: 0 0 0 6px; } dl.note { border-color: #D0D000; } dl.warning, dl.attention { border-color: #FF0000; } dl.pre, dl.post, dl.invariant { border-color: #00D000; } dl.deprecated { border-color: #505050; } dl.todo { border-color: #00C0E0; } dl.test { border-color: #3030E0; } dl.bug { border-color: #C08050; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { background-color: #175783; border: 1px solid; height: 80px; background-repeat: no-repeat; /* font: 300% arial,sans-serif;*/ margin: 0px; padding: 0px; } #projectbrief { font: 120% arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { background: url("head.png"); background-color: #175783; border: 1px solid; height: 80px; background-repeat: no-repeat; padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } salome-kernel-6.5.0/doc/salome/tui/static/footer.html000077500000000000000000000006451177004724000225730ustar00rootroot00000000000000
Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
salome-kernel-6.5.0/doc/salome/tui/static/header.html.in000077500000000000000000000013651177004724000231320ustar00rootroot00000000000000 $title $treeview $search $mathjax
Version: @VERSION@
salome-kernel-6.5.0/doc/salome/unittests.dox000077500000000000000000000102101177004724000210620ustar00rootroot00000000000000/*! \page UnitTests Source code structuration and Unit Tests WORK in PROGRESS, INCOMPLETE DOCUMENT You will find here general information on code directories structure, unit tests associated to the different kind of classes, and how to run the unit tests. \section S1_unit SALOME KERNEL source code structuration \subsection sub11 General structure of KERNEL_SRC - KERNEL_SRC :\n Some README files and configuration tools for build - KERNEL_SRC/bin :\n Python and shell scripts used at run time. Kit to install a %SALOME Application. - KERNEL_SRC/doc :\n Kit for KERNEL end user documentation production: public interfaces, Python, CORBA. Integrator and Developper documentation. - KERNEL_SRC/idl :\n All CORBA interfaces from KERNEL are regrouped here. - KERNEL_SRC/resources :\n Configuration files for servers (examples). Interfaces definitions for KERNEL test components. - KERNEL_SRC/salome_adm :\n Configuration files used by autotools (M4 macros & co.) - KERNEL_SRC/src :\n The source code (C++ and Python) \subsection sub12 Directory src: C++ and Python source code
  1. Basic services non related to CORBA - Basics\n %A set of general purpose C++ services, not related to CORBA. Some general purpose services that are in Utils directory (CORBA related), are progressivley moved here, as they are not related to CORBA. - SALOMELocalTrace\n %A multithread trace system that allows message tracing on standard error or a file. - CASCatch\n Exceptions and signal handler. - HDFPersist\n %A C++ interface to HDF.
  2. Basic CORBA services - Logger :\n %A CORBA %server that collects the trace messages from differents CORBA process. - SALOMETraceCollector :\n %A multithread trace system derived from SALOMELocalTrace, that sends messages to Logger %server via CORBA. - Utils :\n %A set of general purpose services related to CORBA, such as basic CORBA exception system. See also Basics directory above. - NamingService :\n C++ and Python interfaces to name, store and retrieve CORBA objects - GenericObj :\n %A generic CORBA interface for CORBA objects, to count distributed references, and to allow destruction by client.
  3. Miscellaneous CORBA servers - %Registry :\n Implements SALOME_registry.idl. Provides a CORBA %server library and a separate %server program. - ModuleCatalog :\n Implements SALOME_moduleCatalog.idl. Provide a CORBA %server library and separate %server and client programs. - ModuleGenerator :\n Tool to generate a module catalog from CORBA idl - ResourcesManager :\n library included in container %server - Notification :\n library included in differents servers (container) - NOTIFICATION_SWIG
  4. CORBA Containers for %SALOME Modules - Container - TestContainer - LifeCycleCORBA - LifeCycleCORBA_SWIG
  5. STUDY %server and related interfaces and tools - SALOMEDSClient - TOOLSDS - SALOMEDSImpl - %SALOMEDS
  6. Python interface to %SALOME - KERNEL_PY
  7. Efficient CORBA transfer services - Communication - Communication_SWIG
  8. %A Parallel container with MPI - MPIContainer - TestMPIContainer
  9. Unit tests - UnitTests
\section S2_unit Tools and principles used for Unit testing TO BE COMPLETED Unit Testing rely on cppunit package for C++ testing, and on unittest module for Python. See these products for general principles of unit testing. The cppunit package is optional. When the prerequisite is detected, the unit tests are compiled. Unit Tests sources are in directories Test under the src/directories containing the classes to test. Test are ordered following the order of directories given above. Tests can be run as a whole, or for a particular directory. In this case, only a partial test is run (the classes to test, and the classes used, i.e. the preceding test directories). Today, only some tests are written as an example. There are not yet python scripts in KERNEL_SRC, but it's a matter of days, there are working scripts to test LifeCycleCORBA_SWIG interface. */ salome-kernel-6.5.0/idl/000077500000000000000000000000001177004724000150325ustar00rootroot00000000000000salome-kernel-6.5.0/idl/Calcium_Ports.idl.in000077500000000000000000000063411177004724000207040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Ports.idl // Author : Eric Fayolle, EDF // #ifndef _CALCIUM_PORTS_IDL_ #define _CALCIUM_PORTS_IDL_ #include "SALOME_Ports.idl" module Ports { module Calcium_Ports { const long UNLIMITED_STORAGE_LEVEL = -70; enum DependencyType { UNDEFINED_DEPENDENCY, TIME_DEPENDENCY, ITERATION_DEPENDENCY }; enum DateCalSchem { TI_SCHEM, TF_SCHEM , ALPHA_SCHEM}; enum InterpolationSchem { L0_SCHEM, L1_SCHEM }; enum ExtrapolationSchem { UNDEFINED_EXTRA_SCHEM, E0_SCHEM, E1_SCHEM}; // enum DisconnectDirective {UNDEFINED_DIRECTIVE,CONTINUE,STOP}; typedef boolean DisconnectDirective; const DisconnectDirective stop = FALSE; const DisconnectDirective cont = TRUE; interface Calcium_Port : Ports::Data_Port, Ports::PortProperties { void disconnect(in DisconnectDirective mode); }; typedef sequence seq_long; typedef sequence seq_long_long; typedef sequence< @CALCIUM_IDL_INT_F77@ > seq_integer; typedef sequence seq_float; typedef sequence seq_double; typedef sequence seq_string; typedef sequence seq_boolean; typedef seq_float seq_complex; //Fortran int size conforming port interface Calcium_Integer_Port : Calcium_Port { void put (in seq_integer data, in double time, in long tag); }; interface Calcium_Intc_Port : Calcium_Port { void put (in seq_long data, in double time, in long tag); }; interface Calcium_Long_Port : Calcium_Port { void put (in seq_long_long data, in double time, in long tag); }; interface Calcium_Real_Port : Calcium_Port { void put (in seq_float data, in double time, in long tag); }; interface Calcium_Double_Port : Calcium_Port { void put (in seq_double data, in double time, in long tag); }; interface Calcium_String_Port : Calcium_Port { void put (in seq_string data, in double time, in long tag); }; interface Calcium_Logical_Port : Calcium_Port { void put (in seq_boolean data, in double time, in long tag); }; interface Calcium_Complex_Port : Calcium_Port { void put (in seq_complex data, in double time, in long tag); }; }; }; #endif salome-kernel-6.5.0/idl/DSC_Engines.idl000077500000000000000000000322541177004724000176160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_Engines.idl // Author : Andre RIBES, EDF // $Header: // #ifndef _DSC_ENGINES_IDL_ #define _DSC_ENGINES_IDL_ #include "SALOME_Component.idl" #include "SALOME_Ports.idl" /*! \file DSC_Engines.idl \brief interfaces that permits to add a dynamic port model to the SALOME object model. */ module Engines { /*! \brief Interface of a DSC component. This interface defines the operations needed to add a component model with dynamic port declaration to the SALOME object model. A component is a black box that interacts with other components only by his ports. A port represents a connection point for the component. In this model, a port is a CORBA interface, so a CORBA object. There is two ways for a component to interact with a port type : - It implements the port : it means "the component provides an implementation of the interface of the port". We design this kind of port as "provides ports". It provides an interface to other components. - It needs to use an object that provides the port interface. We say that the component uses this port type. It is represented by a "uses" port. A uses port can be connected with a provides port of the same interface type. When the connection is done, a component can use the "uses port" to use the interface provided by the "provides port". The interface DSC implements the component interface that containes the operations that are needed to manage declarations into a component and connections between ports. These operations are logicaly divided in two parts : - First part permits to add an get ports of a component. - Second part permits to connect/disconnect ports. */ interface DSC : Engines::EngineComponent { /*--------------------------------------------------------------------------------------------*/ /*-------------------------------------- Types Part ------------------------------------------*/ //! a uses port /*! This sequence is a uses port. It's a sequence since a uses port can be connected with x provides port. Sometimes this kind of uses port is called multiple port. At this programming level, the user has to deal with the sequence. In the DSC_user layer, the user only deals with one pointer. */ typedef sequence uses_port; //! This enumeration is used when the connection of a port (uses or provides) is changed. /*! This information is for the component's user code. */ enum Message {AddingConnection, RemovingConnection, ApplicationError}; //! This exception is raised when a port is used before it is added to the component. exception PortNotDefined {}; //! This exception is raised if you try to add a port with the same name than a previous defined port. exception PortAlreadyDefined {}; //! This exception is raised when you try to use a port that is not connected. exception PortNotConnected {}; //! This exception is raised if the type of the provides port is bad. /*! This exception contains a string that gives what type is expected and the type that the operation received. */ exception BadPortType { string expected; string received; }; //! Port's reference is Nil ! exception NilPort {}; //! Port's reference is not the right reference. exception BadPortReference {}; //! Object property is not good for the port exception BadProperty {}; /*--------------------------------------------------------------------------------------------*/ /*-------------------------------------- Operation Part --------------------------------------*/ //! This operation adds a provides port to the component. /*! \param ref port's Corba reference. \param provides_port_name port's name. \param port_prop port's property object. \exception PortAlreadyDefined \exception NilPort \exception BadProperty \note Notice that the name of the port is unique on a component. So if there is a uses port that has the same name, the PortAlreadyDefined exception will be throw. Also notice that each port as an object property that is associated with. */ void add_provides_port(in Ports::Port ref, in string provides_port_name, in Ports::PortProperties port_prop) raises(PortAlreadyDefined, NilPort, BadProperty); //! This operation adds a uses port to the component. /*! \param repository_id port's Corba repository id. Eg : IDL:toto.tata/MODULE/INTERFACE_NAME:1.0 \param uses_port_name port's name. \param port_prop port's property object. \exception PortAlreadyDefined \exception BadProperty \note Notice that the name of the port is unique on the component. So if there is a provides port that has the same name, the PortAlreadyDefined exception will be throw. Also notice that each port as an object property that is associated with. */ void add_uses_port(in string repository_id, in string uses_port_name, in Ports::PortProperties port_prop) raises(PortAlreadyDefined, BadProperty); //! Get a provides port of the component. /*! It can be used by the framework or the component himself. If it's the framework that wants the port, the reference has to be gived even if the port is not connected (boolean connection_error to false). Contrary, if it's the component that wants the port, the port is given in most of cases only if it is connected (boolean connection_error to true). Notice that you can choose the behaviour that you want. \param provides_port_name port's name. \param connection_error true if you want to wait that the port is connected with an another port. \return port's Corba reference. \exception PortNotDefined \exception PortNotConnected \exception BadPortType */ Ports::Port get_provides_port(in string provides_port_name, in boolean connection_error) raises(PortNotDefined, PortNotConnected, BadPortType); //! Get a uses port of the component. /*! It can be used by the framework or the component himself. Actually, only the user layer of the component will use this operation. A uses port could be obtained if and only if the uses port is connected. The sequence contains all the connections since a uses port can have multiple connections. There is a system of callbacks to prevent the user code that there is a new (or a deletion) of a connection (see DSC_Callbacks class). \param uses_port_name port's name. \return uses port's sequence. \exception PortNotDefined \exception PortNotConnected \exception BadPortType \see DSC_Callbacks */ uses_port get_uses_port(in string uses_port_name) raises(PortNotDefined, PortNotConnected, BadPortType); //! Connect a provides port with a uses port. /*! \param provides_port_name provides port's name. \exception PortNotDefined \note Notice that the provides doesn't uses port names or component reference. */ void connect_provides_port(in string provides_port_name) raises(PortNotDefined); //! Connect a uses port with a provides port. /*! \param uses_port_name uses port's name. \param provides_port_ref provides port's Corba reference. \exception PortNotDefined \exception BadPortType \exception NilPort */ void connect_uses_port(in string uses_port_name, in Ports::Port provides_port_ref) raises(PortNotDefined, BadPortType, NilPort); //! Check if a port is connected. /*! You can test a uses port or a provides port. \param port_name port's name. \return true if the uses port is connected. \exception PortNotDefined */ boolean is_connected(in string port_name) raises(PortNotDefined); //! Disconnect a uses port from a provides port. /*! \param provides_port_name provides port's name. \param message state associated with the disconnection. \exception PortNotDefined \exception PortNotConnected */ void disconnect_provides_port(in string provides_port_name, in Engines::DSC::Message message) raises(PortNotDefined, PortNotConnected); //! Disconnect a provides port from a uses port. /*! \param uses_port_name uses port's name. \param provides_port_ref CORBA reference of the provides port. \param message state associated with the disconnection. \exception PortNotDefined \exception PortNotConnected \exception BadPortReference */ void disconnect_uses_port(in string uses_port_name, in Ports::Port provides_port_ref, in Engines::DSC::Message message) raises(PortNotDefined, PortNotConnected, BadPortReference); //! Get port's property object. /*! \param port_name port's name. \return properties object's CORBA reference. \exception PortNotDefined */ Ports::PortProperties get_port_properties(in string port_name) raises(PortNotDefined); }; /*! \brief Interface of the ConnectionManager. It is a helper object for connection operations. The ConnectionManager is used like other services of SALOME (e.g ContainerManager). */ interface ConnectionManager { //! The Id given to the disconnect method is bad. exception BadId {}; //! A connection Id. It's unique. typedef short connectionId; //! Connect a uses port with a provides port. /*! \param uses_component The component that have the uses port. \param uses_port_name uses port's name. \param provides_component The component that have the provides port. \param provides_port_name provides port's name. \exception Engines::DSC::PortNotDefined \exception Engines::DSC::BadPortType \exception Engines::DSC::NilPort \return the id of the connection that the ConnectionManager will use to release this connection when the framework (or a user script, ...) will call ConnectionManager::disconnect. */ connectionId connect(in Engines::DSC uses_component, in string uses_port_name, in Engines::DSC provides_component, in string provides_port_name) raises(Engines::DSC::PortNotDefined, Engines::DSC::BadPortType, Engines::DSC::NilPort); //! Release a connection that has been previously created by the ConnectionManager. /*! \param id The id of the connection previously gived by the connect operation of the ConnectionManager. \param message state associated with the disconnection. \exception Engines::ConnectionManager::BadId */ void disconnect(in connectionId id, in Engines::DSC::Message message) raises(Engines::ConnectionManager::BadId, Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortReference); //! Shutdown the ConnectionManager process. oneway void ShutdownWithExit(); //! Return the PID of the connection manager long getPID(); }; /*--------------------------------------------------------------------------------------------*/ /*! \brief Interface of the Superv_Component. This interface is a DSC component that contains services for the SALOME module SUPERV. This interface contains methods that are only in local (so they are described and explained in the implementation class Superv_Component_i). These methods give access to data-oriented ports provided by default by SALOME's kernel. */ interface Superv_Component : Engines::DSC { //! Operation to create the service ports before it is executed /*! The SUPERV module call this method before starting the service. Thus the service can add its dynamics ports before it is started. \param service_name service's name. \return true if the service is correctly initialised. */ boolean init_service(in string service_name); }; }; #endif salome-kernel-6.5.0/idl/DSC_Engines.xml000077500000000000000000000027651177004724000176520ustar00rootroot00000000000000 Engines DSC connect_provides_port distributed connect_uses_port distributed Superv_Component init_service distributed salome-kernel-6.5.0/idl/Logger.idl000077500000000000000000000032411177004724000167460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Logger.idl // Author : Vasily Rusyaev // #ifndef SALOME_LOGGER_IDL #define SALOME_LOGGER_IDL #pragma prefix "opencascade.com" /*! \file Logger.idl \brief interfaces for %SALOME logger */ /*! \brief module that provides interface to %SALOME logger */ module SALOME_Logger { /*! \brief interface to use the %SALOME logger */ interface Logger { /*! \brief put message into one special place for all servers using %SALOME logger \param message the message to send */ oneway void putMessage (in string message); //! check if the logger is running void ping (); //! shutdown the logger server void shutdown(); }; }; #endif salome-kernel-6.5.0/idl/Makefile.am000077500000000000000000000305251177004724000170760ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # This Makefile is responsible of generating the client and server # implementation of IDL interfaces for both C++ and python usage. # The building process of the C++ files is in charge of each source # package and then is not manage here. # include $(top_srcdir)/salome_adm/unix/make_common_starter.am AM_CXXFLAGS += -fPIC BASEIDL_FILES = \ SALOME_Exception.idl \ SALOME_Comm.idl \ SALOME_ModuleCatalog.idl \ SALOME_RessourcesCatalog.idl \ SALOMEDS.idl \ SALOMEDS_Attributes.idl \ SALOME_Component.idl \ SALOME_ContainerManager.idl \ SALOME_TestComponent.idl \ SALOME_Registry.idl \ Logger.idl \ SALOME_GenericObj.idl \ SALOME_Types.idl \ SALOME_Session.idl \ SALOME_TestModuleCatalog.idl \ nstest.idl \ DSC_Engines.idl \ SALOME_Ports.idl \ SALOME_PyNode.idl \ Palm_Ports.idl \ SALOME_PACOExtension.idl \ SALOME_ParamPorts.idl \ SALOME_Parametric.idl \ SALOME_MPIObject.idl MPIIDL_FILES = \ SALOME_MPIContainer.idl \ SALOME_TestMPIComponent.idl IDL_FILES = $(BASEIDL_FILES) if MPI_IS_OK IDL_FILES += $(MPIIDL_FILES) endif OTHER_IDL_FILES = \ TestNotif.idl \ TypeData.idl # all the idl files are needed for make dist EXTRA_DIST= $(BASEIDL_FILES) $(MPIIDL_FILES) $(OTHER_IDL_FILES) \ SALOME_Component.xml DSC_Engines.xml SALOME_Ports.xml \ SALOME_PACOExtension.xml SALOME_ParamPorts.xml \ SALOME_GenericObj.xml SALOME_Exception.xml # This variable defines the files to be installed salomeidl_DATA = $(IDL_FILES) nodist_salomeidl_DATA = Calcium_Ports.idl # Sources built from idl files # BUILT_SOURCE = first thing done on make all # idl dependencies are checked and rebuilt first BASEIDL_SOURCES =\ SALOME_ExceptionSK.cc \ SALOME_CommSK.cc \ SALOME_ModuleCatalogSK.cc \ SALOME_RessourcesCatalogSK.cc \ SALOMEDSSK.cc \ SALOMEDS_AttributesSK.cc \ SALOME_ComponentSK.cc \ SALOME_ContainerManagerSK.cc \ SALOME_TestComponentSK.cc \ SALOME_RegistrySK.cc \ LoggerSK.cc \ SALOME_GenericObjSK.cc \ SALOME_TypesSK.cc \ SALOME_SessionSK.cc \ SALOME_TestModuleCatalogSK.cc \ nstestSK.cc \ DSC_EnginesSK.cc \ SALOME_PortsSK.cc \ SALOME_PyNodeSK.cc \ Calcium_PortsSK.cc \ Palm_PortsSK.cc \ SALOME_PACOExtensionSK.cc \ SALOME_ParamPortsSK.cc \ SALOME_ParametricSK.cc \ SALOME_MPIObjectSK.cc DYNIDL_SRCS = \ SALOME_PortsDynSK.cc Calcium_PortsDynSK.cc SALOME_ContainerManagerDynSK.cc \ SALOME_CommDynSK.cc SALOME_RegistryDynSK.cc SALOME_ModuleCatalogDynSK.cc \ SALOMEDSDynSK.cc SALOME_SessionDynSK.cc SALOME_RessourcesCatalogDynSK.cc \ DSC_EnginesDynSK.cc SALOME_ComponentDynSK.cc SALOME_GenericObjDynSK.cc SALOME_TypesDynSK.cc \ Palm_PortsDynSK.cc SALOME_ExceptionDynSK.cc SALOMEDS_AttributesDynSK.cc \ LoggerDynSK.cc SALOME_PACOExtensionDynSK.cc SALOME_ParamPortsDynSK.cc SALOME_PyNodeDynSK.cc \ SALOME_ParametricDynSK.cc SALOME_MPIObjectDynSK.cc MPIIDL_SOURCES = \ SALOME_MPIContainerSK.cc \ SALOME_TestMPIComponentSK.cc IDL_SOURCES = $(BASEIDL_SOURCES) if MPI_IS_OK IDL_SOURCES += $(MPIIDL_SOURCES) endif STATIDL_SOURCES=$(BASEIDL_SOURCES) if MPI_IS_OK STATIDL_SOURCES += $(MPIIDL_SOURCES) endif if MPI_IS_OK DYNIDL_SRCS += SALOME_MPIContainerDynSK.cc SALOME_TestMPIComponentDynSK.cc endif $(DYNIDL_SRCS) : $(IDL_SOURCES) # also install all generated headers to use result library from another modules salomeinclude_DATA= $(STATIDL_SOURCES:%SK.cc=%.hh) if WITH_PACO_PARALLEL PAR = SALOME_ComponentPaCO.hxx SALOME_ComponentPaCO.cxx \ SALOME_PortsPaCO.hxx SALOME_PortsPaCO.cxx \ DSC_EnginesPaCO.hxx DSC_EnginesPaCO.cxx \ SALOME_PACOExtensionPaCO.hxx SALOME_PACOExtensionPaCO.cxx \ SALOME_ParamPortsPaCO.hxx SALOME_ParamPortsPaCO.cxx \ SALOME_GenericObjPaCO.hxx SALOME_GenericObjPaCO.cxx PAR_INCLUDES = SALOME_Exception.hxx SALOME_GenericObj.hxx SALOMEDS.hxx SALOME_PyNode.hxx PAR_LIB = libSalomeParallelIDLKernel.la IDL_PACO = SALOME_ComponentPaCO.idl SALOME_PortsPaCO.idl DSC_EnginesPaCO.idl \ SALOME_ParamPortsPaCO.idl SALOME_PACOExtensionPaCO.idl \ SALOME_GenericObjPaCO.idl GEN_PACO = SALOME_ComponentPaCO_Engines_Container_server.cxx \ SALOME_ComponentPaCO_Engines_Container_client.cxx \ SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx \ SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx \ SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx \ SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx \ SALOME_ComponentPaCO_Engines_Salome_file_server.cxx \ SALOME_ComponentPaCO_Engines_Salome_file_client.cxx \ SALOME_PortsPaCO_Ports_Port_server.cxx \ SALOME_PortsPaCO_Ports_Port_client.cxx \ SALOME_PortsPaCO_Ports_Data_Port_server.cxx \ SALOME_PortsPaCO_Ports_Data_Port_client.cxx \ DSC_EnginesPaCO_Engines_DSC_server.cxx \ DSC_EnginesPaCO_Engines_DSC_client.cxx \ DSC_EnginesPaCO_Engines_Superv_Component_server.cxx \ DSC_EnginesPaCO_Engines_Superv_Component_client.cxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx \ SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx \ SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx \ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx \ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx \ SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx \ SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx INCLUDES_PACO = SALOME_ComponentPaCO_Engines_Container_server.hxx \ SALOME_ComponentPaCO_Engines_Container_client.hxx \ SALOME_ComponentPaCO_Engines_EngineComponent_server.hxx \ SALOME_ComponentPaCO_Engines_EngineComponent_client.hxx \ SALOME_ComponentPaCO_Engines_fileTransfer_server.hxx \ SALOME_ComponentPaCO_Engines_fileTransfer_client.hxx \ SALOME_ComponentPaCO_Engines_Salome_file_server.hxx \ SALOME_ComponentPaCO_Engines_Salome_file_client.hxx \ SALOME_ComponentPaCO.hxx \ SALOME_Component.hxx \ SALOME_PortsPaCO_Ports_Port_server.hxx \ SALOME_PortsPaCO_Ports_Port_client.hxx \ SALOME_PortsPaCO_Ports_Data_Port_server.hxx \ SALOME_PortsPaCO_Ports_Data_Port_client.hxx \ SALOME_PortsPaCO.hxx \ SALOME_Ports.hxx \ DSC_EnginesPaCO_Engines_DSC_server.hxx \ DSC_EnginesPaCO_Engines_DSC_client.hxx \ DSC_EnginesPaCO_Engines_Superv_Component_server.hxx \ DSC_EnginesPaCO_Engines_Superv_Component_client.hxx \ DSC_EnginesPaCO.hxx \ DSC_Engines.hxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.hxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.hxx \ SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.hxx \ SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.hxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.hxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.hxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.hxx \ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.hxx \ SALOME_PACOExtensionPaCO.hxx \ SALOME_PACOExtension.hxx \ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.hxx \ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.hxx \ SALOME_ParamPortsPaCO.hxx \ SALOME_ParamPorts.hxx \ SALOME_GenericObjPaCO_SALOME_GenericObj_server.hxx \ SALOME_GenericObjPaCO_SALOME_GenericObj_client.hxx \ SALOME_GenericObjPaCO.hxx \ SALOME_GenericObj.hxx XML = SALOME_Component.xml DSC_Engines.xml SALOME_Ports.xml \ SALOME_PACOExtension.xml SALOME_ParamPorts.xml \ SALOME_GenericObj.xml endif idldir = $(prefix)/idl/salome nodist_idl_DATA = ${XML} ${IDL_PACO} Calcium_Ports.idl nodist_salomeinclude_HEADERS = ${INCLUDES_PACO} BUILT_SOURCES = $(IDL_SOURCES) $(PAR_INCLUDES) $(PAR) SALOME_GenericObjPaCO.idl SALOME_GenericObjPaCO.hxx SALOME_GenericObjPaCO.cxx : SALOME_GenericObj.idl SALOME_GenericObj.xml SALOME_ComponentPaCO.idl SALOME_ComponentPaCO.hxx SALOME_ComponentPaCO.cxx : SALOME_Component.idl SALOME_Component.xml SALOME_GenericObjPaCO.idl SALOME_PortsPaCO.idl SALOME_PortsPaCO.hxx SALOME_PortsPaCO.cxx : SALOME_Ports.idl SALOME_Ports.xml DSC_EnginesPaCO.idl DSC_EnginesPaCO.hxx DSC_EnginesPaCO.cxx : DSC_Engines.idl DSC_Engines.xml SALOME_PACOExtensionPaCO.idl SALOME_PACOExtensionPaCO.hxx SALOME_PACOExtensionPaCO.cxx : SALOME_PACOExtension.idl SALOME_PACOExtension.xml SALOME_ParamPortsPaCO.idl SALOME_ParamPortsPaCO.hxx SALOME_ParamPortsPaCO.cxx : SALOME_ParamPorts.idl SALOME_ParamPorts.xml lib_LTLIBRARIES = libSalomeIDLKernel.la $(PAR_LIB) nodist_libSalomeIDLKernel_la_SOURCES = $(IDL_SOURCES) $(DYNIDL_SRCS) libSalomeIDLKernel_la_CPPFLAGS =-I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeIDLKernel_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeIDLKernel_la_LIBADD = @CORBA_LIBS@ nodist_libSalomeParallelIDLKernel_la_SOURCES = $(PAR) $(GEN_PACO) libSalomeParallelIDLKernel_la_CPPFLAGS =-I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ @PACO_INCLUDES@ libSalomeParallelIDLKernel_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeParallelIDLKernel_la_LIBADD = libSalomeIDLKernel.la @PACO_LIBS@ # These variables defines the building process of CORBA files IDLCXXFLAGS = -bcxx @IDLCXXFLAGS@ -I$(srcdir) -I$(top_builddir)/salome/idl IDLPYFLAGS = @IDLPYFLAGS@ -I$(srcdir) # potential problem on parallel make on the following - multiple outputs SUFFIXES = .idl .hh SK.cc .idlSK.cc: $(IDL) $(IDLCXXFLAGS) $< SK.cc.hh: #Dummy rule to replace the following one (for parallel make) #.idl.hh: # $(IDL) $(IDLCXXFLAGS) $< if WITH_PACO_PARALLEL %PaCO.idl %PaCO.hxx %PaCO.cxx : %.idl %.xml $(IDL) -p@PACOPATH@/lib/python -bpaco -Wb$(top_srcdir)/idl/$*.xml,$(srcdir):@PACOPATH@/idl $(top_srcdir)/idl/$*.idl .idl.hxx: $(IDL) $(PACOIDLCXXFLAGS) -bcxx -Wbh=.hxx -Wbs=.cxx $< endif install-exec-local: $(IDL_FILES:%=$(top_srcdir)/idl/%) Calcium_Ports.idl $(INSTALL) -d $(DESTDIR)$(salomepythondir) ls $^ | while read file; do \ $(IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ done if WITH_PACO_PARALLEL ls $(top_builddir)/idl/*.idl | while read file; do \ $(IDL) $(IDLPYFLAGS) -I$(top_srcdir)/idl -I@PACOPATH@/idl -C$(DESTDIR)$(salomepythondir) $$file ; \ done endif # uninstall-local removes too much, but it works in distcheck uninstall-local: for filen in `find $(DESTDIR)$(salomepythondir) -maxdepth 1` ; do \ case $${filen} in \ $(DESTDIR)$(salomepythondir) ) ;; \ $(DESTDIR)$(salomepypkgdir) ) ;; \ $(DESTDIR)$(sharedpkgpythondir) ) ;; \ * ) rm -rf $${filen} ;; \ esac ; \ done ; mostlyclean-local: -rm -f *.hh *.cc .depidl Calcium_Ports.idl # we use cpp to generate dependencies between idl files. # option x c tells the preprocessor to consider idl as a c file. # if an idl is modified, all idl dependencies are rebuilt .depidl: $(IDL_FILES) Calcium_Ports.idl @echo "" > $@ @for dep in $^ dummy; do \ if [ $$dep != "dummy" ]; then \ echo Building dependencies for $$dep; \ $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) $$dep 2>/dev/null | \ sed 's/\.o/\SK.cc/' >>$@; \ fi; \ done ; -include .depidl CLEANFILES = *PaCO* *.hxx *.cxx Calcium_Ports.idl salome-kernel-6.5.0/idl/Makefile.in000077500000000000000000005541401177004724000171130ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(srcdir)/Calcium_Ports.idl.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am @MPI_IS_OK_TRUE@am__append_1 = $(MPIIDL_FILES) @MPI_IS_OK_TRUE@am__append_2 = $(MPIIDL_SOURCES) @MPI_IS_OK_TRUE@am__append_3 = $(MPIIDL_SOURCES) @MPI_IS_OK_TRUE@am__append_4 = SALOME_MPIContainerDynSK.cc SALOME_TestMPIComponentDynSK.cc subdir = idl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = Calcium_Ports.idl CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(idldir)" \ "$(DESTDIR)$(salomeidldir)" "$(DESTDIR)$(salomeidldir)" \ "$(DESTDIR)$(salomeincludedir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeIDLKernel_la_DEPENDENCIES = am__objects_1 = libSalomeIDLKernel_la-SALOME_ExceptionSK.lo \ libSalomeIDLKernel_la-SALOME_CommSK.lo \ libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.lo \ libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.lo \ libSalomeIDLKernel_la-SALOMEDSSK.lo \ libSalomeIDLKernel_la-SALOMEDS_AttributesSK.lo \ libSalomeIDLKernel_la-SALOME_ComponentSK.lo \ libSalomeIDLKernel_la-SALOME_ContainerManagerSK.lo \ libSalomeIDLKernel_la-SALOME_TestComponentSK.lo \ libSalomeIDLKernel_la-SALOME_RegistrySK.lo \ libSalomeIDLKernel_la-LoggerSK.lo \ libSalomeIDLKernel_la-SALOME_GenericObjSK.lo \ libSalomeIDLKernel_la-SALOME_TypesSK.lo \ libSalomeIDLKernel_la-SALOME_SessionSK.lo \ libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.lo \ libSalomeIDLKernel_la-nstestSK.lo \ libSalomeIDLKernel_la-DSC_EnginesSK.lo \ libSalomeIDLKernel_la-SALOME_PortsSK.lo \ libSalomeIDLKernel_la-SALOME_PyNodeSK.lo \ libSalomeIDLKernel_la-Calcium_PortsSK.lo \ libSalomeIDLKernel_la-Palm_PortsSK.lo \ libSalomeIDLKernel_la-SALOME_PACOExtensionSK.lo \ libSalomeIDLKernel_la-SALOME_ParamPortsSK.lo \ libSalomeIDLKernel_la-SALOME_ParametricSK.lo \ libSalomeIDLKernel_la-SALOME_MPIObjectSK.lo am__objects_2 = libSalomeIDLKernel_la-SALOME_MPIContainerSK.lo \ libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.lo @MPI_IS_OK_TRUE@am__objects_3 = $(am__objects_2) am__objects_4 = $(am__objects_1) $(am__objects_3) @MPI_IS_OK_TRUE@am__objects_5 = libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.lo \ @MPI_IS_OK_TRUE@ libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.lo am__objects_6 = libSalomeIDLKernel_la-SALOME_PortsDynSK.lo \ libSalomeIDLKernel_la-Calcium_PortsDynSK.lo \ libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.lo \ libSalomeIDLKernel_la-SALOME_CommDynSK.lo \ libSalomeIDLKernel_la-SALOME_RegistryDynSK.lo \ libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.lo \ libSalomeIDLKernel_la-SALOMEDSDynSK.lo \ libSalomeIDLKernel_la-SALOME_SessionDynSK.lo \ libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.lo \ libSalomeIDLKernel_la-DSC_EnginesDynSK.lo \ libSalomeIDLKernel_la-SALOME_ComponentDynSK.lo \ libSalomeIDLKernel_la-SALOME_GenericObjDynSK.lo \ libSalomeIDLKernel_la-SALOME_TypesDynSK.lo \ libSalomeIDLKernel_la-Palm_PortsDynSK.lo \ libSalomeIDLKernel_la-SALOME_ExceptionDynSK.lo \ libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.lo \ libSalomeIDLKernel_la-LoggerDynSK.lo \ libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.lo \ libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.lo \ libSalomeIDLKernel_la-SALOME_PyNodeDynSK.lo \ libSalomeIDLKernel_la-SALOME_ParametricDynSK.lo \ libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.lo \ $(am__objects_5) nodist_libSalomeIDLKernel_la_OBJECTS = $(am__objects_4) \ $(am__objects_6) libSalomeIDLKernel_la_OBJECTS = \ $(nodist_libSalomeIDLKernel_la_OBJECTS) libSalomeIDLKernel_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeIDLKernel_la_LDFLAGS) $(LDFLAGS) -o $@ libSalomeParallelIDLKernel_la_DEPENDENCIES = libSalomeIDLKernel.la @WITH_PACO_PARALLEL_TRUE@am__objects_7 = libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.lo @WITH_PACO_PARALLEL_TRUE@am__objects_8 = libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.lo \ @WITH_PACO_PARALLEL_TRUE@ libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.lo nodist_libSalomeParallelIDLKernel_la_OBJECTS = $(am__objects_7) \ $(am__objects_8) libSalomeParallelIDLKernel_la_OBJECTS = \ $(nodist_libSalomeParallelIDLKernel_la_OBJECTS) libSalomeParallelIDLKernel_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeParallelIDLKernel_la_LDFLAGS) $(LDFLAGS) -o $@ @WITH_PACO_PARALLEL_TRUE@am_libSalomeParallelIDLKernel_la_rpath = \ @WITH_PACO_PARALLEL_TRUE@ -rpath $(libdir) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(nodist_libSalomeIDLKernel_la_SOURCES) \ $(nodist_libSalomeParallelIDLKernel_la_SOURCES) DIST_SOURCES = DATA = $(nodist_idl_DATA) $(nodist_salomeidl_DATA) $(salomeidl_DATA) \ $(salomeinclude_DATA) HEADERS = $(nodist_salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ # These variables defines the building process of CORBA files IDLCXXFLAGS = -bcxx @IDLCXXFLAGS@ -I$(srcdir) -I$(top_builddir)/salome/idl IDLPYFLAGS = @IDLPYFLAGS@ -I$(srcdir) IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # This Makefile is responsible of generating the client and server # implementation of IDL interfaces for both C++ and python usage. # The building process of the C++ files is in charge of each source # package and then is not manage here. # @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = \ @WITHONLYLAUNCHER_FALSE@ -I$(top_builddir)/salome_adm/unix \ @WITHONLYLAUNCHER_FALSE@ -include SALOMEconfig.h -fPIC # This Makefile is responsible of generating the client and server # implementation of IDL interfaces for both C++ and python usage. # The building process of the C++ files is in charge of each source # package and then is not manage here. # @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = -fPIC @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules BASEIDL_FILES = \ SALOME_Exception.idl \ SALOME_Comm.idl \ SALOME_ModuleCatalog.idl \ SALOME_RessourcesCatalog.idl \ SALOMEDS.idl \ SALOMEDS_Attributes.idl \ SALOME_Component.idl \ SALOME_ContainerManager.idl \ SALOME_TestComponent.idl \ SALOME_Registry.idl \ Logger.idl \ SALOME_GenericObj.idl \ SALOME_Types.idl \ SALOME_Session.idl \ SALOME_TestModuleCatalog.idl \ nstest.idl \ DSC_Engines.idl \ SALOME_Ports.idl \ SALOME_PyNode.idl \ Palm_Ports.idl \ SALOME_PACOExtension.idl \ SALOME_ParamPorts.idl \ SALOME_Parametric.idl \ SALOME_MPIObject.idl MPIIDL_FILES = \ SALOME_MPIContainer.idl \ SALOME_TestMPIComponent.idl IDL_FILES = $(BASEIDL_FILES) $(am__append_1) OTHER_IDL_FILES = \ TestNotif.idl \ TypeData.idl # all the idl files are needed for make dist EXTRA_DIST = $(BASEIDL_FILES) $(MPIIDL_FILES) $(OTHER_IDL_FILES) \ SALOME_Component.xml DSC_Engines.xml SALOME_Ports.xml \ SALOME_PACOExtension.xml SALOME_ParamPorts.xml \ SALOME_GenericObj.xml SALOME_Exception.xml # This variable defines the files to be installed salomeidl_DATA = $(IDL_FILES) nodist_salomeidl_DATA = Calcium_Ports.idl # Sources built from idl files # BUILT_SOURCE = first thing done on make all # idl dependencies are checked and rebuilt first BASEIDL_SOURCES = \ SALOME_ExceptionSK.cc \ SALOME_CommSK.cc \ SALOME_ModuleCatalogSK.cc \ SALOME_RessourcesCatalogSK.cc \ SALOMEDSSK.cc \ SALOMEDS_AttributesSK.cc \ SALOME_ComponentSK.cc \ SALOME_ContainerManagerSK.cc \ SALOME_TestComponentSK.cc \ SALOME_RegistrySK.cc \ LoggerSK.cc \ SALOME_GenericObjSK.cc \ SALOME_TypesSK.cc \ SALOME_SessionSK.cc \ SALOME_TestModuleCatalogSK.cc \ nstestSK.cc \ DSC_EnginesSK.cc \ SALOME_PortsSK.cc \ SALOME_PyNodeSK.cc \ Calcium_PortsSK.cc \ Palm_PortsSK.cc \ SALOME_PACOExtensionSK.cc \ SALOME_ParamPortsSK.cc \ SALOME_ParametricSK.cc \ SALOME_MPIObjectSK.cc DYNIDL_SRCS = SALOME_PortsDynSK.cc Calcium_PortsDynSK.cc \ SALOME_ContainerManagerDynSK.cc SALOME_CommDynSK.cc \ SALOME_RegistryDynSK.cc SALOME_ModuleCatalogDynSK.cc \ SALOMEDSDynSK.cc SALOME_SessionDynSK.cc \ SALOME_RessourcesCatalogDynSK.cc DSC_EnginesDynSK.cc \ SALOME_ComponentDynSK.cc SALOME_GenericObjDynSK.cc \ SALOME_TypesDynSK.cc Palm_PortsDynSK.cc \ SALOME_ExceptionDynSK.cc SALOMEDS_AttributesDynSK.cc \ LoggerDynSK.cc SALOME_PACOExtensionDynSK.cc \ SALOME_ParamPortsDynSK.cc SALOME_PyNodeDynSK.cc \ SALOME_ParametricDynSK.cc SALOME_MPIObjectDynSK.cc \ $(am__append_4) MPIIDL_SOURCES = \ SALOME_MPIContainerSK.cc \ SALOME_TestMPIComponentSK.cc IDL_SOURCES = $(BASEIDL_SOURCES) $(am__append_2) STATIDL_SOURCES = $(BASEIDL_SOURCES) $(am__append_3) # also install all generated headers to use result library from another modules salomeinclude_DATA = $(STATIDL_SOURCES:%SK.cc=%.hh) @WITH_PACO_PARALLEL_TRUE@PAR = SALOME_ComponentPaCO.hxx SALOME_ComponentPaCO.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO.hxx SALOME_PortsPaCO.cxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO.hxx DSC_EnginesPaCO.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO.hxx SALOME_PACOExtensionPaCO.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO.hxx SALOME_ParamPortsPaCO.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO.hxx SALOME_GenericObjPaCO.cxx @WITH_PACO_PARALLEL_TRUE@PAR_INCLUDES = SALOME_Exception.hxx SALOME_GenericObj.hxx SALOMEDS.hxx SALOME_PyNode.hxx @WITH_PACO_PARALLEL_TRUE@PAR_LIB = libSalomeParallelIDLKernel.la @WITH_PACO_PARALLEL_TRUE@IDL_PACO = SALOME_ComponentPaCO.idl SALOME_PortsPaCO.idl DSC_EnginesPaCO.idl \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO.idl SALOME_PACOExtensionPaCO.idl \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO.idl @WITH_PACO_PARALLEL_TRUE@GEN_PACO = SALOME_ComponentPaCO_Engines_Container_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_Container_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_Salome_file_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_Salome_file_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Port_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Port_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Data_Port_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Data_Port_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_DSC_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_DSC_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_Superv_Component_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_Superv_Component_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx @WITH_PACO_PARALLEL_TRUE@INCLUDES_PACO = SALOME_ComponentPaCO_Engines_Container_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_Container_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_EngineComponent_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_EngineComponent_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_fileTransfer_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_fileTransfer_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_Salome_file_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO_Engines_Salome_file_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ComponentPaCO.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_Component.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Port_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Port_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Data_Port_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO_Ports_Data_Port_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PortsPaCO.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_Ports.hxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_DSC_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_DSC_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_Superv_Component_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO_Engines_Superv_Component_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_EnginesPaCO.hxx \ @WITH_PACO_PARALLEL_TRUE@ DSC_Engines.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtensionPaCO.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtension.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPortsPaCO.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_ParamPorts.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO_SALOME_GenericObj_server.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO_SALOME_GenericObj_client.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObjPaCO.hxx \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObj.hxx @WITH_PACO_PARALLEL_TRUE@XML = SALOME_Component.xml DSC_Engines.xml SALOME_Ports.xml \ @WITH_PACO_PARALLEL_TRUE@ SALOME_PACOExtension.xml SALOME_ParamPorts.xml \ @WITH_PACO_PARALLEL_TRUE@ SALOME_GenericObj.xml idldir = $(prefix)/idl/salome nodist_idl_DATA = ${XML} ${IDL_PACO} Calcium_Ports.idl nodist_salomeinclude_HEADERS = ${INCLUDES_PACO} BUILT_SOURCES = $(IDL_SOURCES) $(PAR_INCLUDES) $(PAR) lib_LTLIBRARIES = libSalomeIDLKernel.la $(PAR_LIB) nodist_libSalomeIDLKernel_la_SOURCES = $(IDL_SOURCES) $(DYNIDL_SRCS) libSalomeIDLKernel_la_CPPFLAGS = -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeIDLKernel_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeIDLKernel_la_LIBADD = @CORBA_LIBS@ nodist_libSalomeParallelIDLKernel_la_SOURCES = $(PAR) $(GEN_PACO) libSalomeParallelIDLKernel_la_CPPFLAGS = -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ @PACO_INCLUDES@ libSalomeParallelIDLKernel_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeParallelIDLKernel_la_LIBADD = libSalomeIDLKernel.la @PACO_LIBS@ # potential problem on parallel make on the following - multiple outputs SUFFIXES = .idl .hh SK.cc CLEANFILES = *PaCO* *.hxx *.cxx Calcium_Ports.idl all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .idl .hh SK.cc .cc .cxx .hxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu idl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu idl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): Calcium_Ports.idl: $(top_builddir)/config.status $(srcdir)/Calcium_Ports.idl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeIDLKernel.la: $(libSalomeIDLKernel_la_OBJECTS) $(libSalomeIDLKernel_la_DEPENDENCIES) $(libSalomeIDLKernel_la_LINK) -rpath $(libdir) $(libSalomeIDLKernel_la_OBJECTS) $(libSalomeIDLKernel_la_LIBADD) $(LIBS) libSalomeParallelIDLKernel.la: $(libSalomeParallelIDLKernel_la_OBJECTS) $(libSalomeParallelIDLKernel_la_DEPENDENCIES) $(libSalomeParallelIDLKernel_la_LINK) $(am_libSalomeParallelIDLKernel_la_rpath) $(libSalomeParallelIDLKernel_la_OBJECTS) $(libSalomeParallelIDLKernel_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-LoggerDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-LoggerSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistryDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistrySK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestComponentSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesDynSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeIDLKernel_la-nstestSK.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeIDLKernel_la-SALOME_ExceptionSK.lo: SALOME_ExceptionSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ExceptionSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ExceptionSK.lo `test -f 'SALOME_ExceptionSK.cc' || echo '$(srcdir)/'`SALOME_ExceptionSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ExceptionSK.cc' object='libSalomeIDLKernel_la-SALOME_ExceptionSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ExceptionSK.lo `test -f 'SALOME_ExceptionSK.cc' || echo '$(srcdir)/'`SALOME_ExceptionSK.cc libSalomeIDLKernel_la-SALOME_CommSK.lo: SALOME_CommSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_CommSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_CommSK.lo `test -f 'SALOME_CommSK.cc' || echo '$(srcdir)/'`SALOME_CommSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_CommSK.cc' object='libSalomeIDLKernel_la-SALOME_CommSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_CommSK.lo `test -f 'SALOME_CommSK.cc' || echo '$(srcdir)/'`SALOME_CommSK.cc libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.lo: SALOME_ModuleCatalogSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.lo `test -f 'SALOME_ModuleCatalogSK.cc' || echo '$(srcdir)/'`SALOME_ModuleCatalogSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalogSK.cc' object='libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ModuleCatalogSK.lo `test -f 'SALOME_ModuleCatalogSK.cc' || echo '$(srcdir)/'`SALOME_ModuleCatalogSK.cc libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.lo: SALOME_RessourcesCatalogSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.lo `test -f 'SALOME_RessourcesCatalogSK.cc' || echo '$(srcdir)/'`SALOME_RessourcesCatalogSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_RessourcesCatalogSK.cc' object='libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_RessourcesCatalogSK.lo `test -f 'SALOME_RessourcesCatalogSK.cc' || echo '$(srcdir)/'`SALOME_RessourcesCatalogSK.cc libSalomeIDLKernel_la-SALOMEDSSK.lo: SALOMEDSSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOMEDSSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSSK.Tpo -c -o libSalomeIDLKernel_la-SALOMEDSSK.lo `test -f 'SALOMEDSSK.cc' || echo '$(srcdir)/'`SALOMEDSSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSSK.cc' object='libSalomeIDLKernel_la-SALOMEDSSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOMEDSSK.lo `test -f 'SALOMEDSSK.cc' || echo '$(srcdir)/'`SALOMEDSSK.cc libSalomeIDLKernel_la-SALOMEDS_AttributesSK.lo: SALOMEDS_AttributesSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOMEDS_AttributesSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesSK.Tpo -c -o libSalomeIDLKernel_la-SALOMEDS_AttributesSK.lo `test -f 'SALOMEDS_AttributesSK.cc' || echo '$(srcdir)/'`SALOMEDS_AttributesSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributesSK.cc' object='libSalomeIDLKernel_la-SALOMEDS_AttributesSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOMEDS_AttributesSK.lo `test -f 'SALOMEDS_AttributesSK.cc' || echo '$(srcdir)/'`SALOMEDS_AttributesSK.cc libSalomeIDLKernel_la-SALOME_ComponentSK.lo: SALOME_ComponentSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ComponentSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ComponentSK.lo `test -f 'SALOME_ComponentSK.cc' || echo '$(srcdir)/'`SALOME_ComponentSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentSK.cc' object='libSalomeIDLKernel_la-SALOME_ComponentSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ComponentSK.lo `test -f 'SALOME_ComponentSK.cc' || echo '$(srcdir)/'`SALOME_ComponentSK.cc libSalomeIDLKernel_la-SALOME_ContainerManagerSK.lo: SALOME_ContainerManagerSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ContainerManagerSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ContainerManagerSK.lo `test -f 'SALOME_ContainerManagerSK.cc' || echo '$(srcdir)/'`SALOME_ContainerManagerSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ContainerManagerSK.cc' object='libSalomeIDLKernel_la-SALOME_ContainerManagerSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ContainerManagerSK.lo `test -f 'SALOME_ContainerManagerSK.cc' || echo '$(srcdir)/'`SALOME_ContainerManagerSK.cc libSalomeIDLKernel_la-SALOME_TestComponentSK.lo: SALOME_TestComponentSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_TestComponentSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestComponentSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_TestComponentSK.lo `test -f 'SALOME_TestComponentSK.cc' || echo '$(srcdir)/'`SALOME_TestComponentSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestComponentSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestComponentSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TestComponentSK.cc' object='libSalomeIDLKernel_la-SALOME_TestComponentSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_TestComponentSK.lo `test -f 'SALOME_TestComponentSK.cc' || echo '$(srcdir)/'`SALOME_TestComponentSK.cc libSalomeIDLKernel_la-SALOME_RegistrySK.lo: SALOME_RegistrySK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_RegistrySK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistrySK.Tpo -c -o libSalomeIDLKernel_la-SALOME_RegistrySK.lo `test -f 'SALOME_RegistrySK.cc' || echo '$(srcdir)/'`SALOME_RegistrySK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistrySK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistrySK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_RegistrySK.cc' object='libSalomeIDLKernel_la-SALOME_RegistrySK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_RegistrySK.lo `test -f 'SALOME_RegistrySK.cc' || echo '$(srcdir)/'`SALOME_RegistrySK.cc libSalomeIDLKernel_la-LoggerSK.lo: LoggerSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-LoggerSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-LoggerSK.Tpo -c -o libSalomeIDLKernel_la-LoggerSK.lo `test -f 'LoggerSK.cc' || echo '$(srcdir)/'`LoggerSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-LoggerSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-LoggerSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LoggerSK.cc' object='libSalomeIDLKernel_la-LoggerSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-LoggerSK.lo `test -f 'LoggerSK.cc' || echo '$(srcdir)/'`LoggerSK.cc libSalomeIDLKernel_la-SALOME_GenericObjSK.lo: SALOME_GenericObjSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_GenericObjSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_GenericObjSK.lo `test -f 'SALOME_GenericObjSK.cc' || echo '$(srcdir)/'`SALOME_GenericObjSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_GenericObjSK.cc' object='libSalomeIDLKernel_la-SALOME_GenericObjSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_GenericObjSK.lo `test -f 'SALOME_GenericObjSK.cc' || echo '$(srcdir)/'`SALOME_GenericObjSK.cc libSalomeIDLKernel_la-SALOME_TypesSK.lo: SALOME_TypesSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_TypesSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_TypesSK.lo `test -f 'SALOME_TypesSK.cc' || echo '$(srcdir)/'`SALOME_TypesSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TypesSK.cc' object='libSalomeIDLKernel_la-SALOME_TypesSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_TypesSK.lo `test -f 'SALOME_TypesSK.cc' || echo '$(srcdir)/'`SALOME_TypesSK.cc libSalomeIDLKernel_la-SALOME_SessionSK.lo: SALOME_SessionSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_SessionSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_SessionSK.lo `test -f 'SALOME_SessionSK.cc' || echo '$(srcdir)/'`SALOME_SessionSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_SessionSK.cc' object='libSalomeIDLKernel_la-SALOME_SessionSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_SessionSK.lo `test -f 'SALOME_SessionSK.cc' || echo '$(srcdir)/'`SALOME_SessionSK.cc libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.lo: SALOME_TestModuleCatalogSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.lo `test -f 'SALOME_TestModuleCatalogSK.cc' || echo '$(srcdir)/'`SALOME_TestModuleCatalogSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TestModuleCatalogSK.cc' object='libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_TestModuleCatalogSK.lo `test -f 'SALOME_TestModuleCatalogSK.cc' || echo '$(srcdir)/'`SALOME_TestModuleCatalogSK.cc libSalomeIDLKernel_la-nstestSK.lo: nstestSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-nstestSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-nstestSK.Tpo -c -o libSalomeIDLKernel_la-nstestSK.lo `test -f 'nstestSK.cc' || echo '$(srcdir)/'`nstestSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-nstestSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-nstestSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='nstestSK.cc' object='libSalomeIDLKernel_la-nstestSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-nstestSK.lo `test -f 'nstestSK.cc' || echo '$(srcdir)/'`nstestSK.cc libSalomeIDLKernel_la-DSC_EnginesSK.lo: DSC_EnginesSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-DSC_EnginesSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesSK.Tpo -c -o libSalomeIDLKernel_la-DSC_EnginesSK.lo `test -f 'DSC_EnginesSK.cc' || echo '$(srcdir)/'`DSC_EnginesSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesSK.cc' object='libSalomeIDLKernel_la-DSC_EnginesSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-DSC_EnginesSK.lo `test -f 'DSC_EnginesSK.cc' || echo '$(srcdir)/'`DSC_EnginesSK.cc libSalomeIDLKernel_la-SALOME_PortsSK.lo: SALOME_PortsSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_PortsSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_PortsSK.lo `test -f 'SALOME_PortsSK.cc' || echo '$(srcdir)/'`SALOME_PortsSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsSK.cc' object='libSalomeIDLKernel_la-SALOME_PortsSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_PortsSK.lo `test -f 'SALOME_PortsSK.cc' || echo '$(srcdir)/'`SALOME_PortsSK.cc libSalomeIDLKernel_la-SALOME_PyNodeSK.lo: SALOME_PyNodeSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_PyNodeSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_PyNodeSK.lo `test -f 'SALOME_PyNodeSK.cc' || echo '$(srcdir)/'`SALOME_PyNodeSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PyNodeSK.cc' object='libSalomeIDLKernel_la-SALOME_PyNodeSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_PyNodeSK.lo `test -f 'SALOME_PyNodeSK.cc' || echo '$(srcdir)/'`SALOME_PyNodeSK.cc libSalomeIDLKernel_la-Calcium_PortsSK.lo: Calcium_PortsSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-Calcium_PortsSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsSK.Tpo -c -o libSalomeIDLKernel_la-Calcium_PortsSK.lo `test -f 'Calcium_PortsSK.cc' || echo '$(srcdir)/'`Calcium_PortsSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Calcium_PortsSK.cc' object='libSalomeIDLKernel_la-Calcium_PortsSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-Calcium_PortsSK.lo `test -f 'Calcium_PortsSK.cc' || echo '$(srcdir)/'`Calcium_PortsSK.cc libSalomeIDLKernel_la-Palm_PortsSK.lo: Palm_PortsSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-Palm_PortsSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsSK.Tpo -c -o libSalomeIDLKernel_la-Palm_PortsSK.lo `test -f 'Palm_PortsSK.cc' || echo '$(srcdir)/'`Palm_PortsSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Palm_PortsSK.cc' object='libSalomeIDLKernel_la-Palm_PortsSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-Palm_PortsSK.lo `test -f 'Palm_PortsSK.cc' || echo '$(srcdir)/'`Palm_PortsSK.cc libSalomeIDLKernel_la-SALOME_PACOExtensionSK.lo: SALOME_PACOExtensionSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_PACOExtensionSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_PACOExtensionSK.lo `test -f 'SALOME_PACOExtensionSK.cc' || echo '$(srcdir)/'`SALOME_PACOExtensionSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionSK.cc' object='libSalomeIDLKernel_la-SALOME_PACOExtensionSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_PACOExtensionSK.lo `test -f 'SALOME_PACOExtensionSK.cc' || echo '$(srcdir)/'`SALOME_PACOExtensionSK.cc libSalomeIDLKernel_la-SALOME_ParamPortsSK.lo: SALOME_ParamPortsSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ParamPortsSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ParamPortsSK.lo `test -f 'SALOME_ParamPortsSK.cc' || echo '$(srcdir)/'`SALOME_ParamPortsSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParamPortsSK.cc' object='libSalomeIDLKernel_la-SALOME_ParamPortsSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ParamPortsSK.lo `test -f 'SALOME_ParamPortsSK.cc' || echo '$(srcdir)/'`SALOME_ParamPortsSK.cc libSalomeIDLKernel_la-SALOME_ParametricSK.lo: SALOME_ParametricSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ParametricSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ParametricSK.lo `test -f 'SALOME_ParametricSK.cc' || echo '$(srcdir)/'`SALOME_ParametricSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParametricSK.cc' object='libSalomeIDLKernel_la-SALOME_ParametricSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ParametricSK.lo `test -f 'SALOME_ParametricSK.cc' || echo '$(srcdir)/'`SALOME_ParametricSK.cc libSalomeIDLKernel_la-SALOME_MPIObjectSK.lo: SALOME_MPIObjectSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_MPIObjectSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_MPIObjectSK.lo `test -f 'SALOME_MPIObjectSK.cc' || echo '$(srcdir)/'`SALOME_MPIObjectSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_MPIObjectSK.cc' object='libSalomeIDLKernel_la-SALOME_MPIObjectSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_MPIObjectSK.lo `test -f 'SALOME_MPIObjectSK.cc' || echo '$(srcdir)/'`SALOME_MPIObjectSK.cc libSalomeIDLKernel_la-SALOME_MPIContainerSK.lo: SALOME_MPIContainerSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_MPIContainerSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_MPIContainerSK.lo `test -f 'SALOME_MPIContainerSK.cc' || echo '$(srcdir)/'`SALOME_MPIContainerSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_MPIContainerSK.cc' object='libSalomeIDLKernel_la-SALOME_MPIContainerSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_MPIContainerSK.lo `test -f 'SALOME_MPIContainerSK.cc' || echo '$(srcdir)/'`SALOME_MPIContainerSK.cc libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.lo: SALOME_TestMPIComponentSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.lo `test -f 'SALOME_TestMPIComponentSK.cc' || echo '$(srcdir)/'`SALOME_TestMPIComponentSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TestMPIComponentSK.cc' object='libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_TestMPIComponentSK.lo `test -f 'SALOME_TestMPIComponentSK.cc' || echo '$(srcdir)/'`SALOME_TestMPIComponentSK.cc libSalomeIDLKernel_la-SALOME_PortsDynSK.lo: SALOME_PortsDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_PortsDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_PortsDynSK.lo `test -f 'SALOME_PortsDynSK.cc' || echo '$(srcdir)/'`SALOME_PortsDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PortsDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsDynSK.cc' object='libSalomeIDLKernel_la-SALOME_PortsDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_PortsDynSK.lo `test -f 'SALOME_PortsDynSK.cc' || echo '$(srcdir)/'`SALOME_PortsDynSK.cc libSalomeIDLKernel_la-Calcium_PortsDynSK.lo: Calcium_PortsDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-Calcium_PortsDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsDynSK.Tpo -c -o libSalomeIDLKernel_la-Calcium_PortsDynSK.lo `test -f 'Calcium_PortsDynSK.cc' || echo '$(srcdir)/'`Calcium_PortsDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-Calcium_PortsDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Calcium_PortsDynSK.cc' object='libSalomeIDLKernel_la-Calcium_PortsDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-Calcium_PortsDynSK.lo `test -f 'Calcium_PortsDynSK.cc' || echo '$(srcdir)/'`Calcium_PortsDynSK.cc libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.lo: SALOME_ContainerManagerDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.lo `test -f 'SALOME_ContainerManagerDynSK.cc' || echo '$(srcdir)/'`SALOME_ContainerManagerDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ContainerManagerDynSK.cc' object='libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ContainerManagerDynSK.lo `test -f 'SALOME_ContainerManagerDynSK.cc' || echo '$(srcdir)/'`SALOME_ContainerManagerDynSK.cc libSalomeIDLKernel_la-SALOME_CommDynSK.lo: SALOME_CommDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_CommDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_CommDynSK.lo `test -f 'SALOME_CommDynSK.cc' || echo '$(srcdir)/'`SALOME_CommDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_CommDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_CommDynSK.cc' object='libSalomeIDLKernel_la-SALOME_CommDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_CommDynSK.lo `test -f 'SALOME_CommDynSK.cc' || echo '$(srcdir)/'`SALOME_CommDynSK.cc libSalomeIDLKernel_la-SALOME_RegistryDynSK.lo: SALOME_RegistryDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_RegistryDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistryDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_RegistryDynSK.lo `test -f 'SALOME_RegistryDynSK.cc' || echo '$(srcdir)/'`SALOME_RegistryDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistryDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RegistryDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_RegistryDynSK.cc' object='libSalomeIDLKernel_la-SALOME_RegistryDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_RegistryDynSK.lo `test -f 'SALOME_RegistryDynSK.cc' || echo '$(srcdir)/'`SALOME_RegistryDynSK.cc libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.lo: SALOME_ModuleCatalogDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.lo `test -f 'SALOME_ModuleCatalogDynSK.cc' || echo '$(srcdir)/'`SALOME_ModuleCatalogDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalogDynSK.cc' object='libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ModuleCatalogDynSK.lo `test -f 'SALOME_ModuleCatalogDynSK.cc' || echo '$(srcdir)/'`SALOME_ModuleCatalogDynSK.cc libSalomeIDLKernel_la-SALOMEDSDynSK.lo: SALOMEDSDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOMEDSDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOMEDSDynSK.lo `test -f 'SALOMEDSDynSK.cc' || echo '$(srcdir)/'`SALOMEDSDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDSDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSDynSK.cc' object='libSalomeIDLKernel_la-SALOMEDSDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOMEDSDynSK.lo `test -f 'SALOMEDSDynSK.cc' || echo '$(srcdir)/'`SALOMEDSDynSK.cc libSalomeIDLKernel_la-SALOME_SessionDynSK.lo: SALOME_SessionDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_SessionDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_SessionDynSK.lo `test -f 'SALOME_SessionDynSK.cc' || echo '$(srcdir)/'`SALOME_SessionDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_SessionDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_SessionDynSK.cc' object='libSalomeIDLKernel_la-SALOME_SessionDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_SessionDynSK.lo `test -f 'SALOME_SessionDynSK.cc' || echo '$(srcdir)/'`SALOME_SessionDynSK.cc libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.lo: SALOME_RessourcesCatalogDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.lo `test -f 'SALOME_RessourcesCatalogDynSK.cc' || echo '$(srcdir)/'`SALOME_RessourcesCatalogDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_RessourcesCatalogDynSK.cc' object='libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_RessourcesCatalogDynSK.lo `test -f 'SALOME_RessourcesCatalogDynSK.cc' || echo '$(srcdir)/'`SALOME_RessourcesCatalogDynSK.cc libSalomeIDLKernel_la-DSC_EnginesDynSK.lo: DSC_EnginesDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-DSC_EnginesDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesDynSK.Tpo -c -o libSalomeIDLKernel_la-DSC_EnginesDynSK.lo `test -f 'DSC_EnginesDynSK.cc' || echo '$(srcdir)/'`DSC_EnginesDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-DSC_EnginesDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesDynSK.cc' object='libSalomeIDLKernel_la-DSC_EnginesDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-DSC_EnginesDynSK.lo `test -f 'DSC_EnginesDynSK.cc' || echo '$(srcdir)/'`DSC_EnginesDynSK.cc libSalomeIDLKernel_la-SALOME_ComponentDynSK.lo: SALOME_ComponentDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ComponentDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ComponentDynSK.lo `test -f 'SALOME_ComponentDynSK.cc' || echo '$(srcdir)/'`SALOME_ComponentDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ComponentDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentDynSK.cc' object='libSalomeIDLKernel_la-SALOME_ComponentDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ComponentDynSK.lo `test -f 'SALOME_ComponentDynSK.cc' || echo '$(srcdir)/'`SALOME_ComponentDynSK.cc libSalomeIDLKernel_la-SALOME_GenericObjDynSK.lo: SALOME_GenericObjDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_GenericObjDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_GenericObjDynSK.lo `test -f 'SALOME_GenericObjDynSK.cc' || echo '$(srcdir)/'`SALOME_GenericObjDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_GenericObjDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_GenericObjDynSK.cc' object='libSalomeIDLKernel_la-SALOME_GenericObjDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_GenericObjDynSK.lo `test -f 'SALOME_GenericObjDynSK.cc' || echo '$(srcdir)/'`SALOME_GenericObjDynSK.cc libSalomeIDLKernel_la-SALOME_TypesDynSK.lo: SALOME_TypesDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_TypesDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_TypesDynSK.lo `test -f 'SALOME_TypesDynSK.cc' || echo '$(srcdir)/'`SALOME_TypesDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TypesDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TypesDynSK.cc' object='libSalomeIDLKernel_la-SALOME_TypesDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_TypesDynSK.lo `test -f 'SALOME_TypesDynSK.cc' || echo '$(srcdir)/'`SALOME_TypesDynSK.cc libSalomeIDLKernel_la-Palm_PortsDynSK.lo: Palm_PortsDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-Palm_PortsDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsDynSK.Tpo -c -o libSalomeIDLKernel_la-Palm_PortsDynSK.lo `test -f 'Palm_PortsDynSK.cc' || echo '$(srcdir)/'`Palm_PortsDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-Palm_PortsDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Palm_PortsDynSK.cc' object='libSalomeIDLKernel_la-Palm_PortsDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-Palm_PortsDynSK.lo `test -f 'Palm_PortsDynSK.cc' || echo '$(srcdir)/'`Palm_PortsDynSK.cc libSalomeIDLKernel_la-SALOME_ExceptionDynSK.lo: SALOME_ExceptionDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ExceptionDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ExceptionDynSK.lo `test -f 'SALOME_ExceptionDynSK.cc' || echo '$(srcdir)/'`SALOME_ExceptionDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ExceptionDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ExceptionDynSK.cc' object='libSalomeIDLKernel_la-SALOME_ExceptionDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ExceptionDynSK.lo `test -f 'SALOME_ExceptionDynSK.cc' || echo '$(srcdir)/'`SALOME_ExceptionDynSK.cc libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.lo: SALOMEDS_AttributesDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.lo `test -f 'SALOMEDS_AttributesDynSK.cc' || echo '$(srcdir)/'`SALOMEDS_AttributesDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributesDynSK.cc' object='libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOMEDS_AttributesDynSK.lo `test -f 'SALOMEDS_AttributesDynSK.cc' || echo '$(srcdir)/'`SALOMEDS_AttributesDynSK.cc libSalomeIDLKernel_la-LoggerDynSK.lo: LoggerDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-LoggerDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-LoggerDynSK.Tpo -c -o libSalomeIDLKernel_la-LoggerDynSK.lo `test -f 'LoggerDynSK.cc' || echo '$(srcdir)/'`LoggerDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-LoggerDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-LoggerDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LoggerDynSK.cc' object='libSalomeIDLKernel_la-LoggerDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-LoggerDynSK.lo `test -f 'LoggerDynSK.cc' || echo '$(srcdir)/'`LoggerDynSK.cc libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.lo: SALOME_PACOExtensionDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.lo `test -f 'SALOME_PACOExtensionDynSK.cc' || echo '$(srcdir)/'`SALOME_PACOExtensionDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionDynSK.cc' object='libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_PACOExtensionDynSK.lo `test -f 'SALOME_PACOExtensionDynSK.cc' || echo '$(srcdir)/'`SALOME_PACOExtensionDynSK.cc libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.lo: SALOME_ParamPortsDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.lo `test -f 'SALOME_ParamPortsDynSK.cc' || echo '$(srcdir)/'`SALOME_ParamPortsDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParamPortsDynSK.cc' object='libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ParamPortsDynSK.lo `test -f 'SALOME_ParamPortsDynSK.cc' || echo '$(srcdir)/'`SALOME_ParamPortsDynSK.cc libSalomeIDLKernel_la-SALOME_PyNodeDynSK.lo: SALOME_PyNodeDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_PyNodeDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_PyNodeDynSK.lo `test -f 'SALOME_PyNodeDynSK.cc' || echo '$(srcdir)/'`SALOME_PyNodeDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_PyNodeDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PyNodeDynSK.cc' object='libSalomeIDLKernel_la-SALOME_PyNodeDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_PyNodeDynSK.lo `test -f 'SALOME_PyNodeDynSK.cc' || echo '$(srcdir)/'`SALOME_PyNodeDynSK.cc libSalomeIDLKernel_la-SALOME_ParametricDynSK.lo: SALOME_ParametricDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_ParametricDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_ParametricDynSK.lo `test -f 'SALOME_ParametricDynSK.cc' || echo '$(srcdir)/'`SALOME_ParametricDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_ParametricDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParametricDynSK.cc' object='libSalomeIDLKernel_la-SALOME_ParametricDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_ParametricDynSK.lo `test -f 'SALOME_ParametricDynSK.cc' || echo '$(srcdir)/'`SALOME_ParametricDynSK.cc libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.lo: SALOME_MPIObjectDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.lo `test -f 'SALOME_MPIObjectDynSK.cc' || echo '$(srcdir)/'`SALOME_MPIObjectDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_MPIObjectDynSK.cc' object='libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_MPIObjectDynSK.lo `test -f 'SALOME_MPIObjectDynSK.cc' || echo '$(srcdir)/'`SALOME_MPIObjectDynSK.cc libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.lo: SALOME_MPIContainerDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.lo `test -f 'SALOME_MPIContainerDynSK.cc' || echo '$(srcdir)/'`SALOME_MPIContainerDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_MPIContainerDynSK.cc' object='libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_MPIContainerDynSK.lo `test -f 'SALOME_MPIContainerDynSK.cc' || echo '$(srcdir)/'`SALOME_MPIContainerDynSK.cc libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.lo: SALOME_TestMPIComponentDynSK.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.lo -MD -MP -MF $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.Tpo -c -o libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.lo `test -f 'SALOME_TestMPIComponentDynSK.cc' || echo '$(srcdir)/'`SALOME_TestMPIComponentDynSK.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.Tpo $(DEPDIR)/libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TestMPIComponentDynSK.cc' object='libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeIDLKernel_la-SALOME_TestMPIComponentDynSK.lo `test -f 'SALOME_TestMPIComponentDynSK.cc' || echo '$(srcdir)/'`SALOME_TestMPIComponentDynSK.cc libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.lo: SALOME_ComponentPaCO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.lo `test -f 'SALOME_ComponentPaCO.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO.lo `test -f 'SALOME_ComponentPaCO.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO.cxx libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.lo: SALOME_PortsPaCO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.lo `test -f 'SALOME_PortsPaCO.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsPaCO.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO.lo `test -f 'SALOME_PortsPaCO.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO.cxx libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.lo: DSC_EnginesPaCO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.Tpo -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.lo `test -f 'DSC_EnginesPaCO.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesPaCO.cxx' object='libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO.lo `test -f 'DSC_EnginesPaCO.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.lo: SALOME_PACOExtensionPaCO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.lo `test -f 'SALOME_PACOExtensionPaCO.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO.lo `test -f 'SALOME_PACOExtensionPaCO.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO.cxx libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.lo: SALOME_ParamPortsPaCO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.lo `test -f 'SALOME_ParamPortsPaCO.cxx' || echo '$(srcdir)/'`SALOME_ParamPortsPaCO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParamPortsPaCO.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO.lo `test -f 'SALOME_ParamPortsPaCO.cxx' || echo '$(srcdir)/'`SALOME_ParamPortsPaCO.cxx libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.lo: SALOME_GenericObjPaCO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.lo `test -f 'SALOME_GenericObjPaCO.cxx' || echo '$(srcdir)/'`SALOME_GenericObjPaCO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_GenericObjPaCO.cxx' object='libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO.lo `test -f 'SALOME_GenericObjPaCO.cxx' || echo '$(srcdir)/'`SALOME_GenericObjPaCO.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.lo: SALOME_ComponentPaCO_Engines_Container_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.lo `test -f 'SALOME_ComponentPaCO_Engines_Container_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Container_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_Container_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_server.lo `test -f 'SALOME_ComponentPaCO_Engines_Container_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Container_server.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.lo: SALOME_ComponentPaCO_Engines_Container_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.lo `test -f 'SALOME_ComponentPaCO_Engines_Container_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Container_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_Container_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Container_client.lo `test -f 'SALOME_ComponentPaCO_Engines_Container_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Container_client.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.lo: SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.lo `test -f 'SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_server.lo `test -f 'SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_EngineComponent_server.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.lo: SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.lo `test -f 'SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_EngineComponent_client.lo `test -f 'SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_EngineComponent_client.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.lo: SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.lo `test -f 'SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_server.lo `test -f 'SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_fileTransfer_server.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.lo: SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.lo `test -f 'SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_fileTransfer_client.lo `test -f 'SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_fileTransfer_client.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.lo: SALOME_ComponentPaCO_Engines_Salome_file_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.lo `test -f 'SALOME_ComponentPaCO_Engines_Salome_file_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Salome_file_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_Salome_file_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_server.lo `test -f 'SALOME_ComponentPaCO_Engines_Salome_file_server.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Salome_file_server.cxx libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.lo: SALOME_ComponentPaCO_Engines_Salome_file_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.lo `test -f 'SALOME_ComponentPaCO_Engines_Salome_file_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Salome_file_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ComponentPaCO_Engines_Salome_file_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ComponentPaCO_Engines_Salome_file_client.lo `test -f 'SALOME_ComponentPaCO_Engines_Salome_file_client.cxx' || echo '$(srcdir)/'`SALOME_ComponentPaCO_Engines_Salome_file_client.cxx libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.lo: SALOME_PortsPaCO_Ports_Port_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.lo `test -f 'SALOME_PortsPaCO_Ports_Port_server.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Port_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsPaCO_Ports_Port_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_server.lo `test -f 'SALOME_PortsPaCO_Ports_Port_server.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Port_server.cxx libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.lo: SALOME_PortsPaCO_Ports_Port_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.lo `test -f 'SALOME_PortsPaCO_Ports_Port_client.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Port_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsPaCO_Ports_Port_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Port_client.lo `test -f 'SALOME_PortsPaCO_Ports_Port_client.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Port_client.cxx libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.lo: SALOME_PortsPaCO_Ports_Data_Port_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.lo `test -f 'SALOME_PortsPaCO_Ports_Data_Port_server.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Data_Port_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsPaCO_Ports_Data_Port_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_server.lo `test -f 'SALOME_PortsPaCO_Ports_Data_Port_server.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Data_Port_server.cxx libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.lo: SALOME_PortsPaCO_Ports_Data_Port_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.lo `test -f 'SALOME_PortsPaCO_Ports_Data_Port_client.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Data_Port_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PortsPaCO_Ports_Data_Port_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PortsPaCO_Ports_Data_Port_client.lo `test -f 'SALOME_PortsPaCO_Ports_Data_Port_client.cxx' || echo '$(srcdir)/'`SALOME_PortsPaCO_Ports_Data_Port_client.cxx libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.lo: DSC_EnginesPaCO_Engines_DSC_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.Tpo -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.lo `test -f 'DSC_EnginesPaCO_Engines_DSC_server.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_DSC_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesPaCO_Engines_DSC_server.cxx' object='libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_server.lo `test -f 'DSC_EnginesPaCO_Engines_DSC_server.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_DSC_server.cxx libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.lo: DSC_EnginesPaCO_Engines_DSC_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.Tpo -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.lo `test -f 'DSC_EnginesPaCO_Engines_DSC_client.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_DSC_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesPaCO_Engines_DSC_client.cxx' object='libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_DSC_client.lo `test -f 'DSC_EnginesPaCO_Engines_DSC_client.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_DSC_client.cxx libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.lo: DSC_EnginesPaCO_Engines_Superv_Component_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.Tpo -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.lo `test -f 'DSC_EnginesPaCO_Engines_Superv_Component_server.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_Superv_Component_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesPaCO_Engines_Superv_Component_server.cxx' object='libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_server.lo `test -f 'DSC_EnginesPaCO_Engines_Superv_Component_server.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_Superv_Component_server.cxx libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.lo: DSC_EnginesPaCO_Engines_Superv_Component_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.Tpo -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.lo `test -f 'DSC_EnginesPaCO_Engines_Superv_Component_client.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_Superv_Component_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_EnginesPaCO_Engines_Superv_Component_client.cxx' object='libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-DSC_EnginesPaCO_Engines_Superv_Component_client.lo `test -f 'DSC_EnginesPaCO_Engines_Superv_Component_client.cxx' || echo '$(srcdir)/'`DSC_EnginesPaCO_Engines_Superv_Component_client.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.lo: SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.lo: SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Component_client.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.lo: SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.lo: SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_PACO_Container_client.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.lo: SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.lo: SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_client.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.lo: SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.cxx libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.lo: SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.lo `test -f 'SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx' || echo '$(srcdir)/'`SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_client.cxx libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.lo: SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.lo `test -f 'SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx' || echo '$(srcdir)/'`SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.lo `test -f 'SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx' || echo '$(srcdir)/'`SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.cxx libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.lo: SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.lo `test -f 'SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx' || echo '$(srcdir)/'`SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.lo `test -f 'SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx' || echo '$(srcdir)/'`SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.cxx libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.lo: SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.lo `test -f 'SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx' || echo '$(srcdir)/'`SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx' object='libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_server.lo `test -f 'SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx' || echo '$(srcdir)/'`SALOME_GenericObjPaCO_SALOME_GenericObj_server.cxx libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.lo: SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.Tpo -c -o libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.lo `test -f 'SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx' || echo '$(srcdir)/'`SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.Tpo $(DEPDIR)/libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx' object='libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeParallelIDLKernel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelIDLKernel_la-SALOME_GenericObjPaCO_SALOME_GenericObj_client.lo `test -f 'SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx' || echo '$(srcdir)/'`SALOME_GenericObjPaCO_SALOME_GenericObj_client.cxx .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-nodist_idlDATA: $(nodist_idl_DATA) @$(NORMAL_INSTALL) test -z "$(idldir)" || $(MKDIR_P) "$(DESTDIR)$(idldir)" @list='$(nodist_idl_DATA)'; test -n "$(idldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(idldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(idldir)" || exit $$?; \ done uninstall-nodist_idlDATA: @$(NORMAL_UNINSTALL) @list='$(nodist_idl_DATA)'; test -n "$(idldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(idldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(idldir)" && rm -f $$files install-nodist_salomeidlDATA: $(nodist_salomeidl_DATA) @$(NORMAL_INSTALL) test -z "$(salomeidldir)" || $(MKDIR_P) "$(DESTDIR)$(salomeidldir)" @list='$(nodist_salomeidl_DATA)'; test -n "$(salomeidldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeidldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeidldir)" || exit $$?; \ done uninstall-nodist_salomeidlDATA: @$(NORMAL_UNINSTALL) @list='$(nodist_salomeidl_DATA)'; test -n "$(salomeidldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeidldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeidldir)" && rm -f $$files install-salomeidlDATA: $(salomeidl_DATA) @$(NORMAL_INSTALL) test -z "$(salomeidldir)" || $(MKDIR_P) "$(DESTDIR)$(salomeidldir)" @list='$(salomeidl_DATA)'; test -n "$(salomeidldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeidldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeidldir)" || exit $$?; \ done uninstall-salomeidlDATA: @$(NORMAL_UNINSTALL) @list='$(salomeidl_DATA)'; test -n "$(salomeidldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeidldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeidldir)" && rm -f $$files install-salomeincludeDATA: $(salomeinclude_DATA) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_DATA)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeDATA: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_DATA)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files install-nodist_salomeincludeHEADERS: $(nodist_salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(nodist_salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-nodist_salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(idldir)" "$(DESTDIR)$(salomeidldir)" "$(DESTDIR)$(salomeidldir)" "$(DESTDIR)$(salomeincludedir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nodist_idlDATA install-nodist_salomeidlDATA \ install-nodist_salomeincludeHEADERS install-salomeidlDATA \ install-salomeincludeDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-exec-local install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-local \ uninstall-nodist_idlDATA uninstall-nodist_salomeidlDATA \ uninstall-nodist_salomeincludeHEADERS uninstall-salomeidlDATA \ uninstall-salomeincludeDATA .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-exec-local \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-nodist_idlDATA \ install-nodist_salomeidlDATA \ install-nodist_salomeincludeHEADERS install-pdf install-pdf-am \ install-ps install-ps-am install-salomeidlDATA \ install-salomeincludeDATA install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-nodist_idlDATA uninstall-nodist_salomeidlDATA \ uninstall-nodist_salomeincludeHEADERS uninstall-salomeidlDATA \ uninstall-salomeincludeDATA $(DYNIDL_SRCS) : $(IDL_SOURCES) SALOME_GenericObjPaCO.idl SALOME_GenericObjPaCO.hxx SALOME_GenericObjPaCO.cxx : SALOME_GenericObj.idl SALOME_GenericObj.xml SALOME_ComponentPaCO.idl SALOME_ComponentPaCO.hxx SALOME_ComponentPaCO.cxx : SALOME_Component.idl SALOME_Component.xml SALOME_GenericObjPaCO.idl SALOME_PortsPaCO.idl SALOME_PortsPaCO.hxx SALOME_PortsPaCO.cxx : SALOME_Ports.idl SALOME_Ports.xml DSC_EnginesPaCO.idl DSC_EnginesPaCO.hxx DSC_EnginesPaCO.cxx : DSC_Engines.idl DSC_Engines.xml SALOME_PACOExtensionPaCO.idl SALOME_PACOExtensionPaCO.hxx SALOME_PACOExtensionPaCO.cxx : SALOME_PACOExtension.idl SALOME_PACOExtension.xml SALOME_ParamPortsPaCO.idl SALOME_ParamPortsPaCO.hxx SALOME_ParamPortsPaCO.cxx : SALOME_ParamPorts.idl SALOME_ParamPorts.xml .idlSK.cc: $(IDL) $(IDLCXXFLAGS) $< SK.cc.hh: #Dummy rule to replace the following one (for parallel make) #.idl.hh: # $(IDL) $(IDLCXXFLAGS) $< @WITH_PACO_PARALLEL_TRUE@%PaCO.idl %PaCO.hxx %PaCO.cxx : %.idl %.xml @WITH_PACO_PARALLEL_TRUE@ $(IDL) -p@PACOPATH@/lib/python -bpaco -Wb$(top_srcdir)/idl/$*.xml,$(srcdir):@PACOPATH@/idl $(top_srcdir)/idl/$*.idl @WITH_PACO_PARALLEL_TRUE@.idl.hxx: @WITH_PACO_PARALLEL_TRUE@ $(IDL) $(PACOIDLCXXFLAGS) -bcxx -Wbh=.hxx -Wbs=.cxx $< install-exec-local: $(IDL_FILES:%=$(top_srcdir)/idl/%) Calcium_Ports.idl $(INSTALL) -d $(DESTDIR)$(salomepythondir) ls $^ | while read file; do \ $(IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ done @WITH_PACO_PARALLEL_TRUE@ ls $(top_builddir)/idl/*.idl | while read file; do \ @WITH_PACO_PARALLEL_TRUE@ $(IDL) $(IDLPYFLAGS) -I$(top_srcdir)/idl -I@PACOPATH@/idl -C$(DESTDIR)$(salomepythondir) $$file ; \ @WITH_PACO_PARALLEL_TRUE@ done # uninstall-local removes too much, but it works in distcheck uninstall-local: for filen in `find $(DESTDIR)$(salomepythondir) -maxdepth 1` ; do \ case $${filen} in \ $(DESTDIR)$(salomepythondir) ) ;; \ $(DESTDIR)$(salomepypkgdir) ) ;; \ $(DESTDIR)$(sharedpkgpythondir) ) ;; \ * ) rm -rf $${filen} ;; \ esac ; \ done ; mostlyclean-local: -rm -f *.hh *.cc .depidl Calcium_Ports.idl # we use cpp to generate dependencies between idl files. # option x c tells the preprocessor to consider idl as a c file. # if an idl is modified, all idl dependencies are rebuilt .depidl: $(IDL_FILES) Calcium_Ports.idl @echo "" > $@ @for dep in $^ dummy; do \ if [ $$dep != "dummy" ]; then \ echo Building dependencies for $$dep; \ $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) $$dep 2>/dev/null | \ sed 's/\.o/\SK.cc/' >>$@; \ fi; \ done ; -include .depidl # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/idl/Palm_Ports.idl000077500000000000000000000041261177004724000176120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Palm_Ports.idl // Author : André RIBES, EDF // #ifndef _PALM_PORTS_IDL_ #define _PALM_PORTS_IDL_ #include "SALOME_Ports.idl" /*! \file Palm_Ports.idl \brief This file contains IDL palm ports declarations. */ module Ports { module Palm_Ports { /*! \brief Interface of a short for palm. */ interface Palm_Data_Short_Port : Ports::Data_Port { /*! \brief This operation permits to transmit a short. \param data the short transmitted. \param time time associated to the short. \param tag tag associated to the short. */ void put (in short data, in long time, in long tag); }; /*! It is a sequence of short for palm ports. */ typedef sequence seq_short; /*! \brief Interface of a sequence of short port. */ interface Palm_Data_Seq_Short_Port : Ports::Data_Port { /*! \brief This operation permits to transmit a sequence of short. \param data the sequence transmitted. \param time time associated to the data. \param tag tag associated to the data. */ void put (in seq_short data, in long time, in long tag); }; }; }; #endif salome-kernel-6.5.0/idl/SALOMEDS.idl000077500000000000000000001456641177004724000167560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS.idl // Author : Yves FRICAUD // /*! \file SALOMEDS.idl \brief This file contains a set of interfaces used for creation, management and modification of the %Study */ #ifndef _SALOMEDS_IDL_ #define _SALOMEDS_IDL_ #include "SALOME_Exception.idl" #include "SALOME_GenericObj.idl" /*! \brief This package contains the interfaces used for creation, management and modification of the %Study */ module SALOMEDS { /*! \brief Name of the file in which the %Study is saved. */ typedef string URL; /*! \brief Main identifier of an object in %SALOME application */ typedef string ID; /*! \brief While saving the data, IOR is transformed into persistent reference */ typedef string PersistentReference; /*! \brief IOR of the study in %SALOME application */ typedef string SalomeReference; /*! \brief List of the names of studies which are currently open in this %SALOME session. Since %SALOME is a multi-study application, it allows to open a lot of studies during each working session. */ typedef sequence ListOfOpenStudies; //! List of file names typedef sequence ListOfFileNames; //! List of modification dates of a study typedef sequence ListOfDates ; //! An unbounded sequence of strings typedef sequence ListOfStrings ; //! An unbounded sequence of sequence of strings typedef sequence ListOfListOfStrings ; //! A byte stream which is used for binary data transfer between different components typedef sequence TMPFile; // Reference to other objects is treated with function AddReference // and ReferencedObject // All other type of attributes defined in AttributeType enum are // treated with AddAdttribute and GetAttribute // The difference is made because Reference attribute don't contain // strings but reference to ID of other objects interface GenericAttribute; interface Study; interface StudyManager; interface StudyBuilder; interface SObject; interface SComponent; interface SComponentIterator; interface ChildIterator; interface Driver; interface AttributeStudyProperties; interface AttributeParameter; interface UseCaseIterator; interface UseCaseBuilder; interface Observer { oneway void notifyObserverID(in string theID, in long event); }; //! List of attributes of %SObjects typedef sequence ListOfAttributes; //! Exception indicating that this feature hasn't been implemented in %SALOME application. exception NotImplemented {}; //=========================================================================== /*! \brief %Study Interface The purpose of the %Study is to manage the data produced by various components of %SALOME platform. Most of the %Study operations are handled by the StudyManager and the StudyBuilder. What is left in the %Study interface are elementary inquiries. (Incidentally, we recall that a CORBA attribute is implemented as a pair of get and set methods.) A %Study is explored by a set of tools, mainly iterators , which are described further. Nevertheless, the %Study interface allows the search of an object by name or by ID. \note
The Path of an object in %SALOME application is much alike a standard path of a file. In general it's a string of names of directories divided by a slash '/'.
The Context is the current directory of an object.

*/ interface Study { //! Invalid study context exception StudyInvalidContext {}; //! Invalid study component exception StudyInvalidComponent {}; //! Invalid directory of the %study exception exception StudyInvalidDirectory {}; //! Exception pointing that this name of the study has already been used. exception StudyNameAlreadyUsed {}; //! study object already exists exception StudyObjectAlreadyExists {}; //! Invalid name of the %study exception exception StudyNameError {}; //! Invalid study comment 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; //! Get the persistent reference to the %Study. PersistentReference GetPersistentReference(); //! Get a transient reference to the %Study. SalomeReference GetTransientReference(); /*! \brief indicate whether the %Study is empty \return True if the %Study is empty */ boolean IsEmpty(); /*! \brief 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 \ref example1 for an example of this method usage in batchmode of %SALOME application. */ SComponent FindComponent (in string aComponentName); /*! \brief Find a %SComponent by ID of the according %SObject */ SComponent FindComponentID(in ID aComponentID); /*! \brief Find a %SObject by the Name Attribute of this %SObject \param anObjectName String parameter defining the name of the object \return The obtained %SObject See \ref example19 for an example of this method usage in batchmode of %SALOME application. */ SObject FindObject (in string anObjectName); /*! \brief Find a %SObject by its ID \param aObjectID This parameter defines the ID of the required object \return The obtained %SObject */ SObject FindObjectID (in ID aObjectID); /*! \brief Create a %SObject by its ID \param aObjectID This parameter defines the ID of the required object \return The created %SObject */ SObject CreateObjectID (in ID aObjectID); /*! \brief Find a %SObject by IOR of the object belonging to this %SObject. \param anObjectName This parameter defines the IOR of the object \return The obtained %SObject */ SObject FindObjectIOR (in ID aObjectIOR); /*! \brief Find in the study all %SObjects produced by a given %Component. \param anObjectName The Name Attribute of the searched %SObjects should correspond to anObjectName. \param aComponentName The name of the component, which objects are searched for. */ ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName); /*! \brief Find a %SObject by the path to it. \param thePath The path to the required %SObject. \return The obtained %SObject. */ SObject FindObjectByPath(in string thePath); /*! \brief Get the path to the %SObject. */ string GetObjectPath(in Object theObject); /*! \brief Set the context of the %Study. \param thePath String parameter defining the context of the study. See \ref example23 for an example of this method usage in batchmode of %SALOME application. */ void SetContext(in string thePath); /*! \brief Get the context of the %Study. See \ref example23 for an example of this method usage in batchmode of %SALOME application. */ string GetContext(); /*! \brief Get 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); /*! \brief Get 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); /*! \brief Get 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); /*! \brief Get 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); /*! \brief Create a new iterator of child levels of the given %SObject. \param aSO The given %SObject \return A new iterator of child levels of the given %SObject. */ ChildIterator NewChildIterator(in SObject aSO); /*! \brief Create a new iterator of the %SComponents. \return A new iterator of the %SComponents. */ SComponentIterator NewComponentIterator(); /*! \brief Create a new %StudyBuilder to add or modify an object in the study. \return A new %StudyBuilder. See \ref example20 for an example of this method usage in batchmode of %SALOME application. */ StudyBuilder NewBuilder() ; /*! \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); /*! \brief Getting properties of the study Returns the attribute, which contains the properties of this study. See \ref example20 for an example of this method usage in batchmode of %SALOME application. */ AttributeStudyProperties GetProperties(); /*! \brief Indicate whether the %study has been saved */ attribute boolean IsSaved; /*! \brief Indicate whether the %study has been modified and not saved. Returns True if the %study has been modified and not saved. */ boolean IsModified(); /*! \brief Mark the %study as being modified and not saved. */ void Modified(); /*! \brief Indicate 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); /*! \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(); /*! \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(); /*! \brief Object conversion. Converts an object into IOR. \return IOR */ string ConvertObjectToIOR(in Object theObject); /*! \brief Object conversion. Converts IOR into an object. \return An object */ Object ConvertIORToObject(in string theIOR); /*! \brief Get a new %UseCaseBuilder. */ UseCaseBuilder GetUseCaseBuilder(); /*! \brief Close the components in the study, remove itself from the %StudyManager. */ void Close(); /*! \brief Enable (if isEnabled = True)/disable automatic addition of new %SObjects to the use case. */ void EnableUseCaseAutoFilling(in boolean isEnabled); /*! Functions for internal usage only */ void AddPostponed(in string theIOR); void AddCreatedPostponed(in string theIOR); void RemovePostponed(in long theUndoLimit); void UndoPostponed(in long theWay); boolean DumpStudy(in string thePath, in string theBaseName, in boolean isPublished, in boolean isMultiFile); /*! \brief Get an AttributeParameter used to store common parameters for given %theSavePoint. \param theID identifies a common parameters set (Example: "Interface Applicative") \param theSavePoint is number of a set of parameters as there can be several sets */ AttributeParameter GetCommonParameters(in string theID, in long theSavePoint); /*! \brief Get an AttributeParameter used to store parameters for given %theModuleName. \param theID identifies a common parameters set (Example: "Interface Applicative") \param theModuleName is a name of the module (Example: "Geometry") \param theSavePoint is number of a set of parameters as there can be several sets */ AttributeParameter GetModuleParameters(in string theID, in string theModuleName, in long theSavePoint); /*! \brief Get a default Python script to restore visual parameters for given %theModuleName. \param theID identifies a common parameters set (Example: "Interface Applicative") \param theModuleName is a name of the module (Example: "Geometry") */ string GetDefaultScript(in string theID, in string theModuleName); /*! Private method, returns an implementation of this Study. \param theHostname is a hostname of the caller \param thePID is a process ID of the caller \param isLocal is set True if the Study is launched locally with the caller */ long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); /*! \brief Mark this Study as being locked by the given locker. The lock status can be checked by method IsStudyLocked \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that locks the study. */ void SetStudyLock(in string theLockerID); /*! \brief Indicate if the Study is locked Returns True if the Study was marked locked. */ boolean IsStudyLocked(); /*! \brief Mark this Study as being unlocked by the given locker. The lock status can be checked by method IsStudyLocked \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that unlocks the study. */ void UnLockStudy(in string theLockerID); /*! \brief Get the list of IDs of the Study's lockers. */ ListOfStrings GetLockerID(); /*! \brief Create real variable with Name theVarName and value theValue (or set if variable value into theValue already exists) \param theVarName is a name of the variable \param theVarName is a value of the variable. */ void SetReal( in string theVarName, in double theValue ); /*! \brief Create integer variable with Name theVarName and value theValue (or set if variable value into theValue already exists) \param theVarName is a name of the variable \param theVarName is a value of the variable. */ void SetInteger( in string theVarName, in long theValue ); /*! \brief Create boolean variable with Name theVarName and value theValue (or set if variable value into theValue already exists) \param theVarName is a name of the variable \param theVarName is a value of the variable. */ void SetBoolean( in string theVarName, in boolean theValue ); /*! \brief Create string variable with Name theVarName and value theValue (or set if variable value into theValue already exists) \param theVarName is a name of the variable \param theVarName is a value of the variable. */ void SetString( in string theVarName, in string theValue ); /*! \brief Set current value as double for string variable */ void SetStringAsDouble( in string theVarName, in double theValue ); /*! \brief Get value of a real variable \param theVarName is a name of the variable. */ double GetReal( in string theVarName ); /*! \brief Get value of an integer variable \param theVarName is a name of the variable. */ long GetInteger( in string theVarName ); /*! \brief Get value of a boolean variable \param theVarName is a name of the variable. */ boolean GetBoolean( in string theVarName ); /*! \brief Get value of a string variable \param theVarName is a name of the variable. */ string GetString( in string theVarName ); /*! \brief Indicate if a variable is real Return true if variable is real otherwise return false. \param theVarName is a name of the variable. */ boolean IsReal( in string theVarName ); /*! \brief Indicate if a variable is integer Return true if variable is integer otherwise return false. \param theVarName is a name of the variable. */ boolean IsInteger( in string theVarName ); /*! \brief Indicate if a variable is boolean Return true if variable is boolean otherwise return false. \param theVarName is a name of the variable. */ boolean IsBoolean( in string theVarName ); /*! \brief Indicate if a variable is string Return true if variable is string otherwise return false. \param theVarName is a name of the variable. */ boolean IsString( in string theVarName ); /*! \brief Indicate if a variable exists in the study Return true if variable exists in the study, otherwise return false. \param theVarName is a name of the variable. */ boolean IsVariable( in string theVarName ); /*! \brief Get names of all variables from the study. */ ListOfStrings GetVariableNames(); /*! \brief Remove a variable Remove variable with the specified name from the study with substitution of its value. \param theVarName Name of the variable. \return Status of operation. */ boolean RemoveVariable( in string theVarName ); /*! \brief Rename a variable Rename variable with the specified name within the study. \param theVarName Name of the variable. \param theNewVarName New name for the variable. \return Status of operation. */ boolean RenameVariable( in string theVarName, in string theNewVarName ); /*! \brief Indicate whether variable is used Check that variable is used in the study. \param theVarName Name of the variable. \return Variable usage. */ boolean IsVariableUsed( in string theVarName ); /*! \brief Parse variables used for object creation \param string with variables, separated by special symbol. \return Variables list. */ ListOfListOfStrings ParseVariables( in string theVars ); /*! Attach an observer to the Study \param theObserver */ void attach(in SALOMEDS::Observer theObserver, in boolean modify); }; //========================================================================== /*! \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 \ref example17 for an example of this method usage in batchmode of %SALOME application. */ SComponent NewComponent(in string ComponentDataType) raises(LockProtection); /*! \brief Definition of the instance to the %SComponent Defines the instance to the %SComponent. */ void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR) raises(LockProtection); /*! \brief Deletion of a %SComponent Removes a %SComponent. */ void RemoveComponent(in SComponent aComponent) raises(LockProtection); /*! \brief Creation of a new %SObject Creates a new %SObject under a definite father %SObject. \param theFatherObject The father %SObject under which this one should be created. \return New %SObject See \ref example18 for an example of this method usage in batchmode of %SALOME application. */ SObject NewObject (in SObject theFatherObject) raises(LockProtection); /*! \brief Creation of a new %SObject with a definite %tag Creates a new %SObject with a definite %tag. \param atag Long value corresponding to the tag of the new %SObject. \return New %SObject */ SObject NewObjectToTag (in SObject theFatherObject, in long atag) raises(LockProtection); /*! \brief Deletion of the %SObject Removes a %SObject from the %StudyBuilder. \param anObject The %SObject to be deleted. */ void RemoveObject (in SObject anObject) raises(LockProtection); /*! \brief Deletion of the %SObject with all his child objects. Removes the %SObject with all his child objects. \param anObject The %SObject to be deleted with all child objects. */ void RemoveObjectWithChildren(in SObject anObject) raises(LockProtection); /*! Loads a %SComponent. See \ref example19 for an example of this method usage in batchmode of %SALOME application. */ void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception); /*! Loads a %SObject. \param sco %SObject to be loaded. */ void Load (in SObject sco); /*! \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 \ref example1 for an example of this method usage in batchmode of %SALOME application. */ GenericAttribute FindOrCreateAttribute(in SObject anObject, in string aTypeOfAttribute) raises(LockProtection); /*! \brief Looking for an attribute assigned to a %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); /*! \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 \ref example17 for an example of this method usage in batchmode of %SALOME application. */ void RemoveAttribute(in SObject anObject, in string aTypeOfAttribute) raises(LockProtection); /*! Adds a reference between %anObject and %theReferencedObject. \param anObject The %SObject which will get a reference \param theReferencedObject The %SObject having a reference */ void Addreference(in SObject anObject, in SObject theReferencedObject) ; /*! Removes a reference from %anObject to another object. \param anObject The %SObject which contains a reference */ void RemoveReference(in SObject anObject) ; /*! Adds a directory in the %Study. \param theName String parameter defining the name of the directory. See \ref example23 for an example of this method usage in batchmode of %SALOME application. */ void AddDirectory(in string theName) raises(LockProtection); /*! \brief Identification of the %SObject's substructure. Identification of the %SObject's substructure by GUID. \param anObject The %SObject which will be identified \param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000" */ void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection); /*! Searches for a definite %SObject with a definite GUID and returns True if it finds it. \param anObject A definite %SObject which will be identified \param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000" */ boolean IsGUID(in SObject anObject, in string theGUID); /*! \brief Creation of a new command Creates a new command which can contain several different actions. See \ref example3 for an example of this method usage in batchmode of %SALOME application. */ void NewCommand(); // command management /*! \brief Execution of the command Commits all actions declared within this command. \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications. See \ref example16 for an example of this method usage in batchmode of %SALOME application. */ void CommitCommand() raises(LockProtection); // command management /*! Returns True if at this moment there is a command under execution. */ boolean HasOpenCommand(); /*! \brief Cancelation of the command Cancels all actions declared within the command. See \ref example17 for an example of this method usage in batchmode of %SALOME application. */ void AbortCommand(); // command management /*! \brief Undolimit The number of actions which can be undone */ attribute long UndoLimit; /*! \brief Undo method Cancels all actions of the last command. \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications. See \ref example16 for an example of this method usage in batchmode of %SALOME application. */ void Undo() raises (LockProtection); /*! \brief Redo method Redoes all actions of the last command. \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications. See \ref example16 for an example of this method usage in batchmode of %SALOME application. */ void Redo() raises (LockProtection); /*! Returns True if at this moment there are any actions which can be canceled. See \ref example16 for an example of this method usage in batchmode of %SALOME application. */ boolean GetAvailableUndos(); /*! Returns True if at this moment there are any actions which can be redone. See \ref example3 for an example of this method usage in batchmode of %SALOME application. */ boolean GetAvailableRedos(); /*! Puts name attribute with the given string value to the given %SObject \param theSO Existing SObject to set name attribute. \param theValue The value to be set to the name attribute. */ void SetName(in SObject theSO, in string theValue) raises (LockProtection); /*! Puts comment attribute with the given string value to the given %SObject \param theSO Existing SObject to set comment attribute. \param theValue The value to be set to the comment attribute. */ void SetComment(in SObject theSO, in string theValue) raises (LockProtection); /*! Puts IOR attribute with the given string value to the given %SObject \param theSO Existing SObject to set IOR attribute. \param theValue The value to be set to the IOR attribute. */ void SetIOR(in SObject theSO, in string theValue) raises (LockProtection); }; //========================================================================== /*! \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(); void Shutdown(); /*! Returns the PID of the server */ long getPID(); /*! Shutdown the StudyManager process. */ oneway void ShutdownWithExit(); /*! \brief Creation of a new study Creates a new study with a definite name. \param study_name String parameter defining the name of the study See \ref example17 for an example of this method usage in batchmode of %SALOME application. */ Study NewStudy(in string study_name); /*! \brief Open a study Reads and activates the structure of the study %Objects. \param aStudyUrl The path to the study \warning This method doesn't activate the corba objects. Only a component can do it. See \ref example1 for an example of this method usage in batchmode of %SALOME application. */ Study Open (in URL aStudyUrl) raises (SALOME::SALOME_Exception); /*! \brief Closing the study Closes a study. */ void Close(in Study aStudy); /*! \brief Saving the study in a HDF file (or files). Saves a study. \param theMultiFile If this parameter is True the study will be saved in several files. See \ref example19 for an example of this method usage in batchmode of %SALOME application. */ boolean Save(in Study aStudy, in boolean theMultiFile); /*! \brief Saving a study in a ASCII file (or files). Saves a study in an ASCII format file (or files). \param theMultiFile If this parameter is True the study will be saved in several files. */ boolean SaveASCII(in Study aStudy, in boolean theMultiFile); /*! \brief Saving the study in a specified HDF file (or files). Saves the study in a specified file (or files). \param aUrl The path to the definite file in whcih the study will be saved \param aStudy The study which will be saved \param theMultiFile If this parameter is True the study will be saved in several files. See \ref example1 for an example of this method usage in batchmode of %SALOME application. */ boolean SaveAs(in URL aUrl, // if the file already exists in Study aStudy, in boolean theMultiFile); // overwrite (as option) /*! \brief Saving the study in a specified ASCII file (or files). Saves the study in a specified ASCII file (or files). \param aUrl The path to the definite file in whcih the study will be saved \param aStudy The study which will be saved \param theMultiFile If this parameter is True the study will be saved in several files. */ boolean SaveAsASCII(in URL aUrl, // if the file already exists in Study aStudy, in boolean theMultiFile); // overwrite (as option) /*! \brief List of open studies. Gets the list of open studies \return A list of open studies in the current session. */ ListOfOpenStudies GetOpenStudies(); /*! \brief Getting a particular %Study picked by name Activates a particular %Study among the session collection picking it by name. \param aStudyName The name of the study */ Study GetStudyByName (in string aStudyName); /*! \brief Getting a particular %Study picked by ID Activates a particular %Study among the session collection picking it by ID. \param aStudyID The ID of the study */ Study GetStudyByID (in short aStudyID); // copy/paste methods /*! Returns True, if the given %SObject can be copied to the clipboard. */ boolean CanCopy(in SObject theObject); /*! Returns True, if the given %SObject is copied to the clipboard. \param theObject The %SObject which will be copied */ boolean Copy(in SObject theObject); /*! Returns True, if the object from the clipboard can be pasted to the given %SObject. \param theObject The %SObject stored in the clipboard. */ boolean CanPaste(in SObject theObject); /*! Returns the %SObject in which the object from the clipboard was pasted to. \param theObject The %SObject which will be pasted \exception SALOMEDS::StudyBuilder::LockProtection This exception is raised, when trying to paste an object into a study, which is protected for modifications. */ SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection); /*! \brief Object conversion. Converts an object into IOR. \return IOR */ string ConvertObjectToIOR(in Object theObject); /*! \brief Object conversion. Converts IOR into an object. \return An object */ Object ConvertIORToObject(in string theIOR); /*! Private method, returns an implementation of this StudyManager. \param theHostname is a hostname of the caller \param thePID is a process ID of the caller \param isLocal is set True if the StudyManager is launched locally with the caller */ long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); }; //========================================================================== /*! \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 : SALOME::GenericObj { /*! Name of the %SObject */ attribute string Name; // equivalent to setName() & getName() /*! Returns true if the %SObject does not belong to any %Study */ boolean IsNull(); /*! Gets an object %ID \return ID of the %SObject. */ ID GetID(); /*! Acquisition of the father %Component of the %SObject \return The father %Component of the %SObject. */ SComponent GetFatherComponent(); /*! Acquisition of the father %SObject of the %SObject \return the father %SObject of the given %SObject. */ SObject GetFather(); /*! Gets the %tag of a %SObject \return the %tag of a %SObject. */ short Tag(); /*! Gets the depth of a %SObject \return the depth of a %SObject. */ short Depth(); /*! Looks for subobjects of a given %SObject. \param atag Tag of the given %SObject \return True if it finds a subobject of the %SObject with a definite tag as well as the required subobject. */ boolean FindSubObject (in long atag, out SObject obj); /*! Looks for attributes of a given %SObject \param aTypeOfAttribute String value defining the type of the required attribute of the given %SObject. \return True if it finds an attribute of a definite type of the given %SObject as well as the discovered attribute. See \ref example1 for an example of this method usage in batchmode of %SALOME application. */ boolean FindAttribute(out GenericAttribute anAttribute, in string aTypeOfAttribute); /*! Looks for a %SObject which the given %SObject refers to. \return The object which the given %SObject refers to as well as True if it finds this object. */ boolean ReferencedObject(out SObject obj); // A REVOIR /*! Gets all attributes of a given %SObject \return The list of all attributes of the given %SObject. See \ref example17 for an example of this method usage in batchmode of %SALOME application. */ ListOfAttributes GetAllAttributes(); /*! Gets the study of a given %SObject. \return The study containing the given %SObject. */ Study GetStudy(); /*! Gets the CORBA object by its own IOR attribute. Returns nil, if can't. \return The CORBA object of the %SObject. */ Object GetObject(); /*! Returns the name attribute value of this SObject. Returns empty string if there is no name attribute. */ string GetName(); /*! Returns the comment attribute value of this SObject. Returns empty string if there is no comment attribute. */ string GetComment(); /*! Returns the IOR attribute value of this SObject. Returns empty string if there is no IOR attribute. */ string GetIOR(); /*! Set an attribute value (of type string) \param name the name of the attribute \param value the value of the attribute */ void SetAttrString(in string name, in string value); /*! Private method, returns an implementation of this SObject. \param theHostname is a hostname of the caller \param thePID is a process ID of the caller \param isLocal is set True if the SObject is launched locally with the caller */ long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); }; //========================================================================== /*! \brief %Generic attribute interface %Generic attribute is a base interface for all attributes which can be assigned to the SObjects created in the study. */ //========================================================================== interface GenericAttribute : SALOME::GenericObj { /*! \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 a transaction. */ void CheckLocked() raises (LockProtection); //! Get Type string Type(); //! Get the class type string GetClassType(); //! Get SObject SObject GetSObject(); //! Private method, returns an implementation of this GenericAttribute. /*! \param theHostname is a hostname of the caller \param thePID is a process ID of the caller \param isLocal is set True if the GenericAttribute is launched locally with the caller */ long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); }; //========================================================================== /*! \brief %SComponent interface The %SComponent interface establishes in the study a permanent assocition to the Components integrated into %SALOME platform. 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 Gets the data type of the given %SComponent \return The data type of this %SComponent. */ string ComponentDataType(); /*! \brief Gets the IOR of the given component \return True (if there is an instance of the given component) and its IOR. */ boolean ComponentIOR (out ID theID); //returns True if there is an instance //In this case ID identifies this one }; //========================================================================== /*! \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 : SALOME::GenericObj { /*! \brief Activates the %SComponentIterator. */ void Init(); /*! \brief Method More \return True if there is one more %SComponent in the list. */ boolean More(); /*! \brief Moves the iterator to the next %SComponent in the list. */ void Next(); /*! \brief Returns the %SComponent corresponding to the current %SComponent found by the iterator. See \ref example1 for an example of this method usage in batchmode of %SALOME application. */ SComponent Value(); }; //========================================================================== /*! \brief %ChildIterator interface This interface contains methods which allow to iterate over all child levels. */ //========================================================================== interface ChildIterator : SALOME::GenericObj { /*! \brief Activates the %ChildIterator. */ void Init(); /*! \brief Activates the %ChildIterator for all child levels. \param allLevels If this boolean parameter is True, the %ChildIterator will be activated for all child levels. */ void InitEx(in boolean allLevels); /*! \brief Method More \return True if there is one more %ChildIterator in the list. */ boolean More(); /*! \brief Passes the iterator to the next level. */ void Next(); /*! \brief Returns the %SObject corresponding to the current object found by the iterator. */ SObject Value(); }; //========================================================================== //========================================================================== /*! \brief Interface of the %UseCaseIterator. This interface contains a set of methods used for iteration over the objects in the use case. */ interface UseCaseIterator : SALOME::GenericObj { /*! Activates the %UseCaseIterator. \param allLevels If the value of this parameter is True the Iterator is activated for all subobjects. */ void Init(in boolean allLevels); /*! Method More \return True if the %UseCaseIterator finds one more object. */ boolean More(); /*! Passes the iterator to the next object. */ void Next(); /*! Returns the %SObject corresponding to the current object found by the Iterator. */ SObject Value(); }; //========================================================================== //========================================================================== /*! \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 : SALOME::GenericObj { /*! Adds to the use case an object as a child of the current object of the use case. \param theObject The added %SObject. \return True if this %SObject has been added in the use case. */ boolean Append(in SObject theObject); /*! Removes an object from the use case. \param theObject The deleted %SObject \return True if this %SObject has been deleted from the use case. */ boolean Remove(in SObject theObject); /*! Adds a child object theObject to the given father theFather object in the use case. */ boolean AppendTo(in SObject theFather, in SObject theObject); /*! Inserts in the use case the object theFirst before the object theNext. */ boolean InsertBefore(in SObject theFirst, in SObject theNext); /*! Sets the current object of the use case. */ boolean SetCurrentObject(in SObject theObject); /*! Makes the root object to be the current object of the use case. */ boolean SetRootCurrent(); /*! Returns True if the given object theObject of the use case has child objects. */ boolean HasChildren(in SObject theObject); /*! Gets father object of the given object theObject in the use cases tree. */ SObject GetFather(in SObject theObject); /*! Sets the name of the use case. */ boolean SetName(in string theName); /*! Gets the name of the use case. */ string GetName(); /*! Returns True if the given object theObject represents a use case. */ boolean IsUseCase(in SObject theObject); /*! Returns True if the given object theObject is included in the use cases tree on any level. */ boolean IsUseCaseNode(in SObject theObject); /*! Gets the current object of the use case. */ SObject GetCurrentObject(); /*! Creates a new use case in the use case browser. */ SObject AddUseCase(in string theName); /*! Returns the %UseCaseIterator for the given object theObject in the use case. */ UseCaseIterator GetUseCaseIterator(in SObject theObject); }; //========================================================================== /*! \brief %Driver interface This class represents a common tool for all components integrated into SALOME application, that allows them to communicate with the study. It contains a set of methods which can be called by any component and which provide the following functionality:
  • publishing in the study of the objects created by a definite component
  • saving/loading of the data created by a definite component. These methods are called by the StudyManager when loading/saving a study containing the data created by a definite component.
  • transforming of the transient references into persistant references (or vice versa) of the SObjects when saving (or loading) a study
  • copy/paste common functionality. These methods can be called by any component in order to copy/paste its object created in the study
*/ //========================================================================== interface Driver { /*! \brief Saving the data produced by a definite component. This method is called by the StudyManager when saving a study. \param theComponent %SComponent corresponding to this Component \param theURL The path to the file in which the data will be saved. \param isMultiFile If the value of this boolean parameter is True, the data will be saved in several files. \return A byte stream TMPFile that contains all saved data See \ref example19 for an example of this method usage in batchmode of %SALOME application. */ TMPFile Save(in SComponent theComponent, in string theURL, in boolean isMultiFile); /*! \brief Saving the data in ASCII format produced by a definite component. This method is called by the StudyManager when saving a study in ASCII format. \param theComponent %SComponent corresponding to this Component \param theURL The path to the file in which the data will be saved. \param isMultiFile If the value of this boolean parameter is True, the data will be saved in several files. \return A byte stream TMPFile that will contain all saved data See \ref example19 for an example of this method usage in batchmode of %SALOME application. */ TMPFile SaveASCII(in SComponent theComponent, in string theURL, in boolean isMultiFile); /*! \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 \param isMultiFile If the value of this boolean parameter is True, the data will be loaded from several files */ boolean Load(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile); /*! \brief Loading the data from files in ASCII format. 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 \param isMultiFile If the value of this boolean parameter is True, the data will be loaded from several files */ boolean LoadASCII(in SComponent theComponent, in TMPFile theStream, in string theURL, in boolean isMultiFile); /*! \brief Closing of the study This method Close is called by the StudyManager when closing a study. \param aSComponent The according %SComponent */ void Close (in SComponent aSComponent); //void Close ( in string aIORSComponent); /*! Gets the type of the data \return The type of data produced by the Component in the study. */ string ComponentDataType(); // Driver Transient -> persistent called for each object in study /*! Transforms IOR of a given %SObject into PersistentID. It is called for each object in the %study. \note
In %SALOME the objects which are present in an active study are identified by an IOR, when this study is saved these references are transformed into persintent IDs. \param theSObject The given %SObject. \param IORString The IOR of the given %SObject. \param isMultiFile If this parameter is True the study containing the given %SObject is stored in several files. \param isASCII If this parameter is True the study containing the given %SObject is stored in ASCII format. \return The persistent ID of the given %SObject */ string IORToLocalPersistentID (in SObject theSObject, in string IORString, in boolean isMultiFile, in boolean isASCII); /*! Transforms PersistentID into IOR of the object. It is called for each object in the %study. \note
In %SALOME the objects which are present in an saved study (file) are identified by a persistent ID, when this study is open, these references are transformed into persintent IORs. \param theSObject The given %SObject. \param IORString The IOR of the given %SObject. \param isMultiFile If this parameter is True the study containing the given %SObject is stored in several files. \param isASCII If this parameter is True the study containing the given %SObject is stored in ASCII format. \return The IOR of the given %SObject */ string LocalPersistentIDToIOR (in SObject theSObject, in string aLocalPersistentID, in boolean isMultiFile, in boolean isASCII) raises (SALOME::SALOME_Exception); // Publishing in the study /*! Publishing in the study \return True if the given %Component can publish a definite object with a given IOR in the %study. \param theIOR The IOR of a definite object */ boolean CanPublishInStudy(in Object theIOR) raises (SALOME::SALOME_Exception); /*! \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. \return The published %SObject. */ SObject PublishInStudy(in Study theStudy, in SObject theSObject, in Object theObject, in string theName); // copy/paste methods /*! Returns True, if the given %SObject can be copied to the clipboard. \param theObject The given %SObject which should be copied. */ boolean CanCopy(in SObject theObject); /*! Returns the object %ID and the %TMPFile of the object from the given %SObject. */ TMPFile CopyFrom(in SObject theObject, out long theObjectID); /*! 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); /*! Returns the %SObject of the pasted object. */ SObject PasteInto(in TMPFile theStream, in long theObjectID, in SObject theObject); }; }; #endif salome-kernel-6.5.0/idl/SALOMEDS_Attributes.idl000077500000000000000000002046431177004724000211550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Attributes.idl // Author : Yves FRICAUD // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOMEDS_Attributes.idl,v 1.10.2.1.22.4.12.1 2012-04-12 14:04:58 vsr Exp $ // /*! \file SALOMEDS_Attributes.idl \brief 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; /*! \brief Represents the color based on RGB palette. Used by different interfaces to specify the color attributes of different items. */ struct Color { //! Red component of the color double R; //! Green component of the color double G; //! Blue component of the color double B; }; //========================================================================== /*! \brief Attribute allowing to store a real value See \ref example1 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeInteger, AttributeString */ //========================================================================== interface AttributeReal : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ double Value(); /*! \brief Sets the value of the attribute \param value value being set to the attribute */ void SetValue(in double value); }; //========================================================================== /*! \brief Attribute allowing to store an %integer value See \ref example17 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeReal, AttributeString */ //========================================================================== interface AttributeInteger : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ long Value(); /*! \brief Sets the value of the attribute \param value value being set to the attribute */ void SetValue(in long value); }; //========================================================================== /*! \brief Attribute allowing to store a sequence of real values. \note The indices in the sequence start from 1. See \ref example3 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeSequenceOfInteger */ //========================================================================== interface AttributeSequenceOfReal : GenericAttribute { /*! \brief Initialization of the attribute with initial data. \param other sequence of values assigned to the attribute */ void Assign (in DoubleSeq other); /*! \brief Returns the sequence of values stored in the attribute. \return sequence of values */ DoubleSeq CorbaSequence(); /*! \brief Adds new value to the end of the sequence. \param value value being added to the sequence */ void Add (in double value); /*! \brief Removes a value by the specified \a index from the sequence stored in the attribute. \param index index of the value in the sequence to be removed */ void Remove(in long index); /*! \brief Sets new value to the sequence by the specified \a index. \param index index in the sequence \param value new value being set to the sequence by specified \a index */ void ChangeValue(in long index, in double value); /*! \brief Returns a value in the sequence specified by its \a index. \param index index in the sequence \return value specified by \a index */ double Value(in short index); /*! \brief Returns the length of the sequence stored in the attribute. \return sequence length */ long Length(); }; //========================================================================== /*! \brief Attribute allowing to store a sequence of %integer values. \note The indices in the sequence start from 1. See \ref example4 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeSequenceOfReal */ //========================================================================== interface AttributeSequenceOfInteger : GenericAttribute { /*! \brief Initialization of the attribute with initial data. \param other sequence of values assigned to the attribute */ void Assign (in LongSeq other); /*! \brief Returns the sequence of values stored in the attribute. \return sequence of values */ LongSeq CorbaSequence(); /*! \brief Adds new value to the end of the sequence. \param value value being added to the sequence */ void Add (in long value); /*! \brief Removes an value by the specified \a index from the sequence stored in the attribute. \param index index of the value in the sequence to be removed */ void Remove(in long index); /*! \brief Sets new value to the sequence by the specified \a index. \param index index in the sequence \param value new value being set to the sequence by specified \a index */ void ChangeValue(in long index, in long value); /*! \brief Returns a value in the sequence specified by its \a index. \param index index in the sequence \return value specified by \a index */ long Value(in short index); /*! \brief Returns the length of the sequence stored in the attribute. \return sequence length */ long Length(); }; //========================================================================== /*! \brief Name attribute The attribute stores a string value, which corresponds to the name of the SObject or to the name of corresponding %object. See \ref example5 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeComment */ //========================================================================== interface AttributeName : GenericAttribute { /*! \brief Returns the value assigned to the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute (name of a SObject). \param value value being set to the attribute */ void SetValue(in string value); }; //========================================================================== /*! \brief Comment attribute The attribute stores arbitrary string value containing supplementary information about the SObject. This is common-usage attribute that can be used for any purpose. There is only one explicit limitation: for the SComponent %object representing the root item of the SALOME component tree, the AttributeComment is used to store component data type value. This attribute is automatically set with NewComponent() function of StudyBuilder. Also, the value of this attribute is returned by the ComponentDataType() function of SComponent interface. See \ref example6 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeName */ //========================================================================== interface AttributeComment : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute (description of a SObject). \param value value being set to the attribute */ void SetValue(in string value); }; //========================================================================== /*! \brief String attribute The attribute stores a string value containing arbitrary information. \sa AttributeInteger, AttributeReal */ //========================================================================== interface AttributeString : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute. \param value value being set to the attribute */ void SetValue(in string value); }; //========================================================================== /*! \brief IOR attribute The attribute stores a string value identifying a runtime %object. In particular it contains CORBA Interoperable Object Reference. See \ref example19 for an example of this method usage in batchmode of %SALOME application. \sa AttributePersistentRef */ //========================================================================== interface AttributeIOR : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute (IOR of a SObject). \param value value being set to the attribute. */ void SetValue(in string value); }; //========================================================================== /*! \brief Persistent reference attribute The attribute stores a persistent identifier of the %object. It is a part of SALOME persistence mechanism . See \ref example7 for an example of this method usage in batchmode of %SALOME application. \sa AttributeIOR */ //========================================================================== interface AttributePersistentRef : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute. \param value Value being set to the attribute */ void SetValue(in string value); }; //========================================================================== /*! \brief External file definition. The attribute stores a path to an external file. \sa AttributeFileType */ //========================================================================== interface AttributeExternalFileDef: GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute. \param value value being set to the attribute */ void SetValue(in string value); }; //========================================================================== /*! \brief External file type definition. The attribute stores an external file type. \sa AttributeExternalFileDef */ //========================================================================== interface AttributeFileType: GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute. \param value value being set to the attribute */ void SetValue(in string value); }; //========================================================================== // Presentation attributes (parameters of the object displaying in the Object browser) //========================================================================== //========================================================================== /*! \brief Drawable flag attribute. This presentation attribute specifies if the parent SObject should be displayed in the study tree in the Object browser. If this attribute is defined for the parent %object and set to \c false, the item is not displayed in the Object browser. By default, the item is always displayed. See \ref example8 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeExpandable, AttributeSelectable */ //========================================================================== interface AttributeDrawable : GenericAttribute { /*! \brief Returns the value of the attribute. \return \c true if the item is drawable or \c false otherwise */ boolean IsDrawable(); /*! \brief Sets the value of the attribute. \param value value being set to the attribute (\c true if item should be drawable or \c false otherwise) */ void SetDrawable(in boolean value); }; //========================================================================== /*! \brief Selectable flag attribute. This presentation attribute specifies if the parent SObject is selectable by the user in the Object browser. If this attribute is defined for the parent %object and set to \c false, the item is not selectable in the Object browser. By default, the item is always selectable. See \ref example9 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeDrawable, AttributeExpandable */ //========================================================================== interface AttributeSelectable : GenericAttribute { /*! \brief Returns the value of the attribute. \return \c true if the item is selectable or \c false otherwise */ boolean IsSelectable(); /*! \brief Sets the value of the attribute. \param value value being set to the attribute (\c true if item should be selectable or \c false otherwise) */ void SetSelectable(in boolean value); }; //========================================================================== /*! \brief Expandable flag attribute. This presentation attribute specifies if the parent SObject can be expanded by the user in the Object browser (to show its child objects). If this attribute is defined for the parent %object and set to \c false, the item is not expandable in the Object browser. By default, the item is always expandable (if it has children). See \ref example10 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeDrawable, AttributeSelectable */ //========================================================================== interface AttributeExpandable : GenericAttribute { /*! \brief Returns the value of the attribute. \return \c true if the item is expandable or \c false otherwise */ boolean IsExpandable(); /*! \brief Sets the value of the attribute. \param value value being set to the attribute (\c true if item should be expandable or \c false otherwise) */ void SetExpandable(in boolean value); }; //========================================================================== /*! \brief Flags attribute. The interface is intended for storing different %object attributes that have only two states: 0 (\c false) or 1 (\c true). \note The interpretation of the flag values attribute is a matter of the user. \note The total number of flags which can be stored in a single attribute is defined by the size of CORBA::Long data type. */ //========================================================================== interface AttributeFlags : GenericAttribute { /*! \brief Returns the value of the attribute. \return set of flags currently set to the attribute */ long GetFlags(); /*! \brief Sets the value of the attribute. \param flags new set of flags to be stored in the attribute */ void SetFlags(in long flags); /*! \brief Test the value for the specified flag or set of flags. \param flags flag or set of flags being tested. \return \c true if all bits correspoding to the \a flags are currently set or \c false otherwise */ boolean Get(in long flags); /*! \brief Set/clear specific flag or set of flags. \param flags flag or set of flags being set / cleared \param value \c true if all bits correspoding to the \a flags should be set or \c false if flag(s) should be cleared */ void Set(in long flags, in boolean value); }; //========================================================================== /*! \brief Graphic attribute. This interface is intended for storing information about graphical representation of the %object in different views. */ //========================================================================== interface AttributeGraphic : GenericAttribute { /*! \brief Set / clear visibility flag of the parent SObject for the view specified by \a viewId. \param viewId view identifier \param value visibility flag value being set to the attribute */ void SetVisibility(in long viewId, in boolean value); /*! \brief Get visibility flag of the parent SObject for the view specified by \a viewId. \param viewId view identifier \return visibility flag currently set to the attribute for the specified view */ boolean GetVisibility(in long viewId); }; //========================================================================== /*! \brief Opened flag Attribute \warning Deprecated interface. Not used since version 3.0. This presentation attribute specifies if the item corresponding to the parent SObject in the Object browser is currently opened (expanded) or no. */ //========================================================================== interface AttributeOpened : GenericAttribute { /*! \brief Returns the value of the attribute. \obsolete \return \c true if the item is opened (expanded) in the Object browser or \c false otherwise */ boolean IsOpened(); /*! \brief Sets the value of the attribute. \obsolete \param value value being set to the attribute (\c true if item should be opened (expanded) or \c false otherwise) */ void SetOpened(in boolean value); }; //========================================================================== /*! \brief Text color attribute. This attribute allows to specify the text color to be used to render the item in the Object browser. If the attribute is not set for the SObject, default value (GUI specific) is used. See \ref example12 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeTextHighlightColor, AttributePixMap */ //========================================================================== interface AttributeTextColor : GenericAttribute { /*! \brief Returns the value of the attribute. \return text color assigned to the attribute */ Color TextColor(); /*! \brief Sets the value of the attribute. \param value text color value being set to the attribute */ void SetTextColor(in Color value); }; //========================================================================== /*! \brief Text highlight color attribute. This attribute allows to specify the highlight color to be used to render the item in the Object browser (used only when the item is selected). If the attribute is not set for the SObject, default value (GUI specific) is used. See \ref example13 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeTextColor, AttributePixMap */ //========================================================================== interface AttributeTextHighlightColor : GenericAttribute { /*! \brief Returns the value of the attribute. \return highlight color assigned to the attribute */ Color TextHighlightColor(); /*! \brief Sets the value of the attribute. \param value highlight color value being set to the attribute */ void SetTextHighlightColor(in Color value); }; //========================================================================== /*! \brief Icon attribute. This attribute is used to specifiy the name (file name) of an icon which should be drawn in the Object browser when rendering an item. See \ref example14 for an example of this attribute usage in batchmode of %SALOME application. \sa AttributeTextColor, AttributeTextHighlightColor */ //========================================================================== interface AttributePixMap : GenericAttribute { /*! Checks if the pixmap is assigned to the attribute. \return \c true if an icon file name is set to the attribute */ boolean HasPixMap(); /*! \brief Returns the value of the attribute. \return icon file name assigned to the attribute (empty string if not set) */ string GetPixMap(); /*! \brief Sets the value of the attribute. \param icom file name being set to the attribute */ void SetPixMap(in string value); }; //========================================================================== /*! \brief Tree node attribute. By specifying the tree node attributes for the SObjects it is possible to create internal auxillary %object tree with its own structure and identifier. Since each such tree is specfied by the unique identifier, it is possible to create as many trees as it is required. See \ref example18 for an example of usage of this attribute in batchmode of %SALOME application. */ //========================================================================== interface AttributeTreeNode : GenericAttribute { /*! \brief Assigns the father tree node to this tree node. \param father tree node attribute being set as a parent of this tree node */ void SetFather(in AttributeTreeNode father); /*! \brief Checks if father tree node attribute is set for this tree node. \return \c true if father tree node attribute is defined or \c false otherwise */ boolean HasFather(); /*! \brief Returns the father tree node of this tree node. \return father tree node attribute */ AttributeTreeNode GetFather(); /*! \brief Assigns the previous sibling tree node to this tree node. \param sibling tree node attribute being set as a previous sibling of this tree node */ void SetPrevious(in AttributeTreeNode sibling); /*! \brief Checks if previous sibling tree node attribute is set for this tree node. \return \c true if previous sibling tree node attribute is defined or \c false otherwise */ boolean HasPrevious(); /*! \brief Returns the previous sibling tree node of this tree node. \return previous sibling tree node attribute */ AttributeTreeNode GetPrevious(); /*! \brief Assigns the next sibling tree node to this tree node. \param sibling tree node attribute being set as a next sibling of this tree node */ void SetNext(in AttributeTreeNode sibling); /*! \brief Checks if next sibling tree node attribute is set for this tree node. \return \c true if next sibling tree node attribute is defined or \c false otherwise */ boolean HasNext(); /*! \brief Returns the next sibling tree node of this tree node. \return next sibling tree node attribute */ AttributeTreeNode GetNext(); /*! \brief Sets the specified tree node as a first child of this tree node. \param child tree node attribute being set filrst child of this tree node */ void SetFirst(in AttributeTreeNode child); /*! \brief Checks if first child tree node attribute is set for this tree node. \return \c true if first child tree node attribute is defined or \c false otherwise */ boolean HasFirst(); /*! \brief Returns the first child tree node of this tree node. \return first child tree node attribute */ AttributeTreeNode GetFirst(); /*! \brief Sets identifier of the parent tree to this tree node. \note All tree nodes which belong to the same tree, should have the same identifier. \param ID identifier (arbitrary non-empty string) being set for this tree node */ void SetTreeID(in string ID); /*! \brief Returns identifier of the parent tree. \return parent tree identifier */ string GetTreeID(); /*! \brief Appends specified tree node to the end of the children list of this tree node. \param child tree node being added to the list of children */ void Append(in AttributeTreeNode child); /*! \brief Puts specified tree node to the beginning of the children list of this tree node. \param child tree node being added to the list of children */ void Prepend(in AttributeTreeNode child); /*! \brief Insert specified tree node as a previous child in the parent tree node's children list. \param child tree node being inserted to the parent tree node */ void InsertBefore(in AttributeTreeNode child); /*! \brief Insert specified tree node as a next child in the parent tree node's children list. \param child tree node being inserted to the parent tree node */ void InsertAfter(in AttributeTreeNode child); /*! \brief Removes this tree node. */ void Remove(); /*! \brief Returns the depth of the tree node in the tree structure. The resulting value it equal to the number of the fathers of this tree node. \note The depth of the root tree node is 0. \return tree node's depth */ long Depth(); /*! \brief Checks if the tree node is a root of the tree. \return \c true if it is a root tree node or \c false otherwise */ boolean IsRoot(); /*! \brief Checks if the tree node is a descendant of the specified tree node. \param other tree node that is tested for being ancestor of this tree node \return \c true if this node is descendant of the \a other node or \c false otherwise */ boolean IsDescendant(in AttributeTreeNode other); /*! \brief Checks if this tree node is a parent of the specified tree node \a other. \param other tree node that is tested for being father of this tree node \return \c true if this node is father of the \a other node or \c false otherwise */ boolean IsFather(in AttributeTreeNode other); /*! \brief Checks if this tree node is a child of the specified tree node \a other. \param other tree node that is tested for being child of this tree node \return \c true if this node is child of the \a other node or \c false otherwise */ boolean IsChild(in AttributeTreeNode other); /*! \brief Returns string identifier of the owner SObject (e.g. "0:1:2"). \return string entry of the owner SObject */ string Label(); }; //========================================================================== /*! \brief Local identifier attribute This attribute can be used for identification of the SObject (for example by type). See \ref example15 for an example of this atrtibute usage in batchmode of %SALOME application. \sa AttributeUserID */ //========================================================================== interface AttributeLocalID : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ long Value(); /*! \brief Sets the value of the attribute \param value value being set to the attribute */ void SetValue(in long value); }; //========================================================================== /*! \brief Attribute storing GUID. This attribute can be used to store arbitrary GUID. Attribute allowing to store GUID. In contrast to any other atribute (e.g. AttributeLocalID), it is possible to define as many GUID attributes for the same SObject as it is required provided that they have different GUID values. \sa AttributeLocalID */ //========================================================================== interface AttributeUserID : GenericAttribute { /*! \brief Returns the value of the attribute. \return attribute value */ string Value(); /*! \brief Sets the value of the attribute \param value value being set to the attribute */ void SetValue(in string value); }; //========================================================================== /*! \brief Back references attribute. \internal This attribute is used to store back references to all the SObjects that refer to the owner SObject. This attribute is used for inner purposes (in particular, for performance optimization). */ //========================================================================== interface AttributeTarget : GenericAttribute { /*! Adds specified SObject to the list of SObjects which refer to the owner SObject. \param refobj %SObject being added to the list */ void Add(in SObject refobj); /*! Returns a list of SObjects which refer to the owner SObject. \return list of SObject referencing to the owher SObject */ SALOMEDS::Study::ListOfSObject Get(); /*! Removes specified SObject from the list of SObjects which refer to the owner SObject. \param refobj %SObject being removed to the list */ void Remove(in SObject anObject); }; //========================================================================== /*! \brief Generic table attribute. Used as base interface for the AttributeTableOfInteger, AttributeTableOfReal and AttributeTableOfString. Provides functions which are common for all table attributes. \note The indices of rows and columns in the table start from 1. \sa AttributeTableOfInteger, AttributeTableOfReal, AttributeTableOfString */ //========================================================================== interface AttributeTable : GenericAttribute { //! This exception is raised when an invalid (out of range) index is passed as parameter. exception IncorrectIndex {}; //! This exception is raised when sequence of incorrect length is passed as parameter. exception IncorrectArgumentLength {}; //! Sort order enum SortOrder { AscendingOrder, //!< The items are sorted ascending DescendingOrder //!< The items are sorted descending }; //! Sort policy (specifies how empty cells are taken into account when sorting) enum SortPolicy { EmptyLowest, //!< Empty cells are considered as lowest values EmptyHighest, //!< Empty cells are considered as highest values EmptyFirst, //!< Empty cells are always first EmptyLast, //!< Empty cells are always last EmptyIgnore //!< Empty cells are ignored (stay at initial positions) }; /*! \brief Sets the main title of the table. \param title title being set to the table \sa GetTitle() */ void SetTitle(in string title); /*! \brief Returns the title of the table. \return table title (empty string if not set) \sa SetTitle() */ string GetTitle(); /*! \brief Sets the title of a row with specified index. Raises an exception if \a row is out of range. \param row row index \param title title being set to the row \sa GetRowTitle() */ void SetRowTitle(in long row, in string title) raises(IncorrectIndex); /*! \brief Returns the title of a row with specified index. Raises an exception if \a row is out of range. \param row row index \return row title (empty string if not set) \sa SetRowTitle() */ string GetRowTitle(in long row) raises(IncorrectIndex); /*! \brief Sets the titles for all rows in the table. Raises an exception if length of the \a titles parameter is not equal to the number of rows in the table. \param titles titles being set to the table rows \sa GetRowTitles() */ void SetRowTitles(in StringSeq titles) raises(IncorrectArgumentLength); /*! \brief Returns the titles of all rows of the table. \return list of all rows titles \sa SetRowTitles() */ StringSeq GetRowTitles(); /*! \brief Sets the title of a column with specified index. Raises an exception if \a column is out of range. \param column column index \param title title being set to the column \sa GetColumnTitle() */ void SetColumnTitle(in long column, in string title) raises(IncorrectIndex); /*! \brief Returns the title of a column with specified index. Raises an exception if \a column is out of range. \param column column index \return column title (empty string if not set) \sa SetColumnTitle() */ string GetColumnTitle(in long column) raises(IncorrectIndex); /*! \brief Sets the titles for all columns in the table. Raises an exception if length of the \a titles parameter is not equal to the number of columns in the table. \param titles titles being set to the table columns \sa GetColumnTitles() */ void SetColumnTitles(in StringSeq titles) raises(IncorrectArgumentLength); /*! \brief Returns the titles of all columns of the table. \return list of all columns titles \sa SetColumnTitles() */ StringSeq GetColumnTitles(); /*! \brief Assigns the unit label to the row with specified index. Raises an exception if \a row is out of range. \param row row index \param unit unit label being set to the row \sa GetRowUnit() */ void SetRowUnit(in long row, in string unit) raises(IncorrectIndex); /*! \brief Returns the unit label of a row with specified index. Raises an exception if \a row is out of range. \param row row index \return row unit label (empty string if not set) \sa SetRowUnit() */ string GetRowUnit(in long row) raises(IncorrectIndex); /*! \brief Sets the unit labels for all rows in the table. Raises an exception if length of the \a units parameter is not equal to the number of rows in the table. \param units unit labels being set to the table rows \sa GetRowUnits() */ void SetRowUnits(in StringSeq units) raises(IncorrectArgumentLength); /*! \brief Returns the unit labels of all rows of the table. \return list of all rows unit labels \sa SetRowUnits() */ StringSeq GetRowUnits(); /*! \brief Returns the number of rows of the table. \return rows count \sa GetNbColumns() */ long GetNbRows(); /*! \brief Returns the number of columns of the table. \return columns count \sa GetNbRows(), SetNbColumns() */ long GetNbColumns(); /*! \brief Check if the value is set for the cell with specified \a row and \a column indices. \param row row index \param column column index \return \c true if value is set for the specified cell or \c false otherwise (or if row/column index is/are out of range) */ boolean HasValue(in long row, in long column); /*! \brief Clear value in the specified table cell. Raises an exception if \a row or \a column is out of range. \param row row index \param column column index \sa HasValue() */ void RemoveValue(in long row, in long column) raises(IncorrectIndex); /*! \brief Sets the maximum number of colums in the table. If new number of columns is less than the current one, the table is truncated (extra columns are removed). \note It is recommended to set number of columns before assigning data to the table. \param columns total number of columns being set for the table \sa GetNbColumns() */ void SetNbColumns(in long columns); /*! \brief Returns the indices of the columns in the specified \a row for which values are set. Raises an exception if \a row is out of range. \param row row index \return list of column indices */ LongSeq GetRowSetIndices(in long row) raises(IncorrectIndex); /*! \brief Sort values in the specified table row. Sort order is specified by the \a order parameter. The \a policy specifies how to process empty cells (put to the first place, ignore, etc). Raises an exception if \a row is out of range. \note Other table rows are not affected. \param row row index \param order sort order (ascending/descending) \param policy sort policy (specifies how to process empty cells) \return list of mixed column indices */ LongSeq SortRow(in long row, in SortOrder order, in SortPolicy policy) raises(IncorrectIndex); /*! \brief Sort values in the specified table column. Sort order is specified by the \a order parameter. The \a policy specifies how to process empty cells (put to the first place, ignore, etc). Raises an exception if \a column is out of range. \note Other table columns are not affected. \param column column index \param order sort order (ascending/descending) \param policy sort policy (specifies how to process empty cells) \return list of mixed row indices */ LongSeq SortColumn(in long column, in SortOrder order, in SortPolicy policy) raises(IncorrectIndex); /*! \brief Sort table columns by the specified row. All the table columns are sorted according to the values in the specified row. Sort order is specified by the \a order parameter. The \a policy specifies how to process empty cells (put to the first place, ignore, etc). Raises an exception if \a row is out of range. \param row row index \param order sort order (ascending/descending) \param policy sort policy (specifies how to process empty cells) \return list of mixed column indices */ LongSeq SortByRow(in long row, in SortOrder order, in SortPolicy policy) raises(IncorrectIndex); /*! \brief Sort table rows by the specified column. All the table rows are sorted according to the values in the specified column. Sort order is specified by the \a order parameter. The \a policy specifies how to process empty cells (put to the first place, ignore, etc). Raises an exception if \a column is out of range. \param column column index \param order sort order (ascending/descending) \param policy sort policy (specifies how to process empty cells) \return list of mixed row indices */ LongSeq SortByColumn(in long column, in SortOrder order, in SortPolicy policy) raises(IncorrectIndex); /*! \brief Swap values in two table cells. Raises an exception if any specified index is out of range. \param row1 first cell's row index \param column1 first cell's column index \param row2 second cell's row index \param column2 second cell's column index */ void SwapCells(in long row1, in long column1, in long row2, in long column2) raises(IncorrectIndex); /*! \brief Swap two table rows. Raises an exception if any \a row1 or \a row2 is out of range. \param row1 first row's index \param row2 second row's index */ void SwapRows(in long row1, in long row2) raises(IncorrectIndex); /*! \brief Swap two table columns. Raises an exception if any \a column1 or \a column2 is out of range. \param column1 first column's index \param column2 second column's index */ void SwapColumns(in long column1, in long column2) raises(IncorrectIndex); /*! \brief Reads a table from a byte stream. \param fileStream byte stream \return \c true if table is successfully read or \c false otherwise \sa SaveToFile() */ boolean ReadFromFile(in SALOMEDS::TMPFile fileStream); /*! \brief Saves a table into a byte stream. \return byte stream with table representation \sa ReadFromFile() */ SALOMEDS::TMPFile SaveToFile(); }; //========================================================================== /*! \brief Table of %integer values This attribute allows to store a table of %integer values. It is possible to specify titles for rows and columns. In addition, the unis labels can be assigned to the rows. And finally, the table iself can have title. \note The indices of rows and columns in the table start from 1. See \ref example21 for an example of usage of this attribute in batchmode of %SALOME application. \sa AttributeTable, AttributeTableOfReal, AttributeTableOfString */ //========================================================================== interface AttributeTableOfInteger : AttributeTable { /*! \brief Appends new row to the table. If the length of the \a data parameter is greater than current number of columns in the table, the table is automatically resized. \param data sequence of values which will be set as elements of the added row \sa SetRow(), GetRow(), AddColumn() */ void AddRow(in LongSeq data) raises(IncorrectArgumentLength); /*! \brief Replaces all the elements of the specified \a row with new values. Raises an exception if \a row is out of range or if the length of the \a data parameter is not equal to the number of columns in the table. \param row row index \param data sequence of values being set as values of the row \sa GetRow(), AddRow(), SetColumn() */ void SetRow(in long row, in LongSeq data) raises(IncorrectArgumentLength, IncorrectIndex); /*! \brief Returns all the values of the specified row in the table. Raises an exception if \a row is out of range. \note For empty cells 0 value is returned. \param row row index \return sequence of values which are set as elements of the row. \sa SetRow(), AddRow() */ LongSeq GetRow(in long row) raises(IncorrectIndex); /*! \brief Appends new column to the table. If the length of the \a data parameter is greater than current number of rows in the table, the table is automatically resized. \param data sequence of values which will be set as elements of the added column \sa SetColumn(), GetColumn(), AddRow() */ void AddColumn(in LongSeq data) raises(IncorrectArgumentLength); /*! \brief Replaces all the elements of the specified column with new values. Raises an exception if \a column is out of range or if the length of the \a data parameter is not equal to the number of rows in the table. \param column column index \param data sequence of values being set as values of the column \sa GetColumn(), AddColumn(), SetRow() */ void SetColumn(in long column, in LongSeq data) raises(IncorrectArgumentLength, IncorrectIndex); /*! \brief Returns all the values of the specified column in the table. Raises an exception if \a column is out of range. \note For empty cells 0 value is returned. \param column column index \return sequence of values which are set as elements of the column. \sa SetColumn(), AddColumn() */ LongSeq GetColumn(in long column) raises(IncorrectIndex); /*! \brief Puts a value to the table cell specified by \a row and \a column indices. If the \a row and/or \a column parameter(s) are greater than current number of rows/columns in the table, the table is automatically resized. \param value value being set to the table cell \param row row index \param column column index \sa GetValue(), HasValue() */ void PutValue(in long value, in long row, in long column) raises(IncorrectIndex); /*! \brief Returns the value from the cell table. Raises an exception if \a row or \a column is out of range or if value is not set for the specified table cell. \param row row index \param column column index \return value assigned to the table cell \sa PutValue(), HasValue() */ long GetValue(in long row, in long column) raises(IncorrectIndex); }; //========================================================================== /*! \brief Table of real values This attribute allows to store a table of real values. It is possible to specify titles for rows and columns. In addition, the unis labels can be assigned to the rows. And finally, the table iself can have title. \note The indices of rows and columns in the table start from 1. See \ref example22 for an example of usage of this attribute in batchmode of %SALOME application. \sa AttributeTable, AttributeTableOfInteger, AttributeTableOfString */ //========================================================================== interface AttributeTableOfReal : AttributeTable { /*! \brief Appends new row to the table. If the length of the \a data parameter is greater than current number of columns in the table, the table is automatically resized. \param data sequence of values which will be set as elements of the added row \sa SetRow(), GetRow(), AddColumn() */ void AddRow(in DoubleSeq data) raises(IncorrectArgumentLength); /*! \brief Replaces all the elements of the specified \a row with new values. Raises an exception if \a row is out of range or if the length of the \a data parameter is not equal to the number of columns in the table. \param row row index \param data sequence of values being set as values of the row \sa GetRow(), AddRow(), SetColumn() */ void SetRow(in long row, in DoubleSeq data) raises(IncorrectArgumentLength, IncorrectIndex); /*! \brief Returns all the values of the specified row in the table. Raises an exception if \a row is out of range. \note For empty cells 0.0 value is returned. \param row row index \return sequence of values which are set as elements of the row. \sa SetRow(), AddRow() */ DoubleSeq GetRow(in long row) raises(IncorrectIndex); /*! \brief Appends new column to the table. If the length of the \a data parameter is greater than current number of rows in the table, the table is automatically resized. \param data sequence of values which will be set as elements of the added column \sa SetColumn(), GetColumn(), AddRow() */ void AddColumn(in DoubleSeq data) raises(IncorrectArgumentLength); /*! \brief Replaces all the elements of the specified column with new values. Raises an exception if \a column is out of range or if the length of the \a data parameter is not equal to the number of rows in the table. \param column column index \param data sequence of values being set as values of the column \sa GetColumn(), AddColumn(), SetRow() */ void SetColumn(in long column, in DoubleSeq data) raises(IncorrectArgumentLength, IncorrectIndex); /*! \brief Returns all the values of the specified column in the table. Raises an exception if \a column is out of range. \note For empty cells 0.0 value is returned. \param column column index \return sequence of values which are set as elements of the column. \sa SetColumn(), AddColumn() */ DoubleSeq GetColumn(in long column) raises(IncorrectIndex); /*! \brief Puts a value to the table cell specified by \a row and \a column indices. If the \a row and/or \a column parameter(s) are greater than current number of rows/columns in the table, the table is automatically resized. \param value value being set to the table cell \param row row index \param column column index \sa GetValue(), HasValue() */ void PutValue(in double value, in long row, in long volumn) raises(IncorrectIndex); /*! \brief Returns the value from the cell table. Raises an exception if \a row or \a column is out of range or if value is not set for the specified table cell. \param row row index \param column column index \return value assigned to the table cell \sa PutValue(), HasValue() */ double GetValue(in long row, in long column) raises(IncorrectIndex); }; //========================================================================== /*! \brief Table of string values This attribute allows to store a table of string values. It is possible to specify titles for rows and columns. In addition, the unis labels can be assigned to the rows. And finally, the table iself can have title. \note The indices of rows and columns in the table start from 1. \sa AttributeTable, AttributeTableOfInteger, AttributeTableOfReal */ //========================================================================== interface AttributeTableOfString : AttributeTable { /*! \brief Appends new row to the table. If the length of the \a data parameter is greater than current number of columns in the table, the table is automatically resized. \param data sequence of values which will be set as elements of the added row \sa SetRow(), GetRow(), AddColumn() */ void AddRow(in StringSeq data) raises(IncorrectArgumentLength); /*! \brief Replaces all the elements of the specified \a row with new values. Raises an exception if \a row is out of range or if the length of the \a data parameter is not equal to the number of columns in the table. \param row row index \param data sequence of values being set as values of the row \sa GetRow(), AddRow(), SetColumn() */ void SetRow(in long row, in StringSeq data) raises(IncorrectArgumentLength, IncorrectIndex); /*! \brief Returns all the values of the specified row in the table. Raises an exception if \a row is out of range. \note For empty cells empty string is returned. \param row row index \return sequence of values which are set as elements of the row. \sa SetRow(), AddRow() */ StringSeq GetRow(in long row) raises(IncorrectIndex); /*! \brief Appends new column to the table. If the length of the \a data parameter is greater than current number of rows in the table, the table is automatically resized. \param data sequence of values which will be set as elements of the added column \sa SetColumn(), GetColumn(), AddRow() */ void AddColumn(in StringSeq data) raises(IncorrectArgumentLength); /*! \brief Replaces all the elements of the specified column with new values. Raises an exception if \a column is out of range or if the length of the \a data parameter is not equal to the number of rows in the table. \param column column index \param data sequence of values being set as values of the column \sa GetColumn(), AddColumn(), SetRow() */ void SetColumn(in long column, in StringSeq data) raises(IncorrectArgumentLength, IncorrectIndex); /*! \brief Returns all the values of the specified column in the table. Raises an exception if \a column is out of range. \note For empty cells empty string is returned. \param column column index \return sequence of values which are set as elements of the column. \sa SetColumn(), AddColumn() */ StringSeq GetColumn(in long column) raises(IncorrectIndex); /*! \brief Puts a value to the table cell specified by \a row and \a column indices. If the \a row and/or \a column parameter(s) are greater than current number of rows/columns in the table, the table is automatically resized. \param value value being set to the table cell \param row row index \param column column index \sa GetValue(), HasValue() */ void PutValue(in string value, in long row, in long column) raises(IncorrectIndex); /*! \brief Returns the value from the cell table. Raises an exception if \a row or \a column is out of range or if value is not set for the specified table cell. \param row row index \param column column index \return value assigned to the table cell \sa PutValue(), HasValue() */ string GetValue(in long row, in long column) raises(IncorrectIndex); }; //========================================================================== /*! \brief %Study properties attribute This attribute is used to store study properties: user name, creation date, creation mode, modified flag, locked flag. See \ref example20 for an example of usage of this attribute in batchmode of %SALOME application. */ //========================================================================== interface AttributeStudyProperties : GenericAttribute { /*! \brief Sets the name of the study author to the attribute. \param author study author name */ void SetUserName(in string author); /*! \brief Returns the name of the study author. \return study author name (empty string if not set) */ string GetUserName(); /*! \brief Sets creation date of the study. \param minute minutes part of the date \param hour hour part of the date \param day day number part of the date \param month month part of the date \param year year part of the date */ void SetCreationDate(in long minute, in long hour, in long day, in long month, in long year); /*! \brief Returns creation date of the study. \param minute used to return minutes part of the date (undefined if creation date is not set) \param hour used to return hour part of the date (undefined if creation date is not set) \param day used to return day number part of the date (undefined if creation date is not set) \param month used to return month part of the date (undefined if creation date is not set) \param year used to return year part of the date (undefined if creation date is not set) \return \c true if creation date is set or \c false otherwise */ boolean GetCreationDate(out long minute, out long hour, out long day, out long month, out long year); /*! \brief Sets creation mode of the study. \note Creation mode must be either "from scratch" or "copy from". \param mode creation mode description */ void SetCreationMode(in string mode); /*! \brief Returns creation mode of the study. \brief The following values are allowed for creation mode: "from scratch", "copy from", empty string (if not set). \return creation mode description */ string GetCreationMode(); /*! \brief Sets the number of transactions executed after the last saving of the study. \param modified transaction count */ void SetModified(in long modified); /*! \brief Check if study has been modified since last saving operation. \return \c true, if the study has been modified and not saved or \c false otherwise */ boolean IsModified(); /*! \brief Returns the number of transactions executed after the last saving of the study. \return transaction count */ long GetModified(); /*! \brief Lock/unlock the study for modifications. \note This parameter is not recursive. \note If the study is locked, any attempt to modify study contents leads to the raising of the LockProtection exception. \param lock \c true if study should be locked or \c false if study should be unlocked */ void SetLocked(in boolean lock); /*! \brief Check if study is locked. \return \c true if study is locked or \c false otherwise */ boolean IsLocked(); /*! \brief Appends modification record to the list of study modifications. \param author author of the modification \param minute minutes part of the modification date \param hour hour part of the modification date \param day day number part of the modification date \param month month part of the modification date \param year year part of the modification date */ void SetModification(in string author, in long minute, in long hour, in long day, in long month, in long year); /*! \brief Returns list of all the study modification records. \param authors used to return authors of the modification records \param minutes used to return minutes parts of the modification records \param hours used to return hour parts of the modification records \param days used to return day number parts of the modification records \param months used to return month parts of the modification records \param years used to return year parts of the modification records \param withCreator \c true if creation record should be also added to the resulting list or \c false otherwise */ void GetModificationsList(out StringSeq authors, out LongSeq minutes, out LongSeq hours, out LongSeq days, out LongSeq months, out LongSeq years, in boolean withCreator); /*! \brief Sets the comment of the study. \param comment comment of the study. */ void SetComment(in string comment); /*! \brief Returns comment of the study. \return comment */ string GetComment(); /*! \brief Sets the units of the study. \param units units of the study. */ void SetUnits(in string units); /*! \brief Returns units of the study. \return units */ string GetUnits(); }; //========================================================================== /*! \brief Python %object attribute This attribute is used to store pyton objects as a sequence of characters. */ //========================================================================== interface AttributePythonObject : GenericAttribute { /*! \brief Sets a Python %object converted into a sequence of characters to the attribute. \param pyObject sequence of characters representing the encoded Python %object \param isScript if \c true, the \a pyObject parameter specifies a Python script */ void SetObject(in string pyObject, in boolean isScript); /*! \brief Returns a Python %object stored in the attribute as a sequence of characters. \return encoded Python %object stored in the attribute (empty string if not set) */ string GetObject(); /*! \brief Check if the value stored in the attribute is a Python script \return \c true if the sequence of characters stored in the attribute corresponds to a Python script or \c false otherwise */ boolean IsScript(); }; //========================================================================== /*! \brief Parameter attribute This attribute is a universal container of arbitrary data of basic types (%integer, real, string, array, etc). Each parameter is identified by the unique name. Only one value of the specific type can be assigned to the parameter, though it is allowed to assign values of different types to the same name. */ //========================================================================== interface AttributeParameter : GenericAttribute { //! This exception is raised when an invalid identifier is passed as parameter. exception InvalidIdentifier {}; /*! \brief Associates %integer value with the unique identifier. \param ID parameter name \param value parameter value */ void SetInt(in string ID, in long value); /*! \brief Returns %integer value associated with the specified identifier. Raises an exception if %integer parameter is not set for the specified parameter. \param ID parameter name \return %integer value assigned to the parameter */ long GetInt(in string ID) raises(InvalidIdentifier); /*! \brief Associates real value with the unique identifier. \param ID parameter name \param value parameter value */ void SetReal(in string ID, in double value); /*! \brief Returns real value associated with the specified identifier. Raises an exception if real parameter is not set for the specified parameter. \param ID parameter name \return real value assigned to the parameter */ double GetReal(in string ID) raises(InvalidIdentifier); /*! \brief Associates string value with the unique identifier. \param ID parameter name \param value parameter value */ void SetString(in string ID, in string value); /*! \brief Returns string value associated with the specified identifier. Raises an exception if string parameter is not set for the specified parameter. \param ID parameter name \return string value assigned to the parameter */ string GetString(in string ID) raises(InvalidIdentifier); /*! \brief Associates boolean value with the unique identifier. \param ID parameter name \param value parameter value */ void SetBool(in string ID, in boolean value); /*! \brief Returns boolean value associated with the specified identifier. Raises an exception if boolean parameter is not set for the specified parameter. \param ID parameter name \return boolean value assigned to the parameter */ boolean GetBool(in string ID) raises(InvalidIdentifier); /*! \brief Associates real array value with the unique identifier. \param ID parameter name \param value parameter value */ void SetRealArray(in string ID, in DoubleSeq value); /*! \brief Returns real array value associated with the specified identifier. Raises an exception if real array parameter is not set for the specified parameter. \param ID parameter name \return real array value assigned to the parameter */ DoubleSeq GetRealArray(in string ID) raises(InvalidIdentifier); /*! \brief Associates %integer array value with the unique identifier. \param ID parameter name \param value parameter value */ void SetIntArray(in string ID, in LongSeq value); /*! \brief Returns %integer array value associated with the specified identifier. Raises an exception if %integer array parameter is not set for the specified parameter. \param ID parameter name \return %integer array value assigned to the parameter */ LongSeq GetIntArray(in string ID) raises(InvalidIdentifier); /*! \brief Associates string array value with the unique identifier. \param ID parameter name \param value parameter value */ void SetStrArray(in string ID, in StringSeq value); /*! \brief Returns string array value associated with the specified identifier. Raises an exception if string array parameter is not set for the specified parameter. \param ID parameter name \return string array value assigned to the parameter */ StringSeq GetStrArray(in string ID) raises(InvalidIdentifier); /*! \brief Checks if the value of specified type is set for the identifier. \param ID parameter name \param ptype parameter type [0(%integer), 1(real), 2(boolean), 3(string), 4(real array), 5(%integer array), 6(string array)] \returns \c true if the value of type \a ptype is associated with the parameter \a ID */ boolean IsSet(in string ID, in long ptype); /*! \brief Removes value of specified type from the named parameter. \param ID parameter name \param ptype parameter type [0(%integer), 1(real), 2(boolean), 3(string), 4(real array), 5(%integer array), 6(string array)] \return \c true if value is successfully removed or \c false otherwise */ boolean RemoveID(in string ID, in long ptype); /*! \brief Returns a father attribute of this attribute. \return father parameter attribute */ AttributeParameter GetFather(); /*! \brief Check if this attribute has parent parameter attribute. \return \c true if this attribute has parent parameter attribute */ boolean HasFather(); /*! \brief Check if this attribute is a root (top-level) parameter attribute. \return \c true if this attribute is a root parameter attribute */ boolean IsRoot(); /*! \brief Clears the content of the attribute. */ void Clear(); /*! \brief Returns a sequence of parameters identifiers of the specified type stored in the attribute. \param ptype parameter type [0(%integer), 1(real), 2(boolean), 3(string), 4(real array), 5(%integer array), 6(string array)] \return list of parameters identifier */ StringSeq GetIDs(in long ptype); }; }; #endif salome-kernel-6.5.0/idl/SALOME_Comm.idl000077500000000000000000000072521177004724000174700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOME_COMM_IDL_ #define _SALOME_COMM_IDL_ #include "SALOME_Exception.idl" /*! \file SALOME_Comm.idl \brief This file contains a set of interfaces used for communication between components */ module SALOME { enum TypeOfDataTransmitted { _DOUBLE_,_INT_ }; enum TypeOfCommunication { CORBA_ , MPI_ , SOCKET_ }; typedef sequence vectorOfDouble; typedef sequence vectorOfLong; interface MultiCommClass { void setProtocol(in TypeOfCommunication typ); }; interface ServantLifeCycle { void release(); }; interface Sender { TypeOfDataTransmitted getTypeOfDataTransmitted(); void release(); }; interface SenderDouble : Sender { SenderDouble buildOtherWithProtocol(in TypeOfCommunication type); }; interface SenderInt : Sender { SenderInt buildOtherWithProtocol(in TypeOfCommunication type); }; //No compulsory copy between double and CORBA::Double interface CorbaDoubleNCSender : SenderDouble { unsigned long getSize(); vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2); vectorOfDouble send(); }; //Compulsory copy between double and CORBA::Double interface CorbaDoubleCSender : SenderDouble { unsigned long getSize(); //unsigned long getSize2(); vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2); }; //No compulsory copy between int and CORBA::Long interface CorbaLongNCSender : SenderInt { unsigned long getSize(); vectorOfLong sendPart(in unsigned long n1,in unsigned long n2); vectorOfLong send(); }; //Compulsory copy between int and CORBA::Long interface CorbaLongCSender : SenderInt { unsigned long getSize(); vectorOfLong sendPart(in unsigned long n1,in unsigned long n2); }; interface MPISender : Sender { typedef struct Parameter { unsigned long myproc; unsigned long tag1; unsigned long tag2; string service; } param; param getParam(); void send(); void close(in param p); }; interface MPISenderDouble : SenderDouble,MPISender { }; interface MPISenderInt : SenderInt,MPISender { }; interface SocketSender : Sender { typedef struct Parameter { unsigned long lstart; unsigned long lend; unsigned long myport; string internet_address; } param; param getParam(); void initCom() raises(SALOME_Exception); void acceptCom() raises(SALOME_Exception); void closeCom(); void endOfCom() raises(SALOME_Exception); void send(); }; interface SocketSenderDouble : SenderDouble,SocketSender { }; interface SocketSenderInt : SenderInt,SocketSender { }; interface Matrix { SenderDouble getData(); long getSizeOfColumn(); void release(); }; }; #endif salome-kernel-6.5.0/idl/SALOME_Component.idl000077500000000000000000000602061177004724000205350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Component.idl // Author : Paul RASCLE, EDF #ifndef _SALOME_COMPONENT_IDL_ #define _SALOME_COMPONENT_IDL_ #include "SALOME_GenericObj.idl" #include "SALOMEDS.idl" #include "SALOME_Exception.idl" #include "SALOME_PyNode.idl" /*! \file SALOME_Component.idl \brief interfaces for EngineComponent and Container */ /*! \brief 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 { /*! A byte stream which is used for binary data transfer between different components */ typedef sequence TMPFile; //! General Key Value Structure to set or get properties, for component struct KeyValuePair { string key; any value; }; //! Structure data type to hold reference on data struct dataref { string ref; }; typedef sequence FieldsDict; interface EngineComponent ; interface fileRef ; interface fileTransfer ; interface Salome_file; /*! \brief Interface of the %Container. This interface defines the process of loading and registration of new components in %SALOME application */ interface Container { /*! \brief Loads a new component class (dynamic library). \param componentName like COMPONENT, (Python or C++ implementation) try to make a Python import of COMPONENT, then a lib open of libCOMPONENTEngine.so \param reason in case of error (return false) a string explaining the error \return true if load successfull or already done, false otherwise */ boolean load_component_Library(in string componentName, out string reason); //! Create a new servant instance of a component. /*! Component library must be loaded. \param componentName Name of the component which will be registered in Registry and Name Service, (instance number suffix added to the registered name) \param studyId 0 if instance is not associated to a study, >0 otherwise (== study id) \return a loaded component */ Engines::EngineComponent create_component_instance(in string componentName, in long studyId); //! Create a new servant instance of a component with environment variables specified. /*! Component library must be loaded. \param componentName Name of the component which will be registered in Registry and Name Service, (instance number suffix added to the registered name) \param studyId 0 if instance is not associated to a study, >0 otherwise (== study id) \param env a dict of env variables \param reason in case of error (return nil) a string explaining the error \return a loaded component */ Engines::EngineComponent create_component_instance_env(in string componentName, in long studyId, in FieldsDict env, out string reason); //! Find a servant instance of a component /*! \param registeredName Name of the component in Registry or Name Service, without instance suffix number \param studyId 0 if instance is not associated to a study, >0 otherwise (== study id) \return the first instance found with same studyId */ EngineComponent find_component_instance(in string registeredName, in long studyId); //! Find a servant instance of a component, or create a new one. /*! Loads the component library if needed. Only applicable to multiStudy components. \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 (not used any more, give empty string) \return a loaded component */ EngineComponent load_impl(in string nameToRegister, in string componentName); //! Remove the component servant, and deletes all related objects /*! \param component_i Component to be removed */ void remove_impl(in EngineComponent component_i); //! Unload component libraries 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 ; //! working directory of the %container readonly attribute string workingdir ; //! name of the %container log file (this has been set by the launcher) attribute string logfilename ; //! Shutdown the Container process. void Shutdown(); //! Returns the hostname of the container string getHostName(); //! Returns the PID of the container long getPID(); //! Kill the container /*! Returns True if the %container has been killed. Kept for Superv compilation but can't work, unless oneway... TO REMOVE ! */ boolean Kill_impl() ; //! Create a fileRef /*! returns a fileRef object if origFileName exists and is readable else returns null object. Only one fileRef is created for a given file name, so, several calls with the same file name returns the same object. */ fileRef createFileRef(in string origFileName); //! Create a Salome_file /*! returns a Salome_file object if origFileName exists and is readable else returns null object. \param origFileName name of the file to be managed (can contain the path). \return Salome_file CORBA reference. */ Salome_file createSalome_file(in string origFileName); //! Create a fileTransfer /*! returns a fileTransfer object used to copy files from the container machine to the clients machines. Only one fileTransfer instance is created in a container. */ fileTransfer getFileTransfer(); //! Copy a file from a remote host (container) to a local file /*! \param contai the remote container \param remoteFile the file on the remote host to copy \param localFile the local file to create by copy */ void copyFile(in Container contai, in string remoteFile, in string localFile); //! Create a PyNode in the container /*! \param nodeName the name of the PyNode \param code python code as text to load in the node */ PyNode createPyNode(in string nodeName, in string code) raises(SALOME::SALOME_Exception); //! Create a PyScriptNode in the container /*! \param nodeName the name of the PyScriptNode \param code python code as text to load in the node */ PyScriptNode createPyScriptNode(in string nodeName, in string code) raises(SALOME::SALOME_Exception); }; /*! \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 EngineComponent { //! 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(); //! Get study associated to component instance /*! get study associated to component instance \return -1: not initialised (Internal Error) 0: multistudy component instance >0: study id associated to this instance */ long getStudyId(); //! Remove component instance from container /*! Deactivates the %Component. -- TO BE USED BY CONTAINER ONLY (Container housekeeping) -- use remove_impl from Container instead ! */ void destroy() ; //! Returns the container that the %Component refers to. Container GetContainerRef() ; //! Set component instance properties /*! Gives a sequence of (key=string,value=any) to the component. Base class component stores the sequence in a map. The map is cleared before. This map is for use by derived classes. */ void setProperties(in FieldsDict dico); //! Get component instance properties /*! returns a previously stored map (key=string,value=any) as a sequence. See setProperties(in FieldsDict dico). */ FieldsDict getProperties(); //! Set an option value /*! This method is to set an option specific to a certain EngineComponent. */ void SetOption(in string optionName, in string value); //! Return an option value /*! This method is to get value of an option specific to a certain EngineComponent. */ string GetOption(in string optionName); //! Set name of a node in a graph (for %SUPERVISOR use) /*! This method is used by the %SUPERVISOR component. It sets the names of the graph and of the node. \param aGraphName Name of graph \param aNodeName Name of node */ void Names( in string aGraphName , in string aNodeName ) ; //! Kill the component (if you can) /*! Returns True if the %Component has been killed. */ boolean Kill_impl() ; //! Stop the component (if you can) /*! Returns True if the activity of the %Component has been stopped. (It's action can't be resumed) */ boolean Stop_impl() ; //! Suspend the component /*! Returns True if the activity of the %Component has been suspended. (It's action can be resumed) */ boolean Suspend_impl() ; //! Resume the component /*! Returns True if the activity of the %Component has been resumed. */ boolean Resume_impl() ; //! Get the cpu used /*! Returns the Cpu used */ long CpuUsed_impl() ; //! Get a python dump /*! Returns a python script, which is being played back reproduces the data model of component */ TMPFile DumpPython(in Object theStudy, in boolean isPublished, in boolean isMultiFile, out boolean isValidScript); //! Returns a CORBA Ref of a input Salome_file managed by a service. /*! \param service_name service's name. \param file_name name of the requested file. \return CORBA Ref of the requested file. \exception contains informations of what if the component cannot sends the file's reference. */ Engines::Salome_file getInputFileToService(in string service_name, in string Salome_file_name) raises(SALOME::SALOME_Exception); //! Check service input files (transfer them if needed) /*! This method is used before the activation of the service. It calls recvFiles() on all the input Salome_file files of the service. Before each recvFiles(), it uses the callback method named configureSalome_file. This method allows the user to configure the files managed by the Salome_file. By default, there is no files managed when a Salome_file is created, but the supervisor set some files managed by the Salome_file from the information contained into the schema file. \param service_name service's name. \exception contains informations about files that are not in a good state. */ void checkInputFilesToService(in string service_name) raises(SALOME::SALOME_Exception); //! This method adds a input Salome_file to a service of the component. /*! \param service_name service's name. \param Salome_file_name name of the Salome_file \return a reference of the Salome_file \exception raises an exception if there is already a Salome_file with this name for the service. */ Engines::Salome_file setInputFileToService(in string service_name, in string Salome_file_name) raises(SALOME::SALOME_Exception); //! Returns a CORBA Ref of a output Salome_file managed by a service. /*! \param service_name service's name. \param file_name name of the requested file. \return CORBA Ref of the requested file. \exception contains informations of what if the component cannot sends the file's reference. */ Engines::Salome_file getOutputFileToService(in string service_name, in string Salome_file_name) raises(SALOME::SALOME_Exception); //! Check service output files (transfer them if needed) /*! This method is used at the end of the service. It calls recvFiles() on all the output Salome_file files of the service. Before each recvFiles(), it uses the callback method named configureSalome_file. This method allows the user to configure the files managed by the Salome_file. By default, there is no files managed when a Salome_file is created, but the supervisor set some files managed by the Salome_file from the information contained into the schema file. \param service_name service's name. \exception contains informations about files that are not in a good state. */ void checkOutputFilesToService(in string service_name) raises(SALOME::SALOME_Exception); //! This method adds an output Salome_file to a service of the component. /*! \param service_name service's name. \param Salome_file_name name of the Salome_file \return a reference of the Salome_file \exception raises an exception if there is already a Salome_file with this name for the service. */ Engines::Salome_file setOutputFileToService(in string service_name, in string Salome_file_name) raises(SALOME::SALOME_Exception); //! Indicate if the component instance provides custom information about its objects. /*! Returns true if the component provides custom information about its objects, false otherwise. Should be redefined in the certain component to return true in case of this component provides such information. */ boolean hasObjectInfo(); //! Get custom information about the given object. /*! This method is used to get the custom information about the given object. Should be redefined in the certain component in case of this component provides such information. It is worth using this method only if hasObjectInfo() method returns true. \param entry object's entry. \param studyId study id \return an information about the given object. */ string getObjectInfo(in long studyId, in string entry); } ; /*! \brief Base interface of the %component that supports exporting data. */ interface ImportableComponent { /*! \brief Get a list of supported formats */ SALOME::StringSeq GetImportableFormats(); boolean ImportDataAs(in string format, in SALOME::GenericObj exporter); }; //! A block of binary data used for file transfer. The maximum size of the block is defined on server side. typedef sequence fileBlock; /*! \brief Interface of fileTransfer. The fileTransfer and fileRef interfaces provide a file transfer service between different computers. */ interface fileTransfer : SALOME::GenericObj { //! Open the file transfer /*! open method returns a key (fileId) that identifies the structure (ex: C FILE), associated to the original file on the server. The structure is created by a container for transfer of files availables on the computer which runs the container. Each open gives a unique fileId, to allow concurrent reads of the same File. */ long open(in string fileName); //! Open the file transfer in write mode for file fileName /*! \param fileName the file to copy into with putBlock \return the id to use with putBlock */ long openW(in string fileName); //! Close the file transfer /*! when the file transfer is finished, close method releases structures created by open method, identified by fileId. */ void close(in long fileId); //! Get a file data block /*! Get successive blocks of octets from the original file. The last block is empty, and identifies the end of file. */ fileBlock getBlock(in long fileId); //! Put a file data block /*! \param fileId identification of the file obtained by openW \param block a data block to copy into the file identified by fileId */ void putBlock(in long fileId, in fileBlock block); }; //! A file managed by a Salome_file. struct file { //! file name string file_name; //! path name string path; string type; string source_file_name; //! status ("present" or "notpresent") string status; long node; Engines::Container container; }; //! A sequence of Engines::file. typedef sequence files; //! The state of a Salome_file. struct SfState { //! file name string name; //! hdf5 file where the file can be saved string hdf5_file_name; //! number of files managed long number_of_files; //! information if all the files are received boolean files_ok; }; /*! \brief Interface of a Salome_file managed This file is independent of a Salome module. It can managed one or more real files. It's useful for parallel files. Currently Salome_file cannot manage two files that have the same name but not the same path. */ interface Salome_file : Engines::fileTransfer { //! Load a Salome_file from a hdf5 file. /*! \param hdf5_file name (with path) of the hdf5_file. \exception contains informations of errors if the loading doesn't succeed. */ void load(in string hdf5_file) raises (SALOME::SALOME_Exception); //! Save a Salome_file into a hdf5_file. /*! \param hdf5_file name (with path) of the hdf5_file. \exception contains informations of errors if the save doesn't succeed. */ void save(in string hdf5_file) raises (SALOME::SALOME_Exception); //! Save a Salome_file into a hdf5_file. /*! All files that are managed are saved into the hdf5_file \param hdf5_file name (with path) of the hdf5_file. \exception contains informations of errors if the save doesn't succeed. */ void save_all(in string hdf5_file) raises (SALOME::SALOME_Exception); /**************/ //! Add a Local file to the Salome_file. /*! \param file_name name of the file with the path. \exception raised if the file is already added into the Salome_file. */ void setLocalFile(in string comp_file_name) raises (SALOME::SALOME_Exception); //! Add a Distributed file to the Salome_file. /*! \param comp_file_name name of the file with the path. \exception raised if the file is already added into the Salome_file. */ void setDistributedFile(in string comp_file_name) raises (SALOME::SALOME_Exception); //! Connect a Salome_file with another Salome_file. /*! It works only if the Salome_file managed only one file \param source_Salome_file Salome_file that managed the distributed version of the file. \exception raised if there is more or less than one file. */ void connect(in Engines::Salome_file source_Salome_file) raises (SALOME::SALOME_Exception); //! Connect the managed file file_name to a Salome_file. /*! \param file_name name of the file without the path. \param source_Salome_file Salome_file that managed the distributed version of the file. \exception raised if the file doesn't exist. */ void connectDistributedFile(in string file_name, in Engines::Salome_file source_Salome_file) raises (SALOME::SALOME_Exception); //! Connect the file_name with a Distributed file_name. /*! \param file_name name of the file without the path. \param source_file_name It's the name of the file managed by the distributed source Salome_file. \exception raised if the file doesn't exist. */ void setDistributedSourceFile(in string file_name, in string source_file_name) raises (SALOME::SALOME_Exception); /**************/ //! Get all the distributed files managed by the Salome_file and check all the local files. /*! \exception raised if some of the files are not ok. */ void recvFiles() raises (SALOME::SALOME_Exception) ; /**************/ //! Remove a file of the Salome_file. /*! \param file_name name of the file. \exception raised if the file doesn't exist. */ void removeFile(in string file_name) raises (SALOME::SALOME_Exception); //! Remove all the files of the Salome_file. void removeFiles(); /**************/ //! Get the list of the files managed by the Salome_file. /*! The list can be empty. */ Engines::files getFilesInfos(); //! Get a file managed by the Salome_file. /*! \param file_name the name of the file. \return CORBA file reference. \exception raised if the file doesn't exist. */ Engines::file getFileInfos(in string file_name) raises (SALOME::SALOME_Exception); //! Return the state of the Salome_file. Engines::SfState getSalome_fileState(); //! Set the container where files are. /*! \param container container CORBA's reference. */ void setContainer(in Engines::Container container); }; /*! \brief Interface of fileRef. The fileTransfer and fileRef interfaces provide a file transfer service between different computers. A fileRef object is associated to an original file (origFileName) on a machine (refMachine). It is created by a container (factoryServer) on refMachine, with createFileRef(in string origFileName) method. The fileRef object maintains a list of (machine,filename) for copies. If a copy exists on myMachine, getRef(myMachine) returns the file name of the copy on myMachine, else returns empy string. If there is no copy on myMachine, method getFileTransfer() from container factoryServer on refMachine provides a fileTransfer object dedicated to CORBA file copy. After the copy, addRef(myMachine, localFileNameOnMyMachine) registers the file name of the copy on myMachine. */ interface fileRef { //! the original file readonly attribute string origFileName; //! the machine of the original file readonly attribute string refMachine; Container getContainer(); boolean addRef(in string machine, in string fileName); string getRef(in string machine); }; }; #endif salome-kernel-6.5.0/idl/SALOME_Component.xml000077500000000000000000000033701177004724000205640ustar00rootroot00000000000000 Engines Container ping distributed EngineComponent ping distributed destroy distributed setInputFileToService distributed setOutputFileToService distributed fileTransfer Salome_file salome-kernel-6.5.0/idl/SALOME_ContainerManager.idl000077500000000000000000000246071177004724000220150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOME_CONTAINERMANAGER_IDL_ #define _SALOME_CONTAINERMANAGER_IDL_ #include "SALOME_Exception.idl" #include "SALOME_Component.idl" /*! \file SALOME_ContainerManager.idl \brief interfaces for %SALOME launcher and container manager */ module Engines { //! Type to transmit list of resources. typedef sequence ResourceList; //! components list typedef sequence CompoList; //! files list typedef sequence FilesList; //! modules list typedef sequence ModulesList; //! A generic parameter struct Parameter { string name; string value; }; //! Generic parameter list typedef sequence ParameterList; //! Type to describe required properties of a resource struct ResourceParameters { //! resource name - manual selection string name; //! host name string hostname; //! if given required operating system string OS; //! if given list of components that could be loaded on a container //! Optional if no resource are found with this constraint CompoList componentList; // Permits to order resources //! required number of proc long nb_proc; //! required memory size long mem_mb; //! required frequency long cpu_clock; //! required number of node long nb_node; //! required number of proc per node long nb_proc_per_node; // Permits to configure SALOME resource management //! resource management policy : first, cycl, altcycl or best (can be extended) string policy; //! restricted list of resources to search in ResourceList resList; }; //! Type to describe required properties of a container struct ContainerParameters { //! container name if given else automatic string container_name; //! creation mode for GiveContainer if given else automatic /*!start creates a new container * get try to find an existing container * getorstart use an existing container if it exists or creates a new one */ string mode; //! container working directory if given else automatic string workingdir; // Parallel part //! Number of proc of a parallel container long nb_proc; //! if true start a MPI container boolean isMPI; //! PaCO specific informations string parallelLib; //! Parameters to choose a resource ResourceParameters resource_params; }; //! Type to describe a resource struct ResourceDefinition { //! name string name; //! hostname string hostname; //! protocol to connect to the resource //! protocol used to start a remote container (ssh or rsh) string protocol; //! login name to use to start a remote container string username; //! salome application to use to start a remote container string applipath; //! list of available components CompoList componentList; //! Type of resource: interactive or batch string mode; //! operating system string OS; //! memory size per node long mem_mb; //! frequency long cpu_clock; //! number of node long nb_node; //! number of proc per node long nb_proc_per_node; //! batch system string batch; //! MPI implementation string mpiImpl; //! if the resource is a cluster: //! internal protocol to use to start a remote container (ssh or rsh) on the cluster string iprotocol; //! Specify if the resource is a cluster head; boolean is_cluster_head; //! Predefined working directory on the resource string working_directory; }; //! exception thrown if a computer is not found in the catalog exception NotFound {}; struct JobParameters { string job_name; //! Job Type - Could be equal to "command" or "yacs_file" or "python_salome" string job_type; // Common values string job_file; string env_file; FilesList in_files; FilesList out_files; string work_directory; string local_directory; string result_directory; /*! Time for the batch (has to be like this : hh:mm) - Could be empty, in this case, default value of the selected resource will be used. */ string maximum_duration; // Memory is expressed in megabytes -> mem_mb // Number of Processors -> nb_proc ResourceParameters resource_required; /*! Name of the batch queue choosed - optional */ string queue; /*! Specific parameters for each type of job - optional */ Engines::ParameterList specific_parameters; }; struct JobDescription { long job_id; Engines::JobParameters job_parameters; }; typedef sequence JobsList; interface SalomeLauncherObserver { void notify(in string event_name, in string event_data); }; /*! \brief Interface of the %salomelauncher This interface is used for interaction with the unique instance of SalomeLauncher */ interface SalomeLauncher { // Main methods long createJob (in Engines::JobParameters job_parameters) raises (SALOME::SALOME_Exception); void launchJob (in long job_id) raises (SALOME::SALOME_Exception); string getJobState (in long job_id) raises (SALOME::SALOME_Exception); void getJobResults(in long job_id, in string directory) raises (SALOME::SALOME_Exception); boolean getJobDumpState(in long job_id, in string directory) raises (SALOME::SALOME_Exception); void stopJob (in long job_id) raises (SALOME::SALOME_Exception); void removeJob (in long job_id) raises (SALOME::SALOME_Exception); // Useful methods long createJobWithFile(in string xmlJobFile, in string clusterName) raises (SALOME::SALOME_Exception); boolean testBatch (in ResourceParameters params) raises (SALOME::SALOME_Exception); // SALOME kernel service methods void Shutdown(); long getPID(); // Observer and introspection methods void addObserver(in Engines::SalomeLauncherObserver observer); void removeObserver(in Engines::SalomeLauncherObserver observer); Engines::JobsList getJobsList(); Engines::JobParameters getJobParameters(in long job_id) raises (SALOME::SALOME_Exception); // Save and load methods void loadJobs(in string jobs_file) raises (SALOME::SALOME_Exception); void saveJobs(in string jobs_file) raises (SALOME::SALOME_Exception); }; /*! \brief Interface of the %containerManager This interface is used for interaction with the unique instance of ContainerManager */ interface ContainerManager { //! GiveContainer - use mode parameter of ContainerParameters to configure //! how this method works //! Currently: get, start, getorstart, findorstart, find Container GiveContainer(in ContainerParameters params) raises (SALOME::SALOME_Exception); //! Shutdown all containers that have been launched by the container manager void ShutdownContainers(); } ; /*! \brief Interface of the %resourcesManager This interface is used for interaction with the unique instance of ResourcesManager */ interface ResourcesManager { //! Find first available resource in a resources list string FindFirst(in ResourceList possibleResources); //! Find best available computer according to policy in a computers list string Find(in string policy, in ResourceList possibleResources); //! Get a list of resources that are best suited to launch a container given constraints /*! The constraints are resource constraints (params) and components constraints (componentList) */ ResourceList GetFittingResources(in ResourceParameters params) raises (SALOME::SALOME_Exception); //! Get definition of a resource ResourceDefinition GetResourceDefinition(in string name); //! Add a new resource to the resource_manager /*! write -> true, resource manager will add it into a xml_file xml_file -> could be empty, in this case if write is true, resource manager will write the resource in its first ResourceCatalog file */ void AddResource(in ResourceDefinition new_resource, in boolean write, in string xml_file) raises (SALOME::SALOME_Exception); //! Remove a new resource to the resource_manager /*! write -> true, resource manager will write a new xml_file xml_file -> could be empty, in this case if write is true, resource manager will write the resource in its first ResourceCatalog file */ void RemoveResource(in string resource_name, in boolean write, in string xml_file) raises (SALOME::SALOME_Exception); }; // For compatibility - will be erased on SALOME 6 typedef sequence MachineList; //! Type to describe required properties of a container. struct MachineParameters { //! container name if given else automatic string container_name; //! host name if given else automatic string hostname; //! if given list of components that could be loaded on the container CompoList componentList; //! if given restricted list of machines to search in MachineList computerList; //! required operating system string OS; //! required memory size long mem_mb; //! required frequency long cpu_clock; //! required number of proc per node long nb_proc_per_node; //! required number of node long nb_node; //! if true start a MPI container boolean isMPI; //! container working directory string workingdir; //! creation mode for GiveContainer. /*!start creates a new container * get try to find an existing container * getorstart use an existing container if it exists or creates a new one */ string mode; //! resource management policy : first, cycl, altcycl or best (can be extended) string policy; //! PaCO specific informations string parallelLib; long nb_component_nodes; }; }; #endif salome-kernel-6.5.0/idl/SALOME_Exception.idl000077500000000000000000000062301177004724000205260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Exception.idl // Author : Paul RASCLE, EDF // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_Exception.idl,v 1.8.2.1.22.2.12.1 2012-04-12 14:04:58 vsr Exp $ // /*! \file SALOME_Exception.idl \brief This file contains the objects defining the main exception used in %SALOME application. The idl SALOME_Exception provides a generic CORBA exception for SALOME, with an attribute that gives an exception type,a message, plus optional source file name and line number. This idl is intended to serve for all user CORBA exceptions raised in SALOME code, as IDL specification does not support exception inheritance. So, all the user CORBA exceptions from SALOME could be handled in a single catch. */ #ifndef _SALOME_EXCEPTION_IDL_ #define _SALOME_EXCEPTION_IDL_ /*! \brief Module %SALOME contains all base interfaces of %SALOME Kernel */ module SALOME { //! This enumeration contains the elements indicating the type of the exception which can be raised during %SALOME session. enum ExceptionType { COMM, /*!< Communication problem */ BAD_PARAM, /*!< Bad User parameters */ INTERNAL_ERROR /*!< Application level problem, irrecoverable */ }; //! This struct contains a set of fields defining the structure of the exception. struct ExceptionStruct { ExceptionType type; /*! salome-kernel-6.5.0/idl/SALOME_GenericObj.idl000077500000000000000000000042361177004724000206030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Component.idl // Author : Alexey Petrov, OPEN CASCADE // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_GenericObj.idl,v 1.6.2.1.22.4.12.1 2012-04-12 14:04:58 vsr Exp $ // #ifndef _SALOME_GENERICOBJ_IDL_ #define _SALOME_GENERICOBJ_IDL_ /*! \file SALOME_GenericObj.idl \brief interface for common behavior of %SALOME transient CORBA objects */ module SALOME { typedef sequence StringSeq; /*! \brief interface for common behavior of %SALOME transient CORBA objects */ interface GenericObj { /*! \brief Increase the reference count (mark as used by another object).*/ void Register(); /*! \brief Decrease the reference count (release by another object).*/ void UnRegister(); /*! \brief Obsolete, left for compatibility reasons only. Use UnRegister() instead.*/ void Destroy(); }; /*! \brief common usage interface for exporting of arbitrary data in %SALOME environment */ interface ExportableObject : GenericObj { /*! \brief Get a list of supported formats */ StringSeq GetExportableFormats(); /*! \brief Export data in the specified format */ boolean ExportDataAs(in string format, out GenericObj exporter); }; }; #endif salome-kernel-6.5.0/idl/SALOME_GenericObj.xml000077500000000000000000000023051177004724000206260ustar00rootroot00000000000000 SALOME GenericObj salome-kernel-6.5.0/idl/SALOME_MPIContainer.idl000077500000000000000000000027141177004724000210630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_MPIContainer.idl // #ifndef _SALOME_MPICONTAINER_IDL_ #define _SALOME_MPICONTAINER_IDL_ #include "SALOME_Component.idl" #include "SALOME_MPIObject.idl" /*! \file SALOME_MPIContainer.idl \brief interfaces for parallel container */ module Engines { /*! \brief Interface of the MPI parallel container. This interface defines the process of loading and registration of new components in %SALOME application */ interface MPIContainer:Container,MPIObject { }; } ; #endif salome-kernel-6.5.0/idl/SALOME_MPIObject.idl000077500000000000000000000025171177004724000203500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_MPIObject.idl // #ifndef _SALOME_MPIOBJECT_IDL_ #define _SALOME_MPIOBJECT_IDL_ /*! \file SALOME_MPIObject.idl \brief interfaces for parallel (MPI) objects */ module Engines { typedef sequence IORTab; /*! \brief Interface of a parallel %object for the MPI parallel container. */ interface MPIObject { attribute IORTab tior; } ; } ; #endif salome-kernel-6.5.0/idl/SALOME_ModuleCatalog.idl000077500000000000000000000305741177004724000213200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ModuleCatalog.idl // Author : Estelle Deville // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_ModuleCatalog.idl,v 1.11.2.1.22.2.12.1 2012-04-12 14:04:58 vsr Exp $ // /*! \file SALOME_ModuleCatalog.idl \brief interfaces used for getting information from module catalog in %SALOME application */ /*! \brief The main package of interfaces used for the module catalog in %SALOME application. Module catalog allows to manage components of %SALOME application, to call specified in the xml files interfaces with the help of AComponent interface. */ module SALOME_ModuleCatalog { /*! \brief This enumeration contains a current set of definitions of the components integrated into %SALOME application. */ enum ComponentType { GEOM, /*! ListOfServicesParameter; //! The list of datastream parameters of service. typedef sequence ListOfServicesDataStreamParameter; //! a string list typedef sequence ListOfString; //! enumeration to define data types used by services enum TypeKind { NONE , Dble , /*!< a double */ Int , /*!< an integer */ Str , /*!< a string */ Bool , /*!< a boolean */ Objref , /*!< an object reference */ Seq , /*!< a sequence of a content type */ Array , /*!< an array */ Struc /*!< a structure with named members */ }; //! struct to define members of a Struc TypeKind struct MemberDefinition { string name; /*!< Member name */ string type; /*!< Member type name */ }; //! List of member definitions in a structure typedef sequence ListOfMemberDefinition; //! Struct to get the definition of types used in Salome catalogs struct TypeDefinition { string name; /*!< Type name*/ TypeKind kind; /*!< Type kind.*/ string id; /*!< id (if needed) */ string content; /*!< Content type (if needed) */ ListOfString bases; /*!< base types (if needed) */ ListOfMemberDefinition members; /*!< Member types (if needed) */ }; //! list of type definitions typedef sequence ListOfTypeDefinition; //! This struct contains fields 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 interface names. typedef sequence ListOfInterfaces ; /*! \brief PathPrefix : association of a machine name and a path to a component */ struct PathPrefix { string machine; string path; }; //! List of path prefixes typedef sequence PathPrefixes; //! Component implementation type enum ImplType { SO, /*!< component implemented as a dynamic library loadable with dlopen */ PY, /*!< component implemented as a python module loadable with import */ EXE, /*!< component implemented as an executable */ CEXE /*!< component to be loaded by a container which executable is given in the catalog */ } ; //! Description of a component struct ComponentDef { ComponentType type; string name; string username; boolean multistudy; ImplType implementationType; string implname; string icon; string constraint; ListOfDefInterface interfaces; PathPrefixes paths; }; //! List of component names. typedef sequence ListOfComponents ; //! List of computer names. 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); /*! \brief Get the list of service names of an 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); /*! \brief Get a 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); /*! \brief Get 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); /*! \brief Get 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); /*! \brief Get the constraint affected to the component constraint to be resolved by LifeCycle for the computer choice */ readonly attribute string constraint ; /*! \brief Get the component name */ readonly attribute string componentname; /*! \brief Get the user name of the component */ readonly attribute string componentusername; /*! \brief Get whether the component is multistudy or not */ readonly attribute boolean multistudy; /*! \brief Get the type of the component */ readonly attribute ComponentType component_type ; /*! \brief Get the icone of the component (for IAPP) */ readonly attribute string component_icone; /*! \brief Get the implementation type of the component C++ (dyn lib), Python (module) or executable */ readonly attribute ImplType implementation_type; /*! \brief Get the implementation name of the component It's the name of the dyn lib or the python module or the executable if the default naming scheme is not convenient. */ readonly attribute string implementation_name; } ; /*! \brief %Module catalog interface Interface to get information about components from the module catalog in %SALOME application. */ interface ModuleCatalog { /*! \brief ping the ModuleCatalog server */ void ping(); /*! \brief Returns the PID of the ModuleCatalog server */ long getPID(); /*! \brief Shutdown the ModuleCatalog server */ oneway void ShutdownWithExit(); /*! \brief Get the types of the catalog */ ListOfTypeDefinition GetTypes(); /*! \brief Get a list of computer names of the catalog */ ListOfComputers GetComputerList(); //! Get the %PathPrefix of a computer string GetPathPrefix(in string machinename) raises(NotFound); //! Get a list of component names of the catalog ListOfComponents GetComponentList(); /*! \brief Get a list of pair GUI elements (component name, component icone) used for representation of the module in %IAPP component. */ ListOfIAPP_Affich GetComponentIconeList(); /*! \brief Get a list of component names of a particular type, which belong to this catalog. */ ListOfComponents GetTypedComponentList(in ComponentType _component_type); /*! \brief Get one component of the catalog. */ Acomponent GetComponent(in string componentname) raises(NotFound); /*! \brief Get the description of a component of the catalog. */ ComponentDef GetComponentInfo(in string componentName) raises(NotFound); /*! \brief Read a xml file and import new components from this file. New components replace existing components with the same name. */ void ImportXmlCatalogFile(in string filename) raises(NotFound); /*! \brief Shutdown the module catalog server */ void shutdown(); } ; }; salome-kernel-6.5.0/idl/SALOME_PACOExtension.idl000077500000000000000000000073421177004724000212140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_PACOExtension.idl // Author : André RIBES, EDF #ifndef _SALOME_PACOExtension_IDL_ #define _SALOME_PACOExtension_IDL_ /*! \file SALOME_PACOExtension.idl \brief Interfaces for Parallel Component and Container using PaCO++ */ #include "SALOME_Component.idl" #include "DSC_Engines.idl" module Engines { interface Parallel_Component : Engines::EngineComponent { void send_parallel_proxy_object(in Object proxy_ref); }; interface PACO_Container : Engines::Container { // Replicated Method used by the proxy to create // a PACO Component void create_paco_component_node_instance(in string registeredName, in string proxy_containerName, in long studyId) raises(SALOME::SALOME_Exception); void updateInstanceNumber(); }; /*--------------------------------------------------------------------------------------------*/ /*! \brief Interface of a Parallel_DSC component. This interface defines the operations needed to add a paco++ port into a parallel DSC component. */ interface Parallel_DSC : Engines::Superv_Component, Engines::Parallel_Component { /*! This operation gives the proxy node of a paco++ port to all the nodes. Only a node of the parallel component is going to add a proxy object with an internal method. \param ref provides proxy port's reference. \param provides_port_name provides port's name. \see Engines_ParallelDSC_i::add_parallel_provides_proxy_port */ void set_paco_proxy(in Object ref, in string provides_port_name, in Ports::PortProperties port_prop); }; /*! \brief Interface of a Parallel_Salome_file This interface is used by parallel components and containers. It adds methods to enable to choose on which node of the parallel component the file has to be received. */ interface Parallel_Salome_file : Engines::Salome_file { /*! Set a number of node for the file. Default is the node 0. \param file_name name of the file. \param node_nbr node number where the file is. \exception raised if the file doesn't exist. */ void setFileNode(in string file_name, in long node_nbr) raises (SALOME::SALOME_Exception); /*! Get the number of the node that actually managed the file. \param file_name name of managed file. \return node number of the file \exception raised if the file doesn't exist. */ long getFileNode(in string file_name) raises (SALOME::SALOME_Exception); /*! This method update the state of file for the Parallel_Salome_file. \param new_file the new state of file. */ Engines::Container updateFile(in Engines::file new_file); /*! This method is used by the parallel implementation of recvFiles. \exception raised if the file cannot be ok. */ void recvFiles_node() raises (SALOME::SALOME_Exception); }; }; #endif salome-kernel-6.5.0/idl/SALOME_PACOExtension.xml000077500000000000000000000032251177004724000212400ustar00rootroot00000000000000 Engines Parallel_Component send_parallel_proxy_object distributed PACO_Container updateInstanceNumber distributed Parallel_DSC set_paco_proxy distributed Parallel_Salome_file salome-kernel-6.5.0/idl/SALOME_ParamPorts.idl000077500000000000000000000027701177004724000206650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ParamPorts.idl // Author : Andre RIBES, EDF // #ifndef _SALOME_ParamPorts_IDL_ #define _SALOME_ParamPorts_IDL_ #include "SALOME_Ports.idl" module Ports { /*! \brief Interface of a port for parametric application This interface defines a Data_Port that sends a vector of double that are distributed along the different processor and returns a vector of double for the results */ interface Param_Double_Port : Ports::Data_Port { typedef sequence seq_double; void put(in Ports::Param_Double_Port::seq_double param_data); void get_results(out Ports::Param_Double_Port::seq_double param_results); }; }; #endif salome-kernel-6.5.0/idl/SALOME_ParamPorts.xml000077500000000000000000000031361177004724000207120ustar00rootroot00000000000000 Ports Param_Double_Port put distributed param_data BasicBC get_results distributed param_results GaBro salome-kernel-6.5.0/idl/SALOME_Parametric.idl000077500000000000000000000053701177004724000206630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Parametric.idl // Author : Renaud BARATE, EDF R&D // #ifndef _SALOME_Parametric_IDL_ #define _SALOME_Parametric_IDL_ /*! \brief This module contains type definitions for the communication between supervision codes and computation codes in parametric studies. */ module SALOME_TYPES { /*! \brief Structure describing a parameter that can be used for specific information exchange between the codes. */ struct Parameter { string name; string value; }; /*! \brief List of parameters. */ typedef sequence ParameterList; /*! \brief Type representing the value of a single variable exchanged between the codes (e.g. a force "F"). As the variables may be vectors (or even matrices), their value is represented as a sequence of real numbers. */ typedef sequence Variable; /*! \brief Type representing a state, i.e. a set containing the values of all the variables of interest. */ typedef sequence VariableSequence; /*! \brief Type representing a set of states. */ typedef sequence StateSequence; /*! \brief Type representing a time sequence, with a set of states for each time step. Hence it is represented as a sequence of StateSequence. */ typedef sequence TimeSequence; /*! \brief List of variable names. */ typedef sequence VarList; /*! \brief Structure describing the input of a computation code. */ struct ParametricInput { VarList inputVarList; VarList outputVarList; TimeSequence inputValues; ParameterList specificParameters; }; /*! \brief Structure describing the output of a computation code. */ struct ParametricOutput { TimeSequence outputValues; ParameterList specificOutputInfos; long returnCode; string errorMessage; }; }; #endif salome-kernel-6.5.0/idl/SALOME_Ports.idl000077500000000000000000000101721177004724000176770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Ports.idl // Author : Andre RIBES, EDF // #ifndef _SALOME_PORTS_IDL_ #define _SALOME_PORTS_IDL_ /*! \file SALOME_Ports.idl \brief This file contains the IDL base interfaces for ports in the SALOME component model. */ /*! \brief module that contains interfaces to define the kind of ports provided by the SALOME component model. */ module Ports { /*! \brief Interface of a DSC Port. This interface defines a Port. A port is a CORBA interface. */ interface Port {}; /*! \brief Interface of a Control_Port. This interface defines a Control Port. When a component uses a control port, it says that the service associated to the provides port can be started. \note Currently Control_Port can not employed since it is not recognized by the supervisor. But this type can be used to classified the port. */ interface Control_Port : Ports::Port {}; /*! \brief Interface a Data_Port. This interface defines a Data Port. A Data Port is a port that transmit data between two components. Each Data Port has a Put operation for the emitter and a Get operation for the receiver. \note Data_Port is currently empty but it permits to identified the behaviour of a port. */ interface Data_Port : Ports::Port {}; /*! \brief Data_And_Control_Port. This interface defines a combination of a Control_Port and a Data_Port. \note Like Control_Port, Data_And_Control_Port can not employed since it is not recognized by the supervisor. But this type can be used to classified the port. */ interface Data_And_Control_Port : Ports::Port {}; //! This exception indicates that the property doesn't not exist. exception NotDefined {}; //! This exception indicates that the given value to the property is not of a good type. exception BadType {}; //! This exception indicates that the given value to the property is not authorized. exception BadValue {}; /*! \brief Interface of a PortProperties. This interface permits to set and get properties associated to a port. Each uses or provides port have a PortProperties object. But this object could be empty. */ interface PortProperties { //! This operation permits to set a value of a property. /*! \param name property's name. \param value value of the property. \exception Ports::BadType \exception Ports::NotDefined */ void set_property(in string name, in any value) raises (Ports::BadType, Ports::BadValue, Ports::NotDefined); //! This operation permits to get property's value. /*! \param name property's name. \return value of the property. \exception Ports::NotDefined */ any get_property(in string name) raises (Ports::NotDefined); }; /*! \brief Interface of a basic datastream short port This interface defines a Data_Port that transmit a CORBA::Short. This interface can be seen as an example of an integration of a port in the DSC_User programming model. */ interface Data_Short_Port : Ports::Data_Port { //! this operation can be used by a uses port to send me a short void put(in short data); }; }; #endif salome-kernel-6.5.0/idl/SALOME_Ports.xml000077500000000000000000000024431177004724000177310ustar00rootroot00000000000000 Ports Port Control_Port Data_Port salome-kernel-6.5.0/idl/SALOME_PyNode.idl000077500000000000000000000042501177004724000177660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_PyNode.idl // Author : Christian CAREMOLI, EDF // $Header: // #ifndef _SALOME_PYNODE_IDL_ #define _SALOME_PYNODE_IDL_ #include "SALOME_GenericObj.idl" #include "SALOME_Exception.idl" /*! \file SALOME_PyNode.idl \brief interface for remote python execution */ /*! \brief This is a package of interfaces used for executing Python code on remote container */ module Engines { typedef sequence pickledArgs; typedef sequence listofstring; interface PyNode : SALOME::GenericObj { /*! \brief execute a python function defined in the node \param functionName the python function defined in the node to execute \param inargs input argument values (tuple,dict) provided as a python pickle \return output argument values (tuple) as a python pickle */ pickledArgs execute(in string functionName,in pickledArgs inargs) raises (SALOME::SALOME_Exception); } ; interface PyScriptNode : SALOME::GenericObj { /*! \brief execute a python script defined in the node \param outargsname output argument names \param inargs input argument values (dict) provided as a python pickle \return output argument values (tuple) as a python pickle */ pickledArgs execute(in listofstring outargsname, in pickledArgs inargs) raises (SALOME::SALOME_Exception); } ; }; #endif salome-kernel-6.5.0/idl/SALOME_Registry.idl000077500000000000000000000045221177004724000204020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Registry.idl // # ifndef __registry_idl__ # define __registry_idl__ /*! \file SALOME_Registry.idl \brief interfaces for %SALOME registry */ /*! \brief module that provides interface to %SALOME registry */ module Registry { //! a struct to collect informations about servers (processes) 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 }; //! a list of informations typedef sequence AllInfos; /*! \brief interface to use %SALOME registry */ interface Components { //! check if registry is running void ping(); //! Get the pid of registry server long getPID(); //! Add one information to the registry unsigned long add ( in Infos lesInfos ) ; //! Remove an information from the registry void remove ( in unsigned long id ) ; //! Get the size of the registry unsigned long size() ; //! Get all informations from registry AllInfos getall () ; //! Get history information from registry AllInfos history () ; //! Stop the registry (hard exit) oneway void end() ; //! Say hello to registry from process id oneway void hello( in unsigned long id ) ; //! Shutdown registry server (CORBA exit) void Shutdown(); } ; } ; # endif salome-kernel-6.5.0/idl/SALOME_RessourcesCatalog.idl000077500000000000000000000055201177004724000222210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_RessourcesCatalog.idl // Author : Estelle Deville // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_RessourcesCatalog.idl,v 1.5.2.1.22.2.12.1 2012-04-12 14:04:58 vsr Exp $ // /*! \file SALOME_RessourcesCatalog.idl \brief interfaces for %SALOME Resources Catalog */ /*! \brief module that provides interface to manage the Resources Catalog of %SALOME */ module SALOME_RessourcesCatalog{ //! Information about a processor struct proc_info{ //! processor number long number; //! model name string model_name; //! frequency in MHz float cpu_mhz; //! cache size in MB float cache_size; }; //! a list of processor informations typedef sequence ListOfProc; //! Information about a computer /*! Os and informations about processors */ struct computer_info{ //! computer name string name; //! OS name string OS; //! OS version string OS_version; //! processors list ListOfProc procs; }; //! Container type enum ContainerType { Cpp, /*!< C++ container */ python, /*!< python container */ NP /*!< NP container */ }; //! a list of container types typedef sequence ListOfContainerType; //! a list of computer names typedef sequence ListOfComputer; //! exception thrown if a computer is not found in the catalog exception NotFound {}; //------------------------------------------------------------------ /*! \brief interface to get information about Resources */ interface RessourcesCatalog { //! Get the catalog computers list ListOfComputer GetComputerList(); //! Get the container types list for a given computer ListOfContainerType GetContainerTypeList (in string computer) raises(NotFound); //! Get computer information for a given computer computer_info GetComputerInfo(in string computer) raises(NotFound); }; }; salome-kernel-6.5.0/idl/SALOME_Session.idl000077500000000000000000000075251177004724000202230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Session.idl // Author : Paul RASCLE, EDF #include "SALOME_Component.idl" /*! \file SALOME_Session.idl \brief file that contains interface of the session */ module SALOME { /*! \brief State of the session This enumeration contains values defining the state of the session */ enum SessionState {asleep, /*!< Session is inactive */ running, /*!< Session is running */ shutdown /*!< Session is shutting down */ } ; /*! \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(); //! Returns a standalone component Engines::EngineComponent GetComponent(in string theLibraryName); //! Stops the %Session (It must be idle) void StopSession() raises(GUIActive, RunningStudies) ; //! Gets Session State StatSession GetStatSession() ; //! Shutdowns Session server void Shutdown(); //! Determines whether the server has already been loaded or not. void ping(); //! Returns the PID of the server long getPID(); //! Returns host name string getHostname(); //! Get Active study ID long GetActiveStudyId(); //! Restores a state of the study at theSavePoint boolean restoreVisualState(in long theSavePoint); //! Send a message to the session GUI desktop that will emit a qt signal /*! This method can be used to send a message to the GUI from the standalone container. Caution: this method can block the Session and the calling container if it is called when container processes some request from the GUI (mutual lock takes place). In such a case it is recommended to use oneway method. */ void emitMessage(in string theMessage); //! same as emitMessage but in a non blocking way /*! Emit a qt signal from the session GUI desktop window. This method can be used to send a message to the GUI from the standalone container. This method never blocks the Session and the calling container. */ oneway void emitMessageOneWay(in string theMessage); } ; } ; salome-kernel-6.5.0/idl/SALOME_TestComponent.idl000077500000000000000000000025501177004724000213730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_TestComponent.idl // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA #include "SALOME_Component.idl" /*! \file SALOME_TestComponent.idl \brief an interface for testing EngineComponent and Container */ module Engines { /*! \brief a component with 2 operations (Coucou and Setenv) */ interface TestComponent : EngineComponent { string Coucou(in long L); void Setenv(); }; }; salome-kernel-6.5.0/idl/SALOME_TestMPIComponent.idl000077500000000000000000000034151177004724000217420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //============================================================================= // File : SALOME_MPITestComponent.idl // Created : mer jui 04 12:08:17 CEST 2003 // Author : Bernard SECHER, CEA // Project : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_TestMPIComponent.idl,v 1.7.2.1.22.3.12.1 2012-04-12 14:04:58 vsr Exp $ //============================================================================= // #include "SALOME_Component.idl" #include "SALOME_MPIObject.idl" /*! \file SALOME_TestMPIComponent.idl \brief interface to test MPIObject and MPIContainer */ module Engines { interface TestMPIComponent : EngineComponent, MPIObject { // version synchrone (process 0) void Coucou(in long L); // version asynchrone (autres process) oneway void SPCoucou(in long L); }; }; salome-kernel-6.5.0/idl/SALOME_TestModuleCatalog.idl000077500000000000000000000036721177004724000221570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_TestModuleCatalog.idl // Author : #ifndef _TestModuleCatalog_IDL #define _TestModuleCatalog_IDL #include "SALOME_Component.idl" /*! \file SALOME_TestModuleCatalog.idl \brief interfaces for %SALOME module catalog test */ /*! \brief module to test SALOME_ModuleCatalog */ module SALOME_TestModuleCatalog { interface Adder ; interface AddComponent : Engines::EngineComponent { // DataStreamPorts Addition istream(INTEGER, in, T), ostream(STRING, out, I) // DataStreamPorts Addition Ostream(FLOAT, out, T) Adder Addition() ; double Add( in double x , in double y , out double z ) ; long Sigma( in long n ) ; double LastResult() ; }; interface Adder : Engines::EngineComponent { double Add( in double x , in double y , out double z ) ; double AddAndCompare( in double x , in double y , in Adder anOtherAdder, out double z ) ; void SetLastResult( in double z ) ; void LastResult( out double z ) ; }; } ; #endif salome-kernel-6.5.0/idl/SALOME_Types.idl000077500000000000000000000021231177004724000176710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_TYPES_IDL__ #define __SALOME_TYPES_IDL__ module SALOME_TYPES { typedef sequence ListOfLong; typedef sequence ListOfDouble; typedef sequence ListOfString; typedef sequence ListOfDouble2; }; #endif salome-kernel-6.5.0/idl/TestNotif.idl000077500000000000000000000023761177004724000174560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : TestNotif.idl // # ifndef __TESTNOTIF_IDL_ # define __TESTNOTIF_IDL_ /*! \file TestNotif.idl \brief for testing notification service */ /* \brief interface to test notification service */ interface Solver { boolean Connect(); oneway void Start() ; oneway void ReStart() ; } ; # endif salome-kernel-6.5.0/idl/TypeData.idl000077500000000000000000000025341177004724000172460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : TypeData.idl // #ifndef _SALOME_TYPEDATA_IDL_ #define _SALOME_TYPEDATA_IDL_ /*! \file TypeData.idl \brief data definition for tests */ 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 salome-kernel-6.5.0/idl/nstest.idl000077500000000000000000000026511177004724000170530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef NSTEST_IDL #define NSTEST_IDL /*! \file nstest.idl \brief interfaces for naming service test */ /*! \brief module with one interface to test naming service */ module NSTEST { /*! \brief small interface for test */ interface echo { /*! \brief operation that returns a long */ long getId(); }; /*! \brief factory interface for test */ interface aFactory { /*! \brief operation that creates a echo %object */ echo createInstance(); }; }; #endif salome-kernel-6.5.0/resources/000077500000000000000000000000001177004724000162745ustar00rootroot00000000000000salome-kernel-6.5.0/resources/CatalogDataType.xml000077500000000000000000000111201177004724000220220ustar00rootroot00000000000000 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 salome-kernel-6.5.0/resources/CatalogModulePersonnel.xml_skel000077500000000000000000000002671177004724000244520ustar00rootroot00000000000000 salome-kernel-6.5.0/resources/CatalogResources.xml.in000077500000000000000000000001511177004724000226700ustar00rootroot00000000000000 salome-kernel-6.5.0/resources/KERNELCatalog.xml.in000077500000000000000000000110321177004724000216760ustar00rootroot00000000000000 KERNEL Salome Other NRI @VERSION@ GUI Neutral Context 1 hostname = muna SalomeTestComponent SalomeTestComponent Other NRI @VERSION@ GUI Neutral Context 1 'linux' ~ OS SALOME_TestComponentPy SALOME_TestComponentPy Other NRI @VERSION@ GUI Neutral Context 1 'linux' ~ OS salome-kernel-6.5.0/resources/Makefile.am000077500000000000000000000035171177004724000203410ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/resources/Makefile.am,v 1.7.32.3.2.1 2012-04-12 14:04:58 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # if WITHONLYLAUNCHER dist_salomeres_DATA=\ CatalogModulePersonnel.xml_skel # VSR: little trick to avoid putting if generated files to the distribution archive nodist_salomeres_DATA=\ CatalogResources.xml else dist_salomeres_DATA=\ CatalogModulePersonnel.xml_skel \ channel.cfg \ SALOMEDS_Resources # VSR: little trick to avoid putting if generated files to the distribution archive nodist_salomeres_DATA=\ CatalogResources.xml \ KERNELCatalog.xml endif EXTRA_DIST = CatalogDataType.xml salome-kernel-6.5.0/resources/Makefile.in000077500000000000000000000570641177004724000203600ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(am__dist_salomeres_DATA_DIST) \ $(srcdir)/CatalogResources.xml.in \ $(srcdir)/KERNELCatalog.xml.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = resources ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = KERNELCatalog.xml CatalogResources.xml CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__dist_salomeres_DATA_DIST = CatalogModulePersonnel.xml_skel \ channel.cfg SALOMEDS_Resources am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomeresdir)" \ "$(DESTDIR)$(salomeresdir)" DATA = $(dist_salomeres_DATA) $(nodist_salomeres_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules @WITHONLYLAUNCHER_FALSE@dist_salomeres_DATA = \ @WITHONLYLAUNCHER_FALSE@ CatalogModulePersonnel.xml_skel \ @WITHONLYLAUNCHER_FALSE@ channel.cfg \ @WITHONLYLAUNCHER_FALSE@ SALOMEDS_Resources # -* Makefile *- # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/resources/Makefile.am,v 1.7.32.3.2.1 2012-04-12 14:04:58 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # @WITHONLYLAUNCHER_TRUE@dist_salomeres_DATA = \ @WITHONLYLAUNCHER_TRUE@ CatalogModulePersonnel.xml_skel @WITHONLYLAUNCHER_FALSE@nodist_salomeres_DATA = \ @WITHONLYLAUNCHER_FALSE@ CatalogResources.xml \ @WITHONLYLAUNCHER_FALSE@ KERNELCatalog.xml @WITHONLYLAUNCHER_TRUE@nodist_salomeres_DATA = \ @WITHONLYLAUNCHER_TRUE@ CatalogResources.xml EXTRA_DIST = CatalogDataType.xml all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu resources/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu resources/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): KERNELCatalog.xml: $(top_builddir)/config.status $(srcdir)/KERNELCatalog.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ CatalogResources.xml: $(top_builddir)/config.status $(srcdir)/CatalogResources.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomeresDATA: $(dist_salomeres_DATA) @$(NORMAL_INSTALL) test -z "$(salomeresdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeresdir)" @list='$(dist_salomeres_DATA)'; test -n "$(salomeresdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeresdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeresdir)" || exit $$?; \ done uninstall-dist_salomeresDATA: @$(NORMAL_UNINSTALL) @list='$(dist_salomeres_DATA)'; test -n "$(salomeresdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeresdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeresdir)" && rm -f $$files install-nodist_salomeresDATA: $(nodist_salomeres_DATA) @$(NORMAL_INSTALL) test -z "$(salomeresdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeresdir)" @list='$(nodist_salomeres_DATA)'; test -n "$(salomeresdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeresdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeresdir)" || exit $$?; \ done uninstall-nodist_salomeresDATA: @$(NORMAL_UNINSTALL) @list='$(nodist_salomeres_DATA)'; test -n "$(salomeresdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeresdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeresdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(salomeresdir)" "$(DESTDIR)$(salomeresdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomeresDATA \ install-nodist_salomeresDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salomeresDATA \ uninstall-nodist_salomeresDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_salomeresDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-nodist_salomeresDATA install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_salomeresDATA uninstall-nodist_salomeresDATA @WITHONLYLAUNCHER_TRUE@ # VSR: little trick to avoid putting if generated files to the distribution archive @WITHONLYLAUNCHER_FALSE@ # VSR: little trick to avoid putting if generated files to the distribution archive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/resources/SALOMEDS_Resources000077500000000000000000000007361177004724000214710ustar00rootroot00000000000000formatlist:SALOME_STUDY SALOME_STUDY.Description: SALOME 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 salome-kernel-6.5.0/resources/channel.cfg000077500000000000000000000235751177004724000204040ustar00rootroot00000000000000# ================================================================= # 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 salome-kernel-6.5.0/salome_adm/000077500000000000000000000000001177004724000163635ustar00rootroot00000000000000salome-kernel-6.5.0/salome_adm/Makefile.am000077500000000000000000000017741177004724000204330ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # SUBDIRS = unix cmake_files AUTOMAKE_OPTIONS=filename-length-max=255 salome-kernel-6.5.0/salome_adm/Makefile.in000077500000000000000000000556221177004724000204450ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = salome_adm DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = unix cmake_files AUTOMAKE_OPTIONS = filename-length-max=255 all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu salome_adm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu salome_adm/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/salome_adm/cmake_files/000077500000000000000000000000001177004724000206255ustar00rootroot00000000000000salome-kernel-6.5.0/salome_adm/cmake_files/FindBOOST.cmake000077500000000000000000000132231177004724000233220ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for boost ...") # ------ IF(BOOST_IS_MANDATORY STREQUAL 0) SET(BOOST_IS_MANDATORY 0) SET(BOOST_IS_OPTIONAL 1) ENDIF(BOOST_IS_MANDATORY STREQUAL 0) IF(BOOST_IS_OPTIONAL STREQUAL 0) SET(BOOST_IS_MANDATORY 1) SET(BOOST_IS_OPTIONAL 0) ENDIF(BOOST_IS_OPTIONAL STREQUAL 0) IF(NOT BOOST_IS_MANDATORY AND NOT BOOST_IS_OPTIONAL) SET(BOOST_IS_MANDATORY 1) SET(BOOST_IS_OPTIONAL 0) ENDIF(NOT BOOST_IS_MANDATORY AND NOT BOOST_IS_OPTIONAL) # ------ SET(BOOST_STATUS 1) IF(WITHOUT_BOOST OR WITH_BOOST STREQUAL 0) SET(BOOST_STATUS 0) MESSAGE(STATUS "boost disabled from command line.") ENDIF(WITHOUT_BOOST OR WITH_BOOST STREQUAL 0) # ------ IF(BOOST_STATUS) IF(WITH_BOOST) SET(BOOST_ROOT_USER ${WITH_BOOST}) ELSE(WITH_BOOST) SET(BOOST_ROOT_USER $ENV{BOOST_ROOT}) IF(NOT BOOST_ROOT_USER) SET(BOOST_ROOT_USER $ENV{BOOSTDIR}) ENDIF(NOT BOOST_ROOT_USER) ENDIF(WITH_BOOST) ENDIF(BOOST_STATUS) # ----- IF(BOOST_STATUS) IF(BOOST_ROOT_USER) SET(BOOST_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(BOOST_ROOT_USER) SET(BOOST_FIND_PATHS_OPTION) ENDIF(BOOST_ROOT_USER) ENDIF(BOOST_STATUS) # ----- IF(BOOST_STATUS) IF(BOOST_ROOT_USER) SET(BOOST_INCLUDE_PATHS ${BOOST_ROOT_USER} ${BOOST_ROOT_USER}/include) ELSE(BOOST_ROOT_USER) SET(BOOST_INCLUDE_PATHS) ENDIF(BOOST_ROOT_USER) SET(BOOST_INCLUDE_TO_FIND boost/shared_ptr.hpp) FIND_PATH(BOOST_INCLUDE_DIR ${BOOST_INCLUDE_TO_FIND} PATHS ${BOOST_INCLUDE_PATHS} ${BOOST_FIND_PATHS_OPTION}) IF(BOOST_INCLUDE_DIR) IF(BOOST_ROOT_USER) SET(BOOST_CPPFLAGS -I${BOOST_INCLUDE_DIR})# to be removed SET(BOOST_INCLUDES_DIR ${BOOST_INCLUDE_DIR}) ENDIF(BOOST_ROOT_USER) MESSAGE(STATUS "${BOOST_INCLUDE_TO_FIND} found in ${BOOST_INCLUDE_DIR}") ELSE(BOOST_INCLUDE_DIR) SET(BOOST_STATUS 0) IF(BOOST_ROOT_USER) MESSAGE(STATUS "${BOOST_INCLUDE_TO_FIND} not found in ${BOOST_INCLUDE_PATHS}, check your BOOST installation.") ELSE(BOOST_ROOT_USER) MESSAGE(STATUS "${BOOST_INCLUDE_TO_FIND} not found on system, try to use WITH_BOOST option or BOOST_ROOT environment variable.") ENDIF(BOOST_ROOT_USER) ENDIF(BOOST_INCLUDE_DIR) ENDIF(BOOST_STATUS) # ---- IF(BOOST_STATUS) IF(BOOST_ROOT_USER) SET(BOOST_LIB_PATHS ${BOOST_ROOT_USER}/lib) ELSE(BOOST_ROOT_USER) SET(BOOST_LIB_PATHS) ENDIF(BOOST_ROOT_USER) ENDIF(BOOST_STATUS) IF(WINDOWS) SET(BOOST_ENABLE_DLL 1) ELSE(WINDOWS) SET(BOOST_ENABLE_DLL 0) ENDIF(WINDOWS) IF(BOOST_STATUS) SET(BOOST_LIBS) FOREACH(name thread date_time signals filesystem system regex) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Debug) SET(EXTENSION -gd) ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) SET(EXTENSION) ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) SET(LIB_NAMES) SET(STATIC_LIB_NAMES) FOREACH(version 1_35 1_38 1_42 1_46_1 1_49) SET(LIB_NAMES ${LIB_NAMES} boost_${name}-vc90-mt${EXTENSION}-${version}) SET(STATIC_LIB_NAMES ${STATIC_LIB_NAMES} libboost_${name}-vc90-mt${EXTENSION}-${version}) ENDFOREACH(version 1_35 1_38 1_42 1_46_1 1_49) FIND_LIBRARY(BOOST_LIB_${name} NAMES ${LIB_NAMES} PATHS ${BOOST_LIB_PATHS} ${BOOST_FIND_PATHS_OPTION}) SET(BOOST_LIB_${name}_FOUNDED ${BOOST_LIB_${name}}) IF(NOT BOOST_LIB_${name}) FIND_LIBRARY(STATIC_BOOST_LIB_${name} NAMES ${STATIC_LIB_NAMES} PATHS ${BOOST_LIB_PATHS} ${BOOST_FIND_PATHS_OPTION}) SET(BOOST_LIB_${name}_FOUNDED ${STATIC_BOOST_LIB_${name}}) SET(BOOST_ENABLE_DLL 0) ENDIF(NOT BOOST_LIB_${name}) ELSE(WINDOWS) FIND_LIBRARY(BOOST_LIB_${name} NAMES boost_${name} boost_${name}-mt PATHS ${BOOST_LIB_PATHS} ${BOOST_FIND_PATHS_OPTION}) SET(BOOST_LIB_${name}_FOUNDED ${BOOST_LIB_${name}}) ENDIF(WINDOWS) IF(NOT BOOST_LIB_${name}_FOUNDED) MESSAGE(STATUS "boost lib ${name} not found") SET(BOOST_STATUS 0) ENDIF(NOT BOOST_LIB_${name}_FOUNDED) STRING(TOUPPER ${name} upname) SET(BOOST_LIB_${upname} ${BOOST_LIB_${name}_FOUNDED}) SET(BOOST_LIBS ${BOOST_LIBS} ${BOOST_LIB_${name}_FOUNDED}) ENDFOREACH(name thread date_time signals filesystem system) ENDIF(BOOST_STATUS) # ------ IF(BOOST_STATUS) IF(WINDOWS) SET(BOOST_CPPFLAGS ${BOOST_CPPFLAGS} -DBOOST_DISABLE_ASSERTS)# to be removed SET(BOOST_FLAGS -DBOOST_DISABLE_ASSERTS) IF(BOOST_ENABLE_DLL) SET(BOOST_CPPFLAGS ${BOOST_CPPFLAGS} -DBOOST_ALL_DYN_LINK)# to be removed SET(BOOST_FLAGS -DBOOST_ALL_DYN_LINK) ENDIF(BOOST_ENABLE_DLL) ENDIF(WINDOWS) ELSE(BOOST_STATUS) IF(BOOST_IS_MANDATORY) MESSAGE(FATAL_ERROR "boost not found ... mandatory ... abort") ELSE(BOOST_IS_MANDATORY) MESSAGE(STATUS "boost not found ... optional ... disabled") ENDIF(BOOST_IS_MANDATORY) ENDIF(BOOST_STATUS) # ------ salome-kernel-6.5.0/salome_adm/cmake_files/FindCPPUNIT.cmake000077500000000000000000000120141177004724000235530ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for cppunit ...") # ------ IF(CPPUNIT_IS_MANDATORY STREQUAL 0) SET(CPPUNIT_IS_MANDATORY 0) SET(CPPUNIT_IS_OPTIONAL 1) ENDIF(CPPUNIT_IS_MANDATORY STREQUAL 0) IF(CPPUNIT_IS_OPTIONAL STREQUAL 0) SET(CPPUNIT_IS_MANDATORY 1) SET(CPPUNIT_IS_OPTIONAL 0) ENDIF(CPPUNIT_IS_OPTIONAL STREQUAL 0) IF(NOT CPPUNIT_IS_MANDATORY AND NOT CPPUNIT_IS_OPTIONAL) SET(CPPUNIT_IS_MANDATORY 0) SET(CPPUNIT_IS_OPTIONAL 1) ENDIF(NOT CPPUNIT_IS_MANDATORY AND NOT CPPUNIT_IS_OPTIONAL) # ------ SET(CPPUNIT_STATUS 1) IF(WITHOUT_CPPUNIT OR WITH_CPPUNIT STREQUAL 0) SET(CPPUNIT_STATUS 0) MESSAGE(STATUS "cppunit disabled from command line.") ENDIF(WITHOUT_CPPUNIT OR WITH_CPPUNIT STREQUAL 0) # ------ IF(CPPUNIT_STATUS) IF(WITH_CPPUNIT) SET(CPPUNIT_ROOT_USER ${WITH_CPPUNIT}) ELSE(WITH_CPPUNIT) SET(CPPUNIT_ROOT_USER $ENV{CPPUNIT_ROOT}) ENDIF(WITH_CPPUNIT) ENDIF(CPPUNIT_STATUS) # ----- IF(CPPUNIT_STATUS) IF(CPPUNIT_ROOT_USER) SET(CPPUNIT_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(CPPUNIT_ROOT_USER) SET(CPPUNIT_FIND_PATHS_OPTION) ENDIF(CPPUNIT_ROOT_USER) ENDIF(CPPUNIT_STATUS) # ----- IF(CPPUNIT_STATUS) IF(CPPUNIT_ROOT_USER) SET(CPPUNIT_INCLUDE_PATHS ${CPPUNIT_ROOT_USER} ${CPPUNIT_ROOT_USER}/include) ELSE(CPPUNIT_ROOT_USER) SET(CPPUNIT_INCLUDE_PATHS) ENDIF(CPPUNIT_ROOT_USER) SET(CPPUNIT_INCLUDE_TO_FIND cppunit/extensions/HelperMacros.h) FIND_PATH(CPPUNIT_INCLUDE_DIR ${CPPUNIT_INCLUDE_TO_FIND} PATHS ${CPPUNIT_INCLUDE_PATHS} ${CPPUNIT_FIND_PATHS_OPTION}) IF(CPPUNIT_INCLUDE_DIR) IF(CPPUNIT_ROOT_USER) SET(CPPUNIT_INCLUDES -I${CPPUNIT_INCLUDE_DIR})# to be removed IF(${CPPUNIT_INCLUDE_DIR} STREQUAL /usr/include) SET(CPPUNIT_INCLUDES_DIR) ELSE(${CPPUNIT_INCLUDE_DIR} STREQUAL /usr/include) SET(CPPUNIT_INCLUDES_DIR ${CPPUNIT_INCLUDE_DIR}) ENDIF(${CPPUNIT_INCLUDE_DIR} STREQUAL /usr/include) ENDIF(CPPUNIT_ROOT_USER) MESSAGE(STATUS "${CPPUNIT_INCLUDE_TO_FIND} found in ${CPPUNIT_INCLUDE_DIR}") ELSE(CPPUNIT_INCLUDE_DIR) SET(CPPUNIT_STATUS 0) IF(CPPUNIT_ROOT_USER) MESSAGE(STATUS "${CPPUNIT_INCLUDE_TO_FIND} not found in ${CPPUNIT_INCLUDE_PATHS}, check your CPPUNIT installation.") ELSE(CPPUNIT_ROOT_USER) MESSAGE(STATUS "${CPPUNIT_INCLUDE_TO_FIND} not found on system, try to use WITH_CPPUNIT option or CPPUNIT_ROOT environment variable.") ENDIF(CPPUNIT_ROOT_USER) ENDIF(CPPUNIT_INCLUDE_DIR) ENDIF(CPPUNIT_STATUS) # ---- IF(CPPUNIT_STATUS) IF(CPPUNIT_ROOT_USER) SET(CPPUNIT_LIB_PATHS ${CPPUNIT_ROOT_USER}/lib) ELSE(CPPUNIT_ROOT_USER) SET(CPPUNIT_LIB_PATHS) ENDIF(CPPUNIT_ROOT_USER) ENDIF(CPPUNIT_STATUS) IF(CPPUNIT_STATUS) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Debug) FIND_LIBRARY(CPPUNIT_LIB cppunitd_dll PATHS ${CPPUNIT_LIB_PATHS} ${CPPUNIT_FIND_PATHS_OPTION}) ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) FIND_LIBRARY(CPPUNIT_LIB cppunit_dll PATHS ${CPPUNIT_LIB_PATHS} ${CPPUNIT_FIND_PATHS_OPTION}) ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) ELSE(WINDOWS) FIND_LIBRARY(CPPUNIT_LIB cppunit PATHS ${CPPUNIT_LIB_PATHS} ${CPPUNIT_FIND_PATHS_OPTION}) ENDIF(WINDOWS) SET(CPPUNIT_LIBS) IF(CPPUNIT_LIB) SET(CPPUNIT_LIBS ${CPPUNIT_LIBS} ${CPPUNIT_LIB}) MESSAGE(STATUS "cppunit lib found: ${CPPUNIT_LIB}") ELSE(CPPUNIT_LIB) SET(CPPUNIT_STATUS 0) IF(CPPUNIT_ROOT_USER) MESSAGE(STATUS "cppunit lib not found in ${CPPUNIT_LIB_PATHS}, check your CPPUNIT installation.") ELSE(CPPUNIT_ROOT_USER) MESSAGE(STATUS "cppunit lib not found on system, try to use WITH_CPPUNIT option or CPPUNIT_ROOT environment variable.") ENDIF(CPPUNIT_ROOT_USER) ENDIF(CPPUNIT_LIB) ENDIF(CPPUNIT_STATUS) # ---- IF(CPPUNIT_STATUS) SET(CPPUNIT_IS_OK 1) SET(CPPUNIT_FLAGS) IF(WINDOWS) SET(CPPUNIT_INCLUDES ${CPPUNIT_INCLUDES} -DCPPUNIT_DLL) SET(CPPUNIT_FLAGS "-DCPPUNIT_DLL") ENDIF(WINDOWS) ELSE(CPPUNIT_STATUS) IF(CPPUNIT_IS_MANDATORY) MESSAGE(FATAL_ERROR "cppunit not found ... mandatory ... abort") ELSE(CPPUNIT_IS_MANDATORY) MESSAGE(STATUS "cppunit not found ... optional ... disabled") ENDIF(CPPUNIT_IS_MANDATORY) ENDIF(CPPUNIT_STATUS) # ------ salome-kernel-6.5.0/salome_adm/cmake_files/FindDOXYGEN.cmake000077500000000000000000000057431177004724000235610ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for doxygen ...") # ------ IF(DOXYGEN_IS_MANDATORY STREQUAL 0) SET(DOXYGEN_IS_MANDATORY 0) SET(DOXYGEN_IS_OPTIONAL 1) ENDIF(DOXYGEN_IS_MANDATORY STREQUAL 0) IF(DOXYGEN_IS_OPTIONAL STREQUAL 0) SET(DOXYGEN_IS_MANDATORY 1) SET(DOXYGEN_IS_OPTIONAL 0) ENDIF(DOXYGEN_IS_OPTIONAL STREQUAL 0) IF(NOT DOXYGEN_IS_MANDATORY AND NOT DOXYGEN_IS_OPTIONAL) SET(DOXYGEN_IS_MANDATORY 0) SET(DOXYGEN_IS_OPTIONAL 1) ENDIF(NOT DOXYGEN_IS_MANDATORY AND NOT DOXYGEN_IS_OPTIONAL) # ------ SET(DOXYGEN_STATUS 1) IF(WITHOUT_DOXYGEN OR WITH_DOXYGEN STREQUAL 0) SET(DOXYGEN_STATUS 0) MESSAGE(STATUS "doxygen disabled from command line.") ENDIF(WITHOUT_DOXYGEN OR WITH_DOXYGEN STREQUAL 0) # ------ IF(DOXYGEN_STATUS) IF(WITH_DOXYGEN) SET(DOXYGEN_ROOT_USER ${WITH_DOXYGEN}) ENDIF(WITH_DOXYGEN) IF(NOT DOXYGEN_ROOT_USER) SET(DOXYGEN_ROOT_USER $ENV{DOXYGEN_ROOT}) ENDIF(NOT DOXYGEN_ROOT_USER) IF(NOT DOXYGEN_ROOT_USER) SET(DOXYGEN_ROOT_USER $ENV{DOXYGENHOME}) ENDIF(NOT DOXYGEN_ROOT_USER) ENDIF(DOXYGEN_STATUS) # ------ IF(DOXYGEN_STATUS) SET(DOXYGEN_EXECUTABLE_TO_FIND doxygen) IF(DOXYGEN_ROOT_USER) FIND_PROGRAM(DOXYGEN_EXECUTABLE ${DOXYGEN_EXECUTABLE_TO_FIND} PATHS ${DOXYGEN_ROOT_USER}/bin NO_DEFAULT_PATH) ELSE(DOXYGEN_ROOT_USER) FIND_PROGRAM(DOXYGEN_EXECUTABLE ${DOXYGEN_EXECUTABLE_TO_FIND}) ENDIF(DOXYGEN_ROOT_USER) IF(DOXYGEN_EXECUTABLE) MESSAGE(STATUS "${DOXYGEN_EXECUTABLE_TO_FIND} found: ${DOXYGEN_EXECUTABLE}") ELSE(DOXYGEN_EXECUTABLE) MESSAGE(STATUS "${DOXYGEN_EXECUTABLE_TO_FIND} not found, try to use WITH_DOXYGEN option or DOXYGEN_ROOT (or DOXYGENHOME) environment variable") SET(DOXYGEN_STATUS 0) ENDIF(DOXYGEN_EXECUTABLE) ENDIF(DOXYGEN_STATUS) # ---- IF(DOXYGEN_STATUS) SET(DOXYGEN_IS_OK 1) ELSE(DOXYGEN_STATUS) SET(DOXYGEN_IS_OK 0) IF(DOXYGEN_IS_MANDATORY) MESSAGE(FATAL_ERROR "doxygen not found ... mandatory ... abort") ELSE(DOXYGEN_IS_MANDATORY) MESSAGE(STATUS "doxygen not found ... optional ... disabled") ENDIF(DOXYGEN_IS_MANDATORY) ENDIF(DOXYGEN_STATUS) # ---- salome-kernel-6.5.0/salome_adm/cmake_files/FindHDF5.cmake000077500000000000000000000162631177004724000231310ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for hdf5 ...") # ------ IF(HDF5_IS_MANDATORY STREQUAL 0) SET(HDF5_IS_MANDATORY 0) SET(HDF5_IS_OPTIONAL 1) ENDIF(HDF5_IS_MANDATORY STREQUAL 0) IF(HDF5_IS_OPTIONAL STREQUAL 0) SET(HDF5_IS_MANDATORY 1) SET(HDF5_IS_OPTIONAL 0) ENDIF(HDF5_IS_OPTIONAL STREQUAL 0) IF(NOT HDF5_IS_MANDATORY AND NOT HDF5_IS_OPTIONAL) SET(HDF5_IS_MANDATORY 1) SET(HDF5_IS_OPTIONAL 0) ENDIF(NOT HDF5_IS_MANDATORY AND NOT HDF5_IS_OPTIONAL) # ------ SET(HDF5_STATUS 1) IF(WITHOUT_HDF5 OR WITH_HDF5 STREQUAL 0) SET(HDF5_STATUS 0) MESSAGE(STATUS "hdf5 disabled from command line.") ENDIF(WITHOUT_HDF5 OR WITH_HDF5 STREQUAL 0) # ------ IF(HDF5_STATUS) IF(WITH_HDF5) SET(HDF5_ROOT_USER ${WITH_HDF5}) ENDIF(WITH_HDF5) IF(NOT HDF5_ROOT_USER) SET(HDF5_ROOT_USER $ENV{HDF5_ROOT}) ENDIF(NOT HDF5_ROOT_USER) IF(NOT HDF5_ROOT_USER) SET(HDF5_ROOT_USER $ENV{HDF5HOME}) ENDIF(NOT HDF5_ROOT_USER) ENDIF(HDF5_STATUS) # ------ IF(HDF5_STATUS) IF(NOT HDF5_ROOT_USER) FIND_PROGRAM(HDF5_DUMP h5dump) IF(HDF5_DUMP) MESSAGE(STATUS "h5dump found: ${HDF5_DUMP}") IF(HDF5_DUMP STREQUAL /usr/bin/h5dump) ELSE(HDF5_DUMP STREQUAL /usr/bin/h5dump) SET(HDF5_ROOT_USER ${HDF5_DUMP}) GET_FILENAME_COMPONENT(HDF5_ROOT_USER ${HDF5_ROOT_USER} PATH) GET_FILENAME_COMPONENT(HDF5_ROOT_USER ${HDF5_ROOT_USER} PATH) ENDIF(HDF5_DUMP STREQUAL /usr/bin/h5dump) ELSE(HDF5_DUMP) MESSAGE(STATUS "h5dump not found, try to use WITH_HDF5 option or HDF5_ROOT (or HDF5HOME) environment variable") SET(HDF5_STATUS 0) ENDIF(HDF5_DUMP) ENDIF(NOT HDF5_ROOT_USER) ENDIF(HDF5_STATUS) # ------ IF(HDF5_STATUS) IF(HDF5_ROOT_USER) SET(HDF5_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(HDF5_ROOT_USER) SET(HDF5_FIND_PATHS_OPTION) ENDIF(HDF5_ROOT_USER) ENDIF(HDF5_STATUS) # ------ IF(HDF5_STATUS) IF(HDF5_ROOT_USER) SET(HDF5_INCLUDE_PATHS ${HDF5_ROOT_USER}/include) ELSE(HDF5_ROOT_USER) SET(HDF5_INCLUDE_PATHS) ENDIF(HDF5_ROOT_USER) SET(HDF5_INCLUDE_TO_FIND H5public.h) FIND_PATH(HDF5_INCLUDE_DIR ${HDF5_INCLUDE_TO_FIND} PATHS ${HDF5_INCLUDE_PATHS} ${HDF5_FIND_PATHS_OPTION}) IF(HDF5_INCLUDE_DIR) IF(HDF5_ROOT_USER) SET(HDF5_INCLUDES -I${HDF5_INCLUDE_DIR})# to be removed IF(${HDF5_INCLUDE_DIR} STREQUAL /usr/include) SET(HDF5_INCLUDES_DIR) ELSE(${HDF5_INCLUDE_DIR} STREQUAL /usr/include) SET(HDF5_INCLUDES_DIR ${HDF5_INCLUDE_DIR}) ENDIF(${HDF5_INCLUDE_DIR} STREQUAL /usr/include) ENDIF(HDF5_ROOT_USER) SET(HDF5_FLAGS "-DH5_USE_16_API -D_HDF5USEDLL_") SET(HDF5_INCLUDES -DH5_USE_16_API -D_HDF5USEDLL_ ${HDF5_INCLUDES})# to be removed MESSAGE(STATUS "${HDF5_INCLUDE_TO_FIND} found in ${HDF5_INCLUDE_DIR}") ELSE(HDF5_INCLUDE_DIR) SET(HDF5_STATUS 0) IF(HDF5_ROOT_USER) MESSAGE(STATUS "${HDF5_INCLUDE_TO_FIND} not found in ${HDF5_INCLUDE_PATHS}, check your HDF5 installation.") ELSE(HDF5_ROOT_USER) MESSAGE(STATUS "${HDF5_INCLUDE_TO_FIND} not found on system, try to use WITH_HDF5 option or HDF5_ROOT (or HDF5HOME) environment variable.") ENDIF(HDF5_ROOT_USER) ENDIF(HDF5_INCLUDE_DIR) ENDIF(HDF5_STATUS) # ---- IF(HDF5_STATUS) IF(HDF5_ROOT_USER) IF(WINDOWS) SET(HDF5_LIB_PATHS ${HDF5_ROOT_USER}/dll ${HDF5_ROOT_USER}/lib) ELSE(WINDOWS) SET(HDF5_LIB_PATHS ${HDF5_ROOT_USER}/lib) ENDIF(WINDOWS) ELSE(HDF5_ROOT_USER) SET(HDF5_LIB_PATHS) ENDIF(HDF5_ROOT_USER) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) FIND_LIBRARY(HDF5_LIB hdf5dll PATHS ${HDF5_LIB_PATHS} ${HDF5_FIND_PATHS_OPTION}) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) FIND_LIBRARY(HDF5_LIB hdf5ddll PATHS ${HDF5_LIB_PATHS} ${HDF5_FIND_PATHS_OPTION}) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) FIND_LIBRARY(HDF5_LIB hdf5 PATHS ${HDF5_LIB_PATHS} ${HDF5_FIND_PATHS_OPTION}) ENDIF(WINDOWS) SET(HDF5_LIBS) IF(HDF5_LIB) SET(HDF5_LIBS ${HDF5_LIBS} ${HDF5_LIB}) MESSAGE(STATUS "hdf5 lib found: ${HDF5_LIB}") ELSE(HDF5_LIB) SET(HDF5_STATUS 0) IF(HDF5_ROOT_USER) MESSAGE(STATUS "hdf5 lib not found in ${HDF5_LIB_PATHS}, check your HDF5 installation.") ELSE(HDF5_ROOT_USER) MESSAGE(STATUS "hdf5 lib not found on system, try to use WITH_HDF5 option or HDF5_ROOT (or HDF5HOME) environment variable.") ENDIF(HDF5_ROOT_USER) ENDIF(HDF5_LIB) ENDIF(HDF5_STATUS) IF(HDF5_STATUS) FILE(TO_NATIVE_PATH "${HDF5_INCLUDE_DIR}/H5public.h" HDF5_H5PUBLIC_FILE) EXECUTE_PROCESS( COMMAND ${PYTHON_EXECUTABLE} -c "import re,sys ; f=file(sys.argv[1]) ; s=f.read() ; c=re.compile('^#[\\s]*include[\\s]*\\\"(?P[A-Za-z0-9\\-]+\\.h)\\\"',re.M) ; sys.stdout.write(c.search(s).group('nm'))" ${HDF5_H5PUBLIC_FILE} OUTPUT_VARIABLE HDF5_H5PUBLIC_DEFS_FILE ) FILE(TO_NATIVE_PATH "${HDF5_INCLUDE_DIR}/${HDF5_H5PUBLIC_DEFS_FILE}" HDF5_H5PUBLIC_DEFS_FILE) EXECUTE_PROCESS( COMMAND ${PYTHON_EXECUTABLE} -c "import re,sys ; f=file(sys.argv[1]) ; s=f.read() ; c=re.compile('^#[\\s]*define[\\s]+H5_HAVE_PARALLEL[\\s]+(?P[\\d]+)',re.M) ; m=c.search(s); exec('if m: sys.stdout.write(m.group(\\'nm\\'))') ; exec('if not m: sys.stdout.write(\\'0\\')')" ${HDF5_H5PUBLIC_DEFS_FILE} OUTPUT_VARIABLE HDF5_HAVE_PARALLEL ) IF(HDF5_HAVE_PARALLEL) MESSAGE(STATUS "hdf5 is parallel") SET(HDF5_INCLUDES ${HDF5_INCLUDES} -I${MPI_INCLUDES_DIR}) # to remove after "cmakeization" SET(HDF5_INCLUDES_DIR ${HDF5_INCLUDES_DIR} ${MPI_INCLUDES_DIR}) SET(HDF5_FLAGS "${HDF5_FLAGS} ${MPI_FLAGS}") SET(HDF5_LIBS ${HDF5_LIBS} ${MPI_LIBS}) ENDIF(HDF5_HAVE_PARALLEL) ENDIF(HDF5_STATUS) # ---- IF(HDF5_STATUS) SET(HDF5_CPPFLAGS ${HDF5_INCLUDES})# to be removed ELSE(HDF5_STATUS) IF(HDF5_IS_MANDATORY) MESSAGE(FATAL_ERROR "hdf5 not found ... mandatory ... abort") ELSE(HDF5_IS_MANDATORY) MESSAGE(STATUS "hdf5 not found ... optional ... disabled") ENDIF(HDF5_IS_MANDATORY) ENDIF(HDF5_STATUS) # ------ #SET(ZLIB_ROOT $ENV{ZLIB_ROOT}) #STRING(LENGTH "${ZLIB_ROOT}" NB) #IF(${NB} GREATER 0) # FIND_LIBRARY(ZLIB_LIBS zlib ${ZLIB_ROOT}/lib) # SET(HDF5_LIBS ${HDF5_LIBS} ${ZLIB_LIBS}) #ENDIF(${NB} GREATER 0) #SET(SZIP_ROOT $ENV{SZIP_ROOT}) #STRING(LENGTH "${SZIP_ROOT}" NB) #IF(${NB} GREATER 0) # FIND_LIBRARY(SZIP_LIBS szlib ${SZIP_ROOT}/lib) # SET(HDF5_LIBS ${HDF5_LIBS} ${SZIP_LIBS}) #ENDIF(${NB} GREATER 0) # ------ salome-kernel-6.5.0/salome_adm/cmake_files/FindKERNEL.cmake000077500000000000000000000100631177004724000234130ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # SET(KERNEL_CXXFLAGS -I${KERNEL_ROOT_DIR}/include/salome) # to be removed SET(KERNEL_INCLUDES_DIR ${KERNEL_ROOT_DIR}/include/salome) FIND_LIBRARY(CalciumC CalciumC ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(DF DF ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(Launcher Launcher ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(LifeCycleCORBATest LifeCycleCORBATest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(NamingServiceTest NamingServiceTest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(OpUtil OpUtil ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(Registry Registry ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(ResourcesManager ResourcesManager ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SALOMEBasics SALOMEBasics ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeCatalog SalomeCatalog ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeCommunication SalomeCommunication ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeContainer SalomeContainer ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDatastream SalomeDatastream ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDSCContainer SalomeDSCContainer ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDSClient SalomeDSClient ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDSCSupervBasic SalomeDSCSupervBasic ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDSCSuperv SalomeDSCSuperv ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDSImpl SalomeDSImpl ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SALOMEDSImplTest SALOMEDSImplTest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeDS SalomeDS ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SALOMEDSTest SALOMEDSTest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeGenericObj SalomeGenericObj ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeHDFPersist SalomeHDFPersist ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeIDLKernel SalomeIDLKernel ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeLauncher SalomeLauncher ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeLifeCycleCORBA SalomeLifeCycleCORBA ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SALOMELocalTrace SALOMELocalTrace ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SALOMELocalTraceTest SALOMELocalTraceTest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeLoggerServer SalomeLoggerServer ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeMPIContainer SalomeMPIContainer ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeNotification SalomeNotification ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeNS SalomeNS ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeResourcesManager SalomeResourcesManager ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeTestComponentEngine SalomeTestComponentEngine ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeTestMPIComponentEngine SalomeTestMPIComponentEngine ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SALOMETraceCollectorTest SALOMETraceCollectorTest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(TOOLSDS TOOLSDS ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(UtilsTest UtilsTest ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(with_loggerTraceCollector with_loggerTraceCollector ${KERNEL_ROOT_DIR}/lib/salome) FIND_LIBRARY(SalomeKernelHelpers SalomeKernelHelpers ${KERNEL_ROOT_DIR}/lib/salome) salome-kernel-6.5.0/salome_adm/cmake_files/FindLIBBATCH.cmake000077500000000000000000000107641177004724000236130ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for libbatch ...") # ------ IF(LIBBATCH_IS_MANDATORY STREQUAL 0) SET(LIBBATCH_IS_MANDATORY 0) SET(LIBBATCH_IS_OPTIONAL 1) ENDIF(LIBBATCH_IS_MANDATORY STREQUAL 0) IF(LIBBATCH_IS_OPTIONAL STREQUAL 0) SET(LIBBATCH_IS_MANDATORY 1) SET(LIBBATCH_IS_OPTIONAL 0) ENDIF(LIBBATCH_IS_OPTIONAL STREQUAL 0) IF(NOT LIBBATCH_IS_MANDATORY AND NOT LIBBATCH_IS_OPTIONAL) SET(LIBBATCH_IS_MANDATORY 0) SET(LIBBATCH_IS_OPTIONAL 1) ENDIF(NOT LIBBATCH_IS_MANDATORY AND NOT LIBBATCH_IS_OPTIONAL) # ------ SET(LIBBATCH_STATUS 1) IF(WITHOUT_LIBBATCH OR WITH_LIBBATCH STREQUAL 0) SET(LIBBATCH_STATUS 0) MESSAGE(STATUS "libbatch disabled from command line.") ENDIF(WITHOUT_LIBBATCH OR WITH_LIBBATCH STREQUAL 0) # ------ IF(LIBBATCH_STATUS) IF(WITH_LIBBATCH) SET(LIBBATCH_ROOT_USER ${WITH_LIBBATCH}) ELSE(WITH_LIBBATCH) SET(LIBBATCH_ROOT_USER $ENV{LIBBATCH_ROOT_DIR}) ENDIF(WITH_LIBBATCH) ENDIF(LIBBATCH_STATUS) # ----- IF(LIBBATCH_STATUS) IF(LIBBATCH_ROOT_USER) SET(LIBBATCH_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(LIBBATCH_ROOT_USER) SET(LIBBATCH_FIND_PATHS_OPTION) ENDIF(LIBBATCH_ROOT_USER) ENDIF(LIBBATCH_STATUS) # ----- IF(LIBBATCH_STATUS) IF(LIBBATCH_ROOT_USER) SET(LIBBATCH_INCLUDE_PATHS ${LIBBATCH_ROOT_USER} ${LIBBATCH_ROOT_USER}/include) ELSE(LIBBATCH_ROOT_USER) SET(LIBBATCH_INCLUDE_PATHS) ENDIF(LIBBATCH_ROOT_USER) SET(LIBBATCH_INCLUDE_TO_FIND Batch/Batch_BatchManager.hxx) FIND_PATH(LIBBATCH_INCLUDE_DIR ${LIBBATCH_INCLUDE_TO_FIND} PATHS ${LIBBATCH_INCLUDE_PATHS} ${LIBBATCH_FIND_PATHS_OPTION}) IF(LIBBATCH_INCLUDE_DIR) IF(LIBBATCH_ROOT_USER) SET(LIBBATCH_INCLUDES -I${LIBBATCH_INCLUDE_DIR}) ENDIF(LIBBATCH_ROOT_USER) MESSAGE(STATUS "${LIBBATCH_INCLUDE_TO_FIND} found in ${LIBBATCH_INCLUDE_DIR}") ELSE(LIBBATCH_INCLUDE_DIR) SET(LIBBATCH_STATUS 0) IF(LIBBATCH_ROOT_USER) MESSAGE(STATUS "${LIBBATCH_INCLUDE_TO_FIND} not found in ${LIBBATCH_INCLUDE_PATHS}, check your LIBBATCH installation.") ELSE(LIBBATCH_ROOT_USER) MESSAGE(STATUS "${LIBBATCH_INCLUDE_TO_FIND} not found on system, try to use WITH_LIBBATCH option or LIBBATCH_ROOT environment variable.") ENDIF(LIBBATCH_ROOT_USER) ENDIF(LIBBATCH_INCLUDE_DIR) ENDIF(LIBBATCH_STATUS) # ---- IF(LIBBATCH_STATUS) IF(LIBBATCH_ROOT_USER) SET(LIBBATCH_LIB_PATHS ${LIBBATCH_ROOT_USER}/lib) ELSE(LIBBATCH_ROOT_USER) SET(LIBBATCH_LIB_PATHS) ENDIF(LIBBATCH_ROOT_USER) ENDIF(LIBBATCH_STATUS) IF(LIBBATCH_STATUS) IF(WINDOWS) FIND_LIBRARY(LIBBATCH_LIB Batch PATHS ${LIBBATCH_LIB_PATHS} ${LIBBATCH_FIND_PATHS_OPTION}) ELSE(WINDOWS) FIND_LIBRARY(LIBBATCH_LIB Batch PATHS ${LIBBATCH_LIB_PATHS} ${LIBBATCH_FIND_PATHS_OPTION}) ENDIF(WINDOWS) SET(LIBBATCH_LIBS) IF(LIBBATCH_LIB) SET(LIBBATCH_LIBS ${LIBBATCH_LIBS} ${LIBBATCH_LIB}) MESSAGE(STATUS "libbatch lib found: ${LIBBATCH_LIB}") ELSE(LIBBATCH_LIB) SET(LIBBATCH_STATUS 0) IF(LIBBATCH_ROOT_USER) MESSAGE(STATUS "libbatch lib not found in ${LIBBATCH_LIB_PATHS}, check your LIBBATCH installation.") ELSE(LIBBATCH_ROOT_USER) MESSAGE(STATUS "libbatch lib not found on system, try to use WITH_LIBBATCH option or LIBBATCH_ROOT environment variable.") ENDIF(LIBBATCH_ROOT_USER) ENDIF(LIBBATCH_LIB) ENDIF(LIBBATCH_STATUS) # ---- IF(LIBBATCH_STATUS) SET(WITH_LIBBATCH 1) ELSE(LIBBATCH_STATUS) IF(LIBBATCH_IS_MANDATORY) MESSAGE(FATAL_ERROR "libbatch not found ... mandatory ... abort") ELSE(LIBBATCH_IS_MANDATORY) MESSAGE(STATUS "libbatch not found ... optional ... disabled") ENDIF(LIBBATCH_IS_MANDATORY) ENDIF(LIBBATCH_STATUS) # ------ salome-kernel-6.5.0/salome_adm/cmake_files/FindLIBXML2.cmake000077500000000000000000000122221177004724000235030ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for libxml2 ...") # ------ IF(LIBXML2_IS_MANDATORY STREQUAL 0) SET(LIBXML2_IS_MANDATORY 0) SET(LIBXML2_IS_OPTIONAL 1) ENDIF(LIBXML2_IS_MANDATORY STREQUAL 0) IF(LIBXML2_IS_OPTIONAL STREQUAL 0) SET(LIBXML2_IS_MANDATORY 1) SET(LIBXML2_IS_OPTIONAL 0) ENDIF(LIBXML2_IS_OPTIONAL STREQUAL 0) IF(NOT LIBXML2_IS_MANDATORY AND NOT LIBXML2_IS_OPTIONAL) SET(LIBXML2_IS_MANDATORY 1) SET(LIBXML2_IS_OPTIONAL 0) ENDIF(NOT LIBXML2_IS_MANDATORY AND NOT LIBXML2_IS_OPTIONAL) # ------ SET(LIBXML2_STATUS 1) IF(WITHOUT_LIBXML2 OR WITH_LIBXML2 STREQUAL 0) SET(LIBXML2_STATUS 0) MESSAGE(STATUS "libxml2 disabled from command line.") ENDIF(WITHOUT_LIBXML2 OR WITH_LIBXML2 STREQUAL 0) # ------ IF(LIBXML2_STATUS) IF(WITH_LIBXML2) SET(LIBXML2_ROOT_USER ${WITH_LIBXML2}) ELSE(WITH_LIBXML2) SET(LIBXML2_ROOT_USER $ENV{LIBXML2_ROOT}) IF(NOT LIBXML2_ROOT_USER) SET(LIBXML2_ROOT_USER $ENV{LIBXML_DIR}) ENDIF(NOT LIBXML2_ROOT_USER) ENDIF(WITH_LIBXML2) ENDIF(LIBXML2_STATUS) # ----- IF(LIBXML2_STATUS) IF(LIBXML2_ROOT_USER) SET(LIBXML2_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(LIBXML2_ROOT_USER) SET(LIBXML2_FIND_PATHS_OPTION) ENDIF(LIBXML2_ROOT_USER) ENDIF(LIBXML2_STATUS) # ----- IF(LIBXML2_STATUS) IF(LIBXML2_ROOT_USER) IF(WINDOWS) SET(LIBXML2_INCLUDE_PATHS ${LIBXML2_ROOT_USER}/include) ELSE(WINDOWS) SET(LIBXML2_INCLUDE_PATHS ${LIBXML2_ROOT_USER}/include/libxml2) ENDIF(WINDOWS) ELSE(LIBXML2_ROOT_USER) SET(LIBXML2_INCLUDE_PATHS /usr/include/libxml2) ENDIF(LIBXML2_ROOT_USER) SET(LIBXML2_INCLUDE_TO_FIND libxml/parser.h) FIND_PATH(LIBXML2_INCLUDE_DIR ${LIBXML2_INCLUDE_TO_FIND} PATHS ${LIBXML2_INCLUDE_PATHS} ${LIBXML2_FIND_PATHS_OPTION}) IF(LIBXML2_INCLUDE_DIR) SET(LIBXML2_INCLUDES -I${LIBXML2_INCLUDE_DIR})# to remove SET(LIBXML_INCLUDES_DIR ${LIBXML2_INCLUDE_DIR}) MESSAGE(STATUS "${LIBXML2_INCLUDE_TO_FIND} found in ${LIBXML2_INCLUDE_DIR}") ELSE(LIBXML2_INCLUDE_DIR) SET(LIBXML2_STATUS 0) IF(LIBXML2_ROOT_USER) MESSAGE(STATUS "${LIBXML2_INCLUDE_TO_FIND} not found in ${LIBXML2_INCLUDE_PATHS}, check your LIBXML2 installation.") ELSE(LIBXML2_ROOT_USER) MESSAGE(STATUS "${LIBXML2_INCLUDE_TO_FIND} not found on system, try to use WITH_LIBXML2 option or LIBXML2_ROOT environment variable.") ENDIF(LIBXML2_ROOT_USER) ENDIF(LIBXML2_INCLUDE_DIR) ENDIF(LIBXML2_STATUS) # ---- IF(LIBXML2_STATUS) IF(LIBXML2_ROOT_USER) SET(LIBXML2_LIB_PATHS ${LIBXML2_ROOT_USER}/lib) ELSE(LIBXML2_ROOT_USER) SET(LIBXML2_LIB_PATHS) ENDIF(LIBXML2_ROOT_USER) ENDIF(LIBXML2_STATUS) IF(LIBXML2_STATUS) IF(WINDOWS) FIND_LIBRARY(LIBXML2_LIB libxml2 PATHS ${LIBXML2_LIB_PATHS} ${LIBXML2_FIND_PATHS_OPTION}) ELSE(WINDOWS) FIND_LIBRARY(LIBXML2_LIB xml2 PATHS ${LIBXML2_LIB_PATHS} ${LIBXML2_FIND_PATHS_OPTION}) ENDIF(WINDOWS) SET(LIBXML2_LIBS) IF(LIBXML2_LIB) SET(LIBXML2_LIBS ${LIBXML2_LIBS} ${LIBXML2_LIB}) MESSAGE(STATUS "libxml2 lib found: ${LIBXML2_LIB}") ELSE(LIBXML2_LIB) SET(LIBXML2_STATUS 0) IF(LIBXML2_ROOT_USER) MESSAGE(STATUS "libxml2 lib not found in ${LIBXML2_LIB_PATHS}, check your LIBXML2 installation.") ELSE(LIBXML2_ROOT_USER) MESSAGE(STATUS "libxml2 lib not found on system, try to use WITH_LIBXML2 option or LIBXML2_ROOT environment variable.") ENDIF(LIBXML2_ROOT_USER) ENDIF(LIBXML2_LIB) ENDIF(LIBXML2_STATUS) # ---- IF(WINDOWS) SET(ICONV_ROOT $ENV{ICONV_ROOT}) IF(ICONV_ROOT) FIND_PATH(ICONV_INCLUDE_DIR iconv.h ${ICONV_ROOT}/include) FIND_LIBRARY(ICONV_LIBS iconv ${ICONV_ROOT}/lib) SET(LIBXML2_INCLUDES ${LIBXML2_INCLUDES} -I${ICONV_INCLUDE_DIR})# to remove SET(LIBXML_INCLUDES_DIR ${LIBXML2_INCLUDES_DIR} ${ICONV_INCLUDE_DIR}) SET(LIBXML2_LIBS ${LIBXML2_LIBS} ${ICONV_LIBS}) ENDIF(ICONV_ROOT) ENDIF(WINDOWS) # ------ IF(LIBXML2_STATUS) SET(LIBXML_INCLUDES ${LIBXML2_INCLUDES})# to remove SET(LIBXML_CPPFLAGS ${LIBXML2_INCLUDES}) SET(LIBXML_FLAGS) SET(LIBXML_LIBS ${LIBXML2_LIBS}) ELSE(LIBXML2_STATUS) IF(LIBXML2_IS_MANDATORY) MESSAGE(FATAL_ERROR "libxml2 not found ... mandatory ... abort") ELSE(LIBXML2_IS_MANDATORY) MESSAGE(STATUS "libxml2 not found ... optional ... disabled") ENDIF(LIBXML2_IS_MANDATORY) ENDIF(LIBXML2_STATUS) # ------ salome-kernel-6.5.0/salome_adm/cmake_files/FindMPI.cmake000077500000000000000000000120151177004724000230570ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ # MESSAGE(STATUS "Check for MPI ...") # ------ SET(MPI_STATUS 1) IF(WITHOUT_MPI OR WITH_MPI STREQUAL 0) SET(MPI_STATUS 0) MESSAGE(STATUS "mpi disabled from command line.") ENDIF(WITHOUT_MPI OR WITH_MPI STREQUAL 0) IF(WITH_MPI) SET(MPI_ROOT_USER ${WITH_MPI}) ELSE(WITH_MPI) SET(MPI_ROOT_USER $ENV{MPI_ROOT}) ENDIF(WITH_MPI) IF(NOT MPI_ROOT_USER) FIND_PROGRAM(MPICC mpicc) IF(MPICC) MESSAGE(STATUS "mpicc found: ${MPICC}") SET(MPI_ROOT ${MPICC}) GET_FILENAME_COMPONENT(MPI_ROOT ${MPI_ROOT} PATH) GET_FILENAME_COMPONENT(MPI_ROOT ${MPI_ROOT} PATH) IF(MPICC STREQUAL /usr/bin/mpicc) ELSE(MPICC STREQUAL /usr/bin/mpicc) SET(MPI_ROOT_USER ${MPI_ROOT}) ENDIF(MPICC STREQUAL /usr/bin/mpicc) ENDIF(MPICC) ELSE(NOT MPI_ROOT_USER) SET(MPI_ROOT ${MPI_ROOT_USER}) ENDIF(NOT MPI_ROOT_USER) # ------ IF(NOT MPI_ROOT) MESSAGE(STATUS "MPI not found, try to use WITH_MPI option or MPI_ROOT environment variable.") SET(MPI_STATUS 0) ENDIF(NOT MPI_ROOT) # ------ IF(MPI_STATUS) MESSAGE(STATUS "Check MPI in ${MPI_ROOT}") SET(MPI_INCLUDE_TO_FIND mpi.h) IF(MPI_ROOT_USER) SET(MPI_ROOT ${MPI_ROOT_USER}) SET(MPI_INCLUDE_PATHS ${MPI_ROOT} ${MPI_ROOT}/include) FIND_PATH(MPI_INCLUDES ${MPI_INCLUDE_TO_FIND} PATHS ${MPI_INCLUDE_PATHS} NO_DEFAULT_PATH) IF(NOT MPI_INCLUDES) MESSAGE(STATUS "MPI include ${MPI_INCLUDE_TO_FIND} not found in ${MPI_INCLUDE_PATHS}, check your MPI installation.") SET(MPI_STATUS 0) ENDIF(NOT MPI_INCLUDES) ELSE(MPI_ROOT_USER) FIND_PATH(MPI_INCLUDES ${MPI_INCLUDE_TO_FIND}) IF(NOT MPI_INCLUDES) MESSAGE(STATUS "MPI include ${MPI_INCLUDE_TO_FIND} not found on system, try to use WITH_MPI option or MPI_ROOT environment variable.") SET(MPI_STATUS 0) ENDIF(NOT MPI_INCLUDES) GET_FILENAME_COMPONENT(MPI_ROOT ${MPI_INCLUDES} PATH) ENDIF(MPI_ROOT_USER) MESSAGE(STATUS "MPI include ${MPI_INCLUDE_TO_FIND} found in ${MPI_INCLUDES}") SET(MPI_INCLUDE_DIR ${MPI_INCLUDES}) SET(MPI_INCLUDES_DIR ${MPI_INCLUDES}) SET(MPI_INCLUDES -I${MPI_INCLUDES})# to remove # ------ IF(WINDOWS) FIND_LIBRARY(MPI_LIB_THREAD libboost_thread-vc90-mt-gd-1_35 ${MPI_ROOT}/lib) FIND_LIBRARY(MPI_LIB_DATE_TIME libboost_date_time-vc90-mt-gd-1_35 ${MPI_ROOT}/lib) ELSE(WINDOWS) SET(MPI_LIB_FOUND 0) FOREACH(lib mpi_cxx mpi mpich) FIND_LIBRARY(MPI_LIB_${lib} ${lib} ${MPI_ROOT}/lib) IF(MPI_LIB_${lib}) SET(MPI_LIB_FOUND 1) ENDIF(MPI_LIB_${lib}) ENDFOREACH(lib mpi_cxx mpi mpich) IF(MPI_LIB_FOUND) IF(MPI_LIB_mpi_cxx AND MPI_LIB_mpi) SET(MPI_LIBS ${MPI_LIB_mpi_cxx} ${MPI_LIB_mpi}) SET(MPI_INCLUDES ${MPI_INCLUDES} -DOMPI_IGNORE_CXX_SEEK)# to remove SET(MPI_FLAGS -DOMPI_IGNORE_CXX_SEEK) ELSEIF(MPI_LIB_mpi_cxx) SET(MPI_LIBS ${MPI_LIB_mpi_cxx}) SET(MPI_INCLUDES ${MPI_INCLUDES} -DOMPI_IGNORE_CXX_SEEK)# to remove SET(MPI_FLAGS -DOMPI_IGNORE_CXX_SEEK) ELSEIF(MPI_LIB_mpi) SET(MPI_LIBS ${MPI_LIB_mpi}) SET(MPI_INCLUDES ${MPI_INCLUDES} -DOMPI_IGNORE_CXX_SEEK)# to remove SET(MPI_FLAGS -DOMPI_IGNORE_CXX_SEEK) ELSEIF(MPI_LIB_mpich) SET(MPI_LIBS ${MPI_LIB_mpich}) SET(MPI_INCLUDES ${MPI_INCLUDES} -DMPICH_IGNORE_CXX_SEEK)# to remove SET(MPI_FLAGS -DMPICH_IGNORE_CXX_SEEK) ENDIF() ELSE(MPI_LIB_FOUND) MESSAGE(STATUS "MPI lib not found, check your MPI installation.") SET(MPI_STATUS 0) ENDIF(MPI_LIB_FOUND) ENDIF(WINDOWS) MESSAGE(STATUS "MPI libs: ${MPI_LIBS}") ENDIF(MPI_STATUS) # ------ IF(MPI_STATUS) include(CheckSymbolExists) SET(CMAKE_REQUIRED_LIBRARIES ${MPI_LIBS}) CHECK_SYMBOL_EXISTS(MPI_Publish_name ${MPI_INCLUDE_DIR}/mpi.h MPI2_IS_OK) IF(MPI2_IS_OK) MESSAGE(STATUS "Your mpi implemtentation is compatible with mpi2 ... adding -DHAVE_MPI2") SET(MPI_INCLUDES ${MPI_INCLUDES} -DHAVE_MPI2)# to remove SET(MPI_FLAGS "${MPI_FLAGS} -DHAVE_MPI2") ENDIF(MPI2_IS_OK) ENDIF(MPI_STATUS) # ------ IF(MPI_STATUS) SET(MPI_IS_OK ON) ELSE(MPI_STATUS) IF(MPI_IS_MANDATORY) MESSAGE(FATAL_ERROR "MPI not found but mandatory") ELSE(MPI_IS_MANDATORY) MESSAGE(STATUS "MPI not found. Build procedure depending of mpi will be disable") ENDIF(MPI_IS_MANDATORY) ENDIF(MPI_STATUS) salome-kernel-6.5.0/salome_adm/cmake_files/FindOMNIORB.cmake000077500000000000000000000214521177004724000235440ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for omniorb ...") # ------ IF(OMNIORB_IS_MANDATORY STREQUAL 0) SET(OMNIORB_IS_MANDATORY 0) SET(OMNIORB_IS_OPTIONAL 1) ENDIF(OMNIORB_IS_MANDATORY STREQUAL 0) IF(OMNIORB_IS_OPTIONAL STREQUAL 0) SET(OMNIORB_IS_MANDATORY 1) SET(OMNIORB_IS_OPTIONAL 0) ENDIF(OMNIORB_IS_OPTIONAL STREQUAL 0) IF(NOT OMNIORB_IS_MANDATORY AND NOT OMNIORB_IS_OPTIONAL) SET(OMNIORB_IS_MANDATORY 1) SET(OMNIORB_IS_OPTIONAL 0) ENDIF(NOT OMNIORB_IS_MANDATORY AND NOT OMNIORB_IS_OPTIONAL) # ------ SET(OMNIORB_STATUS 1) IF(WITHOUT_OMNIORB OR WITH_OMNIORB STREQUAL 0) SET(OMNIORB_STATUS 0) MESSAGE(STATUS "omniorb disabled from command line.") ENDIF(WITHOUT_OMNIORB OR WITH_OMNIORB STREQUAL 0) # ------ IF(OMNIORB_STATUS) IF(WITH_OMNIORB) SET(OMNIORB_ROOT_USER ${WITH_OMNIORB}) ENDIF(WITH_OMNIORB) IF(NOT OMNIORB_ROOT_USER) SET(OMNIORB_ROOT_USER $ENV{OMNIORB_ROOT}) ENDIF(NOT OMNIORB_ROOT_USER) IF(NOT OMNIORB_ROOT_USER) SET(OMNIORB_ROOT_USER $ENV{OMNIORBHOME}) ENDIF(NOT OMNIORB_ROOT_USER) ENDIF(OMNIORB_STATUS) # ------ IF(OMNIORB_STATUS) SET(OMNIIDL_EXECUTABLE_TO_FIND omniidl) IF(OMNIORB_ROOT_USER) FIND_PROGRAM(OMNIIDL_EXECUTABLE ${OMNIIDL_EXECUTABLE_TO_FIND} PATHS ${OMNIORB_ROOT_USER}/bin) ELSE(OMNIORB_ROOT_USER) FIND_PROGRAM(OMNIIDL_EXECUTABLE ${OMNIIDL_EXECUTABLE_TO_FIND}) ENDIF(OMNIORB_ROOT_USER) IF(OMNIIDL_EXECUTABLE) MESSAGE(STATUS "${OMNIIDL_EXECUTABLE_TO_FIND} found: ${OMNIIDL_EXECUTABLE}") IF(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND}) ELSE(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND}) SET(OMNIORB_ROOT_USER ${OMNIIDL_EXECUTABLE}) GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH) IF(WINDOWS) GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH) ENDIF(WINDOWS) GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH) ENDIF(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND}) ELSE(OMNIIDL_EXECUTABLE) MESSAGE(STATUS "${OMNIIDL_EXECUTABLE_TO_FIND} not found, try to use WITH_OMNIORB option or OMNIORBHOME environment variable") SET(OMNIORB_STATUS 0) ENDIF(OMNIIDL_EXECUTABLE) ENDIF(OMNIORB_STATUS) # ------ IF(OMNIORB_STATUS) IF(OMNIORB_ROOT_USER) SET(OMNIORB_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(OMNIORB_ROOT_USER) SET(OMNIORB_FIND_PATHS_OPTION) ENDIF(OMNIORB_ROOT_USER) ENDIF(OMNIORB_STATUS) # ------ IF(OMNIORB_STATUS) SET(OMNIORB_INCLUDES) # to be removed SET(OMNIORB_INCLUDES_DIR) ENDIF(OMNIORB_STATUS) IF(OMNIORB_STATUS) IF(OMNIORB_ROOT_USER) SET(OMNIORB_INCLUDE_PATHS ${OMNIORB_ROOT_USER}/include) ELSE(OMNIORB_ROOT_USER) SET(OMNIORB_INCLUDE_PATHS) ENDIF(OMNIORB_ROOT_USER) SET(OMNIORB_INCLUDE_TO_FIND omniORB4/CORBA.h) FIND_PATH(OMNIORB_INCLUDE_DIR1 ${OMNIORB_INCLUDE_TO_FIND} PATHS ${OMNIORB_INCLUDE_PATHS} ${OMNIORB_FIND_PATHS_OPTION}) IF(OMNIORB_INCLUDE_DIR1) SET(OMNIORB_INCLUDES ${OMNIORB_INCLUDES} -I${OMNIORB_INCLUDE_DIR1}) # to be removed SET(OMNIORB_INCLUDES_DIR ${OMNIORB_INCLUDE_DIR1}) MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} found in ${OMNIORB_INCLUDE_DIR1}") ELSE(OMNIORB_INCLUDE_DIR1) SET(OMNIORB_STATUS 0) IF(OMNIORB_ROOT_USER) MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found in ${OMNIORB_INCLUDE_PATHS}, check your OMNIORB installation.") ELSE(OMNIORB_ROOT_USER) MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found on system, try to use WITH_OMNIORB option or OMNIORB_ROOT environment variable.") ENDIF(OMNIORB_ROOT_USER) ENDIF(OMNIORB_INCLUDE_DIR1) ENDIF(OMNIORB_STATUS) IF(OMNIORB_STATUS) IF(OMNIORB_ROOT_USER) SET(OMNIORB_INCLUDE_PATHS ${OMNIORB_ROOT_USER}/include/omniORB4) ELSE(OMNIORB_ROOT_USER) SET(OMNIORB_INCLUDE_PATHS /usr/include/omniORB4) ENDIF(OMNIORB_ROOT_USER) SET(OMNIORB_INCLUDE_TO_FIND CORBA.h) FIND_PATH(OMNIORB_INCLUDE_DIR2 ${OMNIORB_INCLUDE_TO_FIND} PATHS ${OMNIORB_INCLUDE_PATHS} ${OMNIORB_FIND_PATHS_OPTION}) IF(OMNIORB_INCLUDE_DIR2) SET(OMNIORB_INCLUDES ${OMNIORB_INCLUDES} -I${OMNIORB_INCLUDE_DIR2}) # to be removed SET(OMNIORB_INCLUDES_DIR ${OMNIORB_INCLUDES_DIR} ${OMNIORB_INCLUDE_DIR2}) MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} found in ${OMNIORB_INCLUDE_DIR2}") ELSE(OMNIORB_INCLUDE_DIR2) SET(OMNIORB_STATUS 0) MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found in ${OMNIORB_INCLUDE_PATHS}, check your OMNIORB installation.") ENDIF(OMNIORB_INCLUDE_DIR2) ENDIF(OMNIORB_STATUS) # ------ IF(OMNIORB_STATUS) SET(OMNIORB_CXXFLAGS) # to be removed # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DOMNIORB_VERSION=4) SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__x86__) # to be removed SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DCOMP_CORBA_DOUBLE) # to be removed SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DCOMP_CORBA_LONG) # to be removed SET(OMNIORB_FLAGS "-D__x86__ -DCOMP_CORBA_DOUBLE -DCOMP_CORBA_LONG") IF(WINDOWS) SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__WIN32__) # # # # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D_WIN32_WINNT=0x0400) # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__NT__) # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__OSVERSION__=4) # ELSE(WINDOWS) # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__linux__) ENDIF(WINDOWS) # IF(WINDOWS) # SET(OMNIORB_LIBS ws2_32.lib mswsock.lib advapi32.lib ${OMNIORB_LIBS}) # ENDIF(WINDOWS) ENDIF(OMNIORB_STATUS) # ---- IF(OMNIORB_STATUS) IF(OMNIORB_ROOT_USER) IF(WINDOWS) SET(OMNIORB_LIB_PATHS ${OMNIORB_ROOT_USER}/lib/x86_win32) ELSE(WINDOWS) SET(OMNIORB_LIB_PATHS ${OMNIORB_ROOT_USER}/lib) ENDIF(WINDOWS) ELSE(OMNIORB_ROOT_USER) SET(OMNIORB_LIB_PATHS) ENDIF(OMNIORB_ROOT_USER) ENDIF(OMNIORB_STATUS) IF(OMNIORB_STATUS) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) SET(OMNIORB_LIB_SUFFIX _rt) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) SET(OMNIORB_LIB_SUFFIX _rtd) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) SET(OMNIORB_LIB_SUFFIX) ENDIF(WINDOWS) ENDIF(OMNIORB_STATUS) SET(OMNIORB_LIBS) FOREACH(lib omniORB4 omniDynamic4 COS4 COSDynamic4 omnithread) IF(OMNIORB_STATUS) FIND_LIBRARY(${lib}${OMNIORB_LIB_SUFFIX} ${lib}${OMNIORB_LIB_SUFFIX} PATHS ${OMNIORB_LIB_PATHS} ${OMNIORB_FIND_PATHS_OPTION}) IF(${lib}${OMNIORB_LIB_SUFFIX}) SET(OMNIORB_LIBS ${OMNIORB_LIBS} ${${lib}${OMNIORB_LIB_SUFFIX}}) MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib found: ${${lib}${OMNIORB_LIB_SUFFIX}}") ELSE(${lib}${OMNIORB_LIB_SUFFIX}) SET(OMNIORB_STATUS 0) IF(OMNIORB_ROOT_USER) MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib not found in ${OMNIORB_LIB_PATHS}, check your OMNIORB installation.") ELSE(OMNIORB_ROOT_USER) MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib not found on system, try to use WITH_OMNIORB option or OMNIORB_ROOT environment variable.") ENDIF(OMNIORB_ROOT_USER) ENDIF(${lib}${OMNIORB_LIB_SUFFIX}) ENDIF(OMNIORB_STATUS) ENDFOREACH(lib omniORB4 omniDynamic4 COS4 COSDynamic4 omnithread) # ---------------- IF(OMNIORB_STATUS) SET(OMNIORB_IDL_PYTHON $ENV{OMNIIDL_PYTHON}) IF(NOT OMNIORB_IDL_PYTHON) SET(OMNIORB_IDL_PYTHON ${OMNIIDL_EXECUTABLE}) ENDIF(NOT OMNIORB_IDL_PYTHON) ENDIF(OMNIORB_STATUS) # ---- IF(OMNIORB_STATUS) SET(CORBA_GEN 1) SET(OMNIORB_IDL ${OMNIIDL_EXECUTABLE}) SET(CORBA_INCLUDES ${OMNIORB_INCLUDES}) SET(CORBA_CXXFLAGS ${OMNIORB_CXXFLAGS}) SET(CORBA_FLAGS ${OMNIORB_CXXFLAGS}) SET(CORBA_LIBS ${OMNIORB_LIBS}) SET(OMNIORB_IDLCXXFLAGS -Wba -nf) SET(OMNIORB_IDLPYFLAGS -bpython) SET(IDLCXXFLAGS ${OMNIORB_IDLCXXFLAGS}) SET(IDLPYFLAGS ${OMNIORB_IDLPYFLAGS}) SET(IDL_CLN_H .hh) SET(IDL_SRV_H .hh) ELSE(OMNIORB_STATUS) SET(CORBA_GEN 0) IF(OMNIORB_IS_MANDATORY) MESSAGE(FATAL_ERROR "omniorb not found ... mandatory ... abort") ELSE(OMNIORB_IS_MANDATORY) MESSAGE(STATUS "omniorb not found ... optional ... disabled") ENDIF(OMNIORB_IS_MANDATORY) ENDIF(OMNIORB_STATUS) # ---- salome-kernel-6.5.0/salome_adm/cmake_files/FindPLATFORM.cmake000077500000000000000000000102221177004724000236540ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # MARK_AS_ADVANCED(ISSUE) FIND_FILE(ISSUE issue /etc) IF(ISSUE) SET(WINDOWS 0) ELSE() SET(WINDOWS 1) ENDIF(ISSUE) IF(WINDOWS) SET(MACHINE WINDOWS) ELSE(WINDOWS) SET(MACHINE PCLINUX) ENDIF(WINDOWS) SET(CMAKE_INSTALL_PREFIX_ENV $ENV{CMAKE_INSTALL_PREFIX}) IF(CMAKE_INSTALL_PREFIX_ENV) SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX_ENV} CACHE PATH "installation prefix" FORCE) ENDIF(CMAKE_INSTALL_PREFIX_ENV) IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE}) ENDIF(NOT CMAKE_BUILD_TYPE) IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE Release) ENDIF(NOT CMAKE_BUILD_TYPE) IF(WINDOWS) ELSE(WINDOWS) SET(ADD_WERROR ON) SET(NAMES ACCEPT_SALOME_WARNINGS ACCEPT_${MODULE}_WARNINGS I_AM_A_TROLL_I_DO_NOT_FIX_${MODULE}_WARNINGS) FOREACH(name ${NAMES}) SET(VAL $ENV{${name}}) IF(X${VAL} STREQUAL X0) SET(ADD_WERROR ON) ENDIF(X${VAL} STREQUAL X0) IF(X${VAL} STREQUAL X1) SET(ADD_WERROR OFF) ENDIF(X${VAL} STREQUAL X1) ENDFOREACH(name ${NAMES}) IF(ADD_WERROR) SET(CMAKE_C_FLAGS "-Werror") SET(CMAKE_CXX_FLAGS "-Werror") ENDIF(ADD_WERROR) ENDIF(WINDOWS) IF(CMAKE_BUILD_TYPE) IF(WINDOWS) MARK_AS_ADVANCED(CLEAR CMAKE_CONFIGURATION_TYPES) SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "compilation types" FORCE) ELSE(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Debug) SET(CMAKE_C_FLAGS_DEBUG "-g") SET(CMAKE_CXX_FLAGS_DEBUG "-g") ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) IF(CMAKE_BUILD_TYPE STREQUAL Release) SET(CMAKE_C_FLAGS_RELEASE "-O1 -DNDEBUG") SET(CMAKE_CXX_FLAGS_RELEASE "-O1 -DNDEBUG") ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ENDIF(WINDOWS) ENDIF(CMAKE_BUILD_TYPE) SET(PLATFORM_CPPFLAGS) SET(PLATFORM_LDFLAGS) SET(PLATFORM_LIBADD) IF(WINDOWS) SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} /W0) SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_CRT_SECURE_NO_WARNINGS) # To disable windows warnings for strcpy, fopen, ... SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_SCL_SECURE_NO_WARNINGS) # To disable windows warnings std::copy, std::transform, ... SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DWNT) SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DPPRO_NT) # For medfile SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_USE_MATH_DEFINES) # At least for MEDMEM SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_WIN32_WINNT=0x0500) # Windows 2000 or later API is required SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Ws2_32.lib) SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Userenv.lib) # At least for GEOM suit ELSE(WINDOWS) # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wparentheses) # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wreturn-type) # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wmissing-declarations) # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wunused) # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wall) SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} -ldl) ENDIF(WINDOWS) SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DSIZEOF_FORTRAN_INTEGER=4 -DSIZEOF_LONG=${CMAKE_SIZEOF_VOID_P} -DSIZEOF_INT=4) SET(COMPILATION_WITH_CMAKE ON) # SET(PLATFORM_CPPFLAGS) # # # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DWNT -D_CRT_SECURE_NO_WARNINGS) # # SET(RM del) #ELSE(WINDOWS) # # SET(RM /bin/rm) #ENDIF(WINDOWS) ### SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_DEBUG_) ##SET(RCP rcp) ##SET(RSH rsh) ##SET(RCP rcp) ## MESSAGE(FATAL_ERROR "ZZZZZZZ") salome-kernel-6.5.0/salome_adm/cmake_files/FindPTHREADS.cmake000077500000000000000000000112411177004724000236440ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for pthreads ...") # ------ IF(PTHREADS_IS_MANDATORY STREQUAL 0) SET(PTHREADS_IS_MANDATORY 0) SET(PTHREADS_IS_OPTIONAL 1) ENDIF(PTHREADS_IS_MANDATORY STREQUAL 0) IF(PTHREADS_IS_OPTIONAL STREQUAL 0) SET(PTHREADS_IS_MANDATORY 1) SET(PTHREADS_IS_OPTIONAL 0) ENDIF(PTHREADS_IS_OPTIONAL STREQUAL 0) IF(NOT PTHREADS_IS_MANDATORY AND NOT PTHREADS_IS_OPTIONAL) SET(PTHREADS_IS_MANDATORY 1) SET(PTHREADS_IS_OPTIONAL 0) ENDIF(NOT PTHREADS_IS_MANDATORY AND NOT PTHREADS_IS_OPTIONAL) # ------ SET(PTHREADS_STATUS 1) IF(WITHOUT_PTHREADS OR WITH_PTHREADS STREQUAL 0) SET(PTHREADS_STATUS 0) MESSAGE(STATUS "pthreads disabled from command line.") ENDIF(WITHOUT_PTHREADS OR WITH_PTHREADS STREQUAL 0) # ------ IF(PTHREADS_STATUS) IF(WITH_PTHREADS) SET(PTHREADS_ROOT_USER ${WITH_PTHREADS}) ELSE(WITH_PTHREADS) SET(PTHREADS_ROOT_USER $ENV{PTHREADS_ROOT}) ENDIF(WITH_PTHREADS) ENDIF(PTHREADS_STATUS) # ----- IF(PTHREADS_STATUS) IF(PTHREADS_ROOT_USER) SET(PTHREADS_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(PTHREADS_ROOT_USER) SET(PTHREADS_FIND_PATHS_OPTION) ENDIF(PTHREADS_ROOT_USER) ENDIF(PTHREADS_STATUS) # ----- IF(PTHREADS_STATUS) IF(PTHREADS_ROOT_USER) SET(PTHREADS_INCLUDE_PATHS ${PTHREADS_ROOT_USER}/include) ELSE(PTHREADS_ROOT_USER) SET(PTHREADS_INCLUDE_PATHS) ENDIF(PTHREADS_ROOT_USER) SET(PTHREADS_INCLUDE_TO_FIND pthread.h) FIND_PATH(PTHREADS_INCLUDE_DIR ${PTHREADS_INCLUDE_TO_FIND} PATHS ${PTHREADS_INCLUDE_PATHS} ${PTHREADS_FIND_PATHS_OPTION}) IF(PTHREADS_INCLUDE_DIR) IF(PTHREADS_ROOT_USER) SET(PTHREAD_CFLAGS -I${PTHREADS_INCLUDE_DIR}) ENDIF(PTHREADS_ROOT_USER) MESSAGE(STATUS "${PTHREADS_INCLUDE_TO_FIND} found in ${PTHREADS_INCLUDE_DIR}") ELSE(PTHREADS_INCLUDE_DIR) SET(PTHREADS_STATUS 0) IF(PTHREADS_ROOT_USER) MESSAGE(STATUS "${PTHREADS_INCLUDE_TO_FIND} not found in ${PTHREADS_INCLUDE_PATHS}, check your PTHREADS installation.") ELSE(PTHREADS_ROOT_USER) MESSAGE(STATUS "${PTHREADS_INCLUDE_TO_FIND} not found on system, try to use WITH_PTHREADS option or PTHREADS_ROOT environment variable.") ENDIF(PTHREADS_ROOT_USER) ENDIF(PTHREADS_INCLUDE_DIR) ENDIF(PTHREADS_STATUS) # ---- IF(PTHREADS_STATUS) IF(PTHREADS_ROOT_USER) SET(PTHREADS_LIB_PATHS ${PTHREADS_ROOT_USER}/lib) ELSE(PTHREADS_ROOT_USER) SET(PTHREADS_LIB_PATHS) ENDIF(PTHREADS_ROOT_USER) ENDIF(PTHREADS_STATUS) IF(PTHREADS_STATUS) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) FIND_LIBRARY(PTHREAD_LIB pthreadVSE2 pthreadVC2 PATHS ${PTHREADS_LIB_PATHS} ${PTHREADS_FIND_PATHS_OPTION}) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) FIND_LIBRARY(PTHREAD_LIB pthreadVSE2d pthreadVC2d PATHS ${PTHREADS_LIB_PATHS} ${PTHREADS_FIND_PATHS_OPTION}) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) FIND_LIBRARY(PTHREAD_LIB pthread PATHS ${PTHREADS_LIB_PATHS} ${PTHREADS_FIND_PATHS_OPTION}) ENDIF(WINDOWS) SET(PTHREAD_LIBS) IF(PTHREAD_LIB) SET(PTHREAD_LIBS ${PTHREAD_LIBS} ${PTHREAD_LIB}) MESSAGE(STATUS "pthread lib found: ${PTHREAD_LIB}") ELSE(PTHREAD_LIB) SET(PTHREADS_STATUS 0) IF(PTHREADS_ROOT_USER) MESSAGE(STATUS "pthread lib not found in ${PTHREADS_LIB_PATHS}, check your PTHREADS installation.") ELSE(PTHREADS_ROOT_USER) MESSAGE(STATUS "pthread lib not found on system, try to use WITH_PTHREADS option or PTHREADS_ROOT environment variable.") ENDIF(PTHREADS_ROOT_USER) ENDIF(PTHREAD_LIB) ENDIF(PTHREADS_STATUS) # ---- IF(PTHREADS_STATUS) ELSE(PTHREADS_STATUS) IF(PTHREADS_IS_MANDATORY) MESSAGE(FATAL_ERROR "pthreads not found ... mandatory ... abort") ELSE(PTHREADS_IS_MANDATORY) MESSAGE(STATUS "pthreads not found ... optional ... disabled") ENDIF(PTHREADS_IS_MANDATORY) ENDIF(PTHREADS_STATUS) salome-kernel-6.5.0/salome_adm/cmake_files/FindPYTHON.cmake000077500000000000000000000177641177004724000234730ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for python ...") # ------ IF(PYTHON_IS_MANDATORY STREQUAL 0) SET(PYTHON_IS_MANDATORY 0) SET(PYTHON_IS_OPTIONAL 1) ENDIF(PYTHON_IS_MANDATORY STREQUAL 0) IF(PYTHON_IS_OPTIONAL STREQUAL 0) SET(PYTHON_IS_MANDATORY 1) SET(PYTHON_IS_OPTIONAL 0) ENDIF(PYTHON_IS_OPTIONAL STREQUAL 0) IF(NOT PYTHON_IS_MANDATORY AND NOT PYTHON_IS_OPTIONAL) SET(PYTHON_IS_MANDATORY 1) SET(PYTHON_IS_OPTIONAL 0) ENDIF(NOT PYTHON_IS_MANDATORY AND NOT PYTHON_IS_OPTIONAL) # ------ SET(PYTHON_STATUS 1) IF(WITHOUT_PYTHON OR WITH_PYTHON STREQUAL 0) SET(PYTHON_STATUS 0) MESSAGE(STATUS "python disabled from command line.") ENDIF(WITHOUT_PYTHON OR WITH_PYTHON STREQUAL 0) # ------ IF(PYTHON_STATUS) IF(WITH_PYTHON) SET(PYTHON_ROOT_USER ${WITH_PYTHON}) ENDIF(WITH_PYTHON) IF(NOT PYTHON_ROOT_USER) SET(PYTHON_ROOT_USER $ENV{PYTHON_ROOT}) ENDIF(NOT PYTHON_ROOT_USER) IF(NOT PYTHON_ROOT_USER) SET(PYTHON_ROOT_USER $ENV{PYTHONHOME}) ENDIF(NOT PYTHON_ROOT_USER) ENDIF(PYTHON_STATUS) # ------ IF(PYTHON_STATUS) IF(PYTHON_ROOT_USER) SET(PYTHON_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(PYTHON_ROOT_USER) SET(PYTHON_FIND_PATHS_OPTION) ENDIF(PYTHON_ROOT_USER) ENDIF(PYTHON_STATUS) # ------ IF(PYTHON_STATUS) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) SET(PYTHON_EXECUTABLE_TO_FIND python) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) SET(PYTHON_EXECUTABLE_TO_FIND python_d) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) SET(PYTHON_EXECUTABLE_TO_FIND python) ENDIF(WINDOWS) IF(NOT PYTHON_ROOT_USER) SET(PYTHON_EXECUTABLE_PATHS) ELSE(NOT PYTHON_ROOT_USER) IF(WINDOWS) SET(PYTHON_EXECUTABLE_PATHS ${PYTHON_ROOT_USER}) ELSE(WINDOWS) SET(PYTHON_EXECUTABLE_PATHS ${PYTHON_ROOT_USER}/bin) ENDIF(WINDOWS) ENDIF(NOT PYTHON_ROOT_USER) FIND_PROGRAM(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE_TO_FIND} PATHS ${PYTHON_EXECUTABLE_PATHS} ${PYTHON_FIND_PATHS_OPTION}) IF(PYTHON_EXECUTABLE) MESSAGE(STATUS "python found: ${PYTHON_EXECUTABLE}") IF(PYTHON_EXECUTABLE STREQUAL /usr/bin/python) ELSE(PYTHON_EXECUTABLE STREQUAL /usr/bin/python) SET(PYTHON_ROOT_USER ${PYTHON_EXECUTABLE}) GET_FILENAME_COMPONENT(PYTHON_ROOT_USER ${PYTHON_ROOT_USER} PATH) IF(NOT WINDOWS) GET_FILENAME_COMPONENT(PYTHON_ROOT_USER ${PYTHON_ROOT_USER} PATH) ENDIF(NOT WINDOWS) ENDIF(PYTHON_EXECUTABLE STREQUAL /usr/bin/python) ELSE(PYTHON_EXECUTABLE) IF(PYTHON_ROOT_USER) MESSAGE(STATUS "${PYTHON_EXECUTABLE_TO_FIND} not found in ${PYTHON_EXECUTABLE_PATHS}, check your PYTHON installation.") ELSE(PYTHON_ROOT_USER) MESSAGE(STATUS "${PYTHON_EXECUTABLE_TO_FIND} not found on system, try to use WITH_PYTHON option or PYTHON_ROOT environment variable.") ENDIF(PYTHON_ROOT_USER) SET(PYTHON_STATUS 0) ENDIF(PYTHON_EXECUTABLE) ENDIF(PYTHON_STATUS) # ------ IF(PYTHON_STATUS) EXECUTE_PROCESS( COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write(sys.version[:3])" OUTPUT_VARIABLE PYTHON_VERSION ) ENDIF(PYTHON_STATUS) # ------ IF(PYTHON_STATUS) IF(PYTHON_ROOT_USER) SET(PYTHON_FIND_PATHS_OPTION NO_DEFAULT_PATH) ELSE(PYTHON_ROOT_USER) SET(PYTHON_FIND_PATHS_OPTION) ENDIF(PYTHON_ROOT_USER) ENDIF(PYTHON_STATUS) # ------ IF(PYTHON_STATUS) IF(PYTHON_ROOT_USER) SET(PYTHON_INCLUDE_PATHS ${PYTHON_ROOT_USER}/include ${PYTHON_ROOT_USER}/include/python${PYTHON_VERSION}) ELSE(PYTHON_ROOT_USER) SET(PYTHON_INCLUDE_PATHS /usr/include/python${PYTHON_VERSION}) ENDIF(PYTHON_ROOT_USER) SET(PYTHON_INCLUDE_TO_FIND Python.h) FIND_PATH(PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_TO_FIND} PATHS ${PYTHON_INCLUDE_PATHS} ${PYTHON_FIND_PATHS_OPTION}) SET(PYTHON_FLAGS) IF(PYTHON_INCLUDE_DIR) SET(PYTHON_INCLUDES -I${PYTHON_INCLUDE_DIR})# to remove SET(PYTHON_INCLUDES_DIR ${PYTHON_INCLUDE_DIR}) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) SET(PYTHON_INCLUDES ${PYTHON_INCLUDES} -DHAVE_DEBUG_PYTHON)# to remove SET(PYTHON_FLAGS "-DHAVE_DEBUG_PYTHON") ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ENDIF(WINDOWS) MESSAGE(STATUS "${PYTHON_INCLUDE_TO_FIND} found in ${PYTHON_INCLUDE_DIR}") ELSE(PYTHON_INCLUDE_DIR) SET(PYTHON_STATUS 0) IF(PYTHON_ROOT_USER) MESSAGE(STATUS "${PYTHON_INCLUDE_TO_FIND} not found in ${PYTHON_INCLUDE_PATHS}, check your PYTHON installation.") ELSE(PYTHON_ROOT_USER) MESSAGE(STATUS "${PYTHON_INCLUDE_TO_FIND} not found on system, try to use WITH_PYTHON option or PYTHON_ROOT environment variable.") ENDIF(PYTHON_ROOT_USER) ENDIF(PYTHON_INCLUDE_DIR) ENDIF(PYTHON_STATUS) # ---- IF(PYTHON_STATUS) IF(PYTHON_ROOT_USER) IF(WINDOWS) SET(PYTHON_LIB_PATHS ${PYTHON_ROOT_USER}/libs) ELSE(WINDOWS) SET(PYTHON_LIB_PATHS ${PYTHON_ROOT_USER}/lib ${PYTHON_ROOT_USER}/lib/python${PYTHON_VERSION}/config) ENDIF(WINDOWS) ELSE(PYTHON_ROOT_USER) SET(PYTHON_LIB_PATHS) ENDIF(PYTHON_ROOT_USER) IF(WINDOWS) STRING(REPLACE "." "" PYTHON_VERSION_WITHOUT_DOT ${PYTHON_VERSION}) IF(CMAKE_BUILD_TYPE STREQUAL Release) FIND_LIBRARY(PYTHON_LIB python${PYTHON_VERSION_WITHOUT_DOT} PATHS ${PYTHON_LIB_PATHS} ${PYTHON_FIND_PATHS_OPTION}) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) FIND_LIBRARY(PYTHON_LIB python${PYTHON_VERSION_WITHOUT_DOT}_d PATHS ${PYTHON_LIB_PATHS} ${PYTHON_FIND_PATHS_OPTION}) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) FIND_LIBRARY(PYTHON_LIB python${PYTHON_VERSION} PATHS ${PYTHON_LIB_PATHS} ${PYTHON_FIND_PATHS_OPTION}) ENDIF(WINDOWS) SET(PYTHON_LIBS) IF(PYTHON_LIB) SET(PYTHON_LIBS ${PYTHON_LIBS} ${PYTHON_LIB}) MESSAGE(STATUS "python lib found: ${PYTHON_LIB}") ELSE(PYTHON_LIB) SET(PYTHON_STATUS 0) IF(PYTHON_ROOT_USER) MESSAGE(STATUS "python lib not found in ${PYTHON_LIB_PATHS}, check your PYTHON installation.") ELSE(PYTHON_ROOT_USER) MESSAGE(STATUS "python lib not found on system, try to use WITH_PYTHON option or PYTHON_ROOT environment variable.") ENDIF(PYTHON_ROOT_USER) ENDIF(PYTHON_LIB) ENDIF(PYTHON_STATUS) # ---- SET(NUMPY_STATUS 0) IF(PYTHON_STATUS) EXECUTE_PROCESS( COMMAND ${PYTHON_EXECUTABLE} -c "import numpy ; import sys ; sys.stdout.write(numpy.get_include())" OUTPUT_VARIABLE NUMPY_INCLUDE_DIR ERROR_QUIET ) IF(NUMPY_INCLUDE_DIR) SET(NUMPY_STATUS 1) ENDIF(NUMPY_INCLUDE_DIR) IF(NUMPY_STATUS) SET(PYTHON_INCLUDES ${PYTHON_INCLUDES} -DWITH_NUMPY -I${NUMPY_INCLUDE_DIR})# to remove SET(PYTHON_INCLUDES_DIR ${PYTHON_INCLUDES_DIR} ${NUMPY_INCLUDE_DIR}) SET(PYTHON_FLAGS "${PYTHON_FLAGS} -DWITH_NUMPY") MESSAGE(STATUS "numpy found : ${NUMPY_INCLUDE_DIR}") ELSE(NUMPY_STATUS) MESSAGE(STATUS "numpy not found") ENDIF(NUMPY_STATUS) ENDIF(PYTHON_STATUS) # ---- IF(PYTHON_STATUS) SET(PYTHON_CPPFLAGS ${PYTHON_INCLUDES})# to remove SET(PYLOGLEVEL WARNING) ELSE(PYTHON_STATUS) IF(PYTHON_IS_MANDATORY) MESSAGE(FATAL_ERROR "python not found ... mandatory ... abort") ELSE(PYTHON_IS_MANDATORY) MESSAGE(STATUS "python not found ... optional ... disabled") ENDIF(PYTHON_IS_MANDATORY) ENDIF(PYTHON_STATUS) salome-kernel-6.5.0/salome_adm/cmake_files/FindSPHINX.cmake000077500000000000000000000060521177004724000234470ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for sphinx ...") # ------ IF(SPHINX_IS_MANDATORY STREQUAL 0) SET(SPHINX_IS_MANDATORY 0) SET(SPHINX_IS_OPTIONAL 1) ENDIF(SPHINX_IS_MANDATORY STREQUAL 0) IF(SPHINX_IS_OPTIONAL STREQUAL 0) SET(SPHINX_IS_MANDATORY 1) SET(SPHINX_IS_OPTIONAL 0) ENDIF(SPHINX_IS_OPTIONAL STREQUAL 0) IF(NOT SPHINX_IS_MANDATORY AND NOT SPHINX_IS_OPTIONAL) SET(SPHINX_IS_MANDATORY 0) SET(SPHINX_IS_OPTIONAL 1) ENDIF(NOT SPHINX_IS_MANDATORY AND NOT SPHINX_IS_OPTIONAL) # ------ SET(SPHINX_STATUS 1) IF(WITHOUT_SPHINX OR WITH_SPHINX STREQUAL 0) SET(SPHINX_STATUS 0) MESSAGE(STATUS "sphinx disabled from command line.") ENDIF(WITHOUT_SPHINX OR WITH_SPHINX STREQUAL 0) # ------ IF(SPHINX_STATUS) IF(WITH_SPHINX) SET(SPHINX_ROOT_USER ${WITH_SPHINX}) ENDIF(WITH_SPHINX) IF(NOT SPHINX_ROOT_USER) SET(SPHINX_ROOT_USER $ENV{SPHINX_ROOT}) ENDIF(NOT SPHINX_ROOT_USER) IF(NOT SPHINX_ROOT_USER) SET(SPHINX_ROOT_USER $ENV{SPHINXHOME}) ENDIF(NOT SPHINX_ROOT_USER) ENDIF(SPHINX_STATUS) # ------ IF(SPHINX_STATUS) SET(SPHINX_EXECUTABLE_TO_FIND sphinx-build) IF(SPHINX_ROOT_USER) SET(BINDIR) IF(WINDOWS) SET(BINDIR ${SPHINX_ROOT_USER}/Scripts) ELSE(WINDOWS) SET(BINDIR ${SPHINX_ROOT_USER}/bin) ENDIF(WINDOWS) FIND_PROGRAM(SPHINX_EXECUTABLE ${SPHINX_EXECUTABLE_TO_FIND} PATHS ${BINDIR} NO_DEFAULT_PATH) ELSE(SPHINX_ROOT_USER) FIND_PROGRAM(SPHINX_EXECUTABLE ${SPHINX_EXECUTABLE_TO_FIND}) ENDIF(SPHINX_ROOT_USER) IF(SPHINX_EXECUTABLE) MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} found: ${SPHINX_EXECUTABLE}") ELSE(SPHINX_EXECUTABLE) MESSAGE(STATUS "${SPHINX_EXECUTABLE_TO_FIND} not found, try to use WITH_SPHINX option or SPHINX_ROOT (or SPHINXHOME) environment variable") SET(SPHINX_STATUS 0) ENDIF(SPHINX_EXECUTABLE) ENDIF(SPHINX_STATUS) # ---- IF(SPHINX_STATUS) SET(SPHINX_IS_OK 1) ELSE(SPHINX_STATUS) SET(SPHINX_IS_OK 0) IF(SPHINX_IS_MANDATORY) MESSAGE(FATAL_ERROR "sphinx not found ... mandatory ... abort") ELSE(SPHINX_IS_MANDATORY) MESSAGE(STATUS "sphinx not found ... optional ... disabled") ENDIF(SPHINX_IS_MANDATORY) ENDIF(SPHINX_STATUS) # ---- salome-kernel-6.5.0/salome_adm/cmake_files/FindSWIG.cmake000077500000000000000000000055741177004724000232170ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ------ MESSAGE(STATUS "Check for swig ...") # ------ IF(SWIG_IS_MANDATORY STREQUAL 0) SET(SWIG_IS_MANDATORY 0) SET(SWIG_IS_OPTIONAL 1) ENDIF(SWIG_IS_MANDATORY STREQUAL 0) IF(SWIG_IS_OPTIONAL STREQUAL 0) SET(SWIG_IS_MANDATORY 1) SET(SWIG_IS_OPTIONAL 0) ENDIF(SWIG_IS_OPTIONAL STREQUAL 0) IF(NOT SWIG_IS_MANDATORY AND NOT SWIG_IS_OPTIONAL) SET(SWIG_IS_MANDATORY 1) SET(SWIG_IS_OPTIONAL 0) ENDIF(NOT SWIG_IS_MANDATORY AND NOT SWIG_IS_OPTIONAL) # ------ SET(SWIG_STATUS 1) IF(WITHOUT_SWIG OR WITH_SWIG STREQUAL 0) SET(SWIG_STATUS 0) MESSAGE(STATUS "swig disabled from command line.") ENDIF(WITHOUT_SWIG OR WITH_SWIG STREQUAL 0) # ------ IF(SWIG_STATUS) IF(WITH_SWIG) SET(SWIG_ROOT_USER ${WITH_SWIG}) ENDIF(WITH_SWIG) IF(NOT SWIG_ROOT_USER) SET(SWIG_ROOT_USER $ENV{SWIG_ROOT}) ENDIF(NOT SWIG_ROOT_USER) IF(NOT SWIG_ROOT_USER) SET(SWIG_ROOT_USER $ENV{SWIGHOME}) ENDIF(NOT SWIG_ROOT_USER) ENDIF(SWIG_STATUS) # ------ IF(SWIG_STATUS) SET(SWIG_EXECUTABLE_TO_FIND swig) IF(SWIG_ROOT_USER) FIND_PROGRAM(SWIG_EXECUTABLE ${SWIG_EXECUTABLE_TO_FIND} PATHS ${SWIG_ROOT_USER}/bin NO_DEFAULT_PATH) ELSE(SWIG_ROOT_USER) FIND_PROGRAM(SWIG_EXECUTABLE ${SWIG_EXECUTABLE_TO_FIND}) ENDIF(SWIG_ROOT_USER) IF(SWIG_EXECUTABLE) MESSAGE(STATUS "${SWIG_EXECUTABLE_TO_FIND} found: ${SWIG_EXECUTABLE}") ELSE(SWIG_EXECUTABLE) MESSAGE(STATUS "${SWIG_EXECUTABLE_TO_FIND} not found, try to use WITH_SWIG option or SWIG_ROOT (or SWIGHOME) environment variable") SET(SWIG_STATUS 0) ENDIF(SWIG_EXECUTABLE) ENDIF(SWIG_STATUS) # ---- IF(SWIG_STATUS) SET(SWIG_FLAGS -c++ -python -shadow) ELSE(SWIG_STATUS) IF(SWIG_IS_MANDATORY) MESSAGE(FATAL_ERROR "swig not found ... mandatory ... abort") ELSE(SWIG_IS_MANDATORY) MESSAGE(STATUS "swig not found ... optional ... disabled") ENDIF(SWIG_IS_MANDATORY) ENDIF(SWIG_STATUS) # ---- IF(NUMPY_STATUS) SET(SWIG_FLAGS ${SWIG_FLAGS} -DWITH_NUMPY=WITH_NUMPY) ENDIF(NUMPY_STATUS) # ---- salome-kernel-6.5.0/salome_adm/cmake_files/InstallAndCompilePythonFile.cmake000077500000000000000000000032721177004724000272020ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # MACRO(INSTALL_AND_COMPILE_PYTHON_FILE PYFILE2COMPINST PYFILELOC) INSTALL(CODE "SET(PYTHON_FILE ${f})") FOREACH(input ${PYFILE2COMPINST}) GET_FILENAME_COMPONENT(inputname ${input} NAME) INSTALL(FILES ${input} DESTINATION ${CMAKE_INSTALL_PREFIX}/${PYFILELOC}) INSTALL(CODE "MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}\")") INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}')\")") INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\")") INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\")") ENDFOREACH(input ${PYFILE2COMPINST}) ENDMACRO(INSTALL_AND_COMPILE_PYTHON_FILE PYFILE2COMPINST PYFILELOC) salome-kernel-6.5.0/salome_adm/cmake_files/Makefile.am000077500000000000000000000027371177004724000226750ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am dist_salome_cmake_DATA = \ am2cmake.py \ FindBOOST.cmake \ FindCPPUNIT.cmake \ FindDOXYGEN.cmake \ FindHDF5.cmake \ FindKERNEL.cmake \ FindLIBBATCH.cmake \ FindLIBXML2.cmake \ FindMPI.cmake \ FindOMNIORB.cmake \ UseOMNIORB.cmake \ FindPLATFORM.cmake \ FindPTHREADS.cmake \ FindPYTHON.cmake \ FindSWIG.cmake \ FindSPHINX.cmake \ install_python_from_idl.cmake \ install_and_compile_python_file.cmake \ InstallAndCompilePythonFile.cmake dist_salomescript_SCRIPTS = prepare_generating_doc.py salome-kernel-6.5.0/salome_adm/cmake_files/Makefile.in000077500000000000000000000564641177004724000227140ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salome_cmake_DATA) $(dist_salomescript_SCRIPTS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = salome_adm/cmake_files ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salome_cmakedir)" SCRIPTS = $(dist_salomescript_SCRIPTS) SOURCES = DIST_SOURCES = DATA = $(dist_salome_cmake_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules dist_salome_cmake_DATA = \ am2cmake.py \ FindBOOST.cmake \ FindCPPUNIT.cmake \ FindDOXYGEN.cmake \ FindHDF5.cmake \ FindKERNEL.cmake \ FindLIBBATCH.cmake \ FindLIBXML2.cmake \ FindMPI.cmake \ FindOMNIORB.cmake \ UseOMNIORB.cmake \ FindPLATFORM.cmake \ FindPTHREADS.cmake \ FindPYTHON.cmake \ FindSWIG.cmake \ FindSPHINX.cmake \ install_python_from_idl.cmake \ install_and_compile_python_file.cmake \ InstallAndCompilePythonFile.cmake dist_salomescript_SCRIPTS = prepare_generating_doc.py all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu salome_adm/cmake_files/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu salome_adm/cmake_files/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(salomescriptdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(salomescriptdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_salomescriptSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salome_cmakeDATA: $(dist_salome_cmake_DATA) @$(NORMAL_INSTALL) test -z "$(salome_cmakedir)" || $(MKDIR_P) "$(DESTDIR)$(salome_cmakedir)" @list='$(dist_salome_cmake_DATA)'; test -n "$(salome_cmakedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salome_cmakedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salome_cmakedir)" || exit $$?; \ done uninstall-dist_salome_cmakeDATA: @$(NORMAL_UNINSTALL) @list='$(dist_salome_cmake_DATA)'; test -n "$(salome_cmakedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salome_cmakedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salome_cmakedir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salome_cmakedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salome_cmakeDATA \ install-dist_salomescriptSCRIPTS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salome_cmakeDATA \ uninstall-dist_salomescriptSCRIPTS .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_salome_cmakeDATA \ install-dist_salomescriptSCRIPTS install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_salome_cmakeDATA \ uninstall-dist_salomescriptSCRIPTS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/salome_adm/cmake_files/UseOMNIORB.cmake000077500000000000000000000072541177004724000234240ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # INSTALL(CODE "SET(INSTALL_PYIDL_DIR lib/python${PYTHON_VERSION}/site-packages/salome)") # R1 CHECK IF(WINDOWS) INSTALL(CODE "SET(INSTALL_PYIDL_DIR bin/salome)") # R1 CHECK ENDIF(WINDOWS) INSTALL(CODE "MACRO(OMNIORB_COMPILE_IDL_FORPYTHON_ON_INSTALL MYOMNIORBIDLPYTHON MYIDLPYFLAGS MYIDLFILE MYFULLDIR) FILE(MAKE_DIRECTORY \${MYFULLDIR}) STRING(REPLACE \" \" \";\" MYIDLPYFLAGS2 \${MYIDLPYFLAGS}) MESSAGE(STATUS \"Compiling \${MYIDLFILE} into \${MYFULLDIR}\") EXECUTE_PROCESS(COMMAND \${MYOMNIORBIDLPYTHON} \${MYIDLPYFLAGS2} -C\${MYFULLDIR} \${MYIDLFILE}) ENDMACRO(OMNIORB_COMPILE_IDL_FORPYTHON_ON_INSTALL)") # This MACRO uses the following vars # - OMNIORB_IDL : the idl tool (given by default by FindOMNIORB.cmake) # - OMNIORB_IDLCXXFLAGS : the options (include excluded) to give to omniidl generator (given by default by FindOMNIORB.cmake) # # MYMODULE is a string that will be used to create a target with sources containing *.cc coming from the compilation of ${MYIDLFILES} # MYIDLFILES containing all idl files to be compiled. # MYIDLCXXFLAGS containing all directories (only directories) where to find *.idl which depend ${MYIDLFILES}. MACRO(OMNIORB_ADD_MODULE MYMODULE MYIDLFILES MYIDLCXXFLAGS) SET(MYSOURCES) FOREACH(input ${MYIDLFILES}) STRING(REGEX REPLACE ".idl" "" base ${input}) SET(OMNIORB_IDLCXXFLAGS2 "${OMNIORB_IDLCXXFLAGS}") SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc) SET(MYSOURCES ${MYSOURCES} ${src}) SET(outputs ${src}) SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc) SET(outputs ${outputs} ${dynsrc}) SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh) SET(outputs ${outputs} ${inc}) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(flags ${OMNIORB_IDLCXXFLAGS2}) STRING(REGEX MATCH "-bcxx" ISBCXX ${flags}) IF(NOT ISBCXX) SET(flags -bcxx ${flags}) ENDIF(NOT ISBCXX) FOREACH(f ${MYIDLCXXFLAGS}) SET(flags ${flags} "-I${f}") ENDFOREACH(f ${MYIDLCXXFLAGS}) ADD_CUSTOM_COMMAND(OUTPUT ${outputs} COMMAND ${OMNIORB_IDL} ${flags} ${input} MAIN_DEPENDENCY ${input}) SET(IDLPYFLAGS ${flags}) INSTALL(FILES ${input} DESTINATION idl/salome) SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh) INSTALL(FILES ${IDL_HEADER} DESTINATION include/salome) SET(flags) FOREACH(f ${MYIDLCXXFLAGS}) SET(flags "${flags} -I${f}") ENDFOREACH(f ${MYIDLCXXFLAGS}) STRING(REGEX MATCH "-bpython" ISBPYTHON ${flags}) IF(NOT ISBPYTHON) SET(flags "-bpython ${flags}") ENDIF(NOT ISBPYTHON) SET(IDLPYFLAGS ${flags}) STRING(REPLACE "\\" "/" IDLPYFLAGS ${IDLPYFLAGS}) INSTALL(CODE "OMNIORB_COMPILE_IDL_FORPYTHON_ON_INSTALL( \"${OMNIORB_IDL_PYTHON}\" \"${IDLPYFLAGS}\" \"${input}\" \"${CMAKE_INSTALL_PREFIX}/\${INSTALL_PYIDL_DIR}\" )") ENDFOREACH(input ${MYIDLFILES}) ADD_LIBRARY(${MYMODULE} SHARED ${MYSOURCES}) ENDMACRO(OMNIORB_ADD_MODULE) salome-kernel-6.5.0/salome_adm/cmake_files/am2cmake.py000077500000000000000000003005611177004724000226670ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import re # ---- # A set of regular expressions used ... # ---- p_multiline = re.compile(r""" \\ # One backslash \s* # 0 or more space \n # One CR """, re.VERBOSE) p_dollar = re.compile(r""" \$\( # a $ then a ( (?P # open the group val [^)]* # the group contain 0 or more non ) characters ) # close the group \) # a ) at the end """, re.VERBOSE) p_arobas = re.compile(r""" @ # a @ (?P # open the group val [^@]* # the group contain 0 or more non @ characters ) # close the group @ # a @ at the end """, re.VERBOSE) p_if = re.compile(r""" ^ # beginning of the string \s* # 0 or more space if # an if \s+ # 1 or more space (?P # open the group val .+ # the group contain 1 or more non space characters ) # close the group """, re.VERBOSE) p_else = re.compile(r""" ^ # beginning of the line \s* # 0 or more space else # \s* # 0 or more space """, re.VERBOSE) p_endif = re.compile(r""" ^ # beginning of the line \s* # 0 or more space endif # a endif \s* # 0 or more space """, re.VERBOSE) p_attribution = re.compile(r""" ^ # beginning of the line (?P # open the group spaces \s* # 0 or more space ) # close the group (?P # open the group key \w+ # the group contain 1 or more alphanumeric characters ) # close the group \s* # 0 or more space (?P # open the group method \+? # 0 or 1 + = # One = ) # close the group (?P # open the group value .* # 0 or more any characters ) # close the group """, re.VERBOSE) # ----- class CMakeFile(object): def __init__(self, the_root, root, dirs, files, f, module): # self.the_root = the_root self.root = root self.dirs = dirs self.files = files self.module = module # from os.path import join self.amFile = join(root, f) self.listsFile = join(root, "CMakeLists.txt") # self.parseFile() # return def parseFile(self): # -- # Read the Makefile.am file # -- amFile = self.amFile stream = open(amFile) content = stream.read() stream.close() # -- # Replace the composed lines separated by "\\n" by an unique line # -- content = p_multiline.sub(r' ', content) # -- # Compatibility netgen plugin # -- content = content.replace("../NETGEN/libNETGEN.la", "${NETGEN_LIBS}") # -- cas_list = [ "BinLPlugin", "BinPlugin", "BinTObjPlugin", "BinXCAFPlugin", "FWOSPlugin", "PTKernel", "StdLPlugin", "StdPlugin", "TKAdvTools", "TKBin", "TKBinL", "TKBinTObj", "TKBinXCAF", "TKBO", "TKBool", "TKBRep", "TKCAF", "TKCDF", "TKernel", "TKFeat", "TKFillet", "TKG2d", "TKG3d", "TKGeomAlgo", "TKGeomBase", "TKHLR", "TKIGES", "TKLCAF", "TKMath", "TKMesh", "TKMeshVS", "TKNIS", "TKOffset", "TKOpenGl", "TKPCAF", "TKPLCAF", "TKPrim", "TKPShape", "TKService", "TKShapeSchema", "TKShHealing", "TKStdLSchema", "TKStdSchema", "TKSTEP", "TKSTEP209", "TKSTEPAttr", "TKSTEPBase", "TKSTL", "TKTObj", "TKTopAlgo", "TKV2d", "TKV3d", "TKVRML", "TKXCAF", "TKXCAFSchema", "TKXDEIGES", "TKXDESTEP", "TKXMesh", "TKXml", "TKXmlL", "TKXmlTObj", "TKXmlXCAF", "TKXSBase", "XCAFPlugin", "XmlLPlugin", "XmlPlugin", "XmlTObjPlugin", "XmlXCAFPlugin", ] vtk_list = [ "vtkCommonPythonD", "vtkGraphicsPythonD", "vtkImagingPythonD", "vtkPythonCore", ] kernel_list = [ "CalciumC", "DF", "Launcher", "LifeCycleCORBATest", "NamingServiceTest", "OpUtil", "Registry", "ResourcesManager", "SALOMEBasics", "SalomeCatalog", "SalomeCommunication", "SalomeContainer", "SalomeDatastream", "SalomeDSCContainer", "SalomeDSClient", "SalomeDSCSupervBasic", "SalomeDSCSuperv", "SalomeDSImpl", "SALOMEDSImplTest", "SalomeDS", "SALOMEDSTest", "SalomeGenericObj", "SalomeHDFPersist", "SalomeIDLKernel", "SalomeLauncher", "SalomeLifeCycleCORBA", "SALOMELocalTrace", "SALOMELocalTraceTest", "SalomeLoggerServer", "SalomeMPIContainer", "SalomeNotification", "SalomeNS", "SalomeResourcesManager", "SalomeTestComponentEngine", "SalomeTestMPIComponentEngine", "SALOMETraceCollectorTest", "TOOLSDS", "UtilsTest", "with_loggerTraceCollector", "SalomeKernelHelpers", ] gui_list = [ "caf", "CAM", "CASCatch", "DDS", "Event", "GLViewer", "LightApp", "LogWindow", "ObjBrowser", "OCCViewer", "OpenGLUtils", "Plot2d", "PyConsole", "PyInterp", "QDS", "qtx", "QxScene", "SalomeApp", "SalomeAppTest", "SalomeIDLGUI", "SalomeObject", "SalomePrs", "SalomePyQtGUILight", "SalomePyQtGUI", "SalomePyQt", "SalomePy", "SalomeSession", "SalomeStyle", "SOCC", "SPlot2d", "std", "SUITApp", "suit", "SUPERVGraph", "SVTK", "ToolsGUI", "ViewerTools", "VTKViewer", "vtkEDFOverloads", "vtkTools" ] geom_list = [ "AdvancedGUI", "BasicGUI", "BlocksGUI", "BooleanGUI", "BREPExport", "BREPImport", "BuildGUI", "DisplayGUI", "DlgRef", "EntityGUI", "GenerationGUI", "GEOMAlgo", "GEOMAlgo_NEW", "GEOMArchimede", "GEOMBase", "GEOMbasic", "GEOMClient", "GEOMEngine", "GEOMFiltersSelection", "GEOMimpl", "GEOMObject", "GEOMSketcher", "GEOM", "GEOM_SupervEngine", "GEOMToolsGUI", "GroupGUI", "IGESExport", "IGESImport", "MeasureGUI", "Material", "NMTDS", "NMTDS_NEW", "NMTTools", "NMTTools_NEW", "OCC2VTK", "OperationGUI", "PrimitiveGUI", "RepairGUI", "SalomeIDLGEOM", "ShHealOper", "STEPExport", "STEPImport", "STLExport", "TransformationGUI", "VTKExport", ] med_list = [ "interpkernel", "InterpKernelTest", "MEDClientcmodule", "medcouplingclient", "medcouplingcorba", "medcouplingremapper", "medcoupling", "MEDEngine", "medloader", "MEDMEMCppTest", "MEDMEMImpl", "medmem", "MED", "medsplitter", "MEDSPLITTERTest", "med_V2_1", "MEDWrapperBase", "MEDWrapper", "MEDWrapper_V2_1", "MEDWrapper_V2_2", "paramedcouplingcorba", "paramedloader", "paramedmemcompo", "paramedmem", "ParaMEDMEMTest", "SalomeIDLMED", "SalomeIDLMEDTests", ] smesh_list = [ "GeomSelectionTools", "MEFISTO2D", "MeshDriverDAT", "MeshDriverMED", "MeshDriver", "MeshDriverSTL", "MeshDriverUNV", "SalomeIDLSMESH", "SMDS", "SMESHClient", "SMESHControls", "SMESHDS", "SMESHEngine", "SMESHFiltersSelection", "SMESHimpl", "SMESHObject", "SMESH", "SMESHUtils", "StdMeshersEngine", "StdMeshersGUI", "StdMeshers", ] full_list = cas_list + vtk_list full_list += kernel_list + gui_list full_list += geom_list + med_list + smesh_list # -- # E.A. : sort by len before substitution ... # Why ? Thing to "-lMEDWrapper" then "-lMEDWrapper_V2_1" substition # And you understand ... # -- full_list.sort(cmp = lambda x, y : cmp(len(y), len(x))) # -- for key in full_list: content = content.replace("-l%s"%(key), "${%s}"%(key)) pass # -- # Split content in lines to treat each one separately # -- lines = content.split('\n') # -- # newlines contains the lines of the future CMakeLists.txt file # -- newlines = [] # -- # opened_ifs is used to deals with nested conditionnals # -- opened_ifs = [] # -- # the __thedict__ dictionnary contains key, val # of the Makefile.am file # -- self.__thedict__ = {} # -- # Initialize file ... mainly includes other cmake files # -- self.initialize(newlines) # -- # Do the job for each line # -- for line in lines: self.treatLine(line, newlines, opened_ifs) pass # -- # Finalize file ... it is in here the cmake job is done # -- self.finalize(newlines) # -- # Concatenate newlines into content # -- content = '\n'.join(newlines) # -- # Add a CR at end if necessary # -- lines = content.split('\n') # lines = [ l.strip() for l in lines ] if len(lines[-1]) != 0: lines.append('') pass content = '\n'.join(lines) # -- self.content = "# ---------------------------------------------------------------------\n" self.content += "# This file was automatically generated by am2cmake (erwan.adam@cea.fr)\n" self.content += "# ---------------------------------------------------------------------\n" self.content += content # -- return def initialize(self, newlines): if self.root == self.the_root: # -- newlines.append(""" CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR) IF(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) ENDIF(COMMAND cmake_policy) """) # -- newlines.append(""" ENABLE_TESTING() """) # -- newlines.append(""" SET(MODULE %s) """%(self.module.upper())) # -- if self.module == "netgen": newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindPLATFORM.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindCAS.cmake) """) else: if self.module == "kernel": newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindMPI.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindHDF5.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindBOOST.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindSWIG.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindSPHINX.cmake) """) pass else: if self.module == "med": newlines.append(""" SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR}) IF(KERNEL_ROOT_DIR) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake) ELSE(KERNEL_ROOT_DIR) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindPLATFORM.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindMPI.cmake) ENDIF(KERNEL_ROOT_DIR) """) else: newlines.append(""" SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR}) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake) """) pass if self.module == "gui": newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindCAS.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindQT4.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindOPENGL.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindVTK.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindQWT.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake) """) else: newlines.append(""" SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR}) IF(GUI_ROOT_DIR) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindCAS.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQT4.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindOPENGL.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindVTK.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQWT.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindGUI.cmake) ENDIF(GUI_ROOT_DIR) """) if self.module == "med": #METIS must be after PARMETIS to prevent to activate METIS if PARMETIS already exists newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindPARMETIS.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindMETIS.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSCOTCH.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSPLITTER.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindRENUMBER.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindMEDFILE.cmake) IF(WINDOWS) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake) ENDIF(WINDOWS) """) pass if self.module == "smesh": newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSPHINX.cmake) """) pass if self.module == "geom": newlines.append(""" INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSPHINX.cmake) """) pass if self.module == "netgenplugin": newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR}) INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindNETGEN.cmake) """) pass if self.module == "blsurfplugin": newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR}) INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindBLSURF.cmake) """) pass if self.module in ["ghs3dplugin", "hexoticplugin"]: newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR}) INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake) """) pass if self.module == "ghs3dprlplugin": newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR}) INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake) """) pass if self.module == "visu": newlines.append(""" SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) """) pass if self.module == "yacs": newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindEXPAT.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindGRAPHVIZ.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSPHINX.cmake) """) pass if self.module == "hxx2salome": newlines.append(""" SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) """) pass pass pass pass # -- newlines.append(""" SET(DOXYGEN_IS_OK 0) """) if self.module not in ['med']: newlines.append(""" IF(WINDOWS) SET(CPPUNIT_IS_OK 0) ENDIF(WINDOWS) """) pass # -- if self.module == "kernel": newlines.append(""" SET(WITH_LOCAL 1) SET(WITH_BATCH 1) SET(CALCIUM_IDL_INT_F77 long) SET(CALCIUM_CORBA_INT_F77 CORBA::Long) SET(LONG_OR_INT int) """) elif self.module == "gui": newlines.append(""" SET(GUI_ENABLE_CORBA ${CORBA_GEN}) SET(ENABLE_VTKVIEWER ON) SET(ENABLE_SALOMEOBJECT ON) SET(ENABLE_OCCVIEWER ON) SET(ENABLE_GLVIEWER ON) SET(ENABLE_PLOT2DVIEWER ON) SET(ENABLE_PYCONSOLE ON) SET(ENABLE_SUPERVGRAPHVIEWER ON) SET(ENABLE_QXGRAPHVIEWER ON) """) pass elif self.module == "jobmanager": newlines.append(""" IF(GUI_ROOT_DIR) SET(HAS_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "geom": newlines.append(""" IF(GUI_ROOT_DIR) SET(GEOM_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "medfile": newlines.append(""" SET(MED_NUM_MAJEUR 3) SET(MED_NUM_MINEUR 0) SET(MED_NUM_RELEASE 3) SET(LONG_OR_INT int) IF(NOT WINDOWS) SET(FLIBS -lgfortranbegin -lgfortran) ENDIF(NOT WINDOWS) """) pass elif self.module == "med": newlines.append(""" IF(KERNEL_ROOT_DIR) SET(MED_ENABLE_KERNEL ON) IF(NOT WINDOWS) SET(MED_ENABLE_SPLITTER ON) ENDIF(NOT WINDOWS) ENDIF(KERNEL_ROOT_DIR) IF(GUI_ROOT_DIR) SET(MED_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "smesh": newlines.append(""" IF(GUI_ROOT_DIR) SET(SMESH_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "netgen": newlines.append(""" SET(OCCFLAGS ${CAS_CPPFLAGS}) SET(OCCLIBS ${CAS_LDPATH}) SET(OCCLIBS ${OCCLIBS} ${TKernel} ${TKGeomBase} ${TKMath} ${TKG2d} ${TKG3d} ${TKXSBase} ${TKOffset} ${TKFillet} ${TKShHealing}) SET(OCCLIBS ${OCCLIBS} ${TKMesh} ${TKMeshVS} ${TKTopAlgo} ${TKGeomAlgo} ${TKBool} ${TKPrim} ${TKBO} ${TKIGES} ${TKBRep}) SET(OCCLIBS ${OCCLIBS} ${TKSTEPBase} ${TKSTEP} ${TKSTL} ${TKSTEPAttr} ${TKSTEP209} ${TKXDESTEP} ${TKXDEIGES} ${TKXCAF} ${TKLCAF} ${FWOSPlugin}) """) pass elif self.module == "netgenplugin": newlines.append(""" IF(GUI_ROOT_DIR) SET(NETGENPLUGIN_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "blsurfplugin": newlines.append(""" IF(GUI_ROOT_DIR) SET(BLSURFPLUGIN_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "ghs3dplugin": newlines.append(""" IF(GUI_ROOT_DIR) SET(GHS3DPLUGIN_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "hexoticplugin": newlines.append(""" IF(GUI_ROOT_DIR) SET(HEXOTICPLUGIN_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "ghs3dprlplugin": newlines.append(""" IF(GUI_ROOT_DIR) SET(GHS3DPRLPLUGIN_ENABLE_GUI ON) ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "yacs": newlines.append(""" SET(SALOME_KERNEL ON) SET(HAS_GUI ON) SET(WITH_QT4 ON) """) pass # -- newlines.append(""" set(VERSION 6.5.0) set(SHORT_VERSION 6.5) set(XVERSION 0x060500) """) pass # -- newlines.append(""" SET(VERSION_INFO 0.0.0) SET(SOVERSION_INFO 0) SET(SUBDIRS) SET(bin_PROGRAMS) SET(AM_CPPFLAGS -I${CMAKE_BINARY_DIR} ) SET(AM_CXXFLAGS -I${CMAKE_BINARY_DIR}) SET(LDADD) SET(pythondir lib/python${PYTHON_VERSION}/site-packages) SET(salomepythondir ${pythondir}/salome) SET(salomepypkgdir ${salomepythondir}/salome) """) if self.module == "smesh" and self.root[-len('SMESH_PY'):] == 'SMESH_PY': newlines.append(""" SET(smeshpypkgdir ${salomepythondir}/salome/smesh) """) pass if self.module == "netgen": newlines.append(r''' SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DNO_PARALLEL_THREADS -DOCCGEOMETRY -I${CMAKE_CURRENT_SOURCE_DIR}) ''') elif self.module == "kernel": newlines.append(r''' SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${CMAKE_BINARY_DIR}/salome_adm/unix -include SALOMEconfig.h) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${CMAKE_BINARY_DIR}/salome_adm/unix -include SALOMEconfig.h) ''') else: if self.module not in ["yacs"]: newlines.append(r''' IF(KERNEL_ROOT_DIR) SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h) ENDIF(KERNEL_ROOT_DIR) ''') pass if self.module == "gui": newlines.append(r''' IF(KERNEL_ROOT_DIR) SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DWITH_SALOMEDS_OBSERVER -DSUIT_ENABLE_PYTHON) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DWITH_SALOMEDS_OBSERVER -DSUIT_ENABLE_PYTHON) ENDIF(KERNEL_ROOT_DIR) ''') pass if self.module in ["smesh", "netgenplugin", "blsurfplugin", "ghs3dplugin", "hexoticplugin"]: newlines.append(r''' SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DWITH_SMESH_CANCEL_COMPUTE) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DWITH_SMESH_CANCEL_COMPUTE) ''') pass if self.module == "ghs3dplugin": # TODO: Auto-detect TetGen-GHS3D version automatically newlines.append(r''' SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DGHS3D_VERSION=42) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DGHS3D_VERSION=42) ''') pass if self.module == "hxx2salome": key = "_SRC" if self.the_root[-len(key):] != key: msg = "Source dir must finished with %s !"%(key) raise Exception(msg) hxxmodule = self.the_root[:-len(key)] from os.path import basename hxxmodule = basename(hxxmodule) hxxmodule = hxxmodule.lower() self.hxxmodule = hxxmodule newlines.append(r''' SET(HXXCPP_ROOT_DIR $ENV{%sCPP_ROOT_DIR}) SET(AM_CPPFLAGS ${AM_CPPFLAGS} -I${HXXCPP_ROOT_DIR}/include) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -I${HXXCPP_ROOT_DIR}/include) SET(LDADD ${LDADD} -L${HXXCPP_ROOT_DIR}/lib) '''%(hxxmodule.upper())) pass pass # -- return def treatLine(self, line, newlines, opened_ifs): # -- # Print the comment above the line itself # -- if line.find('#') >= 0: fields = line.split('#') line = fields[0] comment = '#'.join([''] + fields[1:]) newlines.append(comment) if len(line) == 0: return pass # -- # If the line begins with 'include ', just comment it # -- if line.find("include ") == 0: if line.find("include $(top_srcdir)/config/automake.common") == 0: for l in [ "MAINTAINERCLEANFILES = Makefile.in", "AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_builddir)/include", "AM_FFLAGS=-I$(top_srcdir)/include -I$(top_builddir)/include", "AM_FCFLAGS=-I$(top_srcdir)/include -I$(top_builddir)/include", "AM_CPPFLAGS+=@HDF5_CPPFLAGS@", "AM_LDFLAGS=@HDF5_LDFLAGS@", ]: self.treatLine(l, newlines, opened_ifs) pass pass else: newlines.append("# " + line) pass return # -- # If the line begins with '-include', just comment it # -- if line.find("-include") == 0: newlines.append("# " + line) return # -- # If the line is a definition of a make rule, just comment it # -- if line.count(':') == 1: newlines.append("# " + line) return # -- # A particuliar case where there are two ":" on the same line # -- if line.find('install-exec-local:') == 0: newlines.append("# " + line) return # -- # If the line begin by a tabulation, consider it's a makefile command and comment it # -- if line.find("\t") == 0: newlines.append("# " + line) return # -- # -- key = "-version-info" if line.find(key) >= 0: # -- before = line.split(key)[0] after = line[len(before)+len(key):] sep = after[0] after = after[1:] version_info = after.split()[0] line = line.replace(key+sep+version_info, "") # -- version_info = version_info.replace(':', '.') soversion_info = version_info.split('.')[0] newlines.append("SET(VERSION_INFO " + version_info + ")") newlines.append("SET(SOVERSION_INFO " + soversion_info + ")") # -- pass # -- # Replace the $(TOTO) by ${TOTO} # Replace the @TOTO@ by ${TOTO} # -- line = p_dollar.sub(r"${\1}", line) line = p_arobas.sub(r"${\1}", line) # -- line = line.replace(r"${top_builddir}", r"${CMAKE_BINARY_DIR}") line = line.replace(r"${top_srcdir}", r"${CMAKE_SOURCE_DIR}") line = line.replace(r"${srcdir}", r"${CMAKE_CURRENT_SOURCE_DIR}") line = line.replace(r"${builddir}", r"${CMAKE_CURRENT_BINARY_DIR}") line = line.replace(r"${datadir}", r"${CMAKE_INSTALL_PREFIX}/share") # -- # Check if the line is a 'if' condition # If yes, replace it by a cmake grammar # -- match = p_if.match(line) if match: theif = match.group("val") if theif[0] == "!": theif = "NOT " + theif[1:] pass line = p_if.sub(r"IF(%s)"%(theif), line) opened_ifs.append(theif) newlines.append(line) return # -- # Check if the line is a 'else' condition # If yes, replace it by a cmake grammar # -- match = p_else.match(line) if match: line = "ELSE(%s)"%(opened_ifs[-1]) newlines.append(line) return # -- # Check if the line is a 'endif' condition # If yes, replace it by a cmake grammar # -- match = p_endif.match(line) if match: line = "ENDIF(%s)"%(opened_ifs[-1]) opened_ifs[-1:] = [] newlines.append(line) return # -- # Check if the line is an attribution '=' or '+=' # -- match = p_attribution.match(line) if match: self.treatAttribution(match, newlines) return # -- newlines.append(line) # -- return def treatAttribution(self, match, newlines): spaces = match.group("spaces") key = match.group("key") method = match.group("method") value = match.group("value") # print [spaces, key, method, value] # -- # Open cmake SET command # -- newlines.append(spaces + "SET(" + key) # -- # If method is '+=', put the previous definition as first value # -- if method == "+=": newlines.append("%s ${%s}"%(spaces, key)) pass # -- fields = value.split() for i in range(len(fields)): newlines.append("%s %s"%(spaces, fields[i])) pass # -- if method == "+=": # -- # The try: except KeyError is here if the += # is an error which occurs in salome ... # -- try: self.__thedict__[key] += fields[:] except KeyError: self.__thedict__[key] = fields[:] pass pass else: self.__thedict__[key] = fields[:] pass # -- # Close cmake SET command # -- newlines.append("%s)"%(spaces)) return def finalize(self, newlines): # -- # Convert the .in files in build dir # -- upmod = "" if self.module == "hexoticplugin" : upmod = "HexoticPLUGIN" else : upmod = self.module.upper() import operator mod = self.module if mod in ['kernel', 'gui'] and self.root[-len('gui'):] == 'gui' or mod == 'med' and operator.contains(self.root, 'doxygen'): newlines.append(r''' SET(top_builddir ${CMAKE_BINARY_DIR} ) SET(top_srcdir ${CMAKE_SOURCE_DIR} ) SET(srcdir ${CMAKE_CURRENT_SOURCE_DIR} ) SET(builddir ${CMAKE_CURRENT_BINARY_DIR} ) SET(datadir ${CMAKE_INSTALL_PREFIX}/share ) SET(docdir ${datadir}/doc/salome ) ''') self.files.append("static/header.html.in") elif self.root[-len(mod):] == upmod and operator.contains(self.root, 'doc') or mod in ['kernel', 'gui', 'geom', 'med', 'smesh', 'visu'] and self.root[-len('tui'):] == 'tui': newlines.append(r''' SET(top_builddir ${CMAKE_BINARY_DIR} ) SET(top_srcdir ${CMAKE_SOURCE_DIR} ) SET(srcdir ${CMAKE_CURRENT_SOURCE_DIR} ) SET(builddir ${CMAKE_CURRENT_BINARY_DIR} ) SET(datadir ${CMAKE_INSTALL_PREFIX}/share ) SET(docdir ${datadir}/doc/salome ) ''') self.files.append("static/header.html.in") if mod in ['geom', 'smesh', 'visu','netgenplugin','blsurfplugin','hexoticplugin','ghs3dplugin',"ghs3dprlplugin"] and self.root[-len(mod):] == upmod: self.files.append("static/header_py.html.in") if self.module == "yacs": key = "salomegui" if self.root[-len(key):] == key: self.files.append("resources/YACSCatalog.xml.in") self.files.append("resources/SalomeApp.xml.in") pass pass from os import path if operator.contains(self.root, 'YACS_SRC'+path.sep+'doc'): newlines.append(r''' SET(srcdir ${CMAKE_CURRENT_SOURCE_DIR} ) ''') if self.module == "jobmanager": key = "salomegui" if self.root[-len(key):] == key: self.files.append("resources/SalomeApp.xml.in") pass pass for f in self.files: if f[-3:] == ".in": if self.module == 'yacs' and f == "Doxyfile.in": continue if f == "sstream.in": continue if f in ["runContainer.in", "stopContainer.in"]: if self.module == "med": if self.root[-3:] == "csh": continue pass pass if f == "SALOMEconfig.ref.in": out = "SALOMEconfig.h" else: out = f[:-3] pass newlines.append(r''' SET(input ${CMAKE_CURRENT_SOURCE_DIR}/%s) '''%(f)) newlines.append(r''' SET(output ${CMAKE_CURRENT_BINARY_DIR}/%s) '''%(out)) newlines.append(r''' MESSAGE(STATUS "Creation of ${output}") CONFIGURE_FILE(${input} ${output}) ''') pass pass # -- # add commands for generating of user's documentation # -- doc_gui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/gui/%s"%(upmod) doc_tui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/tui/%s"%(upmod) doc_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome" head_source = "${CMAKE_CURRENT_SOURCE_DIR}/images/head.png" if mod == 'kernel': prepare_generating_doc_src = "${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/prepare_generating_doc.py" else: prepare_generating_doc_src = "$ENV{KERNEL_ROOT_DIR}/bin/salome/prepare_generating_doc.py" if mod in ['kernel', 'gui'] and self.root[-len('gui'):] == 'gui' or mod == 'med' and operator.contains(self.root, 'doxygen'): if mod == 'med': doc_source = "${CMAKE_CURRENT_BINARY_DIR}/doc_ref_user/html" input = "Doxyfile_med_user" else: doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod) input = "" newlines.append("""\t ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE} %s COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; shutil.rmtree(r'''%s''', True); shutil.copytree(r'''%s''', r'''%s'''); shutil.copy(r'''%s''', r'''%s''')" VERBATIM WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )"""%(input, doc_gui_destination, doc_source, doc_gui_destination, head_source, doc_gui_destination)) from os import path if mod in ['geom', 'smesh', 'visu', 'netgenplugin','blsurfplugin','hexoticplugin','ghs3dplugin','ghs3dprlplugin'] and self.root[-len(mod):] == upmod and operator.contains(self.root, 'doc'): ign = r"""'*usr_docs*', '*CMakeFiles*', '*.cmake', 'doxyfile*', '*.vcproj', 'static', 'Makefile*'""" if mod in ['geom', 'smesh']: if mod == 'geom': tmp = 'geompy' input = "COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_tui \n\t\t" else: tmp = 'smesh' input = '' newlines.append(r""" IF(WINDOWS) STRING(REPLACE "/" "\\" f "%s") ELSE(WINDOWS) SET(f "%s") ENDIF(WINDOWS) ADD_CUSTOM_TARGET(usr_docs ${PYTHON_EXECUTABLE} ${f} %s.py ${CMAKE_SOURCE_DIR}/src/%s_SWIG/%sDC.py %s %sCOMMAND ${DOXYGEN_EXECUTABLE} doxyfile_py COMMAND ${DOXYGEN_EXECUTABLE} doxyfile COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''%s.py''')" COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; shutil.rmtree(r'''%s''', True); shutil.copytree(r'''${CMAKE_CURRENT_BINARY_DIR}''', r'''%s''', ignore=shutil.ignore_patterns(%s)); shutil.copy(r'''%s''', r'''%s''')" VERBATIM WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )"""%(prepare_generating_doc_src, prepare_generating_doc_src, tmp, upmod, tmp, tmp, input, tmp, doc_gui_destination, doc_gui_destination, ign, head_source, doc_gui_destination)) else: config_f = "" if mod in ['netgenplugin','blsurfplugin','hexoticplugin','ghs3dplugin', "ghs3dprlplugin"] : config_f = "doxyfile_py" else: config_f = "doxyfile_idl" newlines.append("""\t ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE} %s COMMAND ${DOXYGEN_EXECUTABLE} doxyfile COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; shutil.rmtree(r'''%s''',True); shutil.copytree(r'''${CMAKE_CURRENT_BINARY_DIR}''',r'''%s''', ignore=shutil.ignore_patterns(%s)); shutil.copy(r'''%s''',r'''%s''')" VERBATIM WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )"""%(config_f, doc_gui_destination, doc_gui_destination, ign, head_source, doc_gui_destination)) elif mod == 'yacs' and operator.contains(self.root, upmod + '_SRC'+path.sep+'doc'): from sys import platform params = ''; if platform == "win32": params = '-Q'; newlines.append(r""" ADD_CUSTOM_TARGET(html_docs ${SPHINX_EXECUTABLE} %s -c ${CMAKE_BINARY_DIR}/doc -b html ${ALLSPHINXOPTS} html COMMAND ${PYTHON_EXECUTABLE} -c \"import shutil\;shutil.rmtree('''%s''', True)\;shutil.copytree('''${CMAKE_CURRENT_BINARY_DIR}/html''', '''%s''')\" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})"""%(params, doc_gui_destination, doc_gui_destination)) elif mod in ['kernel', 'smesh', 'geom'] and operator.contains(self.root, upmod + '_SRC'+path.sep+'doc'+path.sep+'docutils'): from sys import platform params = "" ext = "" prf = "" if platform == "win32": params = '-Q'; ext = "bat" prf = "call" else: ext = "sh" prf = ". " doc_gui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/tui/%s/docutils"%(upmod) scr = self.writeEnvScript(upmod) newlines.append(r""" IF(WINDOWS) STRING(REPLACE "/" "\\" SCR "%s") ELSE(WINDOWS) SET(SCR "%s") ENDIF(WINDOWS) FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/env_s.%s "${SCR}") ADD_CUSTOM_TARGET(html_docs %s ${CMAKE_CURRENT_BINARY_DIR}/env_s.%s && ${SPHINX_EXECUTABLE} %s -c ${CMAKE_BINARY_DIR}/doc/docutils -W -b html ${ALLSPHINXOPTS} html COMMAND ${PYTHON_EXECUTABLE} -c \"import shutil\;shutil.rmtree('''%s''', True)\;shutil.copytree('''${CMAKE_CURRENT_BINARY_DIR}/html''', '''%s''')\" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})"""%(scr,scr,ext,prf,ext,params, doc_gui_destination, doc_gui_destination)) # -- # add commands for generating of developer's documentation # -- upmod = self.module.upper() if mod in ['kernel', 'gui', 'med', 'smesh', 'visu'] and self.root[-len('tui'):] == 'tui': if mod == 'kernel': tmp = """\tADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE} -u COMMAND ${DOXYGEN_EXECUTABLE} COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_CURRENT_BINARY_DIR}/doxyfile.bak''')" """ tmp1="" else: tmp = """\tADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE}""" if mod == 'visu': tmp1= r"""\n COMMAND ${PYTHON_EXECUTABLE} -c "from shutil import copy; copy(r'''${CMAKE_CURRENT_SOURCE_DIR}/images/visuscreen.png''', r'''%s''')" """%(doc_tui_destination) elif mod == 'smesh': extra_srcdir = "${CMAKE_CURRENT_SOURCE_DIR}/extra" tmp1= """\n COMMAND ${PYTHON_EXECUTABLE} -c "from shutil import copy; copy(r'''${CMAKE_CURRENT_SOURCE_DIR}/images/smeshscreen.png''', r'''%s'''); copy(r'''%s/AddNetgenInSalome2.pdf''', r'''%s'''); copy(r'''%s/PluginMeshers.html''', r'''%s''')" COMMAND ${PYTHON_EXECUTABLE} -c "from shutil import copy; copy(r'''%s/AddNetgenInSalome2.ps''', r'''%s'''); copy(r'''%s/AddNetgenInSalome2.sxw''', r'''%s''')" """%(doc_tui_destination, extra_srcdir,doc_destination, extra_srcdir,doc_destination, extra_srcdir,doc_destination,extra_srcdir,doc_destination) else: tmp1="" doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod) newlines.append(tmp + """ COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; shutil.rmtree(r'''%s''', True); shutil.copytree(r'''%s''', r'''%s'''); shutil.copy(r'''%s''', r'''%s''')" """%(doc_tui_destination, doc_source, doc_tui_destination, head_source, doc_tui_destination) + tmp1 + """ VERBATIM WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )""") if mod == 'geom' and self.root[-len('tui'):] == 'tui': tmp = 'geompy' doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod) newlines.append(r""" IF(WINDOWS) STRING(REPLACE "/" "\\" f "%s") ELSE(WINDOWS) SET(f "%s") ENDIF(WINDOWS) ADD_CUSTOM_TARGET(dev_docs ${PYTHON_EXECUTABLE} ${f} ${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py ${CMAKE_SOURCE_DIR}/src/%s_SWIG/%sDC.py %s COMMAND ${DOXYGEN_EXECUTABLE} doxyfile COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py''')" COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; shutil.rmtree(r'''%s''', True); shutil.copytree(r'''%s''', r'''%s'''); shutil.copy(r'''%s''', r'''%s'''); shutil.copy(r'''${CMAKE_CURRENT_SOURCE_DIR}/images/geomscreen.png''', r'''%s''')" VERBATIM WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )"""%(prepare_generating_doc_src, prepare_generating_doc_src, upmod, tmp, upmod, tmp, tmp, upmod, tmp, doc_tui_destination, doc_source, doc_tui_destination, head_source, doc_tui_destination, doc_tui_destination)) # -- # convert the SUBDIRS in cmake grammar # -- if 1: # self.__thedict__.has_key("SUBDIRS"): newlines.append(r''' FOREACH(dir ${SUBDIRS}) IF(NOT dir STREQUAL .) ADD_SUBDIRECTORY(${dir}) ENDIF(NOT dir STREQUAL .) ENDFOREACH(dir ${SUBDIRS}) ''') pass # -- # -- for key in ["lib_LTLIBRARIES", "noinst_LTLIBRARIES", "salomepyexec_LTLIBRARIES", "libparaview_LTLIBRARIES"] : if self.__thedict__.has_key(key): self.addLibTarget(key, newlines) pass pass # -- # -- for key in ["bin_PROGRAMS", "check_PROGRAMS"]: if self.__thedict__.has_key(key): self.addBinTarget(key, newlines) pass pass # -- # -- if self.__thedict__.has_key("BASEIDL_FILES"): if not self.__thedict__.has_key("IDL_FILES"): self.__thedict__["IDL_FILES"] = self.__thedict__["BASEIDL_FILES"] newlines.append(''' SET(IDL_FILES ${BASEIDL_FILES}) ''') pass pass # -- # -- key = "IDL_FILES" if self.__thedict__.has_key(key): if self.module == "kernel": newlines.append(''' SET(IDL_FILES ${IDL_FILES} Calcium_Ports.idl) ''') pass newlines.append(''' FOREACH(input ${IDL_FILES}) STRING(REGEX REPLACE ".idl" "" base ${input}) SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc) SET(outputs ${src}) SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc) SET(outputs ${outputs} ${dynsrc}) SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh) SET(outputs ${outputs} ${inc}) IF(input STREQUAL Calcium_Ports.idl) SET(input ${CMAKE_CURRENT_BINARY_DIR}/${input}) ELSE(input STREQUAL Calcium_Ports.idl) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) ENDIF(input STREQUAL Calcium_Ports.idl) SET(flags ${IDLCXXFLAGS} ${OMNIORB_IDLCXXFLAGS}) STRING(REGEX MATCH "-bcxx" ISBCXX ${flags}) IF(NOT ISBCXX) SET(flags -bcxx ${flags}) ENDIF(NOT ISBCXX) ADD_CUSTOM_COMMAND( OUTPUT ${outputs} COMMAND ${OMNIORB_IDL} ${flags} ${input} MAIN_DEPENDENCY ${input} ) ''') newlines.append(''' install(FILES ${input} DESTINATION idl/salome) ''') if self.module not in ["pyhello"]: newlines.append(''' SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh) install(FILES ${IDL_HEADER} DESTINATION include/salome) ''') pass newlines.append(''' INSTALL(CODE "SET(IDL_FILE ${input})") INSTALL(CODE "SET(DIR ${salomepythondir})") IF(WINDOWS) INSTALL(CODE "SET(DIR bin/salome)") ENDIF(WINDOWS) INSTALL(CODE "SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})") INSTALL(CODE "SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_PYTHON})") # -- SET(flags) FOREACH(f ${IDLPYFLAGS}) SET(flags "${flags} ${f}") ENDFOREACH(f ${IDLPYFLAGS}) STRING(REGEX MATCH "-bpython" ISBPYTHON ${flags}) IF(NOT ISBPYTHON) SET(flags "-bpython ${flags}") ENDIF(NOT ISBPYTHON) SET(IDLPYFLAGS ${flags}) STRING(REPLACE "\\\\" "/" IDLPYFLAGS ${IDLPYFLAGS}) INSTALL(CODE "SET(IDLPYFLAGS ${IDLPYFLAGS})") # -- ''') if self.module == "kernel": newlines.append(''' INSTALL(SCRIPT ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake) ''') else: newlines.append(''' STRING(REPLACE "\\\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR}) INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake) ''') pass newlines.append(''' ENDFOREACH(input ${IDL_FILES}) ''') pass # -- # -- for key in ["SWIG_SRC", "SWIGSOURCES", "SWIG_DEF"]: if self.__thedict__.has_key(key): newlines.append(''' SET(SWIG_SOURCES ${%s}) '''%(key)) self.__thedict__["SWIG_SOURCES"] = self.__thedict__[key] pass pass # -- # -- if self.__thedict__.has_key("SWIG_SOURCES"): newlines.append(''' IF(SWIG_SOURCES MATCHES ";") STRING(REGEX REPLACE ";.*" "" SWIG_SOURCES_FIRST "${SWIG_SOURCES}") ELSE(SWIG_SOURCES MATCHES ";") SET(SWIG_SOURCES_FIRST "${SWIG_SOURCES}") ENDIF(SWIG_SOURCES MATCHES ";") SET(flags) FOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS}) SET(test ON) IF(flags) LIST(FIND flags ${f} index) IF(NOT index EQUAL -1) SET(test OFF) ENDIF(NOT index EQUAL -1) ENDIF(flags) IF(test) SET(flags ${flags} ${f}) ENDIF(test) ENDFOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS}) ADD_CUSTOM_COMMAND( OUTPUT ${build_srcs} COMMAND ${SWIG_EXECUTABLE} ${flags} -o ${build_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/${SWIG_SOURCES_FIRST} MAIN_DEPENDENCY ${SWIG_SOURCES} ) ''') pass # -- # -- if self.__thedict__.has_key("BUILT_SOURCES"): newlines.append(''' FOREACH(f ${BUILT_SOURCES}) IF(f MATCHES "WRAP.cxx$") # STRING(REGEX REPLACE "WRAP.cxx" "WRAP.h" inc ${f}) STRING(REGEX REPLACE "WRAP.cxx" ".i" input ${f}) ADD_CUSTOM_COMMAND( OUTPUT ${f} # ${inc} COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${SWIG_PYTHON_INCLUDES} ${MYSWIG_FLAGS} -o ${f} ${CMAKE_CURRENT_SOURCE_DIR}/${input} MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${input} ) ENDIF(f MATCHES "WRAP.cxx$") ENDFOREACH(f ${BUILT_SOURCES}) ''') pass # -- # -- key = "MOC_FILES" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(output ${MOC_FILES}) ''') if self.module in ["jobmanager", "yacs"]: newlines.append(''' STRING(REGEX REPLACE _moc.cxx .hxx input ${output}) ''') else: newlines.append(''' STRING(REGEX REPLACE _moc.cxx .h input ${output}) ''') pass newlines.append(''' SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${MOC_FILES}) ''') pass # -- # -- key = "MOC_FILES_HXX" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(output ${MOC_FILES_HXX}) ''') newlines.append(''' STRING(REGEX REPLACE _moc.cxx .hxx input ${output}) ''') newlines.append(''' SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${MOC_FILES_HXX}) ''') pass # -- # -- key = "UIC_FILES" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(output ${UIC_FILES}) STRING(REPLACE "ui_" "" input ${output}) STRING(REPLACE ".h" ".ui" input ${input}) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${QT_UIC_EXECUTABLE} -o ${output} ${input} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${UIC_FILES}) ''') pass # -- # -- key = "PYUIC_FILES" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(output ${PYUIC_FILES}) STRING(REPLACE "_ui.py" ".ui" input ${output}) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${PYUIC_EXECUTABLE} -o ${output} ${input} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${PYUIC_FILES}) ADD_CUSTOM_TARGET(BUILD_PY_UI_FILES ALL DEPENDS ${PYUIC_FILES}) ''') pass # -- # -- key = "QRC_FILES" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(output ${QRC_FILES}) STRING(REGEX REPLACE "qrc_" "" input ${output}) STRING(REGEX REPLACE ".cxx" ".qrc" input ${input}) STRING(REGEX REPLACE ".qrc" "" name ${input}) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${QT_RCC_EXECUTABLE} ${input} -o ${output} -name ${name} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${QRC_FILES}) ''') pass # -- # -- key = "SIP_FILES" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(input ${SIP_FILES}) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) SET(output) FOREACH(out ${SIP_SRC}) SET(output ${output} ${CMAKE_CURRENT_BINARY_DIR}/${out}) ENDFOREACH(out ${SIP_SRC}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${SIP_EXECUTABLE} ${PYQT_SIPFLAGS} ${input} MAIN_DEPENDENCY ${input} ) ENDFOREACH(input ${SIP_FILES}) ''') pass # -- # For GUI/tools/dlgfactory # -- key = "UIC_FILES_QDIALOG" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(output ${UIC_FILES_QDIALOG} ${UIC_FILES_GDIALOG}) STRING(REPLACE "ui_" "" input ${output}) STRING(REPLACE ".hxx" ".ui" input ${input}) SET(input_path ${CMAKE_CURRENT_SOURCE_DIR}/${input}) IF (NOT EXISTS ${input_path}) SET(input_path ${CMAKE_CURRENT_BINARY_DIR}/${input}) ENDIF (NOT EXISTS ${input_path}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${QT_UIC_EXECUTABLE} -o ${output} ${input_path} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${UIC_FILES}) FOREACH(output ${MOC_FILES_QDIALOG} ${MOC_FILES_GDIALOG}) STRING(REGEX REPLACE _moc.cxx .hxx input ${output}) SET(input_path ${CMAKE_CURRENT_SOURCE_DIR}/${input}) IF (NOT EXISTS ${input_path}) SET(input_path ${CMAKE_CURRENT_BINARY_DIR}/${input}) ENDIF (NOT EXISTS ${input_path}) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input_path} -o ${output} MAIN_DEPENDENCY ${input} ) ENDFOREACH(output ${MOC_FILES}) ADD_CUSTOM_COMMAND( OUTPUT QDialogTest.ui QDialogTest.hxx QDialogTest.cxx COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/dlgfactory.py -n QDialogTest -t qdialog DEPENDS __QDIALOG__.ui __QDIALOG__.hxx __QDIALOG__.cxx dlgfactory.py ) ADD_CUSTOM_COMMAND( OUTPUT GDialogTest.ui GDialogTest.hxx GDialogTest.cxx COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/dlgfactory.py -n GDialogTest -t gdialog DEPENDS __GDIALOG__.ui __GDIALOG__.hxx __GDIALOG__.cxx dlgfactory.py ) ''') pass # -- # For make check # -- for key in ["TESTS"]: if self.__thedict__.has_key(key): newlines.append(''' SET(UNIT_TEST_PROG ${%s}) '''%(key)) self.__thedict__["UNIT_TEST_PROG"] = self.__thedict__[key] pass pass key = "UNIT_TEST_PROG" if self.__thedict__.has_key(key): newlines.append(''' FOREACH(input ${UNIT_TEST_PROG}) GET_FILENAME_COMPONENT(ext ${input} EXT) IF(ext STREQUAL .py) SET(test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${input}) ELSE(ext STREQUAL .py) IF(WINDOWS) SET(test ${CMAKE_CURRENT_BINARY_DIR}/${input}_exe.exe) ELSE() SET(test ${CMAKE_CURRENT_BINARY_DIR}/${input}_exe) ENDIF() ENDIF(ext STREQUAL .py) ADD_TEST(${input} ${test}) SET(fail_regex "KO") SET_PROPERTY(TEST ${input} PROPERTY FAIL_REGULAR_EXPRESSION "${fail_regex}") # IF(NOT WINDOWS) # ADD_TEST(${input}_valgrind valgrind ${test}) # SET_PROPERTY(TEST ${input}_valgrind PROPERTY FAIL_REGULAR_EXPRESSION "${fail_regex}") # SET_PROPERTY(TEST ${input}_valgrind PROPERTY PASS_REGULAR_EXPRESSION "no leaks are possible") # ENDIF() ENDFOREACH(input ${UNIT_TEST_PROG}) ''') pass # -- # Treat the install targets # -- resdir = self.module if resdir == "hxx2salome": resdir = self.hxxmodule pass d = { "salomeadmux_DATA" : "salome_adm/unix", "dist_salomeadmux_DATA" : "salome_adm/unix", "dist_salome_cmake_DATA" : "salome_adm/cmake_files", "dist_salomem4_DATA" : "salome_adm/unix/config_files", "dist_salome4depr_DATA" : "salome_adm/unix/config_files/DEPRECATED", "dist_admlocalm4_DATA" : "adm_local/unix/config_files", "dist_admlocal_cmake_DATA" : "adm_local/cmake_files", "salomeinclude_DATA" : "include/salome", "salomeinclude_HEADERS" : "include/salome", "nodist_salomeinclude_HEADERS" : "include/salome", "dist_salomeres_DATA" : "share/salome/resources/%s"%(resdir), "nodist_salomeres_DATA" : "share/salome/resources/%s"%(resdir), "nodist_salomeres_SCRIPTS" : "share/salome/resources/%s"%(resdir), "dist_salomescript_SCRIPTS" : "bin/salome", "dist_salomescript_DATA" : "bin/salome", "dist_salomescript_PYTHON" : "bin/salome", "dist_appliskel_SCRIPTS" : "bin/salome/appliskel", "dist_appliskel_PYTHON" : "bin/salome/appliskel", "nodist_salomescript_DATA" : "bin/salome", "salomepython_PYTHON" : "${salomepythondir}", "nodist_salomepython_PYTHON" : "${salomepythondir}", "dist_salomepython_DATA" : "${salomepythondir}", "sharedpkgpython_PYTHON" : "${salomepythondir}/shared_modules", "salomepypkg_PYTHON" : "${salomepypkgdir}", "mypkgpython_PYTHON" : "${mypkgpythondir}", "nodist_mypkgpython_PYTHON" : "${mypkgpythondir}", } if self.module == "jobmanager": d["bin_SCRIPTS"] = "bin" pass if self.module == "medfile": d = { "include_HEADERS" : "include", "nodist_include_HEADERS" : "include", "bin_SCRIPTS" : "bin", "doc_DATA" : "${docdir}", } pass if self.module == "netgen": d = { "include_HEADERS" : "include", "noinst_HEADERS" : "share/netgen/include", "dist_pkgdata_DATA" : "share/netgen", "dist_doc_DATA" : "share/doc/netgen", } pass for key, value in d.items(): if self.__thedict__.has_key(key): self.addInstallTarget(key, value, newlines) pass pass # -- return def setLibAdd(self, key, newlines): # -- newlines.append(r''' SET(libadd) ''') # -- newlines.append(r''' IF(WINDOWS) SET(targets) SET(targets ${targets} MEFISTO2D) FOREACH(target ${targets}) IF(name STREQUAL ${target}) SET(dir $ENV{F2CHOME}) STRING(REPLACE "\\\\" "/" dir ${dir}) SET(libadd ${libadd} ${dir}/LIBF77.lib) SET(libadd ${libadd} ${dir}/LIBI77.lib) ENDIF(name STREQUAL ${target}) ENDFOREACH(target ${targets}) ELSE(WINDOWS) SET(targets) SET(targets ${targets} MEFISTO2D) FOREACH(target ${targets}) IF(name STREQUAL ${target}) SET(libadd ${libadd} -lf2c) ENDIF(name STREQUAL ${target}) ENDFOREACH(target ${targets}) ENDIF(WINDOWS) ''') # -- newlines.append(r''' SET(libs ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${LDADD} ${${amname}_LIBADD} ${${amname}_LDADD} ${${amname}_LDFLAGS}) FOREACH(lib SALOMEBasics SalomeBatch) IF(name STREQUAL lib) SET(libs ${libs} ${PTHREAD_LIBS}) ENDIF(name STREQUAL lib) ENDFOREACH(lib SALOMEBasics SalomeBatch) ''') # -- newlines.append(r''' FOREACH(lib ${libs}) GET_FILENAME_COMPONENT(ext ${lib} EXT) IF(ext STREQUAL .la) GET_FILENAME_COMPONENT(lib ${lib} NAME_WE) STRING(REGEX REPLACE "^lib" "" lib ${lib}) ENDIF(ext STREQUAL .la) SET(vars) SET(vars ${vars} -no-undefined) SET(vars ${vars} -lvtkWidgets) IF(WINDOWS) SET(vars ${vars} -module) SET(vars ${vars} -Wl,-E) SET(vars ${vars} -Xlinker) SET(vars ${vars} -export-dynamic) SET(vars ${vars} -lm) SET(vars ${vars} -lboost_thread) SET(vars ${vars} -lboost_signals) SET(vars ${vars} -pthread -lpthread -ldl) ENDIF(WINDOWS) FOREACH(v ${vars}) IF(lib STREQUAL v) SET(lib) ENDIF(lib STREQUAL v) ENDFOREACH(v ${vars}) SET(test OFF) IF(lib) STRING(REGEX MATCH "^-lQt" test ${lib}) ENDIF(lib) IF(NOT test) SET(libadd ${libadd} ${lib}) ENDIF(NOT test) ENDFOREACH(lib ${libs}) TARGET_LINK_LIBRARIES(${name} ${libadd}) ''') # -- newlines.append(r''' IF(WINDOWS) SET(targets) SET(targets ${targets} MEFISTO2D) FOREACH(target ${targets}) IF(name STREQUAL ${target}) IF(CMAKE_BUILD_TYPE STREQUAL Debug) SET_TARGET_PROPERTIES(${name} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT") ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) ENDIF(name STREQUAL ${target}) ENDFOREACH(target ${targets}) ENDIF(WINDOWS) ''') # -- return def setCompilationFlags(self, key, newlines): newlines.append(r''' SET(var) IF(WINDOWS) SET(targets) SET(targets ${targets} SalomeIDLKernel) SET(targets ${targets} SalomeDS) SET(targets ${targets} SALOMEDSTest) SET(targets ${targets} SALOMEDS_Client_exe) SET(targets ${targets} SalomeIDLGEOM) SET(targets ${targets} GEOMEngine) SET(targets ${targets} MEDEngine) SET(targets ${targets} SMESHEngine) SET(targets ${targets} SMESH) SET(targets ${targets} SalomeIDLSPADDER) SET(targets ${targets} MeshJobManagerEngine) SET(targets ${targets} StdMeshersEngine) SET(targets ${targets} VISUEngineImpl) FOREACH(target ${targets}) IF(name STREQUAL ${target}) SET(var ${var} -DNOGDI) ENDIF(name STREQUAL ${target}) ENDFOREACH(target ${targets}) ENDIF(WINDOWS) ''') # -- if self.module in ["medfile", "yacs"]: newlines.append(r''' IF(WINDOWS) SET(var ${var} -DNOGDI) ENDIF(WINDOWS) ''') pass # -- newlines.append(r''' IF(WINDOWS) SET(targets) SET(targets ${targets} MEFISTO2D) FOREACH(target ${targets}) IF(name STREQUAL ${target}) SET(dir $ENV{F2CHOME}) STRING(REPLACE "\\\\" "/" dir ${dir}) SET(var ${var} -I${dir}) SET(var ${var} -DF2C_BUILD) ENDIF(name STREQUAL ${target}) ENDFOREACH(target ${targets}) ENDIF(WINDOWS) ''') # -- if self.module in ["geom", "med"]: newlines.append(r''' SET(var ${var} -I${CMAKE_CURRENT_SOURCE_DIR}) SET(var ${var} -I${CMAKE_CURRENT_BINARY_DIR}) ''') pass newlines.append(r''' SET(var ${var} ${AM_CPPFLAGS}) SET(var ${var} ${AM_CXXFLAGS}) ''') # -- newlines.append(r''' IF(type STREQUAL STATIC) SET(var ${var} -fPIC) ENDIF(type STREQUAL STATIC) ''') # -- if self.module == "yacs": newlines.append(r''' SET(var ${var} -DYACS_PTHREAD) SET(var ${var} -DCMAKE_BUILD) SET(var ${var} -DSALOME_KERNEL) SET(var ${var} -DDSC_PORTS) SET(var ${var} -DOMNIORB) ''') pass newlines.append(r''' SET(var ${var} ${PLATFORM_CPPFLAGS}) SET(var ${var} ${PTHREAD_CFLAGS}) SET(var ${var} ${${amname}_CPPFLAGS}) SET(var ${var} ${${amname}_CXXFLAGS}) SET(var ${var} ${${amname}_CFLAGS}) SET(vars) IF(WINDOWS) SET(vars ${vars} -include SALOMEconfig.h) SET(vars ${vars} -ftemplate-depth-32) SET(vars ${vars} -fPIC) SET(vars ${vars} -g) ENDIF(WINDOWS) SET(flags) FOREACH(f ${var}) FOREACH(v ${vars}) IF(f STREQUAL v) SET(f) ENDIF(f STREQUAL v) ENDFOREACH(v ${vars}) IF(f) string(REGEX MATCH "^-I" test_include ${f}) if(test_include) string(REGEX REPLACE "^-I" "" include_dir ${f}) if(include_dir) if(include_dir STREQUAL /usr/include) else(include_dir STREQUAL /usr/include) string(REGEX MATCH "^\\." test_dot ${include_dir}) if(test_dot) set(include_dir ${CMAKE_CURRENT_BINARY_DIR}/${include_dir}) endif(test_dot) include_directories(${include_dir}) endif(include_dir STREQUAL /usr/include) endif(include_dir) else(test_include) SET(flags "${flags} ${f}") endif(test_include) ENDIF(f) ENDFOREACH(f ${var}) SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}") ''') return def addLibTarget(self, key, newlines): newlines.append(r''' FOREACH(amname ${%s}) '''%(key)) # -- # Replace .la by _la ... # -- newlines.append(r''' STRING(REPLACE .la _la amname ${amname}) ''') # -- # Remove the _la for the cmake name # -- newlines.append(r''' STRING(LENGTH ${amname} len) MATH(EXPR newlen "${len}-3") STRING(SUBSTRING ${amname} 0 ${newlen} name) ''') # -- # Does the target begins with lib ?? # If yes, remove lib at beginning for cmake name # -- newlines.append(r''' STRING(REGEX MATCH "^lib" BEGIN_WITH_lib ${name}) IF(BEGIN_WITH_lib) STRING(LENGTH ${name} len) MATH(EXPR newlen "${len}-3") STRING(SUBSTRING ${name} 3 ${newlen} name) ENDIF(BEGIN_WITH_lib) ''') # -- # Does the target is an idl library # -- newlines.append(r''' STRING(REGEX MATCH "IDL" ISIDL ${name}) ''') # -- # Set the type of the library # -- newlines.append(r''' IF(ISIDL) IF(WINDOWS) SET(type STATIC) ELSE(WINDOWS) SET(type SHARED) ENDIF(WINDOWS) ELSE(ISIDL) SET(type SHARED) ENDIF(ISIDL) ''') if key == "noinst_LTLIBRARIES": newlines.append(r''' IF(WINDOWS) SET(type STATIC) ELSE(WINDOWS) SET(type STATIC) ENDIF(WINDOWS) ''') pass # -- # Set sources for the library # -- newlines.append(r''' SET(srcs) FOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES}) GET_FILENAME_COMPONENT(ext ${src} EXT) IF(ext STREQUAL .f) IF(src STREQUAL trte.f) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src}) STRING(REPLACE ".f" ".c" src ${src}) SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src}) SET(output ${src}) SET(cmd f2c) IF(NOT WINDOWS) IF(CMAKE_SIZEOF_VOID_P STREQUAL 8) SET(cmd valgrind f2c) # f2c seems to be buggy on 64 bits ... but with valgrind, it works :) ENDIF() ENDIF(NOT WINDOWS) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${cmd} ${input} MAIN_DEPENDENCY ${input} ) ELSE(src STREQUAL trte.f) SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src}) STRING(REPLACE ".f" ".o" src ${src}) SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src}) SET(output ${src}) IF(WINDOWS) SET(F77 g77) ELSE(WINDOWS) SET(F77 gfortran) ENDIF(WINDOWS) ADD_CUSTOM_COMMAND( OUTPUT ${output} COMMAND ${F77} -c -o ${output} ${input} MAIN_DEPENDENCY ${input} ) ENDIF(src STREQUAL trte.f) ENDIF(ext STREQUAL .f) SET(srcs ${srcs} ${src}) ENDFOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES}) ''') newlines.append(r''' SET(l ${nodist_${amname}_SOURCES} ${UIC_FILES}) FOREACH(f ${l}) SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f}) SET(srcs ${srcs} ${src}) ENDFOREACH(f ${l}) ''') newlines.append(r''' SET(build_srcs) SET(l ${nodist_${amname}_SOURCES} ${BUILT_SOURCES}) FOREACH(f ${l}) GET_FILENAME_COMPONENT(ext ${f} EXT) IF(ext STREQUAL .py) SET(fff) ELSE(ext STREQUAL .py) SET(fff ${CMAKE_CURRENT_BINARY_DIR}/${f}) ENDIF(ext STREQUAL .py) IF(fff) IF(build_srcs) LIST(FIND build_srcs ${fff} index) IF(NOT index EQUAL -1) SET(fff) ENDIF(NOT index EQUAL -1) ENDIF(build_srcs) ENDIF(fff) IF(fff) SET(build_srcs ${build_srcs} ${fff}) ENDIF(fff) ENDFOREACH(f ${l}) ''') # -- # Add the library to cmake # -- newlines.append(r''' ADD_LIBRARY(${name} ${type} ${srcs}) ''') # -- # The compilation flags # -- self.setCompilationFlags(key, newlines) # -- newlines.append(r''' SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO}) ''') # -- self.setLibAdd(key, newlines) # -- if 1: # key != "noinst_LTLIBRARIES": newlines.append(r''' SET(key %s) '''%(key)) newlines.append(r''' SET(test ON) IF(${key} STREQUAL noinst_LTLIBRARIES) SET(test OFF) ENDIF(${key} STREQUAL noinst_LTLIBRARIES) ''') if self.module == "netgen" : newlines.append(r''' IF(${key} STREQUAL noinst_LTLIBRARIES) IF(WINDOWS) SET(test ON) ENDIF(WINDOWS) ENDIF(${key} STREQUAL noinst_LTLIBRARIES) ''') pass newlines.append(r''' IF(test) ''') if self.module in ["medfile", "netgen"]: newlines.append(r''' SET(DEST lib) ''') elif key == "libparaview_LTLIBRARIES": newlines.append(r''' SET(DEST lib/paraview) ''') else: newlines.append(r''' SET(DEST lib/salome) ''') pass newlines.append(r''' IF(BEGIN_WITH_lib) INSTALL(TARGETS ${name} DESTINATION ${DEST}) ''') if self.module == "gui": newlines.append(r''' FOREACH(lib SalomePyQt) IF(name STREQUAL lib) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME ${name}.pyd) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME ${name}_d.pyd) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so DESTINATION ${DEST} RENAME ${name}.so) ENDIF(WINDOWS) ENDIF(name STREQUAL lib) ENDFOREACH(lib SalomePyQt) FOREACH(lib SalomePy) IF(name STREQUAL lib) IF(WINDOWS) IF(CMAKE_BUILD_TYPE STREQUAL Release) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.pyd) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}_d.pyd) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ENDIF(WINDOWS) ENDIF(name STREQUAL lib) ENDFOREACH(lib SalomePy) ''') pass if self.module == "geom": newlines.append(r''' IF(WINDOWS) STRING(REGEX MATCH "Export" ISExport ${name}) IF(ISExport) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.dll) ENDIF(ISExport) STRING(REGEX MATCH "Import" ISImport ${name}) IF(ISImport) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.dll) ENDIF(ISImport) ENDIF(WINDOWS) ''') pass newlines.append(r''' ELSE(BEGIN_WITH_lib) ''') newlines.append(r''' IF(WINDOWS) INSTALL(TARGETS ${name} DESTINATION ${salomepythondir}) IF(CMAKE_BUILD_TYPE STREQUAL Release) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${salomepythondir}/${name}.dll DESTINATION ${salomepythondir} RENAME ${name}.pyd) ELSE(CMAKE_BUILD_TYPE STREQUAL Release) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${salomepythondir}/${name}.dll DESTINATION ${salomepythondir} RENAME ${name}_d.pyd) ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) ELSE(WINDOWS) GET_TARGET_PROPERTY(version ${name} VERSION) GET_TARGET_PROPERTY(soversion ${name} SOVERSION) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so.${version}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so.${soversion}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so) ENDIF(WINDOWS) ''') newlines.append(r''' ENDIF(BEGIN_WITH_lib) ''') newlines.append(r''' ENDIF(test) ''') pass # -- newlines.append(r''' ENDFOREACH(amname ${%s}) '''%(key)) # -- return def addBinTarget(self, key, newlines): # -- newlines.append(r''' FOREACH(amname ${%s}) '''%(key)) # -- newlines.append(r''' SET(test ON) ''') if key == "check_PROGRAMS": newlines.append(r''' IF(bin_PROGRAMS) STRING(REGEX MATCH ${amname} is_present ${bin_PROGRAMS}) IF(is_present) SET(test OFF) ENDIF(is_present) ENDIF(bin_PROGRAMS) ''') pass newlines.append(r''' IF(test) ''') # -- newlines.append(r''' SET(name "${amname}_exe") SET(srcs ${${amname}_SOURCES} ${dist_${amname}_SOURCES}) SET(l ${nodist_${amname}_SOURCES}) FOREACH(f ${l}) SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f}) SET(srcs ${srcs} ${src}) ENDFOREACH(f ${l}) LIST(LENGTH srcs nb) IF(nb) ADD_EXECUTABLE(${name} ${srcs}) ''') # -- self.setCompilationFlags(key, newlines) # -- self.setLibAdd(key, newlines) # -- if self.module in ["jobmanager", "medfile", "netgen"]: newlines.append(r''' SET(DEST bin) ''') else: newlines.append(r''' SET(DEST bin/salome) ''') pass # -- if key == "bin_PROGRAMS": newlines.append(r''' IF(WINDOWS) INSTALL(TARGETS ${name} DESTINATION ${DEST}) INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe DESTINATION ${DEST} RENAME ${amname}.exe) INSTALL(CODE "FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe)") ELSE(WINDOWS) SET(PERMS) SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE) SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE) SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name} DESTINATION ${DEST} PERMISSIONS ${PERMS} RENAME ${amname}) ENDIF(WINDOWS) ''') pass # -- newlines.append(r''' ENDIF(nb) ''') # -- newlines.append(r''' ENDIF(test) ''') newlines.append(r''' ENDFOREACH(amname ${%s}) '''%(key)) # -- return def addInstallTarget(self, key, destination, newlines): newlines.append(r"FOREACH(f ${%s})"%(key)) newlines.append(r''' SET(DEST %s) '''%(destination)) newlines.append(r''' STRING(COMPARE EQUAL ${f} SALOMEconfig.h.in test_SALOMEconfig.h.in) IF(test_SALOMEconfig.h.in) INSTALL(FILES SALOMEconfig.ref.in DESTINATION ${DEST} RENAME SALOMEconfig.h.in) ELSE(test_SALOMEconfig.h.in) SET(dummy dummy-NOTFOUND) MARK_AS_ADVANCED(dummy) # FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${f}) FIND_FILE(dummy ${f} PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH) IF(dummy) ''') if key in ['dist_salomescript_SCRIPTS', 'dist_appliskel_SCRIPTS', 'dist_appliskel_PYTHON']: newlines.append(r''' SET(PERMS) SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE) SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE) SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE) INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS}) ''') else: newlines.append(r''' GET_FILENAME_COMPONENT(ext ${f} EXT) IF(ext STREQUAL .py) IF(DEST STREQUAL bin/salome) SET(PERMS) SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE) SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE) SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE) INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS}) ELSE(DEST STREQUAL bin/salome) INSTALL(FILES ${f} DESTINATION ${DEST}) ENDIF(DEST STREQUAL bin/salome) ELSE(ext STREQUAL .py) INSTALL(FILES ${f} DESTINATION ${DEST}) ENDIF(ext STREQUAL .py) ''') pass newlines.append(r''' ELSE(dummy) GET_FILENAME_COMPONENT(ext ${f} EXT) IF(ext STREQUAL .qm) STRING(REGEX REPLACE .qm .ts input ${f}) ''') if self.module in ["kernel", "gui", "yacs"]: newlines.append(r''' SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input}) ''') else: newlines.append(r''' SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) ''') pass newlines.append(r''' SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f}) # ADD_CUSTOM_COMMAND( # OUTPUT ${output} # COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output} # MAIN_DEPENDENCY ${input} # ) EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output}) ENDIF(ext STREQUAL .qm) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} DESTINATION ${DEST}) ENDIF(dummy) ENDIF(test_SALOMEconfig.h.in) ''') newlines.append(r''' GET_FILENAME_COMPONENT(ext ${f} EXT) IF(ext STREQUAL .py) INSTALL(CODE "SET(PYTHON_FILE ${f})") INSTALL(CODE "SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})") INSTALL(CODE "SET(DEST ${DEST})") INSTALL(CODE "SET(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})") ''') if self.module == "kernel": newlines.append(''' IF(f STREQUAL SALOME_ContainerPy.py) ELSE(f STREQUAL SALOME_ContainerPy.py) IF(f STREQUAL am2cmake.py) ELSE(f STREQUAL am2cmake.py) INSTALL(SCRIPT ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake) ENDIF(f STREQUAL am2cmake.py) ENDIF(f STREQUAL SALOME_ContainerPy.py) ''') else: newlines.append(''' STRING(REPLACE "\\\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR}) INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake) ''') pass newlines.append(r''' ENDIF(ext STREQUAL .py) ''') newlines.append(r"ENDFOREACH(f ${%s})"%(key)) return def writeListsFile(self): f = open(self.listsFile, "w") f.write(self.content) f.close() return def writeEnvScript(self, upmod): from sys import platform, version_info p_version = """%s.%s"""%(version_info[0],version_info[1]) python_path ="PYTHONPATH" path = "" begin = "" end = "" delim = "" cmd = "" pdir = "" omni = "" omni_py = "" if platform == "win32" : path = "PATH" begin = "%" end = "%" delim = ";" cmd = "@SET " omni = "/x86_win32" omni_py = "/python" pdir = "PDIR" else: path = "LD_LIBRARY_PATH" begin = "\${" end = "}" delim = ":" cmd = "export " omni_py = "/python" + p_version + "/" + "site-packages" pdir = "INST_ROOT" path_ = begin + path + end root_dir_ = begin + upmod + "_ROOT_DIR" + end python_path_ = begin + python_path + end _python_path_ = delim + python_path_+ "\n" _path_ = delim + path_+ "\n" _pdir = begin + pdir + end script = cmd + " " + python_path + "=" + root_dir_+"/lib/python" + p_version \ + "/site-packages/salome" + _python_path_ script = script + cmd + " " + python_path + "=" + root_dir_+"/bin/salome" + \ _python_path_ script = script + cmd + " "+ path + "=" + root_dir_+"/lib/salome"+ _path_ if upmod == "KERNEL" : script = script + cmd + " " + python_path + "=" + _pdir + \ "/omniORB-4.1.5/lib" + omni + _python_path_ script = script + cmd + " " + python_path + "=" + _pdir + \ "/omniORB-4.1.5/lib" + omni_py + _python_path_ script = script + cmd + " "+ path + "=" + _pdir+ "/omniORB-4.1.5/lib" + \ omni + _path_ if upmod == "GEOM" : script = self.writeEnvScript("KERNEL") + script script = self.writeEnvScript("GUI") + script if upmod == "SMESH" : script = self.writeEnvScript("GEOM") + script return script pass def convertAmFile(the_root, root, dirs, files, f, module): cmake = CMakeFile(the_root, root, dirs, files, f, module) cmake.writeListsFile() return def usage(exit_status): from sys import exit from sys import argv print "Usage: %s --module"%(argv[0]) exit(exit_status) return if __name__ == "__main__": # from sys import argv if len(argv) != 2: usage(1) pass # module = argv[1] if module.find('--') != 0: usage(1) pass module = module[2:] if len(module) == 0: usage(1) pass # from os import getcwd the_root = getcwd() # nok = 0 # from os import getenv from os import walk for root, dirs, files in walk(the_root): # -- # E.A. : Remove 'CVS' in dirs # E.A. : It allows to not recurse in CVS dirs # E.A. : See os module python documentation # -- try: dirs.remove('CVS') except ValueError: pass # -- if "Makefile.am.cmake" in files: if "Makefile.am" in files: files.remove("Makefile.am") pass pass # -- for f in files: if f in ["Makefile.am", "Makefile.am.cmake"]: convert = True if getenv("AM2CMAKE_FORCE_GENERATION", "0")=="0": # detect if conversion should be done if "CMakeLists.txt" in files: from os.path import join ff = open(join(root, "CMakeLists.txt")) content = ff.read() ff.close() if content.find("generated by am2cmake") == -1: convert = False pass pass pass if convert: convertAmFile(the_root, root, dirs, files, f, module) nok += 1 pass pass pass # from sys import stdout if nok: if nok == 1: msg = "%s file has been converted to cmake"%(nok) else: msg = "%s files have been converted to cmake"%(nok) pass stdout.write(msg) stdout.write("\n") stdout.flush() pass pass salome-kernel-6.5.0/salome_adm/cmake_files/install_and_compile_python_file.cmake000077500000000000000000000024631177004724000302370ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # SET(FULLDIR ${CMAKE_INSTALL_PREFIX}/${DEST}) MESSAGE(STATUS "py compiling ${FULLDIR}/${PYTHON_FILE}") SET(CMD "import py_compile ; py_compile.compile('${FULLDIR}/${PYTHON_FILE}')") EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "${CMD}") SET(CMD "import py_compile ; py_compile.compile('${FULLDIR}/${PYTHON_FILE}')") EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c "${CMD}") salome-kernel-6.5.0/salome_adm/cmake_files/install_python_from_idl.cmake000077500000000000000000000022221177004724000265520ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # SET(FULLDIR ${CMAKE_INSTALL_PREFIX}/${DIR}) FILE(MAKE_DIRECTORY ${FULLDIR}) MESSAGE(STATUS "Compiling ${IDL_FILE} into ${FULLDIR}") EXECUTE_PROCESS(COMMAND ${OMNIORB_IDL_PYTHON} ${IDLPYFLAGS} -C${FULLDIR} ${IDL_FILE}) salome-kernel-6.5.0/salome_adm/cmake_files/prepare_generating_doc.py000077500000000000000000000027031177004724000256720ustar00rootroot00000000000000#!/usr/bin/env python # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, re outfile = open(sys.argv[1], 'wb') isCom = False for line in open(sys.argv[2], 'rb').readlines(): if re.match('class '+sys.argv[3]+'DC', line): continue n = line.find('"""') n1 = line[(n+2):].find('"""') if (n > -1) and (n1 > -1): continue if isCom: if n > -1: isCom = False continue else: if n > -1: isCom = True continue line = re.sub(r'^\s+#', '#', line) line = re.sub(r'^\s+def', 'def', line) line = re.sub(sys.argv[3]+'DC', sys.argv[3], line) outfile.write(line) outfile.close()salome-kernel-6.5.0/salome_adm/unix/000077500000000000000000000000001177004724000173465ustar00rootroot00000000000000salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/000077500000000000000000000000001177004724000207465ustar00rootroot00000000000000salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/F77config.h.in000077500000000000000000000021031177004724000232540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef F77_FUNC #define F77_FUNC(name,NAME) @F77_FUNC_NAME@ #define F77_FUNC_(name,NAME) @F77_FUNC_NAME_@ #endif salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/depend.in000077500000000000000000000116301177004724000225410ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## -*- 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/distdep .depend >>$@; \ else \ echo 'Dependencies cannot be built when $$srcdir == $$builddir'; \ fi depend:.depend # when use the path as regexp, prevent taking "." for "any symbol" srcdir_re = $(subst .,[.],$(srcdir)) top_srcdir_re = $(subst .,[.],$(top_srcdir)) top_builddir_re = $(subst .,[.],$(top_builddir)) # 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_re)/% $$(srcdir)/%g' | \ sed 's% $(top_srcdir_re)/% $$(top_srcdir)/%g' | \ sed 's% $(top_builddir_re)/% $$(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_re)/% $$(srcdir)/%g' | \ sed 's% $(top_srcdir_re)/% $$(top_srcdir)/%g' | \ sed 's% $(top_builddir_re)/% $$(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_re)/% $$(srcdir)/%g' | \ sed 's% $(top_srcdir_re)/% $$(top_srcdir)/%g' | \ sed 's% $(top_builddir_re)/% $$(top_builddir)/%g' | \ sed 's/\.o/.lo/' >>$@; \ ;; \ esac; \ fi; \ fi; \ done; -include .depend # idl depend -include $(top_builddir)/idl/.depidl salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/envScript.in000077500000000000000000000030301177004724000232520ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # 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 SALOME_SRC_DIR=@ROOT_SRCDIR@ export SALOME_SRC_DIR ORB_HOME_DIR=@CORBA_ROOT@ export ORB_HOME_DIR LD_LIBRARY_PATH=${SALOME_HOME_DIR}/lib:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH # echo $SALOME_HOME_DIR = SALOME_HOME_DIR # echo $SALOME_SRC_DIR = SALOME_SRC_DIR PYVTK_PATH=@VTKPY_MODULES@ PYTHONPATH=${PYTHONPATH}:${SALOME_HOME_DIR}/idl:${SALOME_HOME_DIR}/bin:${SALOME_HOME_DIR}/lib:${PYVTK_PATH}:${EXEC_DIR} export PYTHONPATH MICORC=/dev/null export MICORC salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/make_commence.in000077500000000000000000000150421177004724000240660ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # common directories to put headerfiles # inc_builddir=$(top_builddir)/include/salome @SET_MAKE@ # Modifcation B. Secher portage sur osf SHELL=@SHELL@ # header missing HAVE_SSTREAM=@HAVE_SSTREAM@ MODULE_NAME=@MODULE_NAME@ LIBS=@LIBS@ LIBSFORBIN=@LIBS@ LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome # add libstdc++ to link c++ library with libtool ! LDFLAGS+= @STDLIB@ LDFLAGSFORBIN+= @STDLIB@ #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@ # BOOST Library BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIBS = @BOOST_LIBS@ # OpenPBS OPENPBS_INCLUDES = @OPENPBS_INCLUDES@ OPENPBS_LIBDIR = @OPENPBS_LIBDIR@ OPENPBS_LIBS = @OPENPBS_LIBS@ # LSF LSF_INCLUDES = @LSF_INCLUDES@ LSF_LIBDIR = @LSF_LDFLAGS@ LSF_LIBS = @LSF_LIBS@ # CPPUNIT CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ # PYTHON PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_VERSION = @PYTHON_VERSION@ PYTHON_SITE = $(prefix)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages PYTHON_SITE_INSTALL = $(prefix)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome # 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@ QT_VERS = @QT_VERS@ MOC = @MOC@ UIC = @UIC@ # msg2qm MSG2QM = @MSG2QM@ #QWT QWT_INCLUDES=@QWT_INCLUDES@ QWT_LIBS=@QWT_LIBS@ # SIP SIP = @SIP@ SIP_INCLUDES = @SIP_INCLUDES@ SIP_LIBS = @SIP_LIBS@ SIP_VERS = @SIP_VERS@ # PYQT PYQT_SIPS = @PYQT_SIPS@ PYQT_LIBS = @PYQT_LIBS@ PYQT_INCLUDES = @PYQT_INCLUDES@ PYUIC = @PYUIC@ PYQT_SIPFLAGS = @PYQT_SIPFLAGS@ # 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@ # OpenCasCade OCC_INCLUDES=@CAS_CPPFLAGS@ OCC_CXXFLAGS=@CAS_CXXFLAGS@ CAS_KERNEL=@CAS_KERNEL@ CAS_MATH=@CAS_MATH@ CAS_OCAF=@CAS_OCAF@ CAS_OCAFVIS=@CAS_OCAFVIS@ CAS_TKTopAlgo=@CAS_TKTopAlgo@ CAS_VIEWER=@CAS_VIEWER@ CAS_MODELER=@CAS_MODELER@ CAS_DATAEXCHANGE=@CAS_DATAEXCHANGE@ CAS_LDPATH=@CAS_LDPATH@ # MPI MPI_INCLUDES=@MPI_INCLUDES@ MPI_LIBS=@MPI_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)/salome/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 = -bcxx @IDLCXXFLAGS@ -I$(top_builddir)/salome/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) LIBSFORBIN+=$(CORBA_LIBS) DOXYGEN = @DOXYGEN@ ## 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@ KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@ KERNEL_SITE_DIR=@KERNEL_SITE_DIR@ KERNEL_LDFLAGS=@KERNEL_LDFLAGS@ KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@ ## Installation points prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@exec_prefix@/bin/salome libdir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/salome # warning : if user give this path in configure we could have salome/salome :-( includedir=@includedir@/salome datadir=@datadir@/salome idldir=${prefix}/idl/salome sharedpydir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules incmakedir=${prefix}/salome_adm/unix docdir=${prefix}/doc/salome # # begin of package rules # .PHONY: all lib bin inc resources data docs 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 $(MAKE) data # # add target to build administrative files # # Building html from restructured text files STYLESHEET=rst.css RST2HTML=@RST2HTML@ #RSTOPTS=--output-encoding=latin1 --stylesheet=$(STYLESHEET) RSTOPTS=--output-encoding=latin1 %.html: $(srcdir)/%.txt $(RST2HTML) $(RSTOPTS) $< $@ salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/make_conclude.in000077500000000000000000000360431177004724000241000ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #======================================================================= # 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: /home/server/cvs/KERNEL/KERNEL_SRC/salome_adm/unix/DEPRECATED/make_conclude.in,v 1.6.32.2.12.1 2012-04-12 14:05:00 vsr Exp $ # ORB Specifics rules # @CORBA@ # transform idl reference in appropriate obj file LIB_CLIENT_SRC = $(LIB_CLIENT_IDL:%.idl=%$(IDL_CLN_CXX)) $(LIB_CLIENT_IDL:%.idl=%DynSK.cc) 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_CLIENT_IDL:%.idl=%DynSK.o) 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@LIB_LOCATION_SUFFIX@/salome/%.la) LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la, $(filter %.la, $(LIB))) LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.a, $(filter %.a, $(LIB))) LIB_BUILD_SO = $(patsubst %.so, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.so, $(filter %.so, $(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_BUILD_SO) $(LIB_CLIENT_PY) # we don't build static library ! $(LIB_BUILD): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la: %.la -$(RM) $@ -$(RM) $(patsubst %.la, %.so, $@) -$(RM) $(patsubst %.la, %.a, $@) ln -sf $(CURDIR)/$< $@ || true ln -sf $(patsubst %.la, %.so, $(CURDIR)/.libs/$<) \ $(patsubst %.la, %.so, $@) || true ln -sf $(patsubst %.la, %.so, $(CURDIR)/.libs/$<).0 \ $(patsubst %.la, %.so, $@).0 || true if test "X$(LIB_SWIG)" != "X"; then \ ln -sf $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/_$(LIB_SWIG) || true;\ fi; $(LIB_BUILD_A): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.a: %.a -$(RM) $@ ln -sf $(CURDIR)/$< $@ || true $(LIB_BUILD_SO): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.so: %.so -$(RM) $@ ln -sf $(CURDIR)/$< $@ || true $(LIB): $(LIB_OBJ) @$(LT) --mode=link $(CXX) -shared -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_CLIENT_IDL:%.idl=%DynSK.cc) 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_CLIENT_IDL:%.idl=%DynSK.o) 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 -sf $(CURDIR)/$< $@ $(BIN) $(TEST_PROGS): %: %.lo $(BIN_OBJ) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(BIN_LIB) $(LDFLAGSFORBIN) $(LIBSFORBIN) # copy python scripts in $(top_builddir)/bin/salome # UI_FILES = $(notdir $(wildcard $(srcdir)/*.ui)) UI_PY_FILES_PY = $(patsubst %.ui, %.py, $(UI_FILES)) UI_PY_FILES = $(filter-out $(EXPORT_PYSCRIPTS) ,$(UI_PY_FILES_PY)) DEST_PYSCRIPTS = $(EXPORT_PYSCRIPTS:%=$(top_builddir)/bin/salome/%) DEST_UI_PY_FILES = $(UI_PY_FILES:%=$(top_builddir)/bin/salome/%) pyscripts: $(DEST_PYSCRIPTS) $(UI_PY_FILES) $(DEST_UI_PY_FILES) $(DEST_PYSCRIPTS): $(top_builddir)/bin/salome/%: % cp -f $< $@ # generate generic python scripts from *.ui files # $(UI_PY_FILES): %.py: %.ui $(PYUIC) $< -o $@ # copy ui-generated python scripts in $(top_builddir)/bin # $(DEST_UI_PY_FILES): $(top_builddir)/bin/salome/%: % cp -f $< $@ # copy pyqt files in $(PYTHON_SHARED_SITE) # PYTHON_SHARED_SITE=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/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: unittest test: $(LIB) $(TEST_PROGS:%=$(top_builddir)/bin/salome/%) unittest: @if test "x$(UNIT_TEST_PROG)" != "x"; then \ $(top_builddir)/bin/salome/$(UNIT_TEST_PROG); \ fi; # 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_FILES_ALL := $(notdir $(wildcard $(srcdir)/resources/*)) RESOURCES_FILES_ALL := $(filter-out CVS, $(RESOURCES_FILES_ALL)) RESOURCES_FILES_ALL := $(filter-out %.po, $(RESOURCES_FILES_ALL)) RESOURCES_FILES_ALL := $(filter-out %.in, $(RESOURCES_FILES_ALL)) RESOURCES_FILES ?= $(RESOURCES_FILES_ALL) resources: resources-po resources-cp resources-po: $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%.qm) resources-cp: $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%) $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%): $(top_builddir)/share/salome/resources/$(MODULE_NAME)/% : % cp -fr $< $@; # 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 install-res @for f in X $(LIB); do \ if test $$f != X; then \ ($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1); \ fi; \ done @if test "X$(LIB_SWIG)" != "X"; then \ (cd $(libdir); ln -sf $(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 \ (cp -p -f $$f $(includedir) || exit 1); \ fi; \ done # Install python script in $(bindir) install-python: $(bindir) $(EXPORT_PYSCRIPTS:%=install-%) $(UI_PY_FILES:%=install-%) $(UI_PY_FILES:%=install-%): install-%: % $(INSTALL_PROGRAM) $< $(bindir)/. $(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/$(MODULE_NAME) @for f in X $(PO_FILES:%.po=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%.qm); do \ if test $$f != X; then \ ($(INSTALL_DATA) $$f $(datadir)/resources/$(MODULE_NAME)/. || exit 1); \ fi; \ done # generic rule to install resources files (png, ini ...): install-res: resources $(INSTALL) -d $(datadir)/resources/$(MODULE_NAME) @for f in X $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%); do \ if test $$f != X; then \ ($(INSTALL_DATA) $$f $(datadir)/resources/$(MODULE_NAME)/. || 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 python script in $(bindir) @for f in X $(UI_PY_FILES); 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/$(MODULE_NAME)/$$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@LIB_LOCATION_SUFFIX@/salome/$(LIB) -$(RM) $(patsubst %,$(top_builddir)/bin/salome/%, $(BIN)) -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB)) -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/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/$(MODULE_NAME)/%.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/$(MODULE_NAME)/%.qm: %.po $(MSG2QM) $< $@ ; \ #------------------------------------------------------------------------------ # 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@ salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/make_module.in000077500000000000000000000104161177004724000235650ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # 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_FILES_ALL := $(notdir $(wildcard $(srcdir)/resources/*)) RESOURCES_FILES_ALL := $(filter-out CVS, $(RESOURCES_FILES_ALL)) RESOURCES_FILES_ALL := $(filter-out %.po, $(RESOURCES_FILES_ALL)) RESOURCES_FILES_ALL := $(filter-out %.in, $(RESOURCES_FILES_ALL)) RESOURCES_FILES ?= $(RESOURCES_FILES_ALL) resources: resources-cp @@SETX@; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@) || exit 1; \ done resources-cp: $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%) $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%): $(top_builddir)/share/salome/resources/$(MODULE_NAME)/% : % cp -fr $< $@; #data: # @if test "X$(top_builddir)" = "X."; then \ # ((cd examples && $(MAKE) $@) || exit 1); \ # fi; # Commented because we need not to make docs when we make BUILD # docs: # @if test "X$(top_builddir)" = "X."; then \ # ((cd doc && $(MAKE) $@) || exit 1); \ # fi; 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/$(MODULE_NAME)/%) -$(RM) Makefile install-resources: resources-cp # one resources directory for all salome modules $(INSTALL) -d $(datadir)/resources/$(MODULE_NAME) @for f in X $(RESOURCES_FILES:%=$(top_builddir)/share/salome/resources/$(MODULE_NAME)/%); do \ if test $$f != X; then \ ($(INSTALL_DATA) $$f $(datadir)/resources/$(MODULE_NAME)/. || 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/$(MODULE_NAME)/$$f ; \ fi; \ done salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/make_omniorb.in000077500000000000000000000053771177004724000237570ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #======================================================================= # 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: /home/server/cvs/KERNEL/KERNEL_SRC/salome_adm/unix/DEPRECATED/make_omniorb.in,v 1.4.32.2.12.1 2012-04-12 14:05:00 vsr Exp $ # 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 #======================================================================= salome-kernel-6.5.0/salome_adm/unix/DEPRECATED/sstream.in000077500000000000000000000121721177004724000227620ustar00rootroot00000000000000/* 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__ */ salome-kernel-6.5.0/salome_adm/unix/Makefile.am000077500000000000000000000040751177004724000214130ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am SUBDIRS = config_files DEPRECATED_FILES=\ DEPRECATED/F77config.h.in \ DEPRECATED/sstream.in \ DEPRECATED/envScript.in \ DEPRECATED/depend.in \ DEPRECATED/make_commence.in \ DEPRECATED/make_conclude.in \ DEPRECATED/make_module.in \ DEPRECATED/make_omniorb.in # rules for install and build (see make_common_starter.am) salomeadmux_DATA = SALOMEconfig.h.in salomeinclude_DATA = SALOMEconfig.h BUILT_SOURCES=SALOMEconfig.ref SALOMEconfig.h SALOMEconfig.h.in mostlyclean-local: -rm -rf SALOMEconfig.h SALOMEconfig.h.in SALOMEconfig.h.in : SALOMEconfig.ref.in cp -pf $< $@; # test if SALOMEconfig.ref has changed (contents), at build time SALOMEconfig.h: $(top_builddir)/salome_adm/unix/SALOMEconfig.ref @if ! [ -a $@ ]; then \ echo cp -pf $< $@; \ cp -pf $< $@; \ fi; \ if ! cmp -s $< $@; then \ echo cp -pf $< $@; \ cp -pf $< $@; \ fi; # The deprecated files are deprecated for the KERNEL but not for the # related modules (GUI, MED, ...), for now. Some files have to be installed. dist_salomeadmux_DATA=\ $(DEPRECATED_FILES) salome-kernel-6.5.0/salome_adm/unix/Makefile.in000077500000000000000000000771231177004724000214300ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomeadmux_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/SALOMEconfig.ref.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = salome_adm/unix ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SALOMEconfig.ref CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomeadmuxdir)" \ "$(DESTDIR)$(salomeadmuxdir)" "$(DESTDIR)$(salomeincludedir)" DATA = $(dist_salomeadmux_DATA) $(salomeadmux_DATA) \ $(salomeinclude_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules SUBDIRS = config_files DEPRECATED_FILES = \ DEPRECATED/F77config.h.in \ DEPRECATED/sstream.in \ DEPRECATED/envScript.in \ DEPRECATED/depend.in \ DEPRECATED/make_commence.in \ DEPRECATED/make_conclude.in \ DEPRECATED/make_module.in \ DEPRECATED/make_omniorb.in # rules for install and build (see make_common_starter.am) salomeadmux_DATA = SALOMEconfig.h.in salomeinclude_DATA = SALOMEconfig.h BUILT_SOURCES = SALOMEconfig.ref SALOMEconfig.h SALOMEconfig.h.in # The deprecated files are deprecated for the KERNEL but not for the # related modules (GUI, MED, ...), for now. Some files have to be installed. dist_salomeadmux_DATA = \ $(DEPRECATED_FILES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu salome_adm/unix/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu salome_adm/unix/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): SALOMEconfig.ref: $(top_builddir)/config.status $(srcdir)/SALOMEconfig.ref.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomeadmuxDATA: $(dist_salomeadmux_DATA) @$(NORMAL_INSTALL) test -z "$(salomeadmuxdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeadmuxdir)" @list='$(dist_salomeadmux_DATA)'; test -n "$(salomeadmuxdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeadmuxdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeadmuxdir)" || exit $$?; \ done uninstall-dist_salomeadmuxDATA: @$(NORMAL_UNINSTALL) @list='$(dist_salomeadmux_DATA)'; test -n "$(salomeadmuxdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeadmuxdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeadmuxdir)" && rm -f $$files install-salomeadmuxDATA: $(salomeadmux_DATA) @$(NORMAL_INSTALL) test -z "$(salomeadmuxdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeadmuxdir)" @list='$(salomeadmux_DATA)'; test -n "$(salomeadmuxdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeadmuxdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeadmuxdir)" || exit $$?; \ done uninstall-salomeadmuxDATA: @$(NORMAL_UNINSTALL) @list='$(salomeadmux_DATA)'; test -n "$(salomeadmuxdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeadmuxdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeadmuxdir)" && rm -f $$files install-salomeincludeDATA: $(salomeinclude_DATA) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_DATA)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeDATA: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_DATA)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(salomeadmuxdir)" "$(DESTDIR)$(salomeadmuxdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dist_salomeadmuxDATA install-salomeadmuxDATA \ install-salomeincludeDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_salomeadmuxDATA uninstall-salomeadmuxDATA \ uninstall-salomeincludeDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dist_salomeadmuxDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-salomeadmuxDATA install-salomeincludeDATA \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-local pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-dist_salomeadmuxDATA \ uninstall-salomeadmuxDATA uninstall-salomeincludeDATA mostlyclean-local: -rm -rf SALOMEconfig.h SALOMEconfig.h.in SALOMEconfig.h.in : SALOMEconfig.ref.in cp -pf $< $@; # test if SALOMEconfig.ref has changed (contents), at build time SALOMEconfig.h: $(top_builddir)/salome_adm/unix/SALOMEconfig.ref @if ! [ -a $@ ]; then \ echo cp -pf $< $@; \ cp -pf $< $@; \ fi; \ if ! cmp -s $< $@; then \ echo cp -pf $< $@; \ cp -pf $< $@; \ fi; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/salome_adm/unix/SALOMEconfig.ref.in000077500000000000000000000034121177004724000226220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /* Debug mode ??? */ #ifndef DEBUG # define DEBUG #endif /* CORBA headers include rules */ #ifndef CORBA_CLIENT_HEADER # define QUOTE(x) #x # define CORBA_CLIENT_HEADER(x) QUOTE(x@IDL_CLN_H@) # define CORBA_SERVER_HEADER(x) QUOTE(x@IDL_SRV_H@) #endif /* Platform definition */ #ifndef @MACHINE@ #define @MACHINE@ #endif // This is only to suppress warning messages with defines redefined (cause of omniORB that exports these names) #ifdef PACKAGE #undef PACKAGE #endif #ifdef PACKAGE_BUGREPORT #undef PACKAGE_BUGREPORT #endif #ifdef PACKAGE_NAME #undef PACKAGE_NAME #endif #ifdef PACKAGE_STRING #undef PACKAGE_STRING #endif #ifdef PACKAGE_TARNAME #undef PACKAGE_TARNAME #endif #ifdef PACKAGE_VERSION #undef PACKAGE_VERSION #endif #ifdef VERSION #undef VERSION #endif #ifdef _POSIX_C_SOURCE #undef _POSIX_C_SOURCE #endif salome-kernel-6.5.0/salome_adm/unix/config_files/000077500000000000000000000000001177004724000217755ustar00rootroot00000000000000salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/000077500000000000000000000000001177004724000233755ustar00rootroot00000000000000salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ac_cc_warnings.m4000077500000000000000000000060141177004724000266030ustar00rootroot00000000000000dnl Synopsis : AC_CC_WARNINGS([ANSI]) dnl Version : 1.1 (2000/12/31) dnl Author : Ville Laurikari dnl Description : 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 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. dnl 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 ]) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ac_cxx_bool.m4000077500000000000000000000034071177004724000261260ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_BOOL 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 @version $Id: ac_cxx_bool.m4,v 1.4.32.2.12.1 2012-04-12 14:05:02 vsr Exp $ 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 ]) salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ac_cxx_mutable.m4000077500000000000000000000034321177004724000266220ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_MUTABLE 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 @version $Id: ac_cxx_mutable.m4,v 1.4.32.2.12.1 2012-04-12 14:05:02 vsr Exp $ 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 ]) salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ac_cxx_partial_specialization.m4000077500000000000000000000037621177004724000317310ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_PARTIAL_SPECIALIZATION dnl If the compiler supports partial specialization, dnl define HAVE_PARTIAL_SPECIALIZATION. dnl @version $Id: ac_cxx_partial_specialization.m4,v 1.4.32.2.12.1 2012-04-12 14:05:02 vsr Exp $ 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 ]) salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ac_cxx_typename.m4000077500000000000000000000031441177004724000270130ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_TYPENAME dnl dnl If the compiler recognizes the typename keyword, define HAVE_TYPENAME. dnl dnl @version $Id: ac_cxx_typename.m4,v 1.4.32.2.12.1 2012-04-12 14:05:02 vsr Exp $ 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 ]) salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/check_Salome.m4000077500000000000000000000044701177004724000262240ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl------------------------------------------------------------ dnl Check availability of Salome binary distribution dnl Author : Marc Tajchman (CEA, 2002) dnl------------------------------------------------------------ dnl 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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/check_java.m4000077500000000000000000000053151177004724000257240ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl 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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/check_mico.m4000077500000000000000000000071371177004724000257360ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl 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 if test "x$MICO_LIB" = "x/usr/lib" then MICO_LDFLAGS="" else MICO_LDFLAGS="-L$MICO_LIB" fi 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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/check_pthreads.m4000077500000000000000000000021041177004724000266060ustar00rootroot00000000000000#@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: check_pthreads.m4,v 1.4.32.1 2010-05-14 12:57:09 vsr Exp $ dnl ---------------------------------------------------------------- dnl CHECK_PTHREADS AC_DEFUN([CHECK_PTHREADS],[ AC_CXX_OPTION(-pthread,CPPFLAGS,flag=yes,flag=no) if test $flag = no; then 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",LIBS_PTHREADS="") else case $host_os in osf*) LIBS_PTHREADS="-lpthread $LIBS_PTHREADS" ;; esac fi if test $flag = no && test x$LIBS_PTHREADS = x; then threads_ok=no else threads_ok=yes fi ])dnl dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/config.guess000077500000000000000000001004751177004724000257240ustar00rootroot00000000000000#! /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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/config.sub000077500000000000000000000612461177004724000253710ustar00rootroot00000000000000#! /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-* | x86_64-* | 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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/install-sh000077500000000000000000000031001177004724000253730ustar00rootroot00000000000000#! /bin/sh # Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # chmodParams="" dirParams="" dirPath="" args="" while [ x"$1" != x ]; do if test $# != "1"; then case $1 in -c) shift; continue;; -d) dirParams="yes" shift; continue;; -m) shift; chmodParams=$1 shift; continue;; *) args="$args $1" shift; continue;; esac else dirPath=$1 fi shift; done if test x$dirParams = "xyes"; then mkdir -p $dirPath else cp -f $args $dirPath for arg in $args; do myArg=`basename $arg` if test x$chmodParams != x; then if test -d $dirPath; then chmod $chmodParams $dirPath/$myArg else chmod $chmodParams $dirPath fi else if test -d $dirPath; then chmod a+x $dirPath/$myArg else chmod a+x $dirPath fi fi done fi salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/libtool.m4000077500000000000000000000357301177004724000253160ustar00rootroot00000000000000## 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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ltconfig000077500000000000000000002766601177004724000251510ustar00rootroot00000000000000#! /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: salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/ltmain.sh000077500000000000000000003304231177004724000252250ustar00rootroot00000000000000# 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: salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/missing000077500000000000000000000142131177004724000247750ustar00rootroot00000000000000#! /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 salome-kernel-6.5.0/salome_adm/unix/config_files/DEPRECATED/mkinstalldirs000077500000000000000000000013261177004724000262050ustar00rootroot00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.4.32.1 2010-05-14 12:57:09 vsr Exp $ 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 salome-kernel-6.5.0/salome_adm/unix/config_files/Makefile.am000077500000000000000000000046341177004724000240430ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # The deprecated files are deprecated for the KERNEL but not for the # related modules (GUI, MED, ...). Some files have to be installed. DEPRECATED_FILES=\ DEPRECATED/ac_cc_warnings.m4 \ DEPRECATED/ac_cxx_bool.m4 \ DEPRECATED/ac_cxx_mutable.m4 \ DEPRECATED/ac_cxx_partial_specialization.m4 \ DEPRECATED/ac_cxx_typename.m4 \ DEPRECATED/check_mico.m4 \ DEPRECATED/check_pthreads.m4 \ DEPRECATED/config.sub \ DEPRECATED/config.guess \ DEPRECATED/install-sh \ DEPRECATED/libtool.m4 \ DEPRECATED/ltconfig \ DEPRECATED/ltmain.sh \ DEPRECATED/check_Salome.m4 \ DEPRECATED/check_java.m4 \ DEPRECATED/missing \ DEPRECATED/mkinstalldirs dist_salomem4_DATA=\ ac_cxx_depend_flag.m4 \ ac_cxx_have_sstream.m4 \ ac_cxx_namespaces.m4 \ ac_cxx_option.m4 \ ac_cxx_template_options.m4 \ ac_cxx_use_std_iostream.m4 \ ac_cxx_warnings.m4 \ ac_linker_options.m4 \ ac_check_sizeof_fortran.m4 \ acx_pthread.m4 \ check_Kernel.m4 \ check_boost.m4 \ check_cas.m4 \ check_corba.m4 \ check_cppunit.m4 \ check_f77.m4 \ check_calcium.m4 \ check_hdf5.m4 \ check_htmlgen.m4 \ check_sphinx.m4 \ check_lam.m4 \ check_libbatch.m4 \ check_mpi.m4 \ check_openmpi.m4 \ check_mpich.m4 \ check_omniorb.m4 \ check_sockets.m4 \ check_swig.m4 \ check_vtk.m4 \ check_withihm.m4 \ enable_pthreads.m4 \ production.m4 \ pyembed.m4 \ python.m4 \ check_libxml.m4 \ check_paco++.m4 \ local_install.m4 \ hack_libtool.m4 \ check_tbb.m4 dist_salome4depr_DATA=\ $(DEPRECATED_FILES) salome-kernel-6.5.0/salome_adm/unix/config_files/Makefile.in000077500000000000000000000570271177004724000240600ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salome4depr_DATA) $(dist_salomem4_DATA) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am \ config.guess config.sub depcomp install-sh ltmain.sh missing \ py-compile subdir = salome_adm/unix/config_files ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salome4deprdir)" \ "$(DESTDIR)$(salomem4dir)" DATA = $(dist_salome4depr_DATA) $(dist_salomem4_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # The deprecated files are deprecated for the KERNEL but not for the # related modules (GUI, MED, ...). Some files have to be installed. DEPRECATED_FILES = \ DEPRECATED/ac_cc_warnings.m4 \ DEPRECATED/ac_cxx_bool.m4 \ DEPRECATED/ac_cxx_mutable.m4 \ DEPRECATED/ac_cxx_partial_specialization.m4 \ DEPRECATED/ac_cxx_typename.m4 \ DEPRECATED/check_mico.m4 \ DEPRECATED/check_pthreads.m4 \ DEPRECATED/config.sub \ DEPRECATED/config.guess \ DEPRECATED/install-sh \ DEPRECATED/libtool.m4 \ DEPRECATED/ltconfig \ DEPRECATED/ltmain.sh \ DEPRECATED/check_Salome.m4 \ DEPRECATED/check_java.m4 \ DEPRECATED/missing \ DEPRECATED/mkinstalldirs dist_salomem4_DATA = \ ac_cxx_depend_flag.m4 \ ac_cxx_have_sstream.m4 \ ac_cxx_namespaces.m4 \ ac_cxx_option.m4 \ ac_cxx_template_options.m4 \ ac_cxx_use_std_iostream.m4 \ ac_cxx_warnings.m4 \ ac_linker_options.m4 \ ac_check_sizeof_fortran.m4 \ acx_pthread.m4 \ check_Kernel.m4 \ check_boost.m4 \ check_cas.m4 \ check_corba.m4 \ check_cppunit.m4 \ check_f77.m4 \ check_calcium.m4 \ check_hdf5.m4 \ check_htmlgen.m4 \ check_sphinx.m4 \ check_lam.m4 \ check_libbatch.m4 \ check_mpi.m4 \ check_openmpi.m4 \ check_mpich.m4 \ check_omniorb.m4 \ check_sockets.m4 \ check_swig.m4 \ check_vtk.m4 \ check_withihm.m4 \ enable_pthreads.m4 \ production.m4 \ pyembed.m4 \ python.m4 \ check_libxml.m4 \ check_paco++.m4 \ local_install.m4 \ hack_libtool.m4 \ check_tbb.m4 dist_salome4depr_DATA = \ $(DEPRECATED_FILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu salome_adm/unix/config_files/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu salome_adm/unix/config_files/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salome4deprDATA: $(dist_salome4depr_DATA) @$(NORMAL_INSTALL) test -z "$(salome4deprdir)" || $(MKDIR_P) "$(DESTDIR)$(salome4deprdir)" @list='$(dist_salome4depr_DATA)'; test -n "$(salome4deprdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salome4deprdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salome4deprdir)" || exit $$?; \ done uninstall-dist_salome4deprDATA: @$(NORMAL_UNINSTALL) @list='$(dist_salome4depr_DATA)'; test -n "$(salome4deprdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salome4deprdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salome4deprdir)" && rm -f $$files install-dist_salomem4DATA: $(dist_salomem4_DATA) @$(NORMAL_INSTALL) test -z "$(salomem4dir)" || $(MKDIR_P) "$(DESTDIR)$(salomem4dir)" @list='$(dist_salomem4_DATA)'; test -n "$(salomem4dir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomem4dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomem4dir)" || exit $$?; \ done uninstall-dist_salomem4DATA: @$(NORMAL_UNINSTALL) @list='$(dist_salomem4_DATA)'; test -n "$(salomem4dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomem4dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomem4dir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(salome4deprdir)" "$(DESTDIR)$(salomem4dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salome4deprDATA \ install-dist_salomem4DATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salome4deprDATA \ uninstall-dist_salomem4DATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_salome4deprDATA \ install-dist_salomem4DATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_salome4deprDATA uninstall-dist_salomem4DATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4000077500000000000000000000044451177004724000271030ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([AC_CHECK_SIZEOF_FORTRAN], [ AC_REQUIRE([AC_F77_WRAPPERS]) AC_CACHE_CHECK([size of Fortran [$1]], [ac_cv_sizeof_fortran_[]translit($1, [A-Z *], [a-z_p])],[ AC_LANG_SAVE() AC_LANG([Fortran 77]) AC_COMPILE_IFELSE([ AC_LANG_SOURCE([ subroutine fsize() $1 i(2) call csize(i(1), i(2)) end ]) ],[ AC_LANG([C]) cp conftest.$ac_objext conftestf.$ac_objext old_LDFLAGS="$LDFLAGS" LDFLAGS="conftestf.$ac_objext $LDFLAGS" #"$ac_cv_f77_libs" AC_TRY_RUN([ # include # define CSIZE F77_FUNC(csize,CSIZE) # define FSIZE F77_FUNC(fsize,FSIZE) static long size_val; /* Called by Fortran */ void CSIZE (i1p, i2p) char *i1p, *i2p; { size_val = (i2p - i1p); } main() { FILE *f=fopen ("conftestval","w"); if (!f) return 1; /* Call the Fortran function */ FSIZE (); fprintf (f, "%d\n", size_val); return 0; } ]) LDFLAGS="$old_LDFLAGS" ac_cv_sizeof_fortran_[]translit($1, [A-Z *], [a-z_p])=`cat conftestval` rm -f conftestval conftestf.$ac_objext ]) AC_LANG_RESTORE() ]) AC_DEFINE_UNQUOTED(SIZEOF_FORTRAN_[]translit($1, [a-z *], [A-Z_p]), [$ac_cv_sizeof_fortran_[]translit($1, [A-Z *], [a-z_p])], [The size of a Fortran `$1', as computed by sizeof.]) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_depend_flag.m4000077500000000000000000000134231177004724000260220ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_C_DEPEND_FLAG dnl define C_DEPEND_FLAG dnl define CXX_DEPEND_FLAG dnl @version $Id: ac_cxx_depend_flag.m4,v 1.9.2.2.14.2.12.1 2012-04-12 14:05:00 vsr Exp $ dnl @author Marc Tajchman dnl AC_DEFUN([AC_DEPEND_FLAG],[ AC_MSG_CHECKING([which flag for dependency information generation]) AC_LANG_SAVE AC_LANG_C echo "conftest.o: conftest.c" > conftest.verif echo "int main() { return 0; }" > conftest.c f77int="F77INT32" case $host_os in irix5.* | irix6.* | osf4.* | osf5.* | linux* ) linux64="true" # porting on intel processor 64 bits expr "$host_os" : 'linux' >/dev/null && ( test ! x"$host_cpu" = x"x86_64" && test ! x"$host_cpu" = x"ia64" ) && linux64="false" if test ! x"$linux64" = "xfalse" ; then echo "$as_me:$LINENO: checking for 64bits integers size in F77/F90" >&5 echo $ECHO_N "checking for 64bits integers size in F77/F90... $ECHO_C" >&6 # Check whether --enable-int64 or --disable-int64 was given. if test "${enable_int64+set}" = set; then enableval="$enable_int64" fi; case "X-$enable_int64" in X-no) echo "$as_me:$LINENO: result: \"disabled\"" >&5 echo "${ECHO_T}\"disabled\"" >&6 SUFFIXES="_32" ;; *) echo "$as_me:$LINENO: result: \"enabled\"" >&5 echo "${ECHO_T}\"enabled\"" >&6 SUFFIXES="" f77int="F77INT64" ;; esac fi ;; *) ;; esac case $host_os in linux*) # porting on intel processor 64 bits: if 64 bits processor, by default compilation in 64 bits if test x"$linux64" = x"true"; then \ MACHINE="PCLINUX64${SUFFIXES}"; CFLAGS=" -D_OCC64 ${CXXFLAGS}"; CXXFLAGS=" -D_OCC64 ${CXXFLAGS}";\ else \ MACHINE=PCLINUX; \ fi ;; hpux*) MACHINE=HP9000 ;; aix4.*) MACHINE=RS6000 host_os_novers=aix4.x ;; irix5.*) MACHINE="IRIX64${SUFFIXES}" host_os_novers=irix5.x ;; irix6.*) MACHINE="IRIX64${SUFFIXES}" host_os_novers=irix6.x ;; osf4.*) MACHINE="OSF1${SUFFIXES}" host_os_novers=osf4.x ;; osf5.*) MACHINE="OSF1${SUFFIXES}" host_os_novers=osf5.x ;; solaris2.*) MACHINE=SUN4SOL2 host_os_novers=solaris2.x ;; uxpv*) MACHINE=VPP5000 ;; *) MACHINE= host_os_novers=$host_os ;; esac dnl Evolution portage sur CCRT/osf system case $host_os in osf*) dnl sur CCRT/osf pas d'equivalent de l'option -MG de gcc avec compilo natif dnl on utilise donc gnu pour generer les dependances. DEPCC=gcc DEPCXX=g++ DEPCXXFLAGS= DIFFFLAGS="-w" dnl MACHINE="OSF1" ;; *) DEPCC=${CC-cc} DEPCXX=${CXX-c++} DEPCXXFLAGS="\${CXXFLAGS}" DIFFFLAGS="-b -B" dnl MACHINE="PCLINUX" ;; esac C_DEPEND_FLAG= for ac_C_DEPEND_FLAG in -xM -MM -M ; do rm -f conftest.d conftest.err ${DEPCC} ${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 ${DIFFFLAGS} 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 ${DEPCC} ${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 ${DIFFFLAGS} 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 printf " C : ${DEPCC} ${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 ${DEPCXX} ${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 ${DIFFFLAGS} 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 ${DEPCXX} ${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 ${DIFFFLAGS} 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 printf " C++ : ${DEPCXX} ${CXX_DEPEND_FLAG}" AC_LANG_RESTORE AC_MSG_RESULT([ ... done]) AC_SUBST(DEPCC) AC_SUBST(DEPCXX) AC_SUBST(DEPCXXFLAGS) AC_SUBST(C_DEPEND_FLAG) AC_SUBST(CXX_DEPEND_FLAG) AC_SUBST(MACHINE) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_have_sstream.m4000077500000000000000000000035261177004724000262560ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_HAVE_SSTREAM dnl If the C++ library has a working stringstream, define HAVE_SSTREAM. dnl @author Ben Stanley dnl @version $Id: ac_cxx_have_sstream.m4,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:00 vsr Exp $ dnl modified by Marc Tajchman (CEA) - 10/10/2002 AC_DEFUN([AC_CXX_HAVE_SSTREAM],[ AC_CACHE_CHECK([whether the compiler has stringstream], [ac_cv_prog_cxx_have_sstream], [ac_cv_prog_cxx_have_sstream=no 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;], [ac_cv_prog_cxx_have_sstream=yes],[ac_cv_prog_cxx_have_sstream=no]) AC_LANG_RESTORE ]) HAVE_SSTREAM=$ac_cv_prog_cxx_have_sstream AC_SUBST(HAVE_SSTREAM) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_namespaces.m4000077500000000000000000000032511177004724000257070ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_NAMESPACES dnl If the compiler can prevent names clashes using namespaces, define dnl HAVE_NAMESPACES. dnl @version $Id: ac_cxx_namespaces.m4,v 1.6.32.2.12.1 2012-04-12 14:05:00 vsr Exp $ 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 ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_option.m4000077500000000000000000000031241177004724000250770ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_OPTION(-option,variable where we add option if ok,action if ok; action if not ok) dnl Check options for C++ compiler dnl @author Bernard Secher - 15/01/2004 dnl AC_DEFUN([AC_CXX_OPTION], [ AC_MSG_CHECKING(wether $CXX accepts $1) cat > conftest.cxx < conftest.log 2>&1 var=`echo $1 | sed -e "s, .*$,," | sed -e "s,^-,,"` #CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then if grep -e $var conftest.log > /dev/null 2>&1 ; then AC_MSG_RESULT(no) eval $4 else AC_MSG_RESULT(yes) $2="${$2} $1" eval $3 fi ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_template_options.m4000077500000000000000000000025401177004724000271560ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_TEMPLATE_OPTIONS dnl Check template options for C++ compiler dnl AC_DEFUN([AC_CXX_TEMPLATE_OPTIONS],[ dnl for opt in -ftemplate-depth-42 "-pending_instantiations 42" ; do AC_CXX_OPTION($opt,CXXTMPDPTHFLAGS,flag=yes,flag=no) if test "$flag" = "yes"; then break fi AC_SUBST(CXXTMPDPTHFLAGS) done dnl AC_CXX_OPTION(-tweak,CXXFLAGS) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4000077500000000000000000000034171177004724000271450ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_USE_STD_IOSTREAM dnl dnl If the C++ library use std iostream dnl dnl @author Bernard Secher (CEA) - 05/12/2003 AC_DEFUN([AC_CXX_USE_STD_IOSTREAM], [ AC_MSG_CHECKING(whether the compiler use std iostream) cat > conftest.cxx < int main(int argc, char **argv) {std::cout << "Hello" << std::endl; return 0;} EOF fUSE_STD_IOSTREAM=no for ac_CXX_USE_STD_IOSTREAM in "" -D__USE_STD_IOSTREAM ; do if $CXX ${ac_CXX_USE_STD_IOSTREAM} conftest.cxx > /dev/null 2>&1; then CPPFLAGS="$CPPFLAGS ${ac_CXX_USE_STD_IOSTREAM}" if test x${ac_CXX_USE_STD_IOSTREAM} = x; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(${ac_CXX_USE_STD_IOSTREAM}) fi fUSE_STD_IOSTREAM=yes break fi done if test $fUSE_STD_IOSTREAM = no; then AC_MSG_RESULT(no) fi ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_cxx_warnings.m4000077500000000000000000000023341177004724000254210ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_CXX_WARNINGS dnl Check warning flags for C++ compiler to control warning messages dnl AC_DEFUN([AC_CXX_WARNINGS],[ AC_CXX_OPTION(-Wparentheses,CXXFLAGS) AC_CXX_OPTION(-Wreturn-type,CXXFLAGS) AC_CXX_OPTION(-Wunused,CXXFLAGS) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/ac_linker_options.m4000077500000000000000000000033071177004724000257470ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl @synopsis AC_LINKER_OPTIONS dnl Check warning flags for C++ compiler to control warning messages dnl AC_DEFUN([AC_LINKER_OPTIONS],[ AC_CHECKING(for LIB_LOCATION_SUFFIX) LIB_LOCATION_SUFFIX="" AC_SUBST(LIB_LOCATION_SUFFIX) AC_MSG_RESULT(LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX) for opt in "-Xlinker -export-dynamic" -transitive_link; do AC_CXX_OPTION($opt,LDEXPDYNFLAGS,flag=yes,flag=no) if test "$flag" = "yes"; then break fi done AC_SUBST(LDEXPDYNFLAGS) for opt in "-Xlinker -enable-new-dtags" ; do AC_CXX_OPTION($opt,LDFLAGS) done AC_SUBST(LDFLAGS) dnl case $host_os in osf*) STDLIB="-lcxxstd" ;; *) STDLIB="-lstdc++" ;; esac AC_SUBST(STDLIB) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/acx_pthread.m4000077500000000000000000000212261177004724000245270ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl Paul RASCLE: modification for Linux: -pthread required by boost... dnl Available from the GNU Autoconf Macro Archive at: dnl AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *linux*) # On linux "none" works, but boost requires -pthread, so, try first "-pthread" acx_pthread_flags="-pthread pthreads none -Kthread -kthread lthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" ;; *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthread or # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: threads are created detached by default # and the JOINABLE attribute has a nonstandard name (UNDETACHED). AC_MSG_CHECKING([for joinable pthread attribute]) AC_TRY_LINK([#include ], [int attr=PTHREAD_CREATE_JOINABLE;], ok=PTHREAD_CREATE_JOINABLE, ok=unknown) if test x"$ok" = xunknown; then AC_TRY_LINK([#include ], [int attr=PTHREAD_CREATE_UNDETACHED;], ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) fi if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok, [Define to the necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_RESULT(${ok}) if test x"$ok" = xunknown; then AC_MSG_WARN([we do not know how to create joinable pthreads]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with cc_r AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC}) else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ])dnl ACX_PTHREAD salome-kernel-6.5.0/salome_adm/unix/config_files/check_Kernel.m4000077500000000000000000000050651177004724000246250ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl # Check availability of Salome's KERNEL binary distribution # # Author : Jerome Roy (CEA, 2003) # AC_DEFUN([CHECK_KERNEL],[ AC_REQUIRE([AC_LINKER_OPTIONS])dnl AC_CHECKING(for Kernel) Kernel_ok=no KERNEL_LDFLAGS="" KERNEL_CXXFLAGS="" AC_ARG_WITH(kernel, [--with-kernel=DIR root directory path of KERNEL build or installation], [KERNEL_DIR="$withval"], [KERNEL_DIR=""]) if test "x${KERNEL_DIR}" = "x" ; then AC_MSG_RESULT(for \${KERNEL_ROOT_DIR}: ${KERNEL_ROOT_DIR}) # no --with-kernel-dir option used if test "x${KERNEL_ROOT_DIR}" != "x" ; then # KERNEL_ROOT_DIR environment variable defined KERNEL_DIR=${KERNEL_ROOT_DIR} else # search Kernel binaries in PATH variable AC_PATH_PROG(TEMP,runSalome) if test "x${TEMP}" != "x" ; then AC_MSG_RESULT(runSalome was found at : ${TEMP}) KERNEL_BIN_DIR=`dirname ${TEMP}` KERNEL_DIR=`cd ${KERNEL_BIN_DIR}/../..; pwd` fi fi fi if test -f ${KERNEL_DIR}/bin/salome/runSalome ; then AC_MSG_RESULT(Using Kernel module distribution in ${KERNEL_DIR}) Kernel_ok=yes if test "x${KERNEL_ROOT_DIR}" = "x" ; then KERNEL_ROOT_DIR=${KERNEL_DIR} fi if test "x${KERNEL_SITE_DIR}" = "x" ; then KERNEL_SITE_DIR=${KERNEL_ROOT_DIR} fi AC_SUBST(KERNEL_ROOT_DIR) AC_SUBST(KERNEL_SITE_DIR) KERNEL_LDFLAGS=-L${KERNEL_DIR}/lib${LIB_LOCATION_SUFFIX}/salome KERNEL_CXXFLAGS=-I${KERNEL_DIR}/include/salome AC_SUBST(KERNEL_LDFLAGS) AC_SUBST(KERNEL_CXXFLAGS) else AC_MSG_WARN("Cannot find compiled Kernel module distribution") fi AC_MSG_RESULT(for Kernel: $Kernel_ok) ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_boost.m4000077500000000000000000000131261177004724000245300ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_BOOST],[ AC_CHECKING(for BOOST Library) AC_REQUIRE([ENABLE_PTHREADS])dnl AC_LANG_SAVE AC_LANG_CPLUSPLUS gccver=`$CC -dumpversion | sed 's/^\([[0-9]]\+\)\.\([[0-9]]\+\).*/\1\2/g'` SUFFIXES="empty -mt -gcc -gcc-mt -gcc${gccver} -gcc${gccver}-mt" BOOST_CPPFLAGS="" BOOST_LIBSUFFIX="" BOOST_LIBS="" AC_CHECKING(for BOOST location) AC_ARG_WITH(boost, [AC_HELP_STRING([--with-boost=DIR],[root directory path to BOOST library installation])], [BOOSTDIR="$withval" AC_MSG_RESULT("select $withval as path to BOOST library") ]) if test "x${BOOSTDIR}" = "x" ; then BOOSTDIR="/usr" fi AC_MSG_RESULT(\$BOOSTDIR = ${BOOSTDIR}) CPPFLAGS_old="${CPPFLAGS}" LIBS_old=$LIBS LIB_SUFFIX="${LIB_LOCATION_SUFFIX}" if test "x${BOOSTDIR}" != "x" ; then BOOST_CPPFLAGS="-I${BOOSTDIR}/include" BOOST_LIBS="-L${BOOSTDIR}/lib${LIB_SUFFIX}" fi if test "x${BOOSTDIR}" = "x/usr" ; then BOOST_CPPFLAGS="" BOOST_LIBS="" fi boost_ok=no boost_headers_ok=no boost_binaries_ok=no dnl BOOST headers AC_CHECKING(for BOOST headers) CPPFLAGS="${CPPFLAGS_old} ${BOOST_CPPFLAGS}" boost_include_dir_ok=yes if test "x${BOOSTDIR}" != "x" ; then AC_CHECK_FILE(${BOOSTDIR}/include/boost/shared_ptr.hpp, boost_include_dir_ok=yes, boost_include_dir_ok=no) fi BOOST_PROGRAM_OPTIONS_LIB=no if test "x${boost_include_dir_ok}" = "xyes" ; then AC_CHECK_FILE(${BOOSTDIR}/include/boost/program_options.hpp, BOOST_PROGRAM_OPTIONS_LIB=yes, BOOST_PROGRAM_OPTIONS_LIB=no) fi AC_MSG_RESULT(for boost program_options tool: $BOOST_PROGRAM_OPTIONS_LIB) if test "x${boost_include_dir_ok}" = "xyes" ; then AC_TRY_COMPILE([#include ], [boost::shared_ptr(new int)], boost_headers_ok=yes, boost_headers_ok=no) fi if test "x${boost_headers_ok}" = "xno" ; then BOOST_CPPFLAGS="BOOST_CPPFLAGS_NOT_DEFINED" else AC_MSG_RESULT(\$BOOST_CPPFLAGS = ${BOOST_CPPFLAGS}) fi AC_MSG_RESULT(for boost headers: $boost_headers_ok) if test "x${boost_headers_ok}" = "xyes" ; then dnl BOOST binaries AC_CHECKING(for BOOST binaries) boost_lib_dir_ok=yes if test "x${BOOSTDIR}" != "x" ; then for BOOST_LIBSUFFIX in ${SUFFIXES} ; do test "${BOOST_LIBSUFFIX}" == "empty" && BOOST_LIBSUFFIX="" AC_CHECK_FILE([${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so], [boost_lib_dir_ok=yes], [AC_CHECK_FILE([${BOOSTDIR}/lib64/libboost_thread${BOOST_LIBSUFFIX}.so], [boost_lib_dir_ok=yes; LIB_SUFFIX=64], [boost_lib_dir_ok=no]) ]) if test "x${boost_lib_dir_ok}" = "xyes" ; then break fi done fi if test "x${boost_lib_dir_ok}" = "xyes" ; then LIBS="${LIBS_old} ${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX}" AC_TRY_LINK([#include ], [struct TBody{ void operator()(){} }; boost::thread(TBody())], boost_binaries_ok=yes, boost_binaries_ok=no) if test "x${boost_binaries_ok}" = "xyes" ; then break fi fi fi if test "x${boost_binaries_ok}" = "xno" ; then BOOST_LIBS="BOOST_LIBS_NOT_FOUND" BOOST_LIBSUFFIX="-not-defined" else AC_MSG_RESULT(\$BOOST_LIBSUFFIX = ${BOOST_LIBSUFFIX}) AC_MSG_RESULT(\$BOOST_LIBS = ${BOOST_LIBS}) AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_thread${BOOST_LIBSUFFIX}.so, BOOST_LIB_THREAD="${BOOST_LIBS} -lboost_thread${BOOST_LIBSUFFIX}", BOOST_LIB_THREAD="") AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_signals${BOOST_LIBSUFFIX}.so, BOOST_LIB_SIGNALS="${BOOST_LIBS} -lboost_signals${BOOST_LIBSUFFIX}", BOOST_LIB_SIGNALS="") AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_system${BOOST_LIBSUFFIX}.so, BOOST_LIB_SYSTEM="${BOOST_LIBS} -lboost_system${BOOST_LIBSUFFIX}", BOOST_LIB_SYSTEM="") AC_CHECK_FILE(${BOOSTDIR}/lib${LIB_SUFFIX}/libboost_regex${BOOST_LIBSUFFIX}.so, BOOST_LIB_REGEX="${BOOST_LIBS} -lboost_regex${BOOST_LIBSUFFIX}", BOOST_LIB_REGEX="") fi AC_MSG_RESULT(for boost binaries: $boost_binaries_ok) CPPFLAGS="${CPPFLAGS_old}" LIBS="${LIBS_old}" if test "x${boost_headers_ok}" = "xyes" ; then if test "x${boost_binaries_ok}" = "xyes" ; then boost_ok=yes fi fi AC_MSG_RESULT(for boost: $boost_ok) AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_LIBSUFFIX) AC_SUBST(BOOST_LIBS) AC_SUBST(BOOST_LIB_THREAD) AC_SUBST(BOOST_LIB_SIGNALS) AC_SUBST(BOOST_LIB_SYSTEM) AC_SUBST(BOOST_LIB_REGEX) AC_SUBST(BOOST_PROGRAM_OPTIONS_LIB) AC_LANG_RESTORE ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_calcium.m4000077500000000000000000000053051177004724000250170ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_CALCIUM], [ ## Guess where as cal_int type is provided by --with-cal_int option ## or auto-detection must be used AC_ARG_WITH([cal_int], AC_HELP_STRING([--with-cal_int=], [Use for mapping a Fortran integer in C within CALCIUM C/F77 interfaces.]), [], [withval=no]) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(int) if test "x$withval" = "xno" then AC_REQUIRE([CHECK_F77]) AC_CHECK_SIZEOF_FORTRAN(integer) if test "x$ac_cv_sizeof_fortran_integer" = "x8" ; then AC_DEFINE(HAVE_F77INT64,[], [The size of a Fortran integer, as computed by sizeof.]) test "x$ac_cv_sizeof_long" = "x8" || AC_MSG_ERROR([Size of C type long expected to be eight bytes]) LONG_OR_INT="long" CALCIUM_IDL_INT_F77="long long" CALCIUM_CORBA_INT_F77="CORBA::LongLong" elif test "x$ac_cv_sizeof_fortran_integer" = "x4" ; then test "x$ac_cv_sizeof_int" = "x4" || AC_MSG_ERROR([Size of C type int expected to be four bytes]) LONG_OR_INT="int" CALCIUM_IDL_INT_F77="long" CALCIUM_CORBA_INT_F77="CORBA::Long" else AC_MSG_ERROR([Size of Fortran type integer is neither four nor eigth bytes]) fi elif test "x$withval" = "xint" then LONG_OR_INT="int" CALCIUM_IDL_INT_F77="long" CALCIUM_CORBA_INT_F77="CORBA::Long" AC_MSG_NOTICE([Using C type int for cal_int]) elif test "x$withval" = "xlong" then LONG_OR_INT="long" CALCIUM_IDL_INT_F77="long long" CALCIUM_CORBA_INT_F77="CORBA::LongLong" AC_MSG_NOTICE([Using C type long for cal_int]) else AC_MSG_ERROR([Fortran type integer must be mapped to C type int or C type long]) fi AC_SUBST(CALCIUM_IDL_INT_F77) AC_SUBST(CALCIUM_CORBA_INT_F77) AC_SUBST(LONG_OR_INT) AC_DEFINE_UNQUOTED([CAL_INT],[$LONG_OR_INT], [The C type to be used for mapping a Fortran integer in C within CALCIUM C/F77 interfaces.]) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/check_cas.m4000077500000000000000000000174611177004724000241560ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl 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_KERNEL) AC_SUBST(CAS_MATH) AC_SUBST(CAS_VIEWER) AC_SUBST(CAS_TKTopAlgo) AC_SUBST(CAS_MODELER) AC_SUBST(CAS_OCAF) AC_SUBST(CAS_OCAFVIS) AC_SUBST(CAS_DATAEXCHANGE) AC_SUBST(CAS_LDFLAGS) AC_SUBST(CAS_LDPATH) AC_SUBST(CAS_STDPLUGIN) AC_SUBST(CAS_LIBDIR) AC_SUBST(CAS_DATADIR) AC_SUBST(OCC_VERSION_DEVELOPMENT) AC_SUBST(CASROOT) CAS_CPPFLAGS="" CAS_CXXFLAGS="" CAS_LDFLAGS="" occ_ok=no config_h=no dnl libraries directory location case $host_os in linux*) casdir=Linux ;; freebsd*) casdir=Linux ;; irix5.*) casdir=Linux ;; irix6.*) casdir=Linux ;; osf*) casdir=Linux ;; solaris2.*) casdir=Linux ;; *) casdir=Linux ;; esac AC_MSG_CHECKING(for OpenCascade directories) if test -z "$CASROOT"; then AC_MSG_RESULT(CASROOT not defined) for d in `echo $LD_LIBRARY_PATH | sed -e "s/:/ /g"` ; do if test -f $d/libTKernel.so ; then AC_MSG_RESULT(libTKernel.so detected in $d) CASROOT=$d CASROOT=`echo ${CASROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` break fi done fi CAS_LIBDIR="$CASROOT/$casdir/lib" if test -d ${CAS_LIBDIR}; then AC_MSG_RESULT(yes) else if test -d ${CASROOT}/lib; then CAS_LIBDIR="$CASROOT/lib" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi CAS_LDPATH="-L$CAS_LIBDIR " 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 OCC_VERSION_MAJOR=0 OCC_VERSION_MINOR=0 OCC_VERSION_MAINTENANCE=0 OCC_VERSION_DEVELOPMENT=0 if test -f $CASROOT/inc/Standard_Version.hxx; then ff=$CASROOT/inc/Standard_Version.hxx else ff=$CASROOT/include/opencascade/Standard_Version.hxx fi if test -f $ff; then grep "define OCC_VERSION_MAJOR" $ff > /dev/null if test $? = 0 ; then OCC_VERSION_MAJOR=`grep "define OCC_VERSION_MAJOR" $ff | awk '{i=3 ; print $i}'` fi grep "define OCC_VERSION_MINOR" $ff > /dev/null if test $? = 0 ; then OCC_VERSION_MINOR=`grep "define OCC_VERSION_MINOR" $ff | awk '{i=3 ; print $i}'` fi grep "define OCC_VERSION_MAINTENANCE" $ff > /dev/null if test $? = 0 ; then OCC_VERSION_MAINTENANCE=`grep "define OCC_VERSION_MAINTENANCE" $ff | awk '{i=3 ; print $i}'` fi grep "define OCC_VERSION_DEVELOPMENT" $ff > /dev/null if test $? = 0 ; then OCC_VERSION_DEVELOPMENT_STR=`grep "define OCC_VERSION_DEVELOPMENT" $ff | awk '{i=1 ; print $i}'` if test "${OCC_VERSION_DEVELOPMENT_STR}" = "#define" ; then OCC_VERSION_DEVELOPMENT=1 fi dnl OCC_VERSION_DEVELOPMENT=1 fi AC_MSG_CHECKING(for OpenCascade data files) if test -f ${CASROOT}/src/UnitsAPI/Lexi_Expr.dat; then CAS_DATADIR=${CASROOT} AC_MSG_RESULT(found in $CAS_DATADIR/src) else if test -f ${CASROOT}/share/opencascade/${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE}/src/UnitsAPI/Lexi_Expr.dat; then CAS_DATADIR=${CASROOT}/share/opencascade/${OCC_VERSION_MAJOR}.${OCC_VERSION_MINOR}.${OCC_VERSION_MAINTENANCE} AC_MSG_RESULT(found in $CAS_DATADIR/src) else occ_ok=no AC_MSG_RESULT(not found, check OpenCascade installation) fi fi fi fi if test "x$occ_ok" = "xyes"; then dnl test c++ compiler flag for unsigned character for opt in -funsigned-char -unsigned ; do AC_CXX_OPTION($opt,CAS_CXXFLAGS,flag=yes,flag=no) if test "$flag" = "yes"; then break fi done dnl cascade headers CPPFLAGS_old="$CPPFLAGS" case $host_os in linux*) CAS_CPPFLAGS="-DOCC_VERSION_MAJOR=$OCC_VERSION_MAJOR -DOCC_VERSION_MINOR=$OCC_VERSION_MINOR -DOCC_VERSION_MAINTENANCE=$OCC_VERSION_MAINTENANCE -DLIN -DLINTEL -DCSFDB -DNo_exception -DHAVE_CONFIG_H -DHAVE_LIMITS_H -DHAVE_WOK_CONFIG_H" OCC_VERSION_STRING="$OCC_VERSION_MAJOR.$OCC_VERSION_MINOR.$OCC_VERSION_MAINTENANCE" case $OCC_VERSION_STRING in [[0-5]].* | 6.0.* | 6.1.0) # catch versions < 6.1.1 CAS_CPPFLAGS="$CAS_CPPFLAGS -DNO_CXX_EXCEPTION" ;; *) CAS_CPPFLAGS="$CAS_CPPFLAGS -DOCC_CONVERT_SIGNALS" ;; esac CAS_CPPFLAGS="$CAS_CPPFLAGS -I$CASROOT/inc -I$CASROOT/include/opencascade" ;; osf*) CAS_CPPFLAGS="-DOCC_VERSION_MAJOR=$OCC_VERSION_MAJOR -DOCC_VERSION_MINOR=$OCC_VERSION_MINOR -DOCC_VERSION_MAINTENANCE=$OCC_VERSION_MAINTENANCE -DLIN -DLINTEL -DCSFDB -DNo_exception -DHAVE_CONFIG_H -DHAVE_LIMITS_H -DHAVE_WOK_CONFIG_H -I$CASROOT/inc" ;; esac CPPFLAGS="$CPPFLAGS $CAS_CPPFLAGS" echo echo testing config.h AC_CHECK_HEADER(config.h, config_h=yes, [ echo "config.h file not found!" ]) if test "x$config_h" = xno ; then AC_MSG_WARN(config.h file not found) dnl There is no consequence for SALOME building because dnl this file is not used. SALOME uses SALOMEconfig.h instead! else AC_MSG_RESULT(config.h file ok) fi AC_CHECK_HEADER(Standard_Type.hxx,occ_ok=yes ,occ_ok=no) fi if test "x$occ_ok" = xyes ; then AC_MSG_CHECKING(for OpenCascade libraries) LIBS_old="$LIBS" LIBS="$LIBS $CAS_LDPATH -lTKernel" AC_CACHE_VAL(salome_cv_lib_occ,[ AC_TRY_LINK( #include , TCollection_AsciiString aStr ("toto"); aStr.Capitalize();, eval "salome_cv_lib_occ=yes",eval "salome_cv_lib_occ=no") ]) occ_ok="$salome_cv_lib_occ" fi CPPFLAGS="$CPPFLAGS_old" LIBS="$LIBS_old" if test "x$occ_ok" = xno ; then AC_MSG_RESULT(no) AC_MSG_WARN(Opencascade libraries not found) else AC_MSG_RESULT(yes) CAS_KERNEL="$CAS_LDPATH -lTKernel" CAS_MATH="$CAS_LDPATH -lTKMath" CAS_OCAF="$CAS_LDPATH -lPTKernel -lTKernel -lTKCDF -lTKLCAF -lTKPCAF -lTKStdSchema" CAS_OCAFVIS="$CAS_LDPATH -lTKCAF -lTKPLCAF -lTKPShape -lTKStdLSchema -lTKShapeSchema" if test -f $CASROOT/$casdir/lib/libStdPlugin.so ; then # standard plugin library libStdPlugin has been added in CASCADE 5.2.3 CAS_STDPLUGIN="StdPlugin" CAS_OCAFVIS="$CAS_OCAFVIS -lStdPlugin -lStdLPlugin" elif test -f $CASROOT/$casdir/lib/libTKStdSchema.so ; then # standard plugin has been renamed in CASCADE 6.5 CAS_STDPLUGIN=TKStdSchema CAS_OCAFVIS="$CAS_OCAFVIS -lTKStdSchema -lTKStdLSchema" fi CAS_TKV3d="$CAS_LDPATH -lTKV3d" CAS_VIEWER="$CAS_TKV3d -lTKService" CAS_TKBRep="$CAS_LDPATH -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep" CAS_TKTopAlgo="$CAS_TKBRep -lTKGeomAlgo -lTKTopAlgo" CAS_TKPrim="$CAS_TKTopAlgo -lTKPrim" CAS_MODELER="$CAS_TKPrim -lTKBO -lTKBool -lTKHLR -lTKFillet -lTKOffset -lTKFeat" CAS_DATAEXCHANGE="$CAS_LDPATH -lTKIGES -lTKSTEP" CAS_LDFLAGS="$CAS_KERNEL $CAS_MATH $CAS_OCAF $CAS_OCAFVIS $CAS_VIEWER $CAS_MODELER $CAS_DATAEXCHANGE" fi AC_LANG_RESTORE ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_corba.m4000077500000000000000000000037251177004724000244740ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl 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 PACOIDLCXXFLAGS=$OMNIORB_PACOIDLCXXFLAGS IDLPYFLAGS=$OMNIORB_IDLPYFLAGS AC_SUBST(CORBA_ROOT) AC_SUBST(CORBA_INCLUDES) AC_SUBST(CORBA_CXXFLAGS) AC_SUBST(CORBA_LIBS) AC_SUBST(IDLCXXFLAGS) AC_SUBST(PACOIDLCXXFLAGS) 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 salome-kernel-6.5.0/salome_adm/unix/config_files/check_cppunit.m4000077500000000000000000000074711177004724000250720ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_CPPUNIT],[ AC_CHECKING(for cppunit) cppunit_ok=yes dnl were is cppunit ? AC_ARG_WITH(cppunit, [AC_HELP_STRING([--with-cppunit=DIR],[directory path to CPPUNIT installation])], [CPPUNITHOME="$withval" AC_MSG_RESULT("select $withval as path to CPPUNIT") ]) AC_ARG_WITH(cppunit_inc, [AC_HELP_STRING([--with-cppunit_inc=DIR],[directory path to CPPUNIT includes])], [CPPUNIT_INCLUDES="$withval" AC_MSG_RESULT("select $withval as path to CPPUNIT includes") ]) if test -z "$CPPUNITHOME"; then AC_MSG_RESULT(CPPUNITHOME not defined) exits_ok=no if test "x$exits_ok" = "xno"; then for d in /usr/local /usr ; do AC_CHECK_FILE(${d}/lib64/libcppunit.so,exits_ok=yes,exits_ok=no) if test "x$exits_ok" = "xyes"; then CPPUNITHOME=$d AC_MSG_RESULT(libcppunit.so detected in $d/lib64) break fi AC_CHECK_FILE(${d}/lib/libcppunit.so,exits_ok=yes,exits_ok=no) if test "x$exits_ok" = "xyes"; then CPPUNITHOME=$d AC_MSG_RESULT(libcppunit.so detected in $d/lib) break fi done fi if test "x$exits_ok" = "xno"; then for d in `echo $LD_LIBRARY_PATH | sed -e "s/:/ /g"` ; do if test -f $d/libcppunit.so ; then AC_MSG_RESULT(libcppunit.so detected in $d) CPPUNITHOME=$d CPPUNITHOME=`echo ${CPPUNITHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` exits_ok=yes break fi done fi if test "x$exits_ok" = "xyes"; then if test -z "$CPPUNIT_INCLUDES"; then CPPUNIT_INCLUDES=$CPPUNITHOME"/include" fi fi else if test -z "$CPPUNIT_INCLUDES"; then CPPUNIT_INCLUDES="$CPPUNITHOME/include" fi fi if test "x$cppunit_ok" = xno -o ! -d "$CPPUNITHOME" ; then AC_MSG_RESULT(no) AC_MSG_WARN(cppunit not found) cppunit_ok=no else AC_LANG_SAVE AC_LANG_CPLUSPLUS CPPFLAGS_old=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$CPPUNIT_INCLUDES" AC_CHECK_HEADER(cppunit/extensions/HelperMacros.h,cppunit_ok=yes,cppunit_ok=no) CPPFLAGS=$CPPFLAGS_old if test "x$cppunit_ok" = xno ; then AC_MSG_RESULT(no) AC_MSG_WARN(cppunit not found) else cppunit_ok=yes fi if test "x$cppunit_ok" = "xno" then AC_MSG_RESULT(unable to found cppunit headers and library) AC_MSG_RESULT(CPPUNITHOME environment variable may be wrong) else if test "x$CPPUNIT_INCLUDES" = "x/usr/include" then CPPUNIT_INCLUDES="" else CPPUNIT_INCLUDES="-I$CPPUNIT_INCLUDES" fi if test "x$CPPUNITHOME" = "x/usr" then CPPUNIT_LIBS=" -lcppunit" else CPPUNIT_LIBS="-L$CPPUNITHOME/lib -lcppunit" fi AC_SUBST(CPPUNIT_INCLUDES) AC_SUBST(CPPUNIT_LIBS) AC_SUBST(cppunit_ok) AC_MSG_RESULT(yes) fi fi AM_CONDITIONAL(CPPUNIT_IS_OK, [test x"$cppunit_ok" = xyes]) AC_LANG_RESTORE ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_f77.m4000077500000000000000000000020641177004724000240040ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_F77],[ AC_PROG_F77 AC_F77_LIBRARY_LDFLAGS AC_F77_WRAPPERS ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_hdf5.m4000077500000000000000000000061671177004724000242370ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_HDF5],[ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CPP])dnl AC_CHECKING(for HDF5) AC_ARG_WITH(hdf5, [AC_HELP_STRING([--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) AC_SUBST(HDF5HOME) HDF5_INCLUDES="" HDF5_LIBS="" HDF5_MT_LIBS="" hdf5_ok=no LOCAL_INCLUDES="" LOCAL_LIBS="" LOCAL_RLIBS="" if test -z $HDF5HOME then AC_MSG_WARN(undefined HDF5HOME variable which specify hdf5 installation directory) AC_MSG_NOTICE(Trying native Hdf5...) dnl For Parallel HDF5 test HDF5HOME="/usr" else LOCAL_INCLUDES="-I$HDF5HOME/include" if test "x$HDF5HOME" = "x/usr" then AC_MSG_NOTICE(Trying native Hdf5...) LOCAL_LIBS="" else AC_MSG_NOTICE(Trying Hdf5 from $HDF5HOME ...) LOCAL_LIBS="-L$HDF5HOME/lib" LOCAL_RLIBS="-Wl,-R$HDF5HOME/lib" fi fi if test "x$hdf5_ok" = "xno" then if test -e "$HDF5HOME/include/hdf5.h" then AC_MSG_CHECKING(if hdf5 is parallel and thus needs mpi) hdf5_parallel=`grep "#define H5_HAVE_PARALLEL" $HDF5HOME/include/H5pubconf.h | awk '{i=3 ; print $i}'` if test "x$hdf5_parallel" = "x1" then LOCAL_INCLUDES="-DOMPI_SKIP_MPICXX $MPI_INCLUDES $LOCAL_INCLUDES" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no,hdf5 seems serial) fi else AC_MSG_WARN(File $HDF5HOME/include/hdf5.h not present) fi fi dnl hdf5 headers CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $MPI_INCLUDES $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 $MPI_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="$MPI_INCLUDES $LOCAL_INCLUDES" HDF5_LIBS="$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS" HDF5_MT_LIBS="$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS" fi if test "x$hdf5_ok" = "xyes" then HDF5_INCLUDES="$HDF5_INCLUDES -DH5_USE_16_API" fi AC_MSG_RESULT(for hdf5: $hdf5_ok) ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_htmlgen.m4000077500000000000000000000062611177004724000250420ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_HTML_GENERATORS],[ #AC_CHECKING(for html generators) doxygen_ok=yes dnl were is doxygen ? AC_PATH_PROG(DOXYGEN,doxygen) if test "x$DOXYGEN" = "x" then AC_MSG_WARN(doxygen not found) doxygen_ok=no fi if test "x$doxygen_ok" = "xyes" then version=`$DOXYGEN --version` AC_MSG_RESULT(doxygen version $version) case "$version" in 1.4.4*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=no ;; 1.4.5*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.6*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.7*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.8*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; 1.4.9*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; [[1-9]].[[5-9]]*) DOXYGEN_WITH_PYTHON=yes DOXYGEN_WITH_STL=yes ;; *) DOXYGEN_WITH_PYTHON=no DOXYGEN_WITH_STL=no ;; esac AC_MSG_RESULT(doxygen with support STL - $DOXYGEN_WITH_STL) AC_MSG_RESULT(doxygen with support PYTHON - $DOXYGEN_WITH_PYTHON) if test "$DOXYGEN_WITH_PYTHON" == "yes" ; then DOXYGEN_PYTHON_EXTENSION="*.py" else DOXYGEN_PYTHON_EXTENSION="" fi if test "$DOXYGEN_WITH_STL" == "yes" ; then DOXYGEN_SUPPORT_STL="YES" else DOXYGEN_SUPPORT_STL="NO" fi AC_SUBST(DOXYGEN_WITH_PYTHON) AC_SUBST(DOXYGEN_PYTHON_EXTENSION) AC_SUBST(DOXYGEN_WITH_STL) AC_SUBST(DOXYGEN_SUPPORT_STL) fi dnl AC_SUBST(DOXYGEN) graphviz_ok=yes dnl were is graphviz ? AC_PATH_PROG(DOT,dot) if test "x$DOT" = "x" ; then AC_MSG_WARN(graphviz not found) graphviz_ok=no fi dnl AC_SUBST(DOT) AC_PATH_PROG(LATEX,latex) if test "x$LATEX" = "x" ; then AC_MSG_WARN(latex not found) fi AC_SUBST(LATEX) AC_PATH_PROG(DVIPS,dvips) if test "x$DVIPS" = "x" ; then AC_MSG_WARN(dvips not found) fi AC_SUBST(DVIPS) AC_PATH_PROG(PDFLATEX,pdflatex) if test "x$PDFLATEX" = "x" ; then AC_MSG_WARN(pdflatex not found) fi AC_SUBST(PDFLATEX) rst2html_ok=yes dnl were is rst2html ? AC_PATH_PROG(RST2HTML,rst2html) if test "x$RST2HTML" = "x"; then AC_PATH_PROG(RST2HTML,rst2html.py) fi if test "x$RST2HTML" = "x"; then AC_MSG_WARN(rst2html not found) rst2html_ok=no fi AC_SUBST(RST2HTML) AM_CONDITIONAL(RST2HTML_IS_OK, [test x"$rst2html_ok" = xyes]) ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_lam.m4000077500000000000000000000064751177004724000241640ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_LAM],[ AC_REQUIRE([AC_PROG_CC])dnl AC_ARG_WITH(lam, [AC_HELP_STRING([--with-lam=DIR],[root directory path of LAM installation])], WITHLAM="yes",WITHLAM="no") MPI_INCLUDES="" MPI_LIBS="" if test "$WITHLAM" = yes; then MPIREQUESTED="yes" echo echo --------------------------------------------- echo testing lam echo --------------------------------------------- echo LAM_HOME=$withval if test "$LAM_HOME"; then MPI_INCLUDES="-I$LAM_HOME/include" if test "x$LAM_HOME" = "x/usr" then MPI_LIBS="" else MPI_LIBS="-L$LAM_HOME/lib" fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" AC_CHECK_HEADER(mpi.h,WITHLAM="yes",WITHLAM="no") if test "$WITHLAM" = "yes";then AC_CHECK_LIB(util,openpty,,WITHLAM="no") LIBS_old="$LIBS" LDFLAGS_old="$LDFLAGS" LDFLAGS="$MPI_LIBS $LDFLAGS" fi if test "$WITHLAM" = "yes";then LIBS="$LIBS -lmpi++" AC_MSG_CHECKING(for MPI_Init in -lmpi++) AC_TRY_LINK([ #include ], [int argc=0; char **argv=0; MPI_Init(&argc,&argv);], WITHLAM="yes",WITHLAM="no") if test "$WITHLAM" = "yes";then AC_MSG_RESULT(yes) MPI_LIBS="$MPI_LIBS -lmpi++" AC_CHECK_LIB(mpi++,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no") else AC_MSG_RESULT(no) LIBS="$LIBS_old" AC_CHECK_LIB(lam,lam_mp_init,WITHLAM="yes",WITHLAM="no") if test "$WITHLAM" = "yes";then MPI_LIBS="$MPI_LIBS -llam" LIBS="$LIBS -llam" fi AC_CHECK_LIB(mpi,MPI_Init,WITHLAM="yes",WITHLAM="no") if test "$WITHLAM" = "yes";then MPI_LIBS="-lmpi $MPI_LIBS" LIBS="-lmpi $LIBS" fi AC_LANG_SAVE AC_LANG_CPLUSPLUS LIBS="-llammpi++ $LIBS" AC_MSG_CHECKING(for MPI_Init in -llammpi++) AC_TRY_LINK([ #include ], [MPI::Init();], WITHLAM="yes",WITHLAM="no") if test "$WITHLAM" = "yes";then AC_MSG_RESULT(yes) MPI_LIBS="-llammpi++ $MPI_LIBS" else AC_MSG_RESULT(no) fi AC_LANG_RESTORE AC_CHECK_LIB(mpi,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no") fi fi CPPFLAGS="$CPPFLAGS_old" LDFLAGS="$LDFLAGS_old" LIBS="$LIBS_old" if test "$WITHLAM" = "yes";then WITHMPI="yes" mpi_ok=yes CPPFLAGS="-DWITHLAM $CPPFLAGS" else mpi_ok=no fi fi ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_libbatch.m4000077500000000000000000000065461177004724000251620ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl # CHECK_LIBBATCH # This macro can be used to find libBatch and set the associated variables in # a project based on autoconf. You can copy this file in your own project and # eventually modify it according to your own needs. # ---------------------------------------------------------------------------- AC_DEFUN([CHECK_LIBBATCH],[ AC_MSG_NOTICE(Checking for libBatch library) AC_SUBST(LIBBATCH_INCLUDES) AC_SUBST(LIBBATCH_LIBS) LIBBATCH_INCLUDES="" LIBBATCH_LIBS="" libbatch_ok=no AC_ARG_WITH([libbatch], [AS_HELP_STRING([--with-libbatch=DIR], [root directory path of libBatch installation])], [LIBBATCH_DIR="$withval"], [LIBBATCH_DIR=""]) if test "x$LIBBATCH_DIR" = "x" ; then # no --with-libbatch option used if test "x$LIBBATCH_ROOT_DIR" != "x" ; then # LIBBATCH_ROOT_DIR environment variable defined LIBBATCH_DIR=$LIBBATCH_ROOT_DIR fi fi LOCAL_INCLUDES="" LOCAL_LIBS="" if test "x$LIBBATCH_DIR" != "x" ; then LOCAL_INCLUDES="-I$LIBBATCH_DIR/include" if test "x$LIBBATCH_DIR" = "x/usr" ; then LOCAL_LIBS="-lBatch" else LOCAL_LIBS="-L$LIBBATCH_DIR/lib -lBatch" fi else LOCAL_INCLUDES="-I/usr/include" LOCAL_LIBS="-lBatch" fi # libBatch headers CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES" AC_CHECK_HEADER(Batch/Batch_BatchManager.hxx, libbatch_ok="yes", libbatch_ok="no") CPPFLAGS="$CPPFLAGS_old" if test "x$libbatch_ok" = "xyes" ; then # libBatch library LIBS_old=$LIBS LIBS="$LIBS $LOCAL_LIBS" # Can't use AC_SEARCH_LIBS or AC_CHECK_LIB here because # they don't work with C++ namespaces # AC_SEARCH_LIBS(Batch::BatchManagerCatalog::getInstance,Batch, # libbatch_ok="yes",libbatch_ok="no") AC_MSG_CHECKING( [for library containing Batch::BatchManagerCatalog::getInstance]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ namespace Batch { class BatchManagerCatalog { public: static void getInstance(); }; } ]], [using namespace Batch; BatchManagerCatalog::getInstance();])], [libbatch_ok="yes"], [libbatch_ok="no"]) AC_MSG_RESULT($libbatch_ok) LIBS=$LIBS_old fi if test "x$libbatch_ok" = "xyes" ; then LIBBATCH_INCLUDES="$LOCAL_INCLUDES" LIBBATCH_LIBS="$LOCAL_LIBS" fi AC_MSG_RESULT(for libBatch: $libbatch_ok) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/check_libxml.m4000077500000000000000000000044361177004724000246750ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_LIBXML],[ AC_CHECKING(for libxml library) AC_LANG_SAVE AC_LANG_C AC_SUBST(LIBXML_INCLUDES) AC_SUBST(LIBXML_LIBS) LIBXML_INCLUDES="" LIBXML_LIBS="" AC_CHECKING(for libxml location) AC_ARG_WITH(libxml, [ --with-libxml=DIR root directory path to LIBXML library installation ], [LIBXML_DIR="$withval" AC_MSG_RESULT("select $withval as path to LIBXML library")]) AC_MSG_RESULT(\$LIBXML_DIR = ${LIBXML_DIR}) libxml_ok=no LOCAL_INCLUDES="" LOCAL_LIBS="" if test "x$LIBXML_DIR" != "x" then LOCAL_INCLUDES="-I$LIBXML_DIR/include/libxml2" if test "x$LIBXML_DIR" = "x/usr" then AC_MSG_NOTICE(Trying native Libxml2...) LOCAL_LIBS="-lxml2" else AC_MSG_NOTICE(Trying Libxml2 from $LIBXML_DIR ...) LOCAL_LIBS="-L$LIBXML_DIR/lib -lxml2" fi else AC_MSG_NOTICE(Trying native Libxml2...) LOCAL_INCLUDES="-I/usr/include/libxml2" LOCAL_LIBS="-lxml2" fi dnl libxml2 headers CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES" AC_CHECK_HEADER(libxml/parser.h,libxml_ok="yes",libxml_ok="no") CPPFLAGS="$CPPFLAGS_old" if test "x$libxml_ok" = "xyes" then dnl libxml2 library LIBS_old=$LIBS LIBS="$LIBS $LOCAL_LIBS" AC_CHECK_LIB(xml2,xmlInitParser,libxml_ok="yes",libxml_ok="no",) LIBS=$LIBS_old fi if test "x$libxml_ok" = "xyes" then LIBXML_INCLUDES="$LOCAL_INCLUDES" LIBXML_LIBS="$LOCAL_LIBS" fi AC_MSG_RESULT(for libxml: $libxml_ok) AC_LANG_RESTORE ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_mpi.m4000077500000000000000000000072271177004724000241740ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_MPI],[ AC_REQUIRE([AC_PROG_CC])dnl AC_ARG_WITH(mpi_lib, [AC_HELP_STRING([--with-mpi_lib=DIR],[directory path of MPICH lib installation])], MPILIBREQUESTED="$withval") AC_ARG_WITH(mpi_include, [AC_HELP_STRING([--with-mpi_include=DIR],[directory path of MPICH header file installation])], MPIINCLUDEREQUESTED="$withval") AC_ARG_WITH(mpi, [AC_HELP_STRING([--with-mpi=DIR],[root directory path of MPICH installation])], MPIREQUESTED="yes",MPIREQUESTED="no") MPI_INCLUDES="" MPI_LIBS="" WITHMPI=no mpi_ok=no if test x"$MPIREQUESTED" = xyes; then echo echo --------------------------------------------- echo testing mpi echo --------------------------------------------- echo if test "x$withval" != "xyes"; then MPI_HOME=$withval MPI_INCLUDES="-I$MPI_HOME/include" if test "x$MPI_HOME" = "x/usr" then MPI_LIBS="" else MPI_LIBS="-L$MPI_HOME/lib" fi fi if test x"$MPILIBREQUESTED" != x; then MPI_LIBS="-L$MPILIBREQUESTED" fi if test x"$MPIINCLUDEREQUESTED" != x; then MPI_INCLUDES="-I$MPIINCLUDEREQUESTED" fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" AC_CHECK_HEADER(mpi.h,WITHMPI="yes",WITHMPI="no") CPPFLAGS="$CPPFLAGS_old" if test "$WITHMPI" = "yes";then LIBS_old="$LIBS" LDFLAGS_old="$LDFLAGS" LDFLAGS="$MPI_LIBS $LDFLAGS" AC_CHECK_LIB(elan,elan_init,MPI_LIBS="$MPI_LIBS -lelan") AC_CHECK_LIB(mpi,MPI_Init,WITHMPI="yes",WITHMPI="no") AC_CHECK_LIB(mpi,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no") LDFLAGS="$LDFLAGS_old" LIBS="$LIBS_old" fi if test "$WITHMPI" = "yes";then mpi_ok=yes MPI_LIBS="$MPI_LIBS -lmpi -lmpio -lmpiCC" else mpi_ok=no fi if test "$WITHMPI2" = "yes";then mpi2_ok=yes else mpi2_ok=no fi fi if test "$WITHMPI" = no; then dnl dnl --------------------------------------------- dnl testing MPICH dnl --------------------------------------------- dnl CHECK_MPICH if test "$WITHMPICH" = no; then dnl dnl --------------------------------------------- dnl testing LAM dnl --------------------------------------------- dnl CHECK_LAM fi if test "$WITHLAM" = no; then dnl dnl --------------------------------------------- dnl testing OPENMPI dnl --------------------------------------------- dnl CHECK_OPENMPI fi fi if test x$WITHMPI2 = xyes; then CPPFLAGS="-DHAVE_MPI2 $CPPFLAGS" CORBA_IDLCXXFLAGS="-DHAVE_MPI2 $CORBA_IDLCXXFLAGS" CORBA_IDLPYFLAGS="-DHAVE_MPI2 $CORBA_IDLPYFLAGS" fi AC_SUBST(WITHMPI) AC_SUBST(MPI_INCLUDES) AC_SUBST(MPI_LIBS) AC_SUBST(mpi_ok) AC_SUBST(mpi2_ok) AM_CONDITIONAL(MPI_IS_OK, [test x"$mpi_ok" = xyes]) AM_CONDITIONAL(MPI2_IS_OK, [test x"$mpi2_ok" = xyes]) ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_mpich.m4000077500000000000000000000044411177004724000245020ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_MPICH],[ AC_REQUIRE([AC_PROG_CC])dnl AC_ARG_WITH(mpich, [AC_HELP_STRING([--with-mpich=DIR],[root directory path of MPICH installation])], WITHMPICH="yes",WITHMPICH="no") MPI_INCLUDES="" MPI_LIBS="" if test "$WITHMPICH" = yes; then MPIREQUESTED="yes" echo echo --------------------------------------------- echo testing mpich echo --------------------------------------------- echo MPICH_HOME=$withval if test "$MPICH_HOME"; then MPI_INCLUDES="-I$MPICH_HOME/include" if test "x$MPICH_HOME" = "x/usr" then MPI_LIBS="-lmpichcxx -lmpich -lopa -lmpl -lrt -lpthread" else MPI_LIBS="-L$MPICH_HOME/lib -lmpichcxx -lmpich -lopa -lmpl -lrt -lpthread" fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" AC_CHECK_HEADER(mpi.h,WITHMPICH="yes",WITHMPICH="no") CPPFLAGS="$CPPFLAGS_old" LIBS_old="$LIBS" LIBS="$MPI_LIBS $LIBS" AC_CHECK_LIB(mpich,MPI_Init,WITHMPICH="yes",WITHMPICH="no") AC_CHECK_LIB(mpich,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no") LIBS="$LIBS_old" AC_MSG_CHECKING(for mpich) if test "$WITHMPICH" = "yes";then mpi_ok=yes mpi2_ok=$WITHMPI2 WITHMPI="yes" CPPFLAGS="-DWITHMPICH $CPPFLAGS" AC_MSG_RESULT(yes) else mpi_ok=no mpi2_ok=no WITHMPI=no AC_MSG_RESULT(no) fi fi ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_omniorb.m4000077500000000000000000000204751177004724000250540ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl 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 "x$OMNIORB_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_ROOT=${OMNIORB_BIN} # one-level up OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` # # if test -d $OMNIORB_ROOT/include ; then # if $OMNIORB_ROOT/include exists, there are a lot of chance that # this is omniORB4.x installed via configure && make && make install OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"` OMNIORB_VERSION=4 else # omniORB has been installed old way OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"` # one-level up again OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` if test -d $OMNIORB_ROOT/include/omniORB4 ; then OMNIORB_VERSION=4 else OMNIORB_VERSION=3 fi fi AC_SUBST(OMNIORB_ROOT) OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS" AC_SUBST(OMNIORB_INCLUDES) ENABLE_PTHREADS OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION" 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 osf*) # AC_DEFINE(__osf1__) __OSVERSION__=5 AC_DEFINE([__OSVERSION__], [5], [Description]) OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__osf1__" ;; solaris*) # AC_DEFINE(__sunos__) __OSVERSION__=5 AC_DEFINE([__OSVERSION__], [5], [Description]) OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__" ;; linux*) # AC_DEFINE(__linux__) __OSVERSION__=2 AC_DEFINE([__OSVERSION__], [2], [Description]) 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 if test "x$OMNIORB_LIB" = "x/usr/lib" then OMNIORB_LDFLAGS="" OMNIORB_RFLAGS="" else OMNIORB_LDFLAGS="-L$OMNIORB_LIB" OMNIORB_RFLAGS="-Wl,-R$OMNIORB_LIB" fi 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 dnl omniORB_ok=yes 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" OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}" OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread" OMNIORB_LIBS="$OMNIORB_LIBS ${OMNIORB_RFLAGS}" if test $OMNIORB_VERSION = 3 ; then OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK" fi 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 omniORB) AC_CACHE_VAL(salome_cv_lib_omniorb,[ 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" omniORB_ok=yes 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="-Wba -nf -I${OMNIORB_ROOT}/idl" OMNIORB_PACOIDLCXXFLAGS="-nf -I${OMNIORB_ROOT}/idl" OMNIORB_IDLPYFLAGS_1='-bpython -nf ' OMNIORB_IDLPYFLAGS_2=" -I${OMNIORB_ROOT}/idl" OMNIORB_IDLPYFLAGS=${OMNIORB_IDLPYFLAGS_1}${OMNIORB_IDLPYFLAGS_2} AC_SUBST(OMNIORB_IDLCXXFLAGS) AC_SUBST(OMNIORB_PACOIDLCXXFLAGS) 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], [], [Description]) CORBA_HAVE_POA=1 AC_DEFINE([CORBA_HAVE_POA], [], [Description]) CORBA_ORB_INIT_HAVE_3_ARGS=1 AC_DEFINE([CORBA_ORB_INIT_HAVE_3_ARGS], [], [Description]) CORBA_ORB_INIT_THIRD_ARG='"omniORB"' AC_DEFINE([CORBA_ORB_INIT_THIRD_ARG], [], [omniORB]) fi omniORBpy_ok=no if test "x$omniORB_ok" = "xyes" then AC_MSG_CHECKING(omniORBpy) $PYTHON -c "import omniORB" &> /dev/null if test $? = 0 ; then AC_MSG_RESULT(yes) omniORBpy_ok=yes else AC_MSG_RESULT(no, check your installation of omniORBpy) omniORBpy_ok=no fi fi dnl AC_LANG_RESTORE AC_MSG_RESULT(for omniORBpy: $omniORBpy_ok) AC_MSG_RESULT(for omniORB: $omniORB_ok) # Save cache AC_CACHE_SAVE dnl AC_LANG_CPLUSPLUS CXXFLAGS_old=$CXXFLAGS CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" LIBS_old=$LIBS LIBS="$LIBS $OMNIORB_LDFLAGS $OMNIORB_LIBS" AC_MSG_CHECKING(whether we have double and CORBA::Double compatibility) AC_TRY_RUN( #include #include int main () { CORBA::Double *a=new CORBA::Double(2.5); double c=2.5; double *b; b=(double *)a; if( (c==*b) && (sizeof(double)==sizeof(CORBA::Double)) ){ delete a; exit(0); } else{ delete a; exit(1); } } ,DOUBLECOMP="yes",DOUBLECOMP="no") if test "$DOUBLECOMP" = yes; then OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_DOUBLE" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(whether we have int and CORBA::Long compatibility) AC_TRY_RUN( #include #include int main () { CORBA::Long *a=new CORBA::Long(2); int c=2; int *b; b=(int *)a; if( (c==*b) && (sizeof(int)==sizeof(CORBA::Long)) ) exit(0); else exit(1); } ,LONGCOMP="yes",LONGCOMP="no") if test "$LONGCOMP" = yes; then OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_LONG" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi CXXFLAGS=$CXXFLAGS_old LIBS=$LIBS_old AC_LANG_RESTORE AC_SUBST(OMNIORB_CXXFLAGS) ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_openmpi.m4000077500000000000000000000042201177004724000250440ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_OPENMPI],[ AC_ARG_WITH(openmpi, AC_HELP_STRING([--with-openmpi=DIR],[root directory path of openmpi installation]), WITHOPENMPI="yes",WITHOPENMPI="no") MPI_INCLUDES="" MPI_LIBS="" mpi_ok=no if test "$WITHOPENMPI" = yes; then OPENMPI_HOME=$withval if test "$OPENMPI_HOME"; then if test -f "${OPENMPI_HOME}/include/mpi.h"; then MPI_INCLUDES="-I${OPENMPI_HOME}/include" else MPI_INCLUDES=`$OPENMPI_HOME/bin/mpicxx --showme:compile` fi dnl Small modification for native debian-based distributions if test "$OPENMPI_HOME" = "/usr/lib/openmpi"; then MPI_LIBS=`mpicxx --showme:link` else MPI_LIBS=`$OPENMPI_HOME/bin/mpicxx --showme:link` fi fi CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$MPI_INCLUDES $CPPFLAGS" AC_CHECK_HEADER(mpi.h,WITHOPENMPI="yes",WITHOPENMPI="no") CPPFLAGS="$CPPFLAGS_old" LIBS_old="$LIBS" LIBS="-L${OPENMPI_HOME}/lib $LIBS" AC_CHECK_LIB(mpi,MPI_Publish_name,WITHMPI2="yes",WITHMPI2="no") LIBS="$LIBS_old" AC_MSG_CHECKING(for openmpi) if test "$WITHOPENMPI" = "yes";then mpi_ok=yes mpi2_ok=$WITHMPI2 WITHMPI=yes CPPFLAGS="-DOMPI_IGNORE_CXX_SEEK -DWITHOPENMPI $CPPFLAGS" AC_MSG_RESULT(yes) else mpi_ok=no mpi2_ok=no WITHMPI=no AC_MSG_RESULT(no) fi fi ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_paco++.m4000077500000000000000000000036371177004724000244600ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl File : check_paco++.m4 dnl Author : André RIBES (EDF) dnl Module : KERNEL dnl AC_DEFUN([CHECK_PACO],[ PaCO_ok=yes AC_ARG_WITH(paco, [AC_HELP_STRING([--with-paco=DIR],[root directory path of PaCO++ installation])], WITHPACO="yes",WITHPACO="no") if test "x$WITHPACO" = "xyes"; then PACOPATH=$withval PACO_INCLUDES="-I${PACOPATH}/include" PACO_LIBS="-L${PACOPATH}/lib -lPaCO -lGaBro -lBasicBC" dnl a basic test to be sure that PaCO++ dnl is correctly installed. AC_CHECK_PROG(PACO_IDL, PaCOIdlTool.sh, yes, no, ${PACOPATH}/bin) if test "x$PACO_IDL" = "xno"; then PaCO_ok=no AC_MSG_RESULT(PaCO++ binary not in ${PACOPATH}/bin) fi else PaCO_ok=no fi AC_MSG_CHECKING(for PaCO++) if test "x$PaCO_ok" = "xyes" then AC_MSG_RESULT([yes]) PACO_IDL=${PACOPATH}/bin/PaCOIdlTool.sh AC_SUBST(PACO_IDL) AC_SUBST(PACOPATH) AC_SUBST(PACO_INCLUDES) AC_SUBST(PACO_LIBS) else AC_MSG_RESULT([no]) fi ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_sockets.m4000077500000000000000000000075451177004724000250650ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_SOCKETS],[ dnl Author dnl Warren Young dnl M4 Source Code echo echo --------------------------------------------- echo testing sockets echo --------------------------------------------- echo AC_CACHE_CHECK(for libraries containing socket functions, ac_cv_socket_libs, [ oCFLAGS=$CFLAGS AC_TRY_LINK([ #include #include #include #include ], [ struct in_addr add; int sd = socket(AF_INET, SOCK_STREAM, 0); inet_ntoa(add); ], ac_cv_socket_libs=-lc, ac_cv_socket_libs=no) if test x"$ac_cv_socket_libs" = "xno" then CFLAGS="$oCFLAGS -lsocket" AC_TRY_LINK([ #include #include #include #include ], [ struct in_addr add; int sd = socket(AF_INET, SOCK_STREAM, 0); inet_ntoa(add); ], ac_cv_socket_libs=-lsocket, ac_cv_socket_libs=no) fi if test x"$ac_cv_socket_libs" = "xno" then CFLAGS="$oCFLAGS -lsocket -lnsl" AC_TRY_LINK([ #include #include #include #include ], [ struct in_addr add; int sd = socket(AF_INET, SOCK_STREAM, 0); inet_ntoa(add); ], ac_cv_socket_libs="-lsocket -lnsl", ac_cv_socket_libs=no) fi CFLAGS=$oCFLAGS ]) if test x"$ac_cv_socket_libs" = "xno" then AC_MSG_ERROR([Cannot find socket libraries]) elif test x"$ac_cv_socket_libs" = "x-lc" then SOCKETLIBS="" CPPFLAGS="-DHAVE_SOCKET $CPPFLAGS" CORBA_IDLCXXFLAGS="-DHAVE_SOCKET $CORBA_IDLCXXFLAGS" CORBA_IDLPYFLAGS="-DHAVE_SOCKET $CORBA_IDLPYFLAGS" else SOCKETLIBS="$ac_cv_socket_libs" CPPFLAGS="-DHAVE_SOCKET $CPPFLAGS" CORBA_IDLCXXFLAGS="-DHAVE_SOCKET $CORBA_IDLCXXFLAGS" CORBA_IDLPYFLAGS="-DHAVE_SOCKET $CORBA_IDLPYFLAGS" fi AC_SUBST(SOCKETLIBS) AC_SUBST(SOCKETFLAGS) ]) dnl CHECK_SOCKET salome-kernel-6.5.0/salome_adm/unix/config_files/check_sphinx.m4000077500000000000000000000022001177004724000247020ustar00rootroot00000000000000dnl Copyright (C) 2006-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_SPHINX],[ AC_CHECKING(for sphinx doc generator) sphinx_ok=yes dnl where is sphinx ? AC_PATH_PROG(SPHINX,sphinx-build) if test "x$SPHINX" = "x" then AC_MSG_WARN(sphinx not found) sphinx_ok=no fi AM_CONDITIONAL(SPHINX_IS_OK, [test x"$sphinx_ok" = xyes]) ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_swig.m4000077500000000000000000000040661177004724000243560ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_SWIG],[ AC_REQUIRE([CHECK_PYTHON])dnl swig_ok=yes numpy_ok=no AC_ARG_WITH(swig, [AC_HELP_STRING([--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 numpydir=`$PYTHON -c "import numpy;print numpy.get_include()" 2>/dev/null` if test -d "$numpydir"; then numpy_ok=yes PYTHON_INCLUDES="$PYTHON_INCLUDES -I$numpydir" SWIG_FLAGS="$SWIG_FLAGS -DWITH_NUMPY=WITH_NUMPY " AC_DEFINE([WITH_NUMPY], [], [Python has numpy extension]) fi AC_SUBST(SWIG_FLAGS) AC_SUBST(SWIG) AC_MSG_RESULT(for swig: $swig_ok) ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_tbb.m4000077500000000000000000000063141177004724000241520ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_TBB],[ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CPP])dnl AC_CHECKING(for TBB) AC_ARG_WITH(TBB, [ --with-TBB=DIR root directory path to TBB installation ], [TBBHOME="$withval" AC_MSG_RESULT("select $withval as path to TBB") ]) AC_SUBST(TBB_INCLUDES) AC_SUBST(TBB_LIBS) TBB_INCLUDES="" TBB_LIBS="" tbb_ok=no LOCAL_INCLUDES="" LOCAL_LIBS="-ltbb -ltbbmalloc" AC_LANG_SAVE AC_LANG_CPLUSPLUS CPPFLAGS_old=$CPPFLAGS if test "x$TBBHOME" != "xno"; then if test "x$TBBHOME" == "xyes"; then TBBHOME="" fi if test -z $TBBHOME then AC_MSG_WARN(undefined TBBHOME variable which specify TBB library installation directory) AC_PATH_PROG(BINDIR, tbbvars.sh) if test "x$BINDIR" != "x" ; then dnl e.g. BINDIR = ./tbb/bin/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/tbbvars.sh TBBHOME=$BINDIR TBBHOME=`echo ${TBBHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` TBBHOME=`echo ${TBBHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` TBBHOME=`echo ${TBBHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` TBBHOME=`echo ${TBBHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` fi fi if test ! -z $TBBHOME then TBBKERNEL='cc4.1.0_libc2.4_kernel2.6.16.21' LOCAL_INCLUDES="-I$TBBHOME/include" if test "x$TBBHOME" != "x/usr"; then if test `uname -m` = "x86_64" ; then LOCAL_LIBS="-L$TBBHOME/lib/intel64/$TBBKERNEL $LOCAL_LIBS" else LOCAL_LIBS="-L$TBBHOME/lib/ia32/$TBBKERNEL $LOCAL_LIBS" fi fi fi dnl check tbb header CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES/tbb" AC_CHECK_HEADER(tbb.h,tbb_ok=yes ,tbb_ok=no) fi if test "x$tbb_ok" = "xyes" then dnl check TBB library LIBS_old="$LIBS" LIBS="$LIBS $LOCAL_LIBS" AC_TRY_LINK([#include ], [tbb::simple_partitioner()], tbb_ok=yes,tbb_ok=no) LIBS="$LIBS_old" fi CPPFLAGS=$CPPFLAGS_old AC_LANG_RESTORE AC_MSG_RESULT(for TBB: $tbb_ok) if test "x$tbb_ok" = "xyes" then TBB_LIBS="$LOCAL_LIBS" TBB_INCLUDES="$LOCAL_INCLUDES" CPPFLAGS="-DWITH_TBB $CPPFLAGS" fi AM_CONDITIONAL(WITH_TBB, [test x"$tbb_ok" = xyes]) ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_vtk.m4000077500000000000000000000251211177004724000242040ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl OPTIONS_VTK dnl ------------------------------------------------------------------------ dnl Adds the --with-vtk=path, --with-vtk-version and --with-paraview configure options dnl AC_DEFUN([OPTIONS_VTK], [ AC_ARG_WITH([vtk], [AC_HELP_STRING([--with-vtk], [The prefix where VTK is installed (default "" means taking from environment variable unless VTK from ParaView is detected)])], [with_vtk=$withval], [with_vtk=""]) AC_ARG_WITH([vtk-version], [AC_HELP_STRING([--with-vtk-version], [VTK include directory name is vtk-suffix, e.g. vtk-5.0/. What is the suffix? (Default "yes" means taking from environment variable)])], [vtk_suffix=$withval], [vtk_suffix="yes"]) AC_ARG_WITH([paraview], [AC_HELP_STRING([--with-paraview], [ParaView from the specified location is used instead of VTK (default "" means taking from environment variable)])]) ]) dnl dnl CHECK_VTK dnl ------------------------------------------------------------------------ dnl 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_REQUIRE([AC_LINKER_OPTIONS])dnl AC_REQUIRE([OPTIONS_VTK])dnl 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 if test "x$OpenGL_ok" != "xyes" ; then AC_MSG_WARN(VTK needs OpenGL correct configuration, check configure output) fi AC_PATH_X if test "x$x_libraries" != "x" then LXLIB="-L$x_libraries" else LXLIB="" fi if test "x$x_libraries" = "x/usr/lib" then LXLIB="" fi if test "x$x_libraries" = "x/usr/lib${LIB_LOCATION_SUFFIX}" then LXLIB="" fi LOCAL_INCLUDES="$OGL_INCLUDES" LOCAL_LIBS="-lvtkCommon -lvtkGraphics -lvtkImaging -lvtkFiltering -lvtkIO -lvtkRendering -lvtkHybrid -lvtkParallel -lvtkWidgets $LXLIB -lX11 -lXt" TRY_LINK_LIBS="-lvtkCommon $LXLIB -lX11 -lXt" dnl VTK version suffix if test -z $vtk_suffix ; then vtk_suffix="yes" fi if test "x$vtk_suffix" = "xno" ; then dnl in case user wrote --with-vtk-version=no, use empty suffix vtk_suffix="" fi if test "x$vtk_suffix" != "xyes" ; then VTKSUFFIX="$vtk_suffix" else dnl in case user wrote --with-vtk-version=yes, get the suffix from env if test -z $VTKSUFFIX ; then VTKSUFFIX="-5.0" fi fi dnl dnl Use VTK from ParaView unless --with-paraview=no is given dnl pv_vtk_ok=no case "x$with_paraview" in xno ) PVHOME="" ;; xyes | x ) if test -z $PVHOME ; then AC_PATH_PROG(para_path, paraview) if test "x$para_path" != "x" ; then para_path=`dirname $para_path` PVHOME=`dirname $para_path` else for d in /usr/local /usr ; do if test -f ${d}/include/paraview${PVVERSION}/pqDialog.h ; then AC_MSG_RESULT(trying ${d}) PVHOME="${d}" break fi if test -f ${d}/include/paraview-3.7/pqDialog.h ; then AC_MSG_RESULT(trying ${d}) PVHOME="${d}" PVVERSION="-3.7" break fi if test -f ${d}/include/paraview-3.8/pqDialog.h ; then AC_MSG_RESULT(trying ${d}) PVHOME="${d}" PVVERSION="-3.8" break fi if test -f ${d}/include/paraview/pqDialog.h ; then AC_MSG_RESULT(trying ${d}) PVHOME="${d}" PVVERSION="" break fi done fi fi ;; * ) PVHOME=${with_paraview} ;; esac dnl Check VTK from ParaView. if test "x$PVHOME" != "x" ; then if test "x$PVVERSION" = "x" ; then for suffix in 3.7 3.8 ; do if test -f $PVHOME/include/paraview-$suffix/vtkPVConfig.h ; then PVVERSION=$suffix break; fi done fi if test "x$PVVERSION" = "x" ; then ls -1d $PVHOME/include/paraview-* > /dev/null 2>&1 if test $? = 0 ; then nb=$(ls -1d $PVHOME/include/paraview-* | wc -l) if test $nb = 1 ; then d=$(ls -1d $PVHOME/include/paraview-*) PVVERSION=$(echo $d | awk -F "-" '{print $(NF)}') fi fi fi if test "x$PVVERSION" = "x" ; then PVVERSION=`basename $PVHOME | sed -e "s,[[^-]]*,,"` else if test "${PVVERSION:0:1}" != "-" ; then PVVERSION="-$PVVERSION" fi fi AC_CHECKING(for VTK from ParaView) PV_LOCAL_INCLUDES="-I$PVHOME/include/paraview$PVVERSION $LOCAL_INCLUDES" PV_LOCAL_LIBS="-L$PVHOME/lib/paraview$PVVERSION -lvtksys -lvtkzlib -lvtkpng -lvtkjpeg -lvtktiff -lvtkexpat -lvtksqlite -lvtkmetaio -lvtkverdict -lvtkNetCDF -lvtkDICOMParser -lvtkfreetype -lvtkftgl -lvtkexoIIc $LOCAL_LIBS" PV_TRY_LINK_LIBS="-L$PVHOME/lib/paraview$PVVERSION -lvtksys $TRY_LINK_LIBS" dnl vtk headers CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PV_LOCAL_INCLUDES" AC_CHECK_HEADER(vtkPoints.h,pv_vtk_ok="yes",pv_vtk_ok="no") CPPFLAGS="$CPPFLAGS_old" if test "x$pv_vtk_ok" = "xyes"; then dnl vtk libraries AC_MSG_CHECKING(linking VTK library from ParaView) LIBS_old="$LIBS" LIBS="$LIBS $PV_TRY_LINK_LIBS" CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PV_LOCAL_INCLUDES" AC_CACHE_VAL(salome_cv_lib_pvvtk,[ AC_TRY_LINK([#include "vtkPoints.h" ], [vtkPoints::New()], [salome_cv_lib_pvvtk=yes], [salome_cv_lib_pvvtk=no]) ]) pv_vtk_ok="$salome_cv_lib_pvvtk" LIBS="$LIBS_old" CPPFLAGS="$CPPFLAGS_old" AC_MSG_RESULT($pv_vtk_ok) fi dnl Find out version of VTK from ParaView PVVTKVERSION=" Undefined" if test "x$pv_vtk_ok" = "xyes"; then AC_MSG_CHECKING(VTK version) PVVTKVERSION=`grep VTK_VERSION $PVHOME/include/paraview$PVVERSION/vtkConfigure.h` AC_MSG_RESULT(${PVVTKVERSION:20:10}) fi fi dnl dnl Use regular VTK if no ParaView found or a newer version is provided via --with-vtk dnl try_regular_vtk=no if test "$pv_vtk_ok" = "no"; then try_regular_vtk=yes fi if test -z $with_vtk ; then with_vtk="" fi case "x$with_vtk" in xyes) dnl in case user wrote --with-vtk=yes with_vtk="" ;; xno) dnl in case user wrote --with-vtk=no with_vtk="" AC_MSG_WARN(Value "no", specified for option --with-vtk, is not supported) ;; x) ;; *) try_regular_vtk=yes ;; esac if test "$try_regular_vtk" = "yes"; then dnl Check regular VTK installation AC_CHECKING(for regular VTK) dnl VTK install dir if test "x$with_vtk" != "x" ; then VTKHOME="$with_vtk" else if test -z $VTKHOME ; then AC_MSG_WARN(undefined VTKHOME variable which specify where vtk was compiled) for d in /usr/local /usr ; do if test -f ${d}/include/vtk${VTKSUFFIX}/vtkPlane.h ; then AC_MSG_RESULT(trying ${d}) VTKHOME="${d}" break fi if test -f ${d}/include/vtk-5.0/vtkPlane.h ; then AC_MSG_RESULT(trying ${d}) VTKHOME="${d}" VTKSUFFIX="-5.0" break fi if test -f ${d}/include/vtk-5.2/vtkPlane.h ; then AC_MSG_RESULT(trying ${d}) VTKHOME="${d}" VTKSUFFIX="-5.2" break fi if test -f ${d}/include/vtk/vtkPlane.h ; then AC_MSG_RESULT(trying ${d}) VTKHOME="${d}" VTKSUFFIX="" break fi done fi fi VTK_LOCAL_INCLUDES="-I$VTKHOME/include/vtk${VTKSUFFIX} $LOCAL_INCLUDES" VTK_LOCAL_LIBS="-L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk${VTKSUFFIX} $LOCAL_LIBS" VTK_TRY_LINK_LIBS="-L$VTKHOME/lib${LIB_LOCATION_SUFFIX} -L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk${VTKSUFFIX} $TRY_LINK_LIBS" if test "x$VTKHOME" != "x/usr" ; then VTK_LOCAL_LIBS="-L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk${VTKSUFFIX} $LOCAL_LIBS" fi dnl vtk headers CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $VTK_LOCAL_INCLUDES" AC_CHECK_HEADER(vtkPlane.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 regular VTK library) LIBS_old="$LIBS" LIBS="$LIBS $VTK_TRY_LINK_LIBS" CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $VTK_LOCAL_INCLUDES" dnl VTKPY_MODULES="$VTKHOME/python" AC_CACHE_VAL(salome_cv_lib_vtk,[ AC_TRY_LINK([#include "vtkPlane.h" ], [vtkPlane::New()], [salome_cv_lib_vtk=yes], [salome_cv_lib_vtk=no]) ]) vtk_ok="$salome_cv_lib_vtk" LIBS="$LIBS_old" CPPFLAGS="$CPPFLAGS_old" AC_MSG_RESULT($vtk_ok) fi VTKVERSION=" Undefined" if test "x$vtk_ok" = "xyes"; then AC_MSG_CHECKING(VTK version) VTKVERSION=`grep VTK_VERSION $VTKHOME/include/vtk${VTKSUFFIX}/vtkConfigure.h` AC_MSG_RESULT(${VTKVERSION:20:10}) fi fi dnl Select either of VTKs if test "x$pv_vtk_ok" = "xyes" ; then if test "x$vtk_ok" = "xyes" ; then if test "$VTKVERSION" \> "$PVVTKVERSION" ; then AC_MSG_RESULT([VTK from ParaView is older, ignored]) pv_vtk_ok=no else AC_MSG_RESULT([regular VTK is older, ignored]) vtk_ok=no fi fi fi if test "x$pv_vtk_ok" = "xyes" ; then AC_MSG_RESULT(for VTK: yes) VTK_INCLUDES="$PV_LOCAL_INCLUDES -DVTK_EXCLUDE_STRSTREAM_HEADERS" VTK_LIBS="$PV_LOCAL_LIBS" VTK_MT_LIBS="$VTK_LIBS" #VTKPY_MODULES= vtk_ok=yes else if test "x$vtk_ok" = "xyes" ; then AC_MSG_RESULT(for VTK: yes) VTK_INCLUDES="$VTK_LOCAL_INCLUDES -DVTK_EXCLUDE_STRSTREAM_HEADERS" VTK_LIBS="$VTK_LOCAL_LIBS" VTK_MT_LIBS="$VTK_LIBS" #VTKPY_MODULES= else AC_MSG_RESULT(for VTK: no) AC_MSG_WARN(unable to link with vtk library) fi fi AC_LANG_RESTORE # Save cache AC_CACHE_SAVE ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/check_withihm.m4000077500000000000000000000037121177004724000250530ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl AC_DEFUN([CHECK_WITHIHM],[ AC_ARG_WITH(gui, [ --with-gui build package with GUI support [[default=yes]]]) AC_ARG_WITH(ihm, [ --with-ihm obsolete, use --with-gui instead]) if test "${with_gui}" == "yes" || test "${with_gui}" == "no" ; then WITHGUI="${with_gui}" WITHIHM=$WITHGUI elif test "x${with_gui}" != "x" ; then AC_MSG_FAILURE(wrong value for --with-gui or --without-gui option) elif test "${with_ihm}" == "yes" || test "${with_ihm}" == "no" ; then WITHIHM="${with_ihm}" WITHGUI=$WITHIHM elif test "x${with_ihm}" != "x" ; then AC_MSG_FAILURE(wrong value for --with-ihm or --without-ihm option) else WITHIHM="yes" WITHGUI="yes" fi echo echo --------------------------------------------- echo testing if GUI support is enabled : ${WITHGUI} echo --------------------------------------------- echo withihm_ok=$WITHGUI withgui_ok=$WITHGUI AC_SUBST(WITHIHM) AC_SUBST(WITHGUI) ])dnl AC_DEFUN([CHECK_WITHGUI],[CHECK_WITHIHM]) salome-kernel-6.5.0/salome_adm/unix/config_files/config.guess000077500000000000000000001322641177004724000243250ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-27' # 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, 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. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # 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 build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) 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 # 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. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build 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 ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # 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 ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # 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. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; 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 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; 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 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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 ;; 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 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /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 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # 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 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build 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 -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; 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 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi 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 ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${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=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build 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 -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build 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 -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 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 i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86: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. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # 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. echo i386-sequent-sysv4 exit ;; 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 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; 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 ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; 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|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; 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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; 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 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*: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; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' 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; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *: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 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; 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 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build 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\n"); 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) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # 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 -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # 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 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: salome-kernel-6.5.0/salome_adm/unix/config_files/config.sub000077500000000000000000001022401177004724000237570ustar00rootroot00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-17' # 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # 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. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; 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* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) 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 | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -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/'` ;; -sco5v6*) # 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. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # 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*86 | x86_64) 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. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # 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 ;; abacus) basic_machine=abacus-unknown ;; 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 ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; 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 | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; 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 ;; go32) basic_machine=i386-pc os=-go32 ;; 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*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*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 ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; 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 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; 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 ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-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/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-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=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; 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 ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-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 ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 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 ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) 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* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -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 ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -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[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -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 score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; 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 ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-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 ;; f30[01]-fujitsu | f700-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 ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: salome-kernel-6.5.0/salome_adm/unix/config_files/depcomp000077500000000000000000000442671177004724000233670ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # 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, see . # 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. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: salome-kernel-6.5.0/salome_adm/unix/config_files/enable_pthreads.m4000077500000000000000000000011741177004724000253650ustar00rootroot00000000000000dnl modify CFLAGS, CXXFLAGS and LIBS for compiling pthread-based programs. dnl@author (C) Ruslan Shevchenko , 1998, 2000 dnl@id $Id: enable_pthreads.m4,v 1.6.32.1 2010-05-14 12:57:09 vsr Exp $ dnl Modified to use acx_pthread.m4 from GNU Autoconf Macro Archive dnl AC_DEFUN([ENABLE_PTHREADS],[ AC_REQUIRE([ACX_PTHREAD]) if test x"$enable_pthreads_done" != xyes; then if test x"$acx_pthread_ok" = xyes; then CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" LIBS="$LIBS $PTHREAD_LIBS" threads_ok=yes else threads_ok=no fi enable_pthreads_done=yes fi ])dnl dnl salome-kernel-6.5.0/salome_adm/unix/config_files/hack_libtool.m4000077500000000000000000000033731177004724000247020ustar00rootroot00000000000000dnl Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl --- dnl File : hack_libtool.m4 dnl Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) dnl --- dnl dnl The purpose of below autoconf macro is to workaround very annoying problem dnl of the GNU libtool program. The problem leads to the incorrect linking dnl to the native libraries (installed in /usr/lib[64]) instead of those supplied dnl with specific -Ldir options. AC_DEFUN([AC_HACK_LIBTOOL],[ cat > hack_libtool <&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # 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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: salome-kernel-6.5.0/salome_adm/unix/config_files/local_install.m4000077500000000000000000000036751177004724000250750ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl --- dnl File : local_install.m4 dnl Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) dnl --- dnl dnl The purpose of below autoconf macro is to generate custom install script dnl to be used instead of global /usr/bin/install one. dnl The difference is that resulting install script does not install file passed dnl as parameter if its target copy exists and the file is not changed, i.e dnl source and target files are the identical. dnl The check is performed by the diff command. AC_DEFUN([AC_LOCAL_INSTALL], [ GLOBAL_INSTALL=$INSTALL absdir=`pwd` INSTALL=${absdir}/local-install.sh cat > ${INSTALL} << EOF #!/bin/sh nb_args=\$[#] args=\$[*] if test \$nb_args -gt 1 ; then nb=\$(expr \$nb_args - 2) shift \$nb target=\$[2] if test -f \$target ; then orig=\$[1] if test -f \$orig ; then diff \$orig \$target > /dev/null 2>&1 if test \$[?] = 0 ; then echo \$orig and \$target are identical exit 0 fi fi fi fi ${GLOBAL_INSTALL} \$args EOF chmod +x ${INSTALL} AC_SUBST(INSTALL) AC_SUBST(GLOBAL_INSTALL) ])dnl salome-kernel-6.5.0/salome_adm/unix/config_files/ltmain.sh000077500000000000000000007343461177004724000236410ustar00rootroot00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [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 # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # 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 `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION=2.2.6 TIMESTAMP="" package_revision=1.3012 # define SED for historic ltconfig's generated by Libtool 1.3 test -z "$SED" && SED=sed # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # 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). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # 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='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # 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 "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # 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" else output_obj= 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 $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # 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 if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build 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, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [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 -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only 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: $progname [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: $progname [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: $progname [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 following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [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-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -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 -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface 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: $progname [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." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" 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 func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" 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 $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug 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. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $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 the \`-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" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # 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 || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # 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) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -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. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; 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 *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # 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 func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_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 func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # 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" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | 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/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) 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*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; 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 } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # 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' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' 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 "\ # 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 " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext 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 "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $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 "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ 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 "\ # 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 "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 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\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # 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 invocation. # 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 ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_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 func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append 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= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; 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 ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -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 func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop if test "$module" = yes ; then # [Mandriva] dropping ld option "--no-undefined" which is wrong for plugins linker_flags=`$ECHO "X $linker_flags" | $Xsed -e 's/ --no-undefined//'` compiler_flags=`$ECHO "X $compiler_flags" | $Xsed -e 's/ -Wl,--no-undefined//'` fi test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $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" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # 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 func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. 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 fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. 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 fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # 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_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $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." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." 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 build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac 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 func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" 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 # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # 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 behavior. 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. $opt_dry_run || $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 -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $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" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $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" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -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 case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac 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." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." 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 fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # 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 if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $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\" dep_rpath="$dep_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" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= inst_prefix_arg= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) if test -n "$inst_prefix_dir" && (echo "$test_deplib" | grep -- "$inst_prefix_dir" >/dev/null); then inst_prefix_arg="$inst_prefix_arg $test_deplib" else tmp_deplibs="$tmp_deplibs $test_deplib" fi ;; esac done deplibs="$tmp_deplibs" if test -n "$inst_prefix_arg"; then deplibs="$inst_prefix_arg $deplibs" fi if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_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 ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_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 and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${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" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" 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 "$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 case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac 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" 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 func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; 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. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status 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 "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS 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" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" 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. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --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 not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; 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 $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 salome-kernel-6.5.0/salome_adm/unix/config_files/missing000077500000000000000000000262331177004724000234020ustar00rootroot00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois 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, see . # 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -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 --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one 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 help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. 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 $msg. You should only need it if you modified \`${configure_ac}'. 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 $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. 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_ac}` 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 $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 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 ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. 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 test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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 test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. 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 prerequisites 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 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: salome-kernel-6.5.0/salome_adm/unix/config_files/production.m4000077500000000000000000000071601177004724000244340ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl dnl define macros : dnl AC_ENABLE_PRODUCTION AC_DISABLE_PRODUCTION dnl AC_ENABLE_DEBUG AC_DISABLE_DEBUG dnl version $Id: production.m4,v 1.13.2.2.18.3.12.1 2012-04-12 14:05:02 vsr Exp $ dnl author Patrick GOLDBRONN dnl AC_ENABLE_PRODUCTION dnl This macro enables production build : optimized + no debugging information (-g) dnl default = not enabled dnl AC_DEFUN([AC_ENABLE_PRODUCTION], [define([AC_ENABLE_PRODUCTION_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([production], [AC_HELP_STRING([--enable-production], [compile in optimized mode @<:@default=]AC_ENABLE_PRODUCTION_DEFAULT[@:>@])], [ enable_production=$enableval ], [enable_production=]AC_ENABLE_PRODUCTION_DEFAULT) AC_CXX_OPTION(-Wparentheses,CXXFLAGS) AC_CXX_OPTION(-Wreturn-type,CXXFLAGS) AC_CXX_OPTION(-fmessage-length=0,CXXFLAGS) AC_CXX_OPTION(-Wunused,CXXFLAGS) AC_CXX_OPTION(-pipe,CXXFLAGS) if test "X$enable_production" = "Xyes"; then CFLAGS="$CFLAGS -O" AC_CXX_OPTION(-Wuninitialized,CXXFLAGS) CXXFLAGS="$CXXFLAGS -O " else CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" fi ]) # AC_DISABLE_PRODUCTION - set the default flag to --disable-production AC_DEFUN([AC_DISABLE_PRODUCTION], [AC_ENABLE_PRODUCTION(no)]) dnl AC_ENABLE_DEBUG dnl dnl This macro enables debugging build : debug + trace dnl default = not enabled dnl AC_DEFUN([AC_ENABLE_DEBUG], [define([AC_ENABLE_DEBUG_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug], [build with debug and trace information @<:@default=]AC_ENABLE_DEBUG_DEFAULT[@:>@])], [ enable_debug=$enableval ], [enable_debug=]AC_ENABLE_DEBUG_DEFAULT) 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)]) dnl AC_ENABLE_MPI_SEQ_CONTAINER dnl dnl This macro enables mpi into the sequential container dnl default = not enabled dnl AC_DEFUN([AC_ENABLE_MPI_SEQ_CONTAINER], [define([AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([mpi-seq-container], [AC_HELP_STRING([--enable-mpi-seq-container], [enable mpi into seq container @<:@default=]AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT[@:>@])], [ enable_mpi_seq_container=$enableval ], [enable_mpi_seq_container=]AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT) if test "X$enable_mpi_seq_container" = "Xyes"; then CFLAGS="$CFLAGS -D_MPI_SEQ_CONTAINER_ " CXXFLAGS="$CXXFLAGS -D_MPI_SEQ_CONTAINER_ " fi AM_CONDITIONAL([WITH_MPI_SEQ_CONTAINER], [test "x$enable_mpi_seq_container" = "xyes"]) ]) salome-kernel-6.5.0/salome_adm/unix/config_files/py-compile000077500000000000000000000101351177004724000240010ustar00rootroot00000000000000#!/bin/sh # py-compile - Compile a Python program scriptversion=2009-04-28.21; # UTC # Copyright (C) 2000, 2001, 2003, 2004, 2005, 2008, 2009 Free Software # Foundation, Inc. # 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . if [ -z "$PYTHON" ]; then PYTHON=python fi basedir= destdir= files= while test $# -ne 0; do case "$1" in --basedir) basedir=$2 if test -z "$basedir"; then echo "$0: Missing argument to --basedir." 1>&2 exit 1 fi shift ;; --destdir) destdir=$2 if test -z "$destdir"; then echo "$0: Missing argument to --destdir." 1>&2 exit 1 fi shift ;; -h|--h*) cat <<\EOF Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..." Byte compile some python scripts FILES. Use --destdir to specify any leading directory path to the FILES that you don't want to include in the byte compiled file. Specify --basedir for any additional path information you do want to be shown in the byte compiled file. Example: py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py Report bugs to . EOF exit $? ;; -v|--v*) echo "py-compile $scriptversion" exit $? ;; *) files="$files $1" ;; esac shift done if test -z "$files"; then echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 exit 1 fi # if basedir was given, then it should be prepended to filenames before # byte compilation. if [ -z "$basedir" ]; then pathtrans="path = file" else pathtrans="path = os.path.join('$basedir', file)" fi # if destdir was given, then it needs to be prepended to the filename to # byte compile but not go into the compiled file. if [ -z "$destdir" ]; then filetrans="filepath = path" else filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)" fi $PYTHON -c " import sys, os, py_compile files = '''$files''' sys.stdout.write('Byte-compiling python modules...\n') for file in files.split(): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue sys.stdout.write(file) sys.stdout.flush() py_compile.compile(filepath, filepath + 'c', path) sys.stdout.write('\n')" || exit $? # this will fail for python < 1.5, but that doesn't matter ... $PYTHON -O -c " import sys, os, py_compile files = '''$files''' sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n') for file in files.split(): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue sys.stdout.write(file) sys.stdout.flush() py_compile.compile(filepath, filepath + 'o', path) sys.stdout.write('\n')" 2>/dev/null || : # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: salome-kernel-6.5.0/salome_adm/unix/config_files/pyembed.m4000077500000000000000000000075471177004724000237040ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl 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 dnl 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. salome-kernel-6.5.0/salome_adm/unix/config_files/python.m4000077500000000000000000000144361177004724000235730ustar00rootroot00000000000000dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com dnl ## ------------------------ ## 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], [ python_ok=yes AC_ARG_WITH(python, [AC_HELP_STRING([--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]) AC_REQUIRE([AC_LINKER_OPTIONS])dnl 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${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile if test ! -f "$PY_MAKEFILE"; then if test "${build_cpu::6}" = "x86_64" ; then PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile fi fi if test ! -f "$PY_MAKEFILE"; then AC_MSG_WARN([*** Couldn't find ${PY_MAKEFILE}. Maybe you are *** missing the development portion of the python installation]) python_ok=no fi AC_SUBST(PYTHON_INCLUDES) AC_SUBST(PYTHON_LIBS) PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" PYTHON_LIB=$PYTHON_LIBS PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a if test "${build_cpu::6}" = "x86_64" ; then if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" PYTHON_LIB=$PYTHON_LIBS PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a fi fi 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, [AC_HELP_STRING([--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${LIB_LOCATION_SUFFIX}/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, [AC_HELP_STRING([--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${LIB_LOCATION_SUFFIX}/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${LIB_LOCATION_SUFFIX}/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 AC_MSG_RESULT(yes) AC_CHECK_LIB(db,dbopen,PYTHON_LIBS="$PYTHON_LIBS -ldb",db_ok=no) 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 AC_MSG_RESULT(yes) AC_CHECK_LIB(dl,dlopen,PYTHON_LIBS="$PYTHON_LIBS -ldl",dl_ok=no) 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 AC_MSG_RESULT(yes) AC_CHECK_LIB(util,openpty,PYTHON_LIBS="$PYTHON_LIBS -lutil",openpty_ok=no) 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 AC_MSG_RESULT(yes) AC_CHECK_LIB(tcl,Tcl_Init,PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk",tclinit_ok=no) else AC_MSG_RESULT(no) fi if test "$python_ok" == "yes"; then AC_MSG_RESULT(looks good) fi ]) salome-kernel-6.5.0/salome_adm/unix/make_common_starter.am000077500000000000000000000061161177004724000237250ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ if !WITHONLYLAUNCHER AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h else WITHONLYLAUNCHER AM_CXXFLAGS = AM_CPPFLAGS = endif # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome bindir = $(prefix)/bin/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir =$(salomepythondir)/shared_modules # Documentation directory docdir = $(datadir)/doc/salome salome-kernel-6.5.0/src/000077500000000000000000000000001177004724000150515ustar00rootroot00000000000000salome-kernel-6.5.0/src/Basics/000077500000000000000000000000001177004724000162555ustar00rootroot00000000000000salome-kernel-6.5.0/src/Basics/BasicsGenericDestructor.cxx000077500000000000000000000147311177004724000235720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Basics : general SALOME definitions and tools (C++ part - no CORBA) // File : BasicGenericDestructor.cxx // Author : Antoine YESSAYAN, Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Basics/BasicsGenericDestructor.cxx,v 1.6.2.1.10.3.12.1 2012-04-12 14:05:02 vsr Exp $ // #include #include #include #include "BasicsGenericDestructor.hxx" void HouseKeeping(); std::list PROTECTED_DELETE::_objList; #ifndef WIN32 pthread_mutex_t PROTECTED_DELETE::_listMutex; #else pthread_mutex_t PROTECTED_DELETE::_listMutex = PTHREAD_MUTEX_INITIALIZER; #endif std::list *GENERIC_DESTRUCTOR::Destructors = 0; static bool atExitSingletonDone = false ; // ============================================================================ /*! * deleteInstance deletes only once the object. Only object present on the * static list of PROTECTED_DELETE* are deleted, then removed of the list. * The operation is protected by a mutex. */ // ============================================================================ void PROTECTED_DELETE::deleteInstance(PROTECTED_DELETE *anObject) { if (std::find(_objList.begin(), _objList.end(),anObject) == _objList.end()) return; else { int ret; ret = pthread_mutex_lock(&_listMutex); // acquire lock, an check again if (std::find(_objList.begin(), _objList.end(), anObject) != _objList.end()) { DEVTRACE("PROTECTED_DELETE::deleteInstance1 " << anObject); delete anObject; DEVTRACE("PROTECTED_DELETE::deleteInstance2 " << &_objList); _objList.remove(anObject); } ret = pthread_mutex_unlock(&_listMutex); // release lock } } // ============================================================================ /*! * To allow a further destruction of a PRTECTED_DELETE object, it must be added * to the static list of PROTECTED_DELETE* */ // ============================================================================ void PROTECTED_DELETE::addObj(PROTECTED_DELETE *anObject) { DEVTRACE("PROTECTED_DELETE::addObj " << anObject); _objList.push_back(anObject); } // ============================================================================ /*! * Herited classes have there own destructors */ // ============================================================================ PROTECTED_DELETE::~PROTECTED_DELETE() { DEVTRACE("PROTECTED_DELETE::~PROTECTED_DELETE()"); } // ============================================================================ /*! * To execute only once GENERIC_DESTRUCTOR::HouseKeeping et the end of process, * a dedicated object is created, as a singleton: atExitSingleton. * When the singleton is created, the HouseKeeping() function is registered in * atExit(). * Destructors is a list created on heap, and deleted by HouseKeeping(), with * the list content. */ // ============================================================================ class atExitSingleton { public: atExitSingleton(bool Make_ATEXIT) { if (Make_ATEXIT && !atExitSingletonDone) { DEVTRACE("atExitSingleton(" << Make_ATEXIT << ")"); assert(GENERIC_DESTRUCTOR::Destructors == 0); GENERIC_DESTRUCTOR::Destructors = new std::list; #ifndef _DEBUG_ atexit(HouseKeeping); #else int cr = atexit(HouseKeeping); assert(cr == 0); #endif atExitSingletonDone = true; } } ~atExitSingleton() { DEVTRACE("atExitSingleton::~atExitSingleton()"); } }; //! static singleton for atExitSingleton class static atExitSingleton HouseKeeper = atExitSingleton(false); // ============================================================================ /*! * Executes all objects of type DESTRUCTOR_OF in the Destructors list. * Deletes all objects of type DESTRUCTOR_OF in the Destructors list. * Deletes the list. */ // ============================================================================ void HouseKeeping( void ) { DEVTRACE("HouseKeeping()"); assert(GENERIC_DESTRUCTOR::Destructors); if(GENERIC_DESTRUCTOR::Destructors->size()) { std::list::iterator it = GENERIC_DESTRUCTOR::Destructors->end(); do { it-- ; GENERIC_DESTRUCTOR* ptr = *it ; DEVTRACE("HouseKeeping() " << typeid(ptr).name()); (*ptr)(); delete ptr ; } while (it != GENERIC_DESTRUCTOR::Destructors->begin()) ; DEVTRACE("HouseKeeping() end list "); GENERIC_DESTRUCTOR::Destructors->clear() ; assert(GENERIC_DESTRUCTOR::Destructors->size() == 0); assert(GENERIC_DESTRUCTOR::Destructors->empty()); DEVTRACE("HouseKeeping()after clear "); } delete GENERIC_DESTRUCTOR::Destructors; GENERIC_DESTRUCTOR::Destructors = 0; atExitSingletonDone = false ; DEVTRACE("HouseKeeping() very end "); return ; } // ============================================================================ /*! * Adds a destruction object to the list of actions to be performed at the end * of the process */ // ============================================================================ const int GENERIC_DESTRUCTOR::Add(GENERIC_DESTRUCTOR &anObject) { DEVTRACE("GENERIC_DESTRUCTOR::Add("<push_back(&anObject); return Destructors->size(); } salome-kernel-6.5.0/src/Basics/BasicsGenericDestructor.hxx000077500000000000000000000135241177004724000235760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Basics : general SALOME definitions and tools (C++ part - no CORBA) // File : BasicGenericDestructor.hxx // Author : Antoine YESSAYAN, Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Basics/BasicsGenericDestructor.hxx,v 1.5.2.1.10.2.12.1 2012-04-12 14:05:02 vsr Exp $ // #ifndef _BASICGENERICDESTRUCTOR_HXX_ #define _BASICGENERICDESTRUCTOR_HXX_ #include "SALOME_Basics.hxx" #include #include #include #include #include #include #include //#define _DEVDEBUG_ #ifdef _DEVDEBUG_ #define MYDEVTRACE {std::cerr << __FILE__ << " [" << __LINE__ << "] : ";} #define DEVTRACE(msg) {MYDEVTRACE; std::cerr< _objList; private: static pthread_mutex_t _listMutex; }; // ============================================================================ /*! * The GENERIC_DESTRUCTOR abstract class describes the comportement of any * destruction object. This type is used to create a list of miscellaneous * destruction objects. * * The only way to use the GENERIC_DESTRUCTOR class is inheritance: * class SPECIFIC_DESTRUCTOR : public GENERIC_DESTRUCTOR * * A generic destructor provides two methods: * -# a static method to add a destruction (object) to be performed: * GENERIC_DESTRUCTOR::Add(GENERIC_DESTRUCTOR &anObject); * The Destruction object is stored in a list of pointer to * GENERIC_DESTRUCTOR objects. * -# an object method to execute the destruction : operator()(). */ // ============================================================================ class BASICS_EXPORT GENERIC_DESTRUCTOR { public : static std::list *Destructors; virtual ~GENERIC_DESTRUCTOR() {}; static const int Add(GENERIC_DESTRUCTOR &anObject); virtual void operator()(void) = 0; }; // ============================================================================ /*! * The DESTRUCTOR_OF class allows the user to program - at any moment - the * destruction of an object at the end of the process. * * Example: the POINT ptrPoint will be destroyed at the end of the process * (atexit). * * POINT *ptrPoint = new POINT ; * * DESTRUCTOR_OF *ptrDestruct = new DESTRUCTOR_OF(*ptrPoint); * * Note that neither ptrPoint, nor ptrDestruct should be destroyed by the user. * * The destruction object must be created dynamically because it suscribes * itself in the list of destruction to be performed at the end of the process. */ // ============================================================================ template class DESTRUCTOR_OF : public GENERIC_DESTRUCTOR { public: /*! Programs the destruction at the end of the process, of the object anObject. This method records in _objectPtr the address of an object to be destroyed at the end of the process */ DESTRUCTOR_OF(TYPE &anObject): _objectPtr(&anObject) { DEVTRACE(" DESTRUCTOR_OF " << typeid(anObject).name() << " " << _objectPtr << " " << this ); PROTECTED_DELETE::addObj(_objectPtr); assert(GENERIC_DESTRUCTOR::Add(*this) >= 0); } /*! Performs the destruction of the object. This method really destroys the object pointed by _objectPtr. It should be called at the end of the process (i.e. at exit). */ virtual void operator()(void) { if (_objectPtr) { DEVTRACE("DESTRUCTOR_OF<>::operator() " << _objectPtr); if (_objectPtr) PROTECTED_DELETE::deleteInstance(_objectPtr); _objectPtr = NULL; } } virtual ~DESTRUCTOR_OF() { DEVTRACE("~DESTRUCTOR_OF() " << this); assert(!_objectPtr); } private: TYPE *_objectPtr; }; # endif salome-kernel-6.5.0/src/Basics/Basics_DirUtils.cxx000077500000000000000000000204411177004724000220300ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Basics_DirUtils.cxx // Autor : Alexander A. BORODIN // Module : SALOME // #include "Basics_DirUtils.hxx" #include #include #include #ifndef WIN32 # include # include #else # include # include #endif #ifdef WIN32 # define _separator_ '\\' #else # define _separator_ '/' #endif namespace Kernel_Utils { std::string GetBaseName( const std::string& file_path ) { int pos = file_path.rfind( _separator_ ); if ( pos >= 0 ) return pos < (int)file_path.size()-1 ? file_path.substr( pos+1 ) : ""; return file_path; } std::string GetDirName( const std::string& file_path ) { int pos = file_path.rfind( _separator_ ); if ( pos >= 0 ) return pos < (int)file_path.size()-1 ? file_path.substr(0, pos ) : ""; return std::string("."); } std::string GetTmpDirByEnv( const std::string& tmp_path_env ) { char* val = getenv( tmp_path_env.c_str() ); std::string dir = val ? val : ""; return GetTmpDirByPath( dir ); } std::string GetTmpDirByPath( const std::string& tmp_path ) { std::string aTmpDir = tmp_path; if ( aTmpDir == "" ) { #ifdef WIN32 char *Tmp_dir = getenv("TEMP"); if( Tmp_dir == NULL ) { Tmp_dir = getenv("TMP"); if (Tmp_dir == NULL) aTmpDir = std::string("C:\\"); else aTmpDir = std::string(Tmp_dir); } else aTmpDir = std::string(Tmp_dir); #else aTmpDir = std::string("/tmp/"); #endif } if(aTmpDir[aTmpDir.size()-1] != _separator_) aTmpDir+=_separator_; srand((unsigned int)time(NULL)); int aRND = 999 + (int)(100000.0*rand()/(RAND_MAX+1.0)); //Get a random number to present a name of a sub directory char buffer[127]; sprintf(buffer, "%d", aRND); std::string aSubDir(buffer); if(aSubDir.size() <= 1) aSubDir = std::string("123409876"); aTmpDir += aSubDir; //Get RND sub directory std::string aDir = aTmpDir; if(IsExists(aDir)) { for(aRND = 0; IsExists(aDir); aRND++) { sprintf(buffer, "%d", aRND); aDir = aTmpDir+buffer; //Build a unique directory name } } if(aDir[aDir.size()-1] != _separator_) aDir += _separator_; #ifdef WIN32 CreateDirectory(aDir.c_str(), NULL); #else mkdir(aDir.c_str(), 0x1ff); #endif return aDir; } //============================================================================ // function : GetTempDir // purpose : Returns a temp directory to store created files like "/tmp/sub_dir/" //============================================================================ std::string GetTmpDir() { return GetTmpDirByPath( "" ); } //============================================================================ // function : GetTempFileName // purpose : Returns the unique temporary file name without any extension /tmp/something/file for Unix or c:\something\file for WIN32 //============================================================================ std::string GetTmpFileName() { std::string tmpDir = GetTmpDir(); std::string aFilePath = ""; if(IsExists(tmpDir)) { srand((unsigned int)time(NULL)); int aRND = 999 + (int)(100000.0*rand()/(RAND_MAX+1.0)); //Get a random number to present a name of a sub directory char buffer[127]; sprintf(buffer, "%d", aRND); std::string aSubDir(buffer); if(aSubDir.size() <= 1) aSubDir = std::string("123409876"); aFilePath = tmpDir; for(aRND = 0; IsExists(aFilePath); aRND++) { sprintf(buffer, "%d", aRND); aFilePath = tmpDir+buffer; //Build a unique file name } } return aFilePath; } //============================================================================ // function : IsExists // purpose : Returns True(False) if the path (not)exists //============================================================================ bool IsExists(const std::string& thePath) { #ifdef WIN32 if ( GetFileAttributes ( thePath.c_str() ) == 0xFFFFFFFF ) { if ( GetLastError () == ERROR_FILE_NOT_FOUND ) { return false; } } #else int status = access ( thePath.c_str() , F_OK ); if (status != 0) return false; #endif return true; } //============================================================================ // function : IsWritable // purpose : Returns True(False) if the path is (not) writable //============================================================================ bool IsWritable(const std::string& thePath) { #ifdef WIN32 if ( GetFileAttributes ( thePath.c_str() ) == 0xFFFFFFFF ) { if ( GetLastError () == FILE_ATTRIBUTE_READONLY ) { return false; } } #else int status = access(thePath.c_str(),W_OK); if (status != 0) return false; #endif return true; } //============================================================================ // function : GetDirByPath // purpose : Returns directory by path and converts it to native system format //============================================================================ std::string GetDirByPath(const std::string& thePath) { if (thePath.empty()) return ""; std::string path = thePath; std::string::size_type length = path.length(); //detect all separators in Unix format for ( unsigned int i = 0; i < length; i++ ) { if( path[i] == '/' ) path[i] = '|'; } //detect all separators in Windows format for ( unsigned int i = 0; i < length; i++ ) { if( path[i] == '\\' ) path[i] = '|'; } std::string::size_type pos = path.rfind('|'); if ( pos == std::string::npos ) { #ifdef WIN32 //check for disk letter ( C: ) if ( path.length() == 2 && path[1] == ':' ) path += _separator_; #else //not valid path return ""; #endif } else { //remove right subdirectory or filename from path path = path.substr( 0, pos ); } length = path.length(); for ( unsigned int i = 0; i < length; i++ ) { if( path[i] == '|' ) path[i] = _separator_; } return path; } //============================================================================ // function : IsEmptyDir // purpose : Returns True(False) if the path (not) empty // Also returns False if the path is not valid //============================================================================ bool IsEmptyDir(const std::string& thePath) { if ( thePath.empty() || !IsExists(thePath)) return false; bool result = false; #ifdef WIN32 WIN32_FIND_DATA aFileData; HANDLE hFile = FindFirstFile( thePath.c_str(), &aFileData ); if ( hFile == INVALID_HANDLE_VALUE ) { //empty dir result = true; } else { //close serching. path is not empty FindClose( hFile ); } #else DIR *dp; struct dirent *dirp; if((dp = opendir(thePath.c_str())) == NULL) { //Could not open directory return false; } else { result = true; //empty if no file found while ((dirp = readdir(dp)) != NULL && result ) { std::string file_name(dirp->d_name); result = file_name.empty() || file_name == "." || file_name == ".."; //if any file - break and return false } closedir(dp); } #endif return result; } } salome-kernel-6.5.0/src/Basics/Basics_DirUtils.hxx000077500000000000000000000053231177004724000220370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Basics_DirUtils.hxx // Autor : Alexander A. BORODIN // Module : SALOME // #ifndef _Basics_DIRUTILS_HXX_ #define _Basics_DIRUTILS_HXX_ #include "SALOME_Basics.hxx" #include namespace Kernel_Utils { // Extracts and returns the base name of the specified file name. BASICS_EXPORT std::string GetBaseName( const std::string& file_path ); // Extracts and returns the dir name of the specified file name. BASICS_EXPORT std::string GetDirName( const std::string& file_path ); // Returns the unique temporary directory, that is defined in tmp_path_env if this variable is set // otherwise return /tmp/something/ for Unix or c:\something\ for WIN32 BASICS_EXPORT std::string GetTmpDirByEnv( const std::string& tmp_path_env ); // Returns the unique temporary directory, that is defined in tmp_path if this variable is set // otherwise return /tmp/something/ for Unix or c:\something\ for WIN32 BASICS_EXPORT std::string GetTmpDirByPath( const std::string& tmp_path ); // Returns the unique temporary directory in // /tmp/something/ for Unix or c:\something\ for WIN32 BASICS_EXPORT std::string GetTmpDir(); // Returns the unique temporary file name without any extension // /tmp/something/file for Unix or c:\something\file for WIN32 BASICS_EXPORT std::string GetTmpFileName(); // Returns True(False) if the path (not)exists BASICS_EXPORT bool IsExists( const std::string& path ); // Returns True(False) if the path is writable BASICS_EXPORT bool IsWritable( const std::string& path ); // Returns directory by path and converts it to native system format BASICS_EXPORT std::string GetDirByPath( const std::string& path ); // Returns True(False) if the path (not) empty // Also returns False if the path is not valid BASICS_EXPORT bool IsEmptyDir( const std::string& path ); } #endif salome-kernel-6.5.0/src/Basics/Basics_OCCTVersion.hxx000077500000000000000000000032241177004724000223740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Basics_OCCTVersion.hxx // Author : Julia DOROVSKIKH, Open CASCADE S.A.S (julia.dorovskikh@opencascade.com) #ifndef BASICS_OCCTVERSION_HXX #define BASICS_OCCTVERSION_HXX #include #ifdef OCC_VERSION_SERVICEPACK # define OCC_VERSION_LARGE (OCC_VERSION_MAJOR << 24 | OCC_VERSION_MINOR << 16 | OCC_VERSION_MAINTENANCE << 8 | OCC_VERSION_SERVICEPACK) #else # ifdef OCC_VERSION_DEVELOPMENT # define OCC_VERSION_LARGE (OCC_VERSION_MAJOR << 24 | OCC_VERSION_MINOR << 16 | OCC_VERSION_MAINTENANCE << 8 | 1) # else # define OCC_VERSION_LARGE (OCC_VERSION_MAJOR << 24 | OCC_VERSION_MINOR << 16 | OCC_VERSION_MAINTENANCE << 8) # endif #endif #endif // BASICS_OCCTVERSION_HXX salome-kernel-6.5.0/src/Basics/Basics_Utils.cxx000077500000000000000000000051571177004724000214000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Basics_Utils.cxx // Autor : Alexander A. BORODIN // Module : SALOME // #include "Basics_Utils.hxx" #include #include #ifndef WIN32 #include #include #include #endif namespace Kernel_Utils { std::string GetHostname() { int ls = 100, r = 1; char *s; while (ls < 10000 && r) { ls *= 2; s = new char[ls]; r = gethostname(s, ls-1); switch (r) { case 0: break; default: #ifdef EINVAL case EINVAL: #endif #ifdef ENAMETOOLONG case ENAMETOOLONG: #endif #ifdef WIN32 case WSAEFAULT: #endif delete [] s; continue; } } if (r != 0) { s = new char[50]; strcpy(s, "localhost"); } // remove all after '.' char *aDot = (strchr(s,'.')); if (aDot) aDot[0] = '\0'; std::string p = s; delete [] s; return p; } Localizer::Localizer() { myCurLocale = setlocale(LC_NUMERIC, 0); setlocale(LC_NUMERIC, "C"); } Localizer::~Localizer() { setlocale(LC_NUMERIC, myCurLocale.c_str()); } std::string GetGUID( GUIDtype type ) { std::string guid; switch ( type ) { case DefUserID: guid = "FFFFFFFF-D9CD-11d6-945D-1050DA506788"; break; case ObjectdID: guid = "C08F3C95-F112-4023-8776-78F1427D0B6D"; break; } return guid; } #ifndef WIN32 void print_traceback() { void *array[50]; size_t size; char **strings; size_t i; size = backtrace (array, 40); strings = backtrace_symbols (array, size); for (i = 0; i < size; i++) { std::cerr << strings[i] << std::endl; } free (strings); } #endif } salome-kernel-6.5.0/src/Basics/Basics_Utils.hxx000077500000000000000000000102641177004724000214000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Basics_DirUtils.hxx // Autor : Alexander A. BORODIN // Module : SALOME // #ifndef _Basics_UTILS_HXX_ #define _Basics_UTILS_HXX_ #include "SALOME_Basics.hxx" #include #include #ifndef WIN32 #include #else #include #include #pragma comment(lib,"winmm.lib") #endif namespace Kernel_Utils { BASICS_EXPORT std::string GetHostname(); class BASICS_EXPORT Localizer { public: Localizer(); ~Localizer(); private: std::string myCurLocale; }; //! GUID type enum GUIDtype { DefUserID = 1, //!< Default user attribute ID ObjectdID //!< Global usage object identifier ID }; //! Get predefined GUID BASICS_EXPORT std::string GetGUID( GUIDtype ); #ifndef WIN32 BASICS_EXPORT void print_traceback(); #endif } // // ============================================================= // Helper macro for time analysis // ============================================================= // #ifndef WIN32 #define START_TIMING(name) static long name##tcount=0;static long name##cumul;long name##tt0; timeval name##tv; gettimeofday(&name##tv,0); \ name##tt0=name##tv.tv_usec+name##tv.tv_sec*1000000; \ if(name##tcount==0)std::cerr<<__FILE__<<":"<<__LINE__<<":"<<#name< #include #include template < class T > std::string ToString(const T &arg) { std::stringstream out; out << arg; return(out.str()); } template < class T > double ToDouble(const T &arg) { std::stringstream out; out << arg; double value = atof(out.str().c_str()); return value; } // // ============================================================= // Simple Logger macros (no dependency with SALOME) // ============================================================= // #define STDLOG(msg) {std::cerr< #include #include #include #include #include #include #include #include #include // ============================================================================ /*! * Main program source for Unit Tests with cppunit package does not depend * on actual tests, so we use the same for all partial unit tests. */ // ============================================================================ int main(int argc, char* argv[]) { // --- Create the event manager and test controller CPPUNIT_NS::TestResult controller; // --- Add a listener that colllects test result CPPUNIT_NS::TestResultCollector result; controller.addListener( &result ); // --- Add a listener that print dots as test run. #ifdef WIN32 CPPUNIT_NS::TextTestProgressListener progress; #else CPPUNIT_NS::BriefTestProgressListener progress; #endif controller.addListener( &progress ); // --- Get the top level suite from the registry CPPUNIT_NS::Test *suite = CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest(); // --- Adds the test to the list of test to run CPPUNIT_NS::TestRunner runner; runner.addTest( suite ); runner.run( controller); // --- Print test in a compiler compatible format. std::ofstream testFile; testFile.open("UnitTestsResult", std::ios::out | std::ios::trunc); //CPPUNIT_NS::CompilerOutputter outputter( &result, std::cerr ); CPPUNIT_NS::CompilerOutputter outputter( &result, testFile ); outputter.write(); // --- Run the tests. bool wasSucessful = result.wasSuccessful(); testFile.close(); // --- Return error code 1 if the one of test failed. return wasSucessful ? 0 : 1; } #endif salome-kernel-6.5.0/src/Basics/Test/Makefile.am000077500000000000000000000030571177004724000212400ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Basics: General purpose C++ # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Basics/Test/Makefile.am,v 1.5.32.2.12.1 2012-04-12 14:05:03 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = BasicMainTest.hxx # This include file defines the minimal source file for all test # program. It provides the common main function. salome-kernel-6.5.0/src/Basics/Test/Makefile.in000077500000000000000000000564551177004724000212630ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/Basics/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomeincludedir)" HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # Basics: General purpose C++ # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Basics/Test/Makefile.am,v 1.5.32.2.12.1 2012-04-12 14:05:03 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = BasicMainTest.hxx all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Basics/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Basics/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-salomeincludeHEADERS # This include file defines the minimal source file for all test # program. It provides the common main function. # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Communication/000077500000000000000000000000001177004724000176565ustar00rootroot00000000000000salome-kernel-6.5.0/src/Communication/Makefile.am000077500000000000000000000065051177004724000217230ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ ReceiverFactory.hxx \ SenderFactory.hxx \ SALOMEMultiComm.hxx \ MultiCommException.hxx \ SALOME_Comm_i.hxx \ MatrixClient.hxx \ SALOME_Matrix_i.hxx \ SALOME_Communication.hxx # Scripts to be installed # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # _CS_gbo The need for these flags depends on wether the swig # interface is generated and if MPI is activated. OPT_CPPFLAGS = @PYTHON_INCLUDES@ @MPI_INCLUDES@ OPT_LIBS = @PYTHON_LIBS@ @MPI_LIBS@ OPT_LDFLAGS = -Xlinker -export-dynamic # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeCommunication.la libSalomeCommunication_la_SOURCES =\ SALOME_Comm_i.cxx \ SALOME_Matrix_i.cxx \ SenderFactory.cxx \ MultiCommException.cxx \ SALOMEMultiComm.cxx \ ReceiverFactory.cxx \ MatrixClient.cxx \ \ MultiCommException.hxx \ SALOME_Comm_i.hxx \ SALOME_Matrix_i.hxx \ SenderFactory.hxx \ ReceiverFactory.hxx \ MatrixClient.hxx \ SALOMEMultiComm.hxx \ Receivers.hxx \ Receiver.hxx # the following file is needed by an include file (VERY DIRTY!) EXTRA_DIST = Receivers.cxx libSalomeCommunication_la_CPPFLAGS = $(COMMON_CPPFLAGS) $(OPT_CPPFLAGS) libSalomeCommunication_la_LDFLAGS = -no-undefined -version-info=0:0:0 $(OPT_LDFLAGS) libSalomeCommunication_la_LIBADD = $(COMMON_LIBS) $(OPT_LIBS) # # =============================================================== # Executables targets # =============================================================== # # Nothing to build salome-kernel-6.5.0/src/Communication/Makefile.in000077500000000000000000001164061177004724000217360ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/Communication ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libSalomeCommunication_la_DEPENDENCIES = $(COMMON_LIBS) \ $(am__DEPENDENCIES_1) am_libSalomeCommunication_la_OBJECTS = \ libSalomeCommunication_la-SALOME_Comm_i.lo \ libSalomeCommunication_la-SALOME_Matrix_i.lo \ libSalomeCommunication_la-SenderFactory.lo \ libSalomeCommunication_la-MultiCommException.lo \ libSalomeCommunication_la-SALOMEMultiComm.lo \ libSalomeCommunication_la-ReceiverFactory.lo \ libSalomeCommunication_la-MatrixClient.lo libSalomeCommunication_la_OBJECTS = \ $(am_libSalomeCommunication_la_OBJECTS) libSalomeCommunication_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeCommunication_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeCommunication_la_SOURCES) DIST_SOURCES = $(libSalomeCommunication_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ ReceiverFactory.hxx \ SenderFactory.hxx \ SALOMEMultiComm.hxx \ MultiCommException.hxx \ SALOME_Comm_i.hxx \ MatrixClient.hxx \ SALOME_Matrix_i.hxx \ SALOME_Communication.hxx # Scripts to be installed # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # _CS_gbo The need for these flags depends on wether the swig # interface is generated and if MPI is activated. OPT_CPPFLAGS = @PYTHON_INCLUDES@ @MPI_INCLUDES@ OPT_LIBS = @PYTHON_LIBS@ @MPI_LIBS@ OPT_LDFLAGS = -Xlinker -export-dynamic # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeCommunication.la libSalomeCommunication_la_SOURCES = \ SALOME_Comm_i.cxx \ SALOME_Matrix_i.cxx \ SenderFactory.cxx \ MultiCommException.cxx \ SALOMEMultiComm.cxx \ ReceiverFactory.cxx \ MatrixClient.cxx \ \ MultiCommException.hxx \ SALOME_Comm_i.hxx \ SALOME_Matrix_i.hxx \ SenderFactory.hxx \ ReceiverFactory.hxx \ MatrixClient.hxx \ SALOMEMultiComm.hxx \ Receivers.hxx \ Receiver.hxx # the following file is needed by an include file (VERY DIRTY!) EXTRA_DIST = Receivers.cxx libSalomeCommunication_la_CPPFLAGS = $(COMMON_CPPFLAGS) $(OPT_CPPFLAGS) libSalomeCommunication_la_LDFLAGS = -no-undefined -version-info=0:0:0 $(OPT_LDFLAGS) libSalomeCommunication_la_LIBADD = $(COMMON_LIBS) $(OPT_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Communication/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Communication/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeCommunication.la: $(libSalomeCommunication_la_OBJECTS) $(libSalomeCommunication_la_DEPENDENCIES) $(libSalomeCommunication_la_LINK) -rpath $(libdir) $(libSalomeCommunication_la_OBJECTS) $(libSalomeCommunication_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-MatrixClient.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-MultiCommException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-ReceiverFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-SALOMEMultiComm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-SALOME_Comm_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-SALOME_Matrix_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCommunication_la-SenderFactory.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeCommunication_la-SALOME_Comm_i.lo: SALOME_Comm_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-SALOME_Comm_i.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-SALOME_Comm_i.Tpo -c -o libSalomeCommunication_la-SALOME_Comm_i.lo `test -f 'SALOME_Comm_i.cxx' || echo '$(srcdir)/'`SALOME_Comm_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-SALOME_Comm_i.Tpo $(DEPDIR)/libSalomeCommunication_la-SALOME_Comm_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Comm_i.cxx' object='libSalomeCommunication_la-SALOME_Comm_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-SALOME_Comm_i.lo `test -f 'SALOME_Comm_i.cxx' || echo '$(srcdir)/'`SALOME_Comm_i.cxx libSalomeCommunication_la-SALOME_Matrix_i.lo: SALOME_Matrix_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-SALOME_Matrix_i.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-SALOME_Matrix_i.Tpo -c -o libSalomeCommunication_la-SALOME_Matrix_i.lo `test -f 'SALOME_Matrix_i.cxx' || echo '$(srcdir)/'`SALOME_Matrix_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-SALOME_Matrix_i.Tpo $(DEPDIR)/libSalomeCommunication_la-SALOME_Matrix_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Matrix_i.cxx' object='libSalomeCommunication_la-SALOME_Matrix_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-SALOME_Matrix_i.lo `test -f 'SALOME_Matrix_i.cxx' || echo '$(srcdir)/'`SALOME_Matrix_i.cxx libSalomeCommunication_la-SenderFactory.lo: SenderFactory.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-SenderFactory.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-SenderFactory.Tpo -c -o libSalomeCommunication_la-SenderFactory.lo `test -f 'SenderFactory.cxx' || echo '$(srcdir)/'`SenderFactory.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-SenderFactory.Tpo $(DEPDIR)/libSalomeCommunication_la-SenderFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SenderFactory.cxx' object='libSalomeCommunication_la-SenderFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-SenderFactory.lo `test -f 'SenderFactory.cxx' || echo '$(srcdir)/'`SenderFactory.cxx libSalomeCommunication_la-MultiCommException.lo: MultiCommException.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-MultiCommException.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-MultiCommException.Tpo -c -o libSalomeCommunication_la-MultiCommException.lo `test -f 'MultiCommException.cxx' || echo '$(srcdir)/'`MultiCommException.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-MultiCommException.Tpo $(DEPDIR)/libSalomeCommunication_la-MultiCommException.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MultiCommException.cxx' object='libSalomeCommunication_la-MultiCommException.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-MultiCommException.lo `test -f 'MultiCommException.cxx' || echo '$(srcdir)/'`MultiCommException.cxx libSalomeCommunication_la-SALOMEMultiComm.lo: SALOMEMultiComm.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-SALOMEMultiComm.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-SALOMEMultiComm.Tpo -c -o libSalomeCommunication_la-SALOMEMultiComm.lo `test -f 'SALOMEMultiComm.cxx' || echo '$(srcdir)/'`SALOMEMultiComm.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-SALOMEMultiComm.Tpo $(DEPDIR)/libSalomeCommunication_la-SALOMEMultiComm.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEMultiComm.cxx' object='libSalomeCommunication_la-SALOMEMultiComm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-SALOMEMultiComm.lo `test -f 'SALOMEMultiComm.cxx' || echo '$(srcdir)/'`SALOMEMultiComm.cxx libSalomeCommunication_la-ReceiverFactory.lo: ReceiverFactory.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-ReceiverFactory.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-ReceiverFactory.Tpo -c -o libSalomeCommunication_la-ReceiverFactory.lo `test -f 'ReceiverFactory.cxx' || echo '$(srcdir)/'`ReceiverFactory.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-ReceiverFactory.Tpo $(DEPDIR)/libSalomeCommunication_la-ReceiverFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ReceiverFactory.cxx' object='libSalomeCommunication_la-ReceiverFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-ReceiverFactory.lo `test -f 'ReceiverFactory.cxx' || echo '$(srcdir)/'`ReceiverFactory.cxx libSalomeCommunication_la-MatrixClient.lo: MatrixClient.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCommunication_la-MatrixClient.lo -MD -MP -MF $(DEPDIR)/libSalomeCommunication_la-MatrixClient.Tpo -c -o libSalomeCommunication_la-MatrixClient.lo `test -f 'MatrixClient.cxx' || echo '$(srcdir)/'`MatrixClient.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCommunication_la-MatrixClient.Tpo $(DEPDIR)/libSalomeCommunication_la-MatrixClient.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MatrixClient.cxx' object='libSalomeCommunication_la-MatrixClient.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCommunication_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCommunication_la-MatrixClient.lo `test -f 'MatrixClient.cxx' || echo '$(srcdir)/'`MatrixClient.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # # =============================================================== # Executables targets # =============================================================== # # Nothing to build # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Communication/MatrixClient.cxx000077500000000000000000000024551177004724000230160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "MatrixClient.hxx" #include "ReceiverFactory.hxx" double *MatrixClient::getValue(SALOME::Matrix_ptr distMat, int& columnSize, int& rowSize) { long totalSize; double *ret=ReceiverFactory::getValue(distMat->getData(),totalSize); columnSize=distMat->getSizeOfColumn(); distMat->release(); rowSize=totalSize/columnSize; return ret; } salome-kernel-6.5.0/src/Communication/MatrixClient.hxx000077500000000000000000000024051177004724000230160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __MATRIXCLIENT_HXX__ #define __MATRIXCLIENT_HXX__ #include "SALOME_Communication.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Comm) class COMMUNICATION_EXPORT MatrixClient { public: static double *getValue(SALOME::Matrix_ptr distMat, int& columnSize, int& rowSize); }; #endif salome-kernel-6.5.0/src/Communication/MultiCommException.cxx000077500000000000000000000022211177004724000241670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "MultiCommException.hxx" MultiCommException::MultiCommException(const char *message) { _message=message; } const char *MultiCommException::what() const { return _message.c_str(); } salome-kernel-6.5.0/src/Communication/MultiCommException.hxx000077500000000000000000000023641177004724000242040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _MULTICOMMEXCEPTION_HXX_ #define _MULTICOMMEXCEPTION_HXX_ #include "SALOME_Communication.hxx" #include class COMMUNICATION_EXPORT MultiCommException { private: std::string _message; public: MultiCommException(const char *message); const char *what() const; }; #endif salome-kernel-6.5.0/src/Communication/Receiver.hxx000077500000000000000000000040461177004724000221620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _RECEIVER_HXX_ #define _RECEIVER_HXX_ #include "SALOME_Comm_i.hxx" /*! Abstract class factorizing common methods of all the receivers. All of the receivers have to inheritate from it. */ template class Receiver { public: virtual T *getValue(long &size)=0; virtual ~Receiver() {} protected: virtual T *getValue(long &size,senderPtr sender); static inline T *getLocalValue(long &size,senderSrv* servant); virtual T *getDistValue(long &size)=0; }; template T *Receiver::getLocalValue(long &size,senderSrv* servant) { const T *src=(const T *)servant->getData(size); long lgr=size*servant->getSizeOf(); void *ret=new char[lgr]; memcpy(ret,src,lgr); return (T *)ret; //return (void *)servant->getData(size); } template T *Receiver::getValue(long &size,senderPtr sender) { senderSrv* data=senderSrv::find(sender); if(data) return getLocalValue(size,data); else return getDistValue(size); } #endif salome-kernel-6.5.0/src/Communication/ReceiverFactory.cxx000077500000000000000000000144561177004724000235130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef HAVE_MPI2 #include "mpi.h" #endif #include "ReceiverFactory.hxx" #include "Receivers.hxx" #ifdef COMP_CORBA_DOUBLE #define CorbaDNoCopyReceiver CorbaNCNoCopyReceiver #define CorbaDWithCopyReceiver CorbaNCWithCopyReceiver #else #define CorbaDNoCopyReceiver CorbaWCNoCopyReceiver #define CorbaDWithCopyReceiver CorbaWCWithCopyReceiver #endif #ifdef COMP_CORBA_LONG #define CorbaINoCopyReceiver CorbaNCNoCopyReceiver #define CorbaIWithCopyReceiver CorbaNCWithCopyReceiver #else #define CorbaINoCopyReceiver CorbaWCNoCopyReceiver #define CorbaIWithCopyReceiver CorbaWCWithCopyReceiver #endif #ifdef HAVE_SOCKET #include #endif /*! This method performs the transfert of double array with the remote SenderDouble given. If it fails with this SenderDouble it tries with an another protocol (CORBA by default). */ double *ReceiverFactory::getValue(SALOME::SenderDouble_ptr sender,long &size)throw(MultiCommException) { double *ret; try{ ret=getValueOneShot(sender,size); } catch(MultiCommException&) { SALOME::SenderDouble_ptr newSender=sender->buildOtherWithProtocol(SALOME::CORBA_); MESSAGE("PROTOCOL CHANGED TO CORBA"); sender->release(); ret=getValueOneShot(newSender,size); CORBA::release(newSender); } return ret; } /*! This method performs the transfert of int array with the remote SenderInt given. If it fails with this SenderInt it tries with an another protocol (CORBA by default). */ int *ReceiverFactory::getValue(SALOME::SenderInt_ptr sender,long &size)throw(MultiCommException) { int *ret; try{ ret=getValueOneShot(sender,size); } catch(MultiCommException&) { SALOME::SenderInt_ptr newSender=sender->buildOtherWithProtocol(SALOME::CORBA_); MESSAGE("PROTOCOL CHANGED TO CORBA"); sender->release(); ret=getValueOneShot(newSender,size); CORBA::release(newSender); } return ret; } /*! This method performs the transfert with the remote SenderDouble given. If it fails an exception is thrown. */ double *ReceiverFactory::getValueOneShot(SALOME::SenderDouble_ptr sender,long &size)throw(MultiCommException) { SALOME::CorbaDoubleNCSender_ptr cncD_ptr; SALOME::CorbaDoubleCSender_ptr cwcD_ptr; #ifdef HAVE_MPI2 SALOME::MPISenderDouble_ptr mpi_ptr=SALOME::MPISenderDouble::_narrow(sender); #endif #ifdef HAVE_SOCKET SALOME::SocketSenderDouble_ptr sock_ptr=SALOME::SocketSenderDouble::_narrow(sender); #endif cncD_ptr=SALOME::CorbaDoubleNCSender::_narrow(sender); cwcD_ptr=SALOME::CorbaDoubleCSender::_narrow(sender); if(!CORBA::is_nil(cncD_ptr)) { CORBA::release(sender); CorbaDNoCopyReceiver rec(cncD_ptr); return rec.getValue(size); } else if(!CORBA::is_nil(cwcD_ptr)) { CORBA::release(sender); CorbaDWithCopyReceiver rec(cwcD_ptr); return rec.getValue(size); } #ifdef HAVE_MPI2 else if(!CORBA::is_nil(mpi_ptr)) { CORBA::release(sender); MPIReceiver rec(mpi_ptr); return rec.getValue(size); } #endif #ifdef HAVE_SOCKET else if(!CORBA::is_nil(sock_ptr)) { CORBA::release(sender); SocketReceiver rec(sock_ptr); return rec.getValue(size); } #endif else { throw MultiCommException("Unknown sender protocol"); return 0; } } /*! This method performs the transfert with the remote SenderInt given. If it fails an exception is thrown. */ int *ReceiverFactory::getValueOneShot(SALOME::SenderInt_ptr sender,long &size)throw(MultiCommException) { SALOME::CorbaLongNCSender_ptr cncL_ptr; SALOME::CorbaLongCSender_ptr cwcL_ptr; #ifdef HAVE_MPI2 SALOME::MPISenderInt_ptr mpi_ptr=SALOME::MPISenderInt::_narrow(sender); #endif #ifdef HAVE_SOCKET SALOME::SocketSenderInt_ptr sock_ptr=SALOME::SocketSenderInt::_narrow(sender); #endif cncL_ptr=SALOME::CorbaLongNCSender::_narrow(sender); cwcL_ptr=SALOME::CorbaLongCSender::_narrow(sender); if(!CORBA::is_nil(cncL_ptr)) { CORBA::release(sender); CorbaINoCopyReceiver rec(cncL_ptr); return rec.getValue(size); } else if(!CORBA::is_nil(cwcL_ptr)) { CORBA::release(sender); CorbaIWithCopyReceiver rec(cwcL_ptr); return rec.getValue(size); } #ifdef HAVE_MPI2 else if(!CORBA::is_nil(mpi_ptr)) { CORBA::release(sender); MPIReceiver rec(mpi_ptr); return rec.getValue(size); } #endif #ifdef HAVE_SOCKET else if(!CORBA::is_nil(sock_ptr)) { CORBA::release(sender); SocketReceiver rec(sock_ptr); return rec.getValue(size); } #endif else { throw MultiCommException("Unknown sender protocol"); return 0; } } salome-kernel-6.5.0/src/Communication/ReceiverFactory.hxx000077500000000000000000000034551177004724000235150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _RECEIVERFACTORY_HXX_ #define _RECEIVERFACTORY_HXX_ #include "SALOME_Communication.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Comm) #include "MultiCommException.hxx" /*! This class internally builds a receiver associated with the sender given. It also performs transfert completely and clean up the objects. This is the only class used client side of an array. */ class COMMUNICATION_EXPORT ReceiverFactory { public: static double *getValue(SALOME::SenderDouble_ptr sender,long &size)throw(MultiCommException); static int *getValue(SALOME::SenderInt_ptr sender,long &size)throw(MultiCommException); private: static double *getValueOneShot(SALOME::SenderDouble_ptr sender,long &size)throw(MultiCommException); static int *getValueOneShot(SALOME::SenderInt_ptr sender,long &size)throw(MultiCommException); }; #endif salome-kernel-6.5.0/src/Communication/Receivers.cxx000077500000000000000000000312451177004724000223410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "omniORB4/poa.h" #include "utilities.h" #define TAILLE_SPLIT 100000 #define TIMEOUT 20 template CorbaNCNoCopyReceiver::CorbaNCNoCopyReceiver(CorbaSender mySender):_mySender(mySender){ } template CorbaNCNoCopyReceiver::~CorbaNCNoCopyReceiver(){ _mySender->release(); } template T *CorbaNCNoCopyReceiver::getDistValue(long &size) { TSeqCorba seq=_mySender->send(); size=seq->length(); return (T *)seq->get_buffer(1); } template T *CorbaNCNoCopyReceiver::getValue(long &size) { return Receiver::getValue(size,_mySender); } template CorbaNCWithCopyReceiver::CorbaNCWithCopyReceiver(CorbaSender mySender):_mySender(mySender){ } template CorbaNCWithCopyReceiver::~CorbaNCWithCopyReceiver(){ _mySender->release(); } template T *CorbaNCWithCopyReceiver::getDistValue(long &size){ size=_mySender->getSize(); long n; T *ret=new T[size]; T *iter=ret; for(long i=0;iTAILLE_SPLIT) n=TAILLE_SPLIT; else n=size-i; TSeqCorba seq=_mySender->sendPart(i,n); T *seqd=(T *)seq->get_buffer(0); for(long j=0;j T *CorbaNCWithCopyReceiver::getValue(long &size) { return Receiver::getValue(size,_mySender); } template CorbaWCNoCopyReceiver::CorbaWCNoCopyReceiver(CorbaSender mySender):_mySender(mySender){ } template CorbaWCNoCopyReceiver::~CorbaWCNoCopyReceiver(){ _mySender->release(); } template T *CorbaWCNoCopyReceiver::getDistValue(long &size){ size=_mySender->getSize(); long n; T *ret=new T[size]; T *iter=ret; for(long i=0;iTAILLE_SPLIT) n=TAILLE_SPLIT; else n=size-i; TSeqCorba seq=_mySender->sendPart(i,n); TCorba *seqd=seq->get_buffer(0); for(long j=0;j T *CorbaWCNoCopyReceiver::getValue(long &size) { return Receiver::getValue(size,_mySender); } template CorbaWCWithCopyReceiver::CorbaWCWithCopyReceiver(CorbaSender mySender):_mySender(mySender){ } template CorbaWCWithCopyReceiver::~CorbaWCWithCopyReceiver(){ _mySender->release(); } template T *CorbaWCWithCopyReceiver::getDistValue(long &size){ size=_mySender->getSize(); long n; T *ret=new T[size]; T *iter=ret; for(long i=0;iTAILLE_SPLIT) n=TAILLE_SPLIT; else n=size-i; TSeqCorba seq=_mySender->sendPart(i,n); TCorba *seqd=seq->get_buffer(0); for(long j=0;j T *CorbaWCWithCopyReceiver::getValue(long &size) { return Receiver::getValue(size,_mySender); } #ifdef HAVE_MPI2 template MPIReceiver::MPIReceiver(CorbaSender mySender):_mySender(mySender){ } template MPIReceiver::~MPIReceiver(){ _mySender->release(); } template T *MPIReceiver::getDistValue(long &size){ int i=0; int myproc; int sproc; MPI_Status status; MPI_Comm com; char port_name_clt [MPI_MAX_PORT_NAME]; T *_v; long _n; CORBA::Any a; MPI_Comm_rank(MPI_COMM_WORLD, &myproc); SALOME::MPISender::param_var p =_mySender->getParam(); _mySender->send(); sproc = p->myproc; MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN); while ( i != TIMEOUT && MPI_Lookup_name((char*)p->service,MPI_INFO_NULL,port_name_clt) != MPI_SUCCESS) { i++; } MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL); if ( i == TIMEOUT ) { MPI_Finalize(); exit(-1); } else{ // Connect to service, get the inter-communicator server // Attention MPI_Comm_connect est un appel collectif : // - Si lancement mpirun -c n -----> uniquement MPI_COMM_SELF fonctionne // - Si lancement client_server&client_server ----> MPI_COMM_WORLD fonctionne // TIMEOUT is inefficient since MPI_Comm_Connect doesn't return if we asked for // a service that has been unpublished ! MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN); i = 0; while ( i != TIMEOUT && MPI_Comm_connect(port_name_clt, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &com)!=MPI_SUCCESS ) { i++; } MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL); if ( i == TIMEOUT ) { MPI_Finalize(); exit(-1); } } MPI_Recv( &_n, 1, MPI_LONG, sproc,p->tag1,com,&status); _v = new T[_n]; MPI_Recv( _v, _n, MPITRAITS::MpiType, sproc,p->tag2,com,&status); _mySender->close(p); MPI_Comm_disconnect( &com ); size=_n; return _v; } template T *MPIReceiver::getValue(long &size) { return Receiver::getValue(size,_mySender); } #endif #ifdef HAVE_SOCKET #include #include #include #include #include #include #include template SocketReceiver::SocketReceiver(CorbaSender mySender) : _mySender(mySender) { _clientSockfd = -1; _senderDestruc=true; } template SocketReceiver::~SocketReceiver() { if(_senderDestruc) { _mySender->release(); } } template T *SocketReceiver::getValue(long &size) { return Receiver::getValue(size,_mySender); } template T* SocketReceiver::getDistValue(long &size) { int n=0, m; T *v; XDR xp; /* pointeur sur le decodeur XDR */ try{ initCom(); SALOME::SocketSender::param_var p = _mySender->getParam(); size = p->lend - p->lstart + 1; v = new T[size]; connectCom(p->internet_address, p->myport); _mySender->send(); xdrmem_create(&xp,(char*)v,size*sizeof(T),XDR_DECODE ); while( n < size*sizeof(T) ){ m = read(_clientSockfd, (char*)v+n, size*sizeof(T)-n); if( m < 0 ){ closeCom(); delete [] v; SALOME::ExceptionStruct es; es.type = SALOME::COMM; es.text = "error read Socket exception"; throw SALOME::SALOME_Exception(es); } n += m; } xdr_vector( &xp, (char*)v, size, sizeof(T), (xdrproc_t)myFunc); xdr_destroy( &xp ); _mySender->endOfCom(); closeCom(); } catch(SALOME::SALOME_Exception &ex){ if( ex.details.type == SALOME::COMM ) { _senderDestruc=false; std::cout << ex.details.text << std::endl; throw MultiCommException("Unknown sender protocol"); } else throw ex; } return v; } template void SocketReceiver::initCom() { try{ _mySender->initCom(); /* Ouverture de la socket */ _clientSockfd = socket(AF_INET, SOCK_STREAM, 0); if (_clientSockfd < 0) { closeCom(); SALOME::ExceptionStruct es; es.type = SALOME::COMM; es.text = "error Socket exception"; throw SALOME::SALOME_Exception(es); } } catch(SALOME::SALOME_Exception &ex){ if( ex.details.type == SALOME::COMM ) { _senderDestruc=false; std::cout << ex.details.text << std::endl; throw MultiCommException("Unknown sender protocol"); } else throw ex; } } template void SocketReceiver::connectCom(const char *dest_address, int port) { struct sockaddr_in serv_addr; struct hostent * server; SALOME::ExceptionStruct es; try{ /* reception of the host structure on the remote process */ server = gethostbyname(dest_address); if( server == NULL ) { closeCom(); es.type = SALOME::COMM; es.text = "error unknown host Socket exception"; _senderDestruc=false; throw SALOME::SALOME_Exception(es); } /* Initialisation of the socket structure */ bzero((char*)&serv_addr,sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(port); if( connect(_clientSockfd, (struct sockaddr *) & serv_addr, sizeof(struct sockaddr)) < 0 ){ closeCom(); es.type = SALOME::COMM; es.text = "error connect Socket exception"; _senderDestruc=false; throw SALOME::SALOME_Exception(es); } _mySender->acceptCom(); } catch(SALOME::SALOME_Exception &ex){ if( ex.details.type == SALOME::COMM ) { _senderDestruc=false; std::cout << ex.details.text << std::endl; throw MultiCommException("Unknown sender protocol"); } else throw ex; } } template void SocketReceiver::closeCom() { _mySender->closeCom(); if( _clientSockfd >= 0 ){ close(_clientSockfd); _clientSockfd = -1; } } #endif salome-kernel-6.5.0/src/Communication/Receivers.hxx000077500000000000000000000077151177004724000223530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _RECEIVERS_HXX_ #define _RECEIVERS_HXX_ #ifdef HAVE_MPI2 #include "mpi.h" #endif #include "SALOME_Comm_i.hxx" #include "Receiver.hxx" /*! Receiver used for transfert with CORBA when no copy is required remotely and locally. */ template class CorbaNCNoCopyReceiver : public Receiver { private: CorbaSender _mySender; public: CorbaNCNoCopyReceiver(CorbaSender mySender); ~CorbaNCNoCopyReceiver(); T *getValue(long &size); private: T *getDistValue(long &size); }; /*! Receiver used for transfert with CORBA when copy is not required remotely but required locally. */ template class CorbaNCWithCopyReceiver : public Receiver { private: CorbaSender _mySender; public: CorbaNCWithCopyReceiver(CorbaSender mySender); ~CorbaNCWithCopyReceiver(); T *getValue(long &size); private: T *getDistValue(long &size); }; /*! Receiver used for transfert with CORBA when copy is required remotely but not required locally. */ template class CorbaWCNoCopyReceiver : public Receiver { private: CorbaSender _mySender; public: CorbaWCNoCopyReceiver(CorbaSender mySender); ~CorbaWCNoCopyReceiver(); T *getValue(long &size); private: T *getDistValue(long &size); }; /*! Receiver used for transfert with CORBA when copy is required both remotely and locally. */ template class CorbaWCWithCopyReceiver : public Receiver { private: CorbaSender _mySender; public: CorbaWCWithCopyReceiver(CorbaSender mySender); ~CorbaWCWithCopyReceiver(); T *getValue(long &size); private: T *getDistValue(long &size); }; #ifdef HAVE_MPI2 /*! Receiver for MPI transfert. */ template struct MPITRAITS { static MPI_Datatype MpiType; }; template<> MPI_Datatype MPITRAITS::MpiType=MPI_DOUBLE; template<> MPI_Datatype MPITRAITS::MpiType=MPI_INT; template class MPIReceiver : public Receiver { private: CorbaSender _mySender; public: MPIReceiver(CorbaSender mySender); ~MPIReceiver(); T *getValue(long &size); private: T *getDistValue(long &size); }; #endif #ifdef HAVE_SOCKET class XDR; /*! Receiver for transfert with sockets. */ template class SocketReceiver : public Receiver { private: CorbaSender _mySender; int _clientSockfd; bool _senderDestruc; public: SocketReceiver(CorbaSender mySender); ~SocketReceiver(); T *getValue(long &size); private: T *getDistValue(long &size); void initCom(); void connectCom(const char *, int); void closeCom(); }; #endif #include "Receivers.cxx" #endif salome-kernel-6.5.0/src/Communication/SALOMEMultiComm.cxx000077500000000000000000000024551177004724000232220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEMultiComm.hxx" SALOMEMultiComm::SALOMEMultiComm():_type(SALOME::CORBA_) { } SALOMEMultiComm::SALOMEMultiComm(SALOME::TypeOfCommunication type):_type(type) { } void SALOMEMultiComm::setProtocol(SALOME::TypeOfCommunication type) { _type=type; } SALOME::TypeOfCommunication SALOMEMultiComm::getProtocol() const { return _type; } salome-kernel-6.5.0/src/Communication/SALOMEMultiComm.hxx000077500000000000000000000031421177004724000232210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOMEMULTICOMM_HXX_ #define _SALOMEMULTICOMM_HXX_ #include "SALOME_Communication.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Comm) /*! Class is designed to ease the use of multi communication.\n Simply inherite from it your servant class you want to emit data with senders. */ class COMMUNICATION_EXPORT SALOMEMultiComm : public virtual POA_SALOME::MultiCommClass { protected: SALOME::TypeOfCommunication _type; public: SALOMEMultiComm(); SALOMEMultiComm(SALOME::TypeOfCommunication type); virtual void setProtocol(SALOME::TypeOfCommunication type); SALOME::TypeOfCommunication getProtocol() const; }; #endif salome-kernel-6.5.0/src/Communication/SALOME_Comm_i.cxx000077500000000000000000000431751177004724000226620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_Comm_i.hxx" #ifndef WIN32 #include #endif #include "omniORB4/poa.h" #include "omnithread.h" #include "Utils_SINGLETON.hxx" #include "Utils_ORB_INIT.hxx" #include "utilities.h" #include "SenderFactory.hxx" #ifndef WIN32 CORBA::ORB_var &getGlobalORB(){ ORB_INIT &init = *SINGLETON_::Instance(); CORBA::ORB_var &orb = init(0,0); return orb; } #endif /*! Return the C++ data associated to the array to transmit. Used when sender and receiver are collocalized. */ const void *SALOME_Sender_i::getData(long &size) const{ size=_lgrTabToSend; return _tabToSend; } /*! Return the sizeof() of each component of the generic array */ int SALOME_Sender_i::getSizeOf() const { return _sizeOf; } /*! Unique constructor */ SALOME_Sender_i::SALOME_Sender_i(const void *tabToSend,long lgrTabToSend,int sizeOf,bool ownTabToSend):_tabToSend(tabToSend),_lgrTabToSend(lgrTabToSend),_sizeOf(sizeOf),_ownTabToSend(ownTabToSend){ } /*! To force ownerShip status */ void SALOME_Sender_i::setOwnerShip(bool own) { _ownTabToSend=own; } /*! Method for the remote destroy of the current servant. This method is used by the receiver to destroy the sender when the transfert is complete. */ void SALOME_Sender_i::release() { PortableServer::ObjectId_var oid = _default_POA()->servant_to_id(this); _default_POA()->deactivate_object(oid); _remove_ref(); } SALOME_SenderDouble_i::SALOME_SenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend) { } /*! Destructor. */ SALOME_SenderDouble_i::~SALOME_SenderDouble_i() { if(_ownTabToSend) delete [] (double *)_tabToSend; } /*! Return a new sender of the same array but with an another protocol and delegates to the returned sender the ownership of array. */ SALOME::SenderDouble_ptr SALOME_SenderDouble_i::buildOtherWithProtocol(SALOME::TypeOfCommunication type) { return SenderFactory::buildSender(type,this); } /*! Method to establish if the CORBA object refered by pCorba is collocalised.\n If it is, the pointer to the servant that incarnates the CORBA object is returned. */ SALOME_SenderDouble_i *SALOME_SenderDouble_i::find(SALOME::SenderDouble_ptr pCorba){ PortableServer::ServantBase *ret; try { ret=PortableServer::POA::_the_root_poa()->reference_to_servant(pCorba); } catch(...){ return 0; } ret->_remove_ref(); return dynamic_cast(ret); } SALOME_SenderInt_i::SALOME_SenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend) { } /*! Destructor. */ SALOME_SenderInt_i::~SALOME_SenderInt_i() { if(_ownTabToSend) delete [] (int *)_tabToSend; } /*! Return a new sender of the same array but with an another protocol. */ SALOME::SenderInt_ptr SALOME_SenderInt_i::buildOtherWithProtocol(SALOME::TypeOfCommunication type) { return SenderFactory::buildSender(type,this); } /*! Method to establish if the CORBA object refered by pCorba is collocalised.\n If it is, the pointer to the servant that incarnates the CORBA object is returned. */ SALOME_SenderInt_i *SALOME_SenderInt_i::find(SALOME::SenderInt_ptr pCorba){ PortableServer::ServantBase *ret; try { ret=PortableServer::POA::_the_root_poa()->reference_to_servant(pCorba); } catch(...){ return 0; } ret->_remove_ref(); return dynamic_cast(ret); } SALOME_CorbaDoubleNCSender_i::SALOME_CorbaDoubleNCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend){ } SALOME_CorbaDoubleNCSender_i::~SALOME_CorbaDoubleNCSender_i(){ } CORBA::ULong SALOME_CorbaDoubleNCSender_i::getSize(){ CORBA::ULong ret=_lgrTabToSend; return ret; } SALOME::vectorOfDouble* SALOME_CorbaDoubleNCSender_i::sendPart(CORBA::ULong offset, CORBA::ULong length){ SALOME::vectorOfDouble_var c1 = new SALOME::vectorOfDouble(length,length,(CORBA::Double *)((double *)_tabToSend+(long)offset),0); return c1._retn(); } SALOME::vectorOfDouble* SALOME_CorbaDoubleNCSender_i::send(){ SALOME::vectorOfDouble_var c1 = new SALOME::vectorOfDouble(_lgrTabToSend,_lgrTabToSend,(CORBA::Double *)_tabToSend,0); return c1._retn(); } SALOME_CorbaDoubleCSender_i::SALOME_CorbaDoubleCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend){ } SALOME_CorbaDoubleCSender_i::~SALOME_CorbaDoubleCSender_i(){ } CORBA::ULong SALOME_CorbaDoubleCSender_i::getSize(){ CORBA::ULong ret=_lgrTabToSend; return ret; } SALOME::vectorOfDouble* SALOME_CorbaDoubleCSender_i::sendPart(CORBA::ULong offset, CORBA::ULong length){ SALOME::vectorOfDouble_var c1 = new SALOME::vectorOfDouble; c1->length(length); for (long i=0; ilength(length); for (long i=0; imyproc = _cproc; p->tag1 = _tag1; _tag1Inst=_tag1; p->tag2 =_tag2; _tag2Inst=_tag2; std::string service("toto_"); sprintf(stag,"%d_",_tag1); service += stag; sprintf(stag,"%d_",p->tag2); service += stag; p->service = CORBA::string_dup(service.c_str()); MPI_Open_port(MPI_INFO_NULL, _portName); MPI_Errhandler_set(MPI_COMM_WORLD,MPI_ERRORS_RETURN); while ( i != TIMEOUT && MPI_Publish_name((char*)service.c_str(),MPI_INFO_NULL,_portName) != MPI_SUCCESS) { i++; } MPI_Errhandler_set(MPI_COMM_WORLD,MPI_ERRORS_ARE_FATAL); if ( i == TIMEOUT ) { MPI_Close_port(_portName); MPI_Finalize(); exit(-1); } _tag1 += 2; _tag2 += 2; return p._retn(); } void SALOME_MPISender_i::send() { _type=getTypeOfDataTransmitted(); _argsForThr=new void *[8]; _argsForThr[0]=_portName; _argsForThr[1]=&_lgrTabToSend; _argsForThr[2]=(void *)_tabToSend; _argsForThr[3]=&_cproc; _argsForThr[4]=&_tag1Inst; _argsForThr[5]=&_tag2Inst; _argsForThr[6]=&_com; _argsForThr[7]=&_type; _newThr=new omni_thread(SALOME_MPISender_i::myThread,_argsForThr); _newThr->start(); } void* SALOME_MPISender_i::myThread(void *args) { void **argsTab=(void **)args; long *lgrTabToSend=(long *)argsTab[1]; int *cproc=(int *)argsTab[3]; int *tag1=(int *)argsTab[4]; int *tag2=(int *)argsTab[5]; MPI_Comm *com=(MPI_Comm *)argsTab[6]; SALOME::TypeOfDataTransmitted *type=(SALOME::TypeOfDataTransmitted *)argsTab[7]; MPI_Comm_accept((char *)argsTab[0],MPI_INFO_NULL,0,MPI_COMM_SELF,com); MPI_Send(lgrTabToSend,1,MPI_LONG,*cproc,*tag1,*com); switch(*type) { case SALOME::DOUBLE_: MPI_Send(argsTab[2],*lgrTabToSend,MPI_DOUBLE,*cproc,*tag2,*com); break; case SALOME::INT_: MPI_Send(argsTab[2],*lgrTabToSend,MPI_INT,*cproc,*tag2,*com); } omni_thread::exit(); return args; } void SALOME_MPISender_i::close(const SALOME::MPISender::param& p) { std::string service(p.service); void *r; _newThr->join(&r); MPI_Comm_free(&_com); MPI_Unpublish_name((char *)service.c_str(),MPI_INFO_NULL,_portName); MPI_Close_port(_portName); delete [] _argsForThr; } SALOME_MPISenderDouble_i::SALOME_MPISenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend) :SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_MPISender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend) ,SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend) { } SALOME_MPISenderInt_i::SALOME_MPISenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend) :SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_MPISender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend) ,SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend) { } #endif #ifdef HAVE_SOCKET //CCRT porting #define _POSIX_PII_SOCKET #define _LIBC_POLLUTION_H_ #include #include #include #include #include #include SALOME_SocketSender_i::SALOME_SocketSender_i(const void *tabToSend,long lgrTabToSend,int sizeOf,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeOf,ownTabToSend){ _IPAddress = inetAddress(); _serverSockfd = -1; _clientSockfd = -1; } SALOME_SocketSender_i::~SALOME_SocketSender_i(){ } std::string SALOME_SocketSender_i::inetAddress() { char s[256]; char t[INET_ADDRSTRLEN+1]; struct hostent *host; struct in_addr saddr; gethostname(s, 255); *t = '\0'; saddr.s_addr = inet_addr(s); if (saddr.s_addr != -1) inet_ntop(AF_INET, &saddr, t, INET_ADDRSTRLEN); else { host = gethostbyname(s); if (host != NULL) inet_ntop(AF_INET, (struct in_addr *) *host->h_addr_list, t, INET_ADDRSTRLEN); } return std::string(t); } SALOME::SocketSender::param * SALOME_SocketSender_i::getParam() { SALOME::SocketSender::param_var p = new SALOME::SocketSender::param; p->lstart = 0; p->lend = _lgrTabToSend - 1; p->myport = _port; p->internet_address = CORBA::string_dup(_IPAddress.c_str()); return p._retn(); } void SALOME_SocketSender_i::send() { _type=getTypeOfDataTransmitted(); _argsForThr=new void *[6]; _argsForThr[0]=&_serverSockfd; _argsForThr[1]=&_clientSockfd; _argsForThr[2]=&_lgrTabToSend; _argsForThr[3]=(void *)_tabToSend; _argsForThr[4]=&_errorFlag; _argsForThr[5]=&_type; _newThr=new omni_thread(SALOME_SocketSender_i::myThread,_argsForThr); _newThr->start(); } void* SALOME_SocketSender_i::myThread(void *args) { int n=0, m; void **argsTab=(void **)args; int *serverSockfd=(int *)argsTab[0]; int *clientSockfd=(int *)argsTab[1]; long *lgrTabToSend=(long *)argsTab[2]; void *tabToSend=argsTab[3]; bool *errorFlag=(bool*)argsTab[4]; SALOME::TypeOfDataTransmitted *type=(SALOME::TypeOfDataTransmitted *)argsTab[5]; XDR xp; /* pointeur sur le decodeur XDR */ switch(*type) { case SALOME::DOUBLE_: xdrmem_create(&xp,(char*)tabToSend,(*lgrTabToSend)*sizeof(double),XDR_ENCODE ); xdr_vector( &xp, (char*)tabToSend, *lgrTabToSend, sizeof(double), (xdrproc_t)xdr_double ); *errorFlag = false; while( n < *lgrTabToSend*sizeof(double) ){ m = write(*clientSockfd, (char*)tabToSend+n, *lgrTabToSend*sizeof(double)-n); if( m < 0 ){ if( *clientSockfd >= 0 ){ ::close(*clientSockfd); *clientSockfd = -1; } if( *serverSockfd >= 0 ){ ::close(*serverSockfd); *serverSockfd = -1; } *errorFlag = true; } n += m; } xdr_destroy( &xp ); xdrmem_create(&xp,(char*)tabToSend,(*lgrTabToSend)*sizeof(double),XDR_DECODE ); xdr_vector( &xp, (char*)tabToSend, *lgrTabToSend, sizeof(double), (xdrproc_t)xdr_double ); xdr_destroy( &xp ); break; case SALOME::INT_: xdrmem_create(&xp,(char*)tabToSend,(*lgrTabToSend)*sizeof(int),XDR_ENCODE ); xdr_vector( &xp, (char*)tabToSend, *lgrTabToSend, sizeof(int), (xdrproc_t)xdr_int ); *errorFlag = false; while( n < *lgrTabToSend*sizeof(int) ){ m = write(*clientSockfd, (char*)tabToSend+n, *lgrTabToSend*sizeof(int)-n); if( m < 0 ){ if( *clientSockfd >= 0 ){ ::close(*clientSockfd); *clientSockfd = -1; } if( *serverSockfd >= 0 ){ ::close(*serverSockfd); *serverSockfd = -1; } *errorFlag = true; } n += m; } xdr_destroy( &xp ); xdrmem_create(&xp,(char*)tabToSend,(*lgrTabToSend)*sizeof(int),XDR_DECODE ); xdr_vector( &xp, (char*)tabToSend, *lgrTabToSend, sizeof(int), (xdrproc_t)xdr_int ); xdr_destroy( &xp ); } return args; } void SALOME_SocketSender_i::initCom() throw(SALOME::SALOME_Exception) { struct sockaddr_in serv_addr; socklen_t n; SALOME::ExceptionStruct es; /* Ouverture de la socket */ _serverSockfd = socket(AF_INET , SOCK_STREAM , 0); if(_serverSockfd < 0) { es.type = SALOME::COMM; es.text = "error Socket exception"; throw SALOME::SALOME_Exception(es); } /* Socket structure initialisation*/ bzero((char*)&serv_addr,sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_port = 0; /* asking for a free port */ serv_addr.sin_addr.s_addr = INADDR_ANY; /* Association of socket with a port */ if( ::bind(_serverSockfd, (struct sockaddr *) & serv_addr, sizeof(struct sockaddr)) < 0 ) { closeCom(); es.type = SALOME::COMM; es.text = "error bind Socket exception"; throw SALOME::SALOME_Exception(es); } /* Listening to the allocated port */ if( listen(_serverSockfd, 10) < 0 ) { closeCom(); es.type = SALOME::COMM; es.text = "error listen Socket exception"; throw SALOME::SALOME_Exception(es); } /* Retrieving port number*/ if( getsockname(_serverSockfd, (struct sockaddr *) & serv_addr, &n) < 0 ){ closeCom(); es.type = SALOME::COMM; es.text = "error getName Socket exception"; throw SALOME::SALOME_Exception(es); } _port = htons(serv_addr.sin_port); SCRUTE(_port); } void SALOME_SocketSender_i::acceptCom() throw(SALOME::SALOME_Exception) { socklen_t sin_size; struct sockaddr_in client_addr; SALOME::ExceptionStruct es; sin_size = sizeof(struct sockaddr_in); _clientSockfd = accept(_serverSockfd, (struct sockaddr *)&client_addr, &sin_size); if( _clientSockfd < 0 ){ closeCom(); es.type = SALOME::COMM; es.text = "error accept Socket exception"; throw SALOME::SALOME_Exception(es); } } void SALOME_SocketSender_i::closeCom() { if( _clientSockfd >= 0 ){ ::close(_clientSockfd); _clientSockfd = -1; } if( _serverSockfd >= 0 ){ ::close(_serverSockfd); _serverSockfd = -1; } } void SALOME_SocketSender_i::endOfCom() { void *r; _newThr->join(&r); if(_errorFlag) { SALOME::ExceptionStruct es; es.type = SALOME::COMM; es.text = "error write Socket exception"; throw SALOME::SALOME_Exception(es); } delete [] _argsForThr; } SALOME_SocketSenderDouble_i::SALOME_SocketSenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend) :SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_SocketSender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend) ,SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend) { } SALOME_SocketSenderInt_i::SALOME_SocketSenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend) :SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_SocketSender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend) ,SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend) { } //CCRT porting #undef _LIBC_POLLUTION_H_ #undef _POSIX_PII_SOCKET #endif salome-kernel-6.5.0/src/Communication/SALOME_Comm_i.hxx000077500000000000000000000210651177004724000226610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOME_COMM_I_HXX_ #define _SALOME_COMM_I_HXX_ #include "SALOME_Communication.hxx" #ifdef HAVE_MPI2 #include "mpi.h" #endif #include #include #include CORBA_SERVER_HEADER(SALOME_Comm) #define TIMEOUT 20 /*! Generic servant class for senders that factorizes all the common methods and attributes necessary to senders. All servant classes for senders have to inheritate from it. */ class COMMUNICATION_EXPORT SALOME_Sender_i : public virtual POA_SALOME::Sender { protected: /*! Pointer to the generic array to transmit*/ const void *_tabToSend; /*! Length of the generic array to transmit*/ long _lgrTabToSend; /*! it represents the sizeof() of each component of the generic array:\n Practically in terms of bytes the size to be transmitted is _lgrTabToSend*_sizeOf */ int _sizeOf; /*! Indicates if _tabToSend has to be deallocated */ bool _ownTabToSend; SALOME_Sender_i(const void *tabToSend,long lgrTabToSend,int sizeOf,bool ownTabToSend=false); public: const void *getData(long &size) const; int getSizeOf() const; void setOwnerShip(bool own); bool getOwnerShip() const { return _ownTabToSend; } void release(); virtual ~SALOME_Sender_i() {} }; class COMMUNICATION_EXPORT SALOME_SenderDouble_i : public virtual POA_SALOME::SenderDouble, public virtual SALOME_Sender_i { public: SALOME_SenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend=false); SALOME::TypeOfDataTransmitted getTypeOfDataTransmitted() { return SALOME::DOUBLE_; } SALOME::SenderDouble_ptr buildOtherWithProtocol(SALOME::TypeOfCommunication type); virtual ~SALOME_SenderDouble_i(); static SALOME_SenderDouble_i *find(SALOME::SenderDouble_ptr pCorba); }; class COMMUNICATION_EXPORT SALOME_SenderInt_i : public virtual POA_SALOME::SenderInt, public virtual SALOME_Sender_i { public: SALOME_SenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend=false); SALOME::TypeOfDataTransmitted getTypeOfDataTransmitted() { return SALOME::INT_; } SALOME::SenderInt_ptr buildOtherWithProtocol(SALOME::TypeOfCommunication type); virtual ~SALOME_SenderInt_i(); static SALOME_SenderInt_i *find(SALOME::SenderInt_ptr pCorba); }; /*! Servant class for CORBA sender for double* when no copy of array _tabToSend is required, that is to say double and CORBA::Double are binary equal. */ class COMMUNICATION_EXPORT SALOME_CorbaDoubleNCSender_i : public POA_SALOME::CorbaDoubleNCSender, public SALOME_SenderDouble_i { public: SALOME_CorbaDoubleNCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend=false); ~SALOME_CorbaDoubleNCSender_i(); CORBA::ULong getSize(); SALOME::vectorOfDouble* sendPart(CORBA::ULong offset, CORBA::ULong length); SALOME::vectorOfDouble* send(); }; /*! Servant class for CORBA sender for double* when copy of array _tabToSend is required, that is to say double and CORBA::Double are NOT binary equal. */ class COMMUNICATION_EXPORT SALOME_CorbaDoubleCSender_i : public POA_SALOME::CorbaDoubleCSender, public SALOME_SenderDouble_i { public: SALOME_CorbaDoubleCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend=false); ~SALOME_CorbaDoubleCSender_i(); CORBA::ULong getSize(); SALOME::vectorOfDouble* sendPart(CORBA::ULong offset, CORBA::ULong length); }; /*! Servant class for CORBA sender for int* when no copy of array _tabToSend is required, that is to say int and CORBA::Long are binary equal. */ class COMMUNICATION_EXPORT SALOME_CorbaLongNCSender_i : public POA_SALOME::CorbaLongNCSender, public SALOME_SenderInt_i { public: SALOME_CorbaLongNCSender_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend=false); ~SALOME_CorbaLongNCSender_i(); CORBA::ULong getSize(); SALOME::vectorOfLong* sendPart(CORBA::ULong offset, CORBA::ULong length); SALOME::vectorOfLong* send(); }; /*! Servant class for CORBA sender for int* when copy of array _tabToSend is required, that is to say int and CORBA::Long are NOT binary equal. */ class COMMUNICATION_EXPORT SALOME_CorbaLongCSender_i : public POA_SALOME::CorbaLongCSender, public SALOME_SenderInt_i { public: SALOME_CorbaLongCSender_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend=false); ~SALOME_CorbaLongCSender_i(); CORBA::ULong getSize(); SALOME::vectorOfLong* sendPart(CORBA::ULong offset, CORBA::ULong length); }; #ifdef HAVE_MPI2 /*! Servant class of sender using MPI2. */ class COMMUNICATION_EXPORT SALOME_MPISender_i : public virtual POA_SALOME::MPISender, public virtual SALOME_Sender_i { private: static unsigned long _tag1; static unsigned long _tag2; /*! Name of the port opened*/ char *_portName; int _cproc; /*! Tag 1 that identifies the transfert*/ int _tag1Inst; /*! Tag 2 that identifies the transfert*/ int _tag2Inst; /*! MPI communicator*/ MPI_Comm _com; /*! Array of pointer for asynchronous invocation with omnithread*/ void **_argsForThr; /*! Pointer to thread created on asynchronous invocation*/ omni_thread *_newThr; /*! Type the component of the array*/ SALOME::TypeOfDataTransmitted _type; public: SALOME_MPISender_i(const void *tabToSend,long lgrTabToSend,int sizeOf,bool ownTabToSend=false); ~SALOME_MPISender_i(); SALOME::MPISender::param* getParam(); void send(); void close(const SALOME::MPISender::param& p); private: static void* myThread(void *args); }; class COMMUNICATION_EXPORT SALOME_MPISenderDouble_i : public POA_SALOME::MPISenderDouble, public SALOME_SenderDouble_i, public SALOME_MPISender_i { public: SALOME_MPISenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend=false); }; class COMMUNICATION_EXPORT SALOME_MPISenderInt_i : public POA_SALOME::MPISenderInt, public SALOME_SenderInt_i, public SALOME_MPISender_i { public: SALOME_MPISenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend=false); }; #endif #ifdef HAVE_SOCKET /*! Servant class of sender using Sockets. */ class COMMUNICATION_EXPORT SALOME_SocketSender_i : public virtual POA_SALOME::SocketSender, public virtual SALOME_Sender_i { private: int _serverSockfd; int _clientSockfd; int _port; std::string _IPAddress; void **_argsForThr; omni_thread *_newThr; bool _errorFlag; /*! Type the component of the array*/ SALOME::TypeOfDataTransmitted _type; public: SALOME_SocketSender_i(const void *tabToSend,long lgrTabToSend,int sizeOf,bool ownTabToSend=false); ~SALOME_SocketSender_i(); SALOME::SocketSender::param* getParam(); void send(); void initCom() throw(SALOME::SALOME_Exception); void acceptCom() throw(SALOME::SALOME_Exception); void endOfCom(); void closeCom(); private: static void* myThread(void *args); std::string inetAddress(); }; class COMMUNICATION_EXPORT SALOME_SocketSenderDouble_i : public POA_SALOME::SocketSenderDouble, public SALOME_SenderDouble_i, public SALOME_SocketSender_i { public: SALOME_SocketSenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend=false); }; class COMMUNICATION_EXPORT SALOME_SocketSenderInt_i : public POA_SALOME::SocketSenderInt, public SALOME_SenderInt_i, public SALOME_SocketSender_i { public: SALOME_SocketSenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend=false); }; #endif #endif salome-kernel-6.5.0/src/Communication/SALOME_Communication.hxx000077500000000000000000000025741177004724000242670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Communication.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOME_COMMIUNICATION_HXX_ #define _SALOME_COMMIUNICATION_HXX_ #ifdef WIN32 # if defined COMMUNICATION_EXPORTS || defined SalomeCommunication_EXPORTS # define COMMUNICATION_EXPORT __declspec( dllexport ) # else # define COMMUNICATION_EXPORT __declspec( dllimport ) # endif #else # define COMMUNICATION_EXPORT #endif #endif salome-kernel-6.5.0/src/Communication/SALOME_Matrix_i.cxx000077500000000000000000000044551177004724000232310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_Matrix_i.hxx" #include "SenderFactory.hxx" SALOME_Matrix_i::SALOME_Matrix_i(const SALOMEMultiComm& multiCommunicator,const double *tabToSend,int nbOfRow,int nbOfColumn,bool ownTabToSend):_tabToSend(tabToSend), _nbOfRow(nbOfRow), _nbOfColumn(nbOfColumn), _ownTabToSend(ownTabToSend), _type(multiCommunicator) { } SALOME_Matrix_i::~SALOME_Matrix_i() { if(_ownTabToSend) delete [] _tabToSend; } SALOME::SenderDouble_ptr SALOME_Matrix_i::getData() { return SenderFactory::buildSender(_type,_tabToSend,_nbOfRow*_nbOfColumn,false); } CORBA::Long SALOME_Matrix_i::getSizeOfColumn() { return _nbOfColumn; } void SALOME_Matrix_i::release() { PortableServer::ObjectId_var oid = _default_POA()->servant_to_id(this); _default_POA()->deactivate_object(oid); _remove_ref(); } salome-kernel-6.5.0/src/Communication/SALOME_Matrix_i.hxx000077500000000000000000000031141177004724000232250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_MATRIX_I_HXX__ #define __SALOME_MATRIX_I_HXX__ #include #include #include CORBA_SERVER_HEADER(SALOME_Comm) #include "SALOMEMultiComm.hxx" class SALOME_Matrix_i : public virtual POA_SALOME::Matrix { private: const double *_tabToSend; int _nbOfRow; int _nbOfColumn; bool _ownTabToSend; SALOMEMultiComm _type; protected: ~SALOME_Matrix_i(); public: SALOME_Matrix_i(const SALOMEMultiComm& multiCommunicator,const double *tabToSend,int nbOfRow,int nbOfColumn,bool ownTabToSend=false); SALOME::SenderDouble_ptr getData(); CORBA::Long getSizeOfColumn(); void release(); }; #endif salome-kernel-6.5.0/src/Communication/SenderFactory.cxx000077500000000000000000000077321177004724000231660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_Comm_i.hxx" #include "SenderFactory.hxx" #include "utilities.h" #include "SALOMEMultiComm.hxx" #ifdef COMP_CORBA_DOUBLE #define SALOME_CorbaDoubleSender SALOME_CorbaDoubleNCSender_i #else #define SALOME_CorbaDoubleSender SALOME_CorbaDoubleCSender_i #endif #ifdef COMP_CORBA_LONG #define SALOME_CorbaLongSender SALOME_CorbaLongNCSender_i #else #define SALOME_CorbaLongSender SALOME_CorbaLongCSender_i #endif SALOME::SenderDouble_ptr SenderFactory::buildSender(SALOMEMultiComm &multiCommunicator,const double *tab,long lgr,bool ownTab)throw(MultiCommException){ switch(multiCommunicator.getProtocol()) { case SALOME::CORBA_: { SALOME_CorbaDoubleSender * retc=new SALOME_CorbaDoubleSender(tab,lgr,ownTab); return retc->_this(); } #ifdef HAVE_MPI2 case SALOME::MPI_: { SALOME_MPISenderDouble_i* retm=new SALOME_MPISenderDouble_i(tab,lgr,ownTab); return retm->_this(); } #endif #ifdef HAVE_SOCKET case SALOME::SOCKET_: { SALOME_SocketSenderDouble_i* rets=new SALOME_SocketSenderDouble_i(tab,lgr,ownTab); return rets->_this(); } #endif default: { multiCommunicator.setProtocol(SALOME::CORBA_); MESSAGE("PROTOCOL CHANGED TO CORBA"); SALOME_CorbaDoubleSender * retc=new SALOME_CorbaDoubleSender(tab,lgr,ownTab); return retc->_this(); } // throw MultiCommException("Communication protocol not implemented"); } } SALOME::SenderInt_ptr SenderFactory::buildSender(SALOMEMultiComm &multiCommunicator,const int *tab,long lgr,bool ownTab)throw(MultiCommException){ switch(multiCommunicator.getProtocol()) { case SALOME::CORBA_: { SALOME_CorbaLongSender * retc=new SALOME_CorbaLongSender(tab,lgr,ownTab); return retc->_this(); } #ifdef HAVE_MPI2 case SALOME::MPI_: { SALOME_MPISenderInt_i* retm=new SALOME_MPISenderInt_i(tab,lgr,ownTab); return retm->_this(); } #endif #ifdef HAVE_SOCKET case SALOME::SOCKET_: { SALOME_SocketSenderInt_i* rets=new SALOME_SocketSenderInt_i(tab,lgr,ownTab); return rets->_this(); } #endif default: { multiCommunicator.setProtocol(SALOME::CORBA_); SALOME_CorbaLongSender * retc=new SALOME_CorbaLongSender(tab,lgr,ownTab); return retc->_this(); } // throw MultiCommException("Communication protocol not implemented"); } } SALOME::SenderDouble_ptr SenderFactory::buildSender(SALOME::TypeOfCommunication NewType,SALOME_SenderDouble_i *src) { SALOMEMultiComm mc(NewType); long n; const double *data=(const double *)src->getData(n); bool own=src->getOwnerShip(); src->setOwnerShip(false); return buildSender(mc,data,n,own); } SALOME::SenderInt_ptr SenderFactory::buildSender(SALOME::TypeOfCommunication NewType,SALOME_SenderInt_i *src) { SALOMEMultiComm mc(NewType); long n; const int *data=(const int *)src->getData(n); bool own=src->getOwnerShip(); src->setOwnerShip(false); return buildSender(mc,data,n,own); } salome-kernel-6.5.0/src/Communication/SenderFactory.hxx000077500000000000000000000043201177004724000231610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SENDERFACTORY_HXX_ #define _SENDERFACTORY_HXX_ #include "SALOME_Communication.hxx" #include "MultiCommException.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Comm) class SALOMEMultiComm; class SALOME_SenderDouble_i; class SALOME_SenderInt_i; /*! This class implements the factory pattern of GoF by making a sender by giving an array and a communicator.It completely hides the type of sender from the user. */ class COMMUNICATION_EXPORT SenderFactory { public: static SALOME::SenderDouble_ptr buildSender(SALOMEMultiComm &multiCommunicator,const double *tab,long lgr,bool ownTab=false) throw(MultiCommException); static SALOME::SenderInt_ptr buildSender(SALOMEMultiComm &multiCommunicator,const int *tab,long lgr,bool ownTab=false) throw(MultiCommException); static SALOME::SenderDouble_ptr buildSender(SALOME::TypeOfCommunication NewType,SALOME_SenderDouble_i *src); static SALOME::SenderInt_ptr buildSender(SALOME::TypeOfCommunication NewType,SALOME_SenderInt_i *src); }; template struct mapCppSender { typedef T SenderVarType; }; template<> struct mapCppSender { typedef SALOME::SenderInt_var SenderVarType; }; template<> struct mapCppSender { typedef SALOME::SenderDouble_var SenderVarType; }; #endif salome-kernel-6.5.0/src/Communication_SWIG/000077500000000000000000000000001177004724000205075ustar00rootroot00000000000000salome-kernel-6.5.0/src/Communication_SWIG/Makefile.am000077500000000000000000000064671177004724000225630ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Communication_SWIG/Makefile.am,v 1.6.2.1.14.2.12.1 2012-04-12 14:05:03 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Swig targets # =============================================================== # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm) # # Step 1: build the wrapping source files with swig # # libSALOME_Comm.i -- swig --> swig_wrap.cpp # libSALOME_Comm.py # # Step 2: build the dynamic library from cpp built source files and # dependant libraries. # # swig_wrap.cpp -- gcc --> swig_wrap.o |-- link --> _libSALOME_Comm.la # + | # dependant libs | # # The file libSALOME_Comm.py will be installed in # /lib/python/site-package/salome. # The library will be installed in the common place. # BUILT_SOURCES = swig_wrap.cpp libSALOME_Comm.py SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Communication SWIGSOURCES = libSALOME_Comm.i salomepython_PYTHON = libSALOME_Comm.py salomepyexec_LTLIBRARIES = _libSALOME_Comm.la _libSALOME_Comm_la_SOURCES = swig_wrap.cpp _libSALOME_Comm_la_CPPFLAGS =\ @PYTHON_INCLUDES@ \ -I$(srcdir) -I$(srcdir)/../Communication \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ _libSALOME_Comm_la_LDFLAGS = -module _libSALOME_Comm_la_LIBADD = \ ../Communication/libSalomeCommunication.la \ @PYTHON_LIBS@ # _CS_gbo Actually, there's no need to get these flags optional. If # the check mpi is not ok, the variables will be simply null. if MPI_IS_OK _libSALOME_Comm_la_CPPFLAGS+=@MPI_INCLUDES@ _libSALOME_Comm_la_LIBADD+=@MPI_LIBS@ endif swig_wrap.cpp libSALOME_Comm.py : $(SWIGSOURCES) $(SWIG) $(SWIG_FLAGS) -o swig_wrap.cpp $< CLEANFILES = swig_wrap.cpp EXTRA_DIST = $(SWIGSOURCES) # # =============================================================== # Files to be installed # =============================================================== # # (see LifeCycleCORBA_SWIG for an example) # It's not needed to specify libSALOME_Comm.py. It is # automaticaly installed through the swig target salomepython_PYTHON. salome-kernel-6.5.0/src/Communication_SWIG/Makefile.in000077500000000000000000000772211177004724000225700ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomepython_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am # _CS_gbo Actually, there's no need to get these flags optional. If # the check mpi is not ok, the variables will be simply null. @MPI_IS_OK_TRUE@am__append_1 = @MPI_INCLUDES@ @MPI_IS_OK_TRUE@am__append_2 = @MPI_LIBS@ subdir = src/Communication_SWIG ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomepyexecdir)" \ "$(DESTDIR)$(salomepythondir)" LTLIBRARIES = $(salomepyexec_LTLIBRARIES) am__DEPENDENCIES_1 = _libSALOME_Comm_la_DEPENDENCIES = \ ../Communication/libSalomeCommunication.la \ $(am__DEPENDENCIES_1) am__libSALOME_Comm_la_OBJECTS = _libSALOME_Comm_la-swig_wrap.lo _libSALOME_Comm_la_OBJECTS = $(am__libSALOME_Comm_la_OBJECTS) _libSALOME_Comm_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(_libSALOME_Comm_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(_libSALOME_Comm_la_SOURCES) DIST_SOURCES = $(_libSALOME_Comm_la_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Communication VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Communication_SWIG/Makefile.am,v 1.6.2.1.14.2.12.1 2012-04-12 14:05:03 vsr Exp $ # # # =============================================================== # Swig targets # =============================================================== # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm) # # Step 1: build the wrapping source files with swig # # libSALOME_Comm.i -- swig --> swig_wrap.cpp # libSALOME_Comm.py # # Step 2: build the dynamic library from cpp built source files and # dependant libraries. # # swig_wrap.cpp -- gcc --> swig_wrap.o |-- link --> _libSALOME_Comm.la # + | # dependant libs | # # The file libSALOME_Comm.py will be installed in # /lib/python/site-package/salome. # The library will be installed in the common place. # BUILT_SOURCES = swig_wrap.cpp libSALOME_Comm.py SWIGSOURCES = libSALOME_Comm.i salomepython_PYTHON = libSALOME_Comm.py salomepyexec_LTLIBRARIES = _libSALOME_Comm.la _libSALOME_Comm_la_SOURCES = swig_wrap.cpp _libSALOME_Comm_la_CPPFLAGS = @PYTHON_INCLUDES@ -I$(srcdir) \ -I$(srcdir)/../Communication -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace -I$(srcdir)/../Utils \ -I$(top_builddir)/idl @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ $(am__append_1) _libSALOME_Comm_la_LDFLAGS = -module _libSALOME_Comm_la_LIBADD = \ ../Communication/libSalomeCommunication.la @PYTHON_LIBS@ \ $(am__append_2) CLEANFILES = swig_wrap.cpp EXTRA_DIST = $(SWIGSOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Communication_SWIG/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Communication_SWIG/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-salomepyexecLTLIBRARIES: $(salomepyexec_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(salomepyexecdir)" || $(MKDIR_P) "$(DESTDIR)$(salomepyexecdir)" @list='$(salomepyexec_LTLIBRARIES)'; test -n "$(salomepyexecdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(salomepyexecdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(salomepyexecdir)"; \ } uninstall-salomepyexecLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(salomepyexec_LTLIBRARIES)'; test -n "$(salomepyexecdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(salomepyexecdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(salomepyexecdir)/$$f"; \ done clean-salomepyexecLTLIBRARIES: -test -z "$(salomepyexec_LTLIBRARIES)" || rm -f $(salomepyexec_LTLIBRARIES) @list='$(salomepyexec_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done _libSALOME_Comm.la: $(_libSALOME_Comm_la_OBJECTS) $(_libSALOME_Comm_la_DEPENDENCIES) $(_libSALOME_Comm_la_LINK) -rpath $(salomepyexecdir) $(_libSALOME_Comm_la_OBJECTS) $(_libSALOME_Comm_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_libSALOME_Comm_la-swig_wrap.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< _libSALOME_Comm_la-swig_wrap.lo: swig_wrap.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libSALOME_Comm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT _libSALOME_Comm_la-swig_wrap.lo -MD -MP -MF $(DEPDIR)/_libSALOME_Comm_la-swig_wrap.Tpo -c -o _libSALOME_Comm_la-swig_wrap.lo `test -f 'swig_wrap.cpp' || echo '$(srcdir)/'`swig_wrap.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/_libSALOME_Comm_la-swig_wrap.Tpo $(DEPDIR)/_libSALOME_Comm_la-swig_wrap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='swig_wrap.cpp' object='_libSALOME_Comm_la-swig_wrap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libSALOME_Comm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o _libSALOME_Comm_la-swig_wrap.lo `test -f 'swig_wrap.cpp' || echo '$(srcdir)/'`swig_wrap.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomepythonPYTHON: $(salomepython_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomepythondir)" || $(MKDIR_P) "$(DESTDIR)$(salomepythondir)" @list='$(salomepython_PYTHON)'; dlist=; list2=; test -n "$(salomepythondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomepythondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomepythondir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomepythondir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomepythondir)" $$dlist; \ fi; \ else :; fi uninstall-salomepythonPYTHON: @$(NORMAL_UNINSTALL) @list='$(salomepython_PYTHON)'; test -n "$(salomepythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$fileso ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(salomepyexecdir)" "$(DESTDIR)$(salomepythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-salomepyexecLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomepythonPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-salomepyexecLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-salomepyexecLTLIBRARIES \ uninstall-salomepythonPYTHON .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-salomepyexecLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-salomepyexecLTLIBRARIES install-salomepythonPYTHON \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-salomepyexecLTLIBRARIES uninstall-salomepythonPYTHON swig_wrap.cpp libSALOME_Comm.py : $(SWIGSOURCES) $(SWIG) $(SWIG_FLAGS) -o swig_wrap.cpp $< # # =============================================================== # Files to be installed # =============================================================== # # (see LifeCycleCORBA_SWIG for an example) # It's not needed to specify libSALOME_Comm.py. It is # automaticaly installed through the swig target salomepython_PYTHON. # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Communication_SWIG/libSALOME_Comm.i000077500000000000000000000174141177004724000233150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // %module libSALOME_Comm %feature("autodoc", "1"); %{ #include "ReceiverFactory.hxx" #include "MatrixClient.hxx" #include "SALOME_Comm_i.hxx" #include "SALOMEMultiComm.hxx" #include "SenderFactory.hxx" %} %typemap(python,in) SALOME::SenderDouble_ptr { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Ask omniORBpy to transform SUPPORT (python Corba) ptr to IOR string PyObject* iorSupport = PyObject_CallMethod(orb, (char*)"object_to_string", (char*)"O", $input); if (iorSupport == Py_None) return NULL; char * s = PyString_AsString(PyObject_Str(iorSupport)); // Ask omniORB to convert IOR string to SALOME::SenderDouble_ptr int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); CORBA::Object_var O = ORB->string_to_object(s); SALOME::SenderDouble_ptr t = SALOME::SenderDouble::_narrow(O); $1 = t; } %typemap(python,in) SALOME::SenderInt_ptr { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Ask omniORBpy to transform SUPPORT (python Corba) ptr to IOR string PyObject* iorSupport = PyObject_CallMethod(orb, (char*)"object_to_string", (char*)"O", $input); if (iorSupport == Py_None) return NULL; char * s = PyString_AsString(PyObject_Str(iorSupport)); // Ask omniORB to convert IOR string to SALOME::SenderInt_ptr int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); CORBA::Object_var O = ORB->string_to_object(s); SALOME::SenderInt_ptr t = SALOME::SenderInt::_narrow(O); $1 = t; } %typemap(python,out) SALOME::SenderDouble_ptr { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Get the orb Corba C++ int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); std::string s = ORB->object_to_string($1); PyObject * tmp = PyString_FromString(s.c_str()); $result = PyObject_CallMethod(orb, (char*)"string_to_object", (char*)"O", tmp); } %typemap(python,out) SALOME::SenderInt_ptr { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Get the orb Corba C++ int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); std::string s = ORB->object_to_string($1); PyObject * tmp = PyString_FromString(s.c_str()); $result = PyObject_CallMethod(orb, (char*)"string_to_object", (char*)"O", tmp); } PyObject * getValueForSenderDouble(SALOME::SenderDouble_ptr senderDouble); %{ PyObject * getValueForSenderDouble(SALOME::SenderDouble_ptr senderDouble) { PyObject *py_list; long size; double *ret=ReceiverFactory::getValue(senderDouble,size); py_list = PyList_New(size); for (int i=0; i < size; i++) { int err = PyList_SetItem(py_list, i, Py_BuildValue("d", (double) ret[i])); if(err) { const char * message = "Error in SUPPORT::getTypes"; PyErr_SetString(PyExc_RuntimeError, message); return NULL; } } PyObject * result = Py_BuildValue("O", py_list); delete [] ret; Py_DECREF(py_list); return result; } %} PyObject * getValueForSenderInt(SALOME::SenderInt_ptr senderInt); %{ PyObject * getValueForSenderInt(SALOME::SenderInt_ptr senderInt) { PyObject *py_list; long size; int *ret=ReceiverFactory::getValue(senderInt,size); py_list = PyList_New(size); for (int i=0; i < size; i++) { int err = PyList_SetItem(py_list, i, Py_BuildValue("i", (int) ret[i])); if(err) { const char * message = "Error in SUPPORT::getTypes"; PyErr_SetString(PyExc_RuntimeError, message); return NULL; } } PyObject * result = Py_BuildValue("O", py_list); delete [] ret; Py_DECREF(py_list); return result; } %} PyObject * getValueForMatrix(SALOME::Matrix_ptr matrix); %{ PyObject * getValueForMatrix(SALOME::Matrix_ptr matrix) { PyObject *py_list; int column,row; double *ret=MatrixClient::getValue(matrix,column,row); py_list = PyList_New(row); for(int i=0;i= (2,6,0): def swig_import_helper(): from os.path import dirname import imp fp = None try: fp, pathname, description = imp.find_module('_libSALOME_Comm', [dirname(__file__)]) except ImportError: import _libSALOME_Comm return _libSALOME_Comm if fp is not None: try: _mod = imp.load_module('_libSALOME_Comm', fp, pathname, description) finally: fp.close() return _mod _libSALOME_Comm = swig_import_helper() del swig_import_helper else: import _libSALOME_Comm del version_info try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic(self,class_type,name,value,static=1): if (name == "thisown"): return self.this.own(value) if (name == "this"): if type(value).__name__ == 'SwigPyObject': self.__dict__[name] = value return method = class_type.__swig_setmethods__.get(name,None) if method: return method(self,value) if (not static) or hasattr(self,name): self.__dict__[name] = value else: raise AttributeError("You cannot add attributes to %s" % self) def _swig_setattr(self,class_type,name,value): return _swig_setattr_nondynamic(self,class_type,name,value,0) def _swig_getattr(self,class_type,name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name,None) if method: return method(self) raise AttributeError(name) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) try: _object = object _newclass = 1 except AttributeError: class _object : pass _newclass = 0 def getValueForSenderDouble(*args): """getValueForSenderDouble(SALOME::SenderDouble_ptr senderDouble) -> PyObject""" return _libSALOME_Comm.getValueForSenderDouble(*args) def getValueForSenderInt(*args): """getValueForSenderInt(SALOME::SenderInt_ptr senderInt) -> PyObject""" return _libSALOME_Comm.getValueForSenderInt(*args) def getValueForMatrix(*args): """getValueForMatrix(SALOME::Matrix_ptr matrix) -> PyObject""" return _libSALOME_Comm.getValueForMatrix(*args) def buildSenderDoubleFromList(*args): """buildSenderDoubleFromList(PyObject pylist) -> SALOME::SenderDouble_ptr""" return _libSALOME_Comm.buildSenderDoubleFromList(*args) def buildSenderIntFromList(*args): """buildSenderIntFromList(PyObject pylist) -> SALOME::SenderInt_ptr""" return _libSALOME_Comm.buildSenderIntFromList(*args) salome-kernel-6.5.0/src/Communication_SWIG/swig_wrap.cpp000077500000000000000000003257771177004724000232450ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.40 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Python.h has to appear first */ #include /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return and integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCompare(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { register size_t l = 0; register size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ register size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { register int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { register size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; register const unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Compatibility macros for Python 3 */ #if PY_VERSION_HEX >= 0x03000000 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) #endif #ifndef Py_TYPE # define Py_TYPE(op) ((op)->ob_type) #endif /* SWIG APIs for compatibility of both Python 2 & 3 */ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat #else # define SWIG_Python_str_FromFormat PyString_FromFormat #endif /* Warning: This function will allocate a new string in Python 3, * so please call SWIG_Python_str_DelForPy3(x) to free the space. */ SWIGINTERN char* SWIG_Python_str_AsChar(PyObject *str) { #if PY_VERSION_HEX >= 0x03000000 char *cstr; char *newstr; Py_ssize_t len; str = PyUnicode_AsUTF8String(str); PyBytes_AsStringAndSize(str, &cstr, &len); newstr = (char *) malloc(len+1); memcpy(newstr, cstr, len+1); Py_XDECREF(str); return newstr; #else return PyString_AsString(str); #endif } #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) #else # define SWIG_Python_str_DelForPy3(x) #endif SWIGINTERN PyObject* SWIG_Python_str_FromChar(const char *c) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromString(c); #else return PyString_FromString(c); #endif } /* Add PyOS_snprintf for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) # define PyOS_snprintf _snprintf # else # define PyOS_snprintf snprintf # endif #endif /* A crude PyString_FromFormat implementation for old Pythons */ #if PY_VERSION_HEX < 0x02020000 #ifndef SWIG_PYBUFFER_SIZE # define SWIG_PYBUFFER_SIZE 1024 #endif static PyObject * PyString_FromFormat(const char *fmt, ...) { va_list ap; char buf[SWIG_PYBUFFER_SIZE * 2]; int res; va_start(ap, fmt); res = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); } #endif /* Add PyObject_Del for old Pythons */ #if PY_VERSION_HEX < 0x01060000 # define PyObject_Del(op) PyMem_DEL((op)) #endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif /* A crude PyExc_StopIteration exception for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # ifndef PyExc_StopIteration # define PyExc_StopIteration PyExc_RuntimeError # endif # ifndef PyObject_GenericGetAttr # define PyObject_GenericGetAttr 0 # endif #endif /* Py_NotImplemented is defined in 2.1 and up. */ #if PY_VERSION_HEX < 0x02010000 # ifndef Py_NotImplemented # define Py_NotImplemented PyExc_RuntimeError # endif #endif /* A crude PyString_AsStringAndSize implementation for old Pythons */ #if PY_VERSION_HEX < 0x02010000 # ifndef PyString_AsStringAndSize # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} # endif #endif /* PySequence_Size for old Pythons */ #if PY_VERSION_HEX < 0x02000000 # ifndef PySequence_Size # define PySequence_Size PySequence_Length # endif #endif /* PyBool_FromLong for old Pythons */ #if PY_VERSION_HEX < 0x02030000 static PyObject *PyBool_FromLong(long ok) { PyObject *result = ok ? Py_True : Py_False; Py_INCREF(result); return result; } #endif /* Py_ssize_t for old Pythons */ /* This code is as recommended by: */ /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); PyErr_Clear(); Py_XINCREF(type); PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ # define SWIG_PYTHON_USE_GIL # endif # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; /* ----------------------------------------------------------------------------- * Wrapper of PyInstanceMethod_New() used in Python 3 * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func) { #if PY_VERSION_HEX >= 0x03000000 return PyInstanceMethod_New(func); #else return NULL; #endif } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif /* ----------------------------------------------------------------------------- * See the LICENSE file for information on copyright, usage and redistribution * of SWIG, and the README file for authors - http://www.swig.org/release.html. * * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, (char *) msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char*) name, obj); Py_DECREF(obj); } /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { #if !defined(SWIG_PYTHON_OUTPUT_TUPLE) if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; #else PyObject* o2; PyObject* o3; if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyTuple_Check(result)) { o2 = result; result = PyTuple_New(1); PyTuple_SET_ITEM(result, 0, o2); } o3 = PyTuple_New(1); PyTuple_SET_ITEM(o3, 0, obj); o2 = result; result = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return result; #endif } /* Unpack the argument tuple */ SWIGINTERN int SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { register Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { register int i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #if PY_VERSION_HEX >= 0x02020000 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); #else #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); #endif /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* How to access Py_None */ #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # ifndef SWIG_PYTHON_NO_BUILD_NONE # ifndef SWIG_PYTHON_BUILD_NONE # define SWIG_PYTHON_BUILD_NONE # endif # endif #endif #ifdef SWIG_PYTHON_BUILD_NONE # ifdef Py_None # undef Py_None # define Py_None SWIG_Py_None() # endif SWIGRUNTIMEINLINE PyObject * _SWIG_Py_None(void) { PyObject *none = Py_BuildValue((char*)""); Py_DECREF(none); return none; } SWIGRUNTIME PyObject * SWIG_Py_None(void) { static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); return none; } #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* SwigPyClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; } SwigPyClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; return data ? data->implicitconv : 0; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject* obj) { if (!obj) { return 0; } else { SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { #if (PY_VERSION_HEX < 0x02020000) data->newraw = 0; #else data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); #endif if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); #ifdef METH_O data->delargs = !(flags & (METH_O)); #else data->delargs = 0; #endif } else { data->delargs = 0; } data->implicitconv = 0; return data; } } SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData* data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== SwigPyObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; } SwigPyObject; SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * SwigPyObject_format(const char* fmt, SwigPyObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { PyObject *ofmt = SWIG_Python_str_FromChar(fmt); if (ofmt) { #if PY_VERSION_HEX >= 0x03000000 res = PyUnicode_Format(ofmt,args); #else res = PyString_Format(ofmt,args); #endif Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v) { return SwigPyObject_format("%o",v); } SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v) { return SwigPyObject_format("%x",v); } SWIGRUNTIME PyObject * #ifdef METH_NOARGS SwigPyObject_repr(SwigPyObject *v) #else SwigPyObject_repr(SwigPyObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); PyObject *repr = SWIG_Python_str_FromFormat("", name, v); if (v->next) { #ifdef METH_NOARGS PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); #else PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args); #endif #if PY_VERSION_HEX >= 0x03000000 PyObject *joined = PyUnicode_Concat(repr, nrep); Py_DecRef(repr); Py_DecRef(nrep); repr = joined; #else PyString_ConcatAndDel(&repr,nrep); #endif } return repr; } SWIGRUNTIME int SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *str; #ifdef METH_NOARGS PyObject *repr = SwigPyObject_repr(v); #else PyObject *repr = SwigPyObject_repr(v, NULL); #endif if (repr) { str = SWIG_Python_str_AsChar(repr); fputs(str, fp); SWIG_Python_str_DelForPy3(str); Py_DECREF(repr); return 0; } else { return 1; } } SWIGRUNTIME PyObject * SwigPyObject_str(SwigPyObject *v) { char result[SWIG_BUFFER_SIZE]; return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? SWIG_Python_str_FromChar(result) : 0; } SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } /* Added for Python 3.x, would it also be useful for Python 2.x? */ SWIGRUNTIME PyObject* SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) { PyObject* res; if( op != Py_EQ && op != Py_NE ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } if( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ) res = Py_True; else res = Py_False; Py_INCREF(res); return res; } SWIGRUNTIME PyTypeObject* _PySwigObject_type(void); SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type(); return type; } SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op) { return (Py_TYPE(op) == SwigPyObject_type()) || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v) { SwigPyObject *sobj = (SwigPyObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; if (data->delargs) { /* we need to create a temporary object to carry the destroy operation */ PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* SwigPyObject_append(PyObject* v, PyObject* next) { SwigPyObject *sobj = (SwigPyObject *) v; #ifndef METH_O PyObject *tmp = 0; if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; next = tmp; #endif if (!SwigPyObject_Check(next)) { return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* #ifdef METH_NOARGS SwigPyObject_next(PyObject* v) #else SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_disown(PyObject *v) #else SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_acquire(PyObject *v) #else SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) #else if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) #endif { return NULL; } else { SwigPyObject *sobj = (SwigPyObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { #ifdef METH_NOARGS if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v); } else { SwigPyObject_disown(v); } #else if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v,args); } else { SwigPyObject_disown(v,args); } #endif } return obj; } } #ifdef METH_O static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #else static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #endif #if PY_VERSION_HEX < 0x02020000 SWIGINTERN PyObject * SwigPyObject_getattr(SwigPyObject *sobj,char *name) { return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); } #endif SWIGRUNTIME PyTypeObject* _PySwigObject_type(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods SwigPyObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ /* nb_divide removed in Python 3 */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc)0, /*nb_divide*/ #endif (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_VERSION_HEX < 0x03000000 0, /*nb_coerce*/ #endif (unaryfunc)SwigPyObject_long, /*nb_int*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_long, /*nb_long*/ #else 0, /*nb_reserved*/ #endif (unaryfunc)0, /*nb_float*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif #if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ #endif }; static PyTypeObject swigpyobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyObject", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ (printfunc)SwigPyObject_print, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else (getattrfunc)0, /* tp_getattr */ #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif (reprfunc)SwigPyObject_repr, /* tp_repr */ &SwigPyObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyObject_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ (richcmpfunc)SwigPyObject_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpyobject_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpyobject_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpyobject_type; } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own) { SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } SwigPyPacked; SWIGRUNTIME int SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char result[SWIG_BUFFER_SIZE]; fputs("pack, v->size, 0, sizeof(result))) { fputs("at ", fp); fputs(result, fp); } fputs(v->ty->name,fp); fputs(">", fp); return 0; } SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return SWIG_Python_str_FromFormat("", result, v->ty->name); } else { return SWIG_Python_str_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); } else { return SWIG_Python_str_FromChar(v->ty->name); } } SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void); SWIGRUNTIME PyTypeObject* SwigPyPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type(); return type; } SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op) { return ((op)->ob_type == _PySwigPacked_type()) || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); } SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v) { if (SwigPyPacked_Check(v)) { SwigPyPacked *sobj = (SwigPyPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject swigpypacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyPacked", /* tp_name */ sizeof(SwigPyPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ (printfunc)SwigPyPacked_print, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX>=0x03000000 0, /* tp_reserved in 3.0.1 */ #else (cmpfunc)SwigPyPacked_compare, /* tp_compare */ #endif (reprfunc)SwigPyPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpypacked_type = tmp; /* for Python 3 the ob_type already assigned in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpypacked_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpypacked_type; } SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) { SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (SwigPyPacked_Check(obj)) { SwigPyPacked *sobj = (SwigPyPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIMEINLINE PyObject * _SWIG_This(void) { return SWIG_Python_str_FromChar("this"); } SWIGRUNTIME PyObject * SWIG_This(void) { static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This(); return swig_this; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ /* TODO: I don't know how to implement the fast getset in Python 3 right now */ #if PY_VERSION_HEX>=0x03000000 #define SWIG_PYTHON_SLOW_GETSET_THIS #endif SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { if (SwigPyObject_Check(pyobj)) { return (SwigPyObject *) pyobj; } else { PyObject *obj = 0; #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !SwigPyObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' SwigPyObject from it */ return SWIG_Python_GetSwigThis(obj); } return (SwigPyObject *)obj; } } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { if (!obj) return SWIG_ERROR; if (obj == Py_None) { if (ptr) *ptr = 0; return SWIG_OK; } else { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (SwigPyObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } return SWIG_OK; } else { int res = SWIG_ERROR; if (flags & SWIG_POINTER_IMPLICIT_CONV) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } } return res; } } } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; if (ty) { swig_cast_info *tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } } else { *ptr = vptr; } return SWIG_OK; } } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, without calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) { #if (PY_VERSION_HEX >= 0x02020000) PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { #if PY_VERSION_HEX >= 0x03000000 inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); PyObject_SetAttr(inst, SWIG_This(), swig_this); Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; #else PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); #endif } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) PyObject *inst; PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); if (inst == NULL) { return NULL; } inst->in_class = (PyClassObject *)data->newargs; Py_INCREF(inst->in_class); inst->in_dict = PyDict_New(); if (inst->in_dict == NULL) { Py_DECREF(inst); return NULL; } #ifdef Py_TPFLAGS_HAVE_WEAKREFS inst->in_weakreflist = NULL; #endif #ifdef Py_TPFLAGS_GC PyObject_GC_Init(inst); #endif PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); return (PyObject *) inst; #endif #endif } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, (char*)"__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { SwigPyObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) { if (!ptr) { return SWIG_Py_Void(); } else { int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; PyObject *robj = SwigPyObject_New(ptr, type, own); SwigPyClientData *clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); if (inst) { Py_DECREF(robj); robj = inst; } } return robj; } } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ SWIGINTERN int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return SWIG_ERROR; } if (PyDict_SetItemString(dict, name, o)) return SWIG_ERROR; Py_DECREF(o); return SWIG_OK; } #endif SWIGRUNTIME void SWIG_Python_DestroyModule(void *vptr) { swig_module_info *swig_module = (swig_module_info *) vptr; swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; if (data) SwigPyClientData_Del(data); } } Py_DECREF(SWIG_This()); } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */ #if PY_VERSION_HEX >= 0x03000000 /* Add a dummy module object into sys.modules */ PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION); #else PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = SWIG_Python_str_FromChar(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { obj = PyCObject_FromVoidPtr(descriptor, NULL); PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str)); } else { PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); } SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : (char*)""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && SwigPyObject_Check(obj)) { const char *otype = (const char *) SwigPyObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); SWIG_Python_str_DelForPy3(cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); #if SWIG_POINTER_EXCEPTION if (flags) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } #endif } return result; } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_SALOME__Matrix_ptr swig_types[0] #define SWIGTYPE_p_SALOME__SenderDouble_ptr swig_types[1] #define SWIGTYPE_p_SALOME__SenderInt_ptr swig_types[2] #define SWIGTYPE_p_char swig_types[3] static swig_type_info *swig_types[5]; static swig_module_info swig_module = {swig_types, 4, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #if (PY_VERSION_HEX <= 0x02000000) # if !defined(SWIG_PYTHON_CLASSIC) # error "This python version requires swig to be run with the '-classic' option" # endif #endif /*----------------------------------------------- @(target):= _libSALOME_Comm.so ------------------------------------------------*/ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_init PyInit__libSALOME_Comm #else # define SWIG_init init_libSALOME_Comm #endif #define SWIG_name "_libSALOME_Comm" #define SWIGVERSION 0x010340 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class SwigPtr_PyObject { protected: PyObject *_obj; public: SwigPtr_PyObject() :_obj(0) { } SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { Py_XINCREF(_obj); } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { Py_XINCREF(_obj); } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; return *this; } ~SwigPtr_PyObject() { Py_XDECREF(_obj); } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct SwigVar_PyObject : SwigPtr_PyObject { SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { } SwigVar_PyObject & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } #include "ReceiverFactory.hxx" #include "MatrixClient.hxx" #include "SALOME_Comm_i.hxx" #include "SALOMEMultiComm.hxx" #include "SenderFactory.hxx" PyObject * getValueForSenderDouble(SALOME::SenderDouble_ptr senderDouble) { PyObject *py_list; long size; double *ret=ReceiverFactory::getValue(senderDouble,size); py_list = PyList_New(size); for (int i=0; i < size; i++) { int err = PyList_SetItem(py_list, i, Py_BuildValue("d", (double) ret[i])); if(err) { const char * message = "Error in SUPPORT::getTypes"; PyErr_SetString(PyExc_RuntimeError, message); return NULL; } } PyObject * result = Py_BuildValue("O", py_list); delete [] ret; Py_DECREF(py_list); return result; } PyObject * getValueForSenderInt(SALOME::SenderInt_ptr senderInt) { PyObject *py_list; long size; int *ret=ReceiverFactory::getValue(senderInt,size); py_list = PyList_New(size); for (int i=0; i < size; i++) { int err = PyList_SetItem(py_list, i, Py_BuildValue("i", (int) ret[i])); if(err) { const char * message = "Error in SUPPORT::getTypes"; PyErr_SetString(PyExc_RuntimeError, message); return NULL; } } PyObject * result = Py_BuildValue("O", py_list); delete [] ret; Py_DECREF(py_list); return result; } PyObject * getValueForMatrix(SALOME::Matrix_ptr matrix) { PyObject *py_list; int column,row; double *ret=MatrixClient::getValue(matrix,column,row); py_list = PyList_New(row); for(int i=0;istring_to_object(s); SALOME::SenderDouble_ptr t = SALOME::SenderDouble::_narrow(O); arg1 = t; } result = (PyObject *)getValueForSenderDouble(arg1); resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_getValueForSenderInt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME::SenderInt_ptr arg1 ; PyObject * obj0 = 0 ; PyObject *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:getValueForSenderInt",&obj0)) SWIG_fail; { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Ask omniORBpy to transform SUPPORT (python Corba) ptr to IOR string PyObject* iorSupport = PyObject_CallMethod(orb, (char*)"object_to_string", (char*)"O", obj0); if (iorSupport == Py_None) return NULL; char * s = PyString_AsString(PyObject_Str(iorSupport)); // Ask omniORB to convert IOR string to SALOME::SenderInt_ptr int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); CORBA::Object_var O = ORB->string_to_object(s); SALOME::SenderInt_ptr t = SALOME::SenderInt::_narrow(O); arg1 = t; } result = (PyObject *)getValueForSenderInt(arg1); resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_getValueForMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME::Matrix_ptr arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:getValueForMatrix",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_SALOME__Matrix_ptr, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "getValueForMatrix" "', argument " "1"" of type '" "SALOME::Matrix_ptr""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "getValueForMatrix" "', argument " "1"" of type '" "SALOME::Matrix_ptr""'"); } else { SALOME::Matrix_ptr * temp = reinterpret_cast< SALOME::Matrix_ptr * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } result = (PyObject *)getValueForMatrix(arg1); resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_buildSenderDoubleFromList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PyObject *arg1 = (PyObject *) 0 ; PyObject * obj0 = 0 ; SALOME::SenderDouble_ptr result; if (!PyArg_ParseTuple(args,(char *)"O:buildSenderDoubleFromList",&obj0)) SWIG_fail; arg1 = obj0; result = buildSenderDoubleFromList(arg1); { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Get the orb Corba C++ int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); std::string s = ORB->object_to_string(result); PyObject * tmp = PyString_FromString(s.c_str()); resultobj = PyObject_CallMethod(orb, (char*)"string_to_object", (char*)"O", tmp); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_buildSenderIntFromList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PyObject *arg1 = (PyObject *) 0 ; PyObject * obj0 = 0 ; SALOME::SenderInt_ptr result; if (!PyArg_ParseTuple(args,(char *)"O:buildSenderIntFromList",&obj0)) SWIG_fail; arg1 = obj0; result = buildSenderIntFromList(arg1); { PyObject* pdict = PyDict_New(); PyDict_SetItemString(pdict, "__builtins__", PyEval_GetBuiltins()); PyRun_String("import CORBA", Py_single_input, pdict, pdict); PyRun_String("o = CORBA.ORB_init([''], CORBA.ORB_ID);", Py_single_input, pdict, pdict); PyObject* orb = PyDict_GetItemString(pdict, "o"); // Get the orb Corba C++ int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var ORB = CORBA::ORB_init(argc, argv); std::string s = ORB->object_to_string(result); PyObject * tmp = PyString_FromString(s.c_str()); resultobj = PyObject_CallMethod(orb, (char*)"string_to_object", (char*)"O", tmp); } return resultobj; fail: return NULL; } static PyMethodDef SwigMethods[] = { { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, { (char *)"getValueForSenderDouble", _wrap_getValueForSenderDouble, METH_VARARGS, (char *)"getValueForSenderDouble(SALOME::SenderDouble_ptr senderDouble) -> PyObject"}, { (char *)"getValueForSenderInt", _wrap_getValueForSenderInt, METH_VARARGS, (char *)"getValueForSenderInt(SALOME::SenderInt_ptr senderInt) -> PyObject"}, { (char *)"getValueForMatrix", _wrap_getValueForMatrix, METH_VARARGS, (char *)"getValueForMatrix(SALOME::Matrix_ptr matrix) -> PyObject"}, { (char *)"buildSenderDoubleFromList", _wrap_buildSenderDoubleFromList, METH_VARARGS, (char *)"buildSenderDoubleFromList(PyObject pylist) -> SALOME::SenderDouble_ptr"}, { (char *)"buildSenderIntFromList", _wrap_buildSenderIntFromList, METH_VARARGS, (char *)"buildSenderIntFromList(PyObject pylist) -> SALOME::SenderInt_ptr"}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_SALOME__Matrix_ptr = {"_p_SALOME__Matrix_ptr", "SALOME::Matrix_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SALOME__SenderDouble_ptr = {"_p_SALOME__SenderDouble_ptr", "SALOME::SenderDouble_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SALOME__SenderInt_ptr = {"_p_SALOME__SenderInt_ptr", "SALOME::SenderInt_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_SALOME__Matrix_ptr, &_swigt__p_SALOME__SenderDouble_ptr, &_swigt__p_SALOME__SenderInt_ptr, &_swigt__p_char, }; static swig_cast_info _swigc__p_SALOME__Matrix_ptr[] = { {&_swigt__p_SALOME__Matrix_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SALOME__SenderDouble_ptr[] = { {&_swigt__p_SALOME__SenderDouble_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SALOME__SenderInt_ptr[] = { {&_swigt__p_SALOME__SenderInt_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_SALOME__Matrix_ptr, _swigc__p_SALOME__SenderDouble_ptr, _swigc__p_SALOME__SenderInt_ptr, _swigc__p_char, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned staticly to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int found, init; clientdata = clientdata; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ found=0; iter=module_head; do { if (iter==&swig_module) { found=1; break; } iter=iter->next; } while (iter!= module_head); /* if the is found in the list, then all is done and we may leave */ if (found) return; /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpeters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %d\n", swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_InternFromString(""); #else return PyString_FromString(""); #endif } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { #if PY_VERSION_HEX >= 0x03000000 PyObject *str = PyUnicode_InternFromString("("); PyObject *tail; PyObject *joined; swig_globalvar *var; for (var = v->vars; var; var=var->next) { tail = PyUnicode_FromString(var->name); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; if (var->next) { tail = PyUnicode_InternFromString(", "); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; } } tail = PyUnicode_InternFromString(")"); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; #else PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); #endif return str; } SWIGINTERN int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *tmp; PyObject *str = swig_varlink_str(v); fprintf(fp,"Swig global variables "); fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str)); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(str); return 0; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* Number of items in variable part (ob_size) */ #endif (char *)"swigvarlink", /* Type name (tp_name) */ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ 0, /* Itemsize (tp_itemsize) */ (destructor) swig_varlink_dealloc, /* Deallocator (tp_dealloc) */ (printfunc) swig_varlink_print, /* Print (tp_print) */ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc) swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; varlink_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 varlink_type.ob_type = &PyType_Type; #endif type_init = 1; } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { strncpy(gv->name,name,size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *_SWIG_globals = 0; if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); return _SWIG_globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT #if PY_VERSION_HEX >= 0x03000000 PyObject* #else void #endif SWIG_init(void) { PyObject *m, *d; #if PY_VERSION_HEX >= 0x03000000 static struct PyModuleDef SWIG_module = { PyModuleDef_HEAD_INIT, (char *) SWIG_name, NULL, -1, SwigMethods, NULL, NULL, NULL, NULL }; #endif /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); #if PY_VERSION_HEX >= 0x03000000 m = PyModule_Create(&SWIG_module); #else m = Py_InitModule((char *) SWIG_name, SwigMethods); #endif d = PyModule_GetDict(m); SWIG_InitializeModule(0); SWIG_InstallConstants(d,swig_const_table); #if PY_VERSION_HEX >= 0x03000000 return m; #else return; #endif } salome-kernel-6.5.0/src/Container/000077500000000000000000000000001177004724000167735ustar00rootroot00000000000000salome-kernel-6.5.0/src/Container/Component_i.cxx000077500000000000000000001071151177004724000220010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Container : implementation of container and engine for Kernel // File : Component_i.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Component_i.cxx,v 1.15.2.13.6.4.2.1 2012-04-12 14:05:03 vsr Exp $ //#define private protected // for pd_refCount trace // #include "SALOME_Component_i.hxx" #include "SALOME_Container_i.hxx" #include "RegistryConnexion.hxx" #include "Basics_Utils.hxx" #include #ifndef WIN32 #include #endif #include #include "utilities.h" #ifndef WIN32 #include #include #include #else #include int SIGUSR11 = 1000; #include #endif extern bool _Sleeping ; static Engines_Component_i * theEngines_Component ; bool Engines_Component_i::_isMultiStudy = true; bool Engines_Component_i::_isMultiInstance = false; /*! \class Engines_Component_i * \brief C++ implementation of Engines::Component interface * */ //============================================================================= /*! * Default constructor, not for use */ //============================================================================= Engines_Component_i::Engines_Component_i():_myConnexionToRegistry(0), _notifSupplier(0), _id(0) { //ASSERT(0); MESSAGE("Default Constructor, not for normal use..."); } //============================================================================= /*! \brief Standard Constructor for generic Component, used in derived class * * Connection to Registry and Notification * \param orb Object Request broker given by Container * \param poa Portable Object Adapter from Container (normally root_poa) * \param contId container CORBA id inside the server * \param instanceName unique instance name for this object (see Container_i) * \param interfaceName component class name * \param notif use of notification * \param regist (true or false) use of registry (default true) */ //============================================================================= 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, bool regist ) : _instanceName(instanceName), _interfaceName(interfaceName), _myConnexionToRegistry(0), _notifSupplier(0), _ThreadId(0) , _ThreadCpuUsed(0) , _Executed(false) , _graphName("") , _nodeName(""), _studyId(-1), _id(0), _contId(0), _CanceledThread(false) { 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... _container=Engines::Container::_narrow(o); setContainerName(); if(regist) { const CORBA::String_var ior = _orb->object_to_string(o); _myConnexionToRegistry = new RegistryConnexion(0, 0, ior,"theSession", _instanceName.c_str()); } if(notif) _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif); } //============================================================================= /*! \brief Standard Constructor for standalone Component, used in derived class * * Connection to Registry and Notification * \param orb Object Request broker given by Container * \param poa Portable Object Adapter from Container (normally root_poa) * \param container container CORBA reference * \param instanceName unique instance name for this object (see Container_i) * \param interfaceName component class name * \param notif use of notification * \param regist (true or false) use of registry (default true) */ //============================================================================= Engines_Component_i::Engines_Component_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif, bool regist) : _instanceName(instanceName), _interfaceName(interfaceName), _myConnexionToRegistry(0), _notifSupplier(0), _ThreadId(0) , _ThreadCpuUsed(0) , _Executed(false) , _graphName("") , _nodeName(""), _studyId(-1), _id(0), _contId(0), _CanceledThread(false) { MESSAGE("Component constructor with instanceName "<< _instanceName); _orb = CORBA::ORB::_duplicate(orb); _poa = PortableServer::POA::_duplicate(poa); _container=Engines::Container::_duplicate(container); setContainerName(); const CORBA::String_var ior = _orb->object_to_string(_container); if(regist) _myConnexionToRegistry = new RegistryConnexion(0, 0, ior,"theSession", _instanceName.c_str()); if(notif) _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif); } //============================================================================= /*! * Destructor: call Container for decrement of instances count. * When instances count falls to 0, the container tries to remove the * component library (dlclose) */ //============================================================================= Engines_Component_i::~Engines_Component_i() { MESSAGE("Component destructor"); Engines_Container_i::decInstanceCnt(_interfaceName); if(_myConnexionToRegistry)delete _myConnexionToRegistry; _myConnexionToRegistry = 0 ; if(_id) delete _id; _id=0; if(_notifSupplier) { SCRUTE(_notifSupplier->_refcount_value()); PortableServer::POA_var poa=_notifSupplier->_default_POA(); PortableServer::ObjectId_var anObjectId = poa->servant_to_id(_notifSupplier); poa->deactivate_object(anObjectId.in()); SCRUTE(_notifSupplier->_refcount_value()); _notifSupplier->_remove_ref(); } } //============================================================================= /*! * CORBA method: return name of the instance, unique in this Container */ //============================================================================= char* Engines_Component_i::instanceName() { return CORBA::string_dup(_instanceName.c_str()) ; } //============================================================================= /*! * CORBA method: return name of the component class */ //============================================================================= char* Engines_Component_i::interfaceName() { return CORBA::string_dup(_interfaceName.c_str()) ; } //============================================================================= /*! * CORBA method: Get study Id * \return -1: not initialised (Internal Error) * 0: multistudy component instance * >0: study id associated to this instance */ //============================================================================= CORBA::Long Engines_Component_i::getStudyId() { return _studyId; } //============================================================================= /*! * CORBA method: Test if instance is alive and responds */ //============================================================================= void Engines_Component_i::ping() { #ifndef WIN32 MESSAGE("Engines_Component_i::ping() pid "<< getpid() << " threadid " << pthread_self()); #else MESSAGE("Engines_Component_i::ping() pid "<< _getpid()<< " threadid " << pthread_self().p ); #endif } //============================================================================= /*! * CORBA method: Deactivate this instance. CORBA object is deactivated (do not * respond any more to CORBA calls), the connection to Regsitry is removed * (Registry informed of deactivation), internal server reference counter on * the derived servant class is decremented, to allow destruction of the class * (delete) by POA, when there are no more references. * -- TO BE USED BY CONTAINER ONLY (Container housekeeping) -- */ //============================================================================= void Engines_Component_i::destroy() { MESSAGE("Engines_Component_i::destroy()"); //SCRUTE(_refcount_value()); _poa->deactivate_object(*_id); //SCRUTE(_refcount_value()); _remove_ref(); //SCRUTE(_refcount_value()); MESSAGE("Engines_Component_i::destroyed") ; } //============================================================================= /*! * CORBA method: return CORBA reference of the Container * */ //============================================================================= Engines::Container_ptr Engines_Component_i::GetContainerRef() { return Engines::Container::_duplicate(_container); } //============================================================================= /*! * CORBA method: * Gives a sequence of (key=string,value=any) to the component. * Base class component stores the sequence in a map. * The map is cleared before. * This map is for use by derived classes. * \param dico sequence of (key=string,value=any) */ //============================================================================= void Engines_Component_i::setProperties(const Engines::FieldsDict& dico) { _fieldsDict.clear(); for (CORBA::ULong i=0; ilength(_fieldsDict.size()); std::map::iterator it; CORBA::ULong i = 0; for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++, i++) { std::string cle((*it).first); copie[i].key = CORBA::string_dup(cle.c_str()); copie[i].value = _fieldsDict[cle]; } return copie._retn(); } //============================================================================= /*! * CORBA method: * This method is to set an option specific to a certain EngineComponent. */ //============================================================================= void Engines_Component_i::SetOption(const char*, const char*) { } //============================================================================= /*! * CORBA method: * This method is to get value of an option specific to a certain EngineComponent. */ //============================================================================= char* Engines_Component_i::GetOption(const char*) { return CORBA::string_dup("") ; } //============================================================================= /*! * CORBA method: used by Supervision to give names to this instance */ //============================================================================= void Engines_Component_i::Names( const char * graphName , const char * nodeName ) { _graphName = graphName ; _nodeName = nodeName ; // MESSAGE("Engines_Component_i::Names( '" << _graphName << "' , '" // << _nodeName << "' )"); } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= 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 " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id // << dec << " _ThreadId " << _ThreadId << " this " << hex << this // << dec ) ; bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) { RetVal = Killer( _ThreadId , SIGUSR2 ) ; _ThreadId = (pthread_t ) -1 ; } #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) { RetVal = Killer( *_ThreadId , 0 ) ; _ThreadId = (pthread_t* ) 0 ; } #endif return RetVal ; } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Component_i::Stop_impl() { #ifndef WIN32 MESSAGE("Engines_Component_i::Stop_i() pthread_t "<< pthread_self() << " pid " << getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << std::hex << _id << std::dec << " _ThreadId " << _ThreadId ); #else MESSAGE("Engines_Component_i::Stop_i() pthread_t "<< pthread_self().p << " pid " << _getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << std::hex << _id << std::dec << " _ThreadId " << _ThreadId ); #endif bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) { RetVal = Killer( _ThreadId , 0 ) ; _ThreadId = (pthread_t ) -1 ; } #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) { RetVal = Killer( *_ThreadId , 0 ) ; _ThreadId = (pthread_t* ) 0 ; } #endif return RetVal ; } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Component_i::Suspend_impl() { #ifndef WIN32 MESSAGE("Engines_Component_i::Suspend_i() pthread_t "<< pthread_self() << " pid " << getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << std::hex << _id << std::dec << " _ThreadId " << _ThreadId ); #else MESSAGE("Engines_Component_i::Suspend_i() pthread_t "<< pthread_self().p << " pid " << _getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << std::hex << _id << std::dec << " _ThreadId " << _ThreadId ); #endif bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) #endif { if ( _Sleeping ) { return false ; } else { #ifndef WIN32 RetVal = Killer( _ThreadId ,SIGINT ) ; #else RetVal = Killer( *_ThreadId ,SIGINT ) ; #endif //if ( RetVal ) _Sleeping = true; } } return RetVal ; } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Component_i::Resume_impl() { #ifndef WIN32 MESSAGE("Engines_Component_i::Resume_i() pthread_t "<< pthread_self() << " pid " << getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << std::hex << _id << std::dec << " _ThreadId " << _ThreadId ); #else MESSAGE("Engines_Component_i::Resume_i() pthread_t "<< pthread_self().p << " pid " << _getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << std::hex << _id << std::dec << " _ThreadId " << _ThreadId ); #endif bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) #endif { if ( _Sleeping ) { _Sleeping = false ; RetVal = true ; } else { RetVal = false ; } } return RetVal ; } //============================================================================= /*! * CORBA method: */ //============================================================================= CORBA::Long Engines_Component_i::CpuUsed_impl() { long cpu = 0 ; if ( _ThreadId || _Executed ) { if ( _ThreadId > 0 ) { #ifndef WIN32 if ( pthread_self() != _ThreadId ) #else if ( pthread_self().p != _ThreadId->p ) #endif { if ( _Sleeping ) { } else { // Get Cpu in the appropriate thread with that object !... theEngines_Component = this ; #ifndef WIN32 Killer( _ThreadId ,SIGUSR1 ) ; #else Killer( *_ThreadId ,SIGUSR11 ) ; #endif } cpu = _ThreadCpuUsed ; } else { _ThreadCpuUsed = CpuUsed() ; cpu = _ThreadCpuUsed ; // cout << pthread_self() << " Engines_Component_i::CpuUsed_impl " // << _serviceName << " " << cpu << endl ; } } else { cpu = _ThreadCpuUsed ; // cout << pthread_self() << " Engines_Component_i::CpuUsed_impl " // << _serviceName << " " << cpu<< endl ; } } else { // cout<< pthread_self()<<"Engines_Component_i::CpuUsed_impl _ThreadId " // <<_ThreadId <<" "<<_serviceName<<" _StartUsed "<<_StartUsed<reference_to_id(_container); return dynamic_cast(_poa->id_to_servant(contId)) ; } //============================================================================= /*! * C++ method: set study Id * \param studyId 0 if instance is not associated to a study, * >0 otherwise (== study id) * \return true if the set of study Id is OK * must be set once by Container, at instance creation, * and cannot be changed after. */ //============================================================================= CORBA::Boolean Engines_Component_i::setStudyId(CORBA::Long studyId) { ASSERT( studyId >= 0); CORBA::Boolean ret = false; if (_studyId < 0) // --- not yet initialized { _studyId = studyId; ret = true; } else if ( _studyId == studyId) ret = true; return ret; } //============================================================================= /*! * C++ method: return CORBA instance id, the id is set in derived class * constructor, when instance is activated. */ //============================================================================= PortableServer::ObjectId * Engines_Component_i::getId() { // MESSAGE("PortableServer::ObjectId * Engines_Component_i::getId()"); return _id ; } //============================================================================= /*! * C++ method: used by derived classes for supervision */ //============================================================================= void Engines_Component_i::beginService(const char *serviceName) { std::cerr << "beginService for " << serviceName << " Component instance : " << _instanceName << std::endl; #ifndef WIN32 _ThreadId = pthread_self() ; #else _ThreadId = new pthread_t; _ThreadId->p = pthread_self().p ; _ThreadId->x = pthread_self().x ; #endif _StartUsed = 0 ; _StartUsed = CpuUsed_impl() ; _ThreadCpuUsed = 0 ; _Executed = true ; _serviceName = serviceName ; theEngines_Component = this ; if ( pthread_setcanceltype( PTHREAD_CANCEL_ASYNCHRONOUS , NULL ) ) { perror("pthread_setcanceltype ") ; exit(0) ; } if ( pthread_setcancelstate( PTHREAD_CANCEL_ENABLE , NULL ) ) { perror("pthread_setcancelstate ") ; exit(0) ; } // --- all strings given with setProperties are set in environment std::map::iterator it; for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++) { std::string cle((*it).first); if ((*it).second.type()->kind() == CORBA::tk_string) { const char* value; (*it).second >>= value; std::string s(cle); s+='='; s+=value; putenv((char *)s.c_str()); MESSAGE("--- setenv: "<SetCurCpu() ; } //============================================================================= /*! * C++ method: */ //============================================================================= void Engines_Component_i::SetCurCpu() { _ThreadCpuUsed = CpuUsed() ; // MESSAGE(pthread_self() << // " Engines_Component_i::SetCurCpu() _ThreadCpuUsed " << _ThreadCpuUsed) ; } //============================================================================= /*! * C++ method: */ //============================================================================= long Engines_Component_i::CpuUsed() { long cpu = 0 ; #ifndef WIN32 struct rusage usage ; if ( _ThreadId || _Executed ) { if ( getrusage( RUSAGE_SELF , &usage ) == -1 ) { perror("Engines_Component_i::CpuUsed") ; return 0 ; } //cpu time is calculated in millisecond (user+system times) cpu = usage.ru_utime.tv_sec*1000 +usage.ru_utime.tv_usec/1000; cpu = cpu+ usage.ru_stime.tv_sec*1000 +usage.ru_stime.tv_usec/1000; cpu=cpu-_StartUsed ; // std::cout << pthread_self() << " Engines_Component_i::CpuUsed " << " " // << _serviceName << usage.ru_utime.tv_sec << " - " << _StartUsed // << " = " << cpu << std::endl ; } else { // std::cout << pthread_self() << "Engines_Component_i::CpuUsed _ThreadId " // << _ThreadId << " " << _serviceName<< " _StartUsed " // << _StartUsed << std::endl ; } #else // NOT implementet yet #endif return cpu ; } void CallCancelThread() { if ( theEngines_Component ) theEngines_Component->CancelThread() ; } //============================================================================= /*! * C++ method: */ //============================================================================= void Engines_Component_i::CancelThread() { _CanceledThread = true; } //============================================================================= /*! * C++ method: Send message to event channel */ //============================================================================= void Engines_Component_i::sendMessage(const char *event_type, const char *message) { _notifSupplier->Send(_graphName.c_str(), _nodeName.c_str(), event_type, message); } //============================================================================= /*! * C++ method: return standard library name built on component name */ //============================================================================= std::string Engines_Component_i::GetDynLibraryName(const char *componentName) { std::string ret="lib"; ret+=componentName; ret+="Engine.so"; return ret; } //============================================================================= /*! * C++ method: DumpPython default implementation */ //============================================================================= Engines::TMPFile* Engines_Component_i::DumpPython(CORBA::Object_ptr theStudy, CORBA::Boolean isPublished, CORBA::Boolean isMultiFile, CORBA::Boolean& isValidScript) { const char* aScript = isMultiFile ? "def RebuildData(theStudy): pass" : ""; char* aBuffer = new char[strlen(aScript)+1]; strcpy(aBuffer, aScript); CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer; int aBufferSize = strlen(aBuffer)+1; Engines::TMPFile_var aStreamFile = new Engines::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1); isValidScript = true; return aStreamFile._retn(); } Engines::Salome_file_ptr Engines_Component_i::getInputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we throw an exception. _Service_file_map_it = _Input_Service_file_map.find(service_name); if (_Service_file_map_it == _Input_Service_file_map.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have salome files"; throw SALOME::SALOME_Exception(es); } _t_Salome_file_map * _map = _Input_Service_file_map[service_name]; // Try to find the Salome_file ... _Salome_file_map_it = _map->find(Salome_file_name); if (_Salome_file_map_it == _map->end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have this Salome_file"; throw SALOME::SALOME_Exception(es); } Salome_file_i * Sfile = (*_map)[Salome_file_name]; return Sfile->_this(); } Engines::Salome_file_ptr Engines_Component_i::setInputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we add it. _Service_file_map_it = _Input_Service_file_map.find(service_name); if (_Service_file_map_it == _Input_Service_file_map.end()) { _t_Salome_file_map * _map = new _t_Salome_file_map(); _Input_Service_file_map[service_name] = _map; } _t_Salome_file_map * _map = _Input_Service_file_map[service_name]; // Try to find the Salome_file ... _Salome_file_map_it = _map->find(Salome_file_name); if (_Salome_file_map_it == _map->end()) { Salome_file_i * Sfile = new Salome_file_i(); Engines::Container_ptr container = this->GetContainerRef(); Sfile->setContainer(Engines::Container::_duplicate(container)); (*_map)[Salome_file_name] = Sfile; } Salome_file_i * Sfile = (*_map)[Salome_file_name]; return Sfile->_this(); } void Engines_Component_i::checkInputFilesToService(const char* service_name) { // Try to find the service, if it doesn't exist, nothing to do. _Service_file_map_it = _Input_Service_file_map.find(service_name); if (_Service_file_map_it != _Input_Service_file_map.end()) { _t_Salome_file_map * _map = _Input_Service_file_map[service_name]; _t_Salome_file_map::iterator begin = _map->begin(); _t_Salome_file_map::iterator end = _map->end(); for(;begin!=end;begin++) { Salome_file_i * file = begin->second; std::string file_port_name = begin->first; configureSalome_file(service_name, file_port_name, file); file->recvFiles(); } } } Engines::Salome_file_ptr Engines_Component_i::getOutputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we throw an exception. _Service_file_map_it = _Output_Service_file_map.find(service_name); if (_Service_file_map_it == _Output_Service_file_map.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have salome files"; throw SALOME::SALOME_Exception(es); } _t_Salome_file_map * _map = _Output_Service_file_map[service_name]; // Try to find the Salome_file ... _Salome_file_map_it = _map->find(Salome_file_name); if (_Salome_file_map_it == _map->end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have this Salome_file"; throw SALOME::SALOME_Exception(es); } Salome_file_i * Sfile = (*_map)[Salome_file_name]; return Sfile->_this(); } Engines::Salome_file_ptr Engines_Component_i::setOutputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we add it. _Service_file_map_it = _Output_Service_file_map.find(service_name); if (_Service_file_map_it == _Output_Service_file_map.end()) { _t_Salome_file_map * _map = new _t_Salome_file_map(); _Output_Service_file_map[service_name] = _map; } _t_Salome_file_map * _map = _Output_Service_file_map[service_name]; // Try to find the Salome_file ... _Salome_file_map_it = _map->find(Salome_file_name); if (_Salome_file_map_it == _map->end()) { Salome_file_i * Sfile = new Salome_file_i(); Engines::Container_ptr container = this->GetContainerRef(); Sfile->setContainer(Engines::Container::_duplicate(container)); (*_map)[Salome_file_name] = Sfile; } Salome_file_i * Sfile = (*_map)[Salome_file_name]; return Sfile->_this(); } void Engines_Component_i::checkOutputFilesToService(const char* service_name) { // Try to find the service, if it doesn't exist, nothing to do. _Service_file_map_it = _Output_Service_file_map.find(service_name); if (_Service_file_map_it != _Output_Service_file_map.end()) { _t_Salome_file_map * _map = _Output_Service_file_map[service_name]; _t_Salome_file_map::iterator begin = _map->begin(); _t_Salome_file_map::iterator end = _map->end(); for(;begin!=end;begin++) { Salome_file_i * file = begin->second; std::string file_port_name = begin->first; configureSalome_file(service_name, file_port_name, file); file->recvFiles(); } } } //============================================================================= /*! * C++ method: used to configure the Salome_file into the runtime. * \param service_name name of the service that use this Salome_file * \param file_port_name name of the Salome_file * \param file Salome_file C++ object */ //============================================================================= void Engines_Component_i::configureSalome_file(std::string service_name, std::string file_port_name, Salome_file_i * file) { // By default this method does nothing } //============================================================================= /*! * C++ method: return the name of the container associated with this component * This name does not contains the "/Containers" string and all "/" are replaced by "_" * \return the container name (reformatted) */ //============================================================================= std::string Engines_Component_i::getContainerName() { return _containerName; } //============================================================================= /*! * C++ method: set the name of the container associated with this component (attribute _containerName) * This name does not contains the "/Containers" string and all "/" are replaced by "_" * \return the container name (reformatted) */ //============================================================================= void Engines_Component_i::setContainerName() { CORBA::String_var containerName=_container->name(); std::string name(containerName); name.erase(0,12); std::string::size_type slash =name.find_first_of('/'); if(slash != std::string::npos) name[slash]='_'; _containerName=name; } salome-kernel-6.5.0/src/Container/Container_i.cxx000077500000000000000000001576651177004724000220000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Container : implementation of container and engine for Kernel // File : Container_i.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Container_i.cxx,v 1.22.2.7.14.8.2.1 2012-04-12 14:05:03 vsr Exp $ //#define private public // #include #include #include #include #ifndef WIN32 #include #include #include #include #else #include #include #include int SIGUSR1 = 1000; #endif #include "utilities.h" #include #include CORBA_SERVER_HEADER(SALOME_Component) #include CORBA_SERVER_HEADER(SALOME_Exception) #include // must be before Python.h ! #include "SALOME_Container_i.hxx" #include "SALOME_Component_i.hxx" #include "SALOME_FileRef_i.hxx" #include "SALOME_FileTransfer_i.hxx" #include "Salome_file_i.hxx" #include "SALOME_NamingService.hxx" #include "Basics_Utils.hxx" #ifdef _XOPEN_SOURCE #undef _XOPEN_SOURCE #endif #include #include "Container_init_python.hxx" bool _Sleeping = false ; // // Needed by multi-threaded Python --- Supervision int _ArgC ; char ** _ArgV ; extern "C" {void ActSigIntHandler() ; } #ifndef WIN32 extern "C" {void SigIntHandler(int, siginfo_t *, void *) ; } #else extern "C" {void SigIntHandler( int ) ; } #endif #ifndef WIN32 #define LIB "lib" #define ENGINESO "Engine.so" #else #define LIB "" #define ENGINESO "Engine.dll" #endif #ifdef WIN32 #define SEP ';' #define SLASH '\\' #else #define SEP ':' #define SLASH '/' #endif std::map Engines_Container_i::_cntInstances_map; std::map Engines_Container_i::_library_map; std::map Engines_Container_i::_toRemove_map; omni_mutex Engines_Container_i::_numInstanceMutex ; static PyObject* _pyCont; int checkifexecutable(const std::string&); int findpathof(const std::string& path, std::string&, const std::string&); /*! \class Engines_Container_i * \brief C++ implementation of Engines::Container interface * */ //============================================================================= /*! * Default constructor, not for use */ //============================================================================= Engines_Container_i::Engines_Container_i () : _numInstance(0),_id(0),_NS(0) { } //============================================================================= /*! * Construtor to use */ //============================================================================= Engines_Container_i::Engines_Container_i (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char *containerName , int argc , char* argv[], bool activAndRegist, bool isServantAloneInProcess ) : _numInstance(0),_isServantAloneInProcess(isServantAloneInProcess),_id(0),_NS(0) { _pid = (long)getpid(); if(activAndRegist) ActSigIntHandler() ; _argc = argc ; _argv = argv ; std::string hostname = Kernel_Utils::GetHostname(); #ifndef WIN32 MESSAGE(hostname << " " << getpid() << " Engines_Container_i starting argc " << _argc << " Thread " << pthread_self() ) ; #else MESSAGE(hostname << " " << _getpid() << " Engines_Container_i starting argc " << _argc<< " Thread " << pthread_self().p ) ; #endif int i = 0 ; while ( _argv[ i ] ) { MESSAGE(" argv" << i << " " << _argv[ i ]) ; i++ ; } if ( argc < 2 ) { INFOS("SALOME_Container usage : SALOME_Container ServerName"); ASSERT(0) ; } SCRUTE(argv[1]); _isSupervContainer = false; _orb = CORBA::ORB::_duplicate(orb) ; _poa = PortableServer::POA::_duplicate(poa) ; // Pour les containers paralleles: il ne faut pas enregistrer et activer // le container generique, mais le container specialise if(activAndRegist) { _id = _poa->activate_object(this); _NS = new SALOME_NamingService(); _NS->init_orb( _orb ) ; CORBA::Object_var obj=_poa->id_to_reference(*_id); Engines::Container_var pCont = Engines::Container::_narrow(obj); _remove_ref(); _containerName = _NS->BuildContainerNameForNS(containerName, hostname.c_str()); SCRUTE(_containerName); _NS->Register(pCont, _containerName.c_str()); MESSAGE("Engines_Container_i::Engines_Container_i : Container name " << _containerName); // Python: // import SALOME_Container // pycont = SALOME_Container.SALOME_Container_i(containerIORStr) CORBA::String_var sior = _orb->object_to_string(pCont); std::string myCommand="pyCont = SALOME_Container.SALOME_Container_i('"; myCommand += _containerName + "','"; myCommand += sior; myCommand += "')\n"; SCRUTE(myCommand); PyGILState_STATE gstate = PyGILState_Ensure(); #ifdef WIN32 // mpv: this is temporary solution: there is a unregular crash if not //Sleep(2000); // // first element is the path to Registry.dll, but it's wrong PyRun_SimpleString("import sys\n"); PyRun_SimpleString("sys.path = sys.path[1:]\n"); #endif PyRun_SimpleString("import SALOME_Container\n"); PyRun_SimpleString((char*)myCommand.c_str()); PyObject *mainmod = PyImport_AddModule("__main__"); PyObject *globals = PyModule_GetDict(mainmod); _pyCont = PyDict_GetItemString(globals, "pyCont"); PyGILState_Release(gstate); fileTransfer_i* aFileTransfer = new fileTransfer_i(); CORBA::Object_var obref=aFileTransfer->_this(); _fileTransfer = Engines::fileTransfer::_narrow(obref); aFileTransfer->_remove_ref(); } } //============================================================================= /*! * Destructor */ //============================================================================= Engines_Container_i::~Engines_Container_i() { MESSAGE("Container_i::~Container_i()"); if(_id) delete _id; if(_NS) delete _NS; } //============================================================================= //! Get container name /*! * CORBA attribute: Container name (see constructor) */ //============================================================================= char* Engines_Container_i::name() { return CORBA::string_dup(_containerName.c_str()) ; } //============================================================================= //! Get container working directory /*! * CORBA attribute: Container working directory */ //============================================================================= char* Engines_Container_i::workingdir() { char wd[256]; getcwd (wd,256); return CORBA::string_dup(wd) ; } //============================================================================= //! Get container log file name /*! * CORBA attribute: Container log file name */ //============================================================================= char* Engines_Container_i::logfilename() { return CORBA::string_dup(_logfilename.c_str()) ; } //! Set container log file name void Engines_Container_i::logfilename(const char* name) { _logfilename=name; } //============================================================================= //! Get container host name /*! * CORBA method: Get the hostName of the Container (without domain extensions) */ //============================================================================= char* Engines_Container_i::getHostName() { std::string s = Kernel_Utils::GetHostname(); // MESSAGE("Engines_Container_i::getHostName " << s); return CORBA::string_dup(s.c_str()) ; } //============================================================================= //! Get container PID /*! * CORBA method: Get the PID (process identification) of the Container */ //============================================================================= CORBA::Long Engines_Container_i::getPID() { return (CORBA::Long)getpid(); } //============================================================================= //! Ping the servant to check it is still alive /*! * CORBA method: check if servant is still alive */ //============================================================================= void Engines_Container_i::ping() { MESSAGE("Engines_Container_i::ping() pid "<< getpid()); } //============================================================================= //! Shutdown the container /*! * CORBA method, oneway: Server shutdown. * - Container name removed from naming service, * - servant deactivation, * - orb shutdown if no other servants in the process */ //============================================================================= void Engines_Container_i::Shutdown() { MESSAGE("Engines_Container_i::Shutdown()"); // Clear registered temporary files clearTemporaryFiles(); /* For each component contained in this container * tell it to self-destroy */ std::map::iterator itm; for (itm = _listInstances_map.begin(); itm != _listInstances_map.end(); itm++) { try { itm->second->destroy(); } catch(const CORBA::Exception& e) { // ignore this entry and continue } catch(...) { // ignore this entry and continue } } _listInstances_map.clear(); _NS->Destroy_FullDirectory(_containerName.c_str()); _NS->Destroy_Name(_containerName.c_str()); if(_isServantAloneInProcess) { MESSAGE("Effective Shutdown of container Begins..."); if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } } //============================================================================= //! load a component implementation /*! * CORBA method * \param componentName component name * \param reason explains error when load fails * \return true if dlopen successfull or already done, false otherwise */ //============================================================================= bool Engines_Container_i::load_component_Library(const char* componentName, CORBA::String_out reason) { //================================================================= // --- C++ implementation section //================================================================= std::string retso; if(load_component_CppImplementation(componentName,retso)) { reason=CORBA::string_dup(""); return true; } else if(retso != "ImplementationNotFound") { reason=CORBA::string_dup(retso.c_str()); return false; } retso="Component "; retso+=componentName; retso+=": Can't find C++ implementation "; retso+=std::string(LIB) + componentName + ENGINESO; //================================================================= // --- Python implementation section //================================================================= std::string retpy; if(load_component_PythonImplementation(componentName,retpy)) { reason=CORBA::string_dup(""); return true; } else if(retpy != "ImplementationNotFound") { reason=CORBA::string_dup(retpy.c_str()); return false; } retpy="Component "; retpy+=componentName; retpy+=": Can't find python implementation "; retpy+=componentName; retpy+="(.py)"; //================================================================= // -- Executable implementation section //================================================================= std::string retex; if(load_component_ExecutableImplementation(componentName,retex)) { reason=CORBA::string_dup(""); return true; } else if(retex != "ImplementationNotFound") { reason=CORBA::string_dup(retex.c_str()); return false; } retex="Component "; retex+=componentName; retex+=": Can't find executable implementation "; retex+=componentName; retex+=".exe"; std::string ret="Component implementation not found: "; ret += componentName ; ret += '\n' ; ret += retso+ '\n' ; ret += retpy+ '\n' ; ret += retex+ '\n' ; std::cerr << ret << std::endl; reason=CORBA::string_dup(ret.c_str()); return false; } //============================================================================= //! try to load a C++ component implementation /*! * C++ method: * \param componentName the name of the component (COMPONENT, for example) * \param reason explains error when load fails * \return true if loading is successfull or already done, false otherwise */ //============================================================================= bool Engines_Container_i::load_component_CppImplementation(const char* componentName, std::string& reason) { std::string aCompName(componentName); std::string impl_name = std::string(LIB) + aCompName + ENGINESO; SCRUTE(impl_name); _numInstanceMutex.lock(); // lock to be alone // (see decInstanceCnt, finalize_removal)) if (_toRemove_map.count(impl_name) != 0) _toRemove_map.erase(impl_name); if (_library_map.count(impl_name) != 0) { MESSAGE("Library " << impl_name << " already loaded"); _numInstanceMutex.unlock(); reason=""; return true; } _numInstanceMutex.unlock(); #ifndef WIN32 void* handle; handle = dlopen( impl_name.c_str() , RTLD_NOW ) ; if ( !handle ) { //not loadable. Try to find the lib file in LD_LIBRARY_PATH std::string path; char* p=getenv("LD_LIBRARY_PATH"); if(p)path=p; path=path+SEP+"/usr/lib"+SEP+"/lib"; std::string pth; if(findpathof(path, pth, impl_name)) { //found but not loadable reason="Component "; reason+=aCompName; reason+=": C++ implementation found "; reason+=pth; reason+=" but it is not loadable. Error:\n"; reason+=dlerror(); std::cerr << reason << std::endl; return false; } else { //not found //continue with other implementation reason="ImplementationNotFound"; return false; } } #else HINSTANCE handle; handle = LoadLibrary( impl_name.c_str() ); if ( !handle ) { reason="ImplementationNotFound"; } #endif if ( handle ) { _numInstanceMutex.lock(); _library_map[impl_name] = handle; _numInstanceMutex.unlock(); reason=""; return true; } return false; } //============================================================================= //! try to load a Python component implementation /*! * C++ method: * \param componentName name of the component * \param reason explains error when load fails * \return true if loading is successfull or already done, false otherwise */ //============================================================================= bool Engines_Container_i::load_component_PythonImplementation(const char* componentName, std::string& reason) { std::string aCompName(componentName); _numInstanceMutex.lock() ; // lock to be alone (stl container write) if (_library_map.count(aCompName) != 0) { _numInstanceMutex.unlock() ; reason=""; return true; // Python Component, already imported } _numInstanceMutex.unlock() ; PyGILState_STATE gstate = PyGILState_Ensure(); PyObject *result = PyObject_CallMethod(_pyCont, (char*)"import_component", (char*)"s",componentName); reason=PyString_AsString(result); Py_XDECREF(result); SCRUTE(reason); PyGILState_Release(gstate); if (reason=="") { //Python component has been loaded (import componentName) _numInstanceMutex.lock() ; // lock to be alone (stl container write) _library_map[aCompName] = (void *)_pyCont; // any non O value OK _numInstanceMutex.unlock() ; MESSAGE("import Python: "<< aCompName <<" OK"); return true; } else if(reason=="ImplementationNotFound") { //Python implementation has not been found. Continue with other implementation reason="ImplementationNotFound"; } else { //Python implementation has been found but loading has failed std::cerr << reason << std::endl; } return false; } //============================================================================= //! try to load a Executable component implementation /*! * C++ method: * \param componentName name of the component * \param reason explains error when load fails * \return true if loading is successfull or already done, false otherwise */ //============================================================================= bool Engines_Container_i::load_component_ExecutableImplementation(const char* componentName, std::string& reason) { std::string aCompName(componentName); std::string executable=aCompName+".exe"; std::string path; std::string pth; char* p=getenv("PATH"); if(p)path=p; if (findpathof(path, pth, executable)) { if(checkifexecutable(pth)) { _numInstanceMutex.lock() ; // lock to be alone (stl container write) _library_map[executable] = (void *)1; // any non O value OK _numInstanceMutex.unlock() ; MESSAGE("import executable: "<< pth <<" OK"); reason=""; return true; } reason="Component "; reason+=aCompName; reason+=": implementation found "; reason+=pth; reason+=" but it is not executable"; std::cerr << reason << std::endl; } else { reason="ImplementationNotFound"; } return false; } //============================================================================= //! Create a new component instance /*! * CORBA method: Creates a new servant instance of a component. * The servant registers itself to naming service and Registry. * \param genericRegisterName Name of the component instance to register * in Registry & Name Service (without _inst_n suffix) * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::create_component_instance(const char*genericRegisterName, CORBA::Long studyId) { Engines::FieldsDict_var env = new Engines::FieldsDict; char* reason; Engines::EngineComponent_ptr compo = create_component_instance_env(genericRegisterName, studyId, env, reason); CORBA::string_free(reason); return compo; } //============================================================================= //! Create a new component instance with environment variables specified /*! * CORBA method: Creates a new servant instance of a component. * The servant registers itself to naming service and Registry. * \param genericRegisterName Name of the component instance to register * in Registry & Name Service (without _inst_n suffix) * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \param env dict of env variables * \param reason explains error when create_component_instance_env fails * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::create_component_instance_env(const char*genericRegisterName, CORBA::Long studyId, const Engines::FieldsDict& env, CORBA::String_out reason) { if (studyId < 0) { INFOS("studyId must be > 0 for mono study instance, =0 for multiStudy"); reason=CORBA::string_dup("studyId must be > 0 for mono study instance, =0 for multiStudy"); return Engines::EngineComponent::_nil() ; } std::string error; if (_library_map.count(genericRegisterName) != 0) { // It's a Python component Engines::EngineComponent_ptr compo = createPythonInstance(genericRegisterName, studyId, error); reason=CORBA::string_dup(error.c_str()); return compo; } std::string impl_name = std::string(LIB) + genericRegisterName + ENGINESO; if (_library_map.count(impl_name) != 0) { // It's a C++ component void* handle = _library_map[impl_name]; Engines::EngineComponent_ptr compo = createInstance(genericRegisterName, handle, studyId, error); reason=CORBA::string_dup(error.c_str()); return compo; } impl_name = std::string(genericRegisterName) + ".exe"; if (_library_map.count(impl_name) != 0) { //It's an executable component Engines::EngineComponent_ptr compo = createExecutableInstance(genericRegisterName, studyId, env, error); reason=CORBA::string_dup(error.c_str()); return compo; } error="load_component_Library has probably not been called for component: "; error += genericRegisterName; INFOS(error); reason=CORBA::string_dup(error.c_str()); return Engines::EngineComponent::_nil() ; } //============================================================================= //! Create a new component instance (Executable implementation) /*! * \param CompName Name of the component instance * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \param env dict of env variables * \param reason explains error when creation fails * \return a loaded component * * This component is implemented in an executable with name genericRegisterName.exe * It must register itself in Naming Service. The container waits some time (10 s max) * it's registration. */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::createExecutableInstance(std::string CompName, int studyId, const Engines::FieldsDict& env, std::string& reason) { Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; std::string instanceName = CompName + "_inst_" + aNumI ; std::string component_registerName = _containerName + "/" + instanceName; //check if an entry exist in naming service CORBA::Object_var nsobj = _NS->Resolve(component_registerName.c_str()); if ( !CORBA::is_nil(nsobj) ) { // unregister the registered component _NS->Destroy_Name(component_registerName.c_str()); //kill or shutdown it ??? } // first arg container ior string // second arg container name // third arg instance name Engines::Container_var pCont= _this(); CORBA::String_var sior = _orb->object_to_string(pCont); std::string command; command="mkdir -p "; command+=instanceName; command+=";cd "; command+=instanceName; command+=";"; command+=CompName ; command+=".exe"; command+=" "; command+= sior; // container ior string command+=" "; command+=_containerName; //container name command+=" "; command+=instanceName; //instance name command+=" &"; MESSAGE("SALOME_Container::create_component_instance command=" << command); #ifndef WIN32 // use fork/execl instead of system to get finer control on env variables int status; pid_t pid = fork(); if(pid == 0) // child { for (CORBA::ULong i=0; i < env.length(); i++) { if (env[i].value.type()->kind() == CORBA::tk_string) { const char* value; env[i].value >>= value; std::string s(env[i].key); s+='='; s+=value; putenv(strdup(s.c_str())); } } execl("/bin/sh", "sh", "-c", command.c_str() , (char *)0); status=-1; } else if(pid < 0) // failed to fork { status=-1; } else //parent { pid_t tpid; do { tpid = wait(&status); } while (tpid != pid); } #else // launch component with a system call int status=system(command.c_str()); #endif if (status == -1) { reason="SALOME_Container::create_component_instance system failed (system command status -1)"; MESSAGE(reason); return Engines::EngineComponent::_nil(); } #ifndef WIN32 else if (WEXITSTATUS(status) == 217) { reason="SALOME_Container::create_component_instance system failed (system command status 217)"; MESSAGE(reason); return Engines::EngineComponent::_nil(); } #endif else { int count=20; if (getenv("TIMEOUT_TO_WAIT_EXE_COMPONENT") != 0) { std::string new_count_str = getenv("TIMEOUT_TO_WAIT_EXE_COMPONENT"); int new_count; std::istringstream ss(new_count_str); if (!(ss >> new_count)) { INFOS("[Container] TIMEOUT_TO_WAIT_EXE_COMPONENT should be an int"); } else count = new_count; } INFOS("[Container] waiting " << count << " second steps exe component "); CORBA::Object_var obj = CORBA::Object::_nil() ; while ( CORBA::is_nil(obj) && count ) { #ifndef WIN32 sleep( 1 ) ; #else Sleep(1000); #endif count-- ; MESSAGE( count << ". Waiting for component " << CompName); obj = _NS->Resolve(component_registerName.c_str()); } if(CORBA::is_nil(obj)) { reason="SALOME_Container::create_component_instance failed"; MESSAGE(reason); return Engines::EngineComponent::_nil(); } else { MESSAGE("SALOME_Container::create_component_instance successful"); iobject = Engines::EngineComponent::_narrow(obj); _listInstances_map[instanceName] = iobject; return iobject._retn(); } } } //============================================================================= //! Create a new component instance (Python implementation) /*! * \param CompName Name of the component instance * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \param reason explains error when creation fails * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::createPythonInstance(std::string CompName, int studyId, std::string& reason) { Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; std::string instanceName = CompName + "_inst_" + aNumI ; std::string component_registerName = _containerName + "/" + instanceName; PyGILState_STATE gstate = PyGILState_Ensure(); PyObject *result = PyObject_CallMethod(_pyCont, (char*)"create_component_instance", (char*)"ssl", CompName.c_str(), instanceName.c_str(), studyId); const char *ior; const char *error; PyArg_ParseTuple(result,"ss", &ior, &error); std::string iors = ior; reason=error; Py_DECREF(result); PyGILState_Release(gstate); if( iors!="" ) { CORBA::Object_var obj = _orb->string_to_object(iors.c_str()); iobject = Engines::EngineComponent::_narrow( obj ) ; _listInstances_map[instanceName] = iobject; } return iobject._retn(); } //============================================================================= //! Create a new component instance (C++ implementation) /*! * C++ method: create a servant instance of a component. * \param genericRegisterName Name of the component instance to register * in Registry & Name Service, * (without _inst_n suffix, like "COMPONENT") * \param handle loaded library handle * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \param reason explains error when creation fails * \return a loaded component * * example with names: * - aGenRegisterName = COMPONENT (= first argument) * - _containerName = /Containers/cli76ce/FactoryServer * - factoryName = COMPONENTEngine_factory * - component_registerBase = /Containers/cli76ce/FactoryServer/COMPONENT * - instanceName = COMPONENT_inst_1 * - component_registerName = /Containers/cli76ce/FactoryServer/COMPONENT_inst_1 */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::createInstance(std::string genericRegisterName, void *handle, int studyId, std::string& reason) { // --- find the factory std::string aGenRegisterName = genericRegisterName; std::string factory_name = aGenRegisterName + std::string("Engine_factory"); SCRUTE(factory_name) ; typedef PortableServer::ObjectId* (*FACTORY_FUNCTION) (CORBA::ORB_ptr, PortableServer::POA_ptr, PortableServer::ObjectId *, const char *, const char *) ; #ifndef WIN32 FACTORY_FUNCTION Component_factory = (FACTORY_FUNCTION)dlsym( handle, factory_name.c_str() ); #else FACTORY_FUNCTION Component_factory = (FACTORY_FUNCTION)GetProcAddress( (HINSTANCE)handle, factory_name.c_str() ); #endif if ( !Component_factory ) { INFOS( "Can't resolve symbol: " + factory_name ); #ifndef WIN32 reason=dlerror(); INFOS(reason); #endif return Engines::EngineComponent::_nil() ; } // --- create instance Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; try { _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; std::string instanceName = aGenRegisterName + "_inst_" + aNumI ; std::string component_registerName = _containerName + "/" + instanceName; // --- Instanciate required CORBA object PortableServer::ObjectId *id ; //not owner, do not delete (nore use var) id = (Component_factory) ( _orb, _poa, _id, instanceName.c_str(), aGenRegisterName.c_str() ) ; if (id == NULL) { reason="Can't get ObjectId from factory"; INFOS(reason); return iobject._retn(); } // --- get reference & servant from id CORBA::Object_var obj = _poa->id_to_reference(*id); iobject = Engines::EngineComponent::_narrow( obj ) ; Engines_Component_i *servant = dynamic_cast(_poa->reference_to_servant(iobject)); ASSERT(servant); //SCRUTE(servant->_refcount_value()); _numInstanceMutex.lock() ; // lock to be alone (stl container write) _listInstances_map[instanceName] = iobject; _cntInstances_map[aGenRegisterName] += 1; _numInstanceMutex.unlock() ; SCRUTE(aGenRegisterName); SCRUTE(_cntInstances_map[aGenRegisterName]); servant->setStudyId(studyId); servant->_remove_ref(); // do not need servant any more (remove ref from reference_to_servant) //SCRUTE(servant->_refcount_value()); // --- register the engine under the name // containerName(.dir)/instanceName(.object) _NS->Register( iobject , component_registerName.c_str() ) ; MESSAGE( component_registerName.c_str() << " bound" ) ; } catch (...) { reason="Container_i::createInstance exception catched"; INFOS(reason) ; } return iobject._retn(); } //============================================================================= //! Find an existing (in the container) component instance /*! * CORBA method: Finds a servant instance of a component * \param registeredName Name of the component in Registry or Name Service, * without instance suffix number * \param studyId 0 if instance is not associated to a study, * >0 otherwise (== study id) * \return the first instance found with same studyId */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::find_component_instance( const char* registeredName, CORBA::Long studyId) { Engines::EngineComponent_var anEngine = Engines::EngineComponent::_nil(); std::map::iterator itm =_listInstances_map.begin(); while (itm != _listInstances_map.end()) { std::string instance = (*itm).first; SCRUTE(instance); if (instance.find(registeredName) == 0) { anEngine = (*itm).second; if (studyId == anEngine->getStudyId()) { return anEngine._retn(); } } itm++; } return anEngine._retn(); } //============================================================================= //! Remove the component instance from container /*! * CORBA method: Stops the component servant, and deletes all related objects * \param component_i Component to be removed */ //============================================================================= void Engines_Container_i::remove_impl(Engines::EngineComponent_ptr component_i) { ASSERT(! CORBA::is_nil(component_i)); std::string instanceName = component_i->instanceName() ; MESSAGE("unload component " << instanceName); _numInstanceMutex.lock() ; // lock to be alone (stl container write) _listInstances_map.erase(instanceName); _numInstanceMutex.unlock() ; component_i->destroy() ; _NS->Destroy_Name(instanceName.c_str()); } //============================================================================= //! Unload component libraries from the container /*! * CORBA method: Discharges unused libraries from the container. */ //============================================================================= void Engines_Container_i::finalize_removal() { MESSAGE("finalize unload : dlclose"); _numInstanceMutex.lock(); // lock to be alone // (see decInstanceCnt, load_component_Library) std::map::iterator ith; for (ith = _toRemove_map.begin(); ith != _toRemove_map.end(); ith++) { void *handle = (*ith).second; std::string impl_name= (*ith).first; if (handle) { SCRUTE(handle); SCRUTE(impl_name); // dlclose(handle); // SALOME unstable after ... // _library_map.erase(impl_name); } } _toRemove_map.clear(); _numInstanceMutex.unlock(); } //============================================================================= //! Decrement component instance reference count /*! * */ //============================================================================= void Engines_Container_i::decInstanceCnt(std::string genericRegisterName) { if(_cntInstances_map.count(genericRegisterName)==0) return; std::string aGenRegisterName =genericRegisterName; MESSAGE("Engines_Container_i::decInstanceCnt " << aGenRegisterName); ASSERT(_cntInstances_map[aGenRegisterName] > 0); _numInstanceMutex.lock(); // lock to be alone // (see finalize_removal, load_component_Library) _cntInstances_map[aGenRegisterName] -= 1; SCRUTE(_cntInstances_map[aGenRegisterName]); if (_cntInstances_map[aGenRegisterName] == 0) { std::string impl_name = Engines_Component_i::GetDynLibraryName(aGenRegisterName.c_str()); SCRUTE(impl_name); void* handle = _library_map[impl_name]; ASSERT(handle); _toRemove_map[impl_name] = handle; } _numInstanceMutex.unlock(); } //============================================================================= //! Find or create a new component instance /*! * CORBA method: find or create an instance of the component (servant), * load a new component class (dynamic library) if required, * * ---- FOR COMPATIBILITY WITH 2.2 ---- * * ---- USE ONLY FOR MULTISTUDY INSTANCES ! -------- * * The servant registers itself to naming service and Registry. * \param genericRegisterName Name of the component to register * in Registry & Name Service * \param componentName Name of the constructed library of the component * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::load_impl( const char* genericRegisterName, const char* componentName ) { char* reason; std::string impl_name = std::string(LIB) + genericRegisterName + ENGINESO; Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; if (load_component_Library(genericRegisterName,reason)) iobject = find_or_create_instance(genericRegisterName, impl_name); CORBA::string_free(reason); return iobject._retn(); } //============================================================================= //! Finds an already existing component instance or create a new instance /*! * C++ method: Finds an already existing servant instance of a component, or * create an instance. * ---- USE ONLY FOR MULTISTUDY INSTANCES ! -------- * \param genericRegisterName Name of the component instance to register * in Registry & Name Service, * (without _inst_n suffix, like "COMPONENT") * \param componentLibraryName like "libCOMPONENTEngine.so" * \return a loaded component * * example with names: * - aGenRegisterName = COMPONENT (= first argument) * - impl_name = libCOMPONENTEngine.so (= second argument) * - _containerName = /Containers/cli76ce/FactoryServer * - factoryName = COMPONENTEngine_factory * - component_registerBase = /Containers/cli76ce/FactoryServer/COMPONENT * - instanceName = COMPONENT_inst_1 * - component_registerName = /Containers/cli76ce/FactoryServer/COMPONENT_inst_1 */ //============================================================================= Engines::EngineComponent_ptr Engines_Container_i::find_or_create_instance(std::string genericRegisterName, std::string componentLibraryName) { std::string aGenRegisterName = genericRegisterName; std::string impl_name = componentLibraryName; if (_library_map.count(impl_name) == 0) { INFOS("shared library " << impl_name <<" must be loaded before creating instance"); return Engines::EngineComponent::_nil() ; } else { // --- find a registered instance in naming service, or create void* handle = _library_map[impl_name]; std::string component_registerBase = _containerName + "/" + aGenRegisterName; Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; std::string reason; try { CORBA::Object_var obj = _NS->ResolveFirst( component_registerBase.c_str()); if ( CORBA::is_nil( obj ) ) { iobject = createInstance(genericRegisterName, handle, 0, reason); // force multiStudy instance here ! } else { iobject = Engines::EngineComponent::_narrow( obj ) ; Engines_Component_i *servant = dynamic_cast (_poa->reference_to_servant(iobject)); ASSERT(servant) int studyId = servant->getStudyId(); ASSERT (studyId >= 0); if (studyId == 0) // multiStudy instance, OK { // No ReBind ! MESSAGE(component_registerBase.c_str()<<" already bound"); } else // monoStudy instance: NOK { iobject = Engines::EngineComponent::_nil(); INFOS("load_impl & find_component_instance methods " << "NOT SUITABLE for mono study components"); } } } catch (...) { INFOS( "Container_i::load_impl catched" ) ; } return iobject._retn(); } } //============================================================================= //! Indicate if container is a python one /*! * Retrieves only with container naming convention if it is a python container */ //============================================================================= bool Engines_Container_i::isPythonContainer(const char* ContainerName) { bool ret=false; int len=strlen(ContainerName); if(len>=2) if(strcmp(ContainerName+len-2,"Py")==0) ret=true; return ret; } //============================================================================= //! Kill the container /*! * CORBA method: Kill the container process with exit(0). * To remove : never returns ! */ //============================================================================= bool Engines_Container_i::Kill_impl() { MESSAGE("Engines_Container_i::Kill() pid "<< getpid() << " containerName " << _containerName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()); INFOS("==============================================================="); INFOS("= REMOVE calls to Kill_impl in C++ container ="); INFOS("==============================================================="); //_exit( 0 ) ; ASSERT(0); return false; } //============================================================================= /*! * */ //============================================================================= void ActSigIntHandler() { #ifndef WIN32 struct sigaction SigIntAct ; SigIntAct.sa_sigaction = &SigIntHandler ; sigemptyset(&SigIntAct.sa_mask); SigIntAct.sa_flags = SA_SIGINFO ; #endif // DEBUG 03.02.2005 : the first parameter of sigaction is not a mask of signals // (SIGINT | SIGUSR1) : // it must be only one signal ===> one call for SIGINT // and an other one for SIGUSR1 #ifndef WIN32 if ( sigaction( SIGINT , &SigIntAct, NULL ) ) { perror("SALOME_Container main ") ; exit(0) ; } if ( sigaction( SIGUSR1 , &SigIntAct, NULL ) ) { perror("SALOME_Container main ") ; exit(0) ; } if ( sigaction( SIGUSR2 , &SigIntAct, NULL ) ) { perror("SALOME_Container main ") ; exit(0) ; } //PAL9042 JR : during the execution of a Signal Handler (and of methods called through Signal Handlers) // use of streams (and so on) should never be used because : // streams of C++ are naturally thread-safe and use pthread_mutex_lock ===> // A stream operation may be interrupted by a signal and if the Handler use stream we // may have a "Dead-Lock" ===HangUp //==INFOS is commented // INFOS(pthread_self() << "SigIntHandler activated") ; #else signal( SIGINT, SigIntHandler ); signal( SIGUSR1, SigIntHandler ); #endif } void SetCpuUsed() ; void CallCancelThread() ; #ifndef WIN32 void SigIntHandler(int what , siginfo_t * siginfo , void * toto ) { //PAL9042 JR : during the execution of a Signal Handler (and of methods called through Signal Handlers) // use of streams (and so on) should never be used because : // streams of C++ are naturally thread-safe and use pthread_mutex_lock ===> // A stream operation may be interrupted by a signal and if the Handler use stream we // may have a "Dead-Lock" ===HangUp //==MESSAGE is commented // MESSAGE(pthread_self() << "SigIntHandler what " << what << std::endl // << " si_signo " << siginfo->si_signo << std::endl // << " si_code " << siginfo->si_code << std::endl // << " si_pid " << siginfo->si_pid) ; if ( _Sleeping ) { _Sleeping = false ; // MESSAGE("SigIntHandler END sleeping.") ; return ; } else { ActSigIntHandler() ; if ( siginfo->si_signo == SIGUSR1 ) { SetCpuUsed() ; } else if ( siginfo->si_signo == SIGUSR2 ) { CallCancelThread() ; } else { _Sleeping = true ; // MESSAGE("SigIntHandler BEGIN sleeping.") ; int count = 0 ; while( _Sleeping ) { sleep( 1 ) ; count += 1 ; } // MESSAGE("SigIntHandler LEAVE sleeping after " << count << " s.") ; } return ; } } #else // Case WIN32 void SigIntHandler( int what ) { #ifndef WIN32 MESSAGE( pthread_self() << "SigIntHandler what " << what << std::endl ); #else MESSAGE( "SigIntHandler what " << what << std::endl ); #endif if ( _Sleeping ) { _Sleeping = false ; MESSAGE("SigIntHandler END sleeping.") ; return ; } else { ActSigIntHandler() ; if ( what == SIGUSR1 ) { SetCpuUsed() ; } else { _Sleeping = true ; MESSAGE("SigIntHandler BEGIN sleeping.") ; int count = 0 ; while( _Sleeping ) { Sleep( 1000 ) ; count += 1 ; } MESSAGE("SigIntHandler LEAVE sleeping after " << count << " s.") ; } return ; } } #endif //============================================================================= //! Get or create a file reference object associated to a local file (to transfer it) /*! * CORBA method: get or create a fileRef object associated to a local file * (a file on the computer on which runs the container server), which stores * a list of (machine, localFileName) corresponding to copies already done. * * \param origFileName absolute path for a local file to copy on other * computers * \return a fileRef object associated to the file. */ //============================================================================= Engines::fileRef_ptr Engines_Container_i::createFileRef(const char* origFileName) { std::string origName(origFileName); Engines::fileRef_var theFileRef = Engines::fileRef::_nil(); if (origName[0] != '/') { INFOS("path of file to copy must be an absolute path begining with '/'"); return Engines::fileRef::_nil(); } if (CORBA::is_nil(_fileRef_map[origName])) { CORBA::Object_var obj=_poa->id_to_reference(*_id); Engines::Container_var pCont = Engines::Container::_narrow(obj); fileRef_i* aFileRef = new fileRef_i(pCont, origFileName); theFileRef = Engines::fileRef::_narrow(aFileRef->_this()); _numInstanceMutex.lock() ; // lock to be alone (stl container write) _fileRef_map[origName] = theFileRef; _numInstanceMutex.unlock() ; } theFileRef = Engines::fileRef::_duplicate(_fileRef_map[origName]); ASSERT(! CORBA::is_nil(theFileRef)); return theFileRef._retn(); } //============================================================================= //! Get a fileTransfer reference /*! * CORBA method: * \return a reference to the fileTransfer object */ //============================================================================= Engines::fileTransfer_ptr Engines_Container_i::getFileTransfer() { Engines::fileTransfer_var aFileTransfer = Engines::fileTransfer::_duplicate(_fileTransfer); return aFileTransfer._retn(); } //============================================================================= //! Create a Salome file //============================================================================= Engines::Salome_file_ptr Engines_Container_i::createSalome_file(const char* origFileName) { std::string origName(origFileName); if (CORBA::is_nil(_Salome_file_map[origName])) { Salome_file_i* aSalome_file = new Salome_file_i(); aSalome_file->setContainer(Engines::Container::_duplicate(this->_this())); try { aSalome_file->setLocalFile(origFileName); aSalome_file->recvFiles(); } catch (const SALOME::SALOME_Exception& e) { return Engines::Salome_file::_nil(); } Engines::Salome_file_var theSalome_file = Engines::Salome_file::_nil(); theSalome_file = Engines::Salome_file::_narrow(aSalome_file->_this()); _numInstanceMutex.lock() ; // lock to be alone (stl container write) _Salome_file_map[origName] = theSalome_file; _numInstanceMutex.unlock() ; } Engines::Salome_file_ptr theSalome_file = Engines::Salome_file::_duplicate(_Salome_file_map[origName]); ASSERT(!CORBA::is_nil(theSalome_file)); return theSalome_file; } //============================================================================= /*! \brief copy a file from a remote host (container) to the local host * \param container the remote container * \param remoteFile the file to copy locally from the remote host into localFile * \param localFile the local file */ //============================================================================= void Engines_Container_i::copyFile(Engines::Container_ptr container, const char* remoteFile, const char* localFile) { Engines::fileTransfer_var fileTransfer = container->getFileTransfer(); FILE* fp; if ((fp = fopen(localFile,"wb")) == NULL) { INFOS("file " << localFile << " cannot be open for writing"); return; } CORBA::Long fileId = fileTransfer->open(remoteFile); if (fileId > 0) { Engines::fileBlock* aBlock; int toFollow = 1; int ctr=0; while (toFollow) { ctr++; SCRUTE(ctr); aBlock = fileTransfer->getBlock(fileId); toFollow = aBlock->length(); SCRUTE(toFollow); CORBA::Octet *buf = aBlock->get_buffer(); fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); delete aBlock; } fclose(fp); MESSAGE("end of transfer"); fileTransfer->close(fileId); } else { INFOS("open reference file for copy impossible"); } } //============================================================================= /*! \brief create a PyNode object to execute remote python code * \param nodeName the name of the node * \param code the python code to load * \return the PyNode */ //============================================================================= Engines::PyNode_ptr Engines_Container_i::createPyNode(const char* nodeName, const char* code) { Engines::PyNode_var node= Engines::PyNode::_nil(); PyGILState_STATE gstate = PyGILState_Ensure(); PyObject *res = PyObject_CallMethod(_pyCont, (char*)"create_pynode", (char*)"ss", nodeName, code); if(res==NULL) { //internal error PyErr_Print(); PyGILState_Release(gstate); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "can not create a python node"; throw SALOME::SALOME_Exception(es); } long ierr=PyInt_AsLong(PyTuple_GetItem(res,0)); PyObject* result=PyTuple_GetItem(res,1); std::string astr=PyString_AsString(result); Py_DECREF(res); PyGILState_Release(gstate); if(ierr==0) { CORBA::Object_var obj = _orb->string_to_object(astr.c_str()); node = Engines::PyNode::_narrow(obj); return node._retn(); } else { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = astr.c_str(); throw SALOME::SALOME_Exception(es); } } //============================================================================= /*! \brief create a PyScriptNode object to execute remote python code * \param nodeName the name of the node * \param code the python code to load * \return the PyScriptNode */ //============================================================================= Engines::PyScriptNode_ptr Engines_Container_i::createPyScriptNode(const char* nodeName, const char* code) { Engines::PyScriptNode_var node= Engines::PyScriptNode::_nil(); PyGILState_STATE gstate = PyGILState_Ensure(); PyObject *res = PyObject_CallMethod(_pyCont, (char*)"create_pyscriptnode", (char*)"ss", nodeName, code); if(res==NULL) { //internal error PyErr_Print(); PyGILState_Release(gstate); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "can not create a python node"; throw SALOME::SALOME_Exception(es); } long ierr=PyInt_AsLong(PyTuple_GetItem(res,0)); PyObject* result=PyTuple_GetItem(res,1); std::string astr=PyString_AsString(result); Py_DECREF(res); PyGILState_Release(gstate); if(ierr==0) { CORBA::Object_var obj = _orb->string_to_object(astr.c_str()); node = Engines::PyScriptNode::_narrow(obj); return node._retn(); } else { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = astr.c_str(); throw SALOME::SALOME_Exception(es); } } //============================================================================= /* int checkifexecutable(const char *filename) * * Return non-zero if the name is an executable file, and * zero if it is not executable, or if it does not exist. */ //============================================================================= int checkifexecutable(const std::string& filename) { int result; struct stat statinfo; result = stat(filename.c_str(), &statinfo); if (result < 0) return 0; if (!S_ISREG(statinfo.st_mode)) return 0; #ifdef WIN32 return 1; #else if (statinfo.st_uid == geteuid()) return statinfo.st_mode & S_IXUSR; if (statinfo.st_gid == getegid()) return statinfo.st_mode & S_IXGRP; return statinfo.st_mode & S_IXOTH; #endif } //============================================================================= /*! \brief Find a file by searching in a path * \param filename file name to search * \param path path to search in * \param pth the complete file path if found * \return 1 if found 0 if not */ //============================================================================= int findpathof(const std::string& path, std::string& pth, const std::string& filename) { if ( path.size() == 0 ) return 0; std::string::size_type offset = 0; std::string::size_type pos = 0; int found = 0; struct stat statinfo; while(!found) { pos = path.find( SEP, offset ); pth = path.substr( offset, pos - offset ); if ( pth.size() > 0 ) { if( pth[pth.size()-1] != SLASH ) pth += SLASH; pth += filename; int result=stat(pth.c_str(), &statinfo); if(result == 0) found=1; } if (pos == std::string::npos) break; offset = pos+1; } return found; } void Engines_Container_i::registerTemporaryFile( const std::string& fileName ) { _tmp_files.remove( fileName ); _tmp_files.push_back( fileName ); } void Engines_Container_i::unregisterTemporaryFile( const std::string& fileName ) { _tmp_files.remove( fileName ); } void Engines_Container_i::clearTemporaryFiles() { std::list::const_iterator it; for ( it = _tmp_files.begin(); it != _tmp_files.end(); ++it ) { #ifdef WIN32 std::string command = "del /F "; #else std::string command = "rm -rf "; #endif command += *it; system( command.c_str() ); } _tmp_files.clear(); } salome-kernel-6.5.0/src/Container/Container_init_python.cxx000077500000000000000000000047261177004724000241010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Container : implementation of container and engine for Kernel // File : Container_init_python.cxx // Author : Paul RASCLE, EDF // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Container_init_python.cxx,v 1.6.32.3.12.1 2012-04-12 14:05:03 vsr Exp $ // #include #ifndef WIN32 #include #endif #include "utilities.h" #include "Container_init_python.hxx" PyThreadState *KERNEL_PYTHON::_gtstate = 0; PyObject *KERNEL_PYTHON::salome_shared_modules_module = NULL; PyInterpreterState *KERNEL_PYTHON::_interp = NULL; void KERNEL_PYTHON::init_python(int argc, char **argv) { if (Py_IsInitialized()) { MESSAGE("Python already initialized"); SCRUTE(KERNEL_PYTHON::_gtstate); return; } MESSAGE("================================================================="); MESSAGE("Python Initialization..."); MESSAGE("================================================================="); // set stdout to line buffering (aka C++ std::cout) setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ); char* salome_python=getenv("SALOME_PYTHON"); if(salome_python != 0) Py_SetProgramName(salome_python); Py_Initialize(); // Initialize the interpreter PySys_SetArgv(argc, argv); KERNEL_PYTHON::_interp = PyThreadState_Get()->interp; PyEval_InitThreads(); // Create (and acquire) the interpreter lock ASSERT(!KERNEL_PYTHON::_gtstate); KERNEL_PYTHON::_gtstate = PyEval_SaveThread(); // Release global thread state SCRUTE(KERNEL_PYTHON::_gtstate); } salome-kernel-6.5.0/src/Container/Container_init_python.hxx000077500000000000000000000054571177004724000241100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Container : implementation of container and engine for Kernel // File : Container_init_python.hxx // Author : Paul RASCLE, EDF // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Container_init_python.hxx,v 1.5.32.3.2.1 2012-04-12 14:05:03 vsr Exp $ // #ifndef _CONTAINER_INIT_PYTHON_HXX_ #define _CONTAINER_INIT_PYTHON_HXX_ #include "SALOME_Container.hxx" #include #include // must be before Python.h ! #ifdef _XOPEN_SOURCE #undef _XOPEN_SOURCE #endif #include // next two MACRO must be used together only once inside a block // ------------------------------------------------------------- // protect a sequence of Python calls: // - Python lock must be acquired for these calls // - new Python thread state allows multi thread use of the sequence: // - Python may release the lock within the sequence, so multiple // thread execution of the sequence may occur. // - For that case, each sequence call must use a specific Python // thread state. // - There is no need of C Lock protection of the sequence. #define Py_ACQUIRE_NEW_THREAD \ PyEval_AcquireLock(); \ PyThreadState *myTstate = PyThreadState_New(KERNEL_PYTHON::_interp); \ PyThreadState_Swap(myTstate); #define Py_RELEASE_NEW_THREAD \ PyEval_ReleaseThread(myTstate); \ PyThreadState_Delete(myTstate); struct CONTAINER_EXPORT KERNEL_PYTHON { #ifdef WIN32 static PyThreadState *get_gtstate() { return KERNEL_PYTHON::_gtstate; } static PyObject *getsalome_shared_modules_module() { return KERNEL_PYTHON::salome_shared_modules_module; } static PyInterpreterState *get_interp() { return KERNEL_PYTHON::_interp; } #endif static PyThreadState *_gtstate; static PyObject *salome_shared_modules_module; static PyInterpreterState *_interp; static void init_python(int argc, char **argv); }; #endif salome-kernel-6.5.0/src/Container/Makefile.am000077500000000000000000000116141177004724000210350ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Container : implementation of container and engine for Kernel # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Makefile.am,v 1.6.2.6.14.4.12.1 2012-04-12 14:05:03 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_Component_i.hxx \ SALOME_Container_i.hxx \ SALOME_FileTransfer_i.hxx \ SALOME_FileRef_i.hxx \ SALOME_ContainerManager.hxx \ Container_init_python.hxx \ SALOME_Container.hxx \ Salome_file_i.hxx # Scripts to be installed dist_salomescript_PYTHON =\ SALOME_ComponentPy.py \ SALOME_PyNode.py \ SALOME_Container.py # These files are executable scripts dist_salomescript_SCRIPTS=\ SALOME_ContainerPy.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @PYTHON_INCLUDES@ \ @HDF5_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../HDFPersist \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @LIBXML_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../ResourcesManager/libResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ \ $(PYTHON_LIBS) if WITH_MPI_SEQ_CONTAINER COMMON_CPPFLAGS += @MPI_INCLUDES@ COMMON_LIBS += @MPI_LIBS@ endif # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeContainer.la libSalomeContainer_la_SOURCES=\ Component_i.cxx \ Container_i.cxx \ SALOME_FileTransfer_i.cxx \ SALOME_FileRef_i.cxx \ Container_init_python.cxx \ SALOME_ContainerManager.cxx \ Salome_file_i.cxx libSalomeContainer_la_CPPFLAGS =\ $(COMMON_CPPFLAGS) libSalomeContainer_la_LDFLAGS =\ -no-undefined -version-info=0:0:0 \ @LDEXPDYNFLAGS@ libSalomeContainer_la_LIBADD =\ $(COMMON_LIBS) if WITH_PACO_PARALLEL libSalomeContainer_la_CPPFLAGS += -DWITH_PACO_PARALLEL @PACO_INCLUDES@ libSalomeContainer_la_LIBADD += @PACO_LIBS@ endif # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = SALOME_Container noinst_PROGRAMS = TestSalome_file SALOME_Container_SOURCES =\ SALOME_Container.cxx \ SALOME_Container_SignalsHandler.cxx SALOME_Container_CPPFLAGS =\ $(COMMON_CPPFLAGS) SALOME_Container_LDADD = \ libSalomeContainer.la \ ../Basics/libSALOMEBasics.la ${COMMON_LIBS} \ $(HDF5_LIBS) \ $(CORBA_LIBS) \ $(PYTHON_LIBS) if WITH_MPI_SEQ_CONTAINER SALOME_Container_LDADD += $(MPI_LIBS) endif SALOME_Container_LDFLAGS =\ -Xlinker -export-dynamic TestSalome_file_SOURCES =\ TestSalome_file.cxx TestSalome_file_CPPFLAGS =\ $(COMMON_CPPFLAGS) TestSalome_file_LDADD =\ libSalomeContainer.la \ ../Basics/libSALOMEBasics.la \ $(COMMON_LIBS) \ $(HDF5_LIBS) \ $(CORBA_LIBS) \ $(PYTHON_LIBS) install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done salome-kernel-6.5.0/src/Container/Makefile.in000077500000000000000000001567201177004724000210560ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(dist_salomescript_SCRIPTS) \ $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am @WITH_MPI_SEQ_CONTAINER_TRUE@am__append_1 = @MPI_INCLUDES@ @WITH_MPI_SEQ_CONTAINER_TRUE@am__append_2 = @MPI_LIBS@ @WITH_PACO_PARALLEL_TRUE@am__append_3 = -DWITH_PACO_PARALLEL @PACO_INCLUDES@ @WITH_PACO_PARALLEL_TRUE@am__append_4 = @PACO_LIBS@ bin_PROGRAMS = SALOME_Container$(EXEEXT) noinst_PROGRAMS = TestSalome_file$(EXEEXT) @WITH_MPI_SEQ_CONTAINER_TRUE@am__append_5 = $(MPI_LIBS) subdir = src/Container ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = am__DEPENDENCIES_2 = ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../ResourcesManager/libResourcesManager.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) libSalomeContainer_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) am_libSalomeContainer_la_OBJECTS = \ libSalomeContainer_la-Component_i.lo \ libSalomeContainer_la-Container_i.lo \ libSalomeContainer_la-SALOME_FileTransfer_i.lo \ libSalomeContainer_la-SALOME_FileRef_i.lo \ libSalomeContainer_la-Container_init_python.lo \ libSalomeContainer_la-SALOME_ContainerManager.lo \ libSalomeContainer_la-Salome_file_i.lo libSalomeContainer_la_OBJECTS = $(am_libSalomeContainer_la_OBJECTS) libSalomeContainer_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeContainer_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_SALOME_Container_OBJECTS = \ SALOME_Container-SALOME_Container.$(OBJEXT) \ SALOME_Container-SALOME_Container_SignalsHandler.$(OBJEXT) SALOME_Container_OBJECTS = $(am_SALOME_Container_OBJECTS) @WITH_MPI_SEQ_CONTAINER_TRUE@am__DEPENDENCIES_3 = \ @WITH_MPI_SEQ_CONTAINER_TRUE@ $(am__DEPENDENCIES_1) SALOME_Container_DEPENDENCIES = libSalomeContainer.la \ ../Basics/libSALOMEBasics.la $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_3) SALOME_Container_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(SALOME_Container_LDFLAGS) $(LDFLAGS) -o $@ am_TestSalome_file_OBJECTS = \ TestSalome_file-TestSalome_file.$(OBJEXT) TestSalome_file_OBJECTS = $(am_TestSalome_file_OBJECTS) TestSalome_file_DEPENDENCIES = libSalomeContainer.la \ ../Basics/libSALOMEBasics.la $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) SCRIPTS = $(dist_salomescript_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeContainer_la_SOURCES) $(SALOME_Container_SOURCES) \ $(TestSalome_file_SOURCES) DIST_SOURCES = $(libSalomeContainer_la_SOURCES) \ $(SALOME_Container_SOURCES) $(TestSalome_file_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME Container : implementation of container and engine for Kernel # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Makefile.am,v 1.6.2.6.14.4.12.1 2012-04-12 14:05:03 vsr Exp $ # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_Component_i.hxx \ SALOME_Container_i.hxx \ SALOME_FileTransfer_i.hxx \ SALOME_FileRef_i.hxx \ SALOME_ContainerManager.hxx \ Container_init_python.hxx \ SALOME_Container.hxx \ Salome_file_i.hxx # Scripts to be installed dist_salomescript_PYTHON = \ SALOME_ComponentPy.py \ SALOME_PyNode.py \ SALOME_Container.py # These files are executable scripts dist_salomescript_SCRIPTS = \ SALOME_ContainerPy.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = @PYTHON_INCLUDES@ @HDF5_INCLUDES@ \ -I$(srcdir)/../Basics -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager -I$(srcdir)/../HDFPersist \ -I$(srcdir)/../GenericObj -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @LIBXML_INCLUDES@ \ $(am__append_1) # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../ResourcesManager/libResourcesManager.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la @CORBA_LIBS@ \ $(PYTHON_LIBS) $(am__append_2) # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeContainer.la libSalomeContainer_la_SOURCES = \ Component_i.cxx \ Container_i.cxx \ SALOME_FileTransfer_i.cxx \ SALOME_FileRef_i.cxx \ Container_init_python.cxx \ SALOME_ContainerManager.cxx \ Salome_file_i.cxx libSalomeContainer_la_CPPFLAGS = $(COMMON_CPPFLAGS) $(am__append_3) libSalomeContainer_la_LDFLAGS = \ -no-undefined -version-info=0:0:0 \ @LDEXPDYNFLAGS@ libSalomeContainer_la_LIBADD = $(COMMON_LIBS) $(am__append_4) SALOME_Container_SOURCES = \ SALOME_Container.cxx \ SALOME_Container_SignalsHandler.cxx SALOME_Container_CPPFLAGS = \ $(COMMON_CPPFLAGS) SALOME_Container_LDADD = libSalomeContainer.la \ ../Basics/libSALOMEBasics.la ${COMMON_LIBS} $(HDF5_LIBS) \ $(CORBA_LIBS) $(PYTHON_LIBS) $(am__append_5) SALOME_Container_LDFLAGS = \ -Xlinker -export-dynamic TestSalome_file_SOURCES = \ TestSalome_file.cxx TestSalome_file_CPPFLAGS = \ $(COMMON_CPPFLAGS) TestSalome_file_LDADD = \ libSalomeContainer.la \ ../Basics/libSALOMEBasics.la \ $(COMMON_LIBS) \ $(HDF5_LIBS) \ $(CORBA_LIBS) \ $(PYTHON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Container/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Container/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeContainer.la: $(libSalomeContainer_la_OBJECTS) $(libSalomeContainer_la_DEPENDENCIES) $(libSalomeContainer_la_LINK) -rpath $(libdir) $(libSalomeContainer_la_OBJECTS) $(libSalomeContainer_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_Container$(EXEEXT): $(SALOME_Container_OBJECTS) $(SALOME_Container_DEPENDENCIES) @rm -f SALOME_Container$(EXEEXT) $(SALOME_Container_LINK) $(SALOME_Container_OBJECTS) $(SALOME_Container_LDADD) $(LIBS) TestSalome_file$(EXEEXT): $(TestSalome_file_OBJECTS) $(TestSalome_file_DEPENDENCIES) @rm -f TestSalome_file$(EXEEXT) $(CXXLINK) $(TestSalome_file_OBJECTS) $(TestSalome_file_LDADD) $(LIBS) install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(salomescriptdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(salomescriptdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_salomescriptSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_Container-SALOME_Container.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSalome_file-TestSalome_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-Component_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-Container_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-Container_init_python.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-SALOME_ContainerManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-SALOME_FileRef_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-SALOME_FileTransfer_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeContainer_la-Salome_file_i.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeContainer_la-Component_i.lo: Component_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-Component_i.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-Component_i.Tpo -c -o libSalomeContainer_la-Component_i.lo `test -f 'Component_i.cxx' || echo '$(srcdir)/'`Component_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-Component_i.Tpo $(DEPDIR)/libSalomeContainer_la-Component_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Component_i.cxx' object='libSalomeContainer_la-Component_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-Component_i.lo `test -f 'Component_i.cxx' || echo '$(srcdir)/'`Component_i.cxx libSalomeContainer_la-Container_i.lo: Container_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-Container_i.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-Container_i.Tpo -c -o libSalomeContainer_la-Container_i.lo `test -f 'Container_i.cxx' || echo '$(srcdir)/'`Container_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-Container_i.Tpo $(DEPDIR)/libSalomeContainer_la-Container_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Container_i.cxx' object='libSalomeContainer_la-Container_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-Container_i.lo `test -f 'Container_i.cxx' || echo '$(srcdir)/'`Container_i.cxx libSalomeContainer_la-SALOME_FileTransfer_i.lo: SALOME_FileTransfer_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-SALOME_FileTransfer_i.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-SALOME_FileTransfer_i.Tpo -c -o libSalomeContainer_la-SALOME_FileTransfer_i.lo `test -f 'SALOME_FileTransfer_i.cxx' || echo '$(srcdir)/'`SALOME_FileTransfer_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-SALOME_FileTransfer_i.Tpo $(DEPDIR)/libSalomeContainer_la-SALOME_FileTransfer_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_FileTransfer_i.cxx' object='libSalomeContainer_la-SALOME_FileTransfer_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-SALOME_FileTransfer_i.lo `test -f 'SALOME_FileTransfer_i.cxx' || echo '$(srcdir)/'`SALOME_FileTransfer_i.cxx libSalomeContainer_la-SALOME_FileRef_i.lo: SALOME_FileRef_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-SALOME_FileRef_i.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-SALOME_FileRef_i.Tpo -c -o libSalomeContainer_la-SALOME_FileRef_i.lo `test -f 'SALOME_FileRef_i.cxx' || echo '$(srcdir)/'`SALOME_FileRef_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-SALOME_FileRef_i.Tpo $(DEPDIR)/libSalomeContainer_la-SALOME_FileRef_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_FileRef_i.cxx' object='libSalomeContainer_la-SALOME_FileRef_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-SALOME_FileRef_i.lo `test -f 'SALOME_FileRef_i.cxx' || echo '$(srcdir)/'`SALOME_FileRef_i.cxx libSalomeContainer_la-Container_init_python.lo: Container_init_python.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-Container_init_python.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-Container_init_python.Tpo -c -o libSalomeContainer_la-Container_init_python.lo `test -f 'Container_init_python.cxx' || echo '$(srcdir)/'`Container_init_python.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-Container_init_python.Tpo $(DEPDIR)/libSalomeContainer_la-Container_init_python.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Container_init_python.cxx' object='libSalomeContainer_la-Container_init_python.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-Container_init_python.lo `test -f 'Container_init_python.cxx' || echo '$(srcdir)/'`Container_init_python.cxx libSalomeContainer_la-SALOME_ContainerManager.lo: SALOME_ContainerManager.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-SALOME_ContainerManager.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-SALOME_ContainerManager.Tpo -c -o libSalomeContainer_la-SALOME_ContainerManager.lo `test -f 'SALOME_ContainerManager.cxx' || echo '$(srcdir)/'`SALOME_ContainerManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-SALOME_ContainerManager.Tpo $(DEPDIR)/libSalomeContainer_la-SALOME_ContainerManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ContainerManager.cxx' object='libSalomeContainer_la-SALOME_ContainerManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-SALOME_ContainerManager.lo `test -f 'SALOME_ContainerManager.cxx' || echo '$(srcdir)/'`SALOME_ContainerManager.cxx libSalomeContainer_la-Salome_file_i.lo: Salome_file_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeContainer_la-Salome_file_i.lo -MD -MP -MF $(DEPDIR)/libSalomeContainer_la-Salome_file_i.Tpo -c -o libSalomeContainer_la-Salome_file_i.lo `test -f 'Salome_file_i.cxx' || echo '$(srcdir)/'`Salome_file_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeContainer_la-Salome_file_i.Tpo $(DEPDIR)/libSalomeContainer_la-Salome_file_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Salome_file_i.cxx' object='libSalomeContainer_la-Salome_file_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeContainer_la-Salome_file_i.lo `test -f 'Salome_file_i.cxx' || echo '$(srcdir)/'`Salome_file_i.cxx SALOME_Container-SALOME_Container.o: SALOME_Container.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Container-SALOME_Container.o -MD -MP -MF $(DEPDIR)/SALOME_Container-SALOME_Container.Tpo -c -o SALOME_Container-SALOME_Container.o `test -f 'SALOME_Container.cxx' || echo '$(srcdir)/'`SALOME_Container.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Container-SALOME_Container.Tpo $(DEPDIR)/SALOME_Container-SALOME_Container.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Container.cxx' object='SALOME_Container-SALOME_Container.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Container-SALOME_Container.o `test -f 'SALOME_Container.cxx' || echo '$(srcdir)/'`SALOME_Container.cxx SALOME_Container-SALOME_Container.obj: SALOME_Container.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Container-SALOME_Container.obj -MD -MP -MF $(DEPDIR)/SALOME_Container-SALOME_Container.Tpo -c -o SALOME_Container-SALOME_Container.obj `if test -f 'SALOME_Container.cxx'; then $(CYGPATH_W) 'SALOME_Container.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Container.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Container-SALOME_Container.Tpo $(DEPDIR)/SALOME_Container-SALOME_Container.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Container.cxx' object='SALOME_Container-SALOME_Container.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Container-SALOME_Container.obj `if test -f 'SALOME_Container.cxx'; then $(CYGPATH_W) 'SALOME_Container.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Container.cxx'; fi` SALOME_Container-SALOME_Container_SignalsHandler.o: SALOME_Container_SignalsHandler.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Container-SALOME_Container_SignalsHandler.o -MD -MP -MF $(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Tpo -c -o SALOME_Container-SALOME_Container_SignalsHandler.o `test -f 'SALOME_Container_SignalsHandler.cxx' || echo '$(srcdir)/'`SALOME_Container_SignalsHandler.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Tpo $(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Container_SignalsHandler.cxx' object='SALOME_Container-SALOME_Container_SignalsHandler.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Container-SALOME_Container_SignalsHandler.o `test -f 'SALOME_Container_SignalsHandler.cxx' || echo '$(srcdir)/'`SALOME_Container_SignalsHandler.cxx SALOME_Container-SALOME_Container_SignalsHandler.obj: SALOME_Container_SignalsHandler.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Container-SALOME_Container_SignalsHandler.obj -MD -MP -MF $(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Tpo -c -o SALOME_Container-SALOME_Container_SignalsHandler.obj `if test -f 'SALOME_Container_SignalsHandler.cxx'; then $(CYGPATH_W) 'SALOME_Container_SignalsHandler.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Container_SignalsHandler.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Tpo $(DEPDIR)/SALOME_Container-SALOME_Container_SignalsHandler.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Container_SignalsHandler.cxx' object='SALOME_Container-SALOME_Container_SignalsHandler.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Container_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Container-SALOME_Container_SignalsHandler.obj `if test -f 'SALOME_Container_SignalsHandler.cxx'; then $(CYGPATH_W) 'SALOME_Container_SignalsHandler.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Container_SignalsHandler.cxx'; fi` TestSalome_file-TestSalome_file.o: TestSalome_file.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSalome_file_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSalome_file-TestSalome_file.o -MD -MP -MF $(DEPDIR)/TestSalome_file-TestSalome_file.Tpo -c -o TestSalome_file-TestSalome_file.o `test -f 'TestSalome_file.cxx' || echo '$(srcdir)/'`TestSalome_file.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSalome_file-TestSalome_file.Tpo $(DEPDIR)/TestSalome_file-TestSalome_file.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSalome_file.cxx' object='TestSalome_file-TestSalome_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSalome_file_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSalome_file-TestSalome_file.o `test -f 'TestSalome_file.cxx' || echo '$(srcdir)/'`TestSalome_file.cxx TestSalome_file-TestSalome_file.obj: TestSalome_file.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSalome_file_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSalome_file-TestSalome_file.obj -MD -MP -MF $(DEPDIR)/TestSalome_file-TestSalome_file.Tpo -c -o TestSalome_file-TestSalome_file.obj `if test -f 'TestSalome_file.cxx'; then $(CYGPATH_W) 'TestSalome_file.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSalome_file.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSalome_file-TestSalome_file.Tpo $(DEPDIR)/TestSalome_file-TestSalome_file.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSalome_file.cxx' object='TestSalome_file-TestSalome_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSalome_file_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSalome_file-TestSalome_file.obj `if test -f 'TestSalome_file.cxx'; then $(CYGPATH_W) 'TestSalome_file.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSalome_file.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-dist_salomescriptSCRIPTS install-salomeincludeHEADERS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-dist_salomescriptSCRIPTS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-data-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am \ install-data-hook install-dist_salomescriptPYTHON \ install-dist_salomescriptSCRIPTS install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-dist_salomescriptPYTHON \ uninstall-dist_salomescriptSCRIPTS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Container/SALOME_ComponentPy.py000077500000000000000000000270011177004724000226630ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Container : implementation of container and engine for Kernel # File : SALOME_ComponentPy.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_ComponentPy.py,v 1.11.2.5.14.4.12.1 2012-04-12 14:05:03 vsr Exp $ ## @package SALOME_ComponentPy # \brief python implementation of component interface for Kernel # import os import sys import time import string import signal from omniORB import CORBA, PortableServer, any import Engines, Engines__POA import Registry from Utils_Identity import * from SALOME_NamingServicePy import * from libNOTIFICATION import * from SALOME_utilities import * from thread import * #============================================================================= _Sleeping = 0 ## define an implementation of the component interface Engines::Component # # class SALOME_ComponentPy_i (Engines__POA.EngineComponent): _orb = None _poa = None _fieldsDict = [] _studyId = -1 #------------------------------------------------------------------------- def __init__ (self, orb, poa, contID, containerName, instanceName, interfaceName, notif=0): # 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._serviceName = '' self._ThreadId = 0 self._StartUsed = 0 self._ThreadCpuUsed = 0 self._Executed = 0 self._contId = contID naming_service = SALOME_NamingServicePy_i(self._orb) myMachine=getShortHostName() Component_path = self._containerName + "/" + self._instanceName MESSAGE( 'SALOME_ComponentPy_i Register' + str( Component_path ) ) id_o = poa.activate_object(self) compo_o = poa.id_to_reference(id_o) naming_service.Register(compo_o, 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 _get_interfaceName(self): MESSAGE( "SALOME_ComponentPy_i::_get_interfaceName" ) return self._interfaceName #------------------------------------------------------------------------- def ping(self): MESSAGE( "SALOME_ComponentPy_i::ping() pid " + str(os.getpid()) ) #------------------------------------------------------------------------- def setProperties(self, dico): self._fieldsDict = dico #------------------------------------------------------------------------- def getProperties(self): return self._fieldsDict #------------------------------------------------------------------------- def destroy(self): MESSAGE( "SALOME_ComponentPy_i::destroy" ) id = self._poa.servant_to_id(self) self._poa.deactivate_object(id) return #------------------------------------------------------------------------- def GetContainerRef(self): MESSAGE( "SALOME_ComponentPy_i::GetContainerRef" ) return self._contId._narrow(Engines.Container) #------------------------------------------------------------------------- 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 ) ) self._serviceName = str(serviceName) self._ThreadId = get_ident() self._StartUsed = 0 self._StartUsed = self.CpuUsed_impl() self._ThreadCpuUsed = 0 self._Executed = 1 print "beginService for ",serviceName," Component instance : ",self._instanceName MESSAGE( "SALOME_ComponentPy_i::beginService _StartUsed " + str( self._ThreadId ) + " " + str( self._StartUsed ) ) for e in self._fieldsDict: key=e.key value=any.from_any(e.value) if isinstance(value,str): os.environ[key]=value #------------------------------------------------------------------------- def endService(self , serviceName ): MESSAGE( "Send EndService notification for " + str( self._ThreadId ) + " " + str(serviceName) + " for graph/node " + str(self._graphName) + " " + str(self._nodeName) + " CpuUsed " + str( self.CpuUsed_impl() ) ) MESSAGE( "Component instance : " + str(self._instanceName) ) print "endService for",serviceName,"Component instance :",self._instanceName,"Cpu Used:",self.CpuUsed_impl()," (s) " #------------------------------------------------------------------------- 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 Killer(self, ThreadId, signum): #if ThreadId > 0: #if signum == 0: #if pthread_cancel(ThreadId): <- from C++ # return 0 #else: # MESSAGE() #else: #if pthread_kill(ThreadId): <- from C++ # return 0 #else: # MESSAGE() return 1 #------------------------------------------------------------------------- def Kill_impl(self): MESSAGE( "SALOME_ComponentPy_i::Kill_impl" ) RetVal = 0 if self._ThreadId > 0 & self._ThreadId != get_ident(): RetVal = Killer(self._ThreadId,0) self._ThreadId = 0 return RetVal #------------------------------------------------------------------------- def Stop_impl(self): MESSAGE( "SALOME_ComponentPy_i::Stop_impl" ) RetVal = 0 if self._ThreadId > 0 & self._ThreadId != get_ident(): RetVal = Killer(self._ThreadId,0) self._ThreadId = 0 return RetVal #------------------------------------------------------------------------- def Suspend_impl(self): MESSAGE( "SALOME_ComponentPy_i::Suspend_impl" ) global _Sleeping RetVal = 0 if self._ThreadId > 0 & self._ThreadId != get_ident(): if _Sleeping > 0: return 0 else: RetVal = Killer(self._ThreadId, signal.SIGINT) if RetVal > 0: _Sleeping = 1 return RetVal #------------------------------------------------------------------------- def Resume_impl(self): MESSAGE( "SALOME_ComponentPy_i::Resume_impl" ) global _Sleeping RetVal = 0 if self._ThreadId > 0 & self._ThreadId != get_ident(): if _Sleeping > 0: _Sleeping = 0 RetVal = 1 else: RetVal = 0 return RetVal #------------------------------------------------------------------------- def CpuUsed_impl(self): if ( self._ThreadId | self._Executed ) : if self._ThreadId == get_ident() : cpu = time.clock() self._ThreadCpuUsed = cpu - self._StartUsed MESSAGE( "SALOME_ComponentPy_i::CpuUsed_impl " + self._serviceName + " " + str( int(cpu) ) + " - " + str( self._StartUsed ) + " = " + str( self._ThreadCpuUsed ) ) return self._ThreadCpuUsed MESSAGE( "SALOME_ComponentPy_i::CpuUsed_impl " + self._serviceName + " " + str( self._ThreadCpuUsed ) ) return self._ThreadCpuUsed MESSAGE( "SALOME_ComponentPy_i::CpuUsed_impl self._StartUsed " + self._serviceName + " " + str(self._StartUsed) ) return 0 #------------------------------------------------------------------------- def DumpPython(self, theStudy, isPublished, isMultiFile): aBuffer = "\0" if isMultiFile : aBuffer = "def RebuildData(theStudy): pass\n\0" return (aBuffer, 1) #------------------------------------------------------------------------- def getStudyId(self): return self._studyId #------------------------------------------------------------------------- def hasObjectInfo(self): return 0 #------------------------------------------------------------------------- def getObjectInfo(self, studyId, entry): return "" salome-kernel-6.5.0/src/Container/SALOME_Component_i.hxx000077500000000000000000000150351177004724000230450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Container : implementation of container and engine for Kernel // File : SALOME_Component_i.hxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_Component_i.hxx,v 1.13.2.6.10.5.2.1 2012-04-12 14:05:03 vsr Exp $ // #ifndef _SALOME_COMPONENT_I_HXX_ #define _SALOME_COMPONENT_I_HXX_ #include #include "SALOME_Container.hxx" #include #include #include #ifndef WIN32 #include #endif #include #include #include #include CORBA_SERVER_HEADER(SALOME_Component) #include "NOTIFICATION.hxx" #include "Salome_file_i.hxx" class RegistryConnexion; class Engines_Container_i; class CONTAINER_EXPORT Engines_Component_i: public virtual POA_Engines::EngineComponent, public virtual PortableServer::ServantBase { 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, bool regist = true); //Constructor for standalone component Engines_Component_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif = false, bool regist = true); virtual ~Engines_Component_i(); // --- CORBA methods char* instanceName(); char* interfaceName(); void ping(); void destroy(); CORBA::Long getStudyId(); Engines::Container_ptr GetContainerRef(); void setProperties(const Engines::FieldsDict& dico); Engines::FieldsDict* getProperties(); virtual void SetOption(const char*, const char*); virtual char* GetOption(const char*); void Names( const char * graphName , const char * nodeName ) ; bool Kill_impl(); bool Stop_impl(); bool Suspend_impl(); bool Resume_impl(); CORBA::Long CpuUsed_impl() ; virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy, CORBA::Boolean isPublished, CORBA::Boolean isMultiFile, CORBA::Boolean& isValidScript); // CORBA operations for Salome_file virtual Engines::Salome_file_ptr getInputFileToService(const char* service_name, const char* Salome_file_name); virtual Engines::Salome_file_ptr getOutputFileToService(const char* service_name, const char* Salome_file_name); virtual void checkInputFilesToService(const char* service_name); virtual Engines::Salome_file_ptr setInputFileToService(const char* service_name, const char* Salome_file_name); virtual void checkOutputFilesToService(const char* service_name); virtual Engines::Salome_file_ptr setOutputFileToService(const char* service_name, const char* Salome_file_name); // Object information virtual bool hasObjectInfo() { return false; } virtual char* getObjectInfo(CORBA::Long studyId, const char* entry) { return CORBA::string_dup(""); } // --- local C++ methods PortableServer::ObjectId * getId(); Engines_Container_i *GetContainerPtr(); std::string getContainerName(); void setContainerName(); virtual bool setStudyId(CORBA::Long studyId); static bool isMultiStudy(); static bool isMultiInstance(); static std::string GetDynLibraryName(const char *componentName); void beginService(const char *serviceName); void endService(const char *serviceName); void sendMessage(const char *event_type, const char *message); char * graphName() ; char * nodeName() ; bool Killer( pthread_t ThreadId , int signum ); void SetCurCpu() ; long CpuUsed() ; void CancelThread() ; virtual void configureSalome_file(std::string service_name, std::string file_port_name, Salome_file_i * file); protected: int _studyId; // -1: not initialised; 0: multiStudy; >0: study static bool _isMultiStudy; static bool _isMultiInstance; std::string _instanceName ; std::string _interfaceName ; std::string _containerName ; CORBA::ORB_var _orb; PortableServer::POA_var _poa; PortableServer::ObjectId * _id; PortableServer::ObjectId * _contId; Engines::Container_var _container; Engines_Component_i * _thisObj ; RegistryConnexion *_myConnexionToRegistry; NOTIFICATION_Supplier* _notifSupplier; std::map_fieldsDict; // Map Salome_file_name to Salome_file* typedef std::map _t_Salome_file_map; // Map Service_name to _Salome_file_map typedef std::map _t_Service_file_map; _t_Service_file_map _Input_Service_file_map; _t_Service_file_map _Output_Service_file_map; _t_Service_file_map::iterator _Service_file_map_it; _t_Salome_file_map::iterator _Salome_file_map_it; std::string _serviceName ; std::string _graphName ; std::string _nodeName ; private: #ifndef WIN32 pthread_t _ThreadId ; #else pthread_t* _ThreadId ; #endif long _StartUsed ; long _ThreadCpuUsed ; bool _Executed ; bool _CanceledThread ; }; #endif salome-kernel-6.5.0/src/Container/SALOME_Container.cxx000077500000000000000000000132331177004724000225060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Container : implementation of container and engine for Kernel // File : SALOME_Container.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_Container.cxx,v 1.20.2.3.14.3.12.1 2012-04-12 14:05:03 vsr Exp $ // #ifdef _MPI_SEQ_CONTAINER_ #ifdef HAVE_MPI2 #include #endif #endif #include #include #include #include #include #ifndef WIN32 # include # include #endif #ifndef WIN32 #include #else #include #endif #include "SALOME_Container_i.hxx" #include "utilities.h" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "OpUtil.hxx" #ifdef CHECKTIME #include #endif #include "Container_init_python.hxx" extern "C" void HandleServerSideSignals(CORBA::ORB_ptr theORB); #include #include #include #ifndef WIN32 # include #endif void AttachDebugger(); void Handler(int); void terminateHandler(); void unexpectedHandler(); #ifndef WIN32 void (* setsig(int, void (*)(int)))(int); typedef void (*sighandler_t)(int); sighandler_t setsig(int sig, sighandler_t handler) { struct sigaction context, ocontext; context.sa_handler = handler; sigemptyset(&context.sa_mask); context.sa_flags = 0; if (sigaction(sig, &context, &ocontext) == -1) return SIG_ERR; return ocontext.sa_handler; } #endif //WIN32 void AttachDebugger() { #ifndef WIN32 if(getenv ("DEBUGGER")) { std::stringstream exec; exec << "$DEBUGGER SALOME_Container " << getpid() << "&"; std::cerr << exec.str() << std::endl; system(exec.str().c_str()); while(1); } #endif } void Handler(int theSigId) { std::cerr << "Signal= "<< theSigId << std::endl; AttachDebugger(); //to exit or not to exit _exit(1); } void terminateHandler(void) { std::cerr << "Terminate: not managed exception !" << std::endl; AttachDebugger(); } void unexpectedHandler(void) { std::cerr << "Unexpected: unexpected exception !" << std::endl; AttachDebugger(); } int main(int argc, char* argv[]) { #ifdef _MPI_SEQ_CONTAINER_ #ifdef HAVE_MPI2 MPI_Init(&argc,&argv); #endif #endif #ifndef WIN32 if(getenv ("DEBUGGER")) { setsig(SIGSEGV,&Handler); setsig(SIGFPE,&Handler); std::set_terminate(&terminateHandler); std::set_unexpected(&unexpectedHandler); } #endif // Initialise the ORB. //SRN: BugID: IPAL9541, it's necessary to set a size of one message to be at least 100Mb //CORBA::ORB_var orb = CORBA::ORB_init( argc , argv ) ; ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); CORBA::ORB_ptr orb = init(argc , argv ) ; // LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); INFOS_COMPILATION; BEGIN_OF(argv[0]); ASSERT(argc > 1); SCRUTE(argv[1]); KERNEL_PYTHON::init_python(argc,argv); char *containerName = (char *)""; if(argc > 1) { containerName = argv[1] ; } try { CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); ASSERT(!CORBA::is_nil(obj)); PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); PortableServer::POAManager_var pman = root_poa->the_POAManager(); // add new container to the kill list #ifndef WIN32 std::stringstream aCommand ; aCommand << "addToKillList.py " << getpid() << " SALOME_Container" << std::ends ; system(aCommand.str().c_str()); #endif new Engines_Container_i(orb, root_poa, containerName , argc , argv ); pman->activate(); #ifdef CHECKTIME Utils_Timer timer; timer.Start(); timer.Stop(); timer.ShowAbsolute(); #endif HandleServerSideSignals(orb); //#define MEMORYLEAKS #ifdef MEMORYLEAKS PyGILState_Ensure(); //Destroy orb from python (for chasing memory leaks) PyRun_SimpleString("from omniORB import CORBA"); PyRun_SimpleString("orb=CORBA.ORB_init([''], CORBA.ORB_ID)"); PyRun_SimpleString("orb.destroy()"); Py_Finalize(); #endif } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException."); } catch(PortableServer::POA::ServantAlreadyActive&) { INFOS("Caught CORBA::ServantAlreadyActiveException"); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(std::exception& exc) { INFOS("Caught std::exception - "< #include #include #ifndef WIN32 #include #endif #include #include "Utils_CorbaException.hxx" #include #include #ifdef WNT #include #define getpid _getpid #endif #ifdef WITH_PACO_PARALLEL #include "PaCOPP.hxx" #endif #define TIME_OUT_TO_LAUNCH_CONT 60 const char *SALOME_ContainerManager::_ContainerManagerNameInNS = "/ContainerManager"; omni_mutex SALOME_ContainerManager::_numInstanceMutex; //============================================================================= /*! * Constructor * \param orb * Define a CORBA single thread policy for the server, which avoid to deal * with non thread-safe usage like Change_Directory in SALOME naming service */ //============================================================================= SALOME_ContainerManager::SALOME_ContainerManager(CORBA::ORB_ptr orb, PortableServer::POA_var poa, SALOME_ResourcesManager *rm, SALOME_NamingService *ns):_nbprocUsed(1) { MESSAGE("constructor"); _NS = ns; _ResManager = rm; PortableServer::POAManager_var pman = poa->the_POAManager(); _orb = CORBA::ORB::_duplicate(orb) ; CORBA::PolicyList policies; policies.length(1); PortableServer::ThreadPolicy_var threadPol = poa->create_thread_policy(PortableServer::SINGLE_THREAD_MODEL); policies[0] = PortableServer::ThreadPolicy::_duplicate(threadPol); _poa = poa->create_POA("SThreadPOA",pman,policies); threadPol->destroy(); PortableServer::ObjectId_var id = _poa->activate_object(this); CORBA::Object_var obj = _poa->id_to_reference(id); Engines::ContainerManager_var refContMan = Engines::ContainerManager::_narrow(obj); _NS->Register(refContMan,_ContainerManagerNameInNS); _isAppliSalomeDefined = (getenv("APPLI") != 0); #ifdef HAVE_MPI2 #ifdef WITHOPENMPI _pid_mpiServer = -1; // the urifile name depends on pid of the process std::stringstream urifile; urifile << getenv("HOME") << "/.urifile_" << getpid(); setenv("OMPI_URI_FILE",urifile.str().c_str(),1); if( getenv("OMPI_URI_FILE") != NULL ){ // get the pid of all ompi-server std::set thepids1 = getpidofprogram("ompi-server"); // launch a new ompi-server std::string command; command = "ompi-server -r "; command += getenv("OMPI_URI_FILE"); int status=system(command.c_str()); if(status!=0) throw SALOME_Exception("Error when launching ompi-server"); // get the pid of all ompi-server std::set thepids2 = getpidofprogram("ompi-server"); // my ompi-server is the new one std::set::const_iterator it; for(it=thepids2.begin();it!=thepids2.end();it++) if(thepids1.find(*it) == thepids1.end()) _pid_mpiServer = *it; if(_pid_mpiServer < 0) throw SALOME_Exception("Error when getting ompi-server id"); } #elif defined(WITHMPICH) _pid_mpiServer = -1; // get the pid of all hydra_nameserver std::set thepids1 = getpidofprogram("hydra_nameserver"); // launch a new hydra_nameserver std::string command; command = "hydra_nameserver &"; system(command.c_str()); // get the pid of all hydra_nameserver std::set thepids2 = getpidofprogram("hydra_nameserver"); // my hydra_nameserver is the new one std::set::const_iterator it; for(it=thepids2.begin();it!=thepids2.end();it++) if(thepids1.find(*it) == thepids1.end()) _pid_mpiServer = *it; #endif #endif MESSAGE("constructor end"); } //============================================================================= /*! * destructor */ //============================================================================= SALOME_ContainerManager::~SALOME_ContainerManager() { MESSAGE("destructor"); #ifdef HAVE_MPI2 #ifdef WITHOPENMPI if( getenv("OMPI_URI_FILE") != NULL ){ // kill my ompi-server if( kill(_pid_mpiServer,SIGTERM) != 0 ) throw SALOME_Exception("Error when killing ompi-server"); // delete my urifile int status=system("rm -f ${OMPI_URI_FILE}"); if(status!=0) throw SALOME_Exception("Error when removing urifile"); } #elif defined(WITHMPICH) // kill my hydra_nameserver if(_pid_mpiServer > -1) if( kill(_pid_mpiServer,SIGTERM) != 0 ) throw SALOME_Exception("Error when killing hydra_nameserver"); #endif #endif } //============================================================================= //! shutdown all the containers, then the ContainerManager servant /*! CORBA method: */ //============================================================================= void SALOME_ContainerManager::Shutdown() { MESSAGE("Shutdown"); ShutdownContainers(); _NS->Destroy_Name(_ContainerManagerNameInNS); PortableServer::ObjectId_var oid = _poa->servant_to_id(this); _poa->deactivate_object(oid); } //============================================================================= //! Loop on all the containers listed in naming service, ask shutdown on each /*! CORBA Method: */ //============================================================================= void SALOME_ContainerManager::ShutdownContainers() { MESSAGE("ShutdownContainers"); bool isOK; isOK = _NS->Change_Directory("/Containers"); if( isOK ){ std::vector vec = _NS->list_directory_recurs(); std::list lstCont; for(std::vector::iterator iter = vec.begin();iter!=vec.end();iter++) { SCRUTE((*iter)); CORBA::Object_var obj=_NS->Resolve((*iter).c_str()); try { Engines::Container_var cont=Engines::Container::_narrow(obj); if(!CORBA::is_nil(cont)) lstCont.push_back((*iter)); } catch(const CORBA::Exception& e) { // ignore this entry and continue } } MESSAGE("Container list: "); for(std::list::iterator iter=lstCont.begin();iter!=lstCont.end();iter++){ SCRUTE((*iter)); } for(std::list::iterator iter=lstCont.begin();iter!=lstCont.end();iter++) { try { SCRUTE((*iter)); CORBA::Object_var obj=_NS->Resolve((*iter).c_str()); Engines::Container_var cont=Engines::Container::_narrow(obj); if(!CORBA::is_nil(cont)) { MESSAGE("ShutdownContainers: " << (*iter)); cont->Shutdown(); } else MESSAGE("ShutdownContainers: no container ref for " << (*iter)); } catch(CORBA::SystemException& e) { INFOS("CORBA::SystemException ignored : " << e); } catch(CORBA::Exception&) { INFOS("CORBA::Exception ignored."); } catch(...) { INFOS("Unknown exception ignored."); } } } } //============================================================================= //! Give a suitable Container given constraints /*! CORBA Method: * \param params Container Parameters required for the container * \return the container or nil */ //============================================================================= Engines::Container_ptr SALOME_ContainerManager::GiveContainer(const Engines::ContainerParameters& params) { std::string machFile; Engines::Container_ptr ret = Engines::Container::_nil(); // Step 0: Default mode is start Engines::ContainerParameters local_params(params); if (std::string(local_params.mode.in()) == "") local_params.mode = CORBA::string_dup("start"); std::string mode = local_params.mode.in(); MESSAGE("[GiveContainer] starting with mode: " << mode); // Step 1: Find Container for find and findorstart mode if (mode == "find" || mode == "findorstart") { ret = FindContainer(params, params.resource_params.resList); if(!CORBA::is_nil(ret)) return ret; else { if (mode == "find") { MESSAGE("[GiveContainer] no container found"); return ret; } else { mode = "start"; } } } // Step 2: Get all possibleResources from the parameters Engines::ResourceList_var possibleResources = _ResManager->GetFittingResources(local_params.resource_params); MESSAGE("[GiveContainer] - length of possible resources " << possibleResources->length()); std::vector local_resources; // Step 3: if mode is "get" keep only machines with existing containers if(mode == "get") { for(unsigned int i=0; i < possibleResources->length(); i++) { Engines::Container_ptr cont = FindContainer(params, possibleResources[i].in()); try { if(!cont->_non_existent()) local_resources.push_back(std::string(possibleResources[i])); } catch(CORBA::Exception&) {} } // if local_resources is empty, we cannot give a container if (local_resources.size() == 0) { MESSAGE("[GiveContainer] cannot find a container for mode get"); return ret; } } else for(unsigned int i=0; i < possibleResources->length(); i++) local_resources.push_back(std::string(possibleResources[i])); // Step 4: select the resource where to get/start the container bool resource_available = true; std::string resource_selected; std::vector resources = local_resources; while (resource_available) { if (resources.size() == 0) resource_available = false; else { try { resource_selected = _ResManager->GetImpl()->Find(params.resource_params.policy.in(), resources); // Remove resource_selected from vector std::vector::iterator it; for (it=resources.begin() ; it < resources.end(); it++ ) if (*it == resource_selected) { resources.erase(it); break; } } catch(const SALOME_Exception &ex) { MESSAGE("[GiveContainer] Exception in ResourceManager find !: " << ex.what()); return ret; } MESSAGE("[GiveContainer] Resource selected is: " << resource_selected); // Step 5: Create container name Engines::ResourceDefinition_var resource_definition = _ResManager->GetResourceDefinition(resource_selected.c_str()); std::string hostname(resource_definition->hostname.in()); std::string containerNameInNS; if(params.isMPI){ int nbproc; if ( params.nb_proc <= 0 ) nbproc = 1; else nbproc = params.nb_proc; try { if( getenv("LIBBATCH_NODEFILE") != NULL ) machFile = machinesFile(nbproc); } catch(const SALOME_Exception & ex) { std::string err_msg = ex.what(); err_msg += params.container_name; INFOS(err_msg.c_str()); return ret; } // A mpi parallel container register on zero node in NS containerNameInNS = _NS->BuildContainerNameForNS(params, GetMPIZeroNode(hostname,machFile).c_str()); } else containerNameInNS = _NS->BuildContainerNameForNS(params, hostname.c_str()); MESSAGE("[GiveContainer] Container name in the naming service: " << containerNameInNS); // Step 6: check if the name exists in naming service //if params.mode == "getorstart" or "get" use the existing container //if params.mode == "start" shutdown the existing container before launching a new one with that name CORBA::Object_var obj = _NS->Resolve(containerNameInNS.c_str()); if (!CORBA::is_nil(obj)) { try { Engines::Container_var cont=Engines::Container::_narrow(obj); if(!cont->_non_existent()) { if(std::string(params.mode.in())=="getorstart" || std::string(params.mode.in())=="get"){ return cont._retn(); /* the container exists and params.mode is getorstart or get use it*/ } else { INFOS("[GiveContainer] A container is already registered with the name: " << containerNameInNS << ", shutdown the existing container"); cont->Shutdown(); // shutdown the registered container if it exists } } } catch(CORBA::Exception&) { INFOS("[GiveContainer] CORBA::Exception ignored when trying to get the container - we start a new one"); } } Engines::Container_var cont = LaunchContainer(params, resource_selected, hostname, machFile, containerNameInNS); if (!CORBA::is_nil(cont)) { INFOS("[GiveContainer] container " << containerNameInNS << " launched"); return cont._retn(); } else { INFOS("[GiveContainer] Failed to launch container on resource " << resource_selected); } } } // We were not able to launch the container INFOS("[GiveContainer] Cannot launch the container on the following selected resources:") std::vector::iterator it; for (it=local_resources.begin() ; it < local_resources.end(); it++ ) INFOS("[GiveContainer] " << *it) return ret; } Engines::Container_ptr SALOME_ContainerManager::LaunchContainer(const Engines::ContainerParameters& params, const std::string & resource_selected, const std::string & hostname, const std::string & machFile, const std::string & containerNameInNS) { // Step 1: type of container: PaCO, Exe, Mpi or Classic // Mpi already tested in step 5, specific code on BuildCommandToLaunch Local/Remote Container methods // TODO -> separates Mpi from Classic/Exe // Classic or Exe ? std::string container_exe = "SALOME_Container"; // Classic container Engines::ContainerParameters local_params(params); Engines::Container_ptr ret = Engines::Container::_nil(); int found=0; try { CORBA::String_var container_exe_tmp; CORBA::Object_var obj = _NS->Resolve("/Kernel/ModulCatalog"); SALOME_ModuleCatalog::ModuleCatalog_var Catalog = SALOME_ModuleCatalog::ModuleCatalog::_narrow(obj) ; if (CORBA::is_nil (Catalog)) { INFOS("[GiveContainer] Module Catalog is not found -> cannot launch a container"); return ret; } // Loop through component list for(unsigned int i=0; i < local_params.resource_params.componentList.length(); i++) { const char* compoi = local_params.resource_params.componentList[i]; SALOME_ModuleCatalog::Acomponent_var compoInfo = Catalog->GetComponent(compoi); if (CORBA::is_nil (compoInfo)) { continue; } SALOME_ModuleCatalog::ImplType impl=compoInfo->implementation_type(); container_exe_tmp=compoInfo->implementation_name(); if(impl==SALOME_ModuleCatalog::CEXE) { if(found) { INFOS("ContainerManager Error: you can't have 2 CEXE component in the same container" ); return Engines::Container::_nil(); } MESSAGE("[GiveContainer] Exe container found !: " << container_exe_tmp); container_exe = container_exe_tmp.in(); found=1; } } } catch (ServiceUnreachable&) { INFOS("Caught exception: Naming Service Unreachable"); return ret; } catch (...) { INFOS("Caught unknown exception."); return ret; } // Step 2: test resource // Only if an application directory is set if(hostname != Kernel_Utils::GetHostname() && _isAppliSalomeDefined) { // Preparing remote command std::string command = ""; const ParserResourcesType& resInfo = _ResManager->GetImpl()->GetResourcesDescr(resource_selected); command = getCommandToRunRemoteProcess(resInfo.Protocol, resInfo.HostName, resInfo.UserName); if (resInfo.AppliPath != "") command += resInfo.AppliPath; else { ASSERT(getenv("APPLI")); command += getenv("APPLI"); } command += "/runRemote.sh "; ASSERT(getenv("NSHOST")); command += getenv("NSHOST"); // hostname of CORBA name server command += " "; ASSERT(getenv("NSPORT")); command += getenv("NSPORT"); // port of CORBA name server command += " ls /tmp"; // Launch remote command int status = system(command.c_str()); if (status != 0) { // Error on resource - cannot launch commands INFOS("[LaunchContainer] Cannot launch commands on machine " << hostname); INFOS("[LaunchContainer] Command was " << command); #ifndef WIN32 INFOS("[LaunchContainer] Command status is " << WEXITSTATUS(status)); #endif return Engines::Container::_nil(); } } // Step 3: start a new container // Check if a PaCO container // PaCO++ if (std::string(local_params.parallelLib.in()) != "") { ret = StartPaCOPPContainer(params, resource_selected); return ret; } // Other type of containers... MESSAGE("[GiveContainer] Try to launch a new container on " << resource_selected); std::string command; // if a parallel container is launched in batch job, command is: "mpirun -np nbproc -machinefile nodesfile SALOME_MPIContainer" if( getenv("LIBBATCH_NODEFILE") != NULL && params.isMPI ) command = BuildCommandToLaunchLocalContainer(params, machFile, container_exe); // if a container is launched on localhost, command is "SALOME_Container" or "mpirun -np nbproc SALOME_MPIContainer" else if(hostname == Kernel_Utils::GetHostname()) command = BuildCommandToLaunchLocalContainer(params, machFile, container_exe); // if a container is launched in remote mode, command is "ssh resource_selected SALOME_Container" or "ssh resource_selected mpirun -np nbproc SALOME_MPIContainer" else command = BuildCommandToLaunchRemoteContainer(resource_selected, params, container_exe); //redirect stdout and stderr in a file #ifdef WNT std::string logFilename=getenv("TEMP"); logFilename += "\\"; std::string user = getenv( "USERNAME" ); #else std::string user = getenv( "USER" ); std::string logFilename="/tmp"; char* val = getenv("SALOME_TMP_DIR"); if(val) { struct stat file_info; stat(val, &file_info); bool is_dir = S_ISDIR(file_info.st_mode); if (is_dir)logFilename=val; else std::cerr << "SALOME_TMP_DIR environment variable is not a directory use /tmp instead" << std::endl; } logFilename += "/"; #endif logFilename += _NS->ContainerName(params)+"_"+ resource_selected +"_"+user; std::ostringstream tmp; tmp << "_" << getpid(); logFilename += tmp.str(); logFilename += ".log" ; command += " > " + logFilename + " 2>&1"; #ifdef WNT command = "%PYTHONBIN% -c \"import win32pm ; win32pm.spawnpid(r'" + command + "', '')\""; #else command += " &"; #endif // launch container with a system call int status=system(command.c_str()); if (status == -1){ INFOS("[LaunchContainer] command failed (system command status -1): " << command); RmTmpFile(_TmpFileName); // command file can be removed here _TmpFileName=""; return Engines::Container::_nil(); } else if (status == 217){ INFOS("[LaunchContainer] command failed (system command status 217): " << command); RmTmpFile(_TmpFileName); // command file can be removed here _TmpFileName=""; return Engines::Container::_nil(); } else { // Step 4: Wait for the container int count = TIME_OUT_TO_LAUNCH_CONT; if (getenv("TIMEOUT_TO_LAUNCH_CONTAINER") != 0) { std::string new_count_str = getenv("TIMEOUT_TO_LAUNCH_CONTAINER"); int new_count; std::istringstream ss(new_count_str); if (!(ss >> new_count)) { INFOS("[LaunchContainer] TIMEOUT_TO_LAUNCH_CONTAINER should be an int"); } else count = new_count; } INFOS("[GiveContainer] waiting " << count << " second steps container " << containerNameInNS); while (CORBA::is_nil(ret) && count) { #ifndef WIN32 sleep( 1 ) ; #else Sleep(1000); #endif count--; MESSAGE("[GiveContainer] step " << count << " Waiting for container on " << resource_selected); CORBA::Object_var obj = _NS->Resolve(containerNameInNS.c_str()); ret=Engines::Container::_narrow(obj); } if (CORBA::is_nil(ret)) { INFOS("[GiveContainer] was not able to launch container " << containerNameInNS); } else { // Setting log file name logFilename=":"+logFilename; logFilename="@"+Kernel_Utils::GetHostname()+logFilename; logFilename=user+logFilename; ret->logfilename(logFilename.c_str()); RmTmpFile(_TmpFileName); // command file can be removed here _TmpFileName=""; } } return ret; } //============================================================================= //! Find a container given constraints (params) on a list of machines (possibleComputers) /*! * */ //============================================================================= Engines::Container_ptr SALOME_ContainerManager::FindContainer(const Engines::ContainerParameters& params, const Engines::ResourceList& possibleResources) { MESSAGE("[FindContainer] FindContainer on " << possibleResources.length() << " resources"); for(unsigned int i=0; i < possibleResources.length();i++) { Engines::Container_ptr cont = FindContainer(params, possibleResources[i].in()); if(!CORBA::is_nil(cont)) return cont; } MESSAGE("[FindContainer] no container found"); return Engines::Container::_nil(); } //============================================================================= //! Find a container given constraints (params) on a machine (theMachine) /*! * */ //============================================================================= Engines::Container_ptr SALOME_ContainerManager::FindContainer(const Engines::ContainerParameters& params, const std::string& resource) { Engines::ResourceDefinition_var resource_definition = _ResManager->GetResourceDefinition(resource.c_str()); std::string hostname(resource_definition->hostname.in()); std::string containerNameInNS(_NS->BuildContainerNameForNS(params, hostname.c_str())); MESSAGE("[FindContainer] Try to find a container " << containerNameInNS << " on resource " << resource); CORBA::Object_var obj = _NS->Resolve(containerNameInNS.c_str()); try { if(obj->_non_existent()) return Engines::Container::_nil(); else return Engines::Container::_narrow(obj); } catch(const CORBA::Exception& e) { return Engines::Container::_nil(); } } bool isPythonContainer(const char* ContainerName); //============================================================================= /*! * This is no longer valid (C++ container are also python containers) */ //============================================================================= bool isPythonContainer(const char* ContainerName) { bool ret = false; int len = strlen(ContainerName); if (len >= 2) if (strcmp(ContainerName + len - 2, "Py") == 0) ret = true; return ret; } //============================================================================= /*! * Builds the script to be launched * * If SALOME Application not defined ($APPLI), * see BuildTempFileToLaunchRemoteContainer() * * Else rely on distant configuration. Command is under the form (example): * ssh user@machine distantPath/runRemote.sh hostNS portNS WORKINGDIR workingdir \ * SALOME_Container containerName &" * - where user is ommited if not specified in CatalogResources, * - where distant path is always relative to user@machine $HOME, and * equal to $APPLI if not specified in CatalogResources, * - where hostNS is the hostname of CORBA naming server (set by scripts to * use to launch SALOME and servers in $APPLI: runAppli.sh, runRemote.sh) * - where portNS is the port used by CORBA naming server (set by scripts to * use to launch SALOME and servers in $APPLI: runAppli.sh, runRemote.sh) * - where workingdir is the requested working directory for the container. * If WORKINGDIR (and workingdir) is not present the working dir will be $HOME */ //============================================================================= std::string SALOME_ContainerManager::BuildCommandToLaunchRemoteContainer (const std::string& resource_name, const Engines::ContainerParameters& params, const std::string& container_exe) { std::string command; if (!_isAppliSalomeDefined) command = BuildTempFileToLaunchRemoteContainer(resource_name, params); else { int nbproc; Engines::ResourceDefinition_var resource_definition = _ResManager->GetResourceDefinition(resource_name.c_str()); std::string hostname(resource_definition->hostname.in()); const ParserResourcesType& resInfo = _ResManager->GetImpl()->GetResourcesDescr(resource_name); if (params.isMPI) { if ( params.nb_proc <= 0 ) nbproc = 1; else nbproc = params.nb_proc; } // "ssh -l user machine distantPath/runRemote.sh hostNS portNS WORKINGDIR workingdir \ // SALOME_Container containerName &" command = getCommandToRunRemoteProcess(resInfo.Protocol, resInfo.HostName, resInfo.UserName); if (resInfo.AppliPath != "") command += resInfo.AppliPath; // path relative to user@machine $HOME else { ASSERT(getenv("APPLI")); command += getenv("APPLI"); // path relative to user@machine $HOME } command += "/runRemote.sh "; ASSERT(getenv("NSHOST")); command += getenv("NSHOST"); // hostname of CORBA name server command += " "; ASSERT(getenv("NSPORT")); command += getenv("NSPORT"); // port of CORBA name server std::string wdir = params.workingdir.in(); if(wdir != "") { command += " WORKINGDIR "; command += " '"; if(wdir == "$TEMPDIR") wdir="\\$TEMPDIR"; command += wdir; // requested working directory command += "'"; } if(params.isMPI) { command += " mpirun -np "; std::ostringstream o; o << nbproc << " "; command += o.str(); #ifdef WITHLAM command += "-x PATH,LD_LIBRARY_PATH,OMNIORB_CONFIG,SALOME_trace "; #elif defined(WITHOPENMPI) if( getenv("OMPI_URI_FILE") == NULL ) command += "-x PATH -x LD_LIBRARY_PATH -x OMNIORB_CONFIG -x SALOME_trace"; else{ command += "-x PATH -x LD_LIBRARY_PATH -x OMNIORB_CONFIG -x SALOME_trace -ompi-server file:"; command += getenv("OMPI_URI_FILE"); } #elif defined(WITHMPICH) command += "-nameserver " + Kernel_Utils::GetHostname(); #endif command += " SALOME_MPIContainer "; } else command += " " +container_exe+ " "; command += _NS->ContainerName(params); command += " -"; AddOmninamesParams(command); MESSAGE("command =" << command); } return command; } //============================================================================= /*! * builds the command to be launched. */ //============================================================================= std::string SALOME_ContainerManager::BuildCommandToLaunchLocalContainer (const Engines::ContainerParameters& params, const std::string& machinesFile, const std::string& container_exe) { _TmpFileName = BuildTemporaryFileName(); std::string command; int nbproc = 0; std::ostringstream o; if (params.isMPI) { o << "mpirun -np "; if ( params.nb_proc <= 0 ) nbproc = 1; else nbproc = params.nb_proc; o << nbproc << " "; if( getenv("LIBBATCH_NODEFILE") != NULL ) o << "-machinefile " << machinesFile << " "; #ifdef WITHLAM o << "-x PATH,LD_LIBRARY_PATH,OMNIORB_CONFIG,SALOME_trace "; #elif defined(WITHOPENMPI) if( getenv("OMPI_URI_FILE") == NULL ) o << "-x PATH -x LD_LIBRARY_PATH -x OMNIORB_CONFIG -x SALOME_trace"; else { o << "-x PATH -x LD_LIBRARY_PATH -x OMNIORB_CONFIG -x SALOME_trace -ompi-server file:"; o << getenv("OMPI_URI_FILE"); } #elif defined(WITHMPICH) o << "-nameserver " + Kernel_Utils::GetHostname(); #endif if (isPythonContainer(params.container_name)) o << " pyMPI SALOME_ContainerPy.py "; else o << " SALOME_MPIContainer "; } else { std::string wdir=params.workingdir.in(); if(wdir != "") { // a working directory is requested if(wdir == "$TEMPDIR") { // a new temporary directory is requested std::string dir = Kernel_Utils::GetTmpDir(); #ifdef WIN32 o << "cd /d " << dir << std::endl; #else o << "cd " << dir << ";"; #endif } else { // a permanent directory is requested use it or create it #ifdef WIN32 o << "mkdir " + wdir << std::endl; o << "cd /D " + wdir << std::endl; #else o << "mkdir -p " << wdir << " && cd " << wdir + ";"; #endif } } if (isPythonContainer(params.container_name)) o << "SALOME_ContainerPy.py "; else o << container_exe + " "; } o << _NS->ContainerName(params); o << " -"; AddOmninamesParams(o); std::ofstream command_file( _TmpFileName.c_str() ); command_file << o.str(); command_file.close(); #ifndef WIN32 chmod(_TmpFileName.c_str(), 0x1ED); #endif command = _TmpFileName; MESSAGE("Command is file ... " << command); MESSAGE("Command is ... " << o.str()); return command; } //============================================================================= /*! * removes the generated temporary file in case of a remote launch. */ //============================================================================= void SALOME_ContainerManager::RmTmpFile(std::string& tmpFileName) { int lenght = tmpFileName.size(); if ( lenght > 0) { #ifdef WIN32 std::string command = "del /F "; #else std::string command = "rm "; #endif if ( lenght > 4 ) command += tmpFileName.substr(0, lenght - 3 ); else command += tmpFileName; command += '*'; system(command.c_str()); //if dir is empty - remove it std::string tmp_dir = Kernel_Utils::GetDirByPath( tmpFileName ); if ( Kernel_Utils::IsEmptyDir( tmp_dir ) ) { #ifdef WIN32 command = "del /F " + tmp_dir; #else command = "rmdir " + tmp_dir; #endif system(command.c_str()); } } } //============================================================================= /*! * add to command all options relative to naming service. */ //============================================================================= void SALOME_ContainerManager::AddOmninamesParams(std::string& command) const { CORBA::String_var iorstr = _NS->getIORaddr(); command += "ORBInitRef NameService="; command += iorstr; } //============================================================================= /*! * add to command all options relative to naming service. */ //============================================================================= void SALOME_ContainerManager::AddOmninamesParams(std::ofstream& fileStream) const { CORBA::String_var iorstr = _NS->getIORaddr(); fileStream << "ORBInitRef NameService="; fileStream << iorstr; } //============================================================================= /*! * add to command all options relative to naming service. */ //============================================================================= void SALOME_ContainerManager::AddOmninamesParams(std::ostringstream& oss) const { CORBA::String_var iorstr = _NS->getIORaddr(); oss << "ORBInitRef NameService="; oss << iorstr; } //============================================================================= /*! * generate a file name in /tmp directory */ //============================================================================= std::string SALOME_ContainerManager::BuildTemporaryFileName() const { //build more complex file name to support multiple salome session std::string aFileName = Kernel_Utils::GetTmpFileName(); #ifndef WIN32 aFileName += ".sh"; #else aFileName += ".bat"; #endif return aFileName; } //============================================================================= /*! * Builds in a temporary file the script to be launched. * * Used if SALOME Application ($APPLI) is not defined. * The command is build with data from CatalogResources, in which every path * used on remote computer must be defined. */ //============================================================================= std::string SALOME_ContainerManager::BuildTempFileToLaunchRemoteContainer (const std::string& resource_name, const Engines::ContainerParameters& params) throw(SALOME_Exception) { int status; _TmpFileName = BuildTemporaryFileName(); std::ofstream tempOutputFile; tempOutputFile.open(_TmpFileName.c_str(), std::ofstream::out ); const ParserResourcesType& resInfo = _ResManager->GetImpl()->GetResourcesDescr(resource_name); tempOutputFile << "#! /bin/sh" << std::endl; // --- set env vars tempOutputFile << "export SALOME_trace=local" << std::endl; // mkr : 27.11.2006 : PAL13967 - Distributed supervision graphs - Problem with "SALOME_trace" //tempOutputFile << "source " << resInfo.PreReqFilePath << endl; // ! env vars if (params.isMPI) { tempOutputFile << "mpirun -np "; int nbproc; if ( params.nb_proc <= 0 ) nbproc = 1; else nbproc = params.nb_proc; std::ostringstream o; tempOutputFile << nbproc << " "; #ifdef WITHLAM tempOutputFile << "-x PATH,LD_LIBRARY_PATH,OMNIORB_CONFIG,SALOME_trace "; #elif defined(WITHOPENMPI) if( getenv("OMPI_URI_FILE") == NULL ) tempOutputFile << "-x PATH -x LD_LIBRARY_PATH -x OMNIORB_CONFIG -x SALOME_trace"; else{ tempOutputFile << "-x PATH -x LD_LIBRARY_PATH -x OMNIORB_CONFIG -x SALOME_trace -ompi-server file:"; tempOutputFile << getenv("OMPI_URI_FILE"); } #elif defined(WITHMPICH) tempOutputFile << "-nameserver " + Kernel_Utils::GetHostname(); #endif } tempOutputFile << getenv("KERNEL_ROOT_DIR") << "/bin/salome/"; if (params.isMPI) { if (isPythonContainer(params.container_name)) tempOutputFile << " pyMPI SALOME_ContainerPy.py "; else tempOutputFile << " SALOME_MPIContainer "; } else { if (isPythonContainer(params.container_name)) tempOutputFile << "SALOME_ContainerPy.py "; else tempOutputFile << "SALOME_Container "; } tempOutputFile << _NS->ContainerName(params) << " -"; AddOmninamesParams(tempOutputFile); tempOutputFile << " &" << std::endl; tempOutputFile.flush(); tempOutputFile.close(); #ifndef WIN32 chmod(_TmpFileName.c_str(), 0x1ED); #endif // --- Build command std::string command; if (resInfo.Protocol == rsh) { command = "rsh "; std::string commandRcp = "rcp "; commandRcp += _TmpFileName; commandRcp += " "; commandRcp += resInfo.HostName; commandRcp += ":"; commandRcp += _TmpFileName; status = system(commandRcp.c_str()); } else if (resInfo.Protocol == ssh) { command = "ssh "; std::string commandRcp = "scp "; commandRcp += _TmpFileName; commandRcp += " "; commandRcp += resInfo.HostName; commandRcp += ":"; commandRcp += _TmpFileName; status = system(commandRcp.c_str()); } else if (resInfo.Protocol == srun) { command = "srun -n 1 -N 1 --share --nodelist="; std::string commandRcp = "rcp "; commandRcp += _TmpFileName; commandRcp += " "; commandRcp += resInfo.HostName; commandRcp += ":"; commandRcp += _TmpFileName; status = system(commandRcp.c_str()); } else throw SALOME_Exception("Unknown protocol"); if(status) throw SALOME_Exception("Error of connection on remote host"); command += resInfo.HostName; _CommandForRemAccess = command; command += " "; command += _TmpFileName; SCRUTE(command); return command; } std::string SALOME_ContainerManager::GetMPIZeroNode(const std::string machine, const std::string machinesFile) { int status; std::string zeronode; std::string command; std::string tmpFile = BuildTemporaryFileName(); if( getenv("LIBBATCH_NODEFILE") == NULL ) { if (_isAppliSalomeDefined) { const ParserResourcesType& resInfo = _ResManager->GetImpl()->GetResourcesDescr(machine); if (resInfo.Protocol == rsh) command = "rsh "; else if (resInfo.Protocol == ssh) command = "ssh "; else if (resInfo.Protocol == srun) command = "srun -n 1 -N 1 --share --nodelist="; else throw SALOME_Exception("Unknown protocol"); if (resInfo.UserName != "") { command += "-l "; command += resInfo.UserName; command += " "; } command += resInfo.HostName; command += " "; if (resInfo.AppliPath != "") command += resInfo.AppliPath; // path relative to user@machine $HOME else { ASSERT(getenv("APPLI")); command += getenv("APPLI"); // path relative to user@machine $HOME } command += "/runRemote.sh "; ASSERT(getenv("NSHOST")); command += getenv("NSHOST"); // hostname of CORBA name server command += " "; ASSERT(getenv("NSPORT")); command += getenv("NSPORT"); // port of CORBA name server command += " mpirun -np 1 hostname -s > " + tmpFile; } else command = "mpirun -np 1 hostname -s > " + tmpFile; } else command = "mpirun -np 1 -machinefile " + machinesFile + " hostname -s > " + tmpFile; status = system(command.c_str()); if( status == 0 ){ std::ifstream fp(tmpFile.c_str(),std::ios::in); while(fp >> zeronode); } RmTmpFile(tmpFile); return zeronode; } std::string SALOME_ContainerManager::machinesFile(const int nbproc) { std::string tmp; std::string nodesFile = getenv("LIBBATCH_NODEFILE"); std::string machinesFile = Kernel_Utils::GetTmpFileName(); std::ifstream fpi(nodesFile.c_str(),std::ios::in); std::ofstream fpo(machinesFile.c_str(),std::ios::out); _numInstanceMutex.lock(); for(int i=0;i<_nbprocUsed;i++) fpi >> tmp; for(int i=0;i> tmp ) fpo << tmp << std::endl; else throw SALOME_Exception("You need more processors than batch session have allocated for you! Unable to launch the mpi container: "); _nbprocUsed += nbproc; fpi.close(); fpo.close(); _numInstanceMutex.unlock(); return machinesFile; } std::set SALOME_ContainerManager::getpidofprogram(const std::string program) { std::set thepids; std::string tmpFile = Kernel_Utils::GetTmpFileName(); std::string cmd; std::string thepid; cmd = "pidof " + program + " > " + tmpFile; system(cmd.c_str()); std::ifstream fpi(tmpFile.c_str(),std::ios::in); while(fpi >> thepid){ thepids.insert(atoi(thepid.c_str())); } return thepids; } std::string SALOME_ContainerManager::getCommandToRunRemoteProcess(AccessProtocolType protocol, const std::string & hostname, const std::string & username) { std::ostringstream command; switch (protocol) { case rsh: command << "rsh "; if (username != "") { command << "-l " << username << " "; } command << hostname << " "; break; case ssh: command << "ssh "; if (username != "") { command << "-l " << username << " "; } command << hostname << " "; break; case srun: // no need to redefine the user with srun, the job user is taken by default // (note: for srun, user id can be specified with " --uid=") command << "srun -n 1 -N 1 --share --nodelist=" << hostname << " "; break; case pbsdsh: command << "pbsdsh -o -h " << hostname << " "; break; case blaunch: command << "blaunch " << hostname << " "; break; default: throw SALOME_Exception("Unknown protocol"); } return command.str(); } bool SALOME_ContainerManager::checkPaCOParameters(Engines::ContainerParameters & params, std::string resource_selected) { bool result = true; // Step 1 : check ContainerParameters // Check container_name, has to be defined if (std::string(params.container_name.in()) == "") { INFOS("[checkPaCOParameters] You must define a container_name to launch a PaCO++ container"); result = false; } // Check parallelLib std::string parallelLib = params.parallelLib.in(); if (parallelLib != "Mpi" && parallelLib != "Dummy") { INFOS("[checkPaCOParameters] parallelLib is not correctly defined"); INFOS("[checkPaCOParameters] you can chosse between: Mpi and Dummy"); INFOS("[checkPaCOParameters] you entered: " << parallelLib); result = false; } // Check nb_proc if (params.nb_proc <= 0) { INFOS("[checkPaCOParameters] You must define a nb_proc > 0"); result = false; } // Step 2 : check resource_selected Engines::ResourceDefinition_var resource_definition = _ResManager->GetResourceDefinition(resource_selected.c_str()); std::string protocol = resource_definition->protocol.in(); std::string username = resource_definition->username.in(); std::string applipath = resource_definition->applipath.in(); if (protocol == "" || username == "" || applipath == "") { INFOS("[checkPaCOParameters] resource selected is not well defined"); INFOS("[checkPaCOParameters] resource name: " << resource_definition->name.in()); INFOS("[checkPaCOParameters] resource hostname: " << resource_definition->hostname.in()); INFOS("[checkPaCOParameters] resource protocol: " << protocol); INFOS("[checkPaCOParameters] resource username: " << username); INFOS("[checkPaCOParameters] resource applipath: " << applipath); result = false; } return result; } #ifdef WITH_PACO_PARALLEL //============================================================================= /*! CORBA Method: * Start a suitable PaCO++ Parallel Container in a list of machines. * \param params Container Parameters required for the container * \return CORBA container reference. */ //============================================================================= Engines::Container_ptr SALOME_ContainerManager::StartPaCOPPContainer(const Engines::ContainerParameters& params_const, std::string resource_selected) { CORBA::Object_var obj; PaCO::InterfaceManager_var container_proxy; Engines::Container_ptr ret = Engines::Container::_nil(); Engines::ContainerParameters params(params_const); params.resource_params.name = CORBA::string_dup(resource_selected.c_str()); // Step 0 : Check parameters if (!checkPaCOParameters(params, resource_selected)) { INFOS("[StartPaCOPPContainer] check parameters failed ! see logs..."); return ret; } // Step 1 : Starting a new parallel container ! INFOS("[StartPaCOPPContainer] Starting a PaCO++ parallel container"); INFOS("[StartPaCOPPContainer] on resource : " << resource_selected); // Step 2 : Get a MachineFile for the parallel container std::string machine_file_name = _ResManager->getMachineFile(resource_selected, params.nb_proc, params.parallelLib.in()); if (machine_file_name == "") { INFOS("[StartPaCOPPContainer] Machine file generation failed"); return ret; } // Step 3 : starting parallel container proxy std::string command_proxy(""); std::string proxy_machine; try { command_proxy = BuildCommandToLaunchPaCOProxyContainer(params, machine_file_name, proxy_machine); } catch(const SALOME_Exception & ex) { INFOS("[StartPaCOPPContainer] Exception in BuildCommandToLaunchPaCOContainer"); INFOS(ex.what()); return ret; } obj = LaunchPaCOProxyContainer(command_proxy, params, proxy_machine); if (CORBA::is_nil(obj)) { INFOS("[StartPaCOPPContainer] LaunchPaCOContainer for proxy returns NIL !"); return ret; } container_proxy = PaCO::InterfaceManager::_narrow(obj); MESSAGE("[StartPaCOPPContainer] PaCO container proxy is launched"); // Step 4 : starting parallel container nodes std::string command_nodes(""); SALOME_ContainerManager::actual_launch_machine_t nodes_machines; try { command_nodes = BuildCommandToLaunchPaCONodeContainer(params, machine_file_name, nodes_machines, proxy_machine); } catch(const SALOME_Exception & ex) { INFOS("[StarPaCOPPContainer] Exception in BuildCommandToLaunchPaCONodeContainer"); INFOS(ex.what()); return ret; } std::string container_generic_node_name = std::string(params.container_name.in()) + std::string("Node"); bool result = LaunchPaCONodeContainer(command_nodes, params, container_generic_node_name, nodes_machines); if (!result) { INFOS("[StarPaCOPPContainer] LaunchPaCONodeContainer failed !"); // Il faut tuer le proxy try { Engines::Container_var proxy = Engines::Container::_narrow(container_proxy); proxy->Shutdown(); } catch (...) { INFOS("[StarPaCOPPContainer] Exception catched from proxy Shutdown..."); } return ret; } // Step 4 : connecting nodes and the proxy to actually create a parallel container for (int i = 0; i < params.nb_proc; i++) { std::ostringstream tmp; tmp << i; std::string proc_number = tmp.str(); std::string container_node_name = container_generic_node_name + proc_number; std::string theNodeMachine(nodes_machines[i]); std::string containerNameInNS = _NS->BuildContainerNameForNS(container_node_name.c_str(), theNodeMachine.c_str()); obj = _NS->Resolve(containerNameInNS.c_str()); if (CORBA::is_nil(obj)) { INFOS("[StarPaCOPPContainer] CONNECTION FAILED From Naming Service !"); INFOS("[StarPaCOPPContainer] Container name is " << containerNameInNS); return ret; } try { MESSAGE("[StarPaCOPPContainer] Deploying node : " << container_node_name); PaCO::InterfaceParallel_var node = PaCO::InterfaceParallel::_narrow(obj); node->deploy(); MESSAGE("[StarPaCOPPContainer] node " << container_node_name << " is deployed"); } catch(CORBA::SystemException& e) { INFOS("[StarPaCOPPContainer] Exception in deploying node : " << containerNameInNS); INFOS("CORBA::SystemException : " << e); return ret; } catch(CORBA::Exception& e) { INFOS("[StarPaCOPPContainer] Exception in deploying node : " << containerNameInNS); INFOS("CORBA::Exception" << e); return ret; } catch(...) { INFOS("[StarPaCOPPContainer] Exception in deploying node : " << containerNameInNS); INFOS("Unknown exception !"); return ret; } } // Step 5 : starting parallel container try { MESSAGE ("[StarPaCOPPContainer] Starting parallel object"); container_proxy->start(); MESSAGE ("[StarPaCOPPContainer] Parallel object is started"); ret = Engines::Container::_narrow(container_proxy); } catch(CORBA::SystemException& e) { INFOS("Caught CORBA::SystemException. : " << e); } catch(PortableServer::POA::ServantAlreadyActive&) { INFOS("Caught CORBA::ServantAlreadyActiveException"); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(std::exception& exc) { INFOS("Caught std::exception - "<GetResourceDefinition(params.resource_params.name); // Choose hostname std::string hostname; std::ifstream machine_file(machine_file_name.c_str()); std::getline(machine_file, hostname, ' '); size_t found = hostname.find('\n'); if (found!=std::string::npos) hostname.erase(found, 1); // Remove \n proxy_hostname = hostname; MESSAGE("[BuildCommandToLaunchPaCOProxyContainer] machine file name extracted is " << hostname); // Remote execution bool remote_execution = false; if (hostname != std::string(Kernel_Utils::GetHostname())) { MESSAGE("[BuildCommandToLaunchPaCOProxyContainer] remote machine case detected !"); remote_execution = true; } // Log environnement std::string log_type(""); char * get_val = getenv("PARALLEL_LOG"); if (get_val) log_type = get_val; // Generating the command std::string command_begin(""); std::string command_end(""); std::ostringstream command; LogConfiguration(log_type, "proxy", container_name, hostname, command_begin, command_end); command << command_begin; // Adding connection command // We can only have a remote execution with // a SALOME application if (remote_execution) { ASSERT(getenv("NSHOST")); ASSERT(getenv("NSPORT")); command << resource_definition->protocol.in(); command << " -l "; command << resource_definition->username.in(); command << " " << hostname; command << " " << resource_definition->applipath.in(); command << "/runRemote.sh "; command << getenv("NSHOST") << " "; // hostname of CORBA name server command << getenv("NSPORT") << " "; // port of CORBA name server } command << exe_name; command << " " << container_name; command << " Dummy"; command << " " << hostname; command << " " << nb_proc_str; command << " -"; AddOmninamesParams(command); // Final command command << command_end; MESSAGE("[BuildCommandToLaunchPaCOProxyContainer] Command is: " << command.str()); return command.str(); } std::string SALOME_ContainerManager::BuildCommandToLaunchPaCONodeContainer(const Engines::ContainerParameters& params, const std::string & machine_file_name, SALOME_ContainerManager::actual_launch_machine_t & vect_machine, const std::string & proxy_hostname) { // Name of exe std::string exe_name = "SALOME_ParallelContainerNode"; exe_name += params.parallelLib.in(); std::string container_name = params.container_name.in(); // Convert nb_proc in string std::ostringstream nb_proc_stream; nb_proc_stream << params.nb_proc; // Get resource definition Engines::ResourceDefinition_var resource_definition = _ResManager->GetResourceDefinition(params.resource_params.name); // Log environnement std::string log_type(""); char * get_val = getenv("PARALLEL_LOG"); if (get_val) log_type = get_val; // Now the command is different according to paralleLib std::ostringstream command_nodes; std::ifstream machine_file(machine_file_name.c_str()); if (std::string(params.parallelLib.in()) == "Dummy") { for (int i= 0; i < params.nb_proc; i++) { // Choose hostname std::string hostname; std::getline(machine_file, hostname); MESSAGE("[BuildCommandToLaunchPaCONodeContainer] machine file name extracted is " << hostname); // Remote execution bool remote_execution = false; if (hostname != std::string(Kernel_Utils::GetHostname())) { MESSAGE("[BuildCommandToLaunchPaCONodeContainer] remote machine case detected !"); remote_execution = true; } // For each node we have a new command // Generating the command std::ostringstream command_node_stream; std::string command_node_begin(""); std::string command_node_end(""); std::ostringstream node_number; node_number << i; std::string container_node_name = container_name + node_number.str(); LogConfiguration(log_type, "node", container_node_name, hostname, command_node_begin, command_node_end); // Adding connection command // We can only have a remote execution with // a SALOME application if (remote_execution) { ASSERT(getenv("NSHOST")); ASSERT(getenv("NSPORT")); command_node_stream << resource_definition->protocol.in(); command_node_stream << " -l "; command_node_stream << resource_definition->username.in(); command_node_stream << " " << hostname; command_node_stream << " " << resource_definition->applipath.in(); command_node_stream << "/runRemote.sh "; command_node_stream << getenv("NSHOST") << " "; // hostname of CORBA name server command_node_stream << getenv("NSPORT") << " "; // port of CORBA name server } command_node_stream << exe_name; command_node_stream << " " << container_name; command_node_stream << " " << params.parallelLib.in(); command_node_stream << " " << proxy_hostname; command_node_stream << " " << node_number.str(); command_node_stream << " -"; AddOmninamesParams(command_node_stream); command_nodes << command_node_begin << command_node_stream.str() << command_node_end; vect_machine.push_back(hostname); } } else if (std::string(params.parallelLib.in()) == "Mpi") { // Choose hostname std::string hostname; std::getline(machine_file, hostname, ' '); MESSAGE("[BuildCommandToLaunchPaCONodeContainer] machine file name extracted is " << hostname); // Remote execution bool remote_execution = false; if (hostname != std::string(Kernel_Utils::GetHostname())) { MESSAGE("[BuildCommandToLaunchPaCONodeContainer] remote machine case detected !"); remote_execution = true; } // In case of Mpi and Remote, we copy machine_file in the applipath // scp mpi_machine_file user@machine:Path std::ostringstream command_remote_stream; std::string::size_type last = machine_file_name.find_last_of("/"); if (last == std::string::npos) last = -1; std::string protocol = resource_definition->protocol.in(); if (protocol == "rsh") command_remote_stream << "rcp "; else command_remote_stream << "scp "; command_remote_stream << machine_file_name << " "; command_remote_stream << resource_definition->username.in() << "@"; command_remote_stream << hostname << ":" << resource_definition->applipath.in(); command_remote_stream << "/" << machine_file_name.substr(last+1); int status = system(command_remote_stream.str().c_str()); if (status == -1) { INFOS("copy of the MPI machine file failed ! - sorry !"); return ""; } // Generating the command std::string command_begin(""); std::string command_end(""); LogConfiguration(log_type, "nodes", container_name, hostname, command_begin, command_end); command_nodes << command_begin; // Adding connection command // We can only have a remote execution with // a SALOME application if (remote_execution) { ASSERT(getenv("NSHOST")); ASSERT(getenv("NSPORT")); command_nodes << resource_definition->protocol.in(); command_nodes << " -l "; command_nodes << resource_definition->username.in(); command_nodes << " " << hostname; command_nodes << " " << resource_definition->applipath.in(); command_nodes << "/runRemote.sh "; command_nodes << getenv("NSHOST") << " "; // hostname of CORBA name server command_nodes << getenv("NSPORT") << " "; // port of CORBA name server } if (std::string(resource_definition->mpiImpl.in()) == "lam") { command_nodes << "mpiexec -ssi boot "; command_nodes << "-machinefile " << machine_file_name << " "; command_nodes << "-n " << params.nb_proc; } else { command_nodes << "mpirun -np " << params.nb_proc; } command_nodes << " " << exe_name; command_nodes << " " << container_name; command_nodes << " " << params.parallelLib.in(); command_nodes << " " << proxy_hostname; command_nodes << " -"; AddOmninamesParams(command_nodes); // We don't put hostname, because nodes are registered in the resource of the proxy for (int i= 0; i < params.nb_proc; i++) vect_machine.push_back(proxy_hostname); command_nodes << command_end; } return command_nodes.str(); } void SALOME_ContainerManager::LogConfiguration(const std::string & log_type, const std::string & exe_type, const std::string & container_name, const std::string & hostname, std::string & begin, std::string & end) { if(log_type == "xterm") { begin = "xterm -e \"export LD_LIBRARY_PATH=$LD_LIBRARY_PATH; export PATH=$PATH;"; end = "\"&"; } else if(log_type == "xterm_debug") { begin = "xterm -e \"export LD_LIBRARY_PATH=$LD_LIBRARY_PATH; export PATH=$PATH;"; end = "; cat \" &"; } else { // default into a file... std::string logFilename = "/tmp/" + container_name + "_" + hostname + "_" + exe_type + "_"; logFilename += std::string(getenv("USER")) + ".log"; end = " > " + logFilename + " 2>&1 & "; } } CORBA::Object_ptr SALOME_ContainerManager::LaunchPaCOProxyContainer(const std::string& command, const Engines::ContainerParameters& params, const std::string & hostname) { PaCO::InterfaceManager_ptr container_proxy = PaCO::InterfaceManager::_nil(); MESSAGE("[LaunchPaCOProxyContainer] Launch command"); int status = system(command.c_str()); if (status == -1) { INFOS("[LaunchPaCOProxyContainer] failed : system command status -1"); return container_proxy; } else if (status == 217) { INFOS("[LaunchPaCOProxyContainer] failed : system command status 217"); return container_proxy; } int count = TIME_OUT_TO_LAUNCH_CONT; CORBA::Object_var obj = CORBA::Object::_nil(); std::string containerNameInNS = _NS->BuildContainerNameForNS(params.container_name.in(), hostname.c_str()); MESSAGE("[LaunchParallelContainer] Waiting for Parallel Container proxy : " << containerNameInNS); while (CORBA::is_nil(obj) && count) { sleep(1); count--; obj = _NS->Resolve(containerNameInNS.c_str()); } try { container_proxy = PaCO::InterfaceManager::_narrow(obj); } catch(CORBA::SystemException& e) { INFOS("[StarPaCOPPContainer] Exception in _narrow after LaunchParallelContainer for proxy !"); INFOS("CORBA::SystemException : " << e); return container_proxy; } catch(CORBA::Exception& e) { INFOS("[StarPaCOPPContainer] Exception in _narrow after LaunchParallelContainer for proxy !"); INFOS("CORBA::Exception" << e); return container_proxy; } catch(...) { INFOS("[StarPaCOPPContainer] Exception in _narrow after LaunchParallelContainer for proxy !"); INFOS("Unknown exception !"); return container_proxy; } if (CORBA::is_nil(container_proxy)) { INFOS("[StarPaCOPPContainer] PaCO::InterfaceManager::_narrow returns NIL !"); return container_proxy; } return obj._retn(); } //============================================================================= /*! This method launches the parallel container. * It will may be placed on the ressources manager. * * \param command to launch * \param container's parameters * \param name of the container * * \return CORBA container reference */ //============================================================================= bool SALOME_ContainerManager::LaunchPaCONodeContainer(const std::string& command, const Engines::ContainerParameters& params, const std::string& name, SALOME_ContainerManager::actual_launch_machine_t & vect_machine) { INFOS("[LaunchPaCONodeContainer] Launch command"); int status = system(command.c_str()); if (status == -1) { INFOS("[LaunchPaCONodeContainer] failed : system command status -1"); return false; } else if (status == 217) { INFOS("[LaunchPaCONodeContainer] failed : system command status 217"); return false; } INFOS("[LaunchPaCONodeContainer] Waiting for the nodes of the parallel container"); // We are waiting all the nodes for (int i = 0; i < params.nb_proc; i++) { CORBA::Object_var obj = CORBA::Object::_nil(); std::string theMachine(vect_machine[i]); // Name of the node std::ostringstream tmp; tmp << i; std::string proc_number = tmp.str(); std::string container_node_name = name + proc_number; std::string containerNameInNS = _NS->BuildContainerNameForNS((char*) container_node_name.c_str(), theMachine.c_str()); INFOS("[LaunchPaCONodeContainer] Waiting for Parallel Container node " << containerNameInNS << " on " << theMachine); int count = TIME_OUT_TO_LAUNCH_CONT; while (CORBA::is_nil(obj) && count) { sleep(1) ; count-- ; obj = _NS->Resolve(containerNameInNS.c_str()); } if (CORBA::is_nil(obj)) { INFOS("[LaunchPaCONodeContainer] Launch of node failed (or not found) !"); return false; } } return true; } #else Engines::Container_ptr SALOME_ContainerManager::StartPaCOPPContainer(const Engines::ContainerParameters& params, std::string resource_selected) { Engines::Container_ptr ret = Engines::Container::_nil(); INFOS("[StarPaCOPPContainer] is disabled !"); INFOS("[StarPaCOPPContainer] recompile SALOME Kernel to enable PaCO++ parallel extension"); return ret; } std::string SALOME_ContainerManager::BuildCommandToLaunchPaCOProxyContainer(const Engines::ContainerParameters& params, std::string machine_file_name, std::string & proxy_hostname) { return ""; } std::string SALOME_ContainerManager::BuildCommandToLaunchPaCONodeContainer(const Engines::ContainerParameters& params, const std::string & machine_file_name, SALOME_ContainerManager::actual_launch_machine_t & vect_machine, const std::string & proxy_hostname) { return ""; } void SALOME_ContainerManager::LogConfiguration(const std::string & log_type, const std::string & exe_type, const std::string & container_name, const std::string & hostname, std::string & begin, std::string & end) { } CORBA::Object_ptr SALOME_ContainerManager::LaunchPaCOProxyContainer(const std::string& command, const Engines::ContainerParameters& params, const std::string& hostname) { CORBA::Object_ptr ret = CORBA::Object::_nil(); return ret; } bool SALOME_ContainerManager::LaunchPaCONodeContainer(const std::string& command, const Engines::ContainerParameters& params, const std::string& name, SALOME_ContainerManager::actual_launch_machine_t & vect_machine) { return false; } #endif salome-kernel-6.5.0/src/Container/SALOME_ContainerManager.hxx000077500000000000000000000144241177004724000240110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_CONTAINERMANAGER_HXX__ #define __SALOME_CONTAINERMANAGER_HXX__ #include "SALOME_Container.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_Component) #include CORBA_CLIENT_HEADER(SALOME_ContainerManager) #include "SALOME_ResourcesManager.hxx" #include "SALOME_LoadRateManager.hxx" #include #include class SALOME_NamingService; class CONTAINER_EXPORT SALOME_ContainerManager: public POA_Engines::ContainerManager { public: SALOME_ContainerManager(CORBA::ORB_ptr orb, PortableServer::POA_var poa, SALOME_ResourcesManager *rm, SALOME_NamingService *ns); ~SALOME_ContainerManager(); // Corba Methods Engines::Container_ptr GiveContainer(const Engines::ContainerParameters& params); void ShutdownContainers(); // C++ Methods void Shutdown(); static const char *_ContainerManagerNameInNS; protected: // C++ methods Engines::Container_ptr FindContainer(const Engines::ContainerParameters& params, const Engines::ResourceList& possibleResources); Engines::Container_ptr FindContainer(const Engines::ContainerParameters& params, const std::string& resource); std::string BuildCommandToLaunchRemoteContainer(const std::string & resource_name, const Engines::ContainerParameters& params, const std::string& container_exe="SALOME_Container"); std::string BuildCommandToLaunchLocalContainer(const Engines::ContainerParameters& params, const std::string& machinesFile, const std::string& container_exe="SALOME_Container"); std::string BuildTempFileToLaunchRemoteContainer(const std::string& resource_name, const Engines::ContainerParameters& params) throw(SALOME_Exception); void RmTmpFile(std::string& tmpFile); void AddOmninamesParams(std::string& command) const; void AddOmninamesParams(std::ostringstream& oss) const; void AddOmninamesParams(std::ofstream& fileStream) const; std::string BuildTemporaryFileName() const; std::string GetMPIZeroNode(const std::string machine, const std::string machinesFile); std::string machinesFile(const int nbproc); std::set getpidofprogram(const std::string program); std::string getCommandToRunRemoteProcess(AccessProtocolType protocol, const std::string & hostname, const std::string & username); Engines::Container_ptr LaunchContainer(const Engines::ContainerParameters& params, const std::string & resource_selected, const std::string & hostname, const std::string & machFile, const std::string & containerNameInNS); CORBA::ORB_var _orb; PortableServer::POA_var _poa; SALOME_ResourcesManager *_ResManager; SALOME_NamingService *_NS; //! attribute that contains current tmp files generated std::string _TmpFileName; //! contains the rsh or ssh command to access directly to machine. // Only used by this->RmTmpFile in case of a remote launch. std::string _CommandForRemAccess; //! different behaviour if $APPLI exists (SALOME Application) bool _isAppliSalomeDefined; //! attribute that contains the number of processes used in batch mode by MPI containers int _nbprocUsed; static omni_mutex _numInstanceMutex ; // lib and instance protection pid_t _pid_mpiServer; // Begin of PacO++ Parallel extension typedef std::vector actual_launch_machine_t; bool checkPaCOParameters(Engines::ContainerParameters & params, std::string resource_selected); Engines::Container_ptr StartPaCOPPContainer(const Engines::ContainerParameters& params, std::string resource_selected); std::string BuildCommandToLaunchPaCOProxyContainer(const Engines::ContainerParameters& params, std::string machine_file_name, std::string & proxy_hostname); std::string BuildCommandToLaunchPaCONodeContainer(const Engines::ContainerParameters& params, const std::string & machine_file_name, SALOME_ContainerManager::actual_launch_machine_t & vect_machine, const std::string & proxy_hostname); void LogConfiguration(const std::string & log_type, const std::string & exe_type, const std::string & container_name, const std::string & hostname, std::string & begin, std::string & end); CORBA::Object_ptr LaunchPaCOProxyContainer(const std::string& command, const Engines::ContainerParameters& params, const std::string& hostname); bool LaunchPaCONodeContainer(const std::string& command, const Engines::ContainerParameters& params, const std::string& name, SALOME_ContainerManager::actual_launch_machine_t & vect_machine); // End of PaCO++ Parallel extension }; #endif salome-kernel-6.5.0/src/Container/SALOME_ContainerPy.py000077500000000000000000000317071177004724000226530ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Container : implementation of container and engine for Kernel # File : SALOME_ContainerPy.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_ContainerPy.py,v 1.12.2.2.14.3.2.1 2012-04-12 14:05:03 vsr Exp $ # import os import sys import string from omniORB import CORBA, PortableServer import SALOMEDS import Engines, Engines__POA from SALOME_NamingServicePy import * from SALOME_ComponentPy import * from SALOME_utilities import * from Utils_Identity import getShortHostName from launchConfigureParser import verbose #============================================================================= #define an implementation of the container interface for the container implemented in Python class SALOME_ContainerPy_i (Engines__POA.Container): _orb = None _poa = None _numInstance = 0 _listInstances_map = {} #------------------------------------------------------------------------- def __init__(self, orb, poa, containerName): MESSAGE( "SALOME_ContainerPy_i::__init__" ) self._orb = orb self._poa = poa myMachine=getShortHostName() Container_path = "/Containers/" + myMachine + "/" + containerName self._containerName = Container_path if verbose(): print "container name ",self._containerName naming_service = SALOME_NamingServicePy_i(self._orb) self._naming_service = naming_service 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=getShortHostName() theContainer = "/Containers/" + myMachine + "/" + 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 new launch" ) return container #shstr = os.getenv( "PWD" ) + "/" #shstr += "runSession ./SALOME_ContainerPy.py " shstr = os.getenv("KERNEL_ROOT_DIR") + "/bin/salome/SALOME_ContainerPy.py "; #shstr = "runSession SALOME_ContainerPy.py " shstr += ContainerName # mpv: fix for SAL4731 - allways create new file to write log of server num = 1 fileName = "" while 1: fileName = "/tmp/"+ContainerName+"_%i.log"%num if not os.path.exists(fileName): break num += 1 pass shstr += " > " shstr += fileName shstr += " 2>&1 &" #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 instance(self, nameToRegister, componentName): MESSAGE( "SALOME_ContainerPy_i::instance " + str(nameToRegister) + ' ' + str(componentName) ) self._numInstance = self._numInstance +1 instanceName = nameToRegister + "_inst_" + `self._numInstance` component=__import__(componentName) factory=getattr(component,componentName) comp_i=factory(self._orb, self._poa, self._this(), self._containerName, instanceName, nameToRegister) MESSAGE( "SALOME_ContainerPy_i::instance : component created") comp_o = comp_i._this() return comp_o #------------------------------------------------------------------------- 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 import_component(self, componentName): MESSAGE( "SALOME_Container_i::import_component" ) reason = "" try: if verbose(): print "try import %s" % componentName # try import component module=__import__(componentName) if verbose(): print "import %s is done successfully" % componentName # if import successfully, check that component is loadable if not hasattr(module, componentName): reason = "module %s is not loadable" % componentName print reason pass pass except: import traceback print "cannot import %s" % componentName traceback.print_exc() reason = "cannot import %s" % componentName return reason #------------------------------------------------------------------------- def load_component_Library(self, componentName): MESSAGE( "SALOME_ContainerPy_i::load_component_Library " + str(componentName) ) ret = 0 instanceName = componentName + "_inst_" + `self._numInstance` interfaceName = componentName reason = self.import_component(componentName) return reason == "", reason #------------------------------------------------------------------------- def create_component_instance_env(self, componentName, studyId, env): return self.create_component_instance(componentName, studyId), "" def create_component_instance(self, componentName, studyId): MESSAGE( "SALOME_ContainerPy_i::create_component_instance ==> " + str(componentName) + ' ' + str(studyId) ) if studyId < 0: MESSAGE( "Study ID is lower than 0!" ) return None else: self._numInstance = self._numInstance +1 instanceName = componentName + "_inst_" + `self._numInstance` comp_iors="" try: component=__import__(componentName) factory=getattr(component,componentName) comp_i=factory(self._orb, self._poa, self._this(), self._containerName, instanceName, componentName) MESSAGE( "SALOME_Container_i::create_component_instance : OK") comp_o = comp_i._this() self._listInstances_map[instanceName] = comp_i except: import traceback traceback.print_exc() MESSAGE( "SALOME_Container_i::create_component_instance : NOT OK") return comp_o #------------------------------------------------------------------------- def find_component_instance(self, registeredName, studyId): anEngine = None keysList = self._listInstances_map.keys() i = 0 while i < len(keysList): instance = keysList[i] if find(instance,registeredName) == 0: anEngine = self._listInstances_map[instance] if studyId == anEngine.getStudyId(): return anEngine._this() i = i + 1 return anEngine._this() #------------------------------------------------------------------------- def remove_impl(self, component): MESSAGE( "SALOME_ContainerPy_i::remove_impl" ) instanceName = component._get_instanceName() MESSAGE( "unload component " + str(instanceName) ) self._listInstances_map.remove(instanceName) component.destroy() self._naming_service.Destroy_Name(str(instanceName)) #------------------------------------------------------------------------- def finalize_removal(self): MESSAGE( "SALOME_ContainerPy_i::finalize_removal" ) return None #------------------------------------------------------------------------- def ping(self): MESSAGE( "SALOME_ContainerPy_i::ping() pid " + str(os.getpid()) ) return None #------------------------------------------------------------------------- def getPID(self): return os.getpid() #------------------------------------------------------------------------- def _get_name(self): MESSAGE( "SALOME_ContainerPy_i::_get_name" ) return self._containerName #------------------------------------------------------------------------- def getHostName(self): MESSAGE( "SALOME_ContainerPy_i::_get_MachineName" ) self._machineName = "localhost" return self._machineName #------------------------------------------------------------------------- def _get_machineName(self): MESSAGE( "SALOME_ContainerPy_i::_get_MachineName" ) self._machineName = "localhost" return self._machineName #------------------------------------------------------------------------- def Shutdown(self): self._naming_service.Destroy_Name(self._containerName); self._naming_service.Destroy_FullDirectory(self._containerName); self._orb.shutdown(0) pass def _get_logfilename(self): return self._logfilename def _set_logfilename(self,logfilename): self._logfilename=logfilename def _get_workingdir(self): return os.getcwd() #============================================================================= if __name__ == "__main__": # change the stdout buffering to line buffering (same as C++ cout buffering) sys.stdout=os.fdopen(1,"w",1) #initialise the ORB and find the root POA if verbose():print "Starting ",sys.argv[1] orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID) poa = orb.resolve_initial_references("RootPOA") if verbose():print "ORB and POA initialized" #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) if verbose():print "SALOME_ContainerPy_i instance created ",cpy_i cpy_o = cpy_i._this() if verbose():print "SALOME_ContainerPy_i instance activated ",cpy_o sys.stdout.flush() sys.stderr.flush() #activate the POA poaManager = poa._get_the_POAManager() poaManager.activate() #Block for ever orb.run() if verbose():print "SALOME_ContainerPy_i shutdown" salome-kernel-6.5.0/src/Container/SALOME_Container_SignalsHandler.cxx000077500000000000000000000040051177004724000254610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include #include #include #include "utilities.h" // CCRT porting // #include "CASCatch_SignalsHandler.h" // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC extern "C" void HandleServerSideSignals(CORBA::ORB_ptr theORB) { // CCRT porting // CASCatch_SignalsHandler aSignalsHandler; try { theORB->run(); // CCRT porting // }catch(CORBA::SystemException&){ // Handle(Standard_Failure) aFail = Standard_Failure::Caught(); // throw std::runtime_error(aFail->GetMessageString()); }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(std::exception& exc){ INFOS("Caught std::exception - "< #include CORBA_SERVER_HEADER(SALOME_Component) #include CORBA_SERVER_HEADER(SALOME_PyNode) #include #include #include #ifndef WIN32 #include #endif #include #include #include #include #include class SALOME_NamingService; class CONTAINER_EXPORT Engines_Container_i: public virtual POA_Engines::Container, public virtual PortableServer::ServantBase { public: Engines_Container_i(); Engines_Container_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char * containerName , int argc, char* argv[], bool activAndRegist = true, bool isServantAloneInProcess = true); virtual ~Engines_Container_i(); // --- CORBA methods virtual bool load_component_Library(const char* componentName, CORBA::String_out reason); virtual Engines::EngineComponent_ptr create_component_instance( const char* componentName, CORBA::Long studyId); // 0 for multiStudy virtual Engines::EngineComponent_ptr create_component_instance_env( const char* componentName, CORBA::Long studyId, // 0 for multiStudy const Engines::FieldsDict& env, CORBA::String_out reason); Engines::EngineComponent_ptr find_component_instance( const char* registeredName, CORBA::Long studyId); // 0 for multiStudy Engines::EngineComponent_ptr load_impl(const char* nameToRegister, const char* componentName); void remove_impl(Engines::EngineComponent_ptr component_i); void finalize_removal(); virtual void ping(); char* name(); char* workingdir(); char* logfilename(); void logfilename(const char* name); virtual void Shutdown(); char* getHostName(); CORBA::Long getPID(); //! Kill current container bool Kill_impl(); Engines::fileRef_ptr createFileRef(const char* origFileName); Engines::fileTransfer_ptr getFileTransfer(); virtual Engines::Salome_file_ptr createSalome_file(const char* origFileName); void copyFile(Engines::Container_ptr container, const char* remoteFile, const char* localFile); Engines::PyNode_ptr createPyNode(const char* nodeName, const char* code); Engines::PyScriptNode_ptr createPyScriptNode(const char* nodeName, const char* code); // --- local C++ methods Engines::EngineComponent_ptr find_or_create_instance( std::string genericRegisterName, std::string componentLibraryName); bool load_component_CppImplementation(const char* componentName,std::string& reason); bool load_component_PythonImplementation(const char* componentName,std::string& reason); bool load_component_ExecutableImplementation(const char* componentName,std::string& reason); Engines::EngineComponent_ptr createPythonInstance(std::string CompName, int studyId, std::string& error); Engines::EngineComponent_ptr createExecutableInstance(std::string CompName, int studyId, const Engines::FieldsDict& env, std::string& error); Engines::EngineComponent_ptr createInstance(std::string genericRegisterName, void *handle, int studyId, std::string& error); static bool isPythonContainer(const char* ContainerName); static void decInstanceCnt(std::string genericRegisterName); //??? char* machineName(); // --- needed for parallel components, Numerical Platon int getArgc() { return _argc; } char **getArgv() { return _argv; } void registerTemporaryFile( const std::string& fileName ); void unregisterTemporaryFile( const std::string& fileName ); void clearTemporaryFiles(); protected: static std::map _cntInstances_map; static std::map _library_map; // library names, loaded static std::map _toRemove_map;// library names to remove static omni_mutex _numInstanceMutex ; // lib and instance protection bool _isSupervContainer; SALOME_NamingService *_NS ; std::string _library_path; std::string _containerName; std::string _logfilename; CORBA::ORB_var _orb; PortableServer::POA_var _poa; PortableServer::ObjectId * _id ; int _numInstance ; std::map _listInstances_map; std::map _fileRef_map; std::map _Salome_file_map; std::list _tmp_files; Engines::fileTransfer_var _fileTransfer; int _argc ; char** _argv ; long _pid; bool _isServantAloneInProcess; }; #endif salome-kernel-6.5.0/src/Container/SALOME_FileRef_i.cxx000077500000000000000000000133371177004724000224150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_FileRef_i.cxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_FileRef_i.cxx,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:03 vsr Exp $ // #include "SALOME_FileRef_i.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include //============================================================================= /*! * Default constructor, not for use */ //============================================================================= fileRef_i::fileRef_i() { ASSERT(0); } //============================================================================= /*! * Constructor to use */ //============================================================================= fileRef_i::fileRef_i(Engines::Container_ptr container, const char* origFileName) { MESSAGE("fileRef_i::fileRef_i "<< origFileName); _container = Engines::Container::_duplicate(container); _origFileName = origFileName; _machine = Kernel_Utils::GetHostname(); #if defined(_DEBUG_) || defined(_DEBUG) int OK = addRef(_machine.c_str(), _origFileName.c_str()); SCRUTE(OK); #else addRef(_machine.c_str(), _origFileName.c_str()); #endif } //============================================================================= /*! * Destructor */ //============================================================================= fileRef_i::~fileRef_i() { MESSAGE("fileRef_i::~fileRef_i"); } //============================================================================= /*! * CORBA method: * \return the file name (absolute path) on the computer which runs the * container server */ //============================================================================= char* fileRef_i::origFileName() { MESSAGE("fileRef_i::origFileName " << _origFileName); return CORBA::string_dup(_origFileName.c_str()); } //============================================================================= /*! * CORBA method: * \return the hostname of the computer which runs the container server */ //============================================================================= char* fileRef_i::refMachine() { MESSAGE("fileRef_i::refMachine " << _machine); return CORBA::string_dup(_machine.c_str()); } //============================================================================= /*! * CORBA method: * \return the container reference */ //============================================================================= Engines::Container_ptr fileRef_i::getContainer() { MESSAGE("fileRef_i::getContainer"); Engines::Container_var theContainer = Engines::Container::_duplicate(_container); return theContainer._retn(); } //============================================================================= /*! * CORBA method: after a file transfer on a client computer, registers * hostname of client and file path of the copied file. * \param machine client hostname * \param fileName asolute path of the transfered file on client computer */ //============================================================================= CORBA::Boolean fileRef_i::addRef(const char* machine, const char* fileName) { MESSAGE("fileRef_i::addRef " << machine << " " << fileName); std::string theMachine = machine; std::string theFileName = fileName; if (theFileName[0] != '/') { INFOS("destination file path must be absolute, begining with '/'"); return 0; } if (theMachine.empty()) { INFOS("provide a hostname for the copy destination"); return 0; } if (! _copies[theMachine].empty()) { INFOS("there is already a copy on " << theMachine << " under the path " << _copies[theMachine] << " new ref not added! "); return 0; } _copies[theMachine] = theFileName; return 1; } //============================================================================= /*! * CORBA method: check if a copy of the file referenced by fileRef is * available on the client computer. * \param machine hostname of the client computer * \return path of the copy on the client computer, if the copy exists, * else empty string */ //============================================================================= char* fileRef_i::getRef(const char* machine) { MESSAGE("fileRef_i::getRef "<< machine); std::string theMachine = machine; std::string theFileName = _copies[theMachine]; if (_copies[theMachine].empty()) { MESSAGE("no copy of " << _machine << _origFileName << " available on " << theMachine); } else { MESSAGE("a copy of " << _machine << _origFileName << "is available on " << theMachine << _copies[theMachine]); } return CORBA::string_dup(_copies[theMachine].c_str()); } salome-kernel-6.5.0/src/Container/SALOME_FileRef_i.hxx000077500000000000000000000037551177004724000224250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_FileRef_i.hxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_FileRef_i.hxx,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:03 vsr Exp $ // #ifndef _SALOME_FILEREF_I_HXX_ #define _SALOME_FILEREF_I_HXX_ #include "SALOME_Container.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Component) #include #include class CONTAINER_EXPORT fileRef_i: public virtual POA_Engines::fileRef, public virtual PortableServer::ServantBase { public: fileRef_i(); fileRef_i(Engines::Container_ptr container, const char* origFileName); virtual ~fileRef_i(); char* origFileName(); char* refMachine(); Engines::Container_ptr getContainer(); CORBA::Boolean addRef(const char* machine, const char* fileName); char* getRef(const char* machine); protected: Engines::Container_var _container; std::string _origFileName; std::string _machine; std::map _copies; }; #endif salome-kernel-6.5.0/src/Container/SALOME_FileTransfer_i.cxx000077500000000000000000000130361177004724000234610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_FileTransfer_i.cxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/SALOME_FileTransfer_i.cxx,v 1.5.2.2.20.2.12.1 2012-04-12 14:05:03 vsr Exp $ // #include "SALOME_FileTransfer_i.hxx" #include "utilities.h" /*! \class fileTransfer_i \brief A class to manage file transfer in SALOME */ //============================================================================= /*! * Default constructor, */ //============================================================================= fileTransfer_i::fileTransfer_i() { MESSAGE("fileTransfer_i::fileTransfer_i"); _fileKey=1; } //============================================================================= /*! * Destructor */ //============================================================================= fileTransfer_i::~fileTransfer_i() { MESSAGE("fileTransfer_i::~fileTransfer_i"); } //============================================================================= /*! \brief open the given file * * CORBA method: try to open the file. If the file is readable, return * a positive integer else return 0; * \param fileName path to the file to be transfered * \return fileId = positive integer > 0 if open OK. */ //============================================================================= CORBA::Long fileTransfer_i::open(const char* fileName) { MESSAGE(" fileTransfer_i::open " << fileName); int aKey = _fileKey++; _ctr=0; FILE* fp; if ((fp = fopen(fileName,"rb")) == NULL) { INFOS("file " << fileName << " is not readable"); return 0; } _fileAccess[aKey] = fp; return aKey; } //============================================================================= /*! \brief close a file * * CORBA method: close the file associated to the fileId given at open. * \param fileId got in return from open method */ //============================================================================= void fileTransfer_i::close(CORBA::Long fileId) { MESSAGE("fileTransfer_i::close"); FILE* fp; if (! (fp = _fileAccess[fileId]) ) { INFOS(" no FILE structure associated to fileId " <replace(nbRed, nbRed, buf, 1); // 1 means give ownership return aBlock; } /*! \brief open the given file in write mode (for copy) * * CORBA method: try to open the file. If the file is writable, * return a positive integer else return 0; * \param fileName path to the file to be transfered * \return fileId = positive integer > 0 if open OK. */ CORBA::Long fileTransfer_i::openW(const char* fileName) { MESSAGE(" fileTransfer_i::openW " << fileName); int aKey = _fileKey++; _ctr=0; FILE* fp; if ((fp = fopen(fileName,"wb")) == NULL) { INFOS("file " << fileName << " is not writable"); return 0; } _fileAccess[aKey] = fp; return aKey; } /*! \brief put a data block for copy into a file * * CORBA method: put a block of data into the file associated to the fileId * given at openW. * \param fileId got in return from openW method * \param block an octet sequence to copy into opened file */ void fileTransfer_i::putBlock(CORBA::Long fileId, const Engines::fileBlock& block) { MESSAGE("fileTransfer_i::putBlock"); FILE* fp; if (! (fp = _fileAccess[fileId]) ) { INFOS(" no FILE structure associated to fileId " < #include CORBA_SERVER_HEADER(SALOME_Component) #include #include class CONTAINER_EXPORT fileTransfer_i: public virtual POA_Engines::fileTransfer, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { public: fileTransfer_i(); virtual ~fileTransfer_i(); CORBA::Long open(const char* fileName); void close(CORBA::Long fileId); Engines::fileBlock* getBlock(CORBA::Long fileId); CORBA::Long openW(const char* fileName); void putBlock(CORBA::Long fileId, const Engines::fileBlock& block); protected: int _fileKey; std::map _fileAccess; int _ctr; }; #endif salome-kernel-6.5.0/src/Container/SALOME_PyNode.py000077500000000000000000000101051177004724000216030ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : SALOME_PyNode.py # Author : Christian CAREMOLI, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Container/Attic/SALOME_PyNode.py,v 1.1.2.2.14.6.12.1 2012-04-12 14:05:03 vsr Exp $ # import sys,traceback,string import linecache import cPickle import Engines__POA import SALOME__POA import SALOME class Generic(SALOME__POA.GenericObj): """A Python implementation of the GenericObj CORBA IDL""" def __init__(self,poa): self.poa=poa self.cnt=1 def Register(self): self.cnt+=1 def UnRegister(self): self.cnt-=1 if self.cnt <= 0: oid=self.poa.servant_to_id(self) self.poa.deactivate_object(oid) def Destroy(self): print "WARNING SALOME::GenericObj::Destroy() function is obsolete! Use UnRegister() instead." self.UnRegister() class PyNode_i (Engines__POA.PyNode,Generic): """The implementation of the PyNode CORBA IDL""" def __init__(self, nodeName,code,poa,my_container): """Initialize the node : compilation in the local context""" Generic.__init__(self,poa) self.nodeName=nodeName self.code=code self.my_container=my_container._container linecache.cache[nodeName]=0,None,string.split(code,'\n'),nodeName ccode=compile(code,nodeName,'exec') self.context={} self.context["my_container"] = self.my_container exec ccode in self.context def execute(self,funcName,argsin): """Execute the function funcName found in local context with pickled args (argsin)""" try: argsin,kws=cPickle.loads(argsin) func=self.context[funcName] argsout=func(*argsin,**kws) argsout=cPickle.dumps(argsout,-1) return argsout except: exc_typ,exc_val,exc_fr=sys.exc_info() l=traceback.format_exception(exc_typ,exc_val,exc_fr) raise SALOME.SALOME_Exception(SALOME.ExceptionStruct(SALOME.BAD_PARAM,"".join(l),"PyNode: %s, function: %s" % (self.nodeName,funcName),0)) class PyScriptNode_i (Engines__POA.PyScriptNode,Generic): """The implementation of the PyScriptNode CORBA IDL that executes a script""" def __init__(self, nodeName,code,poa,my_container): """Initialize the node : compilation in the local context""" Generic.__init__(self,poa) self.nodeName=nodeName self.code=code self.my_container=my_container._container linecache.cache[nodeName]=0,None,string.split(code,'\n'),nodeName self.ccode=compile(code,nodeName,'exec') self.context={} self.context["my_container"] = self.my_container def execute(self,outargsname,argsin): """Execute the script stored in attribute ccode with pickled args (argsin)""" try: argsname,kws=cPickle.loads(argsin) self.context.update(kws) exec self.ccode in self.context argsout=[] for arg in outargsname: if not self.context.has_key(arg): raise KeyError("There is no variable %s in context" % arg) argsout.append(self.context[arg]) argsout=cPickle.dumps(tuple(argsout),-1) return argsout except: exc_typ,exc_val,exc_fr=sys.exc_info() l=traceback.format_exception(exc_typ,exc_val,exc_fr) raise SALOME.SALOME_Exception(SALOME.ExceptionStruct(SALOME.BAD_PARAM,"".join(l),"PyScriptNode: %s, outargsname: %s" % (self.nodeName,outargsname),0)) salome-kernel-6.5.0/src/Container/Salome_file_i.cxx000077500000000000000000001036121177004724000222540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Salome_file_i.cxx // Author : André RIBES, EDF // Module : SALOME // $Header: // #include "Salome_file_i.hxx" #include "utilities.h" #include #include "HDFOI.hxx" #ifndef WIN32 # include # define _getcwd getcwd # define _open open #else # include # include # include #endif /*! \class Salome_file_i * \brief A class to manage file transfer in %SALOME * */ //============================================================================= /*! * Default constructor, */ //============================================================================= Salome_file_i::Salome_file_i() { _fileId = 0; #ifndef WIN32 _path_max = 1 + pathconf("/", _PC_PATH_MAX); #else _path_max = 32768; //from MSDN: //Note The C Runtime supports path lengths up to 32768 characters in length, but it is up to the operating system, specifically the file system, to support these longer paths. The sum of the fields should not exceed _MAX_PATH for full backwards compatibility with Windows 98 FAT32 file systems. Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003, and Windows Server 2003 NTFS file system supports paths up to 32768 characters in length, but only when using the Unicode APIs. When using long path names, prefix the path with the characters \\?\ and use the Unicode versions of the C Runtime functions. //currently #define _MAX_PATH 260 #endif _state.name = CORBA::string_dup(""); _state.hdf5_file_name = CORBA::string_dup(""); _state.number_of_files = 0; _state.files_ok = true; _container = Engines::Container::_nil(); _default_source_Salome_file = Engines::Salome_file::_nil(); } //============================================================================= /*! * Destructor */ //============================================================================= Salome_file_i::~Salome_file_i() { } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::load */ //============================================================================= void Salome_file_i::load(const char* hdf5_file) { _state.hdf5_file_name = CORBA::string_dup(hdf5_file); try { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset; int size; int fd; char * value; char * buffer; hdf_file = new HDFfile((char*) hdf5_file); hdf_file->OpenOnDisk(HDF_RDONLY); hdf_group = new HDFgroup("CONFIG",hdf_file); hdf_group->OpenOnDisk(); hdf_dataset = new HDFdataset("MODE",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string mode(value); delete value; hdf_group = new HDFgroup("GROUP_FILES",hdf_file); hdf_group->OpenOnDisk(); hdf_dataset = new HDFdataset("LIST_OF_FILES",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string list_of_files(value); delete value; std::istringstream iss(list_of_files); std::string file_name; while (std::getline(iss, file_name, ' ')) { std::string dataset_group_name("DATASET"); dataset_group_name += file_name; hdf_group = new HDFgroup(dataset_group_name.c_str(), hdf_file); hdf_group->OpenOnDisk(); hdf_dataset = new HDFdataset("NAME",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string name(value); hdf_dataset = new HDFdataset("PATH",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string path(value); hdf_dataset = new HDFdataset("TYPE",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string type(value); hdf_dataset = new HDFdataset("SOURCE_FILE_NAME",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string source_file_name(value); hdf_dataset = new HDFdataset("STATUS",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); value = new char[size]; hdf_dataset->ReadFromDisk(value); hdf_dataset->CloseOnDisk(); std::string status(value); if (mode == "all") { // Changing path, is now current directory path = getcwd(NULL, _path_max); std::string group_name("GROUP"); group_name += file_name; hdf_group = new HDFgroup(group_name.c_str(),hdf_file); hdf_group->OpenOnDisk(); hdf_dataset = new HDFdataset("FILE DATASET",hdf_group); hdf_dataset->OpenOnDisk(); size = hdf_dataset->GetSize(); buffer = new char[size]; if ( (fd = ::open(file_name.c_str(),O_RDWR|O_CREAT,00666)) <0) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "open failed"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); }; hdf_dataset->ReadFromDisk(buffer); if ( write(fd,buffer,size) <0) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "write failed"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); }; // Close the target file ::close(fd); Engines::file infos; infos.file_name = CORBA::string_dup(file_name.c_str()); infos.path = CORBA::string_dup(path.c_str()); infos.type = CORBA::string_dup(type.c_str()); infos.source_file_name = CORBA::string_dup(source_file_name.c_str()); infos.status = CORBA::string_dup(status.c_str()); _fileManaged[file_name] = infos; // Update Salome_file state _state.number_of_files++; _state.files_ok = true; } else { Engines::file infos; infos.file_name = CORBA::string_dup(file_name.c_str()); infos.path = CORBA::string_dup(path.c_str()); infos.type = CORBA::string_dup(type.c_str()); infos.source_file_name = CORBA::string_dup(source_file_name.c_str()); infos.status = CORBA::string_dup(status.c_str()); // Infos for parallel extensions... infos.node = 0; infos.container = Engines::Container::_duplicate(_container); _fileManaged[file_name] = infos; // Update Salome_file state _state.number_of_files++; if (status != "ok") _state.files_ok = false; } } } catch (HDFexception) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "!!!! HDFexception"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::save */ //============================================================================= void Salome_file_i::save(const char* hdf5_file) { _state.hdf5_file_name = CORBA::string_dup(hdf5_file); try { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset; hdf_size size[1]; _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); hdf_file = new HDFfile((char*) _state.hdf5_file_name.in()); hdf_file->CreateOnDisk(); // Save mode information hdf_group = new HDFgroup("CONFIG", hdf_file); hdf_group->CreateOnDisk(); std::string mode("infos"); size[0] = strlen(mode.c_str()) + 1; hdf_dataset = new HDFdataset("MODE", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) mode.c_str()); hdf_dataset->CloseOnDisk(); hdf_group->CloseOnDisk(); // List of files that are managed std::string list_of_files; for(;begin!=end;begin++) { Engines::file file_infos = begin->second; std::string file_name(file_infos.file_name.in()); list_of_files = list_of_files + file_name + std::string(" "); } hdf_group = new HDFgroup("GROUP_FILES", hdf_file); hdf_group->CreateOnDisk(); size[0] = strlen(list_of_files.c_str()) + 1; hdf_dataset = new HDFdataset("LIST_OF_FILES", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) list_of_files.c_str()); hdf_dataset->CloseOnDisk(); hdf_group->CloseOnDisk(); // Insert Files into the hdf5_file begin = _fileManaged.begin(); for(;begin!=end;begin++) { Engines::file file_infos = begin->second; std::string file_name(file_infos.file_name.in()); std::string comp_file_name(_fileManaged[file_name].path.in()); comp_file_name.append(_fileManaged[file_name].file_name.in()); std::string dataset_group_name("DATASET"); dataset_group_name += std::string(_fileManaged[file_name].file_name.in()); hdf_group = new HDFgroup((char *) dataset_group_name.c_str(), hdf_file); hdf_group->CreateOnDisk(); size[0] = strlen(file_infos.file_name.in()) + 1; hdf_dataset = new HDFdataset("NAME", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.file_name.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.path.in()) + 1; hdf_dataset = new HDFdataset("PATH", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.path.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.type.in()) + 1; hdf_dataset = new HDFdataset("TYPE", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.type.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.source_file_name.in()) + 1; hdf_dataset = new HDFdataset("SOURCE_FILE_NAME", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.source_file_name.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.status.in()) + 1; hdf_dataset = new HDFdataset("STATUS", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.status.in()); hdf_dataset->CloseOnDisk(); hdf_group->CloseOnDisk(); } hdf_file->CloseOnDisk(); // delete hdf_dataset; // delete hdf_group; ----> SEGFAULT !!! // delete hdf_file; ----> SEGFAULT !!! } catch (HDFexception) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "!!!! HDFexception"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::save_all */ //============================================================================= void Salome_file_i::save_all(const char* hdf5_file) { _state.hdf5_file_name = CORBA::string_dup(hdf5_file); // Test Salome_file status if (_state.files_ok == false) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "File Not Ok !"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } // For each file we create two groups // First group contains file's informations // Second group contains the file // At the end we create a group and a dataset containing the names // of all the files. try { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset; hdf_size size[1]; _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); hdf_file = new HDFfile((char*) _state.hdf5_file_name.in()); hdf_file->CreateOnDisk(); // Save mode information hdf_group = new HDFgroup("CONFIG", hdf_file); hdf_group->CreateOnDisk(); std::string mode("all"); size[0] = strlen(mode.c_str()) + 1; hdf_dataset = new HDFdataset("MODE", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) mode.c_str()); hdf_dataset->CloseOnDisk(); hdf_group->CloseOnDisk(); // List of files that will be inserted std::string list_of_files; for(;begin!=end;begin++) { Engines::file file_infos = begin->second; std::string file_name(file_infos.file_name.in()); list_of_files = list_of_files + file_name + std::string(" "); } hdf_group = new HDFgroup("GROUP_FILES", hdf_file); hdf_group->CreateOnDisk(); size[0] = strlen(list_of_files.c_str()) + 1; hdf_dataset = new HDFdataset("LIST_OF_FILES", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) list_of_files.c_str()); hdf_dataset->CloseOnDisk(); hdf_group->CloseOnDisk(); // Insert Files into the hdf5_file begin = _fileManaged.begin(); for(;begin!=end;begin++) { Engines::file file_infos = begin->second; std::string file_name(file_infos.file_name.in()); std::string comp_file_name(_fileManaged[file_name].path.in()); comp_file_name.append(_fileManaged[file_name].file_name.in()); std::string group_name("GROUP"); group_name += std::string(_fileManaged[file_name].file_name.in()); std::string dataset_group_name("DATASET"); dataset_group_name += std::string(_fileManaged[file_name].file_name.in()); hdf_group = new HDFgroup((char *) group_name.c_str(), hdf_file); hdf_group->CreateOnDisk(); HDFConvert::FromAscii(comp_file_name.c_str(), *hdf_group, "FILE DATASET"); hdf_group->CloseOnDisk(); hdf_group = new HDFgroup((char *) dataset_group_name.c_str(), hdf_file); hdf_group->CreateOnDisk(); size[0] = strlen(file_infos.file_name.in()) + 1; hdf_dataset = new HDFdataset("NAME", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.file_name.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.path.in()) + 1; hdf_dataset = new HDFdataset("PATH", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.path.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.type.in()) + 1; hdf_dataset = new HDFdataset("TYPE", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.type.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.source_file_name.in()) + 1; hdf_dataset = new HDFdataset("SOURCE_FILE_NAME", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.source_file_name.in()); hdf_dataset->CloseOnDisk(); size[0] = strlen(file_infos.status.in()) + 1; hdf_dataset = new HDFdataset("STATUS", hdf_group, HDF_STRING, size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void *) file_infos.status.in()); hdf_dataset->CloseOnDisk(); hdf_group->CloseOnDisk(); } hdf_file->CloseOnDisk(); // delete hdf_dataset; // delete hdf_group; ----> SEGFAULT !!! // delete hdf_file; ----> SEGFAULT !!! } catch (HDFexception) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "!!!! HDFexception"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::setLocalFile */ //============================================================================= void Salome_file_i::setLocalFile(const char* comp_file_name) { std::string file_name(""); std::string path(""); std::string type("local"); std::string source_file_name(""); std::string status("not_ok"); std::string cp_file_name(comp_file_name); std::size_t index = cp_file_name.rfind("/"); if (index != -1) { file_name = cp_file_name.substr(index+1); path = cp_file_name.substr(0,index+1); } else { file_name = comp_file_name; path = getcwd(NULL, _path_max);; } // Test if this file is already added _t_fileManaged::iterator it = _fileManaged.find(file_name); if (it != _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "file already added"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } // Test if the file is ok if(fopen(comp_file_name,"rb") != NULL) status = "ok"; // Adding file with is informations Engines::file infos; infos.file_name = CORBA::string_dup(file_name.c_str()); infos.path = CORBA::string_dup(path.c_str()); infos.type = CORBA::string_dup(type.c_str()); infos.source_file_name = CORBA::string_dup(source_file_name.c_str()); infos.status = CORBA::string_dup(status.c_str()); // Infos for parallel extensions... infos.node = 0; infos.container = Engines::Container::_duplicate(_container); _fileManaged[file_name] = infos; // Update Salome_file state _state.number_of_files++; if (status != "ok") _state.files_ok = false; } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::setDistributedFile */ //============================================================================= void Salome_file_i::setDistributedFile(const char* comp_file_name) { std::string file_name(""); std::string path(""); std::string type("distributed"); std::string source_file_name(""); std::string status("not_ok"); std::string cp_file_name(comp_file_name); std::size_t index = cp_file_name.rfind("/"); if (index != -1) { file_name = cp_file_name.substr(index+1); path = cp_file_name.substr(0,index+1); } else { file_name = comp_file_name; path = getcwd(NULL, _path_max);; } // Test if this file is already added _t_fileManaged::iterator it = _fileManaged.find(file_name); if (it != _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "file already added"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } // Adding file with his informations Engines::file infos; infos.file_name = CORBA::string_dup(file_name.c_str()); infos.path = CORBA::string_dup(path.c_str()); infos.type = CORBA::string_dup(type.c_str()); infos.source_file_name = CORBA::string_dup(source_file_name.c_str()); infos.status = CORBA::string_dup(status.c_str()); // Infos for parallel extensions... infos.node = 0; infos.container = Engines::Container::_duplicate(_container); _fileManaged[file_name] = infos; if(!CORBA::is_nil(_default_source_Salome_file)) { _fileDistributedSource[file_name] = Engines::Salome_file::_duplicate(_default_source_Salome_file); } // Update Salome_file state _state.number_of_files++; _state.files_ok = false; } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::connect */ //============================================================================= void Salome_file_i::connect(Engines::Salome_file_ptr source_Salome_file) { if(CORBA::is_nil(_default_source_Salome_file)) { _default_source_Salome_file = Engines::Salome_file::_duplicate(source_Salome_file); _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); for(;begin!=end;begin++) { // Get the name of the file std::string file_name = begin->first; _t_fileDistributedSource::iterator it = _fileDistributedSource.find(file_name); if (it == _fileDistributedSource.end()) { _fileDistributedSource[file_name] = Engines::Salome_file::_duplicate(source_Salome_file); } } } else { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "already connected to a default Salome_file"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } // We can connect this Salome_file if there is only one file managed // by the Salome_file //std::string fname; //if (_fileManaged.size() == 1) //{ // only one file managed // _t_fileManaged::iterator it = _fileManaged.begin(); // fname = it->first; // _fileDistributedSource[fname] = Engines::Salome_file::_duplicate(source_Salome_file); //} //else //{ // SALOME::ExceptionStruct es; // es.type = SALOME::INTERNAL_ERROR; // std::string text = "cannot connect"; // es.text = CORBA::string_dup(text.c_str()); // throw SALOME::SALOME_Exception(es); //} } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::connectDistributedFile */ //============================================================================= void Salome_file_i::connectDistributedFile(const char * file_name, Engines::Salome_file_ptr source_Salome_file) { // Test if this file is added _t_fileManaged::iterator it = _fileManaged.find(file_name); if (it == _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "file is not added"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } else { _fileDistributedSource[file_name] = Engines::Salome_file::_duplicate(source_Salome_file); } } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::setDistributedSourceFile */ //============================================================================= void Salome_file_i::setDistributedSourceFile(const char* file_name, const char * source_file_name) { std::string fname(file_name); // Test if this file is added _t_fileManaged::iterator it = _fileManaged.find(fname); if (it == _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "file is not added"; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } else { _fileManaged[fname].source_file_name = CORBA::string_dup(source_file_name); } } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::recvFiles */ //============================================================================= void Salome_file_i::recvFiles() { std::string files_not_ok(""); _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); for(;begin!=end;begin++) { bool result = true; Engines::file file_infos = begin->second; // Test if the file is local or distributed if (std::string(file_infos.type.in()) == "local") { if (std::string(file_infos.status.in()) == "not_ok") result = checkLocalFile(file_infos.file_name.in()); } else { if (std::string(file_infos.status.in()) == "not_ok") result = getDistributedFile(file_infos.file_name.in()); } // if the result is false // we add this file to files_not_ok if (!result) { files_not_ok.append(" "); files_not_ok.append(file_infos.file_name.in()); } } if (files_not_ok != "") { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "files not ready : " + files_not_ok; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } else { // We change the state of the Salome_file _state.files_ok = true; } } //============================================================================= /*! * local C++ method : This method is used by revFiles to check if a local * managed file is ok. * \param fileName name of the file */ //============================================================================= bool Salome_file_i::checkLocalFile(std::string file_name) { bool result = true; std::string comp_file_name(_fileManaged[file_name].path.in()); comp_file_name.append("/"); comp_file_name.append(_fileManaged[file_name].file_name.in()); if(fopen(comp_file_name.c_str(),"rb") == NULL) { INFOS("file " << comp_file_name << " cannot be open for reading"); _fileManaged[file_name].status = CORBA::string_dup("not_ok"); result = false; } if (result) { _fileManaged[file_name].status = CORBA::string_dup("ok"); } return result; } //============================================================================= /*! * local C++ method : this method is used by recvFiles to get a * distributed file from is distributed source. * If there is no source_file_name for the file, it tries to get * the file from the source. In this case, the source distributed file has to managed * only one file to be able to the send the file. * * \param fileName name of the file */ //============================================================================= bool Salome_file_i::getDistributedFile(std::string file_name) { bool result = true; const char * source_file_name = _fileManaged[file_name].source_file_name.in(); int fileId; FILE* fp; std::string comp_file_name(_fileManaged[file_name].path.in()); comp_file_name.append("/"); comp_file_name.append(_fileManaged[file_name].file_name.in()); // Test if the process can write on disk if ((fp = fopen(comp_file_name.c_str(),"wb")) == NULL) { INFOS("file " << comp_file_name << " cannot be open for writing"); _fileManaged[file_name].status = CORBA::string_dup("not_ok"); result = false; return result; } try { fileId = _fileDistributedSource[file_name]->open(source_file_name); } catch (...) { _fileManaged[file_name].status = CORBA::string_dup("not_ok"); fclose(fp); result = false; return result; } if (fileId > 0) { Engines::fileBlock* aBlock; int toFollow = 1; int ctr=0; MESSAGE("begin of transfer of " << comp_file_name); while (toFollow) { ctr++; aBlock = _fileDistributedSource[file_name]->getBlock(fileId); toFollow = aBlock->length(); CORBA::Octet *buf = aBlock->get_buffer(); #if defined(_DEBUG_) || defined(_DEBUG) int nbWri = fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); ASSERT(nbWri == toFollow); #else fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); #endif delete aBlock; } fclose(fp); MESSAGE("end of transfer of " << comp_file_name); _fileDistributedSource[file_name]->close(fileId); } else { INFOS("open reference file for copy impossible"); result = false; fclose(fp); _fileManaged[file_name].status = CORBA::string_dup("not_ok"); return result; } _fileManaged[file_name].status = CORBA::string_dup("ok"); return result; } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::removeFile */ //============================================================================= void Salome_file_i::removeFile(const char* file_name) { MESSAGE("Salome_file_i::removeFile : NOT YET IMPLEMENTED"); } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::removeFiles */ //============================================================================= void Salome_file_i::removeFiles() { MESSAGE("Salome_file_i::removeFiles : NOT YET IMPLEMENTED"); } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::getFilesInfos */ //============================================================================= Engines::files* Salome_file_i::getFilesInfos() { Engines::files * infos = new Engines::files(); infos->length(_fileManaged.size()); _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); int i = 0; for(;begin!=end;begin++) { (*infos)[i] = *(new Engines::file(begin->second)); i++; } return infos; } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::getFileInfos */ //============================================================================= Engines::file* Salome_file_i::getFileInfos(const char* file_name) { std::string fname(file_name); // Test if this file is managed _t_fileManaged::iterator it = _fileManaged.find(fname); if (it == _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "file is not managed"; throw SALOME::SALOME_Exception(es); } Engines::file * infos = new Engines::file(_fileManaged[fname]); return infos; } //============================================================================= /*! * CORBA method * \see Engines::Salome_file::getSalome_fileState */ //============================================================================= Engines::SfState* Salome_file_i::getSalome_fileState() { return new Engines::SfState(_state); } //============================================================================= /*! * CORBA method: try to open the file given. If the file is readable, return * a positive integer else return 0; * \param fileName file name to be transfered * \return fileId = positive integer > 0 if open OK. */ //============================================================================= CORBA::Long Salome_file_i::open(const char* file_name) { int aKey = 0; std::string fname(file_name); if (fname == "") { // We enter in the simple case where the user // has not used setDistributedSourceFile. // In this case we try to see if the Salome_file if (_fileManaged.size() == 1) { // only one file managed _t_fileManaged::iterator it = _fileManaged.begin(); fname = it->first; } else { // we can't choose the file so : return aKey; } } _t_fileManaged::iterator it = _fileManaged.find(fname); if (it == _fileManaged.end()) { return aKey; } std::string comp_file_name(_fileManaged[fname].path.in()); comp_file_name.append("/"); comp_file_name.append(fname); MESSAGE("Salome_file_i::open " << comp_file_name); FILE* fp; if ((fp = fopen(comp_file_name.c_str(),"rb")) == NULL) { INFOS("file " << comp_file_name << " is not readable"); return aKey; } aKey = ++_fileId; _fileAccess[aKey] = fp; return aKey; } //============================================================================= /*! * CORBA method: close the file associated to the fileId given at open. * \param fileId got in return from open method */ //============================================================================= void Salome_file_i::close(CORBA::Long fileId) { MESSAGE("Salome_file_i::close"); FILE* fp; if (!(fp = _fileAccess[fileId]) ) { INFOS(" no FILE structure associated to fileId " << fileId); } else fclose(fp); } //============================================================================= /*! * CORBA method: get a block of data from the file associated to the fileId * given at open. * \param fileId got in return from open method * \return an octet sequence. Last one is empty. */ //============================================================================= #define FILEBLOCK_SIZE 256*1024 Engines::fileBlock* Salome_file_i::getBlock(CORBA::Long fileId) { Engines::fileBlock* aBlock = new Engines::fileBlock; FILE* fp; if (! (fp = _fileAccess[fileId]) ) { INFOS(" no FILE structure associated to fileId " <replace(nbRed, nbRed, buf, 1); // 1 means give ownership return aBlock; } void Salome_file_i::setContainer(Engines::Container_ptr container) { _container = Engines::Container::_duplicate(container); // Update All the files _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); for(;begin!=end;begin++) { begin->second.container = Engines::Container::_duplicate(container); } } salome-kernel-6.5.0/src/Container/Salome_file_i.hxx000077500000000000000000000072631177004724000222660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Salome_file_i.hxx // Author : André RIBES, EDF // Module : SALOME // $Header: // #ifndef _SALOME_FILE_I_HXX_ #define _SALOME_FILE_I_HXX_ #include #include CORBA_SERVER_HEADER(SALOME_Component) #include CORBA_SERVER_HEADER(SALOME_Exception) #include "SALOME_Container.hxx" #include "SALOME_FileTransfer_i.hxx" #include #include #include class CONTAINER_EXPORT Salome_file_i: public virtual POA_Engines::Salome_file,public virtual fileTransfer_i { public: Salome_file_i(); virtual ~Salome_file_i(); // Import and export methods virtual void load(const char* hdf5_file); virtual void save(const char* hdf5_file); virtual void save_all(const char* hdf5_file); // Adding files virtual void setLocalFile(const char* comp_file_name); virtual void setDistributedFile(const char* comp_file_name); // Configure DistributedFile virtual void connect(Engines::Salome_file_ptr source_Salome_file); virtual void connectDistributedFile(const char * file_name, Engines::Salome_file_ptr source_Salome_file); virtual void setDistributedSourceFile(const char* file_name, const char * source_file_name); // Recv and check files virtual void recvFiles(); // Removing or deleting files virtual void removeFile(const char* file_name); virtual void removeFiles(); // Informations methods: virtual void setContainer(Engines::Container_ptr container); virtual Engines::files* getFilesInfos(); virtual Engines::file* getFileInfos(const char* file_name); virtual Engines::SfState* getSalome_fileState(); // ---------------- fileTransfert Methods ----------------------- virtual CORBA::Long open(const char* file_name); virtual void close(CORBA::Long fileId); virtual Engines::fileBlock* getBlock(CORBA::Long fileId); protected: // ---------------- local C++ methods --------------------------- virtual bool checkLocalFile(std::string file_name); virtual bool getDistributedFile(std::string file_name); protected: // Contains a relation between a file ID (int) with // a fd descriptor (FILE*) open on the file. typedef std::map _t_fileAccess; // Contains the informations of the files managed by the Salome_file. typedef std::map _t_fileManaged; // Contains the CORBA reference for each distributed file managed. typedef std::map _t_fileDistributedSource; int _fileId; long _path_max; _t_fileAccess _fileAccess; _t_fileManaged _fileManaged; _t_fileDistributedSource _fileDistributedSource; Engines::SfState _state; Engines::Container_ptr _container; Engines::Salome_file_var _default_source_Salome_file; }; #endif salome-kernel-6.5.0/src/Container/TestSalome_file.cxx000077500000000000000000000134641177004724000226110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "Salome_file_i.hxx" #include #include #include #include "HDFascii.hxx" #include void print_infos(Engines::file*); void print_state(Engines::SfState*); void print_infos(Engines::file * infos) { std::cerr << "-------------------------------------------------------------------" << std::endl; std::cerr << "file_name = " << infos->file_name << std::endl; std::cerr << "path = " << infos->path << std::endl; std::cerr << "type = " << infos->type << std::endl; std::cerr << "source_file_name = " << infos->source_file_name << std::endl; std::cerr << "status = " << infos->status << std::endl; } void print_state(Engines::SfState * state) { std::cerr << "-------------------------------------------------------------------" << std::endl; std::cerr << "name = " << state->name << std::endl; std::cerr << "hdf5_file_name = " << state->hdf5_file_name << std::endl; std::cerr << "number_of_files = " << state->number_of_files << std::endl; std::cerr << "files_ok = " << state->files_ok << std::endl; } int main (int argc, char * argv[]) { system("rm toto cat test.hdf test2.hdf"); Salome_file_i file; Salome_file_i file2; Salome_file_i file3; Salome_file_i file4; Salome_file_i file5; Engines::file * infos; Engines::SfState * state; Engines::files * all_infos; PortableServer::POA_var root_poa; PortableServer::POAManager_var pman; CORBA::Object_var obj; std::cerr << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cerr << "Test of setLocalFile()" << std::endl; file.setLocalFile("/tmp/toto"); infos = file.getFileInfos("toto"); print_infos(infos); std::cerr << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cerr << "Test of getFilesInfos()" << std::endl; all_infos = file.getFilesInfos(); for (int i = 0; i < all_infos->length(); i++) { print_infos(&((*all_infos)[i])); } std::cerr << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cerr << "Test of getSalome_fileState()" << std::endl; state = file.getSalome_fileState(); print_state(state); // We start CORBA ... CORBA::ORB_ptr orb = CORBA::ORB_init(argc , argv); obj = orb->resolve_initial_references("RootPOA"); root_poa = PortableServer::POA::_narrow(obj); pman = root_poa->the_POAManager(); pman->activate(); file2.setLocalFile("/tmp/toto_distributed_source"); Engines::Salome_file_ptr file2_ref = file2._this(); std::cerr << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cerr << "Test of setDistributedFile()" << std::endl; file.setDistributedFile("/tmp/toto_distributed"); file.connectDistributedFile("toto_distributed", file2_ref); // file.setDistributedSourceFile("toto_distributed", "toto_distributed_source"); infos = file.getFileInfos("toto_distributed"); print_infos(infos); // We create the files ... std::ostringstream oss; oss << "/tmp/toto"; std::ofstream f(oss.str().c_str()); if (f) f << "blablabla" << std::endl; std::ostringstream oss2; oss2 << "/tmp/toto_distributed_source"; std::ofstream f2(oss2.str().c_str()); if (f2) f2 << "bliblibli" << std::endl; try { file.recvFiles(); } catch (SALOME::SALOME_Exception & e) { std::cerr << "Exception : " << e.details.text << std::endl; } std::cerr << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cerr << "Test of getFilesInfos()" << std::endl; all_infos = file.getFilesInfos(); for (int i = 0; i < all_infos->length(); i++) { print_infos(&((*all_infos)[i])); } std::cerr << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cerr << "Test of getSalome_fileState()" << std::endl; state = file.getSalome_fileState(); print_state(state); orb->destroy(); file3.setLocalFile("/tmp/toto"); file3.setLocalFile("/bin/cat"); state = file3.getSalome_fileState(); print_state(state); file3.save_all("test.hdf"); file3.setLocalFile("/bin/tutu"); file3.save("test2.hdf"); file4.load("test.hdf"); all_infos = file4.getFilesInfos(); for (int i = 0; i < all_infos->length(); i++) { print_infos(&((*all_infos)[i])); } state = file4.getSalome_fileState(); print_state(state); file5.load("test2.hdf"); all_infos = file5.getFilesInfos(); for (int i = 0; i < all_infos->length(); i++) { print_infos(&((*all_infos)[i])); } state = file5.getSalome_fileState(); print_state(state); // Test of ConvertFromHDFToASCII // and ConvertFromASCIIToHDF std::cerr << "Test of ConvertFromASCIIToHDF" << std::endl; HDFascii::ConvertFromASCIIToHDF("/tmp/toto"); // RETURN NULL ! std::cerr << "Test of ConvertFromHDFToASCII" << std::endl; std::cerr << HDFascii::ConvertFromHDFToASCII("test2.hdf", false) << std::endl; std::cerr << HDFascii::ConvertFromHDFToASCII("test2.hdf", true) << std::endl; std::cerr << "End of tests" << std::endl; } salome-kernel-6.5.0/src/DF/000077500000000000000000000000001177004724000153425ustar00rootroot00000000000000salome-kernel-6.5.0/src/DF/DF_Application.cxx000077500000000000000000000051511177004724000207070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "DF_definitions.hxx" #include "DF_Application.hxx" //Constructor DF_Application::DF_Application() { _currentID = 0; } DF_Application::~DF_Application() { _documents.clear(); } //Creates a new document with given type, returns a smart pointer to //newly created document. DF_Document* DF_Application::NewDocument(const std::string& theDocumentType) { DF_Document* aDoc = new DF_Document(theDocumentType); aDoc->_id = ++_currentID; _documents[aDoc->_id] = aDoc; aDoc->_appli = this; return aDoc; } //Closes and removes the given Document void DF_Application::Close(const DF_Document* theDocument) { int id = -1; if(theDocument) id = theDocument->GetDocumentID(); if(_documents.find(id) != _documents.end()) { _documents[id]->Clear(); _documents.erase(id); delete theDocument; } } //Returns a Document by Document's ID DF_Document* DF_Application::GetDocument(int theDocumentID) { if(_documents.find(theDocumentID) == _documents.end()) return NULL; return _documents[theDocumentID]; } //Returns a list of IDs of all currently opened documents std::vector DF_Application::GetDocumentIDs() { std::vector ids; typedef std::map::const_iterator DI; for(DI p = _documents.begin(); p!=_documents.end(); p++) ids.push_back(p->first); return ids; } //Returns a number of existent documents int DF_Application::NbDocuments() { return _documents.size(); } //Restores a Document from the given file, returns a smart //pointer to opened document. DF_Document* DF_Application::Open(const std::string& theFileName) { //Not implemented return NULL; } //Saves a Document in a given file with name theFileName void DF_Application::SaveAs(const DF_Document* theDocument, const std::string& theFileName) { //Not implemented } salome-kernel-6.5.0/src/DF/DF_Application.hxx000077500000000000000000000043641177004724000207210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef DFAPPLICATION_HXX #define DFAPPLICATION_HXX #include "DF_definitions.hxx" #include "DF_Document.hxx" #include #include //Class DF_Application responsible for creation and manipulation of Documents class DF_Application { public: //Constructor Standard_EXPORT DF_Application(); Standard_EXPORT ~DF_Application(); //Creates a new document with given type, returns a smart pointer to //newly created document. Standard_EXPORT DF_Document* NewDocument(const std::string& theDocumentType); //Closes and removes the given Document Standard_EXPORT void Close(const DF_Document* theDocument); //Returns a Document by Document's ID Standard_EXPORT DF_Document* GetDocument(int theDocumentID); //Returns a list of IDs of all currently opened documents Standard_EXPORT std::vector GetDocumentIDs(); //Returns a number of existent documents Standard_EXPORT int NbDocuments(); //Virtual methods to be redefined if required by specific application //Restores a Document from the given file, returns a smart //pointer to opened document. Standard_EXPORT virtual DF_Document* Open(const std::string& theFileName); //Saves a Document in a given file with name theFileName Standard_EXPORT virtual void SaveAs(const DF_Document* theDocument, const std::string& theFileName); private: int _currentID; std::map _documents; }; #endif salome-kernel-6.5.0/src/DF/DF_Attribute.cxx000077500000000000000000000034531177004724000204120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "DF_definitions.hxx" #include "DF_Label.hxx" #include "DF_Attribute.hxx" //Class DF_Attribute is used to store some data defined by the DF_Attribute type //Constructor DF_Attribute::DF_Attribute() { _node = NULL; } DF_Attribute::~DF_Attribute() { //Remove an attribute from a map of the node's attributes to //avoid double deletion on the node destruction if(_node) { std::map::iterator mi; for(mi =_node->_attributes.begin(); mi != _node->_attributes.end(); mi++) { if(mi->second == this) { _node->_attributes.erase(mi); return; } } } } //Returns a Label on which this Attribute is located. DF_Label DF_Attribute::Label() const { return DF_Label(_node); } //Searches an Attribute with given ID located on the same Label as this Attribute. DF_Attribute* DF_Attribute::FindAttribute(const std::string& theID) const { if(!_node) return NULL; return Label().FindAttribute(theID); } salome-kernel-6.5.0/src/DF/DF_Attribute.hxx000077500000000000000000000047251177004724000204220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef DFATTRIBUTE_HXX #define DFATTRIBUTE_HXX #include "DF_definitions.hxx" #include class DF_Label; class DF_LabelNode; //Class DF_Attribute is used to store some data defined by the DF_Attribute type class DF_Attribute { protected: DF_LabelNode* _node; public: //Constructor Standard_EXPORT DF_Attribute(); Standard_EXPORT virtual ~DF_Attribute(); //Returns a Label on which this Attribute is located. Standard_EXPORT DF_Label Label() const; //Searches an Attribute with given ID located on the same Label as this Attribute. Standard_EXPORT DF_Attribute* FindAttribute(const std::string& theID) const; Standard_EXPORT virtual std::string Save() { return ""; } Standard_EXPORT virtual void Load(const std::string&) {} //######## Virtual methods that must be redefined in descendants of the DF_Attribute //This method must be redefined in all descendents of the DF_Attribute //ID is a std::string that uniquely identify the given type of Attributes within the Application. Standard_EXPORT virtual const std::string& ID() const = 0; //Restores a content of this Attribute from another Attribute Standard_EXPORT virtual void Restore(DF_Attribute* theAttribute) = 0; //Creates a new empty copy oà this Attribute Standard_EXPORT virtual DF_Attribute* NewEmpty() const = 0; //Pastes a content of this Attribute into another Attribute Standard_EXPORT virtual void Paste(DF_Attribute* theIntoAttribute) = 0; //######## Callbacks Standard_EXPORT virtual void AfterAddition() {} Standard_EXPORT virtual void BeforeForget() {} protected: void Backup() {} friend class DF_Label; }; #endif salome-kernel-6.5.0/src/DF/DF_ChildIterator.cxx000077500000000000000000000047471177004724000212130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "DF_ChildIterator.hxx" //Constructor DF_ChildIterator::DF_ChildIterator(const DF_Label& theLabel, bool allLevels) :_root(NULL), _current(NULL) { Init(theLabel, allLevels); } DF_ChildIterator::DF_ChildIterator() :_root(NULL), _current(NULL) { } DF_ChildIterator::~DF_ChildIterator() { _root = NULL; _current = NULL; } //Initializes the iterator void DF_ChildIterator::Init(const DF_Label& theLabel, bool allLevels) { _root = theLabel._node; _allLevels = allLevels; if(_root) _current = _root->_firstChild; } //Returns a current Label DF_Label DF_ChildIterator::Value() { return DF_Label(_current); } //Returns true if there is a current Label bool DF_ChildIterator::More() { return _current!=0; } //Moves to the next Label void DF_ChildIterator::Next() { if(!_allLevels) { _current = _current->_next; //Move to the next brother return; } else { if(_current->_firstChild) { //Go down to the first child _current = _current->_firstChild; } else { if(_current->_next) { //Next Brother _current = _current->_next; } else { if(_current->_father && _current->_father != _root) { DF_LabelNode *father = _current->_father; _current = father->_next; if(!_current) { while(father && father != _root) { father = father->_father; if(father->_next) break; } if(father == _root) father = NULL; if(father) _current = father->_next; else _current = NULL; } } else { _current = NULL; //We iterate the whole sub tree } } } } } salome-kernel-6.5.0/src/DF/DF_ChildIterator.hxx000077500000000000000000000034221177004724000212050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef DFCHILDITERATOR_HXX #define DFCHILDITERATOR_HXX #include "DF_definitions.hxx" #include "DF_Label.hxx" #include //Class DF_ChildIterator is used to iterate a tree of Labels in the Document class DF_ChildIterator { public: //Constructor Standard_EXPORT DF_ChildIterator(const DF_Label& theLabel, bool allLevels = false); Standard_EXPORT DF_ChildIterator(); Standard_EXPORT ~DF_ChildIterator(); //Initializes the iterator, if allLevels is true the iterator before iterating the next //brother of the current Label iterates the Label children Standard_EXPORT void Init(const DF_Label& theLabel, bool allLevels = false); //Returns a current Label Standard_EXPORT DF_Label Value(); //Returns true if there is a current Label Standard_EXPORT bool More(); //Moves to the next Label Standard_EXPORT void Next(); private: DF_LabelNode* _root; DF_LabelNode* _current; bool _allLevels; }; #endif salome-kernel-6.5.0/src/DF/DF_Container.cxx000077500000000000000000000135411177004724000203700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "DF_definitions.hxx" #include "DF_Label.hxx" #include "DF_Container.hxx" //Static method that returns an ID of the give type of attributes const std::string& DF_Container::GetID() { static std::string id = "DF_Container_srn"; return id; } //Creates if not exists a Container attribute and places if is not placed it the Label DF_Container* DF_Container::Set(DF_Label& theLabel) { DF_Attribute* attr = NULL; if(!(attr = theLabel.FindAttribute(DF_Container::GetID()))) { attr = new DF_Container; theLabel.AddAttribute(attr); } return dynamic_cast(attr); } //Constructor DF_Container::DF_Container() { _ints.clear(); _doubles.clear(); _bools.clear(); _strings.clear(); } //Destructor DF_Container::~DF_Container() { _ints.clear(); _doubles.clear(); _bools.clear(); _strings.clear(); } //Sets an integer value of the attribute with given ID void DF_Container::SetInt(const std::string& theID, int theValue) { _ints[theID] = theValue; } //Returns an integer value of the attribute with given ID int DF_Container::GetInt(const std::string& theID) { if(!HasIntID(theID)) return 0; return _ints[theID]; } //Returns True if there is an integer with given ID bool DF_Container::HasIntID(const std::string& theID) { if(_ints.find(theID) != _ints.end()) return true; return false; } //Sets a double value of the attribute with given ID void DF_Container::SetDouble(const std::string& theID, const double& theValue) { _doubles[theID] = theValue; } //Returns a double value of the attribute with given ID double DF_Container::GetDouble(const std::string& theID) { if(!HasDoubleID(theID)) return 0.0; return _doubles[theID]; } //Returns True if there is a double with given ID bool DF_Container::HasDoubleID(const std::string& theID) { if(_doubles.find(theID) != _doubles.end()) return true; return false; } //Sets a string value of the attribute with given ID void DF_Container::SetString(const std::string& theID, const std::string& theValue) { _strings[theID] = theValue; } //Returns a string value of the attribute with given ID std::string DF_Container::GetString(const std::string& theID) { if(!HasStringID(theID)) return ""; return _strings[theID]; } //Returns True if there is a string with given ID bool DF_Container::HasStringID(const std::string& theID) { if(_strings.find(theID) != _strings.end()) return true; return false; } //Sets a boolean value of the attribute with given ID void DF_Container::SetBool(const std::string& theID, bool theValue) { _bools[theID] = theValue; } //Returns a boolean value of the attribute with given ID bool DF_Container::GetBool(const std::string& theID) { if(!HasBoolID(theID)) return false; return _bools[theID]; } //Returns True if there is a boolean value with given ID bool DF_Container::HasBoolID(const std::string& theID) { if(_bools.find(theID) != _bools.end()) return true; return false; } //Clears a content of the attribute void DF_Container::Clear() { _ints.clear(); _doubles.clear(); _strings.clear(); _bools.clear(); } //ID is a string that uniquely identify the given type of Attributes within the Application. const std::string& DF_Container::ID() const { return GetID(); } //Restores a content of this Attribute from another Attribute void DF_Container::Restore(DF_Attribute* theAttribute) { Clear(); DF_Container* attr = dynamic_cast(theAttribute); if(!attr) return; typedef std::map::const_iterator SI; for(SI p = attr->_ints.begin(); p != attr->_ints.end(); p++) _ints[p->first] = p->second; typedef std::map::const_iterator SD; for(SD p = attr->_doubles.begin(); p != attr->_doubles.end(); p++) _doubles[p->first] = p->second; typedef std::map::const_iterator SS; for(SS p = attr->_strings.begin(); p != attr->_strings.end(); p++) _strings[p->first] = p->second; typedef std::map::const_iterator SB; for(SB p = attr->_bools.begin(); p != attr->_bools.end(); p++) _bools[p->first] = p->second; } //Creates a new empty copy oà this Attribute DF_Attribute* DF_Container::NewEmpty() const { return new DF_Container(); } //Pastes a content of this Attribute into another Attribute void DF_Container::Paste(DF_Attribute* theIntoAttribute) { DF_Container* attr = dynamic_cast(theIntoAttribute); if(!attr) return; attr->Clear(); typedef std::map::const_iterator SI; for(SI p = _ints.begin(); p != _ints.end(); p++) attr->_ints[p->first] = p->second; typedef std::map::const_iterator SD; for(SD p = _doubles.begin(); p != _doubles.end(); p++) attr->_doubles[p->first] = p->second; typedef std::map::const_iterator SS; for(SS p = _strings.begin(); p != _strings.end(); p++) attr->_strings[p->first] = p->second; typedef std::map::const_iterator SB; for(SB p = _bools.begin(); p != _bools.end(); p++) attr-> _bools[p->first] = p->second; } salome-kernel-6.5.0/src/DF/DF_Container.hxx000077500000000000000000000073111177004724000203730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef DFCONTAINER_HXX #define DFCONTAINER_HXX #include "DF_definitions.hxx" #include "DF_Attribute.hxx" #include #include //Class DF_Container is used to store several types of data class DF_Container : public DF_Attribute { public: //Static method that returns an ID of the give type of attributes Standard_EXPORT static const std::string& GetID(); //Creates if not exists a Container attribute and places if is not placed it the Label Standard_EXPORT static DF_Container* Set(DF_Label& theLabel); //Constructor Standard_EXPORT DF_Container(); //Destructor Standard_EXPORT ~DF_Container(); //Sets an integer value of the attribute with given ID Standard_EXPORT void SetInt(const std::string& theID, int theValue); //Returns an integer value of the attribute with given ID Standard_EXPORT int GetInt(const std::string& theID); //Returns True if there is an integer with given ID Standard_EXPORT bool HasIntID(const std::string& theID); //Sets a double value of the attribute with given ID Standard_EXPORT void SetDouble(const std::string& theID, const double& theValue); //Returns a double value of the attribute with given ID Standard_EXPORT double GetDouble(const std::string& theID); //Returns True if there is a double with given ID Standard_EXPORT bool HasDoubleID(const std::string& theID); //Sets a string value of the attribute with given ID Standard_EXPORT void SetString(const std::string& theID, const std::string& theValue); //Returns a string value of the attribute with given ID Standard_EXPORT std::string GetString(const std::string& theID); //Returns True if there is a string with given ID Standard_EXPORT bool HasStringID(const std::string& theID); //Sets a boolean value of the attribute with given ID Standard_EXPORT void SetBool(const std::string& theID, bool theValue); //Returns a boolean value of the attribute with given ID Standard_EXPORT bool GetBool(const std::string& theID); //Returns True if there is a boolean value with given ID Standard_EXPORT bool HasBoolID(const std::string& theID); //Clears a content of the attribute Standard_EXPORT void Clear(); //ID is a std::string that uniquely identify the given type of Attributes within the Application. Standard_EXPORT virtual const std::string& ID() const; //Restores a content of this Attribute from another Attribute Standard_EXPORT virtual void Restore(DF_Attribute* theAttribute); //Creates a new empty copy of this Attribute Standard_EXPORT virtual DF_Attribute* NewEmpty() const; //Pastes a content of this Attribute into another Attribute Standard_EXPORT virtual void Paste(DF_Attribute* theIntoAttribute); protected: std::map _ints; std::map _doubles; std::map _strings; std::map _bools; }; #endif salome-kernel-6.5.0/src/DF/DF_Document.cxx000077500000000000000000000061541177004724000202260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "DF_definitions.hxx" #include "DF_Document.hxx" #include "DF_Label.hxx" #include "DF_ChildIterator.hxx" //Class DF_Document is container for user's data stored as a tree of Labels //with assigned Attributes DF_Document::DF_Document(const std::string& theDocumentType) { _id = -1; _type = theDocumentType; _modified = true; } DF_Document::~DF_Document() { Clear(); } DF_Application* DF_Document::GetApplication() { return _appli; } //Returns a Label of this Document with entry "0:1" DF_Label DF_Document::Main() { if(!_main.IsNull()) return _main; if(_root.IsNull()) { _root = DF_Label(new DF_LabelNode()); _root._node->_document = this; } _main = _root.FindChild(1, true); return _main; } //Returns a Label of this Document with entry "0:" DF_Label DF_Document::Root() { if(!_root.IsNull()) return _root; if(_root.IsNull()) { _root = DF_Label(new DF_LabelNode()); _root._node->_document = this; } return _root; } //Returns an ID of this int DF_Document::GetDocumentID() const { return _id; } //Returns a type of the Document std::string DF_Document::GetDocumentType() { return _type; } //Clears the content of this Document void DF_Document::Clear() { if(_root.IsNull()) return; std::vector vn; DF_ChildIterator CI(_root, true); for(; CI.More(); CI.Next()) { DF_LabelNode* node = CI.Value()._node; if(node) vn.push_back(node); } for(int i = 0, len = vn.size(); iReset(); _root.Nullify(); } //Returns true if this document is empty bool DF_Document::IsEmpty() { if(_root.IsNull()) return true; DF_ChildIterator CI(_root, true); for(; CI.More(); CI.Next()) { DF_LabelNode* node = CI.Value()._node; if(node->_attributes.size()) return false; } return true; } //Returns true if this document is modified bool DF_Document::IsModified() { return _modified; } //Sets whether a document is modified void DF_Document::SetModified(bool isModified) { _modified = isModified; } //Restores a content of the Document from the std::string theData void DF_Document::Load(const std::string& theData) { //Not implemented } //Converts a content of the Document into the std::string std::string DF_Document::Save() { //Not implemented return ""; } salome-kernel-6.5.0/src/DF/DF_Document.hxx000077500000000000000000000046001177004724000202250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef DFDOCUMENT_HXX #define DFDOCUMENT_HXX #include "DF_definitions.hxx" #include "DF_Label.hxx" #include class DF_Application; //Class DF_Document is container for user's data stored as a tree of Labels //with assigned Attributes class DF_Document { public: //Constructor Standard_EXPORT DF_Document(const std::string& theDocumentType); Standard_EXPORT ~DF_Document(); Standard_EXPORT DF_Application* GetApplication(); //Returns a Label of this Document with entry "0:1" Standard_EXPORT DF_Label Main(); //Returns a root Label with entry "0:" Standard_EXPORT DF_Label Root(); //Returns an ID of this Standard_EXPORT int GetDocumentID() const; //Returns a type of the Document Standard_EXPORT std::string GetDocumentType(); //Clears the content of this Document Standard_EXPORT void Clear(); //Returns true if this document is empty Standard_EXPORT bool IsEmpty(); //Returns true if this document is modified Standard_EXPORT bool IsModified(); //Returns true if this document is modified Standard_EXPORT void SetModified(bool isModified); //########### Load/Save virtual methods ## //Restores a content of the Document from the std::string theData Standard_EXPORT virtual void Load(const std::string& theData); //Converts a content of the Document into the std::string Standard_EXPORT virtual std::string Save(); friend class DF_Application; private: DF_Label _main; DF_Label _root; std::string _type; int _id; bool _modified; DF_Application* _appli; }; #endif salome-kernel-6.5.0/src/DF/DF_Label.cxx000077500000000000000000000300571177004724000174660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "DF_definitions.hxx" #include "DF_Label.hxx" #include "DF_Document.hxx" #include "DF_Attribute.hxx" #include "DF_ChildIterator.hxx" #include //Class DF_Label defines a persistence reference in DF_Document that contains a tree of Labels. //This reference is named "entry" and is a sequence of tags divided by ":". The root entry is "0:". //For example "0:1:1" corresponds the following structure // 0_ // | // |_1_ // | // |_ 1 DF_Label DF_Label::Label(const DF_Label& theLabel, const std::string& theEntry, bool isCreated) { if(theLabel.IsNull()) return DF_Label(); DF_Label aLabel = theLabel.Root(); if(theEntry == "0:") return aLabel; if(theEntry == "0:1") return theLabel.GetDocument()->Main(); char* cc = (char*)theEntry.c_str(); int n = 0; int i=0; while (*cc != '\0') { while ( *cc >= '0' && *cc <= '9') { n = 10*n + (*cc - '0'); ++cc; } if (*cc == ':' || *cc == '\0') { if(i>0) { if(aLabel.IsNull())break; aLabel = aLabel.FindChild(n, isCreated); } i++; n = 0; if (*cc != '\0') ++cc; } else { return DF_Label(); } } return aLabel; } DF_Label::DF_Label(DF_LabelNode* theNode) :_node(theNode) { } //Constructor DF_Label::DF_Label() { _node = NULL; } //Copy constructor DF_Label::DF_Label(const DF_Label& theLabel) { _node = theLabel._node; } DF_Label& DF_Label::operator=(const DF_Label& theLabel) { _node = theLabel._node; return *this; } //Destructor DF_Label::~DF_Label() { _node = NULL; } //Returns a smart pointer to Document which contains this Label DF_Document* DF_Label::GetDocument() const { if(!_node) return NULL; return _node->_document; } //Returns true if theLabel equals to this label bool DF_Label::operator==(const DF_Label& theLabel) { if(IsNull() || theLabel.IsNull()) return false; return (theLabel.Entry() == Entry()); } //Returns true if theLabel doesn't equals to this label bool DF_Label::operator!=(const DF_Label& theLabel) { if(IsNull() || theLabel.IsNull()) return true; return (theLabel.Entry() != Entry()); } //Returns a tag of this Label int DF_Label::Tag() const { if(!_node) return -1; return _node->_tag; } //Returns true if this Label is attached to the tree in the Document. bool DF_Label::IsAttached() { if(!_node) return false; return _node->_document != 0; } //Searches an Attribute with given ID located on this Label. //Returns true if the Attribute is found. DF_Attribute* DF_Label::FindAttribute(const std::string& theID) const { if(!_node) return NULL; std::map< std::string, DF_Attribute* >::iterator it=_node->_attributes.find(theID); if(it == _node->_attributes.end()) return NULL; return it->second; } //Returns true if there is an Attribute with given ID on this Label. bool DF_Label::IsAttribute(const std::string& theID) const { if(!_node) return false; return (_node->_attributes.find(theID) != _node->_attributes.end()); } //Adds theAttribute to the Label where this Attribute is located. //Returns true if theAttribute was added. bool DF_Label::AddAttribute(DF_Attribute* theAttribute) const { if(!_node) return false; if(_node->_attributes.find(theAttribute->ID()) != _node->_attributes.end()) return false; theAttribute->_node = _node; _node->_attributes[theAttribute->ID()] = theAttribute; theAttribute->AfterAddition(); return true; } //Forgets an Attribute with given ID located on the this Label. bool DF_Label::ForgetAttribute(const std::string& theID) const { if(!_node) return false; if(_node->_attributes.find(theID) == _node->_attributes.end()) return false; DF_Attribute* attr = _node->_attributes[theID]; attr->BeforeForget(); _node->_attributes.erase(theID); delete attr; return true; } //Forgets all Attributes located on this Label. bool DF_Label::ForgetAllAttributes(bool clearChildren) const { if(!_node) return false; std::vector va = GetAttributes(); _node->_attributes.clear(); for(int i = 0, len = va.size(); iBeforeForget(); delete va[i]; } if(clearChildren) { DF_ChildIterator CI(*this, true); for(; CI.More(); CI.Next()) CI.Value().ForgetAllAttributes(true); } return true; } //Returns Father of this Label. DF_Label DF_Label::Father() const { if(!_node) return DF_Label(); return _node->_father; } //Returns is this Label is not initialized bool DF_Label::IsNull() const { return (!_node || (_node->_document == NULL)); } //Returns is this Label is a Root label bool DF_Label::IsRoot() const { if(IsNull() || Father().IsNull()) return true; return false; } //Returns true if this Label has Attributes. bool DF_Label::HasAttributes() const { if(!_node) return false; return !(_node->_attributes.empty()); } //Returns a list of Attributes of this Label. std::vector DF_Label::GetAttributes() const { std::vector attributes; if(!_node) return attributes; typedef std::map::const_iterator AI; std::vector sorted; for(AI p = _node->_attributes.begin(); p!=_node->_attributes.end(); p++) sorted.push_back(p->first); sort(sorted.begin(), sorted.end()); int len = sorted.size(); for(int i = 0; i_attributes[sorted[i]]); return attributes; } //Returns true if this Label has a child Label. bool DF_Label::HasChild() const { if(!_node) return false; return _node->_firstChild != 0; } //Returns a number of child Labels. int DF_Label::NbChildren() const { if(!_node) return -1; if(!_node->_firstChild) return 0; int nb = 1; DF_LabelNode* next = _node->_firstChild->_next; while(next) { nb++; next = next->_next; } return nb; } //Returns the depth (a number of fathers required to identify the Label) of this Label in the tree. int DF_Label::Depth() const { if(!_node) return -1; return _node->_depth; } //Returns true if this Label is a descendant of theLabel. bool DF_Label::IsDescendant(const DF_Label& theLabel) { if(!_node) return false; DF_LabelNode* father = _node->_father; if(!father) return false; while(father) { if(father == theLabel._node) return true; father = father->_father; } return false; } //Returns the root Label of a Label tree to which this Label belongs. DF_Label DF_Label::Root() const { if(!_node) return DF_Label(); return _node->_document->Main().Father(); } //Finds a child Label of this Label with a given tag. If isCreate = true and there is no child //Label with the given tag, the child Label is created. DF_Label DF_Label::FindChild(int theTag, bool isCreate) { if(!_node || IsNull()) return DF_Label(); DF_LabelNode *aLabel = NULL, *aPrevious = NULL, *aNext = NULL; if(!_node->_firstChild && !isCreate) return DF_Label(); if(_node->_firstChild && _node->_firstChild->_tag == theTag) return DF_Label(_node->_firstChild); if(_node->_lastChild) { if(_node->_lastChild->_tag == theTag) return DF_Label(_node->_lastChild); if(_node->_lastChild->_tag < theTag) aPrevious = _node->_lastChild; } if(!aPrevious) { aLabel = _node->_firstChild; while(aLabel) { if(aLabel->_tag == theTag) return DF_Label(aLabel); if(aLabel->_tag > theTag) { aNext = aLabel; break; } if(aLabel->_tag < theTag) aPrevious = aLabel; aLabel = aLabel->_next; } } if(!isCreate) return DF_Label(); DF_LabelNode* aChild = new DF_LabelNode(); aChild->_father = this->_node; aChild->_document = _node->_document; aChild->_tag = theTag; aChild->_depth = _node->_depth+1; if(aNext) { aChild->_previous = aNext->_previous; aChild->_next = aNext; aNext->_previous = aChild; } if(aPrevious) { aChild->_previous = aPrevious; aChild->_next = aPrevious->_next; aPrevious->_next = aChild; } if(!_node->_firstChild || (aNext && aNext == _node->_firstChild) ) _node->_firstChild = aChild; if(!_node->_lastChild || !aNext) _node->_lastChild = aChild; return aChild; } //Creates a new child Label of this Label. DF_Label DF_Label::NewChild() { if(!_node || IsNull()) return DF_Label(); int tag = 1; if(_node->_lastChild) tag = _node->_lastChild->_tag+1; return FindChild(tag, true); } //Returns a string entry of this Label std::string DF_Label::Entry() const { DF_LabelNode* father = this->_node; if(!father->_father)return "0:"; int tag; char buff[128]; char* wstr= buff; char* str = buff; while(father) { tag=father->_tag; do{ // Conversion. Number is reversed. *wstr++ = '0' + (tag % 10); }while(tag /= 10); father = father->_father; if(father)*wstr++ = ':'; } *wstr-- = '\0'; //reverse the buffer char aux; while (wstr > str) aux = *wstr, *wstr-- = *str, *str++ = aux; return buff; } bool DF_Label::IsEqual(const DF_Label& theLabel) { if(theLabel.IsNull() || IsNull()) return false; DF_Label L(theLabel); return (L.Entry() == Entry()); } void DF_Label::Nullify() { delete _node; _node = NULL; } void DF_Label::dump() { if(!_node) std::cout << "DF_Label addr : " << this << " NULL " << std::endl; else { std::cout << "DF_Label addr : " << this->_node << " entry : " << Entry() << std::endl; if(_node->_father) std::cout << " Father : " << _node->_father << " entry : " << Father().Entry() << std::endl; else std::cout << " Father : NULL " << std::endl; if(_node->_firstChild) std::cout << " FirstChild : " << _node->_firstChild << " entry : " << DF_Label(_node->_firstChild).Entry() << std::endl; else std::cout << " FirstChild : NULL " << std::endl; if(_node->_lastChild) std::cout << " LastChild : " << _node->_lastChild << " entry : " << DF_Label(_node->_lastChild).Entry() << std::endl; else std::cout << " LastChild : NULL " << std::endl; if(_node->_previous) std::cout << " Previous : " << _node->_previous << " entry : " << DF_Label(_node->_previous).Entry() << std::endl; else std::cout << " Previous : NULL " << std::endl; if(_node->_next) std::cout << " Next : " << _node->_next << " entry : " << DF_Label(_node->_next).Entry() << std::endl; else std::cout << " Next : NULL " << std::endl; } } /* ############################################### DF_LabelNode methods ############################################### */ DF_LabelNode::DF_LabelNode() { _depth = 0; _tag = 0; _attributes.clear(); _document = NULL; _father = NULL; _firstChild = NULL; _lastChild = NULL; _previous = NULL; _next = NULL; } DF_LabelNode::~DF_LabelNode() { std::vector va; typedef std::map::const_iterator AI; for(AI p = _attributes.begin(); p!=_attributes.end(); p++) va.push_back(p->second); for(int i = 0, len = va.size(); i va; typedef std::map::const_iterator AI; for(AI p = _attributes.begin(); p!=_attributes.end(); p++) va.push_back(p->second); for(int i = 0, len = va.size(); i #include #include class DF_Document; class DF_LabelNode { public: DF_LabelNode(); ~DF_LabelNode(); void Reset(); private: int _tag; int _depth; DF_LabelNode* _father; DF_LabelNode* _previous; DF_LabelNode* _next; DF_LabelNode* _firstChild; DF_LabelNode* _lastChild; DF_Document* _document; std::map< std::string, DF_Attribute* > _attributes; friend class DF_Document; friend class DF_Label; friend class DF_ChildIterator; friend class DF_Attribute; }; //Class DF_Label defines a persistence reference in DF_Document that contains a tree of Labels. //This reference is named "entry" and is a sequence of tags divided by ":". The root entry is "0:". //For example "0:1:1" corresponds the following structure // 0_ // | // |_1_ // | // |_ 1 class DF_Label { public: //Returns a Label by its entry, if isCreated true the Label will be created if not exists Standard_EXPORT static DF_Label Label(const DF_Label& theLabel, const std::string& theEntry, bool isCreated = true); //Constructors: creates a root label Standard_EXPORT DF_Label(); //Copy constructor Standard_EXPORT DF_Label(const DF_Label& theLabel); //Creates a Label from the LabelNode Standard_EXPORT DF_Label(DF_LabelNode* theNode); //Operator = Standard_EXPORT DF_Label& operator=(const DF_Label& theLabel); //Destructor Standard_EXPORT ~DF_Label(); //Returns a smart pointer to Document which contains this Label Standard_EXPORT DF_Document* GetDocument() const; //Returns true if theLabel equals to this label Standard_EXPORT bool operator==(const DF_Label& theLabel); //Returns true if theLabel doesn't equals to this label Standard_EXPORT bool operator!=(const DF_Label& theLabel); //Returns a tag of this Label Standard_EXPORT int Tag() const; //Returns true if this Label is attached to the tree in the Document. Standard_EXPORT bool IsAttached(); //Searches an Attribute with given ID located on this Label. //Returns true if the Attribute is found. Standard_EXPORT DF_Attribute* FindAttribute(const std::string& theID) const; //Returns true if there is an Attribute with given ID on this Label. Standard_EXPORT bool IsAttribute(const std::string& theID) const; //Adds theAttribute to the Label where this Attribute is located. //Returns true if theAttribute was added. Standard_EXPORT bool AddAttribute(DF_Attribute* theAttribute) const; //Forgets an Attribute with given ID located on the this Label. Standard_EXPORT bool ForgetAttribute(const std::string& theID) const; //Forgets all Attributes located on this Label. Standard_EXPORT bool ForgetAllAttributes(bool clearChildren = true) const; //Returns Father of this Label. Standard_EXPORT DF_Label Father() const; //Return true if the label is not initialized Standard_EXPORT bool IsNull() const; //Return true if the label is a Root label Standard_EXPORT bool IsRoot() const; //Returns true if this Label has Attributes. Standard_EXPORT bool HasAttributes() const; //Returns a list of Attributes of this Label. Standard_EXPORT std::vector GetAttributes() const; //Returns true if this Label has a child Label. Standard_EXPORT bool HasChild() const; //Returns a number of child Labels. Standard_EXPORT int NbChildren() const; //Returns the depth (a number of fathers required to identify the Label) of this Label in the tree. Standard_EXPORT int Depth() const; //Returns true if this Label is a descendant of theLabel. Standard_EXPORT bool IsDescendant(const DF_Label& theLabel); //Returns the root Label of a Label tree to which this Label belongs. Standard_EXPORT DF_Label Root() const; //Finds a child Label of this Label with a given tag. If isCreate = true and there is no child //Label with the given tag, the child Label is created. Standard_EXPORT DF_Label FindChild(int theTag, bool isCreate = true); //Creates a new child Label of this Label. Standard_EXPORT DF_Label NewChild(); //Returns a string presentation of the entry Standard_EXPORT std::string Entry() const; //Returns true if theLabel is the same as me Standard_EXPORT bool IsEqual(const DF_Label& theLabel); Standard_EXPORT void dump(); private: //Nullifies the content of the label void Nullify(); friend class DF_Document; friend class DF_ChildIterator; private: DF_LabelNode* _node; }; #endif salome-kernel-6.5.0/src/DF/DF_definitions.hxx000077500000000000000000000063631177004724000207720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef DF_DEF_HXX #define DF_DEF_HXX #ifdef WIN32 # if defined DF_EXPORTS # define DF_EXPORT __declspec( dllexport ) # else # define DF_EXPORT __declspec( dllimport ) # endif #else # define DF_EXPORT #endif #include #include #include template class df_shared_ptr: public boost::shared_ptr { public: df_shared_ptr() {} template explicit df_shared_ptr(Y * p) { boost::shared_ptr::reset(p); } template df_shared_ptr(df_shared_ptr const & r): boost::shared_ptr(r,boost::detail::dynamic_cast_tag()) {} template df_shared_ptr & operator=(df_shared_ptr const & r) { df_shared_ptr(r).swap(*this); return *this; } template df_shared_ptr& operator()(Y * p) // Y must be complete { if(T* pt = dynamic_cast(p)) boost::shared_ptr::reset(pt); else boost::throw_exception(std::bad_cast()); return *this; } }; # if defined(WIN32) && !defined(HAVE_NO_DLL) # ifndef Standard_EXPORT # define Standard_EXPORT __declspec( dllexport ) // For global variables : # define Standard_EXPORTEXTERN __declspec( dllexport ) extern # define Standard_EXPORTEXTERNC extern "C" __declspec( dllexport ) # endif /* Standard_EXPORT */ # ifndef Standard_IMPORT # define Standard_IMPORT __declspec( dllimport ) extern # define Standard_IMPORTC extern "C" __declspec( dllimport ) # endif /* Standard_IMPORT */ # else /* WIN32 */ # ifndef Standard_EXPORT # define Standard_EXPORT // For global variables : # define Standard_EXPORTEXTERN extern # define Standard_EXPORTEXTERNC extern "C" # endif /* Standard_EXPORT */ # ifndef Standard_IMPORT # define Standard_IMPORT extern # define Standard_IMPORTC extern "C" # endif /* Standard_IMPORT */ # endif /* WIN32 */ # ifndef __Standard_API //# ifdef WIN32 # if !defined(WIN32) # define __Standard_API Standard_EXPORT # define __Standard_APIEXTERN Standard_EXPORTEXTERN # else # define __Standard_API Standard_IMPORT # define __Standard_APIEXTERN Standard_IMPORT # endif // __Standard_DLL //# else //# define __Standard_API //# endif // WIN32 # endif // __Standard_API #include class Standard_EXPORT DFexception { public : DFexception(const char *message) { std::cerr << message << std::endl; } }; #endif salome-kernel-6.5.0/src/DF/Makefile.am000077500000000000000000000050401177004724000174000ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= \ DF_Attribute.hxx \ DF_Label.hxx \ DF_Application.hxx \ DF_Document.hxx \ DF_ChildIterator.hxx \ DF_Container.hxx \ DF_definitions.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libDF.la libDF_la_SOURCES = \ DF_Attribute.cxx \ DF_Label.cxx \ DF_Document.cxx \ DF_Application.cxx \ DF_ChildIterator.cxx \ DF_Container.cxx \ \ DF_Attribute.hxx \ DF_Label.hxx \ DF_Application.hxx \ DF_Document.hxx \ DF_ChildIterator.hxx \ DF_Container.hxx \ DF_definitions.hxx libDF_la_CPPFLAGS = $(COMMON_CPPFLAGS) libDF_la_LDFLAGS = -no-undefined -version-info=0:0:0 libDF_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = testDF testDF_SOURCES = testDF.cxx testDF_CPPFLAGS = $(COMMON_CPPFLAGS) testDF_LDADD = ./libDF.la salome-kernel-6.5.0/src/DF/Makefile.in000077500000000000000000001165031177004724000174200ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = testDF$(EXEEXT) subdir = src/DF ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libDF_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libDF_la_OBJECTS = libDF_la-DF_Attribute.lo libDF_la-DF_Label.lo \ libDF_la-DF_Document.lo libDF_la-DF_Application.lo \ libDF_la-DF_ChildIterator.lo libDF_la-DF_Container.lo libDF_la_OBJECTS = $(am_libDF_la_OBJECTS) libDF_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libDF_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_testDF_OBJECTS = testDF-testDF.$(OBJEXT) testDF_OBJECTS = $(am_testDF_OBJECTS) testDF_DEPENDENCIES = ./libDF.la DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libDF_la_SOURCES) $(testDF_SOURCES) DIST_SOURCES = $(libDF_la_SOURCES) $(testDF_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ DF_Attribute.hxx \ DF_Label.hxx \ DF_Application.hxx \ DF_Document.hxx \ DF_ChildIterator.hxx \ DF_Container.hxx \ DF_definitions.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libDF.la libDF_la_SOURCES = \ DF_Attribute.cxx \ DF_Label.cxx \ DF_Document.cxx \ DF_Application.cxx \ DF_ChildIterator.cxx \ DF_Container.cxx \ \ DF_Attribute.hxx \ DF_Label.hxx \ DF_Application.hxx \ DF_Document.hxx \ DF_ChildIterator.hxx \ DF_Container.hxx \ DF_definitions.hxx libDF_la_CPPFLAGS = $(COMMON_CPPFLAGS) libDF_la_LDFLAGS = -no-undefined -version-info=0:0:0 libDF_la_LIBADD = $(COMMON_LIBS) testDF_SOURCES = testDF.cxx testDF_CPPFLAGS = $(COMMON_CPPFLAGS) testDF_LDADD = ./libDF.la all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DF/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DF/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libDF.la: $(libDF_la_OBJECTS) $(libDF_la_DEPENDENCIES) $(libDF_la_LINK) -rpath $(libdir) $(libDF_la_OBJECTS) $(libDF_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list testDF$(EXEEXT): $(testDF_OBJECTS) $(testDF_DEPENDENCIES) @rm -f testDF$(EXEEXT) $(CXXLINK) $(testDF_OBJECTS) $(testDF_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDF_la-DF_Application.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDF_la-DF_Attribute.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDF_la-DF_ChildIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDF_la-DF_Container.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDF_la-DF_Document.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDF_la-DF_Label.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDF-testDF.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libDF_la-DF_Attribute.lo: DF_Attribute.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libDF_la-DF_Attribute.lo -MD -MP -MF $(DEPDIR)/libDF_la-DF_Attribute.Tpo -c -o libDF_la-DF_Attribute.lo `test -f 'DF_Attribute.cxx' || echo '$(srcdir)/'`DF_Attribute.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libDF_la-DF_Attribute.Tpo $(DEPDIR)/libDF_la-DF_Attribute.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF_Attribute.cxx' object='libDF_la-DF_Attribute.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libDF_la-DF_Attribute.lo `test -f 'DF_Attribute.cxx' || echo '$(srcdir)/'`DF_Attribute.cxx libDF_la-DF_Label.lo: DF_Label.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libDF_la-DF_Label.lo -MD -MP -MF $(DEPDIR)/libDF_la-DF_Label.Tpo -c -o libDF_la-DF_Label.lo `test -f 'DF_Label.cxx' || echo '$(srcdir)/'`DF_Label.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libDF_la-DF_Label.Tpo $(DEPDIR)/libDF_la-DF_Label.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF_Label.cxx' object='libDF_la-DF_Label.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libDF_la-DF_Label.lo `test -f 'DF_Label.cxx' || echo '$(srcdir)/'`DF_Label.cxx libDF_la-DF_Document.lo: DF_Document.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libDF_la-DF_Document.lo -MD -MP -MF $(DEPDIR)/libDF_la-DF_Document.Tpo -c -o libDF_la-DF_Document.lo `test -f 'DF_Document.cxx' || echo '$(srcdir)/'`DF_Document.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libDF_la-DF_Document.Tpo $(DEPDIR)/libDF_la-DF_Document.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF_Document.cxx' object='libDF_la-DF_Document.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libDF_la-DF_Document.lo `test -f 'DF_Document.cxx' || echo '$(srcdir)/'`DF_Document.cxx libDF_la-DF_Application.lo: DF_Application.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libDF_la-DF_Application.lo -MD -MP -MF $(DEPDIR)/libDF_la-DF_Application.Tpo -c -o libDF_la-DF_Application.lo `test -f 'DF_Application.cxx' || echo '$(srcdir)/'`DF_Application.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libDF_la-DF_Application.Tpo $(DEPDIR)/libDF_la-DF_Application.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF_Application.cxx' object='libDF_la-DF_Application.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libDF_la-DF_Application.lo `test -f 'DF_Application.cxx' || echo '$(srcdir)/'`DF_Application.cxx libDF_la-DF_ChildIterator.lo: DF_ChildIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libDF_la-DF_ChildIterator.lo -MD -MP -MF $(DEPDIR)/libDF_la-DF_ChildIterator.Tpo -c -o libDF_la-DF_ChildIterator.lo `test -f 'DF_ChildIterator.cxx' || echo '$(srcdir)/'`DF_ChildIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libDF_la-DF_ChildIterator.Tpo $(DEPDIR)/libDF_la-DF_ChildIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF_ChildIterator.cxx' object='libDF_la-DF_ChildIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libDF_la-DF_ChildIterator.lo `test -f 'DF_ChildIterator.cxx' || echo '$(srcdir)/'`DF_ChildIterator.cxx libDF_la-DF_Container.lo: DF_Container.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libDF_la-DF_Container.lo -MD -MP -MF $(DEPDIR)/libDF_la-DF_Container.Tpo -c -o libDF_la-DF_Container.lo `test -f 'DF_Container.cxx' || echo '$(srcdir)/'`DF_Container.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libDF_la-DF_Container.Tpo $(DEPDIR)/libDF_la-DF_Container.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DF_Container.cxx' object='libDF_la-DF_Container.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libDF_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libDF_la-DF_Container.lo `test -f 'DF_Container.cxx' || echo '$(srcdir)/'`DF_Container.cxx testDF-testDF.o: testDF.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDF_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testDF-testDF.o -MD -MP -MF $(DEPDIR)/testDF-testDF.Tpo -c -o testDF-testDF.o `test -f 'testDF.cxx' || echo '$(srcdir)/'`testDF.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/testDF-testDF.Tpo $(DEPDIR)/testDF-testDF.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='testDF.cxx' object='testDF-testDF.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDF_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testDF-testDF.o `test -f 'testDF.cxx' || echo '$(srcdir)/'`testDF.cxx testDF-testDF.obj: testDF.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDF_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testDF-testDF.obj -MD -MP -MF $(DEPDIR)/testDF-testDF.Tpo -c -o testDF-testDF.obj `if test -f 'testDF.cxx'; then $(CYGPATH_W) 'testDF.cxx'; else $(CYGPATH_W) '$(srcdir)/testDF.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/testDF-testDF.Tpo $(DEPDIR)/testDF-testDF.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='testDF.cxx' object='testDF-testDF.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDF_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testDF-testDF.obj `if test -f 'testDF.cxx'; then $(CYGPATH_W) 'testDF.cxx'; else $(CYGPATH_W) '$(srcdir)/testDF.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DF/testDF.cxx000077500000000000000000000204431177004724000172650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //File: testDF.cxx //Author: Sergey RUIN // #include #include #include #include #include #include "DF_definitions.hxx" #include "DF_Application.hxx" #include "DF_Document.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include "DF_Container.hxx" #include "DF_ChildIterator.hxx" #ifndef WIN32 #include #include #include #include #else #include #include #include #endif void printStr(const std::string& theValue) { std::cout << "printStr: " << theValue << std::endl; } void GetSystemDate(int& year, int& month, int& day, int& hours, int& minutes, int& seconds) { #ifdef WIN32 SYSTEMTIME st; GetLocalTime ( &st ); month = st.wMonth; day = st.wDay; year = st.wYear; hours = st.wHour; minutes = st.wMinute; seconds = st.wSecond; #else struct tm transfert; struct timeval tval; struct timezone tzone; int status; status = gettimeofday( &tval, &tzone ); memcpy(&transfert, localtime((time_t *)&tval.tv_sec), sizeof(tm)); month = transfert.tm_mon + 1; day = transfert.tm_mday; year = transfert.tm_year + 1900; hours = transfert.tm_hour; minutes = transfert.tm_min ; seconds = transfert.tm_sec ; #endif } std::string GetUserName() { #ifdef WIN32 char* pBuff = new char[UNLEN + 1]; DWORD dwSize = UNLEN + 1; std::string retVal; GetUserName ( pBuff, &dwSize ); std::string theTmpUserName(pBuff,(int)dwSize -1 ); retVal = theTmpUserName; delete [] pBuff; return retVal; #else struct passwd *infos; infos = getpwuid(getuid()); return std::string(infos->pw_name); #endif } std::string GetNameFromPath(const std::string& thePath) { if (thePath.empty()) return ""; int pos1 = thePath.rfind('/'); int pos2 = thePath.rfind('\\'); if(pos1 > 0) return thePath.substr(pos1+1, thePath.size()); if(pos2 > 0) return thePath.substr(pos2+1, thePath.size()); return thePath; } std::string GetDirFromPath(const std::string& thePath) { if (thePath.empty()) return ""; int pos = thePath.rfind('/'); std::string path; if(pos > 0) { path = thePath.substr(0, pos+1); } if(path.empty()) { pos = thePath.rfind('\\'); if(pos > 0) path = thePath.substr(0, pos+1); } if(path.empty()) { pos = thePath.rfind('|'); if(pos > 0) path = thePath.substr(0, pos+1); } if(path.empty()) { path = thePath+"/"; } #ifdef WIN32 //Check if the only disk letter is given as path if(path.size() == 2 && path[1] == ':') path +='\\'; #endif for(int i = 0, len = path.size(); i splitString(const std::string& theValue, char separator) { std::vector vs; if(theValue[0] == separator && theValue.size() == 1) return vs; int pos = theValue.find(separator); if(pos < 0) { vs.push_back(theValue); return vs; } std::string s = theValue; if(s[0] == separator) s = s.substr(1, s.size()); while((pos = s.find(separator)) >= 0) { vs.push_back(s.substr(0, pos)); s = s.substr(pos+1, s.size()); } if(!s.empty() && s[0] != separator) vs.push_back(s); return vs; } int main (int argc, char * argv[]) { std::cout << "Test started " << std::endl; DF_Application* appli = new DF_Application; /* DF_Document* doc1 = appli->NewDocument("doc_1"); DF_Label root1 = doc1->Main(); DF_Label child = root1.FindChild(3, true); //0:1:3 DF_Container* attr1 = DF_Container::Set(child); attr1->SetInt("eighteen", 18); DF_Attribute* attr = NULL; if(!(attr = child.FindAttribute(DF_Container::GetID()))) { std::cout << "Attribute wasn't found" << std::endl; } else { attr1 = dynamic_cast(attr); std::cout << "Attribute was found " << " HasID " << attr1->HasIntID("eighteen") << " value = " << attr1->GetInt("eighteen")<< std::endl; } DF_Container *attr2 = (DF_Container*)child.FindAttribute(DF_Container::GetID()); if(!attr2) cout << "Can't find the attribute" << endl; std::cout << "Change find : " << attr2->GetInt("eighteen") << std::endl; std::cout << "Forgetting " << child.ForgetAttribute(DF_Container::GetID()) << std::endl; if(!child.FindAttribute(DF_Container::GetID())) { std::cout << "Attribute wasn't found" << std::endl; } child = root1.NewChild(); //0:1:4 child.NewChild();//0:1:4:1 child.NewChild();//0:1:4:2 std::cout << "Is equal " << (child == child) << std::endl; std::cout << "Is equal " << (child == root1) << std::endl; child = root1.NewChild(); //0:1:5 child.NewChild();//0:1:5:1 root1.NewChild();//0:1:6 DF_ChildIterator CI(root1.Father(), true); //root1.dump(); for(; CI.More(); CI.Next()) { std::cout << CI.Value().Entry() << std::endl; //CI.Value().dump(); } DF_Label L = DF_Label::Label(child, "0:1:4:1"); std::cout << "Found Label " << L.Entry() << std::endl; std::string s("012-56"); int pos = s.find('-'); std::cout << "Fisrt part : " << s.substr(0, pos) << std::endl; std::cout << "Last part : " << s.substr(pos+1, s.size()) << std::endl; std::vector vs = splitString("/dn20/salome/srn/salome2/", '/'); for(int i = 0; iMain(); DF_Label sco = root2.NewChild(); //0:1:1 DF_Label so1 = sco.FindChild(3, true); //0:1:1:3 DF_Label so5 = so1.FindChild(5, true); //0:1:1:5 DF_Label so51 = so5.NewChild(); //0:1:1:5:1 DF_Label so511 = so51.NewChild(); //0:1:1:5:1:1 DF_Label so513 = so51.FindChild(3, true); //0:1:1:5:1:3 DF_Label so5131 = so513.NewChild(); //0:1:1:5:1:3:1 so51.FindChild(2, true); DF_ChildIterator CI2(so5, true); so5.dump(); for(; CI2.More(); CI2.Next()) { std::cout << " ###### Found child with entry = " << CI2.Value().Entry() << std::endl; //CI2.Value().dump(); } delete appli; std::cout << "Test finished " << std::endl; return 0; } salome-kernel-6.5.0/src/DSC/000077500000000000000000000000001177004724000154625ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC.dox000077500000000000000000000037371177004724000166240ustar00rootroot00000000000000/*! \page dsc_page DSC DSC means Dynamic Software Component. It's an extension of the %SALOME programming model. It provides a new paradigm to design %SALOME components. It also provides new ports for %SALOME services. These ports are : interface ports and datastream ports. \section S1_DSC Datastream ports We list in this section the datastream ports that are provided by %SALOME.
  1. BASIC datastream ports
    Port name Data type Idl Name Idl File
    BASIC_short short Data_Short_Port SALOME_Ports.idl
  2. CALCIUM datastream ports
    Port name Data type Idl Name Idl File
    CALCIUM_integer sequence of long Calcium_Integer_Port Calcium_Ports.idl
    CALCIUM_real sequence of float Calcium_Real_Port Calcium_Ports.idl
    CALCIUM_double sequence of double Calcium_Double_Port Calcium_Ports.idl
    CALCIUM_string sequence of %string Calcium_String_Port Calcium_Ports.idl
    CALCIUM_logical sequence of boolean Calcium_Logical_Port Calcium_Ports.idl
    CALCIUM_complex sequence of float Calcium_Complex_Port Calcium_Ports.idl
  3. PALM datastream ports
    Port name Data type Idl Name Idl File
    PALM_short short Palm_Data_Short_Port Palm_Ports.idl
    PALM_seq_short sequence of short Palm_Data_Seq_Short_Port Palm_Ports.idl
*/ salome-kernel-6.5.0/src/DSC/DSC_Basic/000077500000000000000000000000001177004724000171745ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC_Basic/ConnectionManager_i.cxx000077500000000000000000000105371177004724000236330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : ConnectionManager_i.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "ConnectionManager_i.hxx" #include "SALOME_NamingService.hxx" #ifdef WIN32 # include #endif ConnectionManager_i::ConnectionManager_i(CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb) ; SALOME_NamingService * ns = new SALOME_NamingService(orb); const char * ConnectionManagerNameInNS = "/ConnectionManager"; CORBA::Object_var obref = _this(); _remove_ref(); ns->Register(obref, ConnectionManagerNameInNS); delete ns; current_id = 0; pthread_mutex_init(&mutex, NULL); } ConnectionManager_i::~ConnectionManager_i() {} Engines::ConnectionManager::connectionId ConnectionManager_i::connect(Engines::DSC_ptr uses_component, const char* uses_port_name, Engines::DSC_ptr provides_component, const char* provides_port_name) { Ports::Port_var p_port = provides_component->get_provides_port(provides_port_name, false); uses_component->connect_uses_port(uses_port_name, p_port); provides_component->connect_provides_port(provides_port_name); // Creating a new connection id. // We use a mutex for multithreaded applications. pthread_mutex_lock(&mutex); Engines::ConnectionManager::connectionId rtn_id = current_id; current_id += 1; pthread_mutex_unlock(&mutex); // Creating a new structure containing connection's infos. connection_infos * infos = new connection_infos(); infos->uses_component = Engines::DSC::_duplicate(uses_component); infos->uses_port_name = uses_port_name; infos->provides_component = Engines::DSC::_duplicate(provides_component); infos->provides_port_name = provides_port_name; infos->provides_port = Ports::Port::_duplicate(p_port); // Adding the new connection into the map. ids[rtn_id] = infos; return rtn_id; } void ConnectionManager_i::disconnect(Engines::ConnectionManager::connectionId id, Engines::DSC::Message message) { int err=0; // Connection id exist ? ids_it = ids.find(id); if (ids_it == ids.end()) throw Engines::ConnectionManager::BadId(); // TODO // We need to catch exceptions if one of these disconnect operation fails. connection_infos * infos = ids[id]; try { infos->provides_component->disconnect_provides_port(infos->provides_port_name.c_str(), message); } catch(CORBA::SystemException& ex) { std::cerr << "Problem in disconnect(CORBA::SystemException) provides port: " << infos->provides_port_name << std::endl; err=1; } try { infos->uses_component->disconnect_uses_port(infos->uses_port_name.c_str(), infos->provides_port, message); } catch(CORBA::SystemException& ex) { std::cerr << "Problem in disconnect(CORBA::SystemException) uses port: " << infos->uses_port_name << std::endl; err=1; } delete infos; ids.erase(id); if(err) throw Engines::DSC::BadPortReference(); } void ConnectionManager_i::ShutdownWithExit() { ids_it = ids.begin(); while(ids_it != ids.end()) { disconnect(ids_it->first, Engines::DSC::RemovingConnection); ids_it = ids.begin(); } if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } CORBA::Long ConnectionManager_i::getPID() { return #ifndef WIN32 (CORBA::Long)getpid(); #else (CORBA::Long)_getpid(); #endif } salome-kernel-6.5.0/src/DSC/DSC_Basic/ConnectionManager_i.hxx000077500000000000000000000060601177004724000236340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : ConnectionManager_i.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _CONNECTION_MANAGER_I_HXX_ #define _CONNECTION_MANAGER_I_HXX_ #include "DSC_Basic.hxx" #include #include #include #include #include CORBA_SERVER_HEADER(DSC_Engines) /*! \class ConnectionManager_i * \brief This class implements the interface Engines::ConnectionManager. */ class ConnectionManager_i : public virtual POA_Engines::ConnectionManager { public : ConnectionManager_i(CORBA::ORB_ptr orb); virtual ~ConnectionManager_i(); /*! * CORBA method : connect two ports of two components. * \see Engines::ConnectionManager::connect */ Engines::ConnectionManager::connectionId connect(Engines::DSC_ptr uses_component, const char* uses_port_name, Engines::DSC_ptr provides_component, const char* provides_port_name); /*! * CORBA method : releases a connection performed with * ConnectionManager_i::connect. * * \see Engines::ConnectionManager::disconnect */ void disconnect(Engines::ConnectionManager::connectionId id, Engines::DSC::Message message); /*! Shutdown the ConnectionManager process. */ void ShutdownWithExit(); /*! Returns the PID of the connection manager */ CORBA::Long getPID(); private : struct connection_infos { Engines::DSC_var uses_component; std::string uses_port_name; Engines::DSC_var provides_component; std::string provides_port_name; Ports::Port_var provides_port; }; typedef std::map ids_type; typedef std::map::iterator ids_it_type; ids_type ids; ids_it_type ids_it; int current_id; pthread_mutex_t mutex; protected: CORBA::ORB_var _orb; }; #endif salome-kernel-6.5.0/src/DSC/DSC_Basic/DSC_Basic.hxx000077500000000000000000000023121177004724000214400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_Basic.hxx // Author : Natalia ERMOLAYEVA // Module : SALOME // #ifndef _DSC_Basic_HXX_ #define _DSC_Basic_HXX_ #ifdef WIN32 # if defined DSC_BASIC_EXPORTS || defined SalomeDSCContainer_EXPORTS # define DSC_BASIC_EXPORT __declspec( dllexport ) # else # define DSC_BASIC_EXPORT __declspec( dllimport ) # endif #else # define DSC_BASIC_EXPORT #endif #endif salome-kernel-6.5.0/src/DSC/DSC_Basic/DSC_Callbacks.hxx000077500000000000000000000055441177004724000223100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_Callbacks.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _DSC_CALLBACKS_HXX_ #define _DSC_CALLBACKS_HXX_ #include "DSC_Basic.hxx" #include #include CORBA_SERVER_HEADER(DSC_Engines) /*! \class DSC_Callbacks * \brief This is an abstract class that defines methods that the component * uses to notify the component user code that the state of the component has changed. * * Currently only port's connection modifications are signaled. */ class DSC_BASIC_EXPORT DSC_Callbacks { public: DSC_Callbacks() {} virtual ~DSC_Callbacks() {} /*! \brief This method is used by the component when the number of connection * on a provides port changes. * * This information helps the user code to detect operation on its ports. * * \param provides_port_name the name of the provides name that has changed. * \param connection_nbr the new number of connection on the provides port. * \param message contains informations about the modification of the port. */ virtual void provides_port_changed(const char* provides_port_name, int connection_nbr, const Engines::DSC::Message message) = 0; /*! \brief This method is used by the component when the number of connection * on a uses port changes. * * This information helps the user code to detect operation on its ports. * * \param uses_port_name the name of the uses name that has changed. * \param new_uses_port the new sequence representing the uses port. * \param message contains informations about the modification of the port. */ virtual void uses_port_changed(const char* uses_port_name, Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message) = 0; }; #endif salome-kernel-6.5.0/src/DSC/DSC_Basic/DSC_i.cxx000077500000000000000000000044211177004724000206450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_i.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "DSC_i.hxx" //#define MYDEBUG Engines_DSC_i:: Engines_DSC_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif) : Engines_Component_i(orb, poa, contId, instanceName, interfaceName) { #ifdef MYDEBUG std::cerr << "--Engines_DSC_i: MARK 1 --" << instanceName << "----" << std::endl; #endif } Engines_DSC_i:: Engines_DSC_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif, bool regist) : Engines_Component_i(orb, poa, container, instanceName, interfaceName,notif,regist) { #ifdef MYDEBUG std::cerr << "--Engines_DSC_i: MARK 1 --" << instanceName << "----" << std::endl; #endif } Engines_DSC_i::~Engines_DSC_i() {} salome-kernel-6.5.0/src/DSC/DSC_Basic/DSC_i.hxx000077500000000000000000000145631177004724000206620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_i.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _DSC_I_HXX_ #define _DSC_I_HXX_ #include "DSC_Basic.hxx" #include #include #include #include #include "SALOME_Component_i.hxx" #include "DSC_interface.hxx" /*! \class Engines_DSC_i * \brief This class implements the interface Engines::DSC * * The implementation of methods are performed by the class Engines_DSC_interface. */ class DSC_BASIC_EXPORT Engines_DSC_i: public Engines_Component_i, // keyword virtual is not use to be able to // call the right Engines_Component_i constructor. // If virtual is used, a derived class of Engines_DSC_i // will have to call the right Engines_Component_i constructor. public virtual POA_Engines::DSC, public Engines_DSC_interface { public: Engines_DSC_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif = false); Engines_DSC_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif = false, bool regist = true ); virtual ~Engines_DSC_i(); /*! * \see Engines::DSC::add_provides_port */ virtual void add_provides_port(Ports::Port_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::NilPort, Engines::DSC::BadProperty) { Engines_DSC_interface::add_provides_port(ref, provides_port_name, port_prop); } /*! * \see Engines::DSC::add_uses_port */ virtual void add_uses_port(const char* repository_id, const char* uses_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::BadProperty) { Engines_DSC_interface::add_uses_port(repository_id, uses_port_name, port_prop); } /*! * \see Engines::DSC::get_provides_port */ virtual Ports::Port_ptr get_provides_port(const char* provides_port_name, const CORBA::Boolean connection_error) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { return Engines_DSC_interface::get_provides_port(provides_port_name, connection_error); } /*! * \see Engines::DSC::get_uses_port */ virtual Engines::DSC::uses_port * get_uses_port(const char* uses_port_name) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { return Engines_DSC_interface::get_uses_port(uses_port_name); } /*! * \see Engines::DSC::connect_provides_port */ virtual void connect_provides_port(const char* provides_port_name) throw (Engines::DSC::PortNotDefined) { Engines_DSC_interface::connect_provides_port(provides_port_name); } /*! * \see Engines::DSC::connect_uses_port */ virtual void connect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref) throw (Engines::DSC::PortNotDefined, Engines::DSC::BadPortType, Engines::DSC::NilPort) { Engines_DSC_interface::connect_uses_port(uses_port_name, provides_port_ref); } /*! * \see Engines::DSC::is_connected */ virtual CORBA::Boolean is_connected(const char* port_name) throw (Engines::DSC::PortNotDefined) { return Engines_DSC_interface::is_connected(port_name); } /*! * \see Engines::DSC::disconnect_provides_port */ virtual void disconnect_provides_port(const char* provides_port_name, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { Engines_DSC_interface::disconnect_provides_port(provides_port_name, message); } /*! * \see Engines::DSC::disconnect_uses_port */ virtual void disconnect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortReference) { Engines_DSC_interface::disconnect_uses_port(uses_port_name, provides_port_ref, message); } /*! * \see Engines::DSC::get_port_properties */ virtual Ports::PortProperties_ptr get_port_properties(const char* port_name) throw (Engines::DSC::PortNotDefined) { return Engines_DSC_interface::get_port_properties(port_name); } }; #endif salome-kernel-6.5.0/src/DSC/DSC_Basic/DSC_interface.cxx000077500000000000000000000416541177004724000223660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_interface.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include #include "DSC_interface.hxx" #ifdef WNT #else #include #endif #include #include #include #include //#define MYDEBUG Engines_DSC_interface::Engines_DSC_interface() {} Engines_DSC_interface::~Engines_DSC_interface() { my_ports_it = my_ports.begin(); for(;my_ports_it != my_ports.end();my_ports_it++) delete my_ports_it->second; } void Engines_DSC_interface::add_provides_port(Ports::Port_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::NilPort, Engines::DSC::BadProperty) { // Method args test assert(provides_port_name); if (CORBA::is_nil(ref)) throw Engines::DSC::NilPort(); if (CORBA::is_nil(port_prop)) throw Engines::DSC::BadProperty(); my_ports_it = my_ports.find(provides_port_name); if (my_ports_it == my_ports.end()) { // Creating a new port provides port_t * new_port = new port_t(); new_port->type = provides; new_port->connection_nbr = 0; new_port->provides_port_ref = Ports::Port::_duplicate(ref); new_port->port_prop = Ports::PortProperties::_duplicate(port_prop); // Port into the port's map my_ports[provides_port_name] = new_port; } else throw Engines::DSC::PortAlreadyDefined(); } void Engines_DSC_interface::add_uses_port(const char* repository_id, const char* uses_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::BadProperty) { // Method args test // Note : We can't be shure that repository id // is a correct CORBA id. assert(repository_id); assert(uses_port_name); if (CORBA::is_nil(port_prop)) throw Engines::DSC::BadProperty(); my_ports_it = my_ports.find(uses_port_name); if (my_ports_it == my_ports.end()) { // Creating a new uses port port_t * new_port = new port_t(); new_port->type = uses; new_port->connection_nbr = 0; new_port->uses_port_refs.length(0); new_port->repository_id = repository_id; new_port->port_prop = Ports::PortProperties::_duplicate(port_prop); // Port into port's map my_ports[uses_port_name] = new_port; } else throw Engines::DSC::PortAlreadyDefined(); } Ports::Port_ptr Engines_DSC_interface::get_provides_port(const char* provides_port_name, const CORBA::Boolean connection_error) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortType) { // Method arg test assert(provides_port_name); Ports::Port_ptr rtn_port = Ports::Port::_nil(); // std::cout << "---- DSC_Interface : MARK 1 ---- Recherche de : " << provides_port_name << "----" << std::endl; // ports::iterator it; // std::cout << "----> "; // for(it=my_ports.begin();it!=my_ports.end();++it) // std::cout << "|"<<(*it).first<<"|, "; // std::cout << std::endl; // Searching the port my_ports_it = my_ports.find(provides_port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); if (my_ports[provides_port_name]->type != provides) { Engines::DSC::BadPortType BPT; BPT.expected = CORBA::string_dup("Expected a provides port"); BPT.received = CORBA::string_dup((std::string("Received a uses/none port : ")+provides_port_name).c_str()); throw BPT; } if (my_ports[provides_port_name]->connection_nbr == 0 && connection_error) throw Engines::DSC::PortNotConnected(); rtn_port = Ports::Port::_duplicate(my_ports[provides_port_name]->provides_port_ref); return rtn_port; } Engines::DSC::uses_port * Engines_DSC_interface::get_uses_port(const char* uses_port_name) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortType) { // Method arg test assert(uses_port_name); Engines::DSC::uses_port * rtn_port = NULL; // Searching the uses port my_ports_it = my_ports.find(uses_port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); if (my_ports[uses_port_name]->type != uses){ Engines::DSC::BadPortType BPT; BPT.expected = CORBA::string_dup("Expected a uses port"); BPT.received = CORBA::string_dup((std::string("Received a provides/none port : ")+uses_port_name).c_str()); #ifdef MYDEBUG std::cout << "---- DSC_Interface : MARK 1 ---- exception : " << uses_port_name << "----" << std::endl; #endif throw BPT; } // Is the port connected ? if (my_ports[uses_port_name]->connection_nbr > 0) { rtn_port = new Engines::DSC::uses_port(my_ports[uses_port_name]->uses_port_refs); } else { #ifdef MYDEBUG std::cout << "---- DSC_Interface : MARK 2 ---- exception : " << uses_port_name << "----" << std::endl; #endif throw Engines::DSC::PortNotConnected(); } return rtn_port; } void Engines_DSC_interface::connect_provides_port(const char* provides_port_name) throw (Engines::DSC::PortNotDefined) { // Method arg test assert(provides_port_name); // Searching the provides port my_ports_it = my_ports.find(provides_port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); if (my_ports[provides_port_name]->type != provides) throw Engines::DSC::PortNotDefined(); // Adding a new connection my_ports[provides_port_name]->connection_nbr += 1; // User code is informed provides_port_changed(provides_port_name, my_ports[provides_port_name]->connection_nbr, Engines::DSC::AddingConnection ); } void Engines_DSC_interface::connect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref) throw (Engines::DSC::PortNotDefined, Engines::DSC::BadPortType, Engines::DSC::NilPort) { // Method arg test assert(uses_port_name); if (CORBA::is_nil(provides_port_ref)) throw Engines::DSC::NilPort(); // Searching the uses port my_ports_it = my_ports.find(uses_port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); if (my_ports[uses_port_name]->type != uses) { Engines::DSC::BadPortType BPT; BPT.expected = CORBA::string_dup("Expected a uses port"); BPT.received = CORBA::string_dup((std::string("Received a provides/none port : ")+uses_port_name).c_str()); throw BPT; } // repository_id test const char * repository_id = my_ports[uses_port_name]->repository_id.c_str(); if (provides_port_ref->_is_a(repository_id)) { // Adding provides port into the uses port sequence CORBA::ULong lgth = my_ports[uses_port_name]->uses_port_refs.length(); my_ports[uses_port_name]-> uses_port_refs.length(lgth + 1); my_ports[uses_port_name]->uses_port_refs[lgth] = Ports::Port::_duplicate(provides_port_ref); // Adding a new connection my_ports[uses_port_name]->connection_nbr += 1; // User code is informed uses_port_changed(uses_port_name, new Engines::DSC::uses_port(my_ports[uses_port_name]->uses_port_refs), Engines::DSC::AddingConnection); } else { Engines::DSC::BadPortType BPT; BPT.expected = CORBA::string_dup("Expected ..."); BPT.received = CORBA::string_dup((std::string("Received an incorrect repository id type ")+ repository_id).c_str()); throw BPT; } } CORBA::Boolean Engines_DSC_interface::is_connected(const char* port_name) throw (Engines::DSC::PortNotDefined) { CORBA::Boolean rtn = false; // Method arg test assert(port_name); my_ports_it = my_ports.find(port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); // Is it connected ? if (my_ports[port_name]->connection_nbr > 0) rtn = true; return rtn; } void Engines_DSC_interface::disconnect_provides_port(const char* provides_port_name, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { // Method args test assert(provides_port_name); my_ports_it = my_ports.find(provides_port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); if (my_ports[provides_port_name]->type != provides) throw Engines::DSC::PortNotDefined(); // Is it connected ? if (my_ports[provides_port_name]->connection_nbr > 0) { my_ports[provides_port_name]->connection_nbr -= 1; provides_port_changed(provides_port_name, my_ports[provides_port_name]->connection_nbr, message); } else throw Engines::DSC::PortNotConnected(); } void Engines_DSC_interface::disconnect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortReference) { // Method args test assert(uses_port_name); my_ports_it = my_ports.find(uses_port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); if (my_ports[uses_port_name]->type != uses) throw Engines::DSC::PortNotDefined(); if (CORBA::is_nil(provides_port_ref)) throw Engines::DSC::BadPortReference(); // Is it connected ? if (my_ports[uses_port_name]->connection_nbr > 0) { CORBA::Long port_index = -1; CORBA::ULong seq_length = my_ports[uses_port_name]->uses_port_refs.length(); for(int i = 0; i < seq_length; i++) { if (my_ports[uses_port_name]->uses_port_refs[i]->_is_equivalent(provides_port_ref)) { port_index = i; break; } } if (port_index == -1) throw Engines::DSC::BadPortReference(); my_ports[uses_port_name]->connection_nbr -= 1; Engines::DSC::uses_port * new_uses_port = new Engines::DSC::uses_port(); new_uses_port->length(seq_length - 1); int index_ancien = 0; int index_nouveau = 0; for(;index_ancien < seq_length;) { if (index_ancien == port_index) { // Rien a faire ! // On ne change pas le index du nouveau tableau index_ancien += 1; } else { (*new_uses_port)[index_nouveau] = my_ports[uses_port_name]->uses_port_refs[index_ancien]; index_ancien += 1; index_nouveau += 1; } } // New uses port's sequence my_ports[uses_port_name]->uses_port_refs = *new_uses_port; // The user code is informed uses_port_changed(uses_port_name, new_uses_port, message); } else throw Engines::DSC::PortNotConnected(); } Ports::PortProperties_ptr Engines_DSC_interface::get_port_properties(const char* port_name) throw (Engines::DSC::PortNotDefined) { Ports::PortProperties_ptr rtn_properties = Ports::PortProperties::_nil(); // Method arg test assert(port_name); my_ports_it = my_ports.find(port_name); if (my_ports_it == my_ports.end()) throw Engines::DSC::PortNotDefined(); rtn_properties = Ports::PortProperties::_duplicate(my_ports[port_name]->port_prop); return rtn_properties; } //Trace functions for DSC operations: a local function (initTrace) and a class method (Engines_DSC_interface::writeEvent) static int traceType=-1; // 0=stderr;1=file; static int traceLevel=-1; // 0=no trace;1=normal trace;2=detailed trace static std::ofstream traceFile; static std::ostream *out; //! Initialize the trace file /*! * The trace file depends on an environment variable (DSC_TRACE). If this variable * is equal to 1, the trace file is a file with the name : /.tce. * In all other cases, the trace file is stderr * The environment variable DSC_TRACELEVEL can be used to suppress the trace (value 0) * * \param containerName the name of the container where the trace is built */ static void initTrace(const std::string& containerName) { // if initialization has already been done do nothing if(traceLevel >= 0)return; std::string typeenv="0"; std::string levelenv="1"; char* valenv=0; valenv=getenv("DSC_TRACE"); if(valenv)typeenv=valenv; valenv=getenv("DSC_TRACELEVEL"); if(valenv)levelenv=valenv; if(levelenv=="0") traceLevel=0; // no trace else if(levelenv=="2") traceLevel=2; //detailed trace else traceLevel=1; // normal trace (default) if(traceLevel==0) return; if(typeenv=="1") { //trace in file traceType=1; #ifdef WNT std::string logFilename=getenv("TEMP"); logFilename += "\\"; #else std::string logFilename="/tmp"; char* val = getenv("SALOME_TMP_DIR"); if(val) { struct stat file_info; stat(val, &file_info); bool is_dir = S_ISDIR(file_info.st_mode); if (is_dir)logFilename=val; } logFilename += "/"; #endif logFilename=logFilename+containerName+".tce"; traceFile.open(logFilename.c_str(), std::ios::out | std::ios::app); out=&traceFile; } else { //trace to stderr (default) traceType=0; out=&std::cerr; } //trace heading out->width(17); *out << "Elapsed time" ; *out << " | " ; out->width(16); *out << "Request" ; *out << " | " ; out->width(16); *out << "Container" ; *out << " | " ; out->width(16); *out << "Instance" ; *out << " | " ; out->width(16); *out << "Port" ; *out << " | " ; out->width(24); *out << "Error"; *out << " | " ; *out << "Infos" ; *out << std::endl; } //! Write a record in the trace file /*! * \param request the name of the request executed * \param containerName the name of the container where the request is executed * \param instance_name the name of the component where the request is executed * \param port_name the name of the port that is concerned * \param error if an error has occured, a string that identifies the error * \param message informations about error or about the request */ void Engines_DSC_interface::writeEvent(const char* request,const std::string& containerName, const char* instance_name, const char* port_name, const char* error, const char* message) { if(traceLevel < 0) initTrace(containerName); if(traceLevel == 0)return; #ifdef WNT #else struct timeval tv; gettimeofday(&tv,0); long tt0=tv.tv_sec/3600; //hours if(traceType == 2) { //notifier (not used: salome notifier is now obsolete) std::ostringstream msg; msg.width(7); msg << tt0 ; msg << ":" ; long tt1=(tv.tv_sec-3600*tt0)/60;//minutes msg.width(2); msg << tt1 ; msg << ":" ; long tt2=tv.tv_sec - 3600*tt0-60*tt1; //seconds msg.width(2); msg << tt2 ; msg << ":" ; long tt3=tv.tv_usec/1000; //milliseconds msg.width(3); msg << tt3 ; msg << " | " ; msg.width(24); msg << error; msg << " | " ; msg << message ; //send event to notifier (containerName.c_str(),instance_name, request, msg.str().c_str()) } else { //cerr or file out->width(7); *out << tt0 ; *out << ":" ; long tt1=(tv.tv_sec-3600*tt0)/60;//minutes out->width(2); *out << tt1 ; *out << ":" ; long tt2=tv.tv_sec - 3600*tt0-60*tt1; //seconds out->width(2); *out << tt2 ; *out << ":" ; long tt3=tv.tv_usec/1000; //milliseconds out->width(3); *out << tt3 ; *out << " | " ; out->width(16); *out << request ; *out << " | " ; out->width(16); *out << containerName ; *out << " | " ; out->width(16); *out << instance_name ; *out << " | " ; out->width(16); *out << port_name ; *out << " | " ; out->width(24); *out << error; *out << " | " ; *out << message ; *out << std::endl; } #endif } salome-kernel-6.5.0/src/DSC/DSC_Basic/DSC_interface.hxx000077500000000000000000000140441177004724000223640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_interface.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _DSC_INTERFACE_HXX_ #define _DSC_INTERFACE_HXX_ #include #include #include #include #include "DSC_Callbacks.hxx" /*! \class Engines_DSC_interface * \brief This class implements the interface Engines::DSC * * This class is used by the sequential DSC implementation * and the parallel DSC implementation. */ class Engines_DSC_interface: public DSC_Callbacks { public: Engines_DSC_interface(); virtual ~Engines_DSC_interface(); /*! * \see Engines::DSC::add_provides_port */ virtual void add_provides_port(Ports::Port_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::NilPort, Engines::DSC::BadProperty); /*! * \see Engines::DSC::add_uses_port */ virtual void add_uses_port(const char* repository_id, const char* uses_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::BadProperty); /*! * \see Engines::DSC::get_provides_port */ virtual Ports::Port_ptr get_provides_port(const char* provides_port_name, const CORBA::Boolean connection_error) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortType); /*! * \see Engines::DSC::get_uses_port */ virtual Engines::DSC::uses_port * get_uses_port(const char* uses_port_name) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortType); /*! * \see Engines::DSC::connect_provides_port * * \note This method uses Callbacks mechanism to inform the provides * port how much uses ports are connected with. Currently, the provides * port doesn't know its uses ports references. It's framework or application role * to manage connections between ports. */ virtual void connect_provides_port(const char* provides_port_name) throw (Engines::DSC::PortNotDefined); /*! * \see Engines::DSC::connect_uses_port * * \note This method uses Callbacks mechanism to inform the uses * port how much provides ports are connected with. */ virtual void connect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref) throw (Engines::DSC::PortNotDefined, Engines::DSC::BadPortType, Engines::DSC::NilPort); /*! * \see Engines::DSC::is_connected */ virtual CORBA::Boolean is_connected(const char* port_name) throw (Engines::DSC::PortNotDefined); /*! * \see Engines::DSC::disconnect_provides_port * * \note This method uses Callbacks mechanism to inform the provides * port how much uses ports are connected with. Currently, the provides * port doesn't know its uses ports references. It's framework or application role * to manage connections between ports. */ virtual void disconnect_provides_port(const char* provides_port_name, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected); /*! * \see Engines::DSC::disconnect_uses_port * * * \note This method uses Callbacks mechanism to inform the uses * port how much provides ports are connected with. * * \warning The new sequence of the uses port is sended by the callback. * The old sequence is not destoyed. Is uses port user's role to destroy * the sequence. */ virtual void disconnect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortReference); /*! * \see Engines::DSC::get_port_properties */ virtual Ports::PortProperties_ptr get_port_properties(const char* port_name) throw (Engines::DSC::PortNotDefined); static void writeEvent(const char* request,const std::string& containerName, const char* instance_name, const char* port_name, const char* error, const char* message); protected: /*-------------------------------------------------*/ /* Definition des types pour le stockage des ports */ enum port_type {uses, provides, none}; struct port_t { port_type type; int connection_nbr; // Specifique aux uses port Engines::DSC::uses_port uses_port_refs; std::string repository_id; // Specifique aux provides port; Ports::Port_var provides_port_ref; Ports::PortProperties_var port_prop; }; typedef std::map ports; /*-------------------------------------------------*/ /*-------------------------------------------------*/ ports my_ports; ports::iterator my_ports_it; }; #endif salome-kernel-6.5.0/src/DSC/DSC_Basic/Makefile.am000077500000000000000000000063271177004724000212430ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = ConnectionManager_i.hxx \ DSC_Callbacks.hxx \ DSC_i.hxx \ DSC_interface.hxx \ PortProperties_i.hxx \ DSC_Basic.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/src/Container/libSalomeContainer.la \ @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSCContainer.la libSalomeDSCContainer_la_SOURCES = DSC_i.cxx \ DSC_interface.cxx \ PortProperties_i.cxx libSalomeDSCContainer_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDSCContainer_la_LIBADD = $(COMMON_LIBS) libSalomeDSCContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = SALOME_ConnectionManagerServer SALOME_ConnectionManagerServer_SOURCES = SALOME_ConnectionManagerServer.cxx \ ConnectionManager_i.cxx SALOME_ConnectionManagerServer_CXXFLAGS = $(COMMON_CPPFLAGS) SALOME_ConnectionManagerServer_LDADD = $(top_builddir)/idl/libSalomeIDLKernel.la \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ ${COMMON_LIBS} salome-kernel-6.5.0/src/DSC/DSC_Basic/Makefile.in000077500000000000000000001232421177004724000212500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOME_ConnectionManagerServer$(EXEEXT) subdir = src/DSC/DSC_Basic ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = \ $(top_builddir)/src/Container/libSalomeContainer.la libSalomeDSCContainer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSalomeDSCContainer_la_OBJECTS = \ libSalomeDSCContainer_la-DSC_i.lo \ libSalomeDSCContainer_la-DSC_interface.lo \ libSalomeDSCContainer_la-PortProperties_i.lo libSalomeDSCContainer_la_OBJECTS = \ $(am_libSalomeDSCContainer_la_OBJECTS) libSalomeDSCContainer_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeDSCContainer_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_SALOME_ConnectionManagerServer_OBJECTS = SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.$(OBJEXT) \ SALOME_ConnectionManagerServer-ConnectionManager_i.$(OBJEXT) SALOME_ConnectionManagerServer_OBJECTS = \ $(am_SALOME_ConnectionManagerServer_OBJECTS) SALOME_ConnectionManagerServer_DEPENDENCIES = \ $(top_builddir)/idl/libSalomeIDLKernel.la \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(am__DEPENDENCIES_1) SALOME_ConnectionManagerServer_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDSCContainer_la_SOURCES) \ $(SALOME_ConnectionManagerServer_SOURCES) DIST_SOURCES = $(libSalomeDSCContainer_la_SOURCES) \ $(SALOME_ConnectionManagerServer_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = ConnectionManager_i.hxx \ DSC_Callbacks.hxx \ DSC_i.hxx \ DSC_interface.hxx \ PortProperties_i.hxx \ DSC_Basic.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/src/Container/libSalomeContainer.la \ @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSCContainer.la libSalomeDSCContainer_la_SOURCES = DSC_i.cxx \ DSC_interface.cxx \ PortProperties_i.cxx libSalomeDSCContainer_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDSCContainer_la_LIBADD = $(COMMON_LIBS) libSalomeDSCContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 SALOME_ConnectionManagerServer_SOURCES = SALOME_ConnectionManagerServer.cxx \ ConnectionManager_i.cxx SALOME_ConnectionManagerServer_CXXFLAGS = $(COMMON_CPPFLAGS) SALOME_ConnectionManagerServer_LDADD = $(top_builddir)/idl/libSalomeIDLKernel.la \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ ${COMMON_LIBS} all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/DSC_Basic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/DSC_Basic/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDSCContainer.la: $(libSalomeDSCContainer_la_OBJECTS) $(libSalomeDSCContainer_la_DEPENDENCIES) $(libSalomeDSCContainer_la_LINK) -rpath $(libdir) $(libSalomeDSCContainer_la_OBJECTS) $(libSalomeDSCContainer_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_ConnectionManagerServer$(EXEEXT): $(SALOME_ConnectionManagerServer_OBJECTS) $(SALOME_ConnectionManagerServer_DEPENDENCIES) @rm -f SALOME_ConnectionManagerServer$(EXEEXT) $(SALOME_ConnectionManagerServer_LINK) $(SALOME_ConnectionManagerServer_OBJECTS) $(SALOME_ConnectionManagerServer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCContainer_la-DSC_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCContainer_la-DSC_interface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCContainer_la-PortProperties_i.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDSCContainer_la-DSC_i.lo: DSC_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCContainer_la-DSC_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCContainer_la-DSC_i.Tpo -c -o libSalomeDSCContainer_la-DSC_i.lo `test -f 'DSC_i.cxx' || echo '$(srcdir)/'`DSC_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCContainer_la-DSC_i.Tpo $(DEPDIR)/libSalomeDSCContainer_la-DSC_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_i.cxx' object='libSalomeDSCContainer_la-DSC_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCContainer_la-DSC_i.lo `test -f 'DSC_i.cxx' || echo '$(srcdir)/'`DSC_i.cxx libSalomeDSCContainer_la-DSC_interface.lo: DSC_interface.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCContainer_la-DSC_interface.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCContainer_la-DSC_interface.Tpo -c -o libSalomeDSCContainer_la-DSC_interface.lo `test -f 'DSC_interface.cxx' || echo '$(srcdir)/'`DSC_interface.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCContainer_la-DSC_interface.Tpo $(DEPDIR)/libSalomeDSCContainer_la-DSC_interface.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DSC_interface.cxx' object='libSalomeDSCContainer_la-DSC_interface.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCContainer_la-DSC_interface.lo `test -f 'DSC_interface.cxx' || echo '$(srcdir)/'`DSC_interface.cxx libSalomeDSCContainer_la-PortProperties_i.lo: PortProperties_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCContainer_la-PortProperties_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCContainer_la-PortProperties_i.Tpo -c -o libSalomeDSCContainer_la-PortProperties_i.lo `test -f 'PortProperties_i.cxx' || echo '$(srcdir)/'`PortProperties_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCContainer_la-PortProperties_i.Tpo $(DEPDIR)/libSalomeDSCContainer_la-PortProperties_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PortProperties_i.cxx' object='libSalomeDSCContainer_la-PortProperties_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCContainer_la-PortProperties_i.lo `test -f 'PortProperties_i.cxx' || echo '$(srcdir)/'`PortProperties_i.cxx SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.o: SALOME_ConnectionManagerServer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.o -MD -MP -MF $(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Tpo -c -o SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.o `test -f 'SALOME_ConnectionManagerServer.cxx' || echo '$(srcdir)/'`SALOME_ConnectionManagerServer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Tpo $(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ConnectionManagerServer.cxx' object='SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.o `test -f 'SALOME_ConnectionManagerServer.cxx' || echo '$(srcdir)/'`SALOME_ConnectionManagerServer.cxx SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.obj: SALOME_ConnectionManagerServer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.obj -MD -MP -MF $(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Tpo -c -o SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.obj `if test -f 'SALOME_ConnectionManagerServer.cxx'; then $(CYGPATH_W) 'SALOME_ConnectionManagerServer.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ConnectionManagerServer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Tpo $(DEPDIR)/SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ConnectionManagerServer.cxx' object='SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ConnectionManagerServer-SALOME_ConnectionManagerServer.obj `if test -f 'SALOME_ConnectionManagerServer.cxx'; then $(CYGPATH_W) 'SALOME_ConnectionManagerServer.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ConnectionManagerServer.cxx'; fi` SALOME_ConnectionManagerServer-ConnectionManager_i.o: ConnectionManager_i.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ConnectionManagerServer-ConnectionManager_i.o -MD -MP -MF $(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Tpo -c -o SALOME_ConnectionManagerServer-ConnectionManager_i.o `test -f 'ConnectionManager_i.cxx' || echo '$(srcdir)/'`ConnectionManager_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Tpo $(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConnectionManager_i.cxx' object='SALOME_ConnectionManagerServer-ConnectionManager_i.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ConnectionManagerServer-ConnectionManager_i.o `test -f 'ConnectionManager_i.cxx' || echo '$(srcdir)/'`ConnectionManager_i.cxx SALOME_ConnectionManagerServer-ConnectionManager_i.obj: ConnectionManager_i.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ConnectionManagerServer-ConnectionManager_i.obj -MD -MP -MF $(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Tpo -c -o SALOME_ConnectionManagerServer-ConnectionManager_i.obj `if test -f 'ConnectionManager_i.cxx'; then $(CYGPATH_W) 'ConnectionManager_i.cxx'; else $(CYGPATH_W) '$(srcdir)/ConnectionManager_i.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Tpo $(DEPDIR)/SALOME_ConnectionManagerServer-ConnectionManager_i.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ConnectionManager_i.cxx' object='SALOME_ConnectionManagerServer-ConnectionManager_i.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ConnectionManagerServer_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ConnectionManagerServer-ConnectionManager_i.obj `if test -f 'ConnectionManager_i.cxx'; then $(CYGPATH_W) 'ConnectionManager_i.cxx'; else $(CYGPATH_W) '$(srcdir)/ConnectionManager_i.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/DSC_Basic/PortProperties_i.cxx000077500000000000000000000030261177004724000232350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : PortProperties_i.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "PortProperties_i.hxx" PortProperties_i::PortProperties_i() {} PortProperties_i::~PortProperties_i() {} void PortProperties_i::set_property(const char * name, const CORBA::Any& value) throw (Ports::NotDefined, Ports::BadType) { // Default case, the object has no properties. throw Ports::NotDefined(); } CORBA::Any* PortProperties_i::get_property(const char* name) throw (Ports::NotDefined) { // Default case, the object has no properties. throw Ports::NotDefined(); } salome-kernel-6.5.0/src/DSC/DSC_Basic/PortProperties_i.hxx000077500000000000000000000036441177004724000232500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : PortProperties_i.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _PORTPROPERTIES_I_HXX_ #define _PORTPROPERTIES_I_HXX_ #include "DSC_Basic.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Ports) /*! \class PortProperties_i * \brief This class implements the interface Ports::PortProperties. */ class DSC_BASIC_EXPORT PortProperties_i: public virtual POA_Ports::PortProperties { public: PortProperties_i(); virtual ~PortProperties_i(); /*! * CORBA method : set a value to a property * \see Ports::PortProperties::set_property */ virtual void set_property(const char * name, const CORBA::Any& value) throw (Ports::NotDefined, Ports::BadType); /*! * CORBA method : get the value of a property * \see Ports::PortProperties::get_property */ virtual CORBA::Any* get_property(const char* name) throw (Ports::NotDefined); }; #endif salome-kernel-6.5.0/src/DSC/DSC_Basic/SALOME_ConnectionManagerServer.cxx000077500000000000000000000043621177004724000255510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ConnectionManagerServer.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "ConnectionManager_i.hxx" #include "utilities.h" #include int main(int argc, char* argv[]) { PortableServer::POA_var root_poa; PortableServer::POAManager_var pman; CORBA::Object_var obj; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); try{ obj = orb->resolve_initial_references("RootPOA"); if(!CORBA::is_nil(obj)) root_poa = PortableServer::POA::_narrow(obj); if(!CORBA::is_nil(root_poa)) pman = root_poa->the_POAManager(); // We create a ConnectionManager. // It is automatically added to the RootPOA into its constructor. new ConnectionManager_i(orb); pman->activate(); orb->run(); orb->destroy(); }catch(CORBA::SystemException&){ MESSAGE("Caught CORBA::SystemException."); }catch(PortableServer::POA::WrongPolicy&){ MESSAGE("Caught CORBA::WrongPolicyException."); }catch(PortableServer::POA::ServantAlreadyActive&){ MESSAGE("Caught CORBA::ServantAlreadyActiveException"); }catch(CORBA::Exception&){ MESSAGE("Caught CORBA::Exception."); }catch(std::exception& exc){ MESSAGE("Caught std::exception - "< #include #include #include #include #include //--- from omniORBpy.h (not present on Debian Sarge packages) struct omniORBpyAPI { PyObject* (*cxxObjRefToPyObjRef)(const CORBA::Object_ptr cxx_obj, CORBA::Boolean hold_lock); // Convert a C++ object reference to a Python object reference. // If is true, caller holds the Python interpreter lock. CORBA::Object_ptr (*pyObjRefToCxxObjRef)(PyObject* py_obj, CORBA::Boolean hold_lock); // Convert a Python object reference to a C++ object reference. // Raises BAD_PARAM if the Python object is not an object reference. // If is true, caller holds the Python interpreter lock. PyObject* (*handleCxxSystemException)(const CORBA::SystemException& ex); // Sets the Python exception state to reflect the given C++ system // exception. Always returns NULL. The caller must hold the Python // interpreter lock. }; omniORBpyAPI* api; PyObject* dsc ; %} %init %{ // init section #ifdef WITH_NUMPY import_array() #endif PyObject* omnipy = PyImport_ImportModule((char*)"_omnipy"); if (!omnipy) { PyErr_SetString(PyExc_ImportError, (char*)"Cannot import _omnipy"); return; } PyObject* pyapi = PyObject_GetAttrString(omnipy, (char*)"API"); api = (omniORBpyAPI*)PyCObject_AsVoidPtr(pyapi); Py_DECREF(pyapi); PyObject* engines = PyImport_ImportModule("Engines"); dsc = PyObject_GetAttrString(engines, "DSC"); %} %include /* * Most of this code is borrowed from numpy distribution * The following code originally appeared in enthought/kiva/agg/src/numeric.i, * author unknown. It was translated from C++ to C by John Hunter. Bill * Spotz has modified it slightly to fix some minor bugs, add some comments * and some functionality. */ %{ #ifdef WITH_NUMPY /* With Numpy */ #ifdef HAVE_ISINF #undef HAVE_ISINF #endif #include typedef PyArrayObject ArrayObject; /* Macros to extract array attributes. */ #define is_array(a) ((a) && PyArray_Check((PyArrayObject *)a)) #define array_type(a) (int)(PyArray_TYPE(a)) #define array_dimensions(a) (((PyArrayObject *)a)->nd) #define array_size(a,i) (((PyArrayObject *)a)->dimensions[i]) #define array_is_contiguous(a) (PyArray_ISCONTIGUOUS(a)) const char* pytype_string(PyObject*); const char* typecode_string(int); int type_match(int, int); int require_size(PyArrayObject*, int*, int); int require_dimensions_n(PyArrayObject*, int*, int); int require_dimensions(PyArrayObject*, int); int require_contiguous(PyArrayObject*); PyArrayObject* make_contiguous(PyArrayObject*, int*, int, int); PyArrayObject* obj_to_array_no_conversion(PyObject*, int); PyArrayObject* obj_to_array_allow_conversion(PyObject*, int, int*); PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject*, int, int*); PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject*, int, int*); /* Given a PyObject, return a string describing its type. */ const char* pytype_string(PyObject* py_obj) { if (py_obj == NULL ) return "C NULL value"; if (PyCallable_Check(py_obj)) return "callable" ; if (PyString_Check( py_obj)) return "string" ; if (PyInt_Check( py_obj)) return "int" ; if (PyFloat_Check( py_obj)) return "float" ; if (PyDict_Check( py_obj)) return "dict" ; if (PyList_Check( py_obj)) return "list" ; if (PyTuple_Check( py_obj)) return "tuple" ; if (PyFile_Check( py_obj)) return "file" ; if (PyModule_Check( py_obj)) return "module" ; if (PyInstance_Check(py_obj)) return "instance" ; return "unkown type"; } /* For documentation only : numpy typecodes enum NPY_TYPECHAR { NPY_BOOLLTR = '?', NPY_BYTELTR = 'b', NPY_UBYTELTR = 'B', NPY_SHORTLTR = 'h', NPY_USHORTLTR = 'H', NPY_INTLTR = 'i', NPY_UINTLTR = 'I', NPY_LONGLTR = 'l', NPY_ULONGLTR = 'L', NPY_LONGLONGLTR = 'q', NPY_ULONGLONGLTR = 'Q', NPY_FLOATLTR = 'f', NPY_DOUBLELTR = 'd', NPY_LONGDOUBLELTR = 'g', NPY_CFLOATLTR = 'F', NPY_CDOUBLELTR = 'D', NPY_CLONGDOUBLELTR = 'G', NPY_OBJECTLTR = 'O', NPY_STRINGLTR = 'S', NPY_STRINGLTR2 = 'a', NPY_UNICODELTR = 'U', NPY_VOIDLTR = 'V', NPY_CHARLTR = 'c', NPY_INTPLTR = 'p', NPY_UINTPLTR = 'P', NPY_GENBOOLLTR ='b', NPY_SIGNEDLTR = 'i', NPY_UNSIGNEDLTR = 'u', NPY_FLOATINGLTR = 'f', NPY_COMPLEXLTR = 'c' }; */ /* Given a Numeric typecode, return a string describing the type. */ const char* typecode_string(int typecode) { const char* type_names[] = {"bool","byte","unsigned byte","short", "unsigned short","int","unsigned int","long","unsigned long", "longlong","unsigned longlong", "float","double","long double","complex float","complex double","complex long double", "object","string","unicode","void","ntypes","notype","char","unkown"}; return type_names[typecode]; } /* Make sure input has correct numeric type. Allow character and byte * to match. Also allow int and long to match. */ int type_match(int actual_type, int desired_type) { return PyArray_EquivTypenums(actual_type, desired_type); } /* Given a PyObject pointer, cast it to a PyArrayObject pointer if * legal. If not, set the python error string appropriately and * return NULL./ */ PyArrayObject* obj_to_array_no_conversion(PyObject* input, int typecode) { PyArrayObject* ary = NULL; if (is_array(input) && (typecode == PyArray_NOTYPE || PyArray_EquivTypenums(array_type(input), typecode))) { ary = (PyArrayObject*) input; } else if is_array(input) { const char* desired_type = typecode_string(typecode); const char* actual_type = typecode_string(array_type(input)); PyErr_Format(PyExc_TypeError, "Array of type '%s' required. Array of type '%s' given", desired_type, actual_type); ary = NULL; } else { const char * desired_type = typecode_string(typecode); const char * actual_type = pytype_string(input); PyErr_Format(PyExc_TypeError, "Array of type '%s' required. A %s was given", desired_type, actual_type); ary = NULL; } return ary; } /* Convert the given PyObject to a Numeric array with the given * typecode. On Success, return a valid PyArrayObject* with the * correct type. On failure, the python error string will be set and * the routine returns NULL. */ PyArrayObject* obj_to_array_allow_conversion(PyObject* input, int typecode, int* is_new_object) { PyArrayObject* ary = NULL; PyObject* py_obj; if (is_array(input) && (typecode == PyArray_NOTYPE || type_match(array_type(input),typecode))) { ary = (PyArrayObject*) input; *is_new_object = 0; } else { py_obj = PyArray_FromObject(input, typecode, 0, 0); /* If NULL, PyArray_FromObject will have set python error value.*/ ary = (PyArrayObject*) py_obj; *is_new_object = 1; } return ary; } /* Given a PyArrayObject, check to see if it is contiguous. If so, * return the input pointer and flag it as not a new object. If it is * not contiguous, create a new PyArrayObject using the original data, * flag it as a new object and return the pointer. */ PyArrayObject* make_contiguous(PyArrayObject* ary, int* is_new_object, int min_dims, int max_dims) { PyArrayObject* result; if (array_is_contiguous(ary)) { result = ary; *is_new_object = 0; } else { result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary, array_type(ary), min_dims, max_dims); *is_new_object = 1; } return result; } /* Convert a given PyObject to a contiguous PyArrayObject of the * specified type. If the input object is not a contiguous * PyArrayObject, a new one will be created and the new object flag * will be set. */ PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input, int typecode, int* is_new_object) { int is_new1 = 0; int is_new2 = 0; PyArrayObject* ary2; PyArrayObject* ary1 = obj_to_array_allow_conversion(input, typecode, &is_new1); if (ary1) { ary2 = make_contiguous(ary1, &is_new2, 0, 0); if ( is_new1 && is_new2) { Py_DECREF(ary1); } ary1 = ary2; } *is_new_object = is_new1 || is_new2; return ary1; } /* Test whether a python object is contiguous. If array is * contiguous, return 1. Otherwise, set the python error string and * return 0. */ int require_contiguous(PyArrayObject* ary) { int contiguous = 1; if (!array_is_contiguous(ary)) { PyErr_SetString(PyExc_TypeError, "Array must be contiguous. A discontiguous array was given"); contiguous = 0; } return contiguous; } /* Require the given PyArrayObject to have a specified number of * dimensions. If the array has the specified number of dimensions, * return 1. Otherwise, set the python error string and return 0. */ int require_dimensions(PyArrayObject* ary, int exact_dimensions) { int success = 1; if (array_dimensions(ary) != exact_dimensions) { PyErr_Format(PyExc_TypeError, "Array must have %d dimensions. Given array has %d dimensions", exact_dimensions, array_dimensions(ary)); success = 0; } return success; } /* Require the given PyArrayObject to have one of a list of specified * number of dimensions. If the array has one of the specified number * of dimensions, return 1. Otherwise, set the python error string * and return 0. */ int require_dimensions_n(PyArrayObject* ary, int* exact_dimensions, int n) { int success = 0; int i; char dims_str[255] = ""; char s[255]; for (i = 0; i < n && !success; i++) { if (array_dimensions(ary) == exact_dimensions[i]) { success = 1; } } if (!success) { for (i = 0; i < n-1; i++) { sprintf(s, "%d, ", exact_dimensions[i]); strcat(dims_str,s); } sprintf(s, " or %d", exact_dimensions[n-1]); strcat(dims_str,s); PyErr_Format(PyExc_TypeError, "Array must have %s dimensions. Given array has %d dimensions", dims_str, array_dimensions(ary)); } return success; } /* Require the given PyArrayObject to have a specified shape. If the * array has the specified shape, return 1. Otherwise, set the python * error string and return 0. */ int require_size(PyArrayObject* ary, int* size, int n) { int i; int success = 1; int len; char desired_dims[255] = "["; char s[255]; char actual_dims[255] = "["; for(i=0; i < n;i++) { if (size[i] != -1 && size[i] != array_size(ary,i)) { success = 0; } } if (!success) { for (i = 0; i < n; i++) { if (size[i] == -1) { sprintf(s, "*,"); } else { sprintf(s, "%d,", size[i]); } strcat(desired_dims,s); } len = strlen(desired_dims); desired_dims[len-1] = ']'; for (i = 0; i < n; i++) { sprintf(s, "%d,", array_size(ary,i)); strcat(actual_dims,s); } len = strlen(actual_dims); actual_dims[len-1] = ']'; PyErr_Format(PyExc_TypeError, "Array must have shape of %s. Given array has shape of %s", desired_dims, actual_dims); } return success; } #else /* Without Numpy */ typedef PyObject ArrayObject; #endif %} %include "carrays.i" %array_class(int, intArray); %array_class(long, longArray); %array_class(float, floatArray); %array_class(double, doubleArray); /* special struct to handle string arrays */ %inline %{ struct stringArray { stringArray(int nelements,int size=0) { nelem=nelements; size=size; data= new char*[nelements]; for(int i=0;idata; %#else SWIG_exception(SWIG_TypeError, "type* expected"); %#endif } } %typemap(freearg) type* IN_ARRAY3 { %#ifdef WITH_NUMPY if (is_new_object$argnum && array$argnum) { Py_DECREF(array$argnum); } %#endif } %enddef TYPEMAP_IN3(int, PyArray_INT) TYPEMAP_IN3(long, PyArray_LONG) TYPEMAP_IN3(float, PyArray_FLOAT ) TYPEMAP_IN3(double, PyArray_DOUBLE) #undef TYPEMAP_IN3 %apply int* IN_ARRAY3 {int *eval}; %apply long* IN_ARRAY3 {long *eval}; %apply float* IN_ARRAY3 {float *eval}; %apply double* IN_ARRAY3 {double *eval}; /* Specific typemap for complex */ %typemap(in) float* ecpval (ArrayObject* array=NULL, int is_new_object) { if ((SWIG_ConvertPtr($input, (void **) &$1, $1_descriptor,0)) == -1) { %#ifdef WITH_NUMPY int size[1] = {-1}; array = obj_to_array_contiguous_allow_conversion($input, PyArray_CFLOAT, &is_new_object); if (!array || !require_dimensions(array,1) || !require_size(array,size,1)) SWIG_fail; $1 = (float*) array->data; %#else SWIG_exception(SWIG_TypeError, "complex array expected"); %#endif } } %typemap(freearg) float* ecpval { %#ifdef WITH_NUMPY if (is_new_object$argnum && array$argnum) { Py_DECREF(array$argnum); } %#endif } /* End of Specific typemap for complex */ /* array of strings on input */ %typemap(in) (char** eval,int strSize) (ArrayObject* array=NULL, int is_new_object) { stringArray* sarray; if ((SWIG_ConvertPtr($input, (void **) &sarray, $descriptor(stringArray *),0)) == -1) { %#ifdef WITH_NUMPY int size[1] = {-1}; array = obj_to_array_contiguous_allow_conversion($input, PyArray_STRING, &is_new_object); if (!array || !require_dimensions(array,1) || !require_size(array,size,1)) SWIG_fail; $1 = (char**) malloc(array_size(array,0)*sizeof(char*)); $2 = array->strides[0]; for(int i=0;istrides[0]+1)); strncpy($1[i],(char*) array->data + i* array->strides[0],array->strides[0]); *($1[i]+array->strides[0])='\0'; } %#else SWIG_exception(SWIG_TypeError, "string array expected"); %#endif } else { $1=sarray->data; $2=sarray->size; } } %typemap(freearg) (char** eval,int strSize) { %#ifdef WITH_NUMPY if (array$argnum) { for(int i=0;idata; %#else temp = NULL; SWIG_exception(SWIG_TypeError, "type* expected"); %#endif } } %enddef TYPEMAP_INPLACE3(int, PyArray_INT) TYPEMAP_INPLACE3(long, PyArray_LONG) TYPEMAP_INPLACE3(float, PyArray_FLOAT ) TYPEMAP_INPLACE3(double, PyArray_DOUBLE) #undef TYPEMAP_INPLACE3 %apply int* INPLACE_ARRAY3 {int *lval}; %apply long* INPLACE_ARRAY3 {long *lval}; %apply float* INPLACE_ARRAY3 {float *lval}; %apply double* INPLACE_ARRAY3 {double *lval}; /* typemap for complex inout */ %typemap(in) float* lcpval (ArrayObject* temp=NULL) { if ((SWIG_ConvertPtr($input, (void **) &$1, $1_descriptor,0)) == -1) { %#ifdef WITH_NUMPY temp = obj_to_array_no_conversion($input,PyArray_CFLOAT); if (!temp || !require_contiguous(temp)) SWIG_fail; $1 = (float*) temp->data; %#else temp = NULL; SWIG_exception(SWIG_TypeError, "complex array expected"); %#endif } } /* End of typemap for complex inout */ /* typemap for array of strings on input/output */ %typemap(in) (char** lval,int strSize) (ArrayObject* temp=NULL) { stringArray* sarray; if ((SWIG_ConvertPtr($input, (void **) &sarray, $descriptor(stringArray *) ,0)) == -1) { %#ifdef WITH_NUMPY temp = obj_to_array_no_conversion($input,PyArray_STRING); if (!temp || !require_contiguous(temp)) SWIG_fail; $1 = (char**) malloc(array_size(temp,0)*sizeof(char*)); $2 = temp->strides[0]; for(int i=0;idata+i*temp->strides[0]; memset($1[i],0,temp->strides[0]); //numpy strings must be completed with 0 up to elsize } %#else temp = NULL; SWIG_exception(SWIG_TypeError, "string array expected"); %#endif } else { $1=sarray->data; $2=sarray->size; } } %typemap(freearg) (char** lval,int strSize) { %#ifdef WITH_NUMPY if (temp$argnum) free($1); %#endif } /* End of typemap for array of strings on input/output */ %typemap(in) CORBA::Boolean { $1=(CORBA::Boolean)PyInt_AsLong($input); } %typemap(out) CORBA::Boolean { $result=PyInt_FromLong($1 ? 1 : 0); } %define CORBAPTR(type) %typemap(in) type##_ptr { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef($input,0); $1 = type##::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } %typemap(freearg) type##_ptr { CORBA::release($1); } %enddef CORBAPTR(CORBA::ORB) CORBAPTR(Ports::PortProperties) CORBAPTR(Ports::Port) CORBAPTR(Engines::Container) CORBAPTR(PortableServer::POA) %typemap(out) Ports::Port_ptr { $result = api->cxxObjRefToPyObjRef($1, 1); //All output Ports::Port_ptr variables are duplicated by security. Need to release them for python. CORBA::release($1); } %typemap(out) Ports::PortProperties_ptr, Engines::Salome_file_ptr { $result = api->cxxObjRefToPyObjRef($1, 1); //the _ptr is duplicated by the routine called. //Need to release it for Python because the call to cxxObjRefToPyObjRef has created another ref with a count of 1 CORBA::release($1); } %typemap(out) Engines::DSC::uses_port * { $result = PyList_New($1->length()); for (CORBA::ULong i=0; i < $1->length() ; i++) PyList_SetItem($result,i,api->cxxObjRefToPyObjRef((*$1)[i], 1)); //delete the copy (created by new) of uses port sequence delete $1; } /* * Exception section */ // a general exception handler %exception { Py_BEGIN_ALLOW_THREADS try { $action } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } /* * End of Exception section */ namespace Engines { class DSC { public: enum Message { AddingConnection, RemovingConnection, ApplicationError }; }; } class PySupervCompo:public Superv_Component_i { public: PySupervCompo(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr contai, const char *instanceName, const char *interfaceName); virtual ~PySupervCompo(); CORBA::Boolean init_service(const char * service_name){return true;}; virtual provides_port * create_provides_data_port(const char* port_fab_type) throw (BadFabType); virtual uses_port * create_uses_data_port(const char* port_fab_type) throw (BadFabType); virtual void add_port(const char * port_fab_type, const char * port_type, const char * port_name) throw (PortAlreadyDefined, BadFabType, BadType, BadProperty); template < typename SpecificPortType > SpecificPortType * add_port(const char * port_fab_type, const char * port_type, const char * port_name) throw (PortAlreadyDefined, BadFabType, BadType, BadCast, BadProperty); virtual void add_port(provides_port * port, const char* provides_port_name) throw (PortAlreadyDefined, NilPort, BadProperty); virtual void add_port(uses_port * port, const char* uses_port_name) throw (PortAlreadyDefined, NilPort, BadProperty); template SpecificPortType * get_port( const char * port_name) throw (PortNotDefined, PortNotConnected, BadCast, UnexpectedState); virtual Ports::Port_ptr get_provides_port(const char* provides_port_name, const CORBA::Boolean connection_error) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortType); virtual void connect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref) throw (Engines::DSC::PortNotDefined, Engines::DSC::BadPortType, Engines::DSC::NilPort); virtual void connect_provides_port(const char* provides_port_name) throw (Engines::DSC::PortNotDefined); virtual void disconnect_provides_port(const char* provides_port_name, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected); virtual void disconnect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortReference); virtual Ports::PortProperties_ptr get_port_properties(const char* port_name); // Interface for Salome_file Engines::Salome_file_ptr getInputFileToService(const char* service_name, const char* Salome_file_name); void checkInputFilesToService(const char* service_name); Engines::Salome_file_ptr setInputFileToService(const char* service_name, const char* Salome_file_name); Engines::Salome_file_ptr getOutputFileToService(const char* service_name, const char* Salome_file_name); void checkOutputFilesToService(const char* service_name); Engines::Salome_file_ptr setOutputFileToService(const char* service_name, const char* Salome_file_name); // End of Interface for Salome_file // DSC interface for python components virtual void add_provides_port(Ports::Port_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop); virtual void add_uses_port(const char* repository_id, const char* uses_port_name, Ports::PortProperties_ptr port_prop); virtual Engines::DSC::uses_port * get_uses_port(const char* uses_port_name); CORBA::Boolean is_connected(const char* port_name) throw (Engines::DSC::PortNotDefined); // End of DSC interface for python components static void setTimeOut(); %extend { //To get the address of the component long ptr() { return (long)self; } } }; %apply int *OUTPUT { int *nval }; %apply float *INOUT { float *ti }; %apply float *INPUT { float *tf }; %apply int *INOUT { int *niter }; %apply double *INOUT { double *ti }; %apply double *INPUT { double *tf }; extern "C" void create_calcium_port(Superv_Component_i* compo,char* name,char* type,char *mode,char* depend); %ignore CPMESSAGE; %include "calciumP.h" %cstring_bounded_output(char *instanceName, 1024); int cp_cd(Superv_Component_i *component,char *instanceName); int cp_een(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,int *eval); int cp_edb(Superv_Component_i *component,int dep,double t,int n,char *nom,int nval,double *eval); int cp_ere(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,float *eval); int cp_ecp(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,float *ecpval); int cp_elo(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,int *eval); int cp_ech(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,char** eval,int strSize); int cp_elg(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,long *eval); int cp_eln(Superv_Component_i *component,int dep,float t,int n,char *nom,int nval,long *eval); int cp_len(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,int *lval); int cp_ldb(Superv_Component_i *component,int dep,double *ti,double *tf,int *niter,char *nom,int nmax,int *nval,double *lval); int cp_lre(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,float *lval); int cp_lcp(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,float *lcpval); int cp_llo(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,int *lval); int cp_lch(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,char** lval,int strSize); int cp_llg(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,long *lval); int cp_lln(Superv_Component_i *component,int dep,float *ti,float *tf,int *niter,char *nom,int nmax,int *nval,long *lval); int cp_fini(Superv_Component_i *component,char *nom, int n); int cp_fint(Superv_Component_i *component,char *nom, float t); int cp_effi(Superv_Component_i *component,char *nom, int n); int cp_efft(Superv_Component_i *component,char *nom, float t); int cp_fin(Superv_Component_i *component,int cp_end); salome-kernel-6.5.0/src/DSC/DSC_Python/calcium.py000077500000000000000000000635131177004724000214360ustar00rootroot00000000000000# This file was automatically generated by SWIG (http://www.swig.org). # Version 1.3.40 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. # This file is compatible with both classic and new-style classes. """ CALCIUM python wrapping : Superv_Component class """ from sys import version_info if version_info >= (2,6,0): def swig_import_helper(): from os.path import dirname import imp fp = None try: fp, pathname, description = imp.find_module('_calcium', [dirname(__file__)]) except ImportError: import _calcium return _calcium if fp is not None: try: _mod = imp.load_module('_calcium', fp, pathname, description) finally: fp.close() return _mod _calcium = swig_import_helper() del swig_import_helper else: import _calcium del version_info try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic(self,class_type,name,value,static=1): if (name == "thisown"): return self.this.own(value) if (name == "this"): if type(value).__name__ == 'SwigPyObject': self.__dict__[name] = value return method = class_type.__swig_setmethods__.get(name,None) if method: return method(self,value) if (not static) or hasattr(self,name): self.__dict__[name] = value else: raise AttributeError("You cannot add attributes to %s" % self) def _swig_setattr(self,class_type,name,value): return _swig_setattr_nondynamic(self,class_type,name,value,0) def _swig_getattr(self,class_type,name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name,None) if method: return method(self) raise AttributeError(name) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) try: _object = object _newclass = 1 except AttributeError: class _object : pass _newclass = 0 class intArray(_object): """Proxy of C++ intArray class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, intArray, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, intArray, name) __repr__ = _swig_repr def __init__(self, *args): """__init__(self, size_t nelements) -> intArray""" this = _calcium.new_intArray(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_intArray __del__ = lambda self : None; def __getitem__(self, *args): """__getitem__(self, size_t index) -> int""" return _calcium.intArray___getitem__(self, *args) def __setitem__(self, *args): """__setitem__(self, size_t index, int value)""" return _calcium.intArray___setitem__(self, *args) def cast(self): """cast(self) -> int""" return _calcium.intArray_cast(self) def frompointer(*args): """frompointer(int t) -> intArray""" return _calcium.intArray_frompointer(*args) if _newclass:frompointer = staticmethod(frompointer) __swig_getmethods__["frompointer"] = lambda x: frompointer intArray_swigregister = _calcium.intArray_swigregister intArray_swigregister(intArray) def intArray_frompointer(*args): """intArray_frompointer(int t) -> intArray""" return _calcium.intArray_frompointer(*args) class longArray(_object): """Proxy of C++ longArray class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, longArray, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, longArray, name) __repr__ = _swig_repr def __init__(self, *args): """__init__(self, size_t nelements) -> longArray""" this = _calcium.new_longArray(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_longArray __del__ = lambda self : None; def __getitem__(self, *args): """__getitem__(self, size_t index) -> long""" return _calcium.longArray___getitem__(self, *args) def __setitem__(self, *args): """__setitem__(self, size_t index, long value)""" return _calcium.longArray___setitem__(self, *args) def cast(self): """cast(self) -> long""" return _calcium.longArray_cast(self) def frompointer(*args): """frompointer(long t) -> longArray""" return _calcium.longArray_frompointer(*args) if _newclass:frompointer = staticmethod(frompointer) __swig_getmethods__["frompointer"] = lambda x: frompointer longArray_swigregister = _calcium.longArray_swigregister longArray_swigregister(longArray) def longArray_frompointer(*args): """longArray_frompointer(long t) -> longArray""" return _calcium.longArray_frompointer(*args) class floatArray(_object): """Proxy of C++ floatArray class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, floatArray, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, floatArray, name) __repr__ = _swig_repr def __init__(self, *args): """__init__(self, size_t nelements) -> floatArray""" this = _calcium.new_floatArray(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_floatArray __del__ = lambda self : None; def __getitem__(self, *args): """__getitem__(self, size_t index) -> float""" return _calcium.floatArray___getitem__(self, *args) def __setitem__(self, *args): """__setitem__(self, size_t index, float value)""" return _calcium.floatArray___setitem__(self, *args) def cast(self): """cast(self) -> float""" return _calcium.floatArray_cast(self) def frompointer(*args): """frompointer(float t) -> floatArray""" return _calcium.floatArray_frompointer(*args) if _newclass:frompointer = staticmethod(frompointer) __swig_getmethods__["frompointer"] = lambda x: frompointer floatArray_swigregister = _calcium.floatArray_swigregister floatArray_swigregister(floatArray) def floatArray_frompointer(*args): """floatArray_frompointer(float t) -> floatArray""" return _calcium.floatArray_frompointer(*args) class doubleArray(_object): """Proxy of C++ doubleArray class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, doubleArray, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, doubleArray, name) __repr__ = _swig_repr def __init__(self, *args): """__init__(self, size_t nelements) -> doubleArray""" this = _calcium.new_doubleArray(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_doubleArray __del__ = lambda self : None; def __getitem__(self, *args): """__getitem__(self, size_t index) -> double""" return _calcium.doubleArray___getitem__(self, *args) def __setitem__(self, *args): """__setitem__(self, size_t index, double value)""" return _calcium.doubleArray___setitem__(self, *args) def cast(self): """cast(self) -> double""" return _calcium.doubleArray_cast(self) def frompointer(*args): """frompointer(double t) -> doubleArray""" return _calcium.doubleArray_frompointer(*args) if _newclass:frompointer = staticmethod(frompointer) __swig_getmethods__["frompointer"] = lambda x: frompointer doubleArray_swigregister = _calcium.doubleArray_swigregister doubleArray_swigregister(doubleArray) def doubleArray_frompointer(*args): """doubleArray_frompointer(double t) -> doubleArray""" return _calcium.doubleArray_frompointer(*args) class stringArray(_object): """Proxy of C++ stringArray class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, stringArray, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, stringArray, name) __repr__ = _swig_repr def __init__(self, *args): """ __init__(self, int nelements, int size = 0) -> stringArray __init__(self, int nelements) -> stringArray """ this = _calcium.new_stringArray(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_stringArray __del__ = lambda self : None; def __getitem__(self, *args): """__getitem__(self, int index) -> char""" return _calcium.stringArray___getitem__(self, *args) def __setitem__(self, *args): """__setitem__(self, int index, char value)""" return _calcium.stringArray___setitem__(self, *args) __swig_setmethods__["data"] = _calcium.stringArray_data_set __swig_getmethods__["data"] = _calcium.stringArray_data_get if _newclass:data = _swig_property(_calcium.stringArray_data_get, _calcium.stringArray_data_set) __swig_setmethods__["nelem"] = _calcium.stringArray_nelem_set __swig_getmethods__["nelem"] = _calcium.stringArray_nelem_get if _newclass:nelem = _swig_property(_calcium.stringArray_nelem_get, _calcium.stringArray_nelem_set) __swig_setmethods__["size"] = _calcium.stringArray_size_set __swig_getmethods__["size"] = _calcium.stringArray_size_get if _newclass:size = _swig_property(_calcium.stringArray_size_get, _calcium.stringArray_size_set) stringArray_swigregister = _calcium.stringArray_swigregister stringArray_swigregister(stringArray) class DSC(_object): """Proxy of C++ Engines::DSC class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, DSC, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, DSC, name) __repr__ = _swig_repr AddingConnection = _calcium.DSC_AddingConnection RemovingConnection = _calcium.DSC_RemovingConnection ApplicationError = _calcium.DSC_ApplicationError def __init__(self): """__init__(self) -> DSC""" this = _calcium.new_DSC() try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_DSC __del__ = lambda self : None; DSC_swigregister = _calcium.DSC_swigregister DSC_swigregister(DSC) class PySupervCompo(_object): """Proxy of C++ PySupervCompo class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, PySupervCompo, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, PySupervCompo, name) __repr__ = _swig_repr def __init__(self, *args): """ __init__(self, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr contai, char instanceName, char interfaceName) -> PySupervCompo """ this = _calcium.new_PySupervCompo(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _calcium.delete_PySupervCompo __del__ = lambda self : None; def init_service(self, *args): """init_service(self, char service_name) -> CORBA::Boolean""" return _calcium.PySupervCompo_init_service(self, *args) def create_provides_data_port(self, *args): """create_provides_data_port(self, char port_fab_type) -> provides_port""" return _calcium.PySupervCompo_create_provides_data_port(self, *args) def create_uses_data_port(self, *args): """create_uses_data_port(self, char port_fab_type) -> uses_port""" return _calcium.PySupervCompo_create_uses_data_port(self, *args) def add_port(self, *args): """ add_port(self, char port_fab_type, char port_type, char port_name) add_port(self, provides_port port, char provides_port_name) add_port(self, uses_port port, char uses_port_name) """ return _calcium.PySupervCompo_add_port(self, *args) def get_provides_port(self, *args): """get_provides_port(self, char provides_port_name, CORBA::Boolean connection_error) -> Ports::Port_ptr""" return _calcium.PySupervCompo_get_provides_port(self, *args) def connect_uses_port(self, *args): """connect_uses_port(self, char uses_port_name, Ports::Port_ptr provides_port_ref)""" return _calcium.PySupervCompo_connect_uses_port(self, *args) def connect_provides_port(self, *args): """connect_provides_port(self, char provides_port_name)""" return _calcium.PySupervCompo_connect_provides_port(self, *args) def disconnect_provides_port(self, *args): """disconnect_provides_port(self, char provides_port_name, Message message)""" return _calcium.PySupervCompo_disconnect_provides_port(self, *args) def disconnect_uses_port(self, *args): """ disconnect_uses_port(self, char uses_port_name, Ports::Port_ptr provides_port_ref, Message message) """ return _calcium.PySupervCompo_disconnect_uses_port(self, *args) def get_port_properties(self, *args): """get_port_properties(self, char port_name) -> Ports::PortProperties_ptr""" return _calcium.PySupervCompo_get_port_properties(self, *args) def getInputFileToService(self, *args): """getInputFileToService(self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr""" return _calcium.PySupervCompo_getInputFileToService(self, *args) def checkInputFilesToService(self, *args): """checkInputFilesToService(self, char service_name)""" return _calcium.PySupervCompo_checkInputFilesToService(self, *args) def setInputFileToService(self, *args): """setInputFileToService(self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr""" return _calcium.PySupervCompo_setInputFileToService(self, *args) def getOutputFileToService(self, *args): """getOutputFileToService(self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr""" return _calcium.PySupervCompo_getOutputFileToService(self, *args) def checkOutputFilesToService(self, *args): """checkOutputFilesToService(self, char service_name)""" return _calcium.PySupervCompo_checkOutputFilesToService(self, *args) def setOutputFileToService(self, *args): """setOutputFileToService(self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr""" return _calcium.PySupervCompo_setOutputFileToService(self, *args) def add_provides_port(self, *args): """add_provides_port(self, Ports::Port_ptr ref, char provides_port_name, Ports::PortProperties_ptr port_prop)""" return _calcium.PySupervCompo_add_provides_port(self, *args) def add_uses_port(self, *args): """add_uses_port(self, char repository_id, char uses_port_name, Ports::PortProperties_ptr port_prop)""" return _calcium.PySupervCompo_add_uses_port(self, *args) def get_uses_port(self, *args): """get_uses_port(self, char uses_port_name) -> Engines::DSC::uses_port""" return _calcium.PySupervCompo_get_uses_port(self, *args) def is_connected(self, *args): """is_connected(self, char port_name) -> CORBA::Boolean""" return _calcium.PySupervCompo_is_connected(self, *args) def setTimeOut(): """setTimeOut()""" return _calcium.PySupervCompo_setTimeOut() if _newclass:setTimeOut = staticmethod(setTimeOut) __swig_getmethods__["setTimeOut"] = lambda x: setTimeOut def ptr(self): """ptr(self) -> long""" return _calcium.PySupervCompo_ptr(self) PySupervCompo_swigregister = _calcium.PySupervCompo_swigregister PySupervCompo_swigregister(PySupervCompo) def PySupervCompo_setTimeOut(): """PySupervCompo_setTimeOut()""" return _calcium.PySupervCompo_setTimeOut() def create_calcium_port(*args): """ create_calcium_port(Superv_Component_i compo, char name, char type, char mode, char depend) """ return _calcium.create_calcium_port(*args) TRUE = _calcium.TRUE FALSE = _calcium.FALSE FORMAT_TEMPS = _calcium.FORMAT_TEMPS EPSILON = _calcium.EPSILON VERSION_LEN = _calcium.VERSION_LEN CODE_LEN = _calcium.CODE_LEN VARIABLE_LEN = _calcium.VARIABLE_LEN INSTANCE_LEN = _calcium.INSTANCE_LEN DRIVER_LEN = _calcium.DRIVER_LEN ARCHI_LEN = _calcium.ARCHI_LEN ENV_VAR_LEN = _calcium.ENV_VAR_LEN ACCC_LEN = _calcium.ACCC_LEN PVM_LEN = _calcium.PVM_LEN USER_LEN = _calcium.USER_LEN MACHINE_LEN = _calcium.MACHINE_LEN COMMAND_LEN = _calcium.COMMAND_LEN MAX_LEN = _calcium.MAX_LEN FICHIER_LEN = _calcium.FICHIER_LEN NB_LIGNE_ERREUR = _calcium.NB_LIGNE_ERREUR NB_LIGNE_TRACE = _calcium.NB_LIGNE_TRACE CP_NORMALE = _calcium.CP_NORMALE CP_ANORMALE = _calcium.CP_ANORMALE CP_CONT = _calcium.CP_CONT CP_ARRET = _calcium.CP_ARRET CP_INITIAL = _calcium.CP_INITIAL CP_NON_CONNECTE = _calcium.CP_NON_CONNECTE CP_ATTENTE = _calcium.CP_ATTENTE CP_EXECUTION = _calcium.CP_EXECUTION CP_DECONNECTE = _calcium.CP_DECONNECTE CP_TERMINE = _calcium.CP_TERMINE CP_ENTIER = _calcium.CP_ENTIER CP_REEL = _calcium.CP_REEL CP_DREEL = _calcium.CP_DREEL CP_COMPLEXE = _calcium.CP_COMPLEXE CP_LOGIQUE = _calcium.CP_LOGIQUE CP_CHAINE = _calcium.CP_CHAINE CP_TEMPS = _calcium.CP_TEMPS CP_ITERATION = _calcium.CP_ITERATION CP_SEQUENTIEL = _calcium.CP_SEQUENTIEL CP_IN = _calcium.CP_IN CP_OUT = _calcium.CP_OUT CP_NORMAL = _calcium.CP_NORMAL CP_ESPION = _calcium.CP_ESPION CP_ILLIMITE = _calcium.CP_ILLIMITE CP_AUTESP = _calcium.CP_AUTESP CP_SANS = _calcium.CP_SANS CP_SUCCINCT = _calcium.CP_SUCCINCT CP_DETAILLE = _calcium.CP_DETAILLE CP_PAUSE = _calcium.CP_PAUSE CP_LINEAIRE = _calcium.CP_LINEAIRE CP_ESCALIER = _calcium.CP_ESCALIER TI = _calcium.TI TF = _calcium.TF CP_TOUTES = _calcium.CP_TOUTES CP_AUCUNE = _calcium.CP_AUCUNE CP_PAS = _calcium.CP_PAS CP_ROUTE = _calcium.CP_ROUTE CP_ERREURS = _calcium.CP_ERREURS CP_ROUTE_NORMAL = _calcium.CP_ROUTE_NORMAL CP_ROUTE_DIRECT = _calcium.CP_ROUTE_DIRECT CP_AUTO = _calcium.CP_AUTO CP_BLOCAGE = _calcium.CP_BLOCAGE CP_MANUEL = _calcium.CP_MANUEL CP_IMMEDIATE = _calcium.CP_IMMEDIATE CPLVAV = _calcium.CPLVAV CPLVAF = _calcium.CPLVAF CPLVAS = _calcium.CPLVAS CPLCAV = _calcium.CPLCAV CPLFAV = _calcium.CPLFAV ERREUR = _calcium.ERREUR CONNEXION = _calcium.CONNEXION EMISSION = _calcium.EMISSION DECONNEXION = _calcium.DECONNEXION LECTURE_VARIABLE = _calcium.LECTURE_VARIABLE ECRITURE_VARIABLE = _calcium.ECRITURE_VARIABLE FIN_DE_PAS = _calcium.FIN_DE_PAS AUIN_FIN_DE_PAS = _calcium.AUIN_FIN_DE_PAS EFFACEMENT = _calcium.EFFACEMENT MODE_EXEC = _calcium.MODE_EXEC RUN_N_PAS = _calcium.RUN_N_PAS DEF_CODE = _calcium.DEF_CODE DEF_INSTANCE = _calcium.DEF_INSTANCE DEF_LIEN = _calcium.DEF_LIEN DEM_VERSION = _calcium.DEM_VERSION SET_OPTION = _calcium.SET_OPTION DEM_OPTION = _calcium.DEM_OPTION DEM_CODES = _calcium.DEM_CODES DEM_INSTS_DE_CODE = _calcium.DEM_INSTS_DE_CODE DEM_VARIABLES = _calcium.DEM_VARIABLES DEM_VARS_DE_CODE = _calcium.DEM_VARS_DE_CODE DEM_VARS_DE_INST = _calcium.DEM_VARS_DE_INST DEM_CARS_DE_VARIABLE = _calcium.DEM_CARS_DE_VARIABLE DEM_CARS_DE_LIEN = _calcium.DEM_CARS_DE_LIEN ENV_VALEURS_VARIABLE = _calcium.ENV_VALEURS_VARIABLE ENV_OPTION = _calcium.ENV_OPTION ENV_CODES = _calcium.ENV_CODES ENV_INSTS_DE_CODE = _calcium.ENV_INSTS_DE_CODE ENV_VARIABLES = _calcium.ENV_VARIABLES ENV_VARS_DE_CODE = _calcium.ENV_VARS_DE_CODE ENV_VARS_DE_INST = _calcium.ENV_VARS_DE_INST ENV_CARS_DE_VARIABLE = _calcium.ENV_CARS_DE_VARIABLE ENV_CARS_DE_LIEN = _calcium.ENV_CARS_DE_LIEN ENV_TOPOLOGY = _calcium.ENV_TOPOLOGY R_ENV_TOPOLOGY = _calcium.R_ENV_TOPOLOGY ENV_MACHINE = _calcium.ENV_MACHINE R_ENV_MACHINE = _calcium.R_ENV_MACHINE ENV_CODE = _calcium.ENV_CODE R_ENV_CODE = _calcium.R_ENV_CODE ENV_INSTANCE = _calcium.ENV_INSTANCE R_ENV_INSTANCE = _calcium.R_ENV_INSTANCE ENV_VAR = _calcium.ENV_VAR R_ENV_VAR = _calcium.R_ENV_VAR ENV_LIEN = _calcium.ENV_LIEN R_ENV_LIEN = _calcium.R_ENV_LIEN ENV_ATTRIBUTS = _calcium.ENV_ATTRIBUTS R_ENV_ATTRIBUTS = _calcium.R_ENV_ATTRIBUTS ENV_VDATA = _calcium.ENV_VDATA R_ENV_VDATA = _calcium.R_ENV_VDATA P_HOST_DELETE = _calcium.P_HOST_DELETE P_TASK_EXIT = _calcium.P_TASK_EXIT CPOK = _calcium.CPOK CPERIU = _calcium.CPERIU CPNMVR = _calcium.CPNMVR CPIOVR = _calcium.CPIOVR CPTP = _calcium.CPTP CPTPVR = _calcium.CPTPVR CPIT = _calcium.CPIT CPITVR = _calcium.CPITVR CPRENA = _calcium.CPRENA CPDNTP = _calcium.CPDNTP CPDNDI = _calcium.CPDNDI CPNMCD = _calcium.CPNMCD CPNMIN = _calcium.CPNMIN CPATTENTE = _calcium.CPATTENTE CPBLOC = _calcium.CPBLOC CPNTNULL = _calcium.CPNTNULL CPLGVR = _calcium.CPLGVR CPSTOP = _calcium.CPSTOP CPATAL = _calcium.CPATAL CPNOCP = _calcium.CPNOCP CPCTVR = _calcium.CPCTVR CPPASNULL = _calcium.CPPASNULL CPMACHINE = _calcium.CPMACHINE CPGRNU = _calcium.CPGRNU CPGRIN = _calcium.CPGRIN CPFINFICH = _calcium.CPFINFICH CPERRFICH = _calcium.CPERRFICH CPNORERR = _calcium.CPNORERR CPRUNERR = _calcium.CPRUNERR CPOPT = _calcium.CPOPT CPVALOPT = _calcium.CPVALOPT CPECREFF = _calcium.CPECREFF CPLIEN = _calcium.CPLIEN CPINARRET = _calcium.CPINARRET CPSTOPSEQ = _calcium.CPSTOPSEQ CPDECL = _calcium.CPDECL CPINEXEC = _calcium.CPINEXEC CPPVM = _calcium.CPPVM CPERRINST = _calcium.CPERRINST CPMODE = _calcium.CPMODE CPINSTDEC = _calcium.CPINSTDEC DEBUT_COUPLAGE = _calcium.DEBUT_COUPLAGE FIN_COUPLAGE = _calcium.FIN_COUPLAGE EXEC = _calcium.EXEC CPCD = _calcium.CPCD CPALLOW = _calcium.CPALLOW CPECRI = _calcium.CPECRI DEB_LECT = _calcium.DEB_LECT FIN_LECT = _calcium.FIN_LECT CPFIN = _calcium.CPFIN CPFINP = _calcium.CPFINP CPAUFP = _calcium.CPAUFP CPINFP = _calcium.CPINFP CPEFF = _calcium.CPEFF STOP = _calcium.STOP BLOCAGE = _calcium.BLOCAGE CPPAUSE = _calcium.CPPAUSE CPNORMAL = _calcium.CPNORMAL CPNPAS = _calcium.CPNPAS CPADCD = _calcium.CPADCD CPADINCD = _calcium.CPADINCD CPADLN = _calcium.CPADLN CPIVERS = _calcium.CPIVERS CPICD = _calcium.CPICD CPIINCD = _calcium.CPIINCD CPIVR = _calcium.CPIVR CPIVRCD = _calcium.CPIVRCD CPIVRIN = _calcium.CPIVRIN CPICAVR = _calcium.CPICAVR CPIILIEN = _calcium.CPIILIEN CPSETOPT = _calcium.CPSETOPT CPGETOPT = _calcium.CPGETOPT TASK_EXIT = _calcium.TASK_EXIT HOST_DELETE = _calcium.HOST_DELETE ENTIER = _calcium.ENTIER REEL = _calcium.REEL DREEL = _calcium.DREEL COMPLEXE = _calcium.COMPLEXE LOGIQUE = _calcium.LOGIQUE CHAINE = _calcium.CHAINE def cp_cd(*args): """cp_cd(Superv_Component_i component) -> int""" return _calcium.cp_cd(*args) def cp_een(*args): """ cp_een(Superv_Component_i component, int dep, float t, int n, char nom, int nval, int eval) -> int """ return _calcium.cp_een(*args) def cp_edb(*args): """ cp_edb(Superv_Component_i component, int dep, double t, int n, char nom, int nval, double eval) -> int """ return _calcium.cp_edb(*args) def cp_ere(*args): """ cp_ere(Superv_Component_i component, int dep, float t, int n, char nom, int nval, float eval) -> int """ return _calcium.cp_ere(*args) def cp_ecp(*args): """ cp_ecp(Superv_Component_i component, int dep, float t, int n, char nom, int nval, float ecpval) -> int """ return _calcium.cp_ecp(*args) def cp_elo(*args): """ cp_elo(Superv_Component_i component, int dep, float t, int n, char nom, int nval, int eval) -> int """ return _calcium.cp_elo(*args) def cp_ech(*args): """ cp_ech(Superv_Component_i component, int dep, float t, int n, char nom, int nval, char eval) -> int """ return _calcium.cp_ech(*args) def cp_elg(*args): """ cp_elg(Superv_Component_i component, int dep, float t, int n, char nom, int nval, long eval) -> int """ return _calcium.cp_elg(*args) def cp_eln(*args): """ cp_eln(Superv_Component_i component, int dep, float t, int n, char nom, int nval, long eval) -> int """ return _calcium.cp_eln(*args) def cp_len(*args): """ cp_len(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, int lval) -> int """ return _calcium.cp_len(*args) def cp_ldb(*args): """ cp_ldb(Superv_Component_i component, int dep, double ti, double tf, int niter, char nom, int nmax, double lval) -> int """ return _calcium.cp_ldb(*args) def cp_lre(*args): """ cp_lre(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, float lval) -> int """ return _calcium.cp_lre(*args) def cp_lcp(*args): """ cp_lcp(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, float lcpval) -> int """ return _calcium.cp_lcp(*args) def cp_llo(*args): """ cp_llo(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, int lval) -> int """ return _calcium.cp_llo(*args) def cp_lch(*args): """ cp_lch(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, char lval) -> int """ return _calcium.cp_lch(*args) def cp_llg(*args): """ cp_llg(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, long lval) -> int """ return _calcium.cp_llg(*args) def cp_lln(*args): """ cp_lln(Superv_Component_i component, int dep, float ti, float tf, int niter, char nom, int nmax, long lval) -> int """ return _calcium.cp_lln(*args) def cp_fini(*args): """cp_fini(Superv_Component_i component, char nom, int n) -> int""" return _calcium.cp_fini(*args) def cp_fint(*args): """cp_fint(Superv_Component_i component, char nom, float t) -> int""" return _calcium.cp_fint(*args) def cp_effi(*args): """cp_effi(Superv_Component_i component, char nom, int n) -> int""" return _calcium.cp_effi(*args) def cp_efft(*args): """cp_efft(Superv_Component_i component, char nom, float t) -> int""" return _calcium.cp_efft(*args) def cp_fin(*args): """cp_fin(Superv_Component_i component, int cp_end) -> int""" return _calcium.cp_fin(*args) salome-kernel-6.5.0/src/DSC/DSC_Python/calcium_wrap.cpp000077500000000000000000014127501177004724000226230ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.40 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Python.h has to appear first */ #include /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return and integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCompare(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { register size_t l = 0; register size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ register size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { register int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { register size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; register const unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Compatibility macros for Python 3 */ #if PY_VERSION_HEX >= 0x03000000 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) #endif #ifndef Py_TYPE # define Py_TYPE(op) ((op)->ob_type) #endif /* SWIG APIs for compatibility of both Python 2 & 3 */ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat #else # define SWIG_Python_str_FromFormat PyString_FromFormat #endif /* Warning: This function will allocate a new string in Python 3, * so please call SWIG_Python_str_DelForPy3(x) to free the space. */ SWIGINTERN char* SWIG_Python_str_AsChar(PyObject *str) { #if PY_VERSION_HEX >= 0x03000000 char *cstr; char *newstr; Py_ssize_t len; str = PyUnicode_AsUTF8String(str); PyBytes_AsStringAndSize(str, &cstr, &len); newstr = (char *) malloc(len+1); memcpy(newstr, cstr, len+1); Py_XDECREF(str); return newstr; #else return PyString_AsString(str); #endif } #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) #else # define SWIG_Python_str_DelForPy3(x) #endif SWIGINTERN PyObject* SWIG_Python_str_FromChar(const char *c) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromString(c); #else return PyString_FromString(c); #endif } /* Add PyOS_snprintf for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) # define PyOS_snprintf _snprintf # else # define PyOS_snprintf snprintf # endif #endif /* A crude PyString_FromFormat implementation for old Pythons */ #if PY_VERSION_HEX < 0x02020000 #ifndef SWIG_PYBUFFER_SIZE # define SWIG_PYBUFFER_SIZE 1024 #endif static PyObject * PyString_FromFormat(const char *fmt, ...) { va_list ap; char buf[SWIG_PYBUFFER_SIZE * 2]; int res; va_start(ap, fmt); res = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); } #endif /* Add PyObject_Del for old Pythons */ #if PY_VERSION_HEX < 0x01060000 # define PyObject_Del(op) PyMem_DEL((op)) #endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif /* A crude PyExc_StopIteration exception for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # ifndef PyExc_StopIteration # define PyExc_StopIteration PyExc_RuntimeError # endif # ifndef PyObject_GenericGetAttr # define PyObject_GenericGetAttr 0 # endif #endif /* Py_NotImplemented is defined in 2.1 and up. */ #if PY_VERSION_HEX < 0x02010000 # ifndef Py_NotImplemented # define Py_NotImplemented PyExc_RuntimeError # endif #endif /* A crude PyString_AsStringAndSize implementation for old Pythons */ #if PY_VERSION_HEX < 0x02010000 # ifndef PyString_AsStringAndSize # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} # endif #endif /* PySequence_Size for old Pythons */ #if PY_VERSION_HEX < 0x02000000 # ifndef PySequence_Size # define PySequence_Size PySequence_Length # endif #endif /* PyBool_FromLong for old Pythons */ #if PY_VERSION_HEX < 0x02030000 static PyObject *PyBool_FromLong(long ok) { PyObject *result = ok ? Py_True : Py_False; Py_INCREF(result); return result; } #endif /* Py_ssize_t for old Pythons */ /* This code is as recommended by: */ /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); PyErr_Clear(); Py_XINCREF(type); PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ # define SWIG_PYTHON_USE_GIL # endif # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; /* ----------------------------------------------------------------------------- * Wrapper of PyInstanceMethod_New() used in Python 3 * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func) { #if PY_VERSION_HEX >= 0x03000000 return PyInstanceMethod_New(func); #else return NULL; #endif } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif /* ----------------------------------------------------------------------------- * See the LICENSE file for information on copyright, usage and redistribution * of SWIG, and the README file for authors - http://www.swig.org/release.html. * * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, (char *) msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char*) name, obj); Py_DECREF(obj); } /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { #if !defined(SWIG_PYTHON_OUTPUT_TUPLE) if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; #else PyObject* o2; PyObject* o3; if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyTuple_Check(result)) { o2 = result; result = PyTuple_New(1); PyTuple_SET_ITEM(result, 0, o2); } o3 = PyTuple_New(1); PyTuple_SET_ITEM(o3, 0, obj); o2 = result; result = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return result; #endif } /* Unpack the argument tuple */ SWIGINTERN int SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { register Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { register int i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #if PY_VERSION_HEX >= 0x02020000 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); #else #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); #endif /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* How to access Py_None */ #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # ifndef SWIG_PYTHON_NO_BUILD_NONE # ifndef SWIG_PYTHON_BUILD_NONE # define SWIG_PYTHON_BUILD_NONE # endif # endif #endif #ifdef SWIG_PYTHON_BUILD_NONE # ifdef Py_None # undef Py_None # define Py_None SWIG_Py_None() # endif SWIGRUNTIMEINLINE PyObject * _SWIG_Py_None(void) { PyObject *none = Py_BuildValue((char*)""); Py_DECREF(none); return none; } SWIGRUNTIME PyObject * SWIG_Py_None(void) { static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); return none; } #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* SwigPyClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; } SwigPyClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; return data ? data->implicitconv : 0; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject* obj) { if (!obj) { return 0; } else { SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { #if (PY_VERSION_HEX < 0x02020000) data->newraw = 0; #else data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); #endif if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); #ifdef METH_O data->delargs = !(flags & (METH_O)); #else data->delargs = 0; #endif } else { data->delargs = 0; } data->implicitconv = 0; return data; } } SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData* data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== SwigPyObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; } SwigPyObject; SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * SwigPyObject_format(const char* fmt, SwigPyObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { PyObject *ofmt = SWIG_Python_str_FromChar(fmt); if (ofmt) { #if PY_VERSION_HEX >= 0x03000000 res = PyUnicode_Format(ofmt,args); #else res = PyString_Format(ofmt,args); #endif Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v) { return SwigPyObject_format("%o",v); } SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v) { return SwigPyObject_format("%x",v); } SWIGRUNTIME PyObject * #ifdef METH_NOARGS SwigPyObject_repr(SwigPyObject *v) #else SwigPyObject_repr(SwigPyObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); PyObject *repr = SWIG_Python_str_FromFormat("", name, v); if (v->next) { #ifdef METH_NOARGS PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); #else PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args); #endif #if PY_VERSION_HEX >= 0x03000000 PyObject *joined = PyUnicode_Concat(repr, nrep); Py_DecRef(repr); Py_DecRef(nrep); repr = joined; #else PyString_ConcatAndDel(&repr,nrep); #endif } return repr; } SWIGRUNTIME int SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *str; #ifdef METH_NOARGS PyObject *repr = SwigPyObject_repr(v); #else PyObject *repr = SwigPyObject_repr(v, NULL); #endif if (repr) { str = SWIG_Python_str_AsChar(repr); fputs(str, fp); SWIG_Python_str_DelForPy3(str); Py_DECREF(repr); return 0; } else { return 1; } } SWIGRUNTIME PyObject * SwigPyObject_str(SwigPyObject *v) { char result[SWIG_BUFFER_SIZE]; return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? SWIG_Python_str_FromChar(result) : 0; } SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } /* Added for Python 3.x, would it also be useful for Python 2.x? */ SWIGRUNTIME PyObject* SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) { PyObject* res; if( op != Py_EQ && op != Py_NE ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } if( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ) res = Py_True; else res = Py_False; Py_INCREF(res); return res; } SWIGRUNTIME PyTypeObject* _PySwigObject_type(void); SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type(); return type; } SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op) { return (Py_TYPE(op) == SwigPyObject_type()) || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v) { SwigPyObject *sobj = (SwigPyObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; if (data->delargs) { /* we need to create a temporary object to carry the destroy operation */ PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* SwigPyObject_append(PyObject* v, PyObject* next) { SwigPyObject *sobj = (SwigPyObject *) v; #ifndef METH_O PyObject *tmp = 0; if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; next = tmp; #endif if (!SwigPyObject_Check(next)) { return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* #ifdef METH_NOARGS SwigPyObject_next(PyObject* v) #else SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_disown(PyObject *v) #else SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_acquire(PyObject *v) #else SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) #else if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) #endif { return NULL; } else { SwigPyObject *sobj = (SwigPyObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { #ifdef METH_NOARGS if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v); } else { SwigPyObject_disown(v); } #else if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v,args); } else { SwigPyObject_disown(v,args); } #endif } return obj; } } #ifdef METH_O static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #else static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #endif #if PY_VERSION_HEX < 0x02020000 SWIGINTERN PyObject * SwigPyObject_getattr(SwigPyObject *sobj,char *name) { return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); } #endif SWIGRUNTIME PyTypeObject* _PySwigObject_type(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods SwigPyObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ /* nb_divide removed in Python 3 */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc)0, /*nb_divide*/ #endif (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_VERSION_HEX < 0x03000000 0, /*nb_coerce*/ #endif (unaryfunc)SwigPyObject_long, /*nb_int*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_long, /*nb_long*/ #else 0, /*nb_reserved*/ #endif (unaryfunc)0, /*nb_float*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif #if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ #endif }; static PyTypeObject swigpyobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyObject", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ (printfunc)SwigPyObject_print, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else (getattrfunc)0, /* tp_getattr */ #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif (reprfunc)SwigPyObject_repr, /* tp_repr */ &SwigPyObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyObject_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ (richcmpfunc)SwigPyObject_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpyobject_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpyobject_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpyobject_type; } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own) { SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } SwigPyPacked; SWIGRUNTIME int SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char result[SWIG_BUFFER_SIZE]; fputs("pack, v->size, 0, sizeof(result))) { fputs("at ", fp); fputs(result, fp); } fputs(v->ty->name,fp); fputs(">", fp); return 0; } SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return SWIG_Python_str_FromFormat("", result, v->ty->name); } else { return SWIG_Python_str_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); } else { return SWIG_Python_str_FromChar(v->ty->name); } } SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void); SWIGRUNTIME PyTypeObject* SwigPyPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type(); return type; } SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op) { return ((op)->ob_type == _PySwigPacked_type()) || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); } SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v) { if (SwigPyPacked_Check(v)) { SwigPyPacked *sobj = (SwigPyPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject swigpypacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyPacked", /* tp_name */ sizeof(SwigPyPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ (printfunc)SwigPyPacked_print, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX>=0x03000000 0, /* tp_reserved in 3.0.1 */ #else (cmpfunc)SwigPyPacked_compare, /* tp_compare */ #endif (reprfunc)SwigPyPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpypacked_type = tmp; /* for Python 3 the ob_type already assigned in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpypacked_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpypacked_type; } SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) { SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (SwigPyPacked_Check(obj)) { SwigPyPacked *sobj = (SwigPyPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIMEINLINE PyObject * _SWIG_This(void) { return SWIG_Python_str_FromChar("this"); } SWIGRUNTIME PyObject * SWIG_This(void) { static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This(); return swig_this; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ /* TODO: I don't know how to implement the fast getset in Python 3 right now */ #if PY_VERSION_HEX>=0x03000000 #define SWIG_PYTHON_SLOW_GETSET_THIS #endif SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { if (SwigPyObject_Check(pyobj)) { return (SwigPyObject *) pyobj; } else { PyObject *obj = 0; #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !SwigPyObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' SwigPyObject from it */ return SWIG_Python_GetSwigThis(obj); } return (SwigPyObject *)obj; } } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { if (!obj) return SWIG_ERROR; if (obj == Py_None) { if (ptr) *ptr = 0; return SWIG_OK; } else { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (SwigPyObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } return SWIG_OK; } else { int res = SWIG_ERROR; if (flags & SWIG_POINTER_IMPLICIT_CONV) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } } return res; } } } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; if (ty) { swig_cast_info *tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } } else { *ptr = vptr; } return SWIG_OK; } } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, without calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) { #if (PY_VERSION_HEX >= 0x02020000) PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { #if PY_VERSION_HEX >= 0x03000000 inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); PyObject_SetAttr(inst, SWIG_This(), swig_this); Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; #else PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); #endif } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) PyObject *inst; PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); if (inst == NULL) { return NULL; } inst->in_class = (PyClassObject *)data->newargs; Py_INCREF(inst->in_class); inst->in_dict = PyDict_New(); if (inst->in_dict == NULL) { Py_DECREF(inst); return NULL; } #ifdef Py_TPFLAGS_HAVE_WEAKREFS inst->in_weakreflist = NULL; #endif #ifdef Py_TPFLAGS_GC PyObject_GC_Init(inst); #endif PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); return (PyObject *) inst; #endif #endif } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, (char*)"__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { SwigPyObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) { if (!ptr) { return SWIG_Py_Void(); } else { int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; PyObject *robj = SwigPyObject_New(ptr, type, own); SwigPyClientData *clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); if (inst) { Py_DECREF(robj); robj = inst; } } return robj; } } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ SWIGINTERN int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return SWIG_ERROR; } if (PyDict_SetItemString(dict, name, o)) return SWIG_ERROR; Py_DECREF(o); return SWIG_OK; } #endif SWIGRUNTIME void SWIG_Python_DestroyModule(void *vptr) { swig_module_info *swig_module = (swig_module_info *) vptr; swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; if (data) SwigPyClientData_Del(data); } } Py_DECREF(SWIG_This()); } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */ #if PY_VERSION_HEX >= 0x03000000 /* Add a dummy module object into sys.modules */ PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION); #else PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = SWIG_Python_str_FromChar(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { obj = PyCObject_FromVoidPtr(descriptor, NULL); PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str)); } else { PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); } SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : (char*)""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && SwigPyObject_Check(obj)) { const char *otype = (const char *) SwigPyObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); SWIG_Python_str_DelForPy3(cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); #if SWIG_POINTER_EXCEPTION if (flags) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } #endif } return result; } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_CORBA__Boolean swig_types[0] #define SWIGTYPE_p_CORBA__ORB_ptr swig_types[1] #define SWIGTYPE_p_Engines__Container_ptr swig_types[2] #define SWIGTYPE_p_Engines__DSC swig_types[3] #define SWIGTYPE_p_PortableServer__POA_ptr swig_types[4] #define SWIGTYPE_p_Ports__PortProperties_ptr swig_types[5] #define SWIGTYPE_p_Ports__Port_ptr swig_types[6] #define SWIGTYPE_p_PySupervCompo swig_types[7] #define SWIGTYPE_p_Superv_Component_i swig_types[8] #define SWIGTYPE_p_char swig_types[9] #define SWIGTYPE_p_double swig_types[10] #define SWIGTYPE_p_doubleArray swig_types[11] #define SWIGTYPE_p_float swig_types[12] #define SWIGTYPE_p_floatArray swig_types[13] #define SWIGTYPE_p_int swig_types[14] #define SWIGTYPE_p_intArray swig_types[15] #define SWIGTYPE_p_long swig_types[16] #define SWIGTYPE_p_longArray swig_types[17] #define SWIGTYPE_p_p_char swig_types[18] #define SWIGTYPE_p_provides_port swig_types[19] #define SWIGTYPE_p_stringArray swig_types[20] #define SWIGTYPE_p_uses_port swig_types[21] static swig_type_info *swig_types[23]; static swig_module_info swig_module = {swig_types, 22, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #if (PY_VERSION_HEX <= 0x02000000) # if !defined(SWIG_PYTHON_CLASSIC) # error "This python version requires swig to be run with the '-classic' option" # endif #endif /*----------------------------------------------- @(target):= _calcium.so ------------------------------------------------*/ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_init PyInit__calcium #else # define SWIG_init init_calcium #endif #define SWIG_name "_calcium" #define SWIGVERSION 0x010340 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class SwigPtr_PyObject { protected: PyObject *_obj; public: SwigPtr_PyObject() :_obj(0) { } SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { Py_XINCREF(_obj); } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { Py_XINCREF(_obj); } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; return *this; } ~SwigPtr_PyObject() { Py_XDECREF(_obj); } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct SwigVar_PyObject : SwigPtr_PyObject { SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { } SwigVar_PyObject & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } //C++ Includes #include #include #include #include #include #include //--- from omniORBpy.h (not present on Debian Sarge packages) struct omniORBpyAPI { PyObject* (*cxxObjRefToPyObjRef)(const CORBA::Object_ptr cxx_obj, CORBA::Boolean hold_lock); // Convert a C++ object reference to a Python object reference. // If is true, caller holds the Python interpreter lock. CORBA::Object_ptr (*pyObjRefToCxxObjRef)(PyObject* py_obj, CORBA::Boolean hold_lock); // Convert a Python object reference to a C++ object reference. // Raises BAD_PARAM if the Python object is not an object reference. // If is true, caller holds the Python interpreter lock. PyObject* (*handleCxxSystemException)(const CORBA::SystemException& ex); // Sets the Python exception state to reflect the given C++ system // exception. Always returns NULL. The caller must hold the Python // interpreter lock. }; omniORBpyAPI* api; PyObject* dsc ; #ifdef WITH_NUMPY /* With Numpy */ #ifdef HAVE_ISINF #undef HAVE_ISINF #endif #include typedef PyArrayObject ArrayObject; /* Macros to extract array attributes. */ #define is_array(a) ((a) && PyArray_Check((PyArrayObject *)a)) #define array_type(a) (int)(PyArray_TYPE(a)) #define array_dimensions(a) (((PyArrayObject *)a)->nd) #define array_size(a,i) (((PyArrayObject *)a)->dimensions[i]) #define array_is_contiguous(a) (PyArray_ISCONTIGUOUS(a)) const char* pytype_string(PyObject*); const char* typecode_string(int); int type_match(int, int); int require_size(PyArrayObject*, int*, int); int require_dimensions_n(PyArrayObject*, int*, int); int require_dimensions(PyArrayObject*, int); int require_contiguous(PyArrayObject*); PyArrayObject* make_contiguous(PyArrayObject*, int*, int, int); PyArrayObject* obj_to_array_no_conversion(PyObject*, int); PyArrayObject* obj_to_array_allow_conversion(PyObject*, int, int*); PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject*, int, int*); PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject*, int, int*); /* Given a PyObject, return a string describing its type. */ const char* pytype_string(PyObject* py_obj) { if (py_obj == NULL ) return "C NULL value"; if (PyCallable_Check(py_obj)) return "callable" ; if (PyString_Check( py_obj)) return "string" ; if (PyInt_Check( py_obj)) return "int" ; if (PyFloat_Check( py_obj)) return "float" ; if (PyDict_Check( py_obj)) return "dict" ; if (PyList_Check( py_obj)) return "list" ; if (PyTuple_Check( py_obj)) return "tuple" ; if (PyFile_Check( py_obj)) return "file" ; if (PyModule_Check( py_obj)) return "module" ; if (PyInstance_Check(py_obj)) return "instance" ; return "unkown type"; } /* For documentation only : numpy typecodes enum NPY_TYPECHAR { NPY_BOOLLTR = '?', NPY_BYTELTR = 'b', NPY_UBYTELTR = 'B', NPY_SHORTLTR = 'h', NPY_USHORTLTR = 'H', NPY_INTLTR = 'i', NPY_UINTLTR = 'I', NPY_LONGLTR = 'l', NPY_ULONGLTR = 'L', NPY_LONGLONGLTR = 'q', NPY_ULONGLONGLTR = 'Q', NPY_FLOATLTR = 'f', NPY_DOUBLELTR = 'd', NPY_LONGDOUBLELTR = 'g', NPY_CFLOATLTR = 'F', NPY_CDOUBLELTR = 'D', NPY_CLONGDOUBLELTR = 'G', NPY_OBJECTLTR = 'O', NPY_STRINGLTR = 'S', NPY_STRINGLTR2 = 'a', NPY_UNICODELTR = 'U', NPY_VOIDLTR = 'V', NPY_CHARLTR = 'c', NPY_INTPLTR = 'p', NPY_UINTPLTR = 'P', NPY_GENBOOLLTR ='b', NPY_SIGNEDLTR = 'i', NPY_UNSIGNEDLTR = 'u', NPY_FLOATINGLTR = 'f', NPY_COMPLEXLTR = 'c' }; */ /* Given a Numeric typecode, return a string describing the type. */ const char* typecode_string(int typecode) { const char* type_names[] = {"bool","byte","unsigned byte","short", "unsigned short","int","unsigned int","long","unsigned long", "longlong","unsigned longlong", "float","double","long double","complex float","complex double","complex long double", "object","string","unicode","void","ntypes","notype","char","unkown"}; return type_names[typecode]; } /* Make sure input has correct numeric type. Allow character and byte * to match. Also allow int and long to match. */ int type_match(int actual_type, int desired_type) { return PyArray_EquivTypenums(actual_type, desired_type); } /* Given a PyObject pointer, cast it to a PyArrayObject pointer if * legal. If not, set the python error string appropriately and * return NULL./ */ PyArrayObject* obj_to_array_no_conversion(PyObject* input, int typecode) { PyArrayObject* ary = NULL; if (is_array(input) && (typecode == PyArray_NOTYPE || PyArray_EquivTypenums(array_type(input), typecode))) { ary = (PyArrayObject*) input; } else if is_array(input) { const char* desired_type = typecode_string(typecode); const char* actual_type = typecode_string(array_type(input)); PyErr_Format(PyExc_TypeError, "Array of type '%s' required. Array of type '%s' given", desired_type, actual_type); ary = NULL; } else { const char * desired_type = typecode_string(typecode); const char * actual_type = pytype_string(input); PyErr_Format(PyExc_TypeError, "Array of type '%s' required. A %s was given", desired_type, actual_type); ary = NULL; } return ary; } /* Convert the given PyObject to a Numeric array with the given * typecode. On Success, return a valid PyArrayObject* with the * correct type. On failure, the python error string will be set and * the routine returns NULL. */ PyArrayObject* obj_to_array_allow_conversion(PyObject* input, int typecode, int* is_new_object) { PyArrayObject* ary = NULL; PyObject* py_obj; if (is_array(input) && (typecode == PyArray_NOTYPE || type_match(array_type(input),typecode))) { ary = (PyArrayObject*) input; *is_new_object = 0; } else { py_obj = PyArray_FromObject(input, typecode, 0, 0); /* If NULL, PyArray_FromObject will have set python error value.*/ ary = (PyArrayObject*) py_obj; *is_new_object = 1; } return ary; } /* Given a PyArrayObject, check to see if it is contiguous. If so, * return the input pointer and flag it as not a new object. If it is * not contiguous, create a new PyArrayObject using the original data, * flag it as a new object and return the pointer. */ PyArrayObject* make_contiguous(PyArrayObject* ary, int* is_new_object, int min_dims, int max_dims) { PyArrayObject* result; if (array_is_contiguous(ary)) { result = ary; *is_new_object = 0; } else { result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary, array_type(ary), min_dims, max_dims); *is_new_object = 1; } return result; } /* Convert a given PyObject to a contiguous PyArrayObject of the * specified type. If the input object is not a contiguous * PyArrayObject, a new one will be created and the new object flag * will be set. */ PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input, int typecode, int* is_new_object) { int is_new1 = 0; int is_new2 = 0; PyArrayObject* ary2; PyArrayObject* ary1 = obj_to_array_allow_conversion(input, typecode, &is_new1); if (ary1) { ary2 = make_contiguous(ary1, &is_new2, 0, 0); if ( is_new1 && is_new2) { Py_DECREF(ary1); } ary1 = ary2; } *is_new_object = is_new1 || is_new2; return ary1; } /* Test whether a python object is contiguous. If array is * contiguous, return 1. Otherwise, set the python error string and * return 0. */ int require_contiguous(PyArrayObject* ary) { int contiguous = 1; if (!array_is_contiguous(ary)) { PyErr_SetString(PyExc_TypeError, "Array must be contiguous. A discontiguous array was given"); contiguous = 0; } return contiguous; } /* Require the given PyArrayObject to have a specified number of * dimensions. If the array has the specified number of dimensions, * return 1. Otherwise, set the python error string and return 0. */ int require_dimensions(PyArrayObject* ary, int exact_dimensions) { int success = 1; if (array_dimensions(ary) != exact_dimensions) { PyErr_Format(PyExc_TypeError, "Array must have %d dimensions. Given array has %d dimensions", exact_dimensions, array_dimensions(ary)); success = 0; } return success; } /* Require the given PyArrayObject to have one of a list of specified * number of dimensions. If the array has one of the specified number * of dimensions, return 1. Otherwise, set the python error string * and return 0. */ int require_dimensions_n(PyArrayObject* ary, int* exact_dimensions, int n) { int success = 0; int i; char dims_str[255] = ""; char s[255]; for (i = 0; i < n && !success; i++) { if (array_dimensions(ary) == exact_dimensions[i]) { success = 1; } } if (!success) { for (i = 0; i < n-1; i++) { sprintf(s, "%d, ", exact_dimensions[i]); strcat(dims_str,s); } sprintf(s, " or %d", exact_dimensions[n-1]); strcat(dims_str,s); PyErr_Format(PyExc_TypeError, "Array must have %s dimensions. Given array has %d dimensions", dims_str, array_dimensions(ary)); } return success; } /* Require the given PyArrayObject to have a specified shape. If the * array has the specified shape, return 1. Otherwise, set the python * error string and return 0. */ int require_size(PyArrayObject* ary, int* size, int n) { int i; int success = 1; int len; char desired_dims[255] = "["; char s[255]; char actual_dims[255] = "["; for(i=0; i < n;i++) { if (size[i] != -1 && size[i] != array_size(ary,i)) { success = 0; } } if (!success) { for (i = 0; i < n; i++) { if (size[i] == -1) { sprintf(s, "*,"); } else { sprintf(s, "%d,", size[i]); } strcat(desired_dims,s); } len = strlen(desired_dims); desired_dims[len-1] = ']'; for (i = 0; i < n; i++) { sprintf(s, "%d,", array_size(ary,i)); strcat(actual_dims,s); } len = strlen(actual_dims); actual_dims[len-1] = ']'; PyErr_Format(PyExc_TypeError, "Array must have shape of %s. Given array has shape of %s", desired_dims, actual_dims); } return success; } #else /* Without Numpy */ typedef PyObject ArrayObject; #endif typedef int intArray; SWIGINTERN int SWIG_AsVal_double (PyObject *obj, double *val) { int res = SWIG_TypeError; if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; } else if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; double d = PyFloat_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = d; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); } else { PyErr_Clear(); } } } #endif return res; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } SWIGINTERN int SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) { if (PyInt_Check(obj)) { long v = PyInt_AsLong(obj); if (v >= 0) { if (val) *val = v; return SWIG_OK; } else { return SWIG_OverflowError; } } else if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { if (val) *val = (unsigned long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERNINLINE int SWIG_AsVal_size_t (PyObject * obj, size_t *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); return res; } SWIGINTERN intArray *new_intArray(size_t nelements){ return (new int[nelements]); } SWIGINTERN void delete_intArray(intArray *self){ delete[] self; } SWIGINTERN int intArray___getitem__(intArray *self,size_t index){ return self[index]; } #define SWIG_From_long PyInt_FromLong SWIGINTERNINLINE PyObject * SWIG_From_int (int value) { return SWIG_From_long (value); } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; long v = PyInt_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_int (PyObject * obj, int *val) { long v; int res = SWIG_AsVal_long (obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } SWIGINTERN void intArray___setitem__(intArray *self,size_t index,int value){ self[index] = value; } SWIGINTERN int *intArray_cast(intArray *self){ return self; } SWIGINTERN intArray *intArray_frompointer(int *t){ return static_cast< intArray * >(t); } typedef long longArray; SWIGINTERN longArray *new_longArray(size_t nelements){ return (new long[nelements]); } SWIGINTERN void delete_longArray(longArray *self){ delete[] self; } SWIGINTERN long longArray___getitem__(longArray *self,size_t index){ return self[index]; } SWIGINTERN void longArray___setitem__(longArray *self,size_t index,long value){ self[index] = value; } SWIGINTERN long *longArray_cast(longArray *self){ return self; } SWIGINTERN longArray *longArray_frompointer(long *t){ return static_cast< longArray * >(t); } typedef float floatArray; SWIGINTERN floatArray *new_floatArray(size_t nelements){ return (new float[nelements]); } SWIGINTERN void delete_floatArray(floatArray *self){ delete[] self; } SWIGINTERN float floatArray___getitem__(floatArray *self,size_t index){ return self[index]; } #define SWIG_From_double PyFloat_FromDouble SWIGINTERNINLINE PyObject * SWIG_From_float (float value) { return SWIG_From_double (value); } SWIGINTERN int SWIG_AsVal_float (PyObject * obj, float *val) { double v; int res = SWIG_AsVal_double (obj, &v); if (SWIG_IsOK(res)) { if ((v < -FLT_MAX || v > FLT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< float >(v); } } return res; } SWIGINTERN void floatArray___setitem__(floatArray *self,size_t index,float value){ self[index] = value; } SWIGINTERN float *floatArray_cast(floatArray *self){ return self; } SWIGINTERN floatArray *floatArray_frompointer(float *t){ return static_cast< floatArray * >(t); } typedef double doubleArray; SWIGINTERN doubleArray *new_doubleArray(size_t nelements){ return (new double[nelements]); } SWIGINTERN void delete_doubleArray(doubleArray *self){ delete[] self; } SWIGINTERN double doubleArray___getitem__(doubleArray *self,size_t index){ return self[index]; } SWIGINTERN void doubleArray___setitem__(doubleArray *self,size_t index,double value){ self[index] = value; } SWIGINTERN double *doubleArray_cast(doubleArray *self){ return self; } SWIGINTERN doubleArray *doubleArray_frompointer(double *t){ return static_cast< doubleArray * >(t); } struct stringArray { stringArray(int nelements,int size=0) { nelem=nelements; size=size; data= new char*[nelements]; for(int i=0;i INT_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromStringAndSize(carray, static_cast< int >(size)); #else return PyString_FromStringAndSize(carray, static_cast< int >(size)); #endif } } else { return SWIG_Py_Void(); } } SWIGINTERNINLINE PyObject * SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 if (PyUnicode_Check(obj)) #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; #if PY_VERSION_HEX>=0x03000000 if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require a UTF-8 representation. TODO(bhy) More detailed explanation */ return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); PyBytes_AsStringAndSize(obj, &cstr, &len); if(alloc) *alloc = SWIG_NEWOBJ; #else PyString_AsStringAndSize(obj, &cstr, &len); #endif if (cptr) { if (alloc) { /* In python the user should not be able to modify the inner string representation. To warranty that, if you define SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string buffer is always returned. The default behavior is just to return the pointer value, so, be careful. */ #if defined(SWIG_PYTHON_SAFE_CSTRINGS) if (*alloc != SWIG_OLDOBJ) #else if (*alloc == SWIG_NEWOBJ) #endif { *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { #if PY_VERSION_HEX>=0x03000000 assert(0); /* Should never reach here in Python 3 */ #endif *cptr = SWIG_Python_str_AsChar(obj); } } if (psize) *psize = len + 1; #if PY_VERSION_HEX>=0x03000000 Py_XDECREF(obj); #endif return SWIG_OK; } else { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *) vptr; if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } SWIGINTERN long PySupervCompo_ptr(PySupervCompo *self){ return (long)self; } #ifdef __cplusplus extern "C" { #endif SWIGINTERN PyObject *_wrap_new_intArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; size_t arg1 ; size_t val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; intArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_intArray",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_size_t(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_intArray" "', argument " "1"" of type '" "size_t""'"); } arg1 = static_cast< size_t >(val1); result = (intArray *)new_intArray(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_intArray, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_intArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; intArray *arg1 = (intArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_intArray",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intArray, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_intArray" "', argument " "1"" of type '" "intArray *""'"); } arg1 = reinterpret_cast< intArray * >(argp1); delete_intArray(arg1); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_intArray___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; intArray *arg1 = (intArray *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:intArray___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intArray___getitem__" "', argument " "1"" of type '" "intArray *""'"); } arg1 = reinterpret_cast< intArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "intArray___getitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); result = (int)intArray___getitem__(arg1,arg2); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_intArray___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; intArray *arg1 = (intArray *) 0 ; size_t arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:intArray___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intArray___setitem__" "', argument " "1"" of type '" "intArray *""'"); } arg1 = reinterpret_cast< intArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "intArray___setitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "intArray___setitem__" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); intArray___setitem__(arg1,arg2,arg3); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_intArray_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; intArray *arg1 = (intArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:intArray_cast",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intArray_cast" "', argument " "1"" of type '" "intArray *""'"); } arg1 = reinterpret_cast< intArray * >(argp1); result = (int *)intArray_cast(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_intArray_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int *arg1 = (int *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; intArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:intArray_frompointer",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_int, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intArray_frompointer" "', argument " "1"" of type '" "int *""'"); } arg1 = reinterpret_cast< int * >(argp1); result = (intArray *)intArray_frompointer(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_intArray, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *intArray_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_intArray, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_longArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; size_t arg1 ; size_t val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; longArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_longArray",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_size_t(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_longArray" "', argument " "1"" of type '" "size_t""'"); } arg1 = static_cast< size_t >(val1); result = (longArray *)new_longArray(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_longArray, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_longArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; longArray *arg1 = (longArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_longArray",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longArray, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_longArray" "', argument " "1"" of type '" "longArray *""'"); } arg1 = reinterpret_cast< longArray * >(argp1); delete_longArray(arg1); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_longArray___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; longArray *arg1 = (longArray *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; long result; if (!PyArg_ParseTuple(args,(char *)"OO:longArray___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longArray___getitem__" "', argument " "1"" of type '" "longArray *""'"); } arg1 = reinterpret_cast< longArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "longArray___getitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); result = (long)longArray___getitem__(arg1,arg2); resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_longArray___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; longArray *arg1 = (longArray *) 0 ; size_t arg2 ; long arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; long val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:longArray___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longArray___setitem__" "', argument " "1"" of type '" "longArray *""'"); } arg1 = reinterpret_cast< longArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "longArray___setitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "longArray___setitem__" "', argument " "3"" of type '" "long""'"); } arg3 = static_cast< long >(val3); longArray___setitem__(arg1,arg2,arg3); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_longArray_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; longArray *arg1 = (longArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; long *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:longArray_cast",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longArray_cast" "', argument " "1"" of type '" "longArray *""'"); } arg1 = reinterpret_cast< longArray * >(argp1); result = (long *)longArray_cast(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_long, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_longArray_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; long *arg1 = (long *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; longArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:longArray_frompointer",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_long, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longArray_frompointer" "', argument " "1"" of type '" "long *""'"); } arg1 = reinterpret_cast< long * >(argp1); result = (longArray *)longArray_frompointer(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_longArray, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *longArray_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_longArray, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_floatArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; size_t arg1 ; size_t val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; floatArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_floatArray",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_size_t(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_floatArray" "', argument " "1"" of type '" "size_t""'"); } arg1 = static_cast< size_t >(val1); result = (floatArray *)new_floatArray(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatArray, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_floatArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; floatArray *arg1 = (floatArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_floatArray",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_floatArray, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_floatArray" "', argument " "1"" of type '" "floatArray *""'"); } arg1 = reinterpret_cast< floatArray * >(argp1); delete_floatArray(arg1); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_floatArray___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; floatArray *arg1 = (floatArray *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; float result; if (!PyArg_ParseTuple(args,(char *)"OO:floatArray___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_floatArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "floatArray___getitem__" "', argument " "1"" of type '" "floatArray *""'"); } arg1 = reinterpret_cast< floatArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "floatArray___getitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); result = (float)floatArray___getitem__(arg1,arg2); resultobj = SWIG_From_float(static_cast< float >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_floatArray___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; floatArray *arg1 = (floatArray *) 0 ; size_t arg2 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:floatArray___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_floatArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "floatArray___setitem__" "', argument " "1"" of type '" "floatArray *""'"); } arg1 = reinterpret_cast< floatArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "floatArray___setitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "floatArray___setitem__" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); floatArray___setitem__(arg1,arg2,arg3); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_floatArray_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; floatArray *arg1 = (floatArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; float *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:floatArray_cast",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_floatArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "floatArray_cast" "', argument " "1"" of type '" "floatArray *""'"); } arg1 = reinterpret_cast< floatArray * >(argp1); result = (float *)floatArray_cast(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_floatArray_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; float *arg1 = (float *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; floatArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:floatArray_frompointer",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_float, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "floatArray_frompointer" "', argument " "1"" of type '" "float *""'"); } arg1 = reinterpret_cast< float * >(argp1); result = (floatArray *)floatArray_frompointer(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatArray, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *floatArray_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_floatArray, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_doubleArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; size_t arg1 ; size_t val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; doubleArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_doubleArray",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_size_t(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_doubleArray" "', argument " "1"" of type '" "size_t""'"); } arg1 = static_cast< size_t >(val1); result = (doubleArray *)new_doubleArray(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_doubleArray, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_doubleArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; doubleArray *arg1 = (doubleArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_doubleArray",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doubleArray, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_doubleArray" "', argument " "1"" of type '" "doubleArray *""'"); } arg1 = reinterpret_cast< doubleArray * >(argp1); delete_doubleArray(arg1); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_doubleArray___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; doubleArray *arg1 = (doubleArray *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:doubleArray___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doubleArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doubleArray___getitem__" "', argument " "1"" of type '" "doubleArray *""'"); } arg1 = reinterpret_cast< doubleArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "doubleArray___getitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); result = (double)doubleArray___getitem__(arg1,arg2); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_doubleArray___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; doubleArray *arg1 = (doubleArray *) 0 ; size_t arg2 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:doubleArray___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doubleArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doubleArray___setitem__" "', argument " "1"" of type '" "doubleArray *""'"); } arg1 = reinterpret_cast< doubleArray * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "doubleArray___setitem__" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "doubleArray___setitem__" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); doubleArray___setitem__(arg1,arg2,arg3); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_doubleArray_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; doubleArray *arg1 = (doubleArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:doubleArray_cast",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doubleArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doubleArray_cast" "', argument " "1"" of type '" "doubleArray *""'"); } arg1 = reinterpret_cast< doubleArray * >(argp1); result = (double *)doubleArray_cast(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_doubleArray_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double *arg1 = (double *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; doubleArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:doubleArray_frompointer",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doubleArray_frompointer" "', argument " "1"" of type '" "double *""'"); } arg1 = reinterpret_cast< double * >(argp1); result = (doubleArray *)doubleArray_frompointer(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_doubleArray, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *doubleArray_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_doubleArray, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_stringArray__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int arg2 ; int val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; stringArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_stringArray",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_stringArray" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_stringArray" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); result = (stringArray *)new stringArray(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_stringArray, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_stringArray__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; stringArray *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_stringArray",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_stringArray" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); result = (stringArray *)new stringArray(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_stringArray, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_stringArray(PyObject *self, PyObject *args) { int argc; PyObject *argv[3]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 2); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 1) { int _v; { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_stringArray__SWIG_1(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_stringArray__SWIG_0(self, args); } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_stringArray'.\n" " Possible C/C++ prototypes are:\n" " stringArray(int,int)\n" " stringArray(int)\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_stringArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_stringArray",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_stringArray" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:stringArray___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray___getitem__" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "stringArray___getitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); result = (char *)(arg1)->__getitem__(arg2); resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:stringArray___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray___setitem__" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "stringArray___setitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "stringArray___setitem__" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); (arg1)->__setitem__(arg2,arg3); resultobj = SWIG_Py_Void(); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_stringArray_data_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; char **arg2 = (char **) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:stringArray_data_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_data_set" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "stringArray_data_set" "', argument " "2"" of type '" "char **""'"); } arg2 = reinterpret_cast< char ** >(argp2); if (arg1) (arg1)->data = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray_data_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char **result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:stringArray_data_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_data_get" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); result = (char **) ((arg1)->data); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray_nelem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:stringArray_nelem_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_nelem_set" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "stringArray_nelem_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->nelem = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray_nelem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:stringArray_nelem_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_nelem_get" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); result = (int) ((arg1)->nelem); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray_size_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:stringArray_size_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_size_set" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "stringArray_size_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->size = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_stringArray_size_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; stringArray *arg1 = (stringArray *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:stringArray_size_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_stringArray, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_size_get" "', argument " "1"" of type '" "stringArray *""'"); } arg1 = reinterpret_cast< stringArray * >(argp1); result = (int) ((arg1)->size); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *stringArray_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_stringArray, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_DSC(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Engines::DSC *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_DSC")) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { result = (Engines::DSC *)new Engines::DSC(); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Engines__DSC, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_DSC(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Engines::DSC *arg1 = (Engines::DSC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_DSC",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Engines__DSC, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DSC" "', argument " "1"" of type '" "Engines::DSC *""'"); } arg1 = reinterpret_cast< Engines::DSC * >(argp1); { Py_BEGIN_ALLOW_THREADS try { delete arg1; } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *DSC_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_Engines__DSC, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_PySupervCompo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; CORBA::ORB_ptr arg1 ; PortableServer::POA_ptr arg2 ; Engines::Container_ptr arg3 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PySupervCompo *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_PySupervCompo",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj0,0); arg1 = CORBA::ORB::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj1,0); arg2 = PortableServer::POA::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj2,0); arg3 = Engines::Container::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_PySupervCompo" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_PySupervCompo" "', argument " "5"" of type '" "char const *""'"); } arg5 = reinterpret_cast< char * >(buf5); { Py_BEGIN_ALLOW_THREADS try { result = (PySupervCompo *)new PySupervCompo(arg1,arg2,arg3,(char const *)arg4,(char const *)arg5); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_PySupervCompo, SWIG_POINTER_NEW | 0 ); { CORBA::release(arg1); } { CORBA::release(arg2); } { CORBA::release(arg3); } if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return resultobj; fail: { CORBA::release(arg1); } { CORBA::release(arg2); } { CORBA::release(arg3); } if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return NULL; } SWIGINTERN PyObject *_wrap_delete_PySupervCompo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_PySupervCompo",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PySupervCompo" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); { Py_BEGIN_ALLOW_THREADS try { delete arg1; } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_init_service(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; CORBA::Boolean result; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_init_service",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_init_service" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_init_service" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->init_service((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj=PyInt_FromLong(result ? 1 : 0); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_create_provides_data_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; provides_port *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_create_provides_data_port",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_create_provides_data_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_create_provides_data_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (provides_port *)(arg1)->create_provides_data_port((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_provides_port, 0 | 0 ); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_create_uses_data_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; uses_port *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_create_uses_data_port",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_create_uses_data_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_create_uses_data_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (uses_port *)(arg1)->create_uses_data_port((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_uses_port, 0 | 0 ); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_add_port__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:PySupervCompo_add_port",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_add_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_add_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_add_port" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "PySupervCompo_add_port" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); { Py_BEGIN_ALLOW_THREADS try { (arg1)->add_port((char const *)arg2,(char const *)arg3,(char const *)arg4); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_add_port__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; provides_port *arg2 = (provides_port *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_add_port",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_add_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_provides_port, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_add_port" "', argument " "2"" of type '" "provides_port *""'"); } arg2 = reinterpret_cast< provides_port * >(argp2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_add_port" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { (arg1)->add_port(arg2,(char const *)arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_add_port__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; uses_port *arg2 = (uses_port *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_add_port",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_add_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_uses_port, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_add_port" "', argument " "2"" of type '" "uses_port *""'"); } arg2 = reinterpret_cast< uses_port * >(argp2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_add_port" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { (arg1)->add_port(arg2,(char const *)arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_add_port(PyObject *self, PyObject *args) { int argc; PyObject *argv[5]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_PySupervCompo, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_provides_port, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_PySupervCompo_add_port__SWIG_2(self, args); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_PySupervCompo, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_uses_port, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_PySupervCompo_add_port__SWIG_3(self, args); } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_PySupervCompo, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_PySupervCompo_add_port__SWIG_0(self, args); } } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'PySupervCompo_add_port'.\n" " Possible C/C++ prototypes are:\n" " add_port(PySupervCompo *,char const *,char const *,char const *)\n" " add_port(PySupervCompo *,provides_port *,char const *)\n" " add_port(PySupervCompo *,uses_port *,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_get_provides_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; CORBA::Boolean arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Ports::Port_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_get_provides_port",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_get_provides_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_get_provides_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { arg3=(CORBA::Boolean)PyInt_AsLong(obj2); } { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->get_provides_port((char const *)arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = api->cxxObjRefToPyObjRef(result, 1); //All output Ports::Port_ptr variables are duplicated by security. Need to release them for python. CORBA::release(result); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_connect_uses_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; Ports::Port_ptr arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_connect_uses_port",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_connect_uses_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_connect_uses_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj2,0); arg3 = Ports::Port::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } { Py_BEGIN_ALLOW_THREADS try { (arg1)->connect_uses_port((char const *)arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; { CORBA::release(arg3); } return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; { CORBA::release(arg3); } return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_connect_provides_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_connect_provides_port",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_connect_provides_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_connect_provides_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { (arg1)->connect_provides_port((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_disconnect_provides_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; Engines::DSC::Message arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_disconnect_provides_port",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_disconnect_provides_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_disconnect_provides_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "PySupervCompo_disconnect_provides_port" "', argument " "3"" of type '" "Engines::DSC::Message""'"); } arg3 = static_cast< Engines::DSC::Message >(val3); { Py_BEGIN_ALLOW_THREADS try { (arg1)->disconnect_provides_port((char const *)arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_disconnect_uses_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; Ports::Port_ptr arg3 ; Engines::DSC::Message arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:PySupervCompo_disconnect_uses_port",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_disconnect_uses_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_disconnect_uses_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj2,0); arg3 = Ports::Port::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "PySupervCompo_disconnect_uses_port" "', argument " "4"" of type '" "Engines::DSC::Message""'"); } arg4 = static_cast< Engines::DSC::Message >(val4); { Py_BEGIN_ALLOW_THREADS try { (arg1)->disconnect_uses_port((char const *)arg2,arg3,arg4); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; { CORBA::release(arg3); } return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; { CORBA::release(arg3); } return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_get_port_properties(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; Ports::PortProperties_ptr result; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_get_port_properties",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_get_port_properties" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_get_port_properties" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->get_port_properties((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = api->cxxObjRefToPyObjRef(result, 1); //the _ptr is duplicated by the routine called. //Need to release it for Python because the call to cxxObjRefToPyObjRef has created another ref with a count of 1 CORBA::release(result); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_getInputFileToService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::Salome_file_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_getInputFileToService",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_getInputFileToService" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_getInputFileToService" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_getInputFileToService" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->getInputFileToService((char const *)arg2,(char const *)arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = api->cxxObjRefToPyObjRef(result, 1); //the _ptr is duplicated by the routine called. //Need to release it for Python because the call to cxxObjRefToPyObjRef has created another ref with a count of 1 CORBA::release(result); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_checkInputFilesToService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_checkInputFilesToService",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_checkInputFilesToService" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_checkInputFilesToService" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { (arg1)->checkInputFilesToService((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_setInputFileToService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::Salome_file_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_setInputFileToService",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_setInputFileToService" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_setInputFileToService" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_setInputFileToService" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->setInputFileToService((char const *)arg2,(char const *)arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = api->cxxObjRefToPyObjRef(result, 1); //the _ptr is duplicated by the routine called. //Need to release it for Python because the call to cxxObjRefToPyObjRef has created another ref with a count of 1 CORBA::release(result); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_getOutputFileToService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::Salome_file_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_getOutputFileToService",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_getOutputFileToService" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_getOutputFileToService" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_getOutputFileToService" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->getOutputFileToService((char const *)arg2,(char const *)arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = api->cxxObjRefToPyObjRef(result, 1); //the _ptr is duplicated by the routine called. //Need to release it for Python because the call to cxxObjRefToPyObjRef has created another ref with a count of 1 CORBA::release(result); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_checkOutputFilesToService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_checkOutputFilesToService",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_checkOutputFilesToService" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_checkOutputFilesToService" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { (arg1)->checkOutputFilesToService((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_setOutputFileToService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::Salome_file_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:PySupervCompo_setOutputFileToService",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_setOutputFileToService" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_setOutputFileToService" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_setOutputFileToService" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->setOutputFileToService((char const *)arg2,(char const *)arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = api->cxxObjRefToPyObjRef(result, 1); //the _ptr is duplicated by the routine called. //Need to release it for Python because the call to cxxObjRefToPyObjRef has created another ref with a count of 1 CORBA::release(result); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_add_provides_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; Ports::Port_ptr arg2 ; char *arg3 = (char *) 0 ; Ports::PortProperties_ptr arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:PySupervCompo_add_provides_port",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_add_provides_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj1,0); arg2 = Ports::Port::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_add_provides_port" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj3,0); arg4 = Ports::PortProperties::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } { Py_BEGIN_ALLOW_THREADS try { (arg1)->add_provides_port(arg2,(char const *)arg3,arg4); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); { CORBA::release(arg2); } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; { CORBA::release(arg4); } return resultobj; fail: { CORBA::release(arg2); } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; { CORBA::release(arg4); } return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_add_uses_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; Ports::PortProperties_ptr arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:PySupervCompo_add_uses_port",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_add_uses_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_add_uses_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "PySupervCompo_add_uses_port" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { CORBA::Object_var obj = api->pyObjRefToCxxObjRef(obj3,0); arg4 = Ports::PortProperties::_narrow(obj); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } Py_END_ALLOW_THREADS } { Py_BEGIN_ALLOW_THREADS try { (arg1)->add_uses_port((char const *)arg2,(char const *)arg3,arg4); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; { CORBA::release(arg4); } return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; { CORBA::release(arg4); } return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_get_uses_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; Engines::DSC::uses_port *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_get_uses_port",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_get_uses_port" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_get_uses_port" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (Engines::DSC::uses_port *)(arg1)->get_uses_port((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj = PyList_New(result->length()); for (CORBA::ULong i=0; i < result->length() ; i++) PyList_SetItem(resultobj,i,api->cxxObjRefToPyObjRef((*result)[i], 1)); //delete the copy (created by new) of uses port sequence delete result; } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_is_connected(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; CORBA::Boolean result; if (!PyArg_ParseTuple(args,(char *)"OO:PySupervCompo_is_connected",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_is_connected" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySupervCompo_is_connected" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->is_connected((char const *)arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { resultobj=PyInt_FromLong(result ? 1 : 0); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_setTimeOut(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; if (!PyArg_ParseTuple(args,(char *)":PySupervCompo_setTimeOut")) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { PySupervCompo::setTimeOut(); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PySupervCompo_ptr(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; PySupervCompo *arg1 = (PySupervCompo *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; long result; if (!PyArg_ParseTuple(args,(char *)"O:PySupervCompo_ptr",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_PySupervCompo, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySupervCompo_ptr" "', argument " "1"" of type '" "PySupervCompo *""'"); } arg1 = reinterpret_cast< PySupervCompo * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (long)PySupervCompo_ptr(arg1); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *PySupervCompo_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_PySupervCompo, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_create_calcium_port(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:create_calcium_port",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "create_calcium_port" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "create_calcium_port" "', argument " "2"" of type '" "char *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "create_calcium_port" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "create_calcium_port" "', argument " "4"" of type '" "char *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "create_calcium_port" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); { Py_BEGIN_ALLOW_THREADS try { create_calcium_port(arg1,arg2,arg3,arg4,arg5); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return NULL; } SWIGINTERN PyObject *_wrap_cp_cd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[1024+1] ; PyObject * obj0 = 0 ; int result; arg2 = (char *) temp2; if (!PyArg_ParseTuple(args,(char *)"O:cp_cd",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_cd" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_cd(arg1,arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); arg2[1024] = 0; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg2)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cp_een(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; int *arg7 = (int *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_een",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_een" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_een" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_een" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_een" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_een" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_een" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_int,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (int*) array7->data; #else SWIG_exception(SWIG_TypeError, "int* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_een(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_edb(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; double arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; double *arg7 = (double *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_edb",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_edb" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_edb" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_edb" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_edb" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_edb" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_edb" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_double,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_DOUBLE, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (double*) array7->data; #else SWIG_exception(SWIG_TypeError, "double* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_edb(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_ere(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; float *arg7 = (float *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_ere",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_ere" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_ere" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_ere" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_ere" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_ere" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_ere" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_float,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_FLOAT, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (float*) array7->data; #else SWIG_exception(SWIG_TypeError, "float* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_ere(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_ecp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; float *arg7 = (float *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_ecp",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_ecp" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_ecp" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_ecp" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_ecp" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_ecp" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_ecp" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_float,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_CFLOAT, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (float*) array7->data; #else SWIG_exception(SWIG_TypeError, "complex array expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_ecp(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_elo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; int *arg7 = (int *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_elo",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_elo" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_elo" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_elo" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_elo" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_elo" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_elo" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_int,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_INT, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (int*) array7->data; #else SWIG_exception(SWIG_TypeError, "int* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_elo(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_ech(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; char **arg7 = (char **) 0 ; int arg8 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_ech",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_ech" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_ech" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_ech" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_ech" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_ech" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_ech" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { stringArray* sarray; if ((SWIG_ConvertPtr(obj6, (void **) &sarray, SWIGTYPE_p_stringArray,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_STRING, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (char**) malloc(array_size(array7,0)*sizeof(char*)); arg8 = array7->strides[0]; for(int i=0;istrides[0]+1)); strncpy(arg7[i],(char*) array7->data + i* array7->strides[0],array7->strides[0]); *(arg7[i]+array7->strides[0])='\0'; } #else SWIG_exception(SWIG_TypeError, "string array expected"); #endif } else { arg7=sarray->data; arg8=sarray->size; } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_ech(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (array7) { for(int i=0;i(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_elg" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_elg" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_elg" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_elg" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_elg" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_long,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_LONG, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (long*) array7->data; #else SWIG_exception(SWIG_TypeError, "long* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_elg(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_eln(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float arg3 ; int arg4 ; char *arg5 = (char *) 0 ; int arg6 ; long *arg7 = (long *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int val6 ; int ecode6 = 0 ; ArrayObject *array7 = NULL ; int is_new_object7 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cp_eln",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_eln" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_eln" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_eln" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cp_eln" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cp_eln" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cp_eln" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); { if ((SWIG_ConvertPtr(obj6, (void **) &arg7, SWIGTYPE_p_long,0)) == -1) { #ifdef WITH_NUMPY int size[1] = { -1 }; array7 = obj_to_array_contiguous_allow_conversion(obj6, PyArray_LONG, &is_new_object7); if (!array7 || !require_dimensions(array7,1) || !require_size(array7,size,1)) SWIG_fail; arg7 = (long*) array7->data; #else SWIG_exception(SWIG_TypeError, "long* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_eln(arg1,arg2,arg3,arg4,arg5,arg6,arg7); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return resultobj; fail: if (alloc5 == SWIG_NEWOBJ) delete[] buf5; { #ifdef WITH_NUMPY if (is_new_object7 && array7) { Py_DECREF(array7); } #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_len(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; int *arg9 = (int *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_len",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_len" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_len" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_len" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_len" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_len" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_len" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_len" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_int,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_INT); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (int*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "int* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_len(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_ldb(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; double *arg3 = (double *) 0 ; double *arg4 = (double *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; double *arg9 = (double *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; double temp3 ; int res3 = 0 ; double temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_ldb",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_ldb" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_ldb" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) { double val; int ecode = SWIG_AsVal_double(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_ldb" "', argument " "3"" of type '" "double""'"); } temp3 = static_cast< double >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_double,0))))) { double val; int ecode = SWIG_AsVal_double(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_ldb" "', argument " "4"" of type '" "double""'"); } temp4 = static_cast< double >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_ldb" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_ldb" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_ldb" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_double,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_DOUBLE); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (double*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "double* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_ldb(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_lre(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; float *arg9 = (float *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_lre",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_lre" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_lre" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lre" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lre" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lre" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_lre" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_lre" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_float,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_FLOAT); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (float*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "float* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_lre(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_lcp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; float *arg9 = (float *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_lcp",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_lcp" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_lcp" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lcp" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lcp" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lcp" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_lcp" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_lcp" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_float,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_CFLOAT); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (float*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "complex array expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_lcp(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_llo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; int *arg9 = (int *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_llo",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_llo" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_llo" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_llo" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_llo" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_llo" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_llo" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_llo" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_int,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_INT); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (int*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "int* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_llo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_lch(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; char **arg9 = (char **) 0 ; int arg10 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_lch",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_lch" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_lch" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lch" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lch" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lch" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_lch" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_lch" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { stringArray* sarray; if ((SWIG_ConvertPtr(obj7, (void **) &sarray, SWIGTYPE_p_stringArray ,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_STRING); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (char**) malloc(array_size(temp9,0)*sizeof(char*)); arg10 = temp9->strides[0]; for(int i=0;idata+i*temp9->strides[0]; memset(arg9[i],0,temp9->strides[0]); //numpy strings must be completed with 0 up to elsize } #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "string array expected"); #endif } else { arg9=sarray->data; arg10=sarray->size; } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_lch(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; { #ifdef WITH_NUMPY if (temp9) free(arg9); #endif } return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; { #ifdef WITH_NUMPY if (temp9) free(arg9); #endif } return NULL; } SWIGINTERN PyObject *_wrap_cp_llg(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; long *arg9 = (long *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_llg",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_llg" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_llg" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_llg" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_llg" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_llg" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_llg" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_llg" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_long,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_LONG); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (long*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "long* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_llg(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_lln(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; float *arg3 = (float *) 0 ; float *arg4 = (float *) 0 ; int *arg5 = (int *) 0 ; char *arg6 = (char *) 0 ; int arg7 ; int *arg8 = (int *) 0 ; long *arg9 = (long *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; float temp3 ; int res3 = 0 ; float temp4 ; int res4 = 0 ; int temp5 ; int res5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int val7 ; int ecode7 = 0 ; int temp8 ; int res8 = SWIG_TMPOBJ ; ArrayObject *temp9 = NULL ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; int result; arg8 = &temp8; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cp_lln",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_lln" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_lln" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj2, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lln" "', argument " "3"" of type '" "float""'"); } temp3 = static_cast< float >(val); arg3 = &temp3; res3 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_float,0))))) { float val; int ecode = SWIG_AsVal_float(obj3, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lln" "', argument " "4"" of type '" "float""'"); } temp4 = static_cast< float >(val); arg4 = &temp4; res4 = SWIG_AddTmpMask(ecode); } if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { int val; int ecode = SWIG_AsVal_int(obj4, &val); if (!SWIG_IsOK(ecode)) { SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "cp_lln" "', argument " "5"" of type '" "int""'"); } temp5 = static_cast< int >(val); arg5 = &temp5; res5 = SWIG_AddTmpMask(ecode); } res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cp_lln" "', argument " "6"" of type '" "char *""'"); } arg6 = reinterpret_cast< char * >(buf6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cp_lln" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); { if ((SWIG_ConvertPtr(obj7, (void **) &arg9, SWIGTYPE_p_long,0)) == -1) { #ifdef WITH_NUMPY temp9 = obj_to_array_no_conversion(obj7,PyArray_LONG); if (!temp9 || !require_contiguous(temp9)) SWIG_fail; arg9 = (long*) temp9->data; #else temp9 = NULL; SWIG_exception(SWIG_TypeError, "long* expected"); #endif } } { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_lln(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (SWIG_IsTmpObj(res3)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_float((*arg3))); } else { int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_float, new_flags)); } if (SWIG_IsTmpObj(res5)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); } else { int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsTmpObj(res8)) { resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg8))); } else { int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_int, new_flags)); } if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return NULL; } SWIGINTERN PyObject *_wrap_cp_fini(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; char *arg2 = (char *) 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cp_fini",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_fini" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cp_fini" "', argument " "2"" of type '" "char *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_fini" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_fini(arg1,arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cp_fint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; char *arg2 = (char *) 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; float val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cp_fint",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_fint" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cp_fint" "', argument " "2"" of type '" "char *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_fint" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_fint(arg1,arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cp_effi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; char *arg2 = (char *) 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cp_effi",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_effi" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cp_effi" "', argument " "2"" of type '" "char *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_effi" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_effi(arg1,arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cp_efft(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; char *arg2 = (char *) 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; float val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cp_efft",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_efft" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cp_efft" "', argument " "2"" of type '" "char *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_float(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cp_efft" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_efft(arg1,arg2,arg3); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cp_fin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Superv_Component_i *arg1 = (Superv_Component_i *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cp_fin",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Superv_Component_i, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cp_fin" "', argument " "1"" of type '" "Superv_Component_i *""'"); } arg1 = reinterpret_cast< Superv_Component_i * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cp_fin" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { Py_BEGIN_ALLOW_THREADS try { result = (int)cp_fin(arg1,arg2); } catch(Engines::DSC::PortNotDefined& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotDefined"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::PortNotConnected& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "PortNotConnected"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch(Engines::DSC::BadPortType& _e) { Py_BLOCK_THREADS PyObject* excc = PyObject_GetAttrString(dsc, "BadPortType"); PyObject* exci = PyEval_CallObject(excc, (PyObject *)NULL); PyErr_SetObject(excc, exci); Py_XDECREF(excc); Py_XDECREF(exci); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS //This one should be converted into a python corba exception PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (const CORBA::SystemException& e) { Py_BLOCK_THREADS return api->handleCxxSystemException(e); } catch(...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_ValueError,"Unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } static PyMethodDef SwigMethods[] = { { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, { (char *)"new_intArray", _wrap_new_intArray, METH_VARARGS, (char *)"new_intArray(size_t nelements) -> intArray"}, { (char *)"delete_intArray", _wrap_delete_intArray, METH_VARARGS, (char *)"delete_intArray(intArray self)"}, { (char *)"intArray___getitem__", _wrap_intArray___getitem__, METH_VARARGS, (char *)"intArray___getitem__(intArray self, size_t index) -> int"}, { (char *)"intArray___setitem__", _wrap_intArray___setitem__, METH_VARARGS, (char *)"intArray___setitem__(intArray self, size_t index, int value)"}, { (char *)"intArray_cast", _wrap_intArray_cast, METH_VARARGS, (char *)"intArray_cast(intArray self) -> int"}, { (char *)"intArray_frompointer", _wrap_intArray_frompointer, METH_VARARGS, (char *)"intArray_frompointer(int t) -> intArray"}, { (char *)"intArray_swigregister", intArray_swigregister, METH_VARARGS, NULL}, { (char *)"new_longArray", _wrap_new_longArray, METH_VARARGS, (char *)"new_longArray(size_t nelements) -> longArray"}, { (char *)"delete_longArray", _wrap_delete_longArray, METH_VARARGS, (char *)"delete_longArray(longArray self)"}, { (char *)"longArray___getitem__", _wrap_longArray___getitem__, METH_VARARGS, (char *)"longArray___getitem__(longArray self, size_t index) -> long"}, { (char *)"longArray___setitem__", _wrap_longArray___setitem__, METH_VARARGS, (char *)"longArray___setitem__(longArray self, size_t index, long value)"}, { (char *)"longArray_cast", _wrap_longArray_cast, METH_VARARGS, (char *)"longArray_cast(longArray self) -> long"}, { (char *)"longArray_frompointer", _wrap_longArray_frompointer, METH_VARARGS, (char *)"longArray_frompointer(long t) -> longArray"}, { (char *)"longArray_swigregister", longArray_swigregister, METH_VARARGS, NULL}, { (char *)"new_floatArray", _wrap_new_floatArray, METH_VARARGS, (char *)"new_floatArray(size_t nelements) -> floatArray"}, { (char *)"delete_floatArray", _wrap_delete_floatArray, METH_VARARGS, (char *)"delete_floatArray(floatArray self)"}, { (char *)"floatArray___getitem__", _wrap_floatArray___getitem__, METH_VARARGS, (char *)"floatArray___getitem__(floatArray self, size_t index) -> float"}, { (char *)"floatArray___setitem__", _wrap_floatArray___setitem__, METH_VARARGS, (char *)"floatArray___setitem__(floatArray self, size_t index, float value)"}, { (char *)"floatArray_cast", _wrap_floatArray_cast, METH_VARARGS, (char *)"floatArray_cast(floatArray self) -> float"}, { (char *)"floatArray_frompointer", _wrap_floatArray_frompointer, METH_VARARGS, (char *)"floatArray_frompointer(float t) -> floatArray"}, { (char *)"floatArray_swigregister", floatArray_swigregister, METH_VARARGS, NULL}, { (char *)"new_doubleArray", _wrap_new_doubleArray, METH_VARARGS, (char *)"new_doubleArray(size_t nelements) -> doubleArray"}, { (char *)"delete_doubleArray", _wrap_delete_doubleArray, METH_VARARGS, (char *)"delete_doubleArray(doubleArray self)"}, { (char *)"doubleArray___getitem__", _wrap_doubleArray___getitem__, METH_VARARGS, (char *)"doubleArray___getitem__(doubleArray self, size_t index) -> double"}, { (char *)"doubleArray___setitem__", _wrap_doubleArray___setitem__, METH_VARARGS, (char *)"doubleArray___setitem__(doubleArray self, size_t index, double value)"}, { (char *)"doubleArray_cast", _wrap_doubleArray_cast, METH_VARARGS, (char *)"doubleArray_cast(doubleArray self) -> double"}, { (char *)"doubleArray_frompointer", _wrap_doubleArray_frompointer, METH_VARARGS, (char *)"doubleArray_frompointer(double t) -> doubleArray"}, { (char *)"doubleArray_swigregister", doubleArray_swigregister, METH_VARARGS, NULL}, { (char *)"new_stringArray", _wrap_new_stringArray, METH_VARARGS, (char *)"\n" "stringArray(int nelements, int size = 0)\n" "new_stringArray(int nelements) -> stringArray\n" ""}, { (char *)"delete_stringArray", _wrap_delete_stringArray, METH_VARARGS, (char *)"delete_stringArray(stringArray self)"}, { (char *)"stringArray___getitem__", _wrap_stringArray___getitem__, METH_VARARGS, (char *)"stringArray___getitem__(stringArray self, int index) -> char"}, { (char *)"stringArray___setitem__", _wrap_stringArray___setitem__, METH_VARARGS, (char *)"stringArray___setitem__(stringArray self, int index, char value)"}, { (char *)"stringArray_data_set", _wrap_stringArray_data_set, METH_VARARGS, (char *)"stringArray_data_set(stringArray self, char data)"}, { (char *)"stringArray_data_get", _wrap_stringArray_data_get, METH_VARARGS, (char *)"stringArray_data_get(stringArray self) -> char"}, { (char *)"stringArray_nelem_set", _wrap_stringArray_nelem_set, METH_VARARGS, (char *)"stringArray_nelem_set(stringArray self, int nelem)"}, { (char *)"stringArray_nelem_get", _wrap_stringArray_nelem_get, METH_VARARGS, (char *)"stringArray_nelem_get(stringArray self) -> int"}, { (char *)"stringArray_size_set", _wrap_stringArray_size_set, METH_VARARGS, (char *)"stringArray_size_set(stringArray self, int size)"}, { (char *)"stringArray_size_get", _wrap_stringArray_size_get, METH_VARARGS, (char *)"stringArray_size_get(stringArray self) -> int"}, { (char *)"stringArray_swigregister", stringArray_swigregister, METH_VARARGS, NULL}, { (char *)"new_DSC", _wrap_new_DSC, METH_VARARGS, (char *)"new_DSC() -> DSC"}, { (char *)"delete_DSC", _wrap_delete_DSC, METH_VARARGS, (char *)"delete_DSC(DSC self)"}, { (char *)"DSC_swigregister", DSC_swigregister, METH_VARARGS, NULL}, { (char *)"new_PySupervCompo", _wrap_new_PySupervCompo, METH_VARARGS, (char *)"\n" "new_PySupervCompo(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr contai, \n" " char instanceName, \n" " char interfaceName) -> PySupervCompo\n" ""}, { (char *)"delete_PySupervCompo", _wrap_delete_PySupervCompo, METH_VARARGS, (char *)"delete_PySupervCompo(PySupervCompo self)"}, { (char *)"PySupervCompo_init_service", _wrap_PySupervCompo_init_service, METH_VARARGS, (char *)"PySupervCompo_init_service(PySupervCompo self, char service_name) -> CORBA::Boolean"}, { (char *)"PySupervCompo_create_provides_data_port", _wrap_PySupervCompo_create_provides_data_port, METH_VARARGS, (char *)"PySupervCompo_create_provides_data_port(PySupervCompo self, char port_fab_type) -> provides_port"}, { (char *)"PySupervCompo_create_uses_data_port", _wrap_PySupervCompo_create_uses_data_port, METH_VARARGS, (char *)"PySupervCompo_create_uses_data_port(PySupervCompo self, char port_fab_type) -> uses_port"}, { (char *)"PySupervCompo_add_port", _wrap_PySupervCompo_add_port, METH_VARARGS, (char *)"\n" "add_port(char port_fab_type, char port_type, char port_name)\n" "add_port(provides_port port, char provides_port_name)\n" "PySupervCompo_add_port(PySupervCompo self, uses_port port, char uses_port_name)\n" ""}, { (char *)"PySupervCompo_get_provides_port", _wrap_PySupervCompo_get_provides_port, METH_VARARGS, (char *)"PySupervCompo_get_provides_port(PySupervCompo self, char provides_port_name, CORBA::Boolean connection_error) -> Ports::Port_ptr"}, { (char *)"PySupervCompo_connect_uses_port", _wrap_PySupervCompo_connect_uses_port, METH_VARARGS, (char *)"PySupervCompo_connect_uses_port(PySupervCompo self, char uses_port_name, Ports::Port_ptr provides_port_ref)"}, { (char *)"PySupervCompo_connect_provides_port", _wrap_PySupervCompo_connect_provides_port, METH_VARARGS, (char *)"PySupervCompo_connect_provides_port(PySupervCompo self, char provides_port_name)"}, { (char *)"PySupervCompo_disconnect_provides_port", _wrap_PySupervCompo_disconnect_provides_port, METH_VARARGS, (char *)"PySupervCompo_disconnect_provides_port(PySupervCompo self, char provides_port_name, Message message)"}, { (char *)"PySupervCompo_disconnect_uses_port", _wrap_PySupervCompo_disconnect_uses_port, METH_VARARGS, (char *)"\n" "PySupervCompo_disconnect_uses_port(PySupervCompo self, char uses_port_name, Ports::Port_ptr provides_port_ref, \n" " Message message)\n" ""}, { (char *)"PySupervCompo_get_port_properties", _wrap_PySupervCompo_get_port_properties, METH_VARARGS, (char *)"PySupervCompo_get_port_properties(PySupervCompo self, char port_name) -> Ports::PortProperties_ptr"}, { (char *)"PySupervCompo_getInputFileToService", _wrap_PySupervCompo_getInputFileToService, METH_VARARGS, (char *)"PySupervCompo_getInputFileToService(PySupervCompo self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr"}, { (char *)"PySupervCompo_checkInputFilesToService", _wrap_PySupervCompo_checkInputFilesToService, METH_VARARGS, (char *)"PySupervCompo_checkInputFilesToService(PySupervCompo self, char service_name)"}, { (char *)"PySupervCompo_setInputFileToService", _wrap_PySupervCompo_setInputFileToService, METH_VARARGS, (char *)"PySupervCompo_setInputFileToService(PySupervCompo self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr"}, { (char *)"PySupervCompo_getOutputFileToService", _wrap_PySupervCompo_getOutputFileToService, METH_VARARGS, (char *)"PySupervCompo_getOutputFileToService(PySupervCompo self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr"}, { (char *)"PySupervCompo_checkOutputFilesToService", _wrap_PySupervCompo_checkOutputFilesToService, METH_VARARGS, (char *)"PySupervCompo_checkOutputFilesToService(PySupervCompo self, char service_name)"}, { (char *)"PySupervCompo_setOutputFileToService", _wrap_PySupervCompo_setOutputFileToService, METH_VARARGS, (char *)"PySupervCompo_setOutputFileToService(PySupervCompo self, char service_name, char Salome_file_name) -> Engines::Salome_file_ptr"}, { (char *)"PySupervCompo_add_provides_port", _wrap_PySupervCompo_add_provides_port, METH_VARARGS, (char *)"\n" "PySupervCompo_add_provides_port(PySupervCompo self, Ports::Port_ptr ref, char provides_port_name, \n" " Ports::PortProperties_ptr port_prop)\n" ""}, { (char *)"PySupervCompo_add_uses_port", _wrap_PySupervCompo_add_uses_port, METH_VARARGS, (char *)"\n" "PySupervCompo_add_uses_port(PySupervCompo self, char repository_id, char uses_port_name, \n" " Ports::PortProperties_ptr port_prop)\n" ""}, { (char *)"PySupervCompo_get_uses_port", _wrap_PySupervCompo_get_uses_port, METH_VARARGS, (char *)"PySupervCompo_get_uses_port(PySupervCompo self, char uses_port_name) -> Engines::DSC::uses_port"}, { (char *)"PySupervCompo_is_connected", _wrap_PySupervCompo_is_connected, METH_VARARGS, (char *)"PySupervCompo_is_connected(PySupervCompo self, char port_name) -> CORBA::Boolean"}, { (char *)"PySupervCompo_setTimeOut", _wrap_PySupervCompo_setTimeOut, METH_VARARGS, (char *)"PySupervCompo_setTimeOut()"}, { (char *)"PySupervCompo_ptr", _wrap_PySupervCompo_ptr, METH_VARARGS, (char *)"PySupervCompo_ptr(PySupervCompo self) -> long"}, { (char *)"PySupervCompo_swigregister", PySupervCompo_swigregister, METH_VARARGS, NULL}, { (char *)"create_calcium_port", _wrap_create_calcium_port, METH_VARARGS, (char *)"\n" "create_calcium_port(Superv_Component_i compo, char name, char type, char mode, \n" " char depend)\n" ""}, { (char *)"cp_cd", _wrap_cp_cd, METH_VARARGS, (char *)"cp_cd(Superv_Component_i component) -> int"}, { (char *)"cp_een", _wrap_cp_een, METH_VARARGS, (char *)"\n" "cp_een(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, int eval) -> int\n" ""}, { (char *)"cp_edb", _wrap_cp_edb, METH_VARARGS, (char *)"\n" "cp_edb(Superv_Component_i component, int dep, double t, int n, \n" " char nom, int nval, double eval) -> int\n" ""}, { (char *)"cp_ere", _wrap_cp_ere, METH_VARARGS, (char *)"\n" "cp_ere(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, float eval) -> int\n" ""}, { (char *)"cp_ecp", _wrap_cp_ecp, METH_VARARGS, (char *)"\n" "cp_ecp(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, float ecpval) -> int\n" ""}, { (char *)"cp_elo", _wrap_cp_elo, METH_VARARGS, (char *)"\n" "cp_elo(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, int eval) -> int\n" ""}, { (char *)"cp_ech", _wrap_cp_ech, METH_VARARGS, (char *)"\n" "cp_ech(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, char eval) -> int\n" ""}, { (char *)"cp_elg", _wrap_cp_elg, METH_VARARGS, (char *)"\n" "cp_elg(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, long eval) -> int\n" ""}, { (char *)"cp_eln", _wrap_cp_eln, METH_VARARGS, (char *)"\n" "cp_eln(Superv_Component_i component, int dep, float t, int n, \n" " char nom, int nval, long eval) -> int\n" ""}, { (char *)"cp_len", _wrap_cp_len, METH_VARARGS, (char *)"\n" "cp_len(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, int lval) -> int\n" ""}, { (char *)"cp_ldb", _wrap_cp_ldb, METH_VARARGS, (char *)"\n" "cp_ldb(Superv_Component_i component, int dep, double ti, double tf, \n" " int niter, char nom, int nmax, double lval) -> int\n" ""}, { (char *)"cp_lre", _wrap_cp_lre, METH_VARARGS, (char *)"\n" "cp_lre(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, float lval) -> int\n" ""}, { (char *)"cp_lcp", _wrap_cp_lcp, METH_VARARGS, (char *)"\n" "cp_lcp(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, float lcpval) -> int\n" ""}, { (char *)"cp_llo", _wrap_cp_llo, METH_VARARGS, (char *)"\n" "cp_llo(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, int lval) -> int\n" ""}, { (char *)"cp_lch", _wrap_cp_lch, METH_VARARGS, (char *)"\n" "cp_lch(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, char lval) -> int\n" ""}, { (char *)"cp_llg", _wrap_cp_llg, METH_VARARGS, (char *)"\n" "cp_llg(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, long lval) -> int\n" ""}, { (char *)"cp_lln", _wrap_cp_lln, METH_VARARGS, (char *)"\n" "cp_lln(Superv_Component_i component, int dep, float ti, float tf, \n" " int niter, char nom, int nmax, long lval) -> int\n" ""}, { (char *)"cp_fini", _wrap_cp_fini, METH_VARARGS, (char *)"cp_fini(Superv_Component_i component, char nom, int n) -> int"}, { (char *)"cp_fint", _wrap_cp_fint, METH_VARARGS, (char *)"cp_fint(Superv_Component_i component, char nom, float t) -> int"}, { (char *)"cp_effi", _wrap_cp_effi, METH_VARARGS, (char *)"cp_effi(Superv_Component_i component, char nom, int n) -> int"}, { (char *)"cp_efft", _wrap_cp_efft, METH_VARARGS, (char *)"cp_efft(Superv_Component_i component, char nom, float t) -> int"}, { (char *)"cp_fin", _wrap_cp_fin, METH_VARARGS, (char *)"cp_fin(Superv_Component_i component, int cp_end) -> int"}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static void *_p_floatArrayTo_p_float(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((float *) ((floatArray *) x)); } static void *_p_PySupervCompoTo_p_Superv_Component_i(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Superv_Component_i *) ((PySupervCompo *) x)); } static void *_p_longArrayTo_p_long(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((long *) ((longArray *) x)); } static void *_p_intArrayTo_p_int(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((int *) ((intArray *) x)); } static void *_p_doubleArrayTo_p_double(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((double *) ((doubleArray *) x)); } static swig_type_info _swigt__p_CORBA__Boolean = {"_p_CORBA__Boolean", "CORBA::Boolean *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_CORBA__ORB_ptr = {"_p_CORBA__ORB_ptr", "CORBA::ORB_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Engines__Container_ptr = {"_p_Engines__Container_ptr", "Engines::Container_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Engines__DSC = {"_p_Engines__DSC", "Engines::DSC *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_PortableServer__POA_ptr = {"_p_PortableServer__POA_ptr", "PortableServer::POA_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Ports__PortProperties_ptr = {"_p_Ports__PortProperties_ptr", "Ports::PortProperties_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Ports__Port_ptr = {"_p_Ports__Port_ptr", "Ports::Port_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_PySupervCompo = {"_p_PySupervCompo", "PySupervCompo *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Superv_Component_i = {"_p_Superv_Component_i", "Superv_Component_i *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_doubleArray = {"_p_doubleArray", "doubleArray *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_float = {"_p_float", "float *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_floatArray = {"_p_floatArray", "floatArray *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_intArray = {"_p_intArray", "intArray *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_long = {"_p_long", "long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_longArray = {"_p_longArray", "longArray *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_provides_port = {"_p_provides_port", "provides_port *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_stringArray = {"_p_stringArray", "stringArray *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_uses_port = {"_p_uses_port", "uses_port *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_CORBA__Boolean, &_swigt__p_CORBA__ORB_ptr, &_swigt__p_Engines__Container_ptr, &_swigt__p_Engines__DSC, &_swigt__p_PortableServer__POA_ptr, &_swigt__p_Ports__PortProperties_ptr, &_swigt__p_Ports__Port_ptr, &_swigt__p_PySupervCompo, &_swigt__p_Superv_Component_i, &_swigt__p_char, &_swigt__p_double, &_swigt__p_doubleArray, &_swigt__p_float, &_swigt__p_floatArray, &_swigt__p_int, &_swigt__p_intArray, &_swigt__p_long, &_swigt__p_longArray, &_swigt__p_p_char, &_swigt__p_provides_port, &_swigt__p_stringArray, &_swigt__p_uses_port, }; static swig_cast_info _swigc__p_CORBA__Boolean[] = { {&_swigt__p_CORBA__Boolean, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_CORBA__ORB_ptr[] = { {&_swigt__p_CORBA__ORB_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Engines__Container_ptr[] = { {&_swigt__p_Engines__Container_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Engines__DSC[] = { {&_swigt__p_Engines__DSC, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_PortableServer__POA_ptr[] = { {&_swigt__p_PortableServer__POA_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Ports__PortProperties_ptr[] = { {&_swigt__p_Ports__PortProperties_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Ports__Port_ptr[] = { {&_swigt__p_Ports__Port_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_PySupervCompo[] = { {&_swigt__p_PySupervCompo, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Superv_Component_i[] = { {&_swigt__p_PySupervCompo, _p_PySupervCompoTo_p_Superv_Component_i, 0, 0}, {&_swigt__p_Superv_Component_i, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_double[] = { {&_swigt__p_doubleArray, _p_doubleArrayTo_p_double, 0, 0}, {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_doubleArray[] = { {&_swigt__p_doubleArray, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_float[] = { {&_swigt__p_float, 0, 0, 0}, {&_swigt__p_floatArray, _p_floatArrayTo_p_float, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_floatArray[] = { {&_swigt__p_floatArray, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_intArray, _p_intArrayTo_p_int, 0, 0}, {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_intArray[] = { {&_swigt__p_intArray, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long[] = { {&_swigt__p_long, 0, 0, 0}, {&_swigt__p_longArray, _p_longArrayTo_p_long, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_longArray[] = { {&_swigt__p_longArray, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_provides_port[] = { {&_swigt__p_provides_port, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_stringArray[] = { {&_swigt__p_stringArray, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_uses_port[] = { {&_swigt__p_uses_port, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_CORBA__Boolean, _swigc__p_CORBA__ORB_ptr, _swigc__p_Engines__Container_ptr, _swigc__p_Engines__DSC, _swigc__p_PortableServer__POA_ptr, _swigc__p_Ports__PortProperties_ptr, _swigc__p_Ports__Port_ptr, _swigc__p_PySupervCompo, _swigc__p_Superv_Component_i, _swigc__p_char, _swigc__p_double, _swigc__p_doubleArray, _swigc__p_float, _swigc__p_floatArray, _swigc__p_int, _swigc__p_intArray, _swigc__p_long, _swigc__p_longArray, _swigc__p_p_char, _swigc__p_provides_port, _swigc__p_stringArray, _swigc__p_uses_port, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned staticly to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int found, init; clientdata = clientdata; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ found=0; iter=module_head; do { if (iter==&swig_module) { found=1; break; } iter=iter->next; } while (iter!= module_head); /* if the is found in the list, then all is done and we may leave */ if (found) return; /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpeters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %d\n", swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_InternFromString(""); #else return PyString_FromString(""); #endif } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { #if PY_VERSION_HEX >= 0x03000000 PyObject *str = PyUnicode_InternFromString("("); PyObject *tail; PyObject *joined; swig_globalvar *var; for (var = v->vars; var; var=var->next) { tail = PyUnicode_FromString(var->name); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; if (var->next) { tail = PyUnicode_InternFromString(", "); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; } } tail = PyUnicode_InternFromString(")"); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; #else PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); #endif return str; } SWIGINTERN int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *tmp; PyObject *str = swig_varlink_str(v); fprintf(fp,"Swig global variables "); fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str)); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(str); return 0; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* Number of items in variable part (ob_size) */ #endif (char *)"swigvarlink", /* Type name (tp_name) */ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ 0, /* Itemsize (tp_itemsize) */ (destructor) swig_varlink_dealloc, /* Deallocator (tp_dealloc) */ (printfunc) swig_varlink_print, /* Print (tp_print) */ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc) swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; varlink_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 varlink_type.ob_type = &PyType_Type; #endif type_init = 1; } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { strncpy(gv->name,name,size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *_SWIG_globals = 0; if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); return _SWIG_globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT #if PY_VERSION_HEX >= 0x03000000 PyObject* #else void #endif SWIG_init(void) { PyObject *m, *d; #if PY_VERSION_HEX >= 0x03000000 static struct PyModuleDef SWIG_module = { PyModuleDef_HEAD_INIT, (char *) SWIG_name, NULL, -1, SwigMethods, NULL, NULL, NULL, NULL }; #endif /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); #if PY_VERSION_HEX >= 0x03000000 m = PyModule_Create(&SWIG_module); #else m = Py_InitModule((char *) SWIG_name, SwigMethods); #endif d = PyModule_GetDict(m); SWIG_InitializeModule(0); SWIG_InstallConstants(d,swig_const_table); // init section #ifdef WITH_NUMPY import_array() #endif PyObject* omnipy = PyImport_ImportModule((char*)"_omnipy"); if (!omnipy) { PyErr_SetString(PyExc_ImportError, (char*)"Cannot import _omnipy"); return; } PyObject* pyapi = PyObject_GetAttrString(omnipy, (char*)"API"); api = (omniORBpyAPI*)PyCObject_AsVoidPtr(pyapi); Py_DECREF(pyapi); PyObject* engines = PyImport_ImportModule("Engines"); dsc = PyObject_GetAttrString(engines, "DSC"); SWIG_Python_SetConstant(d, "DSC_AddingConnection",SWIG_From_int(static_cast< int >(Engines::DSC::AddingConnection))); SWIG_Python_SetConstant(d, "DSC_RemovingConnection",SWIG_From_int(static_cast< int >(Engines::DSC::RemovingConnection))); SWIG_Python_SetConstant(d, "DSC_ApplicationError",SWIG_From_int(static_cast< int >(Engines::DSC::ApplicationError))); SWIG_Python_SetConstant(d, "TRUE",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "FALSE",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "FORMAT_TEMPS",SWIG_FromCharPtr("%lg")); SWIG_Python_SetConstant(d, "EPSILON",SWIG_From_double(static_cast< double >(1.e-6))); SWIG_Python_SetConstant(d, "VERSION_LEN",SWIG_From_int(static_cast< int >(144))); SWIG_Python_SetConstant(d, "CODE_LEN",SWIG_From_int(static_cast< int >(72))); SWIG_Python_SetConstant(d, "VARIABLE_LEN",SWIG_From_int(static_cast< int >(144))); SWIG_Python_SetConstant(d, "INSTANCE_LEN",SWIG_From_int(static_cast< int >(72))); SWIG_Python_SetConstant(d, "DRIVER_LEN",SWIG_From_int(static_cast< int >(72))); SWIG_Python_SetConstant(d, "ARCHI_LEN",SWIG_From_int(static_cast< int >(64))); SWIG_Python_SetConstant(d, "ENV_VAR_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "ACCC_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "PVM_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "USER_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "MACHINE_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "COMMAND_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "MAX_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "FICHIER_LEN",SWIG_From_int(static_cast< int >(256))); SWIG_Python_SetConstant(d, "NB_LIGNE_ERREUR",SWIG_From_int(static_cast< int >(45))); SWIG_Python_SetConstant(d, "NB_LIGNE_TRACE",SWIG_From_int(static_cast< int >(45))); SWIG_Python_SetConstant(d, "CP_NORMALE",SWIG_From_int(static_cast< int >(10))); SWIG_Python_SetConstant(d, "CP_ANORMALE",SWIG_From_int(static_cast< int >(11))); SWIG_Python_SetConstant(d, "CP_CONT",SWIG_From_int(static_cast< int >(20))); SWIG_Python_SetConstant(d, "CP_ARRET",SWIG_From_int(static_cast< int >(21))); SWIG_Python_SetConstant(d, "CP_INITIAL",SWIG_From_int(static_cast< int >(22))); SWIG_Python_SetConstant(d, "CP_NON_CONNECTE",SWIG_From_int(static_cast< int >(23))); SWIG_Python_SetConstant(d, "CP_ATTENTE",SWIG_From_int(static_cast< int >(24))); SWIG_Python_SetConstant(d, "CP_EXECUTION",SWIG_From_int(static_cast< int >(25))); SWIG_Python_SetConstant(d, "CP_DECONNECTE",SWIG_From_int(static_cast< int >(26))); SWIG_Python_SetConstant(d, "CP_TERMINE",SWIG_From_int(static_cast< int >(27))); SWIG_Python_SetConstant(d, "CP_ENTIER",SWIG_From_int(static_cast< int >(30))); SWIG_Python_SetConstant(d, "CP_REEL",SWIG_From_int(static_cast< int >(31))); SWIG_Python_SetConstant(d, "CP_DREEL",SWIG_From_int(static_cast< int >(32))); SWIG_Python_SetConstant(d, "CP_COMPLEXE",SWIG_From_int(static_cast< int >(33))); SWIG_Python_SetConstant(d, "CP_LOGIQUE",SWIG_From_int(static_cast< int >(34))); SWIG_Python_SetConstant(d, "CP_CHAINE",SWIG_From_int(static_cast< int >(35))); SWIG_Python_SetConstant(d, "CP_TEMPS",SWIG_From_int(static_cast< int >(40))); SWIG_Python_SetConstant(d, "CP_ITERATION",SWIG_From_int(static_cast< int >(41))); SWIG_Python_SetConstant(d, "CP_SEQUENTIEL",SWIG_From_int(static_cast< int >(42))); SWIG_Python_SetConstant(d, "CP_IN",SWIG_From_int(static_cast< int >(50))); SWIG_Python_SetConstant(d, "CP_OUT",SWIG_From_int(static_cast< int >(51))); SWIG_Python_SetConstant(d, "CP_NORMAL",SWIG_From_int(static_cast< int >(60))); SWIG_Python_SetConstant(d, "CP_ESPION",SWIG_From_int(static_cast< int >(62))); SWIG_Python_SetConstant(d, "CP_ILLIMITE",SWIG_From_int(static_cast< int >(-70))); SWIG_Python_SetConstant(d, "CP_AUTESP",SWIG_From_int(static_cast< int >(-71))); SWIG_Python_SetConstant(d, "CP_SANS",SWIG_From_int(static_cast< int >(80))); SWIG_Python_SetConstant(d, "CP_SUCCINCT",SWIG_From_int(static_cast< int >(81))); SWIG_Python_SetConstant(d, "CP_DETAILLE",SWIG_From_int(static_cast< int >(82))); SWIG_Python_SetConstant(d, "CP_PAUSE",SWIG_From_int(static_cast< int >(91))); SWIG_Python_SetConstant(d, "CP_LINEAIRE",SWIG_From_int(static_cast< int >(100))); SWIG_Python_SetConstant(d, "CP_ESCALIER",SWIG_From_int(static_cast< int >(101))); SWIG_Python_SetConstant(d, "TI",SWIG_From_int(static_cast< int >(110))); SWIG_Python_SetConstant(d, "TF",SWIG_From_int(static_cast< int >(111))); SWIG_Python_SetConstant(d, "CP_TOUTES",SWIG_From_int(static_cast< int >(120))); SWIG_Python_SetConstant(d, "CP_AUCUNE",SWIG_From_int(static_cast< int >(121))); SWIG_Python_SetConstant(d, "CP_PAS",SWIG_From_int(static_cast< int >(122))); SWIG_Python_SetConstant(d, "CP_ROUTE",SWIG_From_int(static_cast< int >(131))); SWIG_Python_SetConstant(d, "CP_ERREURS",SWIG_From_int(static_cast< int >(132))); SWIG_Python_SetConstant(d, "CP_ROUTE_NORMAL",SWIG_From_int(static_cast< int >(133))); SWIG_Python_SetConstant(d, "CP_ROUTE_DIRECT",SWIG_From_int(static_cast< int >(134))); SWIG_Python_SetConstant(d, "CP_AUTO",SWIG_From_int(static_cast< int >(135))); SWIG_Python_SetConstant(d, "CP_BLOCAGE",SWIG_From_int(static_cast< int >(136))); SWIG_Python_SetConstant(d, "CP_MANUEL",SWIG_From_int(static_cast< int >(137))); SWIG_Python_SetConstant(d, "CP_IMMEDIATE",SWIG_From_int(static_cast< int >(141))); SWIG_Python_SetConstant(d, "CPLVAV",SWIG_From_int(static_cast< int >(151))); SWIG_Python_SetConstant(d, "CPLVAF",SWIG_From_int(static_cast< int >(152))); SWIG_Python_SetConstant(d, "CPLVAS",SWIG_From_int(static_cast< int >(153))); SWIG_Python_SetConstant(d, "CPLCAV",SWIG_From_int(static_cast< int >(154))); SWIG_Python_SetConstant(d, "CPLFAV",SWIG_From_int(static_cast< int >(155))); SWIG_Python_SetConstant(d, "ERREUR",SWIG_From_int(static_cast< int >(1000))); SWIG_Python_SetConstant(d, "CONNEXION",SWIG_From_int(static_cast< int >(1001))); SWIG_Python_SetConstant(d, "EMISSION",SWIG_From_int(static_cast< int >(1002))); SWIG_Python_SetConstant(d, "DECONNEXION",SWIG_From_int(static_cast< int >(1003))); SWIG_Python_SetConstant(d, "LECTURE_VARIABLE",SWIG_From_int(static_cast< int >(1004))); SWIG_Python_SetConstant(d, "ECRITURE_VARIABLE",SWIG_From_int(static_cast< int >(1005))); SWIG_Python_SetConstant(d, "FIN_DE_PAS",SWIG_From_int(static_cast< int >(1006))); SWIG_Python_SetConstant(d, "AUIN_FIN_DE_PAS",SWIG_From_int(static_cast< int >(1007))); SWIG_Python_SetConstant(d, "EFFACEMENT",SWIG_From_int(static_cast< int >(1008))); SWIG_Python_SetConstant(d, "MODE_EXEC",SWIG_From_int(static_cast< int >(1009))); SWIG_Python_SetConstant(d, "RUN_N_PAS",SWIG_From_int(static_cast< int >(1010))); SWIG_Python_SetConstant(d, "DEF_CODE",SWIG_From_int(static_cast< int >(1011))); SWIG_Python_SetConstant(d, "DEF_INSTANCE",SWIG_From_int(static_cast< int >(1012))); SWIG_Python_SetConstant(d, "DEF_LIEN",SWIG_From_int(static_cast< int >(1013))); SWIG_Python_SetConstant(d, "DEM_VERSION",SWIG_From_int(static_cast< int >(1014))); SWIG_Python_SetConstant(d, "SET_OPTION",SWIG_From_int(static_cast< int >(1015))); SWIG_Python_SetConstant(d, "DEM_OPTION",SWIG_From_int(static_cast< int >(1016))); SWIG_Python_SetConstant(d, "DEM_CODES",SWIG_From_int(static_cast< int >(1017))); SWIG_Python_SetConstant(d, "DEM_INSTS_DE_CODE",SWIG_From_int(static_cast< int >(1018))); SWIG_Python_SetConstant(d, "DEM_VARIABLES",SWIG_From_int(static_cast< int >(1019))); SWIG_Python_SetConstant(d, "DEM_VARS_DE_CODE",SWIG_From_int(static_cast< int >(1020))); SWIG_Python_SetConstant(d, "DEM_VARS_DE_INST",SWIG_From_int(static_cast< int >(1021))); SWIG_Python_SetConstant(d, "DEM_CARS_DE_VARIABLE",SWIG_From_int(static_cast< int >(1022))); SWIG_Python_SetConstant(d, "DEM_CARS_DE_LIEN",SWIG_From_int(static_cast< int >(1023))); SWIG_Python_SetConstant(d, "ENV_VALEURS_VARIABLE",SWIG_From_int(static_cast< int >(1024))); SWIG_Python_SetConstant(d, "ENV_OPTION",SWIG_From_int(static_cast< int >(1025))); SWIG_Python_SetConstant(d, "ENV_CODES",SWIG_From_int(static_cast< int >(1026))); SWIG_Python_SetConstant(d, "ENV_INSTS_DE_CODE",SWIG_From_int(static_cast< int >(1027))); SWIG_Python_SetConstant(d, "ENV_VARIABLES",SWIG_From_int(static_cast< int >(1028))); SWIG_Python_SetConstant(d, "ENV_VARS_DE_CODE",SWIG_From_int(static_cast< int >(1029))); SWIG_Python_SetConstant(d, "ENV_VARS_DE_INST",SWIG_From_int(static_cast< int >(1030))); SWIG_Python_SetConstant(d, "ENV_CARS_DE_VARIABLE",SWIG_From_int(static_cast< int >(1031))); SWIG_Python_SetConstant(d, "ENV_CARS_DE_LIEN",SWIG_From_int(static_cast< int >(1032))); SWIG_Python_SetConstant(d, "ENV_TOPOLOGY",SWIG_From_int(static_cast< int >(1033))); SWIG_Python_SetConstant(d, "R_ENV_TOPOLOGY",SWIG_From_int(static_cast< int >(1034))); SWIG_Python_SetConstant(d, "ENV_MACHINE",SWIG_From_int(static_cast< int >(1035))); SWIG_Python_SetConstant(d, "R_ENV_MACHINE",SWIG_From_int(static_cast< int >(1036))); SWIG_Python_SetConstant(d, "ENV_CODE",SWIG_From_int(static_cast< int >(1037))); SWIG_Python_SetConstant(d, "R_ENV_CODE",SWIG_From_int(static_cast< int >(1038))); SWIG_Python_SetConstant(d, "ENV_INSTANCE",SWIG_From_int(static_cast< int >(1039))); SWIG_Python_SetConstant(d, "R_ENV_INSTANCE",SWIG_From_int(static_cast< int >(1040))); SWIG_Python_SetConstant(d, "ENV_VAR",SWIG_From_int(static_cast< int >(1041))); SWIG_Python_SetConstant(d, "R_ENV_VAR",SWIG_From_int(static_cast< int >(1042))); SWIG_Python_SetConstant(d, "ENV_LIEN",SWIG_From_int(static_cast< int >(1043))); SWIG_Python_SetConstant(d, "R_ENV_LIEN",SWIG_From_int(static_cast< int >(1044))); SWIG_Python_SetConstant(d, "ENV_ATTRIBUTS",SWIG_From_int(static_cast< int >(1045))); SWIG_Python_SetConstant(d, "R_ENV_ATTRIBUTS",SWIG_From_int(static_cast< int >(1046))); SWIG_Python_SetConstant(d, "ENV_VDATA",SWIG_From_int(static_cast< int >(1047))); SWIG_Python_SetConstant(d, "R_ENV_VDATA",SWIG_From_int(static_cast< int >(1048))); SWIG_Python_SetConstant(d, "P_HOST_DELETE",SWIG_From_int(static_cast< int >(2000))); SWIG_Python_SetConstant(d, "P_TASK_EXIT",SWIG_From_int(static_cast< int >(2001))); SWIG_Python_SetConstant(d, "CPOK",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "CPERIU",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "CPNMVR",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "CPIOVR",SWIG_From_int(static_cast< int >(3))); SWIG_Python_SetConstant(d, "CPTP",SWIG_From_int(static_cast< int >(4))); SWIG_Python_SetConstant(d, "CPTPVR",SWIG_From_int(static_cast< int >(5))); SWIG_Python_SetConstant(d, "CPIT",SWIG_From_int(static_cast< int >(6))); SWIG_Python_SetConstant(d, "CPITVR",SWIG_From_int(static_cast< int >(7))); SWIG_Python_SetConstant(d, "CPRENA",SWIG_From_int(static_cast< int >(8))); SWIG_Python_SetConstant(d, "CPDNTP",SWIG_From_int(static_cast< int >(9))); SWIG_Python_SetConstant(d, "CPDNDI",SWIG_From_int(static_cast< int >(10))); SWIG_Python_SetConstant(d, "CPNMCD",SWIG_From_int(static_cast< int >(11))); SWIG_Python_SetConstant(d, "CPNMIN",SWIG_From_int(static_cast< int >(12))); SWIG_Python_SetConstant(d, "CPATTENTE",SWIG_From_int(static_cast< int >(13))); SWIG_Python_SetConstant(d, "CPBLOC",SWIG_From_int(static_cast< int >(14))); SWIG_Python_SetConstant(d, "CPNTNULL",SWIG_From_int(static_cast< int >(15))); SWIG_Python_SetConstant(d, "CPLGVR",SWIG_From_int(static_cast< int >(16))); SWIG_Python_SetConstant(d, "CPSTOP",SWIG_From_int(static_cast< int >(17))); SWIG_Python_SetConstant(d, "CPATAL",SWIG_From_int(static_cast< int >(18))); SWIG_Python_SetConstant(d, "CPNOCP",SWIG_From_int(static_cast< int >(19))); SWIG_Python_SetConstant(d, "CPCTVR",SWIG_From_int(static_cast< int >(20))); SWIG_Python_SetConstant(d, "CPPASNULL",SWIG_From_int(static_cast< int >(21))); SWIG_Python_SetConstant(d, "CPMACHINE",SWIG_From_int(static_cast< int >(22))); SWIG_Python_SetConstant(d, "CPGRNU",SWIG_From_int(static_cast< int >(23))); SWIG_Python_SetConstant(d, "CPGRIN",SWIG_From_int(static_cast< int >(24))); SWIG_Python_SetConstant(d, "CPFINFICH",SWIG_From_int(static_cast< int >(25))); SWIG_Python_SetConstant(d, "CPERRFICH",SWIG_From_int(static_cast< int >(26))); SWIG_Python_SetConstant(d, "CPNORERR",SWIG_From_int(static_cast< int >(27))); SWIG_Python_SetConstant(d, "CPRUNERR",SWIG_From_int(static_cast< int >(28))); SWIG_Python_SetConstant(d, "CPOPT",SWIG_From_int(static_cast< int >(29))); SWIG_Python_SetConstant(d, "CPVALOPT",SWIG_From_int(static_cast< int >(30))); SWIG_Python_SetConstant(d, "CPECREFF",SWIG_From_int(static_cast< int >(31))); SWIG_Python_SetConstant(d, "CPLIEN",SWIG_From_int(static_cast< int >(32))); SWIG_Python_SetConstant(d, "CPINARRET",SWIG_From_int(static_cast< int >(33))); SWIG_Python_SetConstant(d, "CPSTOPSEQ",SWIG_From_int(static_cast< int >(34))); SWIG_Python_SetConstant(d, "CPDECL",SWIG_From_int(static_cast< int >(35))); SWIG_Python_SetConstant(d, "CPINEXEC",SWIG_From_int(static_cast< int >(36))); SWIG_Python_SetConstant(d, "CPPVM",SWIG_From_int(static_cast< int >(37))); SWIG_Python_SetConstant(d, "CPERRINST",SWIG_From_int(static_cast< int >(38))); SWIG_Python_SetConstant(d, "CPMODE",SWIG_From_int(static_cast< int >(39))); SWIG_Python_SetConstant(d, "CPINSTDEC",SWIG_From_int(static_cast< int >(40))); SWIG_Python_SetConstant(d, "DEBUT_COUPLAGE",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "FIN_COUPLAGE",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "EXEC",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "CPCD",SWIG_From_int(static_cast< int >(3))); SWIG_Python_SetConstant(d, "CPALLOW",SWIG_From_int(static_cast< int >(4))); SWIG_Python_SetConstant(d, "CPECRI",SWIG_From_int(static_cast< int >(5))); SWIG_Python_SetConstant(d, "DEB_LECT",SWIG_From_int(static_cast< int >(6))); SWIG_Python_SetConstant(d, "FIN_LECT",SWIG_From_int(static_cast< int >(7))); SWIG_Python_SetConstant(d, "CPFIN",SWIG_From_int(static_cast< int >(8))); SWIG_Python_SetConstant(d, "CPFINP",SWIG_From_int(static_cast< int >(9))); SWIG_Python_SetConstant(d, "CPAUFP",SWIG_From_int(static_cast< int >(10))); SWIG_Python_SetConstant(d, "CPINFP",SWIG_From_int(static_cast< int >(11))); SWIG_Python_SetConstant(d, "CPEFF",SWIG_From_int(static_cast< int >(12))); SWIG_Python_SetConstant(d, "STOP",SWIG_From_int(static_cast< int >(13))); SWIG_Python_SetConstant(d, "BLOCAGE",SWIG_From_int(static_cast< int >(14))); SWIG_Python_SetConstant(d, "CPPAUSE",SWIG_From_int(static_cast< int >(15))); SWIG_Python_SetConstant(d, "CPNORMAL",SWIG_From_int(static_cast< int >(16))); SWIG_Python_SetConstant(d, "CPNPAS",SWIG_From_int(static_cast< int >(17))); SWIG_Python_SetConstant(d, "CPADCD",SWIG_From_int(static_cast< int >(18))); SWIG_Python_SetConstant(d, "CPADINCD",SWIG_From_int(static_cast< int >(19))); SWIG_Python_SetConstant(d, "CPADLN",SWIG_From_int(static_cast< int >(20))); SWIG_Python_SetConstant(d, "CPIVERS",SWIG_From_int(static_cast< int >(21))); SWIG_Python_SetConstant(d, "CPICD",SWIG_From_int(static_cast< int >(22))); SWIG_Python_SetConstant(d, "CPIINCD",SWIG_From_int(static_cast< int >(23))); SWIG_Python_SetConstant(d, "CPIVR",SWIG_From_int(static_cast< int >(24))); SWIG_Python_SetConstant(d, "CPIVRCD",SWIG_From_int(static_cast< int >(25))); SWIG_Python_SetConstant(d, "CPIVRIN",SWIG_From_int(static_cast< int >(26))); SWIG_Python_SetConstant(d, "CPICAVR",SWIG_From_int(static_cast< int >(27))); SWIG_Python_SetConstant(d, "CPIILIEN",SWIG_From_int(static_cast< int >(28))); SWIG_Python_SetConstant(d, "CPSETOPT",SWIG_From_int(static_cast< int >(29))); SWIG_Python_SetConstant(d, "CPGETOPT",SWIG_From_int(static_cast< int >(30))); SWIG_Python_SetConstant(d, "TASK_EXIT",SWIG_From_int(static_cast< int >(31))); SWIG_Python_SetConstant(d, "HOST_DELETE",SWIG_From_int(static_cast< int >(32))); SWIG_Python_SetConstant(d, "ENTIER",SWIG_From_int(static_cast< int >(30))); SWIG_Python_SetConstant(d, "REEL",SWIG_From_int(static_cast< int >(31))); SWIG_Python_SetConstant(d, "DREEL",SWIG_From_int(static_cast< int >(32))); SWIG_Python_SetConstant(d, "COMPLEXE",SWIG_From_int(static_cast< int >(33))); SWIG_Python_SetConstant(d, "LOGIQUE",SWIG_From_int(static_cast< int >(34))); SWIG_Python_SetConstant(d, "CHAINE",SWIG_From_int(static_cast< int >(35))); #if PY_VERSION_HEX >= 0x03000000 return m; #else return; #endif } salome-kernel-6.5.0/src/DSC/DSC_Python/dsccalcium.py000077500000000000000000000077371177004724000221360ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## @package dsccalcium # \brief Module that provides the base class for DSC components implemented in python # import calcium import SALOME_ComponentPy import SALOME_DriverPy import Engines ## The SALOME base class for all DSC components implemented in python (interface Engines::Superv_Component). # # class PyDSCComponent(SALOME_ComponentPy.SALOME_ComponentPy_i, SALOME_DriverPy.SALOME_DriverPy_i): """ A Python DSC component is implemented by a Python class that has the name of the component and is located in a python module that has the name of the component. You must derive it and implement init_service and those methods that are services of the component. """ def __init__ ( self, orb, poa, contID, containerName, instanceName, interfaceName ): SALOME_ComponentPy.SALOME_ComponentPy_i.__init__(self, orb, poa, contID, containerName, instanceName, interfaceName, 0) SALOME_DriverPy.SALOME_DriverPy_i.__init__(self, interfaceName) # create the DSC proxy self.proxy=calcium.PySupervCompo(orb,poa,contID,instanceName,interfaceName ) # Store a reference on naming service in _naming_service attribute self._naming_service = SALOME_ComponentPy.SALOME_NamingServicePy_i( self._orb ) def init_service(self,service): return True enums={Engines.DSC.RemovingConnection:calcium.DSC.RemovingConnection, Engines.DSC.AddingConnection:calcium.DSC.AddingConnection, Engines.DSC.ApplicationError:calcium.DSC.ApplicationError, } def get_provides_port(self,name,error): return self.proxy.get_provides_port(name,error) def connect_uses_port(self,name,port): self.proxy.connect_uses_port(name,port) def connect_provides_port(self,name): self.proxy.connect_provides_port(name) def disconnect_provides_port(self,name,message): self.proxy.disconnect_provides_port(name,message._v) #self.proxy.disconnect_provides_port(name,self.enums[message]) def disconnect_uses_port(self,name,port,message): self.proxy.disconnect_uses_port(name,port,message._v) #self.proxy.disconnect_uses_port(name,port,self.enums[message]) def get_port_properties(self,name): return self.proxy.get_port_properties(name) def setInputFileToService(self,service_name,Salome_file_name): return self.proxy.setInputFileToService(service_name,Salome_file_name) def checkInputFilesToService(self,service_name): return self.proxy.checkInputFilesToService(service_name) def getInputFileToService(self,service_name,Salome_file_name): return self.proxy.getInputFileToService(service_name,Salome_file_name) def setOutputFileToService(self,service_name,Salome_file_name): return self.proxy.setOutputFileToService(service_name,Salome_file_name) def getOutputFileToService(self,service_name,Salome_file_name): return self.proxy.getOutputFileToService(service_name,Salome_file_name) def checkOutputFilesToService(self,service_name): return self.proxy.checkOutputFilesToService(service_name) def beginService(self,service_name): SALOME_ComponentPy.SALOME_ComponentPy_i.beginService(self,service_name) self.proxy.setTimeOut() salome-kernel-6.5.0/src/DSC/DSC_User/000077500000000000000000000000001177004724000170715ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC_User/Basic/000077500000000000000000000000001177004724000201125ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC_User/Basic/Makefile.am000077500000000000000000000051311177004724000221510ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = basic_port_factory.hxx \ data_short_port_provides.hxx \ data_short_port_uses.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= -I$(top_builddir)/idl \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/DSC/DSC_User \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSCSupervBasic.la libSalomeDSCSupervBasic_la_SOURCES = basic_port_factory.cxx \ data_short_port_uses.cxx \ data_short_port_provides.cxx libSalomeDSCSupervBasic_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDSCSupervBasic_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeDSCSupervBasic_la_LIBADD = ../libSalomeDSCSuperv.la salome-kernel-6.5.0/src/DSC/DSC_User/Basic/Makefile.in000077500000000000000000001017471177004724000221740ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/DSC/DSC_User/Basic ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeDSCSupervBasic_la_DEPENDENCIES = ../libSalomeDSCSuperv.la am_libSalomeDSCSupervBasic_la_OBJECTS = \ libSalomeDSCSupervBasic_la-basic_port_factory.lo \ libSalomeDSCSupervBasic_la-data_short_port_uses.lo \ libSalomeDSCSupervBasic_la-data_short_port_provides.lo libSalomeDSCSupervBasic_la_OBJECTS = \ $(am_libSalomeDSCSupervBasic_la_OBJECTS) libSalomeDSCSupervBasic_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeDSCSupervBasic_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDSCSupervBasic_la_SOURCES) DIST_SOURCES = $(libSalomeDSCSupervBasic_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = basic_port_factory.hxx \ data_short_port_provides.hxx \ data_short_port_uses.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = -I$(top_builddir)/idl \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/DSC/DSC_User \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSCSupervBasic.la libSalomeDSCSupervBasic_la_SOURCES = basic_port_factory.cxx \ data_short_port_uses.cxx \ data_short_port_provides.cxx libSalomeDSCSupervBasic_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDSCSupervBasic_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeDSCSupervBasic_la_LIBADD = ../libSalomeDSCSuperv.la all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/DSC_User/Basic/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/DSC_User/Basic/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDSCSupervBasic.la: $(libSalomeDSCSupervBasic_la_OBJECTS) $(libSalomeDSCSupervBasic_la_DEPENDENCIES) $(libSalomeDSCSupervBasic_la_LINK) -rpath $(libdir) $(libSalomeDSCSupervBasic_la_OBJECTS) $(libSalomeDSCSupervBasic_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSupervBasic_la-basic_port_factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_provides.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_uses.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDSCSupervBasic_la-basic_port_factory.lo: basic_port_factory.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSupervBasic_la-basic_port_factory.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSupervBasic_la-basic_port_factory.Tpo -c -o libSalomeDSCSupervBasic_la-basic_port_factory.lo `test -f 'basic_port_factory.cxx' || echo '$(srcdir)/'`basic_port_factory.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSupervBasic_la-basic_port_factory.Tpo $(DEPDIR)/libSalomeDSCSupervBasic_la-basic_port_factory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='basic_port_factory.cxx' object='libSalomeDSCSupervBasic_la-basic_port_factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSupervBasic_la-basic_port_factory.lo `test -f 'basic_port_factory.cxx' || echo '$(srcdir)/'`basic_port_factory.cxx libSalomeDSCSupervBasic_la-data_short_port_uses.lo: data_short_port_uses.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSupervBasic_la-data_short_port_uses.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_uses.Tpo -c -o libSalomeDSCSupervBasic_la-data_short_port_uses.lo `test -f 'data_short_port_uses.cxx' || echo '$(srcdir)/'`data_short_port_uses.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_uses.Tpo $(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_uses.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='data_short_port_uses.cxx' object='libSalomeDSCSupervBasic_la-data_short_port_uses.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSupervBasic_la-data_short_port_uses.lo `test -f 'data_short_port_uses.cxx' || echo '$(srcdir)/'`data_short_port_uses.cxx libSalomeDSCSupervBasic_la-data_short_port_provides.lo: data_short_port_provides.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSupervBasic_la-data_short_port_provides.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_provides.Tpo -c -o libSalomeDSCSupervBasic_la-data_short_port_provides.lo `test -f 'data_short_port_provides.cxx' || echo '$(srcdir)/'`data_short_port_provides.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_provides.Tpo $(DEPDIR)/libSalomeDSCSupervBasic_la-data_short_port_provides.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='data_short_port_provides.cxx' object='libSalomeDSCSupervBasic_la-data_short_port_provides.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSupervBasic_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSupervBasic_la-data_short_port_provides.lo `test -f 'data_short_port_provides.cxx' || echo '$(srcdir)/'`data_short_port_provides.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/DSC_User/Basic/basic_port_factory.cxx000077500000000000000000000032651177004724000245230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : basic_port_factory.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "basic_port_factory.hxx" #include "Superv_Component_i.hxx" basic_port_factory::basic_port_factory() { Superv_Component_i::register_factory("BASIC",this); } basic_port_factory::~basic_port_factory() {} provides_port * basic_port_factory::create_data_servant(std::string type) { provides_port * rtn_port = NULL; if (type == "short") { rtn_port = new data_short_port_provides(); } return rtn_port; } uses_port * basic_port_factory::create_data_proxy(std::string type) { uses_port * rtn_port = NULL; if (type == "short") rtn_port = new data_short_port_uses(); return rtn_port; } static basic_port_factory myfactory; salome-kernel-6.5.0/src/DSC/DSC_User/Basic/basic_port_factory.hxx000077500000000000000000000040051177004724000245210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : basic_port_factory.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _BASIC_PORT_FACTORY_HXX_ #define _BASIC_PORT_FACTORY_HXX_ #include "port_factory.hxx" #include "data_short_port_provides.hxx" #include "data_short_port_uses.hxx" /*! \class basic_port_factory * \brief This class is an example of factory for DSC_User ports. * * This class implements the methods to be able * to be used by Superv_Component_i. * It builds basic ports. */ class basic_port_factory : public port_factory { public: basic_port_factory(); virtual ~basic_port_factory(); /*! * This method creates a provides port of Basic ports. * * \param type the basic port's type. * \return a pointer of the provides port. */ virtual provides_port * create_data_servant(std::string type); /*! * This method creates a uses port of Basic ports. * * \param type the basic port's type. * \return a pointer of the uses port. */ virtual uses_port * create_data_proxy(std::string type); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Basic/data_short_port_provides.cxx000077500000000000000000000056341177004724000257600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : data_short_port_provides.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "data_short_port_provides.hxx" data_short_port_provides::data_short_port_provides() { _val = 0; short_termine = false; short_mutex = new pthread_mutex_t(); pthread_mutex_init(short_mutex, NULL); short_condition = new pthread_cond_t(); pthread_cond_init(short_condition, NULL); short_termine_cp = true; short_mutex_cp = new pthread_mutex_t(); pthread_mutex_init(short_mutex_cp, NULL); short_condition_cp = new pthread_cond_t(); pthread_cond_init(short_condition_cp, NULL); } data_short_port_provides::~data_short_port_provides() { pthread_mutex_destroy(short_mutex); delete short_mutex; pthread_cond_destroy(short_condition); delete short_condition; pthread_mutex_destroy(short_mutex_cp); delete short_mutex_cp; pthread_cond_destroy(short_condition_cp); delete short_condition_cp; } void data_short_port_provides::put(CORBA::Short data) { // On attend que le get soit fait pthread_mutex_lock(short_mutex_cp); while (short_termine_cp == false) { pthread_cond_wait(short_condition_cp, short_mutex_cp); } short_termine_cp = false; pthread_mutex_unlock(short_mutex_cp); pthread_mutex_lock(short_mutex); _val = data; short_termine = true; pthread_cond_signal(short_condition); pthread_mutex_unlock(short_mutex); } CORBA::Short data_short_port_provides::get() { CORBA::Short result; pthread_mutex_lock(short_mutex); while (short_termine == false) { pthread_cond_wait(short_condition, short_mutex); } result = _val; short_termine = false; pthread_mutex_unlock(short_mutex); // On indique que l'on a copie la valeur pthread_mutex_lock(short_mutex_cp); short_termine_cp = true; pthread_cond_signal(short_condition_cp); pthread_mutex_unlock(short_mutex_cp); return result; } Ports::Port_ptr data_short_port_provides::get_port_ref() { return this->_this(); } salome-kernel-6.5.0/src/DSC/DSC_User/Basic/data_short_port_provides.hxx000077500000000000000000000044651177004724000257660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : data_short_port_provides.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _DATA_SHORT_PORT_PROVIDES_HXX_ #define _DATA_SHORT_PORT_PROVIDES_HXX_ #include #include #include "SALOME_Ports.hh" #include "provides_port.hxx" #include /*! \class data_short_port_provides * \brief This class a port that sends a CORBA short with * the basic port policy. */ class data_short_port_provides : public virtual POA_Ports::Data_Short_Port, public virtual provides_port { public : data_short_port_provides(); virtual ~data_short_port_provides(); /*! * This method implements the CORBA method of the interface. * \see Ports::Data_Short_Port::put */ virtual void put(CORBA::Short data); /*! * This method is used by the component to get * the last value received. * * \return the last value received (default 0). */ virtual CORBA::Short get(); /*! * This method gives the port CORBA reference. * * \return port's CORBA reference. */ virtual Ports::Port_ptr get_port_ref(); private : CORBA::Short _val; pthread_mutex_t * short_mutex; pthread_cond_t * short_condition; bool short_termine; pthread_mutex_t * short_mutex_cp; pthread_cond_t * short_condition_cp; bool short_termine_cp; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Basic/data_short_port_uses.cxx000077500000000000000000000040071177004724000250750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : data_short_port_uses.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "data_short_port_uses.hxx" #include data_short_port_uses::data_short_port_uses() { _my_ports = NULL; } data_short_port_uses::~data_short_port_uses() {} const char * data_short_port_uses::get_repository_id() { return "IDL:Ports/Data_Short_Port:1.0"; } void data_short_port_uses::put(CORBA::Short data) { // if (!CORBA::is_nil(_my_port)) // _my_port->put(data); if (!_my_ports) std::cerr << "data_short_port_uses::put is NULL" << std::endl; else { for(int i = 0; i < _my_ports->length(); i++) { Ports::Data_Short_Port_ptr port = Ports::Data_Short_Port::_narrow((*_my_ports)[i]); port->put(data); } } } void data_short_port_uses::uses_port_changed(Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message) { if (_my_ports) delete _my_ports; std::cerr << "data_short_port_uses::uses_port_changed" << std::endl; _my_ports = new Engines::DSC::uses_port(*new_uses_port); } salome-kernel-6.5.0/src/DSC/DSC_User/Basic/data_short_port_uses.hxx000077500000000000000000000044061177004724000251050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : data_short_port_uses.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _DATA_SHORT_PORT_USES_HXX_ #define _DATA_SHORT_PORT_USES_HXX_ #include "uses_port.hxx" #include "SALOME_Ports.hh" /*! \class data_short_port_uses * \brief This class a port that sends a CORBA short with * the basic port policy. */ class data_short_port_uses : public virtual uses_port { public : data_short_port_uses(); virtual ~data_short_port_uses(); /*! * This method is used by the component to get * port's CORBA repository id * * \return port's CORBA repository id */ virtual const char * get_repository_id(); /*! * This method is used by the component to send * a short value to all the provides ports connected. * * \param data the short sended. */ virtual void put(CORBA::Short data); /*! * This method is a callback for be aware of modification * of the port's connections. * * \param new_uses_port the new uses port's sequence. * \param message message associated to the modification. */ virtual void uses_port_changed(Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message); private : Engines::DSC::uses_port * _my_ports; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/DSC_Exception.hxx000077500000000000000000000123571177004724000222640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DSC_Exception.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // #ifndef DSC_EXCEPTION_HXX #define DSC_EXCEPTION_HXX #include "Utils_SALOME_Exception.hxx" #include #include #include #include #include "utilities.h" #ifndef WIN32 extern "C" { #endif #include #ifndef WIN32 } #endif #if defined(_DEBUG_) || defined(_DEBUG) # ifdef __GNUC__ # define LOC(message) (message), __FILE__ , __LINE__ , __FUNCTION__ # else # define LOC(message) (message), __FILE__, __LINE__ # endif #else # define LOC(message) (message) #endif #ifndef SWIG /** * Class OSS is useful when streaming data through a function * that expect a string as parameter */ class OSS { private: std::ostringstream oss_; public: explicit OSS() : oss_() {} template OSS & operator<<(T obj) { oss_ << obj; return *this; } operator std::string() { return oss_.str(); } // Surtout ne pas écrire le code suivant: // car oss_.str() renvoie une string temporaire // operator const char*() // { // return oss_.str().c_str(); // } }; /* end class OSS */ #endif // Cette fonction provient de Utils_SALOME_Exception // Solution pas très élégante mais contrainte par les manques de la classe SALOME_Exception const char *makeText( const char *text, const char *fileName, const unsigned int lineNumber); struct DSC_Exception : public SALOME_Exception { // Attention, en cas de modification des paramètres par défaut // il est necessaire de les repporter dans la macro DSC_EXCEPTION ci-dessous // Le constructeur de la SALOME_Exception demande une chaine non vide // Du coup on est obliger de la désallouer avant d'y mettre la notre // car le what n'est pas virtuel donc il faut que le contenu de SALOME_Exception::_text // soit utilisable. // Ne pas mettre lineNumber=0 à cause du calcul log dans la SALOME_Exception si fileName est défini DSC_Exception( const std::string & text, const char *fileName="", const unsigned int lineNumber=0, const char *funcName="" ): SALOME_Exception(text.c_str()) , _dscText(text), _filefuncName(setFileFuncName(fileName?fileName:"",funcName?funcName:"")), _lineNumber(lineNumber), _exceptionName("DSC_Exception") { // Mise en cohérence avec l'exception SALOME (à revoir) delete [] ((char*)SALOME_Exception::_text); if (! _filefuncName.empty() ) SALOME_Exception::_text = makeText(text.c_str(),_filefuncName.c_str(),lineNumber) ; else SALOME_Exception::_text = makeText(text.c_str(),0,lineNumber) ; OSS oss ; oss << _exceptionName ; if (!_filefuncName.empty() ) oss << " in " << _filefuncName; if (_lineNumber) oss << " [" << _lineNumber << "]"; oss << " : " << _dscText; _what = oss; } virtual const char* what( void ) const throw () { return _what.c_str() ; } // L'opérateur = de SALOME_Exception n'est pas défini // problème potentiel concernant la recopie de son pointeur _text // Le destructeur de la SALOME_Exception devrait être virtuel // sinon pb avec nos attributs de type pointeur. virtual ~DSC_Exception(void) throw() {}; virtual const std::string & getExceptionName() const {return _exceptionName;}; private: std::string setFileFuncName(const char * fileName, const char * funcName) { ASSERT(fileName); ASSERT(funcName); OSS oss; if ( strcmp(fileName,"") ) oss << fileName << "##" << funcName; return oss; }; //DSC_Exception(void) {}; protected: std::string _dscText; std::string _filefuncName; std::string _exceptionName; int _lineNumber; std::string _what; }; #define DSC_EXCEPTION(Derived) struct Derived : public DSC_Exception { \ Derived ( const std::string & text, const char *fileName="", const unsigned int lineNumber=0, const char *funcName="" \ ) : DSC_Exception(text,fileName,lineNumber,funcName) { \ _exceptionName = #Derived; \ } \ virtual ~Derived(void) throw();\ };\ //Sert à eviter le problème d'identification RTTI des exceptions //Crée un unique typeInfo pour tous les bibliothèques composants SALOME //dans un fichier cxx #define DSC_EXCEPTION_CXX(NameSpace,Derived) NameSpace::Derived::~Derived(void) throw() {}; #endif /* DSC_EXCEPTION_HXX */ salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/000077500000000000000000000000001177004724000211565ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/AdjacentFunctor.hxx000077500000000000000000000075561177004724000250010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : AdjacentFunctor.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-24 16:30:34 +0100 (mer, 24 jan 2007) $ // Id : $Id: AdjacentFunctor.hxx,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _ADJACENT_FUNCTOR_HXX_ #define _ADJACENT_FUNCTOR_HXX_ #include "ConstTraits.hxx" // Pour affichage #include "DisplayPair.hxx" // //#define MYDEBUG // Suppose que le container est trié template < typename T > struct AdjacentFunctor { typedef typename ConstTrait::NonConstType TNoConst; const T & _minValue; T _maxValue; TNoConst _max; TNoConst _min; bool _minFound,_maxFound,_equal; AdjacentFunctor(const T& value):_minValue(value),_maxValue(value), _minFound(false),_maxFound(false), _equal(false) {} // Suppose que les valeurs passées en paramètres sont triées par ordre croissant bool operator()(const T &v1) { #ifdef MYDEBUG std::cout << "AdjacentFunctor: " << _minValue << _maxValue << std::endl; std::cout << "AdjacentFunctor: " << _min << _max << std::endl; #endif if ( v1 <= _minValue && v1 >= _maxValue) { _equal= true; #ifdef MYDEBUG std::cout << "AdjacentFunctor: _equal : " << v1 << std::endl; #endif return true; } if ( v1 < _minValue ) { _min=v1;_minFound=true; #ifdef MYDEBUG std::cout << "AdjacentFunctor: _minFound : " <<_min << std::endl; #endif } else if ( v1 > _maxValue ) { _max=v1;_maxFound=true; #ifdef MYDEBUG std::cout << "AdjacentFunctor: _maxFound : " <<_max << std::endl; #endif } /* if ( v1 < _minValue) { std::cout << "EE1: _min : " << _min << std::endl; _min=v1;_minFound=true; std::cout << "AdjacentFunctor: _minFound : " <<_min << ", _minValue " << _minValue << std::endl; } else if ( v1 > _maxValue ) { _max=v1;_maxFound=true; std::cout << "AdjacentFunctor: _maxFound : " <<_max << ", _maxValue " << _maxValue << std::endl; } else { _equal= true; std::cout << "AdjacentFunctor: _equal : " << v1<< ", _minValue " << _minValue << ", _maxValue " << _maxValue << std::endl; return true; } // end if */ //std::cout << "AdjacentFunctor: _minFound : " <<_min << ", _maxFound " << _max << std::endl; return ( _minFound && _maxFound ); } void setMaxValue(const T & value) {_maxValue = value;} bool isEqual() const { return _equal;} bool isBounded() const { return _minFound && _maxFound;} bool getBounds(TNoConst & min, TNoConst & max) const { #ifdef MYDEBUG std::cout << "_minFound : " <<_minFound << ", _maxFound " << _maxFound << std::endl; #endif if (_minFound && _maxFound ) { min=_min; max=_max; return true; } return false; } void reset() { _minFound = false; _maxFound = false; _equal = false; }; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/000077500000000000000000000000001177004724000225335ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/Calcium.cxx000077500000000000000000000116371177004724000246470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "Calcium.hxx" #include "CalciumInterface.hxx" #include "calcium.h" #include #include #include #include PySupervCompo::PySupervCompo( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr contain, const char *instanceName, const char *interfaceName, bool notif) : Superv_Component_i(orb, poa,contain, instanceName, interfaceName,false,false) { } PySupervCompo::~PySupervCompo() { } extern "C" { void cp_exit(int); void setDependency(provides_port*, char*, CalciumTypes::DependencyType); void cp_exit(int err) { throw CalciumException(err,LOC("Abort coupling")); } void setDependency(provides_port * port,char* type,CalciumTypes::DependencyType depend) { if(std::string(type)=="CALCIUM_real") { dynamic_cast(port)->setDependencyType(depend); } else if(std::string(type)=="CALCIUM_double") { dynamic_cast(port)->setDependencyType(depend); } else if(std::string(type)=="CALCIUM_integer") { dynamic_cast(port)->setDependencyType(depend); } else if(std::string(type)=="CALCIUM_long") { dynamic_cast(port)->setDependencyType(depend); } else if(std::string(type)=="CALCIUM_string") { dynamic_cast(port)->setDependencyType(depend); } else if(std::string(type)=="CALCIUM_logical") { dynamic_cast(port)->setDependencyType(depend); } else if(std::string(type)=="CALCIUM_complex") { dynamic_cast(port)->setDependencyType(depend); } else { std::cerr << "unknown type:" << std::endl; } } void create_calcium_port(Superv_Component_i* compo,char* name,char* type,char *mode,char* depend) { std::stringstream msg; msg << type << " " << mode << " " << depend; CORBA::String_var componentName=compo->instanceName(); std::string containerName=compo->getContainerName(); Engines_DSC_interface::writeEvent("create_calcium_port",containerName,componentName,name,"",msg.str().c_str()); if(std::string(mode) == "IN") { provides_port * port ; //provides port try { port = compo->create_provides_data_port(type); compo->add_port(port, name); if(std::string(depend) == "I") setDependency(port,type,CalciumTypes::ITERATION_DEPENDENCY); else if(std::string(depend) == "T") setDependency(port,type,CalciumTypes::TIME_DEPENDENCY); else { std::cerr << "create_calcium_port:unknown dependency: " << depend << std::endl; } } catch(const Superv_Component_i::PortAlreadyDefined& ex) { //Port already defined : we use the old one delete port; std::cerr << "create_calcium_port: " << ex.what() << std::endl; } catch ( ... ) { std::cerr << "create_calcium_port: unknown exception" << std::endl; } } else if(std::string(mode) == "OUT") { uses_port * uport ; try { uport = compo->create_uses_data_port(type); compo->add_port(uport, name); } catch(const Superv_Component_i::PortAlreadyDefined& ex) { //Port already defined : we use the old one delete uport; std::cerr << "create_calcium_port: " << ex.what() << std::endl; } catch ( ... ) { std::cerr << "create_calcium_port: unknown exception" << std::endl; } } else { //Unknown mode std::cerr << "create_calcium_port:Unknown mode: " << mode << std::endl; } } } salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/Calcium.hxx000077500000000000000000000025421177004724000246470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "Superv_Component_i.hxx" class PySupervCompo:public Superv_Component_i { public: PySupervCompo(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr contain, const char *instanceName, const char *interfaceName, bool notif = false); virtual ~PySupervCompo(); CORBA::Boolean init_service(const char * service_name){return true;}; }; extern "C" void create_calcium_port(Superv_Component_i* compo,char* name,char* type,char *mode,char* depend); salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumC.c000077500000000000000000000426761177004724000244010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Calcium.c // Author : Eric Fayolle (EDF) // Module : KERNEL // #include "calcium.h" #include "calciumf.h" #include "CalciumFortranInt.h" #include #include #include #include // Interface C de SalomeCalcium typedef int InfoType; typedef char bool; //TODO: ajouter les prototypes pour eviter les pbs de passage par valeur InfoType ecp_fint_ (void * component, char* nomVar, float t); InfoType ecp_fini_ (void * component, char* nomVar, int i); InfoType ecp_efft_ (void * component, char* nomVar, float t); InfoType ecp_effi_ (void * component, char* nomVar, int i); /************************************/ /* INTERFACES DE LECTURE EN 0 COPIE */ /************************************/ /* Definition des méthodes calcium étendues en 0 copie */ /* Le buffer est alloué par le port pas par l'utilisateur */ /* Remarquer le type ** de data */ /* L'utilisateur devra appeler ecp_..._free pour désallouer le buffer interne */ /* Attention en cas de lectures multiples : le buffer retourné est le même */ /* Attention si les niveaux sont actifs le buffer peut être supprimé automatiquement par calcium. */ #define CALCIUM_EXT_LECT_INTERFACE_C_(_name,_timeType,_type,_typeName,_qual) \ InfoType ecp_##_name (void * component, int mode, \ _timeType * ti, _timeType * tf, int * i, \ char * nomvar, int bufferLength, \ int * nRead, _type _qual ** data ) { \ size_t _nRead; \ long _i=*i; \ fflush(stdout); \ fflush(stderr); \ \ InfoType info = ecp_lecture_##_typeName (component, mode, ti, tf, &_i, \ nomvar, bufferLength, &_nRead, \ data ); \ /* std::cout << "-------- CalciumInterface(C Part), Valeur de data : " << std::endl; */ \ /* std::cout << "Ptr :" << *data << std::endl; */ \ /* for (int j=0; j<_nRead;++j) */ \ /* printf("--- Valeur de data[%d] : %d \n",j,(*data)[j]); */ \ /* std::cout << "Ptr :" << *data << std::endl; */ \ /* */ \ /* std::cerr << "-------- CalciumInterface(C Part) MARK 2 ------------------" << std::endl; */ \ if(mode == CP_SEQUENTIEL) \ *i = _i; \ *nRead=_nRead; \ /* std::cerr << "-------- CalciumInterface(C Part) MARK 3 ------------------" << std::endl; */ \ \ return info; \ }; \ void ecp_##_name##_free ( _type _qual * data) { \ ecp_lecture_##_typeName##_free(data); \ }; /* L'interface de cette routine diffère de celle obtenue par la macro : CALCIUM_LECT_INTERFACE_C_. Le paramètre supplémentaire strSize indique la taille fixe et identique des chaînes stockées dans data (les ports CALCIUM n'en n'ont pas besoin) */ InfoType ecp_lch(void * component, int mode, float * ti, float * tf, int * i, char * nomvar, int bufferLength, int * nRead, char *** data, int strSize) { size_t _nRead; long _i=*i; fflush(stdout);fflush(stderr); InfoType info = ecp_lecture_str (component, mode, ti, tf, &_i, nomvar, bufferLength, &_nRead, data);/*, strSize ); strSize est inutile pour les ports CALCIUM qui gèrent des tailles quelconques de chaines. */ if(mode == CP_SEQUENTIEL) *i = _i; *nRead=_nRead; fflush(stdout);fflush(stderr); return info; }; void ecp_lch_free (char* * data) { \ ecp_lecture_str_free(data); \ }; #define STAR * /*REVERIFIER MAINTENANT 0 COPY avec int2integer*/ CALCIUM_EXT_LECT_INTERFACE_C_(len,float,int,int2integer,); CALCIUM_EXT_LECT_INTERFACE_C_(lre,float,float,float,); CALCIUM_EXT_LECT_INTERFACE_C_(ldb,double,double,double,); CALCIUM_EXT_LECT_INTERFACE_C_(llo,float,int,bool,); CALCIUM_EXT_LECT_INTERFACE_C_(lcp,float,float,cplx,); /* CALCIUM_EXT_LECT_INTERFACE_C_(lch,float,char,STAR[]); */ /**************************************/ /* INTERFACES DE LECTURE AVEC RECOPIE */ /**************************************/ #define CALCIUM_LECT_INTERFACE_C_(_name,_timeType,_calInt,_type,_typeName,_qual,lastarg) \ _calInt cp_##_name (void * component, _calInt mode, \ _timeType * ti, _timeType * tf, _calInt * i, \ char * nomvar, _calInt bufferLength, \ _calInt * nRead, _type _qual * data \ lastarg ) { \ \ int _mode = (int) mode; \ size_t _bufferLength = bufferLength; \ size_t _nRead; \ long _i =*i; \ fflush(stdout); \ fflush(stderr); \ \ if ( (data == NULL) || (_bufferLength < 1) ) return CPNTNULL; \ \ _calInt info = ecp_lecture_##_typeName (component, _mode, ti, tf, &_i, \ nomvar, _bufferLength, &_nRead, \ &data ); \ if(mode == CP_SEQUENTIEL) \ *i = _i; \ *nRead=_nRead; \ fflush(stdout); \ fflush(stderr); \ \ return info; \ }; \ void cp_##_name##_free ( _type _qual * data) { \ ecp_lecture_##_typeName##_free(data); \ }; /* L'interface de cette routine diffère de celle obtenue par la macro : CALCIUM_LECT_INTERFACE_C_. Le paramètre supplémentaire strSize indique la taille fixe et identique des chaînes stockées dans data (les ports CALCIUM n'en n'ont pas besoin) */ /* InfoType cp_lch(void * component, int mode, float * ti, float * tf, int * i, */ /* char * nomvar, int bufferLength, int * nRead, */ /* char ** data, int strSize) { */ /* size_t _nRead; */ /* long _i=*i; */ /* fflush(stdout);fflush(stderr); */ /* fprintf(stderr,"Beginning of cp_lch: %s %d %f\n",nomvar,*i,*ti); */ /* if ( (data == NULL) || (bufferLength < 1) ) return CPNTNULL; */ /* InfoType info = ecp_lecture_str (component, mode, ti, tf, &_i, */ /* nomvar, bufferLength, &_nRead, */ /* &data);*/ /*, strSize ); */ /* strSize est inutile pour les ports CALCIUM */ /* qui gèrent des tailles quelconques de chaines. */ /* if(mode == CP_SEQUENTIEL) */ /* *i = _i; */ /* *nRead=_nRead; */ /* fprintf(stderr,"End of cp_lch: %s %d \n",nomvar,*i); */ /* fflush(stdout);fflush(stderr); */ /* return info; */ /* }; */ /* Definition des méthodes calcium standard */ /* CALCIUM_LECT_INTERFACE_C_( , , , , , ,)*/ CALCIUM_LECT_INTERFACE_C_(len,float ,int,int ,int2integer,,); /*llg ne fonctionnera pas toujours correctement (port calcium_integer) si sizeof(long) == 64 bits && cal_int==int (32 bits) sinon problème de conversion de 64bits vers 32bits */ CALCIUM_LECT_INTERFACE_C_(llg,float ,int,long ,long2integer,,); CALCIUM_LECT_INTERFACE_C_(lln,float ,int,long ,long,,); CALCIUM_LECT_INTERFACE_C_(lre,float ,int,float ,float,,); CALCIUM_LECT_INTERFACE_C_(ldb,double,int,double ,double,,); CALCIUM_LECT_INTERFACE_C_(llo,float ,int,int ,bool,,); CALCIUM_LECT_INTERFACE_C_(lcp,float ,int,float ,cplx,,); #define STAR * #define LCH_LAST_PARAM ,int strsize CALCIUM_LECT_INTERFACE_C_(lch,float ,int,char ,str,STAR, LCH_LAST_PARAM ); /* Definition des méthodes calcium destinées à l'interfaçage fortran avec une taille des INTEGER fortran paramétrés à la configuration du KERNEL */ CALCIUM_LECT_INTERFACE_C_(len_fort_,float ,cal_int,cal_int ,integer,,); CALCIUM_LECT_INTERFACE_C_(lin_fort_,float ,cal_int,int ,int2integer,,); /*llg_fort_ ne fonctionnera pas toujours correctement (port calcium_integer) si sizeof(long) == 64 bits && cal_int==int (32 bits) sinon problème de conversion de 64bits vers 32bits */ CALCIUM_LECT_INTERFACE_C_(llg_fort_,float ,cal_int,long ,long2integer,,); CALCIUM_LECT_INTERFACE_C_(lre_fort_,float ,cal_int,float ,float,,); CALCIUM_LECT_INTERFACE_C_(ldb_fort_,double,cal_int,double ,double,,); CALCIUM_LECT_INTERFACE_C_(llo_fort_,float ,cal_int,int ,bool,,); /*int pour bool ou cal_int */ CALCIUM_LECT_INTERFACE_C_(lcp_fort_,float ,cal_int,float ,cplx,,); CALCIUM_LECT_INTERFACE_C_(lch_fort_,float ,cal_int,char ,str,STAR, LCH_LAST_PARAM ); CALCIUM_LECT_INTERFACE_C_(lln_fort_,float ,cal_int,long ,long,,); /**********************************************/ /* INTERFACES DE DÉBUT ET DE FIN DE COUPLAGE */ /**********************************************/ InfoType cp_cd (void * component, char * instanceName) { InfoType info = ecp_cd_(component,instanceName); return info; } InfoType cp_fin (void * component, int code) { /* TODO : gérer avec les callbacks des ports DSC */ InfoType info = ecp_fin_(component,code); return info; } /***************************/ /* INTERFACES D'ECRITURE */ /***************************/ #define CALCIUM_ECR_INTERFACE_C_(_name,_timeType,_calInt,_type,_typeName,_qual,lastarg) \ _calInt cp_##_name (void * component, _calInt mode, \ _timeType t, _calInt i, \ char * nomvar, _calInt nbelem, \ _type _qual * data \ lastarg ) { \ \ int _mode = mode; \ long _i = i; \ size_t _nbelem = nbelem; \ _timeType _t = t; \ fflush(stdout); \ fflush(stderr); \ if ( (data == NULL) || (nbelem < 1) ) return CPNTNULL; \ \ _calInt info = ecp_ecriture_##_typeName (component, _mode, &_t, _i, \ nomvar, _nbelem, \ data ); \ fflush(stdout); \ fflush(stderr); \ \ return info; \ }; \ /* InfoType cp_ech(void * component, int mode, float t, int i, */ /* char * nomvar, int nbelem, */ /* char ** data, int strSize) { */ /*long _i=i;*/ /* fflush(stdout);fflush(stderr); */ /* fprintf(stderr,"Beginning of cp_ech: %s %d %f\n",nomvar,i,t); */ /* if ( (data == NULL) || (nbelem < 1) ) return CPNTNULL; */ /* InfoType info = ecp_ecriture_str (component, mode, &t, i, */ /* nomvar, nbelem, */ /* data); */ /*, strSize );*/ /* fprintf(stderr,"End of cp_ech: %s %d \n",nomvar,i); */ /* fflush(stdout); */ /* fflush(stderr); */ /* return info; */ /* }; */ /* Definition des méthodes calcium standard */ /* CALCIUM_ECR_INTERFACE_C_(_name,_timeType,_calInt,type,_typeName,_qual) */ CALCIUM_ECR_INTERFACE_C_(een,float ,int,int ,int2integer,,); /*elg ne fonctionnera pas toujours correctement (port calcium_integer) si sizeof(long) == 64 bits && cal_int==int (32 bits) sinon problème de conversion de 64bits vers 32bits */ CALCIUM_ECR_INTERFACE_C_(elg,float ,int,long ,long2integer,,); CALCIUM_ECR_INTERFACE_C_(ere,float ,int,float ,float,,); CALCIUM_ECR_INTERFACE_C_(edb,double,int,double,double,,); CALCIUM_ECR_INTERFACE_C_(elo,float ,int,int ,bool,,); CALCIUM_ECR_INTERFACE_C_(ecp,float ,int,float ,cplx,,); CALCIUM_ECR_INTERFACE_C_(ech,float ,int,char ,str,STAR,LCH_LAST_PARAM ); CALCIUM_ECR_INTERFACE_C_(eln,float ,int,long ,long,,); /* Definition des méthodes calcium destinées à l'interfaçage fortran avec une taille des INTEGER fortran paramétrés à la configuration du KERNEL */ CALCIUM_ECR_INTERFACE_C_(een_fort_,float ,cal_int,cal_int,integer,,); /*elg_fort_ ne fonctionnera pas toujours correctement (port calcium_integer) si sizeof(long) == 64 bits && cal_int==int (32 bits) sinon problème de conversion de 64bits vers 32bits */ CALCIUM_ECR_INTERFACE_C_(elg_fort_,float ,cal_int,long ,long2integer,,); CALCIUM_ECR_INTERFACE_C_(ein_fort_,float ,cal_int,int ,int2integer,,); CALCIUM_ECR_INTERFACE_C_(ere_fort_,float ,cal_int,float ,float,,); CALCIUM_ECR_INTERFACE_C_(edb_fort_,double,cal_int,double,double,,); CALCIUM_ECR_INTERFACE_C_(elo_fort_,float ,cal_int,int ,bool,,); CALCIUM_ECR_INTERFACE_C_(ecp_fort_,float ,cal_int,float ,cplx,,); CALCIUM_ECR_INTERFACE_C_(ech_fort_,float ,cal_int,char ,str,STAR,LCH_LAST_PARAM ); CALCIUM_ECR_INTERFACE_C_(eln_fort_,float ,cal_int,long ,long,,); /***************************/ /* Interface for cleaning */ /***************************/ InfoType cp_fini (void * component, char * nomvar, int i) { InfoType info = ecp_fini_(component,nomvar,i); return info; } InfoType cp_fint (void * component, char * nomvar, float t) { InfoType info = ecp_fint_(component,nomvar,t); return info; } InfoType cp_effi (void * component, char * nomvar, int i) { InfoType info = ecp_effi_(component,nomvar,i); return info; } InfoType cp_efft (void * component, char * nomvar, float t) { InfoType info = ecp_efft_(component,nomvar,t); return info; } salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumCInterface.cxx000077500000000000000000000244361177004724000265740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "CalciumCInterface.hxx" #include "CalciumCxxInterface.hxx" #include //#define MYDEBUG #ifdef MYDEBUG #define DEBTRACE(msg) {std::cerr<(component); bool provideLastGivenValue = false; if (code == CalciumTypes::CP_CONT ) provideLastGivenValue = true; try { CalciumInterface::ecp_fin( *_component, provideLastGivenValue); } catch ( const CalciumException & ex) { //tester l'arrêt par exception DEBTRACE( ex.what() ); return ex.getInfo(); } return CalciumTypes::CPOK; }; extern "C" CalciumTypes::InfoType ecp_cd_ (void * component, char * instanceName) { Superv_Component_i * _component = static_cast(component); std::string name; CalciumInterface::ecp_cd( *_component,name); strcpy(instanceName,name.c_str()); return CalciumTypes::CPOK; } // Interface for cleaning extern "C" CalciumTypes::InfoType ecp_fini_ (void * component, char* nomvar, int i) { Superv_Component_i * _component = static_cast(component); try { CalciumInterface::ecp_fini( *_component,nomvar,i); } catch ( const CalciumException & ex) { DEBTRACE( ex.what() ); return ex.getInfo(); } return CalciumTypes::CPOK; } extern "C" CalciumTypes::InfoType ecp_fint_ (void * component, char* nomvar, float t) { Superv_Component_i * _component = static_cast(component); try { CalciumInterface::ecp_fint( *_component,nomvar,t); } catch ( const CalciumException & ex) { DEBTRACE( ex.what() ); return ex.getInfo(); } return CalciumTypes::CPOK; } extern "C" CalciumTypes::InfoType ecp_effi_ (void * component, char* nomvar, int i) { Superv_Component_i * _component = static_cast(component); try { CalciumInterface::ecp_effi( *_component,nomvar,i); } catch ( const CalciumException & ex) { DEBTRACE( ex.what() ); return ex.getInfo(); } return CalciumTypes::CPOK; } extern "C" CalciumTypes::InfoType ecp_efft_ (void * component, char* nomvar, float t) { Superv_Component_i * _component = static_cast(component); try { CalciumInterface::ecp_efft( *_component,nomvar,t); } catch ( const CalciumException & ex) { DEBTRACE( ex.what() ); return ex.getInfo(); } return CalciumTypes::CPOK; } // INTERFACE C/CPP pour les chaines de caractères // Le paramètre supplémentaire strsize n'étant pas utilisé // j'utilise la génération par la macro CALCIUM_C2CPP_INTERFACE_(str,char*,); // extern "C" CalciumTypes::InfoType ecp_lecture_str (void * component, int dependencyType, // float * ti, float * tf, long * i, // const char * const nomvar, size_t bufferLength, // size_t * nRead, char ** *data, size_t strsize ) { // Superv_Component_i * _component = static_cast(component); // double _ti=*ti; // double _tf=*tf; // size_t _nRead=0; // size_t _bufferLength=bufferLength; // CalciumTypes::DependencyType dependencyType= // static_cast(dependencyType); // // - GERER POINTEUR NULL : NOTHING TODO // // - VERIFIER LA TAILLE DES CHAINES RETOURNEES (ELLES DEVRAIENT ETRES CORRECTES SI L'ECRITURE EST BIEN CODEE.) // DEBTRACE( "-------- CalciumInterface(lecture Inter Part) MARK 1 ------------------" ) // try { // CalciumInterface::ecp_lecture< char*, char* >( *_component, // dependencyType, // _ti, _tf, *i, // nomvar, // _bufferLength, _nRead, *data); // } catch ( const CalciumException & ex) { // DEBTRACE( ex.what() ); // return ex.getInfo(); // } // *nRead = _nRead; // if (dependencyType == CalciumTypes::CP_SEQUENTIEL ) // *ti=(float)(_ti); // DEBTRACE( "-------- CalciumInterface(lecture Inter Part), Data Ptr :" << *data ) ; // return CalciumTypes::CPOK; // }; // extern "C" void ecp_lecture_str_free (char** data) { // CalciumInterface::ecp_free< char*, char* >(data); // }; // extern "C" CalciumTypes::InfoType ecp_ecriture_str (void * component, int dependencyType, // float *t, long i, // const char * const nomvar, size_t bufferLength, // char ** data, int strsize ) { // Superv_Component_i * _component = static_cast(component); // /* Je ne sais pas pourquoi, je n'arrive pas à passer t par valeur : corruption de la pile*/ // double _t=*t; // size_t _bufferLength=bufferLength; // // - VERIFIER LA TAILLE DES CHAINES RETOURNEES (ELLES DEVRAIENT ETRES CORRECTES SI L'ECRITURE EST BIEN CODEE.) // DEBTRACE( "-------- CalciumInterface(ecriture Inter Part) MARK 1 ------------------" ) // try { // std::string essai(nomvar); // DEBTRACE( "----------->-" << nomvar ) // CalciumInterface::ecp_ecriture< char*, char* >( *_component, // static_cast(dependencyType), // _t,i,nomvar,_bufferLength,*data); // } catch ( const CalciumException & ex) { // std::cerr << ex.what() << std::endl; // return ex.getInfo(); // } // DEBTRACE( "-------- CalciumInterface(ecriture Inter Part), Valeur de data :" << data ) // return CalciumTypes::CPOK; // }; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumCInterface.hxx000077500000000000000000000103651177004724000265750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /* File : CalciumInterface.hxx Author : Eric Fayolle (EDF) Module : KERNEL Modified by : $LastChangedBy$ Date : $LastChangedDate: 2007-03-01 13:27:58 +0100 (jeu, 01 mar 2007) $ Id : $Id: CalciumCInterface.hxx,v 1.1.2.2.14.2.12.1 2012-04-12 14:05:06 vsr Exp $ */ #ifndef _CALCIUM_C_INTERFACE_H_ #define _CALCIUM_C_INTERFACE_H_ #include "CalciumMacroCInterface.hxx" #include "CalciumTypes.hxx" #include "CalciumFortranInt.h" #include /* Déclaration de l'Interface entre l'API C et l'API C++ L'utilisateur CALCIUM n'a normalement pas a utliser cette interface En C/C++ il utilisera celle définie dans Calcium.c (calcium.h) 2 En C++/CORBA directement celle de CalciumCxxInterface.hxx */ /* En CALCIUM l'utilisation de données de type double implique des dates de type double, pour les autres types de données les dates sont de type float */ template struct CalTimeType { typedef float TimeType; }; template <> struct CalTimeType { typedef double TimeType; }; /* Déclaration de ecp_lecture_... , ecp_ecriture_..., ecp_free_... */ /* Le premier argument est utilisé : - comme suffixe dans la définition des noms ecp_lecture_ , ecp_ecriture_ et ecp_free_ Le second argument est utilisé : - comme argument template à l'appel de la méthode C++ correspondante ( le type CORBA de port correspondant est alors obtenu par un trait) Le troisième argument est utilisée : - pour typer le paramètre data de la procédure générée - pour déduire le type des paramètres t, ti tf via un trait - comme premier paramètre template à l'appel de la méthode C++ correspondante (pour typer les données passées en paramètre ) Notons que dans le cas CALCIUM_C2CPP_INTERFACE_(int,int,), le type int n'existe pas en CORBA, le port CALCIUM correspondant utilise une séquence de long. La méthode C++ CALCIUM de lecture repère cette différence de type et charge le manipulateur de données d'effectuer une recopie (qui fonctionne si les types sont compatibles). Notons qu'en CORBA CORBA:Long est mappé sur long uniquement si celui-ci est 32bits sinon il sera mappé sur le type int (si il est 32bits). Le type CORBA:LongLong est mappé sur le type long s'il est 64 bits sinon celà peut être un long long (s'il existe). */ CALCIUM_C2CPP_INTERFACE_HXX_(intc,int,int,); CALCIUM_C2CPP_INTERFACE_HXX_(long,long,long,); CALCIUM_C2CPP_INTERFACE_HXX_(integer,integer,cal_int,); CALCIUM_C2CPP_INTERFACE_HXX_(int2integer,integer,int,); CALCIUM_C2CPP_INTERFACE_HXX_(long2integer,integer, long,); CALCIUM_C2CPP_INTERFACE_HXX_(float,float,float, ); CALCIUM_C2CPP_INTERFACE_HXX_(double,double,double,); /* Fonctionne mais essai suivant pour simplification de Calcium.c CALCIUM_C2CPP_INTERFACE_(bool,bool,);*/ CALCIUM_C2CPP_INTERFACE_HXX_(bool,bool,int,); CALCIUM_C2CPP_INTERFACE_HXX_(cplx,cplx,float,); CALCIUM_C2CPP_INTERFACE_HXX_(str,str,char*,); /* Déclaration de ecp_fin */ extern "C" CalciumTypes::InfoType ecp_fin_ (void * component, int code); extern "C" CalciumTypes::InfoType ecp_cd_ (void * component, char* instanceName); extern "C" CalciumTypes::InfoType ecp_fini_ (void * component, char* nomVar, int i); extern "C" CalciumTypes::InfoType ecp_fint_ (void * component, char* nomVar, float t); extern "C" CalciumTypes::InfoType ecp_effi_ (void * component, char* nomVar, int i); extern "C" CalciumTypes::InfoType ecp_efft_ (void * component, char* nomVar, float t); #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumCouplingPolicy.cxx000077500000000000000000000134411177004724000275230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumCouplingPolicy.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Id : $Id: CalciumCouplingPolicy.cxx,v 1.3.2.3.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #include "CalciumCouplingPolicy.hxx" CalciumCouplingPolicy::CalciumCouplingPolicy():_dependencyType(CalciumTypes::UNDEFINED_DEPENDENCY), _storageLevel(CalciumTypes::UNLIMITED_STORAGE_LEVEL), _dateCalSchem(CalciumTypes::TI_SCHEM), _interpolationSchem(CalciumTypes::L1_SCHEM), _extrapolationSchem(CalciumTypes::UNDEFINED_EXTRA_SCHEM), _alpha(0.0),_deltaT(CalciumTypes::EPSILON), _disconnectDirective(CalciumTypes::UNDEFINED_DIRECTIVE){}; void CalciumCouplingPolicy::setDependencyType (CalciumTypes::DependencyType dependencyType) {_dependencyType=dependencyType;} CalciumTypes::DependencyType CalciumCouplingPolicy::getDependencyType () const { return _dependencyType;} void CalciumCouplingPolicy::setStorageLevel (size_t storageLevel) { MESSAGE( "CalciumCouplingPolicy::setStorageLevel: " << storageLevel ); if ( storageLevel < 1 && (storageLevel != CalciumTypes::UNLIMITED_STORAGE_LEVEL) ) throw CalciumException(CalciumTypes::CPRENA,LOC("StorageLevel < 1 is not allowed")); _storageLevel = storageLevel; } size_t CalciumCouplingPolicy::getStorageLevel () const {return _storageLevel;} void CalciumCouplingPolicy::setDateCalSchem (CalciumTypes::DateCalSchem dateCalSchem) { MESSAGE( "CalciumCouplingPolicy::setDateCalSchem: " << dateCalSchem ); if ( _dependencyType != CalciumTypes::TIME_DEPENDENCY ) throw CalciumException(CalciumTypes::CPITVR,LOC("Can't set a temporal scheme on a port that is not time dependent")); _dateCalSchem = dateCalSchem; } CalciumTypes::DateCalSchem CalciumCouplingPolicy::getDateCalSchem () const { return _dateCalSchem; } void CalciumCouplingPolicy::setAlpha(double alpha) { MESSAGE( "CalciumCouplingPolicy::setAlpha: " << alpha ); if ( _dependencyType != CalciumTypes::TIME_DEPENDENCY ) throw CalciumException(CalciumTypes::CPITVR,LOC("Can't set alpha on a port that is not time dependent")); if ( 0 <= alpha && alpha <= 1 ) _alpha = alpha; else throw CalciumException(CalciumTypes::CPRENA,LOC("alpha must be between [0,1]")); } double CalciumCouplingPolicy::getAlpha() const { return _alpha; } void CalciumCouplingPolicy::setDeltaT(double deltaT ) { if ( _dependencyType != CalciumTypes::TIME_DEPENDENCY ) throw CalciumException(CalciumTypes::CPITVR,LOC("Can't set deltaT on a port that is not time dependent")); if ( 0 <= deltaT && deltaT <= 1 ) _deltaT = deltaT; else throw(CalciumException(CalciumTypes::CPRENA,LOC("deltaT must be between [0,1]"))); } double CalciumCouplingPolicy::getDeltaT() const {return _deltaT;} void CalciumCouplingPolicy::setInterpolationSchem (CalciumTypes::InterpolationSchem interpolationSchem) { MESSAGE( "CalciumCouplingPolicy::setInterpolationSchem: " << interpolationSchem ); if ( _dependencyType != CalciumTypes::TIME_DEPENDENCY ) throw CalciumException(CalciumTypes::CPITVR,LOC("Can't set InterpolationSchem on a port that is not time dependent")); _interpolationSchem=interpolationSchem; } void CalciumCouplingPolicy::setExtrapolationSchem (CalciumTypes::ExtrapolationSchem extrapolationSchem) { if ( _dependencyType != CalciumTypes::TIME_DEPENDENCY ) throw CalciumException(CalciumTypes::CPITVR,LOC("Can't set ExtrapolationSchem on a port that is not time dependent")); _extrapolationSchem=extrapolationSchem; } CalciumTypes::InterpolationSchem CalciumCouplingPolicy::getInterpolationSchem () const { return _interpolationSchem; }; CalciumTypes::ExtrapolationSchem CalciumCouplingPolicy::getExtrapolationSchem () const { return _extrapolationSchem; }; CalciumCouplingPolicy::TimeType CalciumCouplingPolicy::getEffectiveTime(CalciumCouplingPolicy::TimeType ti, CalciumCouplingPolicy::TimeType tf) { if ( _dateCalSchem == CalciumTypes::TI_SCHEM ) return ti; if ( _dateCalSchem == CalciumTypes::TF_SCHEM ) return tf; //CalciumTypes::ALPHA_SCHEM return tf*_alpha + ti*(1-_alpha); } void CalciumCouplingPolicy::disconnect(bool provideLastGivenValue) { if (provideLastGivenValue) { #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::disconnect CP_CONT ------------------" << std::endl; #endif _disconnectDirective = CalciumTypes::CONTINUE; } else { #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::disconnect CP_ARRET ------------------" << std::endl; #endif _disconnectDirective = CalciumTypes::STOP; } //Wakeup get data if any wakeupWaiting(); } salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumCouplingPolicy.hxx000077500000000000000000000540611177004724000275330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumCouplingPolicy.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Id : $Id: CalciumCouplingPolicy.hxx,v 1.3.2.3.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef __CALCIUM_COUPLING_POLICY__ #define __CALCIUM_COUPLING_POLICY__ #include #include #include "DisplayPair.hxx" #include "CouplingPolicy.hxx" #include "AdjacentFunctor.hxx" #include #include #include #include "CalciumTypes.hxx" #include "CalciumException.hxx" //#define MYDEBUG class CalciumCouplingPolicy : public CouplingPolicy { public: template class InternalDataIdContainer; template friend class InternalDataIdContainer; template friend class BoundedDataIdProcessor; template friend class EraseDataIdProcessor; template friend class EraseDataIdBeforeOrAfterTagProcessor; template friend class DisconnectProcessor; typedef CalciumTypes::DependencyType DependencyType; typedef CalciumTypes::DateCalSchem DateCalSchem; typedef CalciumTypes::InterpolationSchem InterpolationSchem; typedef CalciumTypes::ExtrapolationSchem ExtrapolationSchem; typedef CalciumTypes::DisconnectDirective DisconnectDirective; private: DependencyType _dependencyType; size_t _storageLevel; DateCalSchem _dateCalSchem; InterpolationSchem _interpolationSchem; ExtrapolationSchem _extrapolationSchem; double _alpha; double _deltaT; DisconnectDirective _disconnectDirective; public: CalciumCouplingPolicy(); void setDependencyType (DependencyType dependencyType); DependencyType getDependencyType () const; void setStorageLevel (size_t storageLevel); size_t getStorageLevel () const; void setDateCalSchem (DateCalSchem dateCalSchem); DateCalSchem getDateCalSchem () const; void setAlpha(double alpha); double getAlpha() const ; void setDeltaT(double deltaT ); double getDeltaT() const ; void setInterpolationSchem (InterpolationSchem interpolationSchem); void setExtrapolationSchem (ExtrapolationSchem extrapolationSchem); InterpolationSchem getInterpolationSchem () const ; ExtrapolationSchem getExtrapolationSchem () const ; // Classe DataId rassemblant les paramètres de la méthode PORT::put // qui identifient l'instance d'une donnée pour Calcium // Rem : Le DataId doit pouvoir être une key dans une map stl typedef double TimeType; typedef long TagType; typedef std::pair< TimeType , TagType > DataId; typedef InternalDataIdContainer < TimeType , TagType > DataIdContainer; typedef std::vector< DataId >::iterator iterator; template struct InternalDataIdContainer; inline TimeType getTime(const DataId &dataId) const { return dataId.first;} inline TagType getTag (const DataId &dataId) const { return dataId.second;} template struct BoundedDataIdProcessor; //template struct BoundedDataIdProcessor; template struct EraseDataIdProcessor; template struct EraseDataIdBeforeOrAfterTagProcessor; template struct DisconnectProcessor; // Renvoie isEqual si le dataId attendu est trouvé dans storedDataIds : // - l'itérateur wDataIt1 pointe alors sur ce dataId // Renvoie isBounded si le dataId attendu n'est pas trouvé mais encadrable et // que la politique de couplage gére ce cas de figure // - l'itérateur wDataIt1 est tel que wDataIt1->first < wdataId < (wDataIt1+1)->first // Le container doit être associatif template < typename AssocContainer > bool isDataIdConveniant( AssocContainer & storedDatas, const typename AssocContainer::key_type & expectedDataId, bool & isEqual, bool & isBounded, typename AssocContainer::iterator & wDataIt1) const; TimeType getEffectiveTime(TimeType ti, TimeType tf); void disconnect(bool provideLastGivenValue); }; //Fin de CalciumCouplingPolicy //************* DEFINITION DES METHODES ET OBJETS TEMPLATES *************// // Définition du container de DataId pour répondre au concept // de mode de couplage template struct CalciumCouplingPolicy::InternalDataIdContainer : public std::vector< std::pair< T_TIME,T_TAG> > { typedef std::vector < DataId > DataIdVect; InternalDataIdContainer(const DataId & dataId, const CalciumCouplingPolicy & policy ):std::vector< std::pair< T_TIME,T_TAG> >() { // Ignore les paramètres qui ne sont pas en rapport avec le type de dépendance switch (policy._dependencyType) { case CalciumTypes::TIME_DEPENDENCY: this->push_back(DataId(dataId.first,0)); break; case CalciumTypes::ITERATION_DEPENDENCY: this->push_back(DataId(0,dataId.second)); break; default: throw(CalciumException(CalciumTypes::CPIT,LOC("The dependency type must be set by setDependencyType before calling DataIdContainer contructor"))); break; } }; }; template struct CalciumCouplingPolicy::BoundedDataIdProcessor{ BoundedDataIdProcessor(const CouplingPolicy & couplingPolicy) {}; template < typename Iterator, typename DataId > void inline apply(typename iterator_t::value_type & data, const DataId & dataId, const Iterator & it1) const { typedef typename iterator_t::value_type value_type; #ifdef MYDEBUG std::cout << "-------- Calcium Generic BoundedDataIdProcessor.apply() called " << std::endl; #endif } }; template struct CalciumCouplingPolicy::BoundedDataIdProcessor< DataManipulator, typename boost::enable_if< boost::is_float< typename DataManipulator::InnerType> >::type > { const CalciumCouplingPolicy & _couplingPolicy; BoundedDataIdProcessor(const CalciumCouplingPolicy &couplingPolicy): _couplingPolicy(couplingPolicy) {}; // Méthode implémentant l'interpolation temporelle template < typename MapIterator > void inline apply (typename iterator_t::value_type & data, const DataId & dataId, const MapIterator & it1) const { typedef typename iterator_t::value_type value_type; typedef typename DataManipulator::InnerType InnerType; typedef typename DataManipulator::Type Type; MapIterator it2=it1; ++it2; size_t dataSize1 = DataManipulator::size(it1->second); #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Taille de donnée dataId1 : " << dataSize1 << std::endl; #endif // Gérer dans calcium la limite de la taille du buffer donnée par // l'utilisateur. size_t dataSize2 = DataManipulator::size(it2->second); #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Taille de donnée dataId2 : " << dataSize2 << std::endl; #endif size_t dataSize = std::min< size_t >( dataSize1, dataSize2 ); DataId dataId2 = it2->first; DataId dataId1 = it1->first; TimeType t2 = dataId2.first; TimeType t1 = dataId1.first; #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t1 : " << t1 << std::endl; std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t2 : " << t2 << std::endl; #endif TimeType t = dataId.first; #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t : " << t << std::endl; #endif TimeType timeDiff = t2-t1; #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de timeDiff : " << timeDiff << std::endl; #endif TimeType coeff = (t2-t)/timeDiff; #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de coeff : " << coeff << std::endl; #endif InnerType const * const InIt1 = DataManipulator::getPointer(it1->second); #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données à t1 : " << std::endl; std::copy(InIt1,InIt1+dataSize1,std::ostream_iterator(std::cout," ")); std::cout << std::endl; #endif InnerType const * const InIt2 = DataManipulator::getPointer(it2->second); #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données à t2 : " << std::endl; std::copy(InIt2,InIt2+dataSize2,std::ostream_iterator(std::cout," ")); std::cout << std::endl; #endif Type dataOut = DataManipulator::create(dataSize); InnerType * const OutIt = DataManipulator::getPointer(dataOut); #ifdef MYDEBUG std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : interpolationSchem : " << _couplingPolicy._interpolationSchem << std::endl; std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : alpha : " << _couplingPolicy._alpha << std::endl; std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : datecalschem : " << _couplingPolicy._dateCalSchem << std::endl; std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : storageLevel : " << _couplingPolicy._storageLevel << std::endl; #endif if ( timeDiff == 0.0 || _couplingPolicy._interpolationSchem == CalciumTypes::L0_SCHEM ) { std::copy(InIt1,InIt1+dataSize,OutIt); } else { boost::lambda::placeholder1_type _1; boost::lambda::placeholder2_type _2; // OLD: REM : Pour des buffers de type int // OLD: le compilo indiquera warning: converting to `long int' from `Double' std::transform(InIt1,InIt1+dataSize,InIt2,OutIt, ( _1 - _2 ) * coeff + _2 ); // for(size_t i =0; i < dataSize3; ++i) { // OutIt[i]=(InIt1[i] - InIt2[i]) * coeff + InIt2[i]; // } } #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données calculées à t : " << std::endl; std::copy(OutIt,OutIt+dataSize,std::ostream_iterator(std::cout," ")); std::cout << std::endl; #endif data = dataOut; } }; // Renvoie isEqual si le dataId attendu est trouvé dans storedDataIds : // - l'itérateur wDataIt1 pointe alors sur ce dataId // Renvoie isBounded si le dataId attendu n'est pas trouvé mais encadrable et // que la politique de couplage gére ce cas de figure // - l'itérateur wDataIt1 est tel que wDataIt1->first < wdataId < (wDataIt1+1)->first // Le container doit être associatif template < typename AssocContainer > bool CalciumCouplingPolicy::isDataIdConveniant( AssocContainer & storedDatas, const typename AssocContainer::key_type & expectedDataId, bool & isEqual, bool & isBounded, typename AssocContainer::iterator & wDataIt1) const { // Rem : le type key_type == DataId typedef typename AssocContainer::key_type key_type; AdjacentFunctor< key_type > af(expectedDataId); if ( _dependencyType == CalciumTypes::TIME_DEPENDENCY ) { #ifdef MYDEBUG std::cout << "-------- time expected : " << expectedDataId.first << std::endl; std::cout << "-------- time expected corrected : " << expectedDataId.first*(1.0-_deltaT) << std::endl; #endif af.setMaxValue(key_type(expectedDataId.first*(1.0-_deltaT),0)); } isBounded = false; // Rem 1 : // L'algo adjacent_find ne peut être utilisé avec l'AdjacentPredicate // - si la table contient un seul élément l'algorithme adjacent_find retourne end() // que se soit l'élément attendu ou non // - si la table contient deux éléments dont le dernier est celui recherché // l'algorithme adjacent_find retourne end() aussi // d'ou la necessité d'effectuer un find avant ou d'écrire un algorithme ad hoc // Rem 2 : // // L'algo find_if ne peut être utilisé car il recopie l'AdjacentFunctor // qui ne peut alors pas mémoriser ses états précédents // // Un codage en reverse serait plus efficace typename AssocContainer::iterator prev = storedDatas.begin(); typename AssocContainer::iterator current = prev; while ( (current != storedDatas.end()) && !af(current->first) ) { #ifdef MYDEBUG std::cerr << "------- stored time : " << current->first << std::endl; #endif // if ( af(current->first) ) break; prev = current++; } isEqual = af.isEqual(); // On considère qu'il n'est pas possible d'encadrer en dépendance itérative, // on se veut pas calculer d'interpolation. if ( _dependencyType == CalciumTypes::TIME_DEPENDENCY) isBounded = af.isBounded(); if ( isEqual ) wDataIt1 = current; else if (isBounded) wDataIt1 = prev; else wDataIt1 = storedDatas.end(); #ifdef MYDEBUG std::cout << "-------- isDataIdConvenient : isEqual : " << isEqual << " , isBounded " << isBounded << std::endl; #endif return isEqual || isBounded; } //Remove DataId before or after a given time or tag template < typename DataManipulator > struct CalciumCouplingPolicy::EraseDataIdBeforeOrAfterTagProcessor { CalciumCouplingPolicy &_couplingPolicy; EraseDataIdBeforeOrAfterTagProcessor(CalciumCouplingPolicy &couplingPolicy): _couplingPolicy(couplingPolicy) {}; template < typename Container,typename TimeType,typename TagType > void apply(Container & storedDatas, TimeType time, TagType tag, bool before) const { typedef typename Container::iterator iterator; typedef typename Container::reverse_iterator riterator; if(_couplingPolicy._dependencyType == CalciumTypes::TIME_DEPENDENCY) { if(before) { iterator it=storedDatas.begin(); while(it != storedDatas.end() && it->first.first <= time) { DataManipulator::delete_data(it->second); storedDatas.erase(it); it=storedDatas.begin(); } } else { riterator it=storedDatas.rbegin(); while(it != storedDatas.rend() && it->first.first >= time) { DataManipulator::delete_data(it->second); storedDatas.erase(it->first); it=storedDatas.rbegin(); } } } else { if(before) { iterator it=storedDatas.begin(); while(it != storedDatas.end() && it->first.second <= tag) { DataManipulator::delete_data(it->second); storedDatas.erase(it); it=storedDatas.begin(); } } else { riterator it=storedDatas.rbegin(); while(it != storedDatas.rend() && it->first.second >= tag) { DataManipulator::delete_data(it->second); storedDatas.erase(it->first); it=storedDatas.rbegin(); } } } } }; // TODO :PAS ENCORE TESTE AVEC UN NIVEAU POSITIONNE // Supprime les DataId et les données associées // du container associatif quand le nombre // de données stockées dépasse le niveau CALCIUM. // Cette méthode est appelée de GenericPort::get et GenericPort::next // TODO : Elle devrait également être appelée dans GenericPort::Put // mais il faut étudier les interactions avec GenericPort::Get et GenericPort::next template < typename DataManipulator > struct CalciumCouplingPolicy::EraseDataIdProcessor { CalciumCouplingPolicy &_couplingPolicy; EraseDataIdProcessor(CalciumCouplingPolicy &couplingPolicy): _couplingPolicy(couplingPolicy) {}; template < typename Container > void apply(Container & storedDatas, typename Container::iterator & wDataIt1 ) const { typedef typename Container::key_type key_type; typedef typename Container::value_type value_type; typedef typename Container::iterator iterator; #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::eraseDataId, storedDatasSize : " << storedDatas.size() << std::endl; #endif if ( _couplingPolicy._storageLevel == CalciumTypes::UNLIMITED_STORAGE_LEVEL ) return; size_t storedDatasSize = storedDatas.size(); long s = storedDatasSize - _couplingPolicy._storageLevel; if (s > 0 ) { size_t dist=distance(storedDatas.begin(),wDataIt1); for (int i=0; i struct CalciumCouplingPolicy::DisconnectProcessor { const CalciumCouplingPolicy & _couplingPolicy; DisconnectProcessor(const CalciumCouplingPolicy & couplingPolicy): _couplingPolicy(couplingPolicy) {}; template < typename Container, typename DataId > bool apply(Container & storedDatas, const DataId & expectedDataId, typename Container::iterator & wDataIt1 ) const { typedef typename Container::key_type key_type; typedef typename Container::value_type value_type; typedef typename Container::iterator iterator; // Pas de traitement particulier a effectuer #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK1 ("<< _couplingPolicy._disconnectDirective<<") --------" << std::endl; #endif if ( (_couplingPolicy._disconnectDirective) == (CalciumTypes::UNDEFINED_DIRECTIVE) ) return false; #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK2 --------" << std::endl; #endif // TODO : Ds GenericPort::next il faut convertir en CPSTOPSEQ if ( _couplingPolicy._disconnectDirective == CalciumTypes::CP_ARRET ) throw(CalciumException(CalciumTypes::CPINARRET,LOC(OSS()<< "CP_ARRET directive" << " interrupts all further data reading"))); #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK3 --------" << std::endl; #endif // S'il n'y a plus de données indique que l'on a pas pu effectuer de traitement // TODO : Dans la gestion des niveaux il faut peut être interdire un niveau == 0 if ( storedDatas.empty() ) throw(CalciumException(CalciumTypes::CPNTNULL,LOC(OSS()<< "CP_CONT directive" << " is active but no data is available."))); // expectedDataId n'a ni été trouvé dans storedDataIds ni encadré mais il se peut // qu'en mode itératif il ne soit pas plus grand que le plus grand DataId stocké auquel // cas on doit renvoyer une expection car on n'est plus connecté et on ne pourra jamais // fournir de données pour ce dataId. #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK4 " << expectedDataId <<" --------" << std::endl; #endif // >= expectedDataId iterator it1 = storedDatas.lower_bound(expectedDataId); #ifdef MYDEBUG std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK5 " << std::endl; for (iterator it=storedDatas.begin();it!=storedDatas.end();++it) std::cout <<" "<<(*it).first ; std::cout < #include #include #include "Superv_Component_i.hxx" #include "CalciumException.hxx" #include "CalciumTypes.hxx" #include "CalciumGenericUsesPort.hxx" #include "Copy2UserSpace.hxx" #include "Copy2CorbaSpace.hxx" #include "CalciumPortTraits.hxx" #include #include template struct IsSameType { static const bool value = false; }; template struct IsSameType { static const bool value = true; }; extern const char * CPMESSAGE[]; //#define MYDEBUG #include namespace CalciumInterface { /********************* CONNECTION INTERFACE *****************/ static inline void ecp_cd (Superv_Component_i & component, std::string & instanceName) { /* TODO : Trouver le nom de l'instance SALOME*/ CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); if (instanceName.empty()) instanceName=componentName; Engines_DSC_interface::writeEvent("CP_CD",containerName,componentName,"","",""); } static inline void ecp_fin (Superv_Component_i & component, bool provideLastGivenValue) { CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); Engines_DSC_interface::writeEvent("CP_FIN",containerName,componentName,"","",""); std::vector usesPortNames; std::vector::const_iterator it; component.get_uses_port_names(usesPortNames); //Récupérer le type de réel du port est un peu difficile //car l'interface ne donne aucune indication // uses_port *myUsesPort; calcium_uses_port* myCalciumUsesPort; for (it=usesPortNames.begin(); it != usesPortNames.end(); ++it) { try { myCalciumUsesPort= component.Superv_Component_i::get_port< calcium_uses_port >((*it).c_str()); // component.Superv_Component_i::get_port(myUsesPort,(*it).c_str()); // calcium_uses_port* myCalciumUsesPort= // dynamic_cast(myUsesPort); #ifdef MYDEBUG std::cerr << "-------- CalciumInterface(ecp_fin) MARK 1 -|"<< *it <<"|----"<< // typeid(myUsesPort).name() <<"-------------" << typeid(myCalciumUsesPort).name() <<"-------------" << std::endl; #endif // if ( !myCalciumUsesPort ) // throw Superv_Component_i::BadCast(LOC(OSS()<<"Impossible de convertir le port " // << *it << " en port de type calcium_uses_port." )); myCalciumUsesPort->disconnect(provideLastGivenValue); } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("CP_FIN",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } catch ( const DSC_Exception & ex) { Engines_DSC_interface::writeEvent("CP_FIN",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPOK],ex.what()); // Exception venant de SupervComponent : // PortNotDefined(CPNMVR), PortNotConnected(CPLIEN) // ou du port uses : Dsc_Exception // On continue à traiter la deconnexion des autres ports uses } catch (...) { Engines_DSC_interface::writeEvent("CP_FIN",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPATAL],"Unexpected exception"); throw (CalciumException(CalciumTypes::CPATAL,"Unexpected exception")); // En fonction du mode de gestion des erreurs throw; } } } /********************* INTERFACES DE DESALLOCATION *****************/ // Uniquement appelé par l'utilisateur s'il utilise la 0 copie // ( pointeur de données data==NULL à l'appel de ecp_lecture ) // Une désallocation aura lieu uniquement si un buffer intermédiaire // était necessaire (type utilisateur et corba diffférent) // La propriété du buffer est rendue à CORBA sinon template static void ecp_free ( T1 * dataPtr ) { typedef typename ProvidesPortTraits::PortType PortType; typedef typename PortType::DataManipulator DataManipulator; typedef typename DataManipulator::Type DataType; // Attention != T1 typedef typename DataManipulator::InnerType InnerType; DeleteTraits::value, DataManipulator >::apply(dataPtr); } template static void ecp_free ( T1 * dataPtr ) { ecp_free ( dataPtr ); } /********************* READING INTERFACE *****************/ // T1 est le type de données // T2 est un de type Calcium permettant de sélectionner le port CORBA correspondant // T1 et T2 sont dissociés pour discriminer par exemple le cas des nombres complexes // -> Les données des nombres complexes sont de type float mais // le port à utiliser est le port cplx template static void ecp_lecture ( Superv_Component_i & component, int const & dependencyType, double & ti, double const & tf, long & i, const std::string & nomVar, size_t bufferLength, size_t & nRead, T1 * &data ) { assert(&component); CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); typedef typename ProvidesPortTraits::PortType PortType; typedef typename PortType::DataManipulator DataManipulator; typedef typename DataManipulator::Type CorbaDataType; // Attention != T1 typedef typename DataManipulator::InnerType InnerType; CalciumTypes::DependencyType _dependencyType= static_cast(dependencyType); CorbaDataType corbaData; #ifdef MYDEBUG std::cerr << "-------- CalciumInterface(ecp_lecture) MARK 1 ------------------" << std::endl; #endif if (nomVar.empty()) { Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPNMVR],""); throw CalciumException(CalciumTypes::CPNMVR, LOC("Empty variable name")); } PortType * port; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(lecture) MARK 2 --"< (nomVar.c_str()); #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 3 ------------------" << std::endl; #endif } catch ( const Superv_Component_i::PortNotDefined & ex) { Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNMVR],ex.what()); throw (CalciumException(CalciumTypes::CPNMVR,ex)); } catch ( const Superv_Component_i::PortNotConnected & ex) { Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPLIEN],ex.what()); throw (CalciumException(CalciumTypes::CPLIEN,ex)); // VERIFIER LES CAS DES CODES : CPINARRET, CPSTOPSEQ, CPCTVR, CPLIEN } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } // mode == mode du port CalciumTypes::DependencyType portDependencyType = port->getDependencyType(); if ( portDependencyType == CalciumTypes::UNDEFINED_DEPENDENCY ) { Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT],"Dependency mode is undefined"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode of variable " << nomVar << " is undefined.")); } if ( ( portDependencyType != _dependencyType ) && ( _dependencyType != CalciumTypes::SEQUENCE_DEPENDENCY ) ) { Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT], "Dependency mode is not the same as the required one"); throw CalciumException(CalciumTypes::CPITVR, LOC(OSS()<<"Dependency mode of variable " << nomVar << ": " << portDependencyType << " is not the same as the required one.")); } std::stringstream msgout,msg; if ( _dependencyType == CalciumTypes::TIME_DEPENDENCY ) { try { double tt=ti; msg << "ti=" << ti << ", tf=" << tf ; Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),"",msg.str().c_str()); corbaData = port->get(tt,tf, 0); msgout << "read t=" << tt ; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 5 ------------------" << std::endl; #endif } catch ( const DSC_Exception & ex) { Engines_DSC_interface::writeEvent("END_READ",containerName,componentName,nomVar.c_str(),"",ex.what()); throw; } } else if ( _dependencyType == CalciumTypes::ITERATION_DEPENDENCY ) { try { msg << "i=" << i ; Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),"",msg.str().c_str()); corbaData = port->get(0, i); msgout << "read i=" << i ; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 6 ------------------" << std::endl; #endif } catch ( const DSC_Exception & ex) { Engines_DSC_interface::writeEvent("END_READ",containerName,componentName,nomVar.c_str(),"",ex.what()); throw; } } else { // Sequential read try { #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 7 ------------------" << std::endl; #endif Engines_DSC_interface::writeEvent("BEGIN_READ",containerName,componentName,nomVar.c_str(),"","Sequential read"); corbaData = port->next(ti,i); msgout << "read "; if(i==0)msgout<< "t=" <::value) data = new T1[nRead]; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 9 ------------------" << std::endl; #endif // On essaye de faire du 0 copy si les types T1 et InnerType sont les mêmes. // Copy2UserSpace : // La raison d'être du foncteur Copy2UserSpace est qu'il n'est pas possible de compiler // une expression d'affectation sur des types incompatibles ; même // si cette expression se trouve dans une branche non exécuté d'un test // portant sur la compatibilité des types. // En utilisant le foncteur Copy2UserSpace, seule la spécialisation en adéquation // avec la compatibilité des types sera compilée Copy2UserSpace< IsSameType::value, DataManipulator >::apply(data,corbaData,nRead); #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 10 ------------------" << std::endl; #endif // Attention : Seul CalciumCouplingPolicy via eraseDataId doit décider de supprimer ou non // la donnée corba associée à un DataId ! Ne pas effectuer la desallocation suivante : // DataManipulator::delete_data(corbaData); // ni DataManipulator::getPointer(corbaData,true); qui détruit la sequence lorsque l'on // prend la propriété du buffer // old : Dans les deux cas la structure CORBA n'est plus utile // old : Si !IsSameType::value l'objet CORBA est détruit avec son contenu // old : Dans l'autre cas seul la coquille CORBA est détruite // L'utilisateur devra appeler ecp_free qui déterminera s'il est necessaire // de désallouer un buffer intermédiaire ( types différents) ou de rendre la propriété } else { nRead = std::min < size_t > (corbaDataSize,bufferLength); #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 11 ------------------" << std::endl; #endif Copy2UserSpace::apply(data,corbaData,nRead); //Déjà fait ci-dessus : //DataManipulator::copy(corbaData,data,nRead); #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture) MARK 12 ------------------" << std::endl; #endif } #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecp_lecture), Valeur de data : " << std::endl; std::copy(data,data+nRead,std::ostream_iterator(std::cout," ")); std::cout << "Ptr :" << data << std::endl; std::cout << "-------- CalciumInterface(ecp_lecture) MARK 13 ------------------" << std::endl; #endif Engines_DSC_interface::writeEvent("END_READ",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPOK],msgout.str().c_str()); return; } // T1 is the data type template static void ecp_lecture ( Superv_Component_i & component, int const & dependencyType, double & ti, double const & tf, long & i, const std::string & nomVar, size_t bufferLength, size_t & nRead, T1 * &data ) { ecp_lecture (component,dependencyType,ti,tf, i,nomVar,bufferLength,nRead,data); } /********************* WRITING INTERFACE *****************/ // T1 : DataType // T2 : PortType template static void ecp_ecriture ( Superv_Component_i & component, int const & dependencyType, double const & t, long const & i, const std::string & nomVar, size_t bufferLength, T1 const & data ) { assert(&component); CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); //typedef typename StarTrait::NonStarType T; typedef typename boost::remove_all_extents< T1 >::type T1_without_extent; typedef typename boost::remove_all_extents< T2 >::type T2_without_extent; typedef typename UsesPortTraits ::PortType UsesPortType; typedef typename ProvidesPortTraits::PortType ProvidesPortType;// pour obtenir un manipulateur de données typedef typename ProvidesPortType::DataManipulator DataManipulator; // Verifier que l'on peut définir UsesPortType::DataManipulator // typedef typename PortType::DataManipulator DataManipulator; typedef typename DataManipulator::Type CorbaDataType; // Attention != T1 typedef typename DataManipulator::InnerType InnerType; T1_without_extent const & _data = data; CalciumTypes::DependencyType _dependencyType= static_cast(dependencyType); #ifdef MYDEBUG std::cerr << "-------- CalciumInterface(ecriture) MARK 1 ------------------" << std::endl; #endif if ( nomVar.empty() ) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPNMVR],""); throw CalciumException(CalciumTypes::CPNMVR, LOC("Empty variable name")); } UsesPortType * port; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture) MARK 2 ---"< (nomVar.c_str()); #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture) MARK 3 ------------------" << std::endl; #endif } catch ( const Superv_Component_i::PortNotDefined & ex) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNMVR],ex.what()); throw (CalciumException(CalciumTypes::CPNMVR,ex)); } catch ( const Superv_Component_i::PortNotConnected & ex) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPLIEN],ex.what()); throw (CalciumException(CalciumTypes::CPLIEN,ex)); // VERIFIER LES CAS DES CODES : CPINARRET, CPSTOPSEQ, CPCTVR, CPLIEN } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } // mode == mode du port // On pourrait créer la méthode CORBA dans le mode de Couplage CALCIUM. // et donc ajouter cette cette méthode uniquement dans l'IDL calcium ! // CalciumTypes::DependencyType portDependencyType; // try { // portDependencyType = port->getDependencyType(); // std::cout << "-------- CalciumInterface(ecriture) MARK 4 ------------------" << std::endl; // } catch ( const DSC_Exception & ex ) { // std::cerr << ex.what() << std::endl;; // throw (CalciumException(CalciumTypes::CPIT,ex)); // } if ( _dependencyType == CalciumTypes::UNDEFINED_DEPENDENCY ) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT],"Dependency mode is undefined"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode of variable " << nomVar << " is undefined.")); } if ( _dependencyType == CalciumTypes::SEQUENCE_DEPENDENCY ) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT], "SEQUENCE_DEPENDENCY mode is not possible when writing"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode SEQUENCE_DEPENDENCY for variable " << nomVar << " is not possible when writing.")); } // Il faudrait que le port provides génère une exception si le mode donnée n'est pas // le bon. La seule façon de le faire est d'envoyer -1 en temps si on n'est en itération // et vice-versa pour informer les provides port du mode dans lequel on est. Sinon il faut // modifier l'interface IDL pour y ajouter un mode de dépendance ! // ----> // if ( portDependencyType != _dependencyType ) // throw CalciumException(CalciumTypes::CPITVR, // LOC(OSS()<<"Le mode de dépendance de la variable " // << nomVar << " ne correspond pas au mode demandé.")); if ( bufferLength < 1 ) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNTNULL],"Buffer to send is empty"); throw CalciumException(CalciumTypes::CPNTNULL, LOC(OSS()<<"Buffer to send is empty")); } CorbaDataType corbaData; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture) MARK 4 ------------------" << std::endl; #endif // Si les types Utilisateurs et CORBA sont différents // il faut effectuer une recopie sinon on utilise directement le // buffer data pour constituer la séquence // TODO : // - Attention en mode asynchrone il faudra eventuellement // faire une copie des données même si elles sont de même type. // - OLD : En cas de collocalisation (du port provide et du port uses) // OLD : il est necessaire d'effectuer une recopie du buffer car la // OLD : séquence est envoyée au port provide par une référence sur // OLD : la séquence locale. Or la méthode put récupère le buffer directement // OLD : qui est alors le buffer utilisateur. Il pourrait alors arriver que : // OLD : * Le recepteur efface le buffer emetteur // OLD : * Le port lui-même efface le buffer de l'utilisateur ! // OLD : Cette copie est effectuée dans GenericPortUses::put // OLD : en fonction de la collocalisation ou non. // - OLD :En cas de connection multiples d'un port uses distant vers plusieurs port provides // OLD : collocalisés les ports provides partagent la même copie de la donnée ! // OLD : Il faut effectuer une copie dans le port provides. // OLD : Cette copie est effectuée dans GenericPortUses::put // OLD : en fonction de la collocalisation ou non. #ifdef MYDEBUG T1_without_extent t1b; InnerType t2b; std::cout << "-------- CalciumInterface(ecriture) MARK 4b1 -----" << typeid(t1b).name() << "-------------" << std::endl; std::cout << "-------- CalciumInterface(ecriture) MARK 4b2 -----" << typeid(t2b).name() << "-------------" << std::endl; #endif Copy2CorbaSpace::value, DataManipulator >::apply(corbaData,_data,bufferLength); //TODO : GERER LES EXCEPTIONS ICI : ex le port n'est pas connecte if ( _dependencyType == CalciumTypes::TIME_DEPENDENCY ) { try { port->put(*corbaData,t, -1); std::stringstream msg; msg << "t=" << t ; Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPOK],msg.str().c_str()); } catch ( const DSC_Exception & ex) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPATAL],ex.what()); throw (CalciumException(CalciumTypes::CPATAL,ex.what())); } //Le -1 peut être traité par le cst DataIdContainer et transformé en 0 //Etre obligé de mettre une étoile ds (*corbadata) va poser des pb pour les types <> seq #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture) MARK 5 ------------------" << std::endl; #endif } else if ( _dependencyType == CalciumTypes::ITERATION_DEPENDENCY ) { try { port->put(*corbaData,-1, i); std::stringstream msg; msg << "i=" << i ; Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPOK],msg.str().c_str()); } catch ( const DSC_Exception & ex) { Engines_DSC_interface::writeEvent("WRITE",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPATAL],ex.what()); throw (CalciumException(CalciumTypes::CPATAL,ex.what())); } #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture) MARK 6 ------------------" << std::endl; #endif } #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture), Valeur de corbaData : " << std::endl; for (int i = 0; i < corbaData->length(); ++i) std::cout << "-------- CalciumInterface(ecriture), corbaData[" << i << "] = " << (*corbaData)[i] << std::endl; #endif // if ( !IsSameType::value ) delete corbaData; // Supprime l'objet CORBA avec eventuellement les données qu'il contient (cas de la recopie) delete corbaData; #ifdef MYDEBUG std::cout << "-------- CalciumInterface(ecriture) MARK 7 ------------------" << std::endl; #endif return; }; template static void ecp_ecriture ( Superv_Component_i & component, int const & dependencyType, double const & t, long const & i, const std::string & nomVar, size_t bufferLength, T1 const & data ) { ecp_ecriture (component,dependencyType,t,i,nomVar,bufferLength,data); }; static inline void ecp_fini(Superv_Component_i & component,const std::string & nomVar,long const & i) { CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); if (nomVar.empty()) { Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPNMVR],""); throw CalciumException(CalciumTypes::CPNMVR, LOC("Empty variable name")); } calcium_provides_port* port; try { port = component.Superv_Component_i::get_port< calcium_provides_port >(nomVar.c_str()); } catch ( const Superv_Component_i::PortNotDefined & ex) { Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNMVR],ex.what()); throw (CalciumException(CalciumTypes::CPNMVR,ex)); } catch ( const Superv_Component_i::PortNotConnected & ex) { Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPLIEN],ex.what()); throw (CalciumException(CalciumTypes::CPLIEN,ex)); } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } // get dependency mode CalciumTypes::DependencyType portDependencyType = port->getDependencyType(); if ( portDependencyType == CalciumTypes::UNDEFINED_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT],"Dependency mode is undefined"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode of variable " << nomVar << " is undefined.")); } if ( portDependencyType != CalciumTypes::ITERATION_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT], "Dependency mode must be iteration mode"); throw CalciumException(CalciumTypes::CPITVR, LOC(OSS()<<"Dependency mode of variable " << nomVar << ": " << portDependencyType << " must be iteration mode.")); } port->calcium_erase(0., i,true); std::stringstream msg; msg << "i<=" << i ; Engines_DSC_interface::writeEvent("CP_FINI",containerName,componentName,nomVar.c_str(),"",msg.str().c_str()); }; static inline void ecp_fint(Superv_Component_i & component,const std::string & nomVar,double const & t) { CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); if (nomVar.empty()) { Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPNMVR],""); throw CalciumException(CalciumTypes::CPNMVR, LOC("Empty variable name")); } calcium_provides_port* port; try { port = component.Superv_Component_i::get_port< calcium_provides_port >(nomVar.c_str()); } catch ( const Superv_Component_i::PortNotDefined & ex) { Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNMVR],ex.what()); throw (CalciumException(CalciumTypes::CPNMVR,ex)); } catch ( const Superv_Component_i::PortNotConnected & ex) { Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPLIEN],ex.what()); throw (CalciumException(CalciumTypes::CPLIEN,ex)); } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } // get dependency mode CalciumTypes::DependencyType portDependencyType = port->getDependencyType(); if ( portDependencyType == CalciumTypes::UNDEFINED_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT],"Dependency mode is undefined"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode of variable " << nomVar << " is undefined.")); } if ( portDependencyType != CalciumTypes::TIME_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT], "Dependency mode must be time mode"); throw CalciumException(CalciumTypes::CPITVR, LOC(OSS()<<"Dependency mode of variable " << nomVar << ": " << portDependencyType << " must be time mode.")); } port->calcium_erase(t, 0,true); std::stringstream msg; msg << "t<=" << t ; Engines_DSC_interface::writeEvent("CP_FINT",containerName,componentName,nomVar.c_str(),"",msg.str().c_str()); }; static inline void ecp_effi(Superv_Component_i & component,const std::string & nomVar,long const & i) { CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); if (nomVar.empty()) { Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPNMVR],""); throw CalciumException(CalciumTypes::CPNMVR, LOC("Empty variable name")); } calcium_provides_port* port; try { port = component.Superv_Component_i::get_port< calcium_provides_port >(nomVar.c_str()); } catch ( const Superv_Component_i::PortNotDefined & ex) { Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNMVR],ex.what()); throw (CalciumException(CalciumTypes::CPNMVR,ex)); } catch ( const Superv_Component_i::PortNotConnected & ex) { Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPLIEN],ex.what()); throw (CalciumException(CalciumTypes::CPLIEN,ex)); } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } // get dependency mode CalciumTypes::DependencyType portDependencyType = port->getDependencyType(); if ( portDependencyType == CalciumTypes::UNDEFINED_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT],"Dependency mode is undefined"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode of variable " << nomVar << " is undefined.")); } if ( portDependencyType != CalciumTypes::ITERATION_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT], "Dependency mode must be iteration mode"); throw CalciumException(CalciumTypes::CPITVR, LOC(OSS()<<"Dependency mode of variable " << nomVar << ": " << portDependencyType << " must be iteration mode.")); } port->calcium_erase(0., i,false); std::stringstream msg; msg << "i>=" << i ; Engines_DSC_interface::writeEvent("CP_EFFI",containerName,componentName,nomVar.c_str(),"",msg.str().c_str()); }; static inline void ecp_efft(Superv_Component_i & component,const std::string & nomVar,double const & t) { CORBA::String_var componentName=component.instanceName(); std::string containerName=component.getContainerName(); if (nomVar.empty()) { Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,"",CPMESSAGE[CalciumTypes::CPNMVR],""); throw CalciumException(CalciumTypes::CPNMVR, LOC("Empty variable name")); } calcium_provides_port* port; try { port = component.Superv_Component_i::get_port< calcium_provides_port >(nomVar.c_str()); } catch ( const Superv_Component_i::PortNotDefined & ex) { Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPNMVR],ex.what()); throw (CalciumException(CalciumTypes::CPNMVR,ex)); } catch ( const Superv_Component_i::PortNotConnected & ex) { Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPLIEN],ex.what()); throw (CalciumException(CalciumTypes::CPLIEN,ex)); } catch ( const Superv_Component_i::BadCast & ex) { Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPTPVR],ex.what()); throw (CalciumException(CalciumTypes::CPTPVR,ex)); } // get dependency mode CalciumTypes::DependencyType portDependencyType = port->getDependencyType(); if ( portDependencyType == CalciumTypes::UNDEFINED_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT],"Dependency mode is undefined"); throw CalciumException(CalciumTypes::CPIT, LOC(OSS()<<"Dependency mode of variable " << nomVar << " is undefined.")); } if ( portDependencyType != CalciumTypes::TIME_DEPENDENCY ) { Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,nomVar.c_str(),CPMESSAGE[CalciumTypes::CPIT], "Dependency mode must be time mode"); throw CalciumException(CalciumTypes::CPITVR, LOC(OSS()<<"Dependency mode of variable " << nomVar << ": " << portDependencyType << " must be time mode.")); } port->calcium_erase(t, 0,false); std::stringstream msg; msg << "t>=" << t ; Engines_DSC_interface::writeEvent("CP_EFFT",containerName,componentName,nomVar.c_str(),"",msg.str().c_str()); }; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumException.hxx000077500000000000000000000047371177004724000265360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumException.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-06 17:20:28 +0100 (mar, 06 fév 2007) $ // Id : $Id: CalciumException.hxx,v 1.3.2.1.10.3.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef CALCIUM_EXCEPTION_HXX #define CALCIUM_EXCEPTION_HXX #if defined(__CONST_H) || defined(__CALCIUM_H) #error "The header CalciumException.hxx must be included before calcium.h" #endif #include "DSC_Exception.hxx" #include "CalciumTypes.hxx" #include struct CalciumException : public DSC_Exception { CalciumException( const CalciumTypes::InfoType info, const std::string & text, const char *fileName, const unsigned int lineNumber, const char *funcName): DSC_Exception(text,fileName,lineNumber,funcName), _info(info),_exceptionName("CalciumException") {}; CalciumException( const CalciumTypes::InfoType info, const std::string & text ): DSC_Exception(text),_info(info),_exceptionName("CalciumException") {}; CalciumException(CalciumTypes::InfoType info, const DSC_Exception & ex ): DSC_Exception(ex),_info(info),_exceptionName("CalciumException") {}; virtual ~CalciumException() throw() {}; CalciumTypes::InfoType getInfo() const { return _info;} void setInfo(CalciumTypes::InfoType info) {_info=info;} virtual const std::string & getExceptionName() const {return _exceptionName;}; protected: CalciumTypes::InfoType _info; std::string _exceptionName; }; #endif /* CALCIUM_EXCEPTION_HXX */ salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumFortranInt.h.in000077500000000000000000000024501177004724000267010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /* File : CalciumInterface.hxx Author : Eric Fayolle (EDF) Module : KERNEL Modified by : $LastChangedBy$ Date : $LastChangedDate: 2007-03-01 13:27:58 +0100 (jeu, 01 mar 2007) $ Id : $Id: CalciumFortranInt.h.in,v 1.1.2.1.18.2.12.1 2012-04-12 14:05:06 vsr Exp $ */ #ifndef _CALCIUM_FORTRAN_INT_H_ #define _CALCIUM_FORTRAN_INT_H_ #ifdef __cplusplus extern "C" { #endif typedef @LONG_OR_INT@ cal_int; #ifdef __cplusplus } #endif #endifsalome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumGenericProvidesPort.hxx000077500000000000000000000361731177004724000305340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumGenericProvidesPort.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Id : $Id: CalciumGenericProvidesPort.hxx,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _CALCIUM_GENERIC_PROVIDES_PORT_HXX_ #define _CALCIUM_GENERIC_PROVIDES_PORT_HXX_ #include #include "PortProperties_i.hxx" #include "calcium_provides_port.hxx" #include "GenericProvidesPort.hxx" #include "CalciumCouplingPolicy.hxx" #include "CorbaTypes2CalciumTypes.hxx" #include "CalciumTypes2CorbaTypes.hxx" #include "DSC_Exception.hxx" #include // // Cette macro CPP remplace une déclaration : template // mais permet surtout de générer différentes classes (dont le nom est spécifié par specificPortName ) // // Variante: Creer un trait qui à partir de CorbaInterface déduit CorbaDataManipulator // et simplifier la classe // // L'utilisation conjointe du paramètre ... et de __VA_ARGS__ au lieu d'un 'CorbaDataManipulator' permet // d'invoquer la macro avec un troisième token contenant une virgule // (qui est considéré comme un séparateur d'argument par le PP ) #define CALCIUM_GENERIC_PROVIDES_PORT_HXX(specificPortName,CorbaInterface,...) \ class specificPortName : public virtual CorbaInterface , \ public virtual POA_Ports::PortProperties, \ public GenericProvidesPort< __VA_ARGS__ , CalciumCouplingPolicy, calcium_provides_port > { \ private : \ omni_mutex _disconnect_mutex; \ int _mustnotdisconnect; \ public : \ typedef __VA_ARGS__ DataManipulator; \ typedef DataManipulator::Type CorbaDataType; \ typedef GenericPort< DataManipulator , \ CalciumCouplingPolicy > Port; \ specificPortName () : _mustnotdisconnect(0) {}; \ \ virtual ~ specificPortName (); \ \ inline void disconnect(bool provideLastGivenValue) { \ _disconnect_mutex.lock(); \ if(_mustnotdisconnect > 1) \ { \ _mustnotdisconnect--; \ } \ else if(_mustnotdisconnect == 1) \ { \ _mustnotdisconnect--; \ Port::disconnect(provideLastGivenValue); \ } \ _disconnect_mutex.unlock(); \ } \ inline void setDependencyType(CalciumTypes::DependencyType dependencyType) { \ Port::setDependencyType(dependencyType); \ } \ inline CalciumTypes::DependencyType getDependencyType () const { \ return Port::getDependencyType(); \ } \ inline void setStorageLevel (size_t storageLevel) { \ Port::setStorageLevel(storageLevel); \ } \ inline size_t getStorageLevel () const { \ return Port::getStorageLevel(); \ } \ inline void setDateCalSchem (CalciumTypes::DateCalSchem dateCalSchem) { \ Port::setDateCalSchem (dateCalSchem); \ } \ inline CalciumTypes::DateCalSchem getDateCalSchem () const { \ return Port::getDateCalSchem (); \ } \ inline void setAlpha(double alpha) { \ Port::setAlpha(alpha); \ } \ inline double getAlpha() const { \ return Port::getAlpha(); \ } \ inline void setDeltaT(double deltaT ) { \ Port::setDeltaT(deltaT); \ } \ inline double getDeltaT() const { \ return Port::getDeltaT(); \ } \ inline void setInterpolationSchem (CalciumTypes::InterpolationSchem interpolationSchem) { \ Port::setInterpolationSchem(interpolationSchem); \ } \ inline void setExtrapolationSchem (CalciumTypes::ExtrapolationSchem extrapolationSchem) { \ Port::setExtrapolationSchem(extrapolationSchem); \ } \ inline CalciumTypes::InterpolationSchem getInterpolationSchem() const { \ return Port::getInterpolationSchem(); \ } \ inline CalciumTypes::ExtrapolationSchem getExtrapolationSchem() const { \ return Port::getExtrapolationSchem(); \ } \ \ inline void put( DataManipulator::CorbaInType data, \ CORBA::Double time, CORBA::Long tag) { \ Port::put(data, time, tag); \ } \ \ inline Ports::Port_ptr get_port_ref() { \ return _this(); \ } \ \ Ports::PortProperties_ptr get_port_properties() { \ return POA_Ports::PortProperties::_this(); \ } \ \ virtual void set_property(const char * name, const CORBA::Any& value) \ throw (Ports::NotDefined, Ports::BadType, Ports::BadValue); \ \ virtual CORBA::Any* get_property(const char* name) \ throw (Ports::NotDefined); \ \ virtual void provides_port_changed(int connection_nbr, \ const Engines::DSC::Message message) { \ if ( message == Engines::DSC::AddingConnection) \ { \ _disconnect_mutex.lock(); \ _mustnotdisconnect++; \ _disconnect_mutex.unlock(); \ } \ else if ( message == Engines::DSC::RemovingConnection ) \ { \ disconnect(false); \ } \ } \ \ inline void calcium_erase(float t,long i, bool before) \ { \ erase(t,i,before); \ } \ }; \ #define CALCIUM_GENERIC_PROVIDES_PORT_CXX(specificPortName) \ \ specificPortName::~specificPortName(void) {}; \ \ void specificPortName::set_property(const char * name, const CORBA::Any& value) \ throw (Ports::NotDefined, Ports::BadType, Ports::BadValue) { \ \ const std::string key(name); \ CORBA::Long sl; \ CORBA::Double alpha,delta; \ Ports::Calcium_Ports::DependencyType dt; \ Ports::Calcium_Ports::DateCalSchem dcs; \ Ports::Calcium_Ports::InterpolationSchem is; \ Ports::Calcium_Ports::ExtrapolationSchem es; \ bool ok=false; \ \ try { \ \ if (key == "StorageLevel" ) \ {if ( ( ok=(value >>= sl) ) ) Port::setStorageLevel(sl);} \ else if (key == "Alpha" ) \ {if ( ( ok=(value >>= alpha) ) ) Port::setAlpha(alpha);} \ else if (key == "DeltaT" ) \ {if ( ( ok=(value >>= delta) ) ) Port::setDeltaT(delta);} \ else if (key == "DependencyType" ) \ {if ( ( ok=( value >>= dt) ) ) Port::setDependencyType(dependencyType[dt]);} \ else if (key == "DateCalSchem" ) \ {if ( ( ok=(value >>= dcs) ) ) \ Port::setDateCalSchem(dateCalSchem[dcs]);} \ else if (key == "InterpolationSchem") \ {if ( ( ok=(value >>= is) ) ) \ Port::setInterpolationSchem(interpolationSchem[is]);} \ else if (key == "ExtrapolationSchem") \ {if ( ( ok=(value >>= es) ) ) \ Port::setExtrapolationSchem(extrapolationSchem[es]);} \ else \ throw Ports::NotDefined(); \ if (!ok) throw Ports::BadType(); \ \ } catch ( const DSC_Exception & ex ) { \ \ std::cerr << ex.what() << std::endl; \ throw Ports::BadValue(); \ } \ } \ \ \ CORBA::Any* specificPortName::get_property(const char* name) \ throw (Ports::NotDefined) { \ const std::string key(name); \ CORBA::Any* value=new CORBA::Any; \ if (key == "StorageLevel" ) \ { (*value) <<= static_cast(Port::getStorageLevel()); } \ else if (key == "Alpha" ) \ { *value <<= (CORBA::Double) Port::getAlpha();} \ else if (key == "DeltaT" ) \ { *value <<= (CORBA::Double) Port::getDeltaT();} \ else if (key == "DependencyType" ) \ { *value <<= corbaDependencyType[Port::getDependencyType()];} \ else if (key == "DateCalSchem" ) \ { *value <<= corbaDateCalSchem[Port::getDateCalSchem()];} \ else if (key == "InterpolationSchem") \ { *value <<= corbaInterpolationSchem[Port::getInterpolationSchem()];} \ else if (key == "ExtrapolationSchem") \ { *value <<= corbaExtrapolationSchem[Port::getExtrapolationSchem()];} \ else { \ delete value; \ throw Ports::NotDefined(); \ } \ return value; \ }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumGenericUsesPort.hxx000077500000000000000000000047051177004724000276540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumGenericUsesPort.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Id : $Id: CalciumGenericUsesPort.hxx,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _CALCIUM_GENERIC_USES_PORT_HXX_ #define _CALCIUM_GENERIC_USES_PORT_HXX_ #include "GenericUsesPort.hxx" #include "calcium_uses_port.hxx" template class CalciumGenericUsesPort : public GenericUsesPort { public : virtual ~CalciumGenericUsesPort() {}; void disconnect(bool provideLastGivenValue); }; template void CalciumGenericUsesPort< DataManipulator,CorbaPortType, repositoryName >::disconnect(bool provideLastGivenValue ) { typedef typename CorbaPortType::_ptr_type CorbaPortTypePtr; if (!this->_my_ports) throw DSC_Exception(LOC("There is no connected provides port to communicate with.")); for(int i = 0; i < this->_my_ports->length(); i++) { CorbaPortTypePtr port = CorbaPortType::_narrow((*this->_my_ports)[i]); try { #ifdef MYDEBUG std::cerr << "-------- CalciumGenericUsesPort<>::disconnect: "<< i << std::endl; #endif port->disconnect(provideLastGivenValue); } catch(const CORBA::SystemException& ex){ std::cerr << "Can't call disconnect on provides port " << i << std::endl; } } } #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumInterface.hxx000077500000000000000000000034701177004724000264710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumInterface.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:27:58 +0100 (jeu, 01 mar 2007) $ // Id : $Id: CalciumInterface.hxx,v 1.3.2.1.18.3.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _CALCIUM_INTERFACE_HXX_ #define _CALCIUM_INTERFACE_HXX_ #if defined(__CONST_H) || defined(__CALCIUM_H) #error "The header CalciumInterface.hxx must be included before calcium.h" #endif //Interface CALCIUM des utilisateurs en C++ #include "CalciumCxxInterface.hxx" /* Déclaration de l'Interface entre l'API C et l'API C++ L'utilisateur CALCIUM n'a normalement pas a utliser cette interface En C/C++ il utilisera celle définie dans Calcium.c (calcium.h) En C++/CORBA directement celle de CalciumCxxInterface.hxx */ #include "CalciumCInterface.hxx" #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumMacroCInterface.hxx000077500000000000000000000331531177004724000275570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /* File : CalciumInterface.hxx Author : Eric Fayolle (EDF) Module : KERNEL Modified by : $LastChangedBy$ Date : $LastChangedDate: 2007-03-01 13:27:58 +0100 (jeu, 01 mar 2007) $ Id : $Id: CalciumMacroCInterface.hxx,v 1.1.2.3.14.3.12.1 2012-04-12 14:05:06 vsr Exp $ */ #ifndef _CALCIUM_MACRO_C_INTERFACE_H_ #define _CALCIUM_MACRO_C_INTERFACE_H_ /****** CALCIUM_C2CPP_INTERFACE_HXX_ : ******/ /****** Declarations: ecp_lecture_... , ecp_ecriture_..., ecp_free_... ******/ #define CALCIUM_C2CPP_INTERFACE_HXX_(_name,_porttype,_type,_qual) \ extern "C" CalciumTypes::InfoType ecp_lecture_##_name (void * component, int dependencyType, \ CalTimeType< _type _qual >::TimeType * ti, \ CalTimeType< _type _qual >::TimeType * tf, long * i, \ const char * const nomvar, size_t bufferLength, \ size_t * nRead, _type _qual ** data ); \ \ \ extern "C" void ecp_lecture_##_name##_free ( _type _qual * data); \ \ \ extern "C" CalciumTypes::InfoType ecp_ecriture_##_name (void * component, int dependencyType, \ CalTimeType< _type _qual >::TimeType *t, \ long i, \ const char * const nomvar, size_t bufferLength, \ _type _qual * data ); \ /****** CALCIUM_C2CPP_INTERFACE_CXX_ : ******/ /******Definitions: ecp_lecture_... , ecp_ecriture_..., ecp_free_... ******/ #define CALCIUM_C2CPP_INTERFACE_CXX_(_name,_porttype,_type,_qual) \ extern "C" CalciumTypes::InfoType ecp_lecture_##_name (void * component, int dependencyType, \ CalTimeType< _type _qual >::TimeType * ti, \ CalTimeType< _type _qual >::TimeType * tf, long * i, \ const char * const nomvar, size_t bufferLength, \ size_t * nRead, _type _qual ** data ) \ { \ Superv_Component_i * _component = static_cast(component); \ double _ti=0.; \ double _tf=0.; \ if(dependencyType == CalciumTypes::CP_TEMPS) \ { \ _ti=*ti; \ _tf=*tf; \ } \ size_t _nRead=0; \ size_t _bufferLength=bufferLength; \ \ if ( IsSameType< _porttype , cplx >::value ) _bufferLength*=2; \ DEBTRACE( "-------- CalciumInterface(lecture Inter Part) MARK 1 ------------------" ) \ try \ { \ CalciumInterface::ecp_lecture< _type,_porttype >( *_component, dependencyType, _ti, _tf, *i, nomvar, \ _bufferLength, _nRead, *data); \ } \ catch ( const CalciumException & ex) \ { \ DEBTRACE( ex.what() ); \ return ex.getInfo(); \ } \ catch ( ... ) \ { \ DEBTRACE( "Unexpected exception ") ; \ return CalciumTypes::CPATAL; \ } \ if ( IsSameType< _porttype , cplx >::value ) \ { \ *nRead=_nRead/2; \ DEBTRACE( "-------- CalciumInterface(lecture Inter Part) IsSameType cplx -------------" ) \ DEBTRACE( "-------- CalciumInterface(lecture Inter Part) _nRead : " << _nRead ) \ DEBTRACE( "-------- CalciumInterface(lecture Inter Part) *nRead : " << *nRead ) \ } \ else \ *nRead = _nRead; \ if (dependencyType == CalciumTypes::CP_SEQUENTIEL ) \ *ti=(CalTimeType< _type _qual >::TimeType)(_ti); \ DEBTRACE( "-------- CalciumInterface(lecture Inter Part), Data Ptr :" << *data ) \ return CalciumTypes::CPOK; \ }; \ \ \ extern "C" void ecp_lecture_##_name##_free ( _type _qual * data) \ { \ CalciumInterface::ecp_free< _type, _porttype >(data); \ }; \ \ \ extern "C" CalciumTypes::InfoType ecp_ecriture_##_name (void * component, int dependencyType, \ CalTimeType< _type _qual >::TimeType *t, \ long i, \ const char * const nomvar, size_t bufferLength, \ _type _qual * data ) \ { \ DEBTRACE( "-------- CalciumInterface(ecriture Inter Part) MARK 0 ------------------" ) \ Superv_Component_i * _component = static_cast(component); \ /* Je ne sais pas pourquoi, je n'arrive pas à passer t par valeur : corruption de la pile*/ \ double _t=0.; \ if(dependencyType == CalciumTypes::CP_TEMPS) \ _t=*t; \ size_t _bufferLength=bufferLength; \ if ( IsSameType< _porttype , cplx >::value ) _bufferLength=_bufferLength*2; \ DEBTRACE( "-------- CalciumInterface(ecriture Inter Part) MARK 1 ------------------" ) \ try \ { \ /*printf("-------- CalciumInterface(ecriture Inter Part), cp_name : Nom de la var. de type %s : %s\n",#_type,nomvar);*/ \ DEBTRACE( "----------->-" << nomvar ) \ CalciumInterface::ecp_ecriture< _type, _porttype >( *_component, dependencyType, \ _t,i,nomvar,_bufferLength,*data); \ } \ catch ( const CalciumException & ex) \ { \ DEBTRACE( ex.what() ); \ return ex.getInfo(); \ } \ catch ( ... ) \ { \ DEBTRACE("Unexpected exception " ); \ return CalciumTypes::CPATAL; \ } \ DEBTRACE( "-------- CalciumInterface(ecriture Inter Part), Valeur de data :" << data ) \ return CalciumTypes::CPOK; \ }; \ #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumPortTraits.hxx000077500000000000000000000074761177004724000267160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumPortTraits.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: CalciumPortTraits.hxx,v 1.3.2.1.18.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _PORT_TRAITS_HXX_ #define _PORT_TRAITS_HXX_ #include "Superv_Component_i.hxx" #include "calcium_port_factory.hxx" // PROVIDES PORT TRAITS template struct UnknownProvidesPortType {}; template struct ProvidesPortTraits { typedef UnknownProvidesPortType PortType; }; struct integer {}; template <> struct ProvidesPortTraits { typedef calcium_integer_port_provides PortType; }; template <> struct ProvidesPortTraits { typedef calcium_intc_port_provides PortType; }; template <> struct ProvidesPortTraits { typedef calcium_long_port_provides PortType; }; template <> struct ProvidesPortTraits { typedef calcium_real_port_provides PortType; }; template <> struct ProvidesPortTraits { typedef calcium_double_port_provides PortType; }; template <> struct ProvidesPortTraits { typedef calcium_logical_port_provides PortType; }; // Définition du type cplx pour disciminer ce type de port // de celui du float struct cplx {}; template <> struct ProvidesPortTraits { typedef calcium_complex_port_provides PortType; }; // Définition du type str pour obtenir le type de port // correspondant struct str {}; template <> struct ProvidesPortTraits { typedef calcium_string_port_provides PortType; }; // Définition du type intc pour obtenir le type de port // correspondant struct intc {}; template <> struct ProvidesPortTraits { typedef calcium_intc_port_provides PortType; }; template < typename T > struct StarTrait { typedef T NonStarType; }; template < typename T > struct StarTrait< T * > { typedef T NonStarType; }; // USES PORT TRAITS template struct UnknownUsesPortType {}; template struct UsesPortTraits { typedef UnknownUsesPortType PortType; }; template <> struct UsesPortTraits { typedef calcium_integer_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_intc_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_long_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_real_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_double_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_string_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_logical_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_complex_port_uses PortType; }; template <> struct UsesPortTraits { typedef calcium_intc_port_uses PortType; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.cxx000077500000000000000000000027711177004724000272270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "CalciumProvidesPort.hxx" CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_integer_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_long_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_intc_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_real_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_double_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_complex_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_logical_port_provides) CALCIUM_GENERIC_PROVIDES_PORT_CXX(calcium_string_port_provides) salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumProvidesPort.hxx.in000077500000000000000000000055561177004724000276450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:40:26 +0100 (Thu, 01 Mar 2007) $ // Id : $Id: CalciumProvidesPort.hxx.in,v 1.1.2.1.18.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_PORT_PROVIDES_HXX_ #define _CALCIUM_PORT_PROVIDES_HXX_ #include #include "Calcium_Ports.hh" #include "CalciumGenericProvidesPort.hxx" #include "CalciumCouplingPolicy.hxx" CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_integer_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Integer_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_long_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Long_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_intc_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Intc_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_real_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Real_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_double_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Double_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_complex_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Complex_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_logical_port_provides, \ POA_Ports::Calcium_Ports::Calcium_Logical_Port, \ seq_u_manipulation ) \ CALCIUM_GENERIC_PROVIDES_PORT_HXX(calcium_string_port_provides, \ POA_Ports::Calcium_Ports::Calcium_String_Port, \ seq_u_manipulation ) \ #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumTypes.hxx000077500000000000000000000134101177004724000256700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CalciumTypes.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: CalciumTypes.hxx,v 1.3.2.1.14.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef __CALCIUM_TYPES__ #define __CALCIUM_TYPES__ namespace CalciumTypes { const float EPSILON = 1.e-6; /* Type de dependance des variables */ const int CP_TEMPS = 40; const int CP_ITERATION = 41; const int CP_SEQUENTIEL = 42; /* Mode de dependance inconnu */ const int CPIT = 6; /* Directive de continuation d'une instance */ const int CP_CONT = 20; const int CP_ARRET = 21; /* Type d'interpolation */ const int CP_LINEAIRE = 100; const int CP_ESCALIER = 101; /* Repere dans cycle de temps */ const int TI = 110; const int TF = 111; /* Niveaux */ const int CP_ILLIMITE = -70; const int CP_AUTESP = -71; typedef int InfoType ; const int UNLIMITED_STORAGE_LEVEL = CP_ILLIMITE; typedef enum {UNDEFINED_DEPENDENCY=CPIT,TIME_DEPENDENCY=CP_TEMPS, ITERATION_DEPENDENCY=CP_ITERATION, // TYPE uniquement utilisé ds CalciumInterface SEQUENCE_DEPENDENCY =CP_SEQUENTIEL } DependencyType; typedef enum {TI_SCHEM=TI,TF_SCHEM=TF,ALPHA_SCHEM} DateCalSchem; typedef enum {L0_SCHEM=CP_ESCALIER,L1_SCHEM=CP_LINEAIRE} InterpolationSchem; typedef enum {UNDEFINED_EXTRA_SCHEM,E0_SCHEM,E1_SCHEM} ExtrapolationSchem; typedef enum {UNDEFINED_DIRECTIVE=0,CONTINUE=CP_CONT,STOP=CP_ARRET} DisconnectDirective; /* Codes d'erreur */ /* Pas d'erreur */ const int CPOK = 0; /* Emetteur inconnu */ const int CPERIU = 1; /* Nom de variable inconnu */ const int CPNMVR = 2; /* Type entree/sortie incompatible */ const int CPIOVR = 3; /* Type inconnu */ const int CPTP = 4; /* Type de variable incompatible */ const int CPTPVR = 5; /* Mode de dependance inconnu */ // Déclaré au dessus // const int CPIT = 6; /* Mode dependance incompatible */ const int CPITVR = 7; /* Requete non autorisee */ const int CPRENA = 8; /* Type de deconnexion incorrect */ const int CPDNTP = 9; /* Directive de deconnexion incorrecte */ const int CPDNDI = 10; /* Nom de code inconnu */ const int CPNMCD = 11; /* Nom d'instance inconnu */ const int CPNMIN = 12; /* Attente */ const int CPATTENTE = 13; /* Blocage */ const int CPBLOC = 14; /* Nombre de valeurs transmises egal a zero */ const int CPNTNULL = 15; /* Longueur de variable insuffisante */ const int CPLGVR = 16; /* L'instance doit s'arreter */ const int CPSTOP = 17; /* Arret anormal */ const int CPATAL = 18; /* Coupleur absent */ const int CPNOCP = 19; /* Variable sortante non connectee */ const int CPCTVR = 20; /* Nombre de pas a executer egal a zero */ const int CPPASNULL = 21; /* Machine inconnue */ const int CPMACHINE = 22; /* COUPLAGE_GROUPE non positionnee */ const int CPGRNU = 23; /* Groupe d'instances incorrect */ const int CPGRIN = 24; /* Fin du fichier d'entree */ const int CPFINFICH = 25; /* Erreur de format dans un fichier */ const int CPERRFICH = 26; /* Requete d'avance de n pas annulee */ /* par passage en mode NORMAL */ const int CPNORERR = 27; /* Coupleur en mode NORMAL pour une */ /* requete RUN_N_PAS ou DEF_* */ const int CPRUNERR = 28; /* Option inconnue */ const int CPOPT = 29; /* Valeur d'option inconnue */ const int CPVALOPT = 30; /* Ecriture impossible par effacement */ const int CPECREFF = 31; /* Lecture d'une variable non connectee */ /* ou n'appartenant pas a un lien VAS */ /* ou VAV s'il s'agit d'une sortante */ const int CPLIEN = 32; /* Lecture d'une variable d'une instance*/ /* deconnectee avec directive CP_ARRET */ const int CPINARRET = 33; /* Les lectures sequentielles ne pourront plus */ /* etre satisfaites : instance productrice arretee */ const int CPSTOPSEQ = 34; /* Erreur dans la chaine de declaration */ const int CPDECL = 35; /* Erreur dans l'execution de l'instance ajoutee */ const int CPINEXEC = 36; /* Erreur PVM */ // const int CPPVM = 37; // const int CPCOM = 37; /* Erreur detectee au niveau de l'int CPERRINST = 38; /* Mode d'execution non defini */ // const int CPMODE = 39; /* Instance deconnectee */ const int CPINSTDEC = 40; } #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumTypes2CorbaTypes.cxx000077500000000000000000000143011177004724000277410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:40:26 +0100 (Thu, 01 Mar 2007) $ // Id : $Id: CalciumTypes2CorbaTypes.cxx,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "CalciumTypes2CorbaTypes.hxx" #include "utilities.h" #include CORBA_DATE_CAL_SCHEM::CORBA_DATE_CAL_SCHEM() : std::map() { std::map & table = ( std::map & ) *this ; table[CalciumTypes::TI_SCHEM ] = Ports::Calcium_Ports::TI_SCHEM ; table[CalciumTypes::TF_SCHEM ] = Ports::Calcium_Ports::TF_SCHEM ; table[CalciumTypes::ALPHA_SCHEM ] = Ports::Calcium_Ports::ALPHA_SCHEM ; } Ports::Calcium_Ports::DateCalSchem CORBA_DATE_CAL_SCHEM::operator[]( const CalciumTypes::DateCalSchem &c ) const { std::map &table = (std::map&)*this ; assert( table.find( (CalciumTypes::DateCalSchem)c ) != table.end() ) ; return table[ (CalciumTypes::DateCalSchem)c ] ; } const CORBA_DATE_CAL_SCHEM corbaDateCalSchem ; CORBA_DEPENDENCY_TYPE::CORBA_DEPENDENCY_TYPE() : std::map() { std::map & table = ( std::map & ) *this ; table[CalciumTypes::TIME_DEPENDENCY ] = Ports::Calcium_Ports::TIME_DEPENDENCY ; table[CalciumTypes::ITERATION_DEPENDENCY ] = Ports::Calcium_Ports::ITERATION_DEPENDENCY ; table[CalciumTypes::UNDEFINED_DEPENDENCY ] = Ports::Calcium_Ports::UNDEFINED_DEPENDENCY ; MESSAGE("CORBA_DEPENDENCY_TYPE() : table["< & table = (std::map& ) *this ; MESSAGE("CORBA_DEPENDENCY_TYPE() : ::operator["< () { std::map & table = ( std::map & ) *this ; table[CalciumTypes::L0_SCHEM ] = Ports::Calcium_Ports::L0_SCHEM ; table[CalciumTypes::L1_SCHEM ] = Ports::Calcium_Ports::L1_SCHEM ; } Ports::Calcium_Ports::InterpolationSchem CORBA_INTERPOLATION_SCHEM::operator[]( const CalciumTypes::InterpolationSchem &c ) const { std::map &table = (std::map& ) *this ; assert( table.find( (CalciumTypes::InterpolationSchem)c ) != table.end() ) ; return table[ (CalciumTypes::InterpolationSchem)c ] ; } const CORBA_INTERPOLATION_SCHEM corbaInterpolationSchem ; CORBA_EXTRAPOLATION_SCHEM::CORBA_EXTRAPOLATION_SCHEM() : std::map () { std::map & table = ( std::map & ) *this ; table[CalciumTypes::E0_SCHEM ] = Ports::Calcium_Ports::E0_SCHEM ; table[CalciumTypes::E1_SCHEM ] = Ports::Calcium_Ports::E1_SCHEM ; table[CalciumTypes::UNDEFINED_EXTRA_SCHEM ] = Ports::Calcium_Ports::UNDEFINED_EXTRA_SCHEM ; } Ports::Calcium_Ports::ExtrapolationSchem CORBA_EXTRAPOLATION_SCHEM::operator[]( const CalciumTypes::ExtrapolationSchem &c ) const { std::map &table = (std::map& ) *this ; assert( table.find( (CalciumTypes::ExtrapolationSchem)c ) != table.end() ) ; return table[ (CalciumTypes::ExtrapolationSchem)c ] ; } const CORBA_EXTRAPOLATION_SCHEM corbaExtrapolationSchem ; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CalciumTypes2CorbaTypes.hxx000077500000000000000000000054731177004724000277600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:40:26 +0100 (Thu, 01 Mar 2007) $ // Id : $Id: CalciumTypes2CorbaTypes.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUMTYPES_TO_CORBATYPES_HXX_ #define _CALCIUMTYPES_TO_CORBATYPES_HXX_ #include "Calcium_Ports.hh" #include "CalciumTypes.hxx" #include #include class CORBA_DATE_CAL_SCHEM : public std::map { public : CORBA_DATE_CAL_SCHEM(); Ports::Calcium_Ports::DateCalSchem operator[]( const CalciumTypes::DateCalSchem &c ) const; }; extern const CORBA_DATE_CAL_SCHEM corbaDateCalSchem ; class CORBA_DEPENDENCY_TYPE : public std::map { public : CORBA_DEPENDENCY_TYPE(); Ports::Calcium_Ports::DependencyType operator[]( const CalciumTypes::DependencyType &c ) const; }; extern const CORBA_DEPENDENCY_TYPE corbaDependencyType ; class CORBA_INTERPOLATION_SCHEM : public std::map { public : CORBA_INTERPOLATION_SCHEM(); Ports::Calcium_Ports::InterpolationSchem operator[]( const CalciumTypes::InterpolationSchem &c ) const; } ; extern const CORBA_INTERPOLATION_SCHEM corbaInterpolationSchem ; class CORBA_EXTRAPOLATION_SCHEM : public std::map { public : CORBA_EXTRAPOLATION_SCHEM(); Ports::Calcium_Ports::ExtrapolationSchem operator[]( const CalciumTypes::ExtrapolationSchem &c ) const; } ; extern const CORBA_EXTRAPOLATION_SCHEM corbaExtrapolationSchem ; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/Copy2CorbaSpace.hxx000077500000000000000000000077231177004724000262170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Copy2CorbaSpace.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-07 18:26:44 +0100 (mer, 07 fév 2007) $ // Id : $Id: Copy2CorbaSpace.hxx,v 1.3.2.3.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _COPY_TO_CORBA_SPACE_HXX_ #define _COPY_TO_CORBA_SPACE_HXX_ #include #include #include "CalciumPortTraits.hxx" //#define MYDEBUG template struct Copy2CorbaSpace { template static void apply( T1 * & corbaData, T2 const & data, size_t nRead){ typedef typename ProvidesPortTraits::PortType PortType; //typedef typename UsesPortTraits::PortType PortType; //ESSAI: typedef typename PortType::DataManipulator DataManipulator; typedef typename DataManipulator::InnerType InnerType; #ifdef MYDEBUG std::cerr << "-------- Copy2CorbaSpace MARK 1 ------------------" << std::endl; #endif // Crée le type corba à partir du data sans lui en donner la propriété. // Le const_cast supprime le caractère const du type T2 const & de data car // DataManipulator::create n'a pas le caractère const sur son paramètre data pour le // cas de figure où la propriété de la donnée lui est donnée. corbaData = DataManipulator::create(nRead,const_cast (&data),false); #ifdef MYDEBUG std::cerr << "-------- Copy2CorbaSpace MARK 2 --(dataPtr : " << DataManipulator::getPointer(corbaData,false)<<")----------------" << std::endl; #endif } }; // Cas ou il faut effectuer une recopie template struct Copy2CorbaSpace { template static void apply( T1 * & corbaData, T2 const & data, size_t nRead){ typedef typename ProvidesPortTraits::PortType PortType; // typedef typename UsesPortTraits::PortType PortType; //ESSAI: typedef typename PortType::DataManipulator DataManipulator; typedef typename DataManipulator::InnerType InnerType; corbaData = DataManipulator::create(nRead); InnerType * dataPtr = DataManipulator::getPointer(corbaData,false); #ifdef MYDEBUG std::cerr << "-------- Copy2CorbaSpace MARK 1 --(dataPtr : " << dataPtr<<")----------------" << std::endl; #endif // Attention : Pour les chaines ou tout autre object complexe il faut utiliser une recopie profonde ! std::copy(&data,&data+nRead,dataPtr); #ifdef MYDEBUG std::cerr << "-------- Copy2CorbaSpace MARK 2 --(nRead: "< MARK 3 : " ; std::copy(dataPtr,dataPtr+nRead,std::ostream_iterator(std::cout," ")); std::cout << std::endl; std::cerr << "-------- Copy2CorbaSpace MARK 4 --(data : " < #include #include "CalciumPortTraits.hxx" #include //#define MYDEBUG //Les demandes de copies vers l'espace utilisateur //proviennent d'une procédure de lecture //Cas du zero copie template struct Copy2UserSpace{ template static void apply( T1 * & data, T2 & corbaData, size_t nRead ){ typedef typename DataManipulator::InnerType InnerType; // OLD:Devient propriétaire des données contenues dans la structure CORBA // OLD:(allouées par allocbuff() pour une séquence) // OLD:Le client est propriétaire des données. // OLD:Il doit cependant être attentif au fait que s'il les modifie, // OLD:une nouvelle demande de lecture lui fournira les données modifiées. // OLD:TODO : Si plusieurs lecteurs demandent la même donnée, // OLD: ? qui devient le propriétaire? --> Forcément le premier car // OLD: ensuite la séquence n'est plus propriétaire et rendra un pointeur NULL. // OLD: NO: Le port devrait resté propriétaire du contenu de la séquence // OLD: NO: L'utilisateur doit de toute les façons utiliser les données reçues en // OLD: NO: lecture seulement car si une nouvelle demande de lecture est formulée // OLD: NO: pour ces données, les eventuelles modifications seraient visibles ! // OLD:YES : La solution de donner la propriété à l'utilisateur est convenable car si // OLD:le port déréférence ces données (garbage collecteur, niveau) le buffer // OLD:reste disponible à l'ulisateur en lecture et écriture // OLD:Le problème est que la donnée CORBA stockée par le port est maintenant vide (cf CORBA BOOK) // OLD:du coup quid d'une nouvelle demande de lecture : A TESTER // Le PORT doit être capable de répondre aux demandes de lecture // multiples d'une donnée pour une même estampille et doit donc garder un pointeur valide // sur le buffer. Il se pose cependant un problème s'il décide // de supprimer la donnée alors que des client utilise le buffer (historique calcium) ! // La seule façon de gérer proprement cette situation est d'utiliser un shared_pointer (TODO). // Pour l'instant l'utilisateur du mode zero copie doit s'assurer que le niveau d'historique // utilisé par le port est compatible avec son utilisation des buffers. Il doit // être également conscient que s'il modifie le buffer, il est modifié pour tous les // utilisateurs actuels et futurs. //REF: InnerType * dataPtr = DataManipulator::getPointer(corbaData,true); // Laisse la propriété des données à la structure CORBA // (buffer allouée par allocbuff() pour une séquence) InnerType * dataPtr = DataManipulator::getPointer(corbaData,false); // Cette ligne poserait uun problème dans la méthode appelante, si elle // ne testait pas que les types utilisateurs et CORBA sont identiques : // ex : InnerType == Corba::Long et d'un T == int // C'est l'objet de la spécialisation ci-dessous. data = dataPtr; // En zero copie l'utilisateur doit appeler ecp_free ( cas ou un buffer intermédiaire // a été alloué pour cause de typage différent xor necessité de désalouer le buffer alloué par CORBA) // L'utilisateur doit cependant être attentif au fait qu'après désallocation, si la donnée // est toujours estampillée dans le port une nouvelle lecture pour cette estampille // rendrait un buffer vide. } }; // Cas où il faut effectuer une recopie template struct Copy2UserSpace { //Recopie le contenu de la donnée CORBA dans le buffer utilisateur de longueur nRead template static void apply( T1 * &data, T2 & corbaData, size_t nRead){ typedef typename DataManipulator::InnerType InnerType; #ifdef MYDEBUG InnerType * dataPtr = NULL; // Affiche la valeur du pointeur de la structure corba // et les pointeurs contenus le cas échéant dataPtr = DataManipulator::getPointer(corbaData,false); std::cerr << "-------- Copy2UserSpace MARK 1a --dataPtr("<(std::cerr," ")); for (int i=0; i< DataManipulator::size(corbaData); ++i) fprintf(stderr,"pointer[%d]=%p ",i, dataPtr[i]); std::cerr << std::endl; T1 * tmpData = data; //Cette affichage peut provoquer la détection d'écriture d'un espace non initailisé. std::cerr << "-------- Copy2UserSpace MARK 1b --data("<(std::cerr," ")); for (int i=0; i< DataManipulator::size(corbaData); ++i) fprintf(stderr,"pointer[%d]=%p ",i, tmpData[i]); std::cerr << std::endl; #endif // Pour les types pointeurs et ref il faut effectuer une recopie profonde. // On la délègue au manipulateur de données. // Recopie des données dans le buffer allouée par l'utilisateur // OU // Recopie des données dans le buffer allouée par la méthode appelante (ex: lecture) // dans le cas d'une demande utilisateur 0 copie mais que types utilisateurs et CORBA incompatibles. //std::copy(dataPtr,dataPtr+nRead,data); DataManipulator::copy(corbaData,data,nRead); #ifdef MYDEBUG tmpData = data; std::cerr << "-------- Copy2UserSpace MARK 1c --data("<(std::cerr," ")); for (int i=0; i< DataManipulator::size(corbaData); ++i) fprintf(stderr,"pointer[%d]=%p ",i, tmpData[i]); std::cerr << std::endl; #endif } }; // Désallocation des buffers si necessaire template struct DeleteTraits { template static void apply(T * dataPtr) { typedef typename DataManipulator::Type DataType; // Attention != T // Attention : Seul CalciumCouplingPolicy via eraseDataId doit décider de supprimer ou non // la donnée corba associée à un DataId ! // Ne pas effectuer la desallocation suivante : // DataManipulator::relPointer(dataPtr); } }; // Désalocation du buffer intermédiaire // dans le cas d'un type Utilisateur différent du type CORBA template struct DeleteTraits< false, DataManipulator > { template static void apply(T * dataPtr) { delete[] dataPtr; } }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CorbaTypes2CalciumTypes.cxx000077500000000000000000000141631177004724000277470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:40:26 +0100 (Thu, 01 Mar 2007) $ // Id : $Id: CorbaTypes2CalciumTypes.cxx,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "CorbaTypes2CalciumTypes.hxx" #include "utilities.h" #include DATE_CAL_SCHEM::DATE_CAL_SCHEM() : std::map() { std::map & table = ( std::map & ) *this ; table[Ports::Calcium_Ports::TI_SCHEM ] = CalciumTypes::TI_SCHEM ; table[Ports::Calcium_Ports::TF_SCHEM ] = CalciumTypes::TF_SCHEM ; table[Ports::Calcium_Ports::ALPHA_SCHEM ] = CalciumTypes::ALPHA_SCHEM ; } CalciumTypes::DateCalSchem DATE_CAL_SCHEM::operator[]( const Ports::Calcium_Ports::DateCalSchem &c ) const { std::map &table = (std::map&)*this ; assert( table.find( (Ports::Calcium_Ports::DateCalSchem)c ) != table.end() ) ; return table[ (Ports::Calcium_Ports::DateCalSchem)c ] ; } const DATE_CAL_SCHEM dateCalSchem ; DEPENDENCY_TYPE::DEPENDENCY_TYPE() : std::map() { std::map & table = ( std::map & ) *this ; table[Ports::Calcium_Ports::TIME_DEPENDENCY ] = CalciumTypes::TIME_DEPENDENCY ; table[Ports::Calcium_Ports::ITERATION_DEPENDENCY ] = CalciumTypes::ITERATION_DEPENDENCY ; table[Ports::Calcium_Ports::UNDEFINED_DEPENDENCY ] = CalciumTypes::UNDEFINED_DEPENDENCY ; MESSAGE("DEPENDENCY_TYPE() : table["< &table = (std::map&)*this ; MESSAGE("DEPENDENCY_TYPE() : ::operator["< () { std::map & table = ( std::map & ) *this ; table[Ports::Calcium_Ports::L0_SCHEM ] = CalciumTypes::L0_SCHEM ; table[Ports::Calcium_Ports::L1_SCHEM ] = CalciumTypes::L1_SCHEM ; } CalciumTypes::InterpolationSchem INTERPOLATION_SCHEM::operator[]( const Ports::Calcium_Ports::InterpolationSchem &c ) const { std::map &table = (std::map& ) *this ; assert( table.find( (Ports::Calcium_Ports::InterpolationSchem)c ) != table.end() ) ; return table[ (Ports::Calcium_Ports::InterpolationSchem)c ] ; } const INTERPOLATION_SCHEM interpolationSchem ; EXTRAPOLATION_SCHEM::EXTRAPOLATION_SCHEM() : std::map () { std::map & table = ( std::map & ) *this ; table[Ports::Calcium_Ports::E0_SCHEM ] = CalciumTypes::E0_SCHEM ; table[Ports::Calcium_Ports::E1_SCHEM ] = CalciumTypes::E1_SCHEM ; table[Ports::Calcium_Ports::UNDEFINED_EXTRA_SCHEM ] = CalciumTypes::UNDEFINED_EXTRA_SCHEM ; } CalciumTypes::ExtrapolationSchem EXTRAPOLATION_SCHEM::operator[]( const Ports::Calcium_Ports::ExtrapolationSchem &c ) const { std::map &table = (std::map& ) *this ; assert( table.find( (Ports::Calcium_Ports::ExtrapolationSchem)c ) != table.end() ) ; return table[ (Ports::Calcium_Ports::ExtrapolationSchem)c ] ; } const EXTRAPOLATION_SCHEM extrapolationSchem ; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/CorbaTypes2CalciumTypes.hxx000077500000000000000000000053111177004724000277470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:40:26 +0100 (Thu, 01 Mar 2007) $ // Id : $Id: CorbaTypes2CalciumTypes.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CORBATYPES_TO_CALCIUMTYPES_HXX_ #define _CORBATYPES_TO_CALCIUMTYPES_HXX_ #include "Calcium_Ports.hh" #include "CalciumTypes.hxx" #include #include class DATE_CAL_SCHEM : public std::map { public : DATE_CAL_SCHEM(); CalciumTypes::DateCalSchem operator[]( const Ports::Calcium_Ports::DateCalSchem &c ) const; }; extern const DATE_CAL_SCHEM dateCalSchem ; class DEPENDENCY_TYPE : public std::map { public : DEPENDENCY_TYPE(); CalciumTypes::DependencyType operator[]( const Ports::Calcium_Ports::DependencyType &c ) const; }; extern const DEPENDENCY_TYPE dependencyType ; class INTERPOLATION_SCHEM : public std::map { public : INTERPOLATION_SCHEM(); CalciumTypes::InterpolationSchem operator[]( const Ports::Calcium_Ports::InterpolationSchem &c ) const; } ; extern const INTERPOLATION_SCHEM interpolationSchem ; class EXTRAPOLATION_SCHEM : public std::map { public : EXTRAPOLATION_SCHEM(); CalciumTypes::ExtrapolationSchem operator[]( const Ports::Calcium_Ports::ExtrapolationSchem &c ) const; } ; extern const EXTRAPOLATION_SCHEM extrapolationSchem ; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/Makefile.am000077500000000000000000000120771177004724000246010ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF), Eric Fayolle (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = calcium_port_factory.hxx \ CorbaTypes2CalciumTypes.hxx \ CalciumTypes2CorbaTypes.hxx \ CalciumGenericProvidesPort.hxx \ calcium_uses_port.hxx \ CalciumGenericUsesPort.hxx \ calcium_provides_port.hxx \ calcium_intc_port_uses.hxx \ calcium_long_port_uses.hxx \ calcium_real_port_uses.hxx \ calcium_double_port_uses.hxx \ calcium_string_port_uses.hxx \ calcium_logical_port_uses.hxx \ calcium_complex_port_uses.hxx \ CalciumCouplingPolicy.hxx \ CalciumException.hxx \ CalciumTypes.hxx \ CalciumCxxInterface.hxx \ CalciumMacroCInterface.hxx \ CalciumCInterface.hxx \ CalciumInterface.hxx \ Copy2UserSpace.hxx \ Copy2CorbaSpace.hxx \ CalciumPortTraits.hxx \ calcium.h \ calciumf.h \ Calcium.hxx \ calciumP.h \ calciumE.h \ version.h \ calcium.hf nodist_salomeinclude_HEADERS = calcium_integer_port_uses.hxx CalciumProvidesPort.hxx CalciumFortranInt.h EXTRA_DIST=fortoc.h calcium_integer_port_uses.hxx.in CalciumProvidesPort.hxx.in CalciumFortranInt.h.in calcium_integer_port_uses.hxx: calcium_integer_port_uses.hxx.in CalciumProvidesPort.hxx : CalciumProvidesPort.hxx.in CalciumFortranInt.h : CalciumFortranInt.h.in # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= -I$(top_srcdir)/src/DSC/DSC_User \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Palm \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Calcium \ -I$(top_srcdir)/src/DSC/DSC_User/Basic \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_builddir)/idl \ -I$(top_builddir)/src/DSC/DSC_User/Datastream/Calcium \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # noinst_LTLIBRARIES = libSalomeCalcium.la libSalomeCalcium_la_SOURCES = calcium_port_factory.cxx \ calcium_uses_port.cxx \ calcium_provides_port.cxx\ calcium_repository_types.cxx \ CalciumCouplingPolicy.cxx \ CorbaTypes2CalciumTypes.cxx \ CalciumCxxInterface.cxx \ CalciumTypes2CorbaTypes.cxx \ CalciumCInterface.cxx \ CalciumProvidesPort.cxx \ Calcium.cxx \ calcium_destructors_port_uses.cxx libSalomeCalcium_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeCalcium_la_LDFLAGS = -no-undefined -version-info=0:0:0 AM_CFLAGS = -fexceptions lib_LTLIBRARIES = libCalciumC.la libCalciumC_la_SOURCES = CalciumC.c Calcium.cxx calciumf.c libCalciumC_la_CXXFLAGS = $(COMMON_CPPFLAGS) # # =============================================================== # Executables targets # =============================================================== # noinst_PROGRAMS = test_DataIdContainer ## testInterpolation ## testInterpolation_SOURCES = testInterpolation.cxx ## testInterpolation_CXXFLAGS = -I/usr/include test_DataIdContainer_SOURCES = test_DataIdContainer.cxx test_DataIdContainer_CXXFLAGS = $(COMMON_CPPFLAGS) test_DataIdContainer_LDADD = libSalomeCalcium.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la test_DataIdContainer_LDFLAGS = $(COMMON_LIBS) salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/Makefile.in000077500000000000000000001605221177004724000246110ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) \ $(srcdir)/CalciumFortranInt.h.in \ $(srcdir)/CalciumProvidesPort.hxx.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(srcdir)/calcium_integer_port_uses.hxx.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am noinst_PROGRAMS = test_DataIdContainer$(EXEEXT) subdir = src/DSC/DSC_User/Datastream/Calcium ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = calcium_integer_port_uses.hxx \ CalciumProvidesPort.hxx CalciumFortranInt.h CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libCalciumC_la_LIBADD = am_libCalciumC_la_OBJECTS = CalciumC.lo libCalciumC_la-Calcium.lo \ calciumf.lo libCalciumC_la_OBJECTS = $(am_libCalciumC_la_OBJECTS) libCalciumC_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libCalciumC_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ libSalomeCalcium_la_LIBADD = am_libSalomeCalcium_la_OBJECTS = \ libSalomeCalcium_la-calcium_port_factory.lo \ libSalomeCalcium_la-calcium_uses_port.lo \ libSalomeCalcium_la-calcium_provides_port.lo \ libSalomeCalcium_la-calcium_repository_types.lo \ libSalomeCalcium_la-CalciumCouplingPolicy.lo \ libSalomeCalcium_la-CorbaTypes2CalciumTypes.lo \ libSalomeCalcium_la-CalciumCxxInterface.lo \ libSalomeCalcium_la-CalciumTypes2CorbaTypes.lo \ libSalomeCalcium_la-CalciumCInterface.lo \ libSalomeCalcium_la-CalciumProvidesPort.lo \ libSalomeCalcium_la-Calcium.lo \ libSalomeCalcium_la-calcium_destructors_port_uses.lo libSalomeCalcium_la_OBJECTS = $(am_libSalomeCalcium_la_OBJECTS) libSalomeCalcium_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeCalcium_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(noinst_PROGRAMS) am_test_DataIdContainer_OBJECTS = \ test_DataIdContainer-test_DataIdContainer.$(OBJEXT) test_DataIdContainer_OBJECTS = $(am_test_DataIdContainer_OBJECTS) test_DataIdContainer_DEPENDENCIES = libSalomeCalcium.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la test_DataIdContainer_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) \ $(test_DataIdContainer_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libCalciumC_la_SOURCES) $(libSalomeCalcium_la_SOURCES) \ $(test_DataIdContainer_SOURCES) DIST_SOURCES = $(libCalciumC_la_SOURCES) \ $(libSalomeCalcium_la_SOURCES) $(test_DataIdContainer_SOURCES) HEADERS = $(nodist_salomeinclude_HEADERS) $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF), Eric Fayolle (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = calcium_port_factory.hxx \ CorbaTypes2CalciumTypes.hxx \ CalciumTypes2CorbaTypes.hxx \ CalciumGenericProvidesPort.hxx \ calcium_uses_port.hxx \ CalciumGenericUsesPort.hxx \ calcium_provides_port.hxx \ calcium_intc_port_uses.hxx \ calcium_long_port_uses.hxx \ calcium_real_port_uses.hxx \ calcium_double_port_uses.hxx \ calcium_string_port_uses.hxx \ calcium_logical_port_uses.hxx \ calcium_complex_port_uses.hxx \ CalciumCouplingPolicy.hxx \ CalciumException.hxx \ CalciumTypes.hxx \ CalciumCxxInterface.hxx \ CalciumMacroCInterface.hxx \ CalciumCInterface.hxx \ CalciumInterface.hxx \ Copy2UserSpace.hxx \ Copy2CorbaSpace.hxx \ CalciumPortTraits.hxx \ calcium.h \ calciumf.h \ Calcium.hxx \ calciumP.h \ calciumE.h \ version.h \ calcium.hf nodist_salomeinclude_HEADERS = calcium_integer_port_uses.hxx CalciumProvidesPort.hxx CalciumFortranInt.h EXTRA_DIST = fortoc.h calcium_integer_port_uses.hxx.in CalciumProvidesPort.hxx.in CalciumFortranInt.h.in # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = -I$(top_srcdir)/src/DSC/DSC_User \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Palm \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Calcium \ -I$(top_srcdir)/src/DSC/DSC_User/Basic \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_builddir)/idl \ -I$(top_builddir)/src/DSC/DSC_User/Datastream/Calcium \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # noinst_LTLIBRARIES = libSalomeCalcium.la libSalomeCalcium_la_SOURCES = calcium_port_factory.cxx \ calcium_uses_port.cxx \ calcium_provides_port.cxx\ calcium_repository_types.cxx \ CalciumCouplingPolicy.cxx \ CorbaTypes2CalciumTypes.cxx \ CalciumCxxInterface.cxx \ CalciumTypes2CorbaTypes.cxx \ CalciumCInterface.cxx \ CalciumProvidesPort.cxx \ Calcium.cxx \ calcium_destructors_port_uses.cxx libSalomeCalcium_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeCalcium_la_LDFLAGS = -no-undefined -version-info=0:0:0 AM_CFLAGS = -fexceptions lib_LTLIBRARIES = libCalciumC.la libCalciumC_la_SOURCES = CalciumC.c Calcium.cxx calciumf.c libCalciumC_la_CXXFLAGS = $(COMMON_CPPFLAGS) test_DataIdContainer_SOURCES = test_DataIdContainer.cxx test_DataIdContainer_CXXFLAGS = $(COMMON_CPPFLAGS) test_DataIdContainer_LDADD = libSalomeCalcium.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la test_DataIdContainer_LDFLAGS = $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .c .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/DSC_User/Datastream/Calcium/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/DSC_User/Datastream/Calcium/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): calcium_integer_port_uses.hxx: $(top_builddir)/config.status $(srcdir)/calcium_integer_port_uses.hxx.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ CalciumProvidesPort.hxx: $(top_builddir)/config.status $(srcdir)/CalciumProvidesPort.hxx.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ CalciumFortranInt.h: $(top_builddir)/config.status $(srcdir)/CalciumFortranInt.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libCalciumC.la: $(libCalciumC_la_OBJECTS) $(libCalciumC_la_DEPENDENCIES) $(libCalciumC_la_LINK) -rpath $(libdir) $(libCalciumC_la_OBJECTS) $(libCalciumC_la_LIBADD) $(LIBS) libSalomeCalcium.la: $(libSalomeCalcium_la_OBJECTS) $(libSalomeCalcium_la_DEPENDENCIES) $(libSalomeCalcium_la_LINK) $(libSalomeCalcium_la_OBJECTS) $(libSalomeCalcium_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test_DataIdContainer$(EXEEXT): $(test_DataIdContainer_OBJECTS) $(test_DataIdContainer_DEPENDENCIES) @rm -f test_DataIdContainer$(EXEEXT) $(test_DataIdContainer_LINK) $(test_DataIdContainer_OBJECTS) $(test_DataIdContainer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CalciumC.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calciumf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libCalciumC_la-Calcium.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-Calcium.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-CalciumCInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-CalciumCouplingPolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-CalciumCxxInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-CalciumProvidesPort.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-CalciumTypes2CorbaTypes.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-CorbaTypes2CalciumTypes.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-calcium_destructors_port_uses.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-calcium_port_factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-calcium_provides_port.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-calcium_repository_types.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCalcium_la-calcium_uses_port.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libCalciumC_la-Calcium.lo: Calcium.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCalciumC_la_CXXFLAGS) $(CXXFLAGS) -MT libCalciumC_la-Calcium.lo -MD -MP -MF $(DEPDIR)/libCalciumC_la-Calcium.Tpo -c -o libCalciumC_la-Calcium.lo `test -f 'Calcium.cxx' || echo '$(srcdir)/'`Calcium.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libCalciumC_la-Calcium.Tpo $(DEPDIR)/libCalciumC_la-Calcium.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Calcium.cxx' object='libCalciumC_la-Calcium.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCalciumC_la_CXXFLAGS) $(CXXFLAGS) -c -o libCalciumC_la-Calcium.lo `test -f 'Calcium.cxx' || echo '$(srcdir)/'`Calcium.cxx libSalomeCalcium_la-calcium_port_factory.lo: calcium_port_factory.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-calcium_port_factory.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-calcium_port_factory.Tpo -c -o libSalomeCalcium_la-calcium_port_factory.lo `test -f 'calcium_port_factory.cxx' || echo '$(srcdir)/'`calcium_port_factory.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-calcium_port_factory.Tpo $(DEPDIR)/libSalomeCalcium_la-calcium_port_factory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='calcium_port_factory.cxx' object='libSalomeCalcium_la-calcium_port_factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-calcium_port_factory.lo `test -f 'calcium_port_factory.cxx' || echo '$(srcdir)/'`calcium_port_factory.cxx libSalomeCalcium_la-calcium_uses_port.lo: calcium_uses_port.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-calcium_uses_port.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-calcium_uses_port.Tpo -c -o libSalomeCalcium_la-calcium_uses_port.lo `test -f 'calcium_uses_port.cxx' || echo '$(srcdir)/'`calcium_uses_port.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-calcium_uses_port.Tpo $(DEPDIR)/libSalomeCalcium_la-calcium_uses_port.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='calcium_uses_port.cxx' object='libSalomeCalcium_la-calcium_uses_port.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-calcium_uses_port.lo `test -f 'calcium_uses_port.cxx' || echo '$(srcdir)/'`calcium_uses_port.cxx libSalomeCalcium_la-calcium_provides_port.lo: calcium_provides_port.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-calcium_provides_port.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-calcium_provides_port.Tpo -c -o libSalomeCalcium_la-calcium_provides_port.lo `test -f 'calcium_provides_port.cxx' || echo '$(srcdir)/'`calcium_provides_port.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-calcium_provides_port.Tpo $(DEPDIR)/libSalomeCalcium_la-calcium_provides_port.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='calcium_provides_port.cxx' object='libSalomeCalcium_la-calcium_provides_port.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-calcium_provides_port.lo `test -f 'calcium_provides_port.cxx' || echo '$(srcdir)/'`calcium_provides_port.cxx libSalomeCalcium_la-calcium_repository_types.lo: calcium_repository_types.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-calcium_repository_types.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-calcium_repository_types.Tpo -c -o libSalomeCalcium_la-calcium_repository_types.lo `test -f 'calcium_repository_types.cxx' || echo '$(srcdir)/'`calcium_repository_types.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-calcium_repository_types.Tpo $(DEPDIR)/libSalomeCalcium_la-calcium_repository_types.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='calcium_repository_types.cxx' object='libSalomeCalcium_la-calcium_repository_types.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-calcium_repository_types.lo `test -f 'calcium_repository_types.cxx' || echo '$(srcdir)/'`calcium_repository_types.cxx libSalomeCalcium_la-CalciumCouplingPolicy.lo: CalciumCouplingPolicy.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-CalciumCouplingPolicy.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-CalciumCouplingPolicy.Tpo -c -o libSalomeCalcium_la-CalciumCouplingPolicy.lo `test -f 'CalciumCouplingPolicy.cxx' || echo '$(srcdir)/'`CalciumCouplingPolicy.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-CalciumCouplingPolicy.Tpo $(DEPDIR)/libSalomeCalcium_la-CalciumCouplingPolicy.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalciumCouplingPolicy.cxx' object='libSalomeCalcium_la-CalciumCouplingPolicy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-CalciumCouplingPolicy.lo `test -f 'CalciumCouplingPolicy.cxx' || echo '$(srcdir)/'`CalciumCouplingPolicy.cxx libSalomeCalcium_la-CorbaTypes2CalciumTypes.lo: CorbaTypes2CalciumTypes.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-CorbaTypes2CalciumTypes.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-CorbaTypes2CalciumTypes.Tpo -c -o libSalomeCalcium_la-CorbaTypes2CalciumTypes.lo `test -f 'CorbaTypes2CalciumTypes.cxx' || echo '$(srcdir)/'`CorbaTypes2CalciumTypes.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-CorbaTypes2CalciumTypes.Tpo $(DEPDIR)/libSalomeCalcium_la-CorbaTypes2CalciumTypes.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CorbaTypes2CalciumTypes.cxx' object='libSalomeCalcium_la-CorbaTypes2CalciumTypes.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-CorbaTypes2CalciumTypes.lo `test -f 'CorbaTypes2CalciumTypes.cxx' || echo '$(srcdir)/'`CorbaTypes2CalciumTypes.cxx libSalomeCalcium_la-CalciumCxxInterface.lo: CalciumCxxInterface.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-CalciumCxxInterface.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-CalciumCxxInterface.Tpo -c -o libSalomeCalcium_la-CalciumCxxInterface.lo `test -f 'CalciumCxxInterface.cxx' || echo '$(srcdir)/'`CalciumCxxInterface.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-CalciumCxxInterface.Tpo $(DEPDIR)/libSalomeCalcium_la-CalciumCxxInterface.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalciumCxxInterface.cxx' object='libSalomeCalcium_la-CalciumCxxInterface.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-CalciumCxxInterface.lo `test -f 'CalciumCxxInterface.cxx' || echo '$(srcdir)/'`CalciumCxxInterface.cxx libSalomeCalcium_la-CalciumTypes2CorbaTypes.lo: CalciumTypes2CorbaTypes.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-CalciumTypes2CorbaTypes.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-CalciumTypes2CorbaTypes.Tpo -c -o libSalomeCalcium_la-CalciumTypes2CorbaTypes.lo `test -f 'CalciumTypes2CorbaTypes.cxx' || echo '$(srcdir)/'`CalciumTypes2CorbaTypes.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-CalciumTypes2CorbaTypes.Tpo $(DEPDIR)/libSalomeCalcium_la-CalciumTypes2CorbaTypes.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalciumTypes2CorbaTypes.cxx' object='libSalomeCalcium_la-CalciumTypes2CorbaTypes.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-CalciumTypes2CorbaTypes.lo `test -f 'CalciumTypes2CorbaTypes.cxx' || echo '$(srcdir)/'`CalciumTypes2CorbaTypes.cxx libSalomeCalcium_la-CalciumCInterface.lo: CalciumCInterface.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-CalciumCInterface.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-CalciumCInterface.Tpo -c -o libSalomeCalcium_la-CalciumCInterface.lo `test -f 'CalciumCInterface.cxx' || echo '$(srcdir)/'`CalciumCInterface.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-CalciumCInterface.Tpo $(DEPDIR)/libSalomeCalcium_la-CalciumCInterface.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalciumCInterface.cxx' object='libSalomeCalcium_la-CalciumCInterface.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-CalciumCInterface.lo `test -f 'CalciumCInterface.cxx' || echo '$(srcdir)/'`CalciumCInterface.cxx libSalomeCalcium_la-CalciumProvidesPort.lo: CalciumProvidesPort.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-CalciumProvidesPort.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-CalciumProvidesPort.Tpo -c -o libSalomeCalcium_la-CalciumProvidesPort.lo `test -f 'CalciumProvidesPort.cxx' || echo '$(srcdir)/'`CalciumProvidesPort.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-CalciumProvidesPort.Tpo $(DEPDIR)/libSalomeCalcium_la-CalciumProvidesPort.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CalciumProvidesPort.cxx' object='libSalomeCalcium_la-CalciumProvidesPort.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-CalciumProvidesPort.lo `test -f 'CalciumProvidesPort.cxx' || echo '$(srcdir)/'`CalciumProvidesPort.cxx libSalomeCalcium_la-Calcium.lo: Calcium.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-Calcium.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-Calcium.Tpo -c -o libSalomeCalcium_la-Calcium.lo `test -f 'Calcium.cxx' || echo '$(srcdir)/'`Calcium.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-Calcium.Tpo $(DEPDIR)/libSalomeCalcium_la-Calcium.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Calcium.cxx' object='libSalomeCalcium_la-Calcium.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-Calcium.lo `test -f 'Calcium.cxx' || echo '$(srcdir)/'`Calcium.cxx libSalomeCalcium_la-calcium_destructors_port_uses.lo: calcium_destructors_port_uses.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCalcium_la-calcium_destructors_port_uses.lo -MD -MP -MF $(DEPDIR)/libSalomeCalcium_la-calcium_destructors_port_uses.Tpo -c -o libSalomeCalcium_la-calcium_destructors_port_uses.lo `test -f 'calcium_destructors_port_uses.cxx' || echo '$(srcdir)/'`calcium_destructors_port_uses.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCalcium_la-calcium_destructors_port_uses.Tpo $(DEPDIR)/libSalomeCalcium_la-calcium_destructors_port_uses.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='calcium_destructors_port_uses.cxx' object='libSalomeCalcium_la-calcium_destructors_port_uses.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeCalcium_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCalcium_la-calcium_destructors_port_uses.lo `test -f 'calcium_destructors_port_uses.cxx' || echo '$(srcdir)/'`calcium_destructors_port_uses.cxx test_DataIdContainer-test_DataIdContainer.o: test_DataIdContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -MT test_DataIdContainer-test_DataIdContainer.o -MD -MP -MF $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo -c -o test_DataIdContainer-test_DataIdContainer.o `test -f 'test_DataIdContainer.cxx' || echo '$(srcdir)/'`test_DataIdContainer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test_DataIdContainer.cxx' object='test_DataIdContainer-test_DataIdContainer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -c -o test_DataIdContainer-test_DataIdContainer.o `test -f 'test_DataIdContainer.cxx' || echo '$(srcdir)/'`test_DataIdContainer.cxx test_DataIdContainer-test_DataIdContainer.obj: test_DataIdContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -MT test_DataIdContainer-test_DataIdContainer.obj -MD -MP -MF $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo -c -o test_DataIdContainer-test_DataIdContainer.obj `if test -f 'test_DataIdContainer.cxx'; then $(CYGPATH_W) 'test_DataIdContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/test_DataIdContainer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test_DataIdContainer.cxx' object='test_DataIdContainer-test_DataIdContainer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -c -o test_DataIdContainer-test_DataIdContainer.obj `if test -f 'test_DataIdContainer.cxx'; then $(CYGPATH_W) 'test_DataIdContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/test_DataIdContainer.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-nodist_salomeincludeHEADERS: $(nodist_salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(nodist_salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-nodist_salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nodist_salomeincludeHEADERS \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES \ uninstall-nodist_salomeincludeHEADERS \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ clean-noinstPROGRAMS ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-nodist_salomeincludeHEADERS install-pdf \ install-pdf-am install-ps install-ps-am \ install-salomeincludeHEADERS install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-nodist_salomeincludeHEADERS \ uninstall-salomeincludeHEADERS calcium_integer_port_uses.hxx: calcium_integer_port_uses.hxx.in CalciumProvidesPort.hxx : CalciumProvidesPort.hxx.in CalciumFortranInt.h : CalciumFortranInt.h.in # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium.h000077500000000000000000001134311177004724000243270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium.h // Author : Eric Fayolle (EDF) // Module : KERNEL // /* Outils d'Aide au Couplage de Code de Calcul : $Id: calcium.h,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ */ #ifndef __CALCIUM_H #define __CALCIUM_H #include "calciumE.h" #include "version.h" #include "calciumP.h" #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) #define CPNeedPrototype 1 #else #define CPNeedPrototype 0 #endif #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif /* */ /* */ /* Fonctions de connexion */ /* */ /* */ extern int cp_cd( /* ----- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* S Nom de l instance appelante*/ #endif ); /* */ /* */ /* Fonction de deconnexion */ /* */ /* */ extern int cp_fin( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Directive de continuation */ /* CP_CONT ou CP_ARRET */ #endif ); /* */ /* */ /* Fonctions de lecture bloquante */ /* */ /* */ extern int cp_len( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int * /* S Tableau d'entiers pour stocker les */ /* valeurs lues */ #endif ); extern int cp_llg( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, long * /* S Tableau d'entiers pour stocker les */ /* valeurs lues */ #endif ); extern int cp_lln( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, long * /* S Tableau d'entiers pour stocker les */ /* valeurs lues */ #endif ); extern int cp_lre( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float * /* S Tableau de flottants pour stocker les */ /* valeurs lues */ #endif ); extern int cp_ldb( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, double* /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, double* /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, double* /* S Tableau de doubles pour stocker les */ /* valeurs lues */ #endif ); extern int cp_lcp( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float * /* S Tableau de flottants pour stocker les */ /* valeurs lues (dimension = 2 * le nombre */ /* de valeurs lues) */ #endif ); extern int cp_llo( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int * /* S Tableau d 'entier pour stocker les */ /* valeurs lues (remplace le logiques) */ #endif ); extern int cp_lch( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, char *[]/* S Tableau de chaines pour stocker les */ /* valeurs lues (remplace le logiques) */, int /* E Taille des chaines du tablaeu */ #endif ); /* */ /* */ /* Fonctions de lecture non bloquantes */ /* */ /* */ extern int cp_nlen( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int * /* S Tableau d'entiers pour stocker les */ /* valeurs lues */ #endif ); extern int cp_nlre( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float * /* S Tableau de flottants pour stocker les */ /* valeurs lues */ #endif ); extern int cp_nldb( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, double */* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, double */* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, double* /* S Tableau de doubles pour stocker les */ /* valeurs lues */ #endif ); extern int cp_nlcp( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float * /* S Tableau de flottants pour stocker les */ /* valeurs lues (dimension = 2 * le nombre */ /* de valeurs lues) */ #endif ); extern int cp_nllo( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int * /* S Tableau d 'entier pour stocker les */ /* valeurs lues (remplace le logiques) */ #endif ); extern int cp_nlch( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, char *[]/* S Tableau de chaines pour stocker les */ /* valeurs lues (remplace le logiques) */, int /* E Taille des chaines du tablaeu */ #endif ); /* */ /* */ /* Fonctions d'ecriture */ /* */ /* */ extern int cp_een( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, int * /* E Tableau d'entiers a ecrire */ #endif ); extern int cp_elg( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, long * /* E Tableau d'entiers a ecrire */ #endif ); extern int cp_eln( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, long * /* E Tableau d'entiers a ecrire */ #endif ); extern int cp_ere( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, float * /* E Tableau de flottants a ecrire */ #endif ); extern int cp_edb( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, double /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, double* /* E Tableau de doubles a ecrire */ #endif ); extern int cp_ecp( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, float * /* E Tableau de flottants a ecrire */ /* (dimension = 2 * le nombre de valeurs */ /* a ecrire */ #endif ); extern int cp_elo( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, int * /* E Tableau d'entiers a ecrire */ #endif ); extern int cp_ech( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance */ /* CP_TEMPS, CP_ITERATION */, float /* E Pas de temps a ecrire */, int /* E Pas d'iteration a ecrire */, char * /* E Nom de la variable a ecrire */, int /* E Nombre de valeurs a ecrire */, char *[]/* E Tableau de chaines a ecrire */, int /* E Taille des chaines a ecrire */ #endif ); /* */ /* */ /* Fonctions de fin de pas */ /* */ /* */ extern int cp_aufp( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */ #endif ); extern int cp_infp( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */ #endif ); extern int cp_fini( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom de la variable (not in original CALCIUM API) */, int /* E Tous les pas <= a cette valeur */ /* seront oublies par le coupleur */ #endif ); extern int cp_fint( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom de la variable (not in original CALCIUM API) */, float /* E Tous les pas <= a cette valeur */ /* seront oublies par le coupleur */ #endif ); /* */ /* */ /* Fonctions d'effacement */ /* */ /* */ extern int cp_effi( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom de la variable a effacer */, int /* E Tous les pas >= a cette valeurt */ /* seront effaces par le coupleur */ #endif ); extern int cp_efft( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom de la variable a effacer */, float /* E Tous les pas >= a cette valeur */ /* seront effaces par le coupleur */ #endif ); /* */ /* */ /* Fonctions de mode d'execution */ /* */ /* */ extern int cp_pause( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */ #endif ); extern int cp_run( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */ #endif ); extern int cp_npas( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Nombre de pas a executer */ #endif ); /* */ /* */ /* Fonctions de configuration dynamique */ /* */ /* */ extern int cp_dfcode( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Declaration du code */ #endif ); extern int cp_dfinst( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Declaration de l'instance */ #endif ); extern int cp_dflien( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Declaration du lien */ #endif ); /* */ /* */ /* Fonctions d'interrogation */ /* */ /* */ extern int cp_ivers( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* S Repertoire ACCC */, char * /* S Repertoire ACCC */ #endif ); extern int cp_icd( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Longueur du tableau passe en parametre */, int * /* S Nombre de codes retournes */, char *[]/* S Tableau contenant les noms des codes */ #endif ); extern int cp_iincd( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom du code dont on veut les instances */, int /* E Longueur du tableau passe en parametre */, int * /* S Nombre d'instances retournees */, char *[]/* S Tableau contenant les noms des instances */ #endif ); extern int cp_ivr( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Longueur des tableaux passes en parametre */, int * /* S Nombre de variables retournees */, char *[]/* S Tableau contenant les noms des instances */, char *[]/* S Tableau contenant les noms des variables */ #endif ); extern int cp_ivrcd( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom du code dont on veut les variables */, int /* E Longueur des tableaux passes en parametre */, int * /* S Nombre de variables retournees */, char *[]/* S Tableau contenant les noms des variables */ #endif ); extern int cp_ivrin( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom de l'instance dont on veut la liste */ /* des variables */, char * /* S Nom du code pere de l'instance */, int /* E Longueur du tableau pour les variables */ /* entrantes */, int /* E Longueur du tableau pour les variables */ /* sortantes */, int * /* S Nombre de variables entrantes retournees */, int * /* S Nombre de variables sortantes retournees */, char *[]/* S Tableau contenant les noms des variables */ /* entrantes */, char *[]/* S Tableau contenant les noms des variables */ /* sortantes */ #endif ); extern int cp_icavr( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom de l'instance contenant la variable */, char * /* E Nom local de la variable */, int * /* S Sens de la variable */, int * /* S Dependance de la variable */, int * /* S Type de la variable */, int /* E Longueur des tableaux permettant de */ /* recueillir les pas de temps et d'iteration*/, int * /* S Nombre de codes retournes */, float * /* S Tableau contenant les pas de temps */, int * /* S Tableau contenant les pas d'iterations */ #endif ); extern int cp_ilien( /* -------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* E Nom global de la variable */, int /* E Longueur des tableaux pour les noms des */ /* instances et des variables */, int * /* S Nombre de variables participant au lien */, char *[]/* S Tableau contenant les noms des instances */, char *[]/* S Tableau contenant les noms des variables */, int * /* S Type du lien */, int * /* S Niveau du lien */, int * /* S Tableau des parametres d'interpolation */ /* des variables entrantes */, float * /* S Tableau des valeurs de delta utilisees */ /* pour les variables entrantes */, int * /* S Tableau des parametres d'extrapolation */ /* des variables entrantes */ #endif ); /* */ /* */ /* Fonctions de manipulation d'options */ /* */ /* */ extern int cp_setopt( /* --------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Numero identifiant l'option a modifier */, int /* E Valeur a donner a l'option */ #endif ); extern int cp_getopt( /* --------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Numero identifiant l'option a consulter */, int * /* S Valeur recupereee de l'option */ #endif ); #if defined(__cplusplus) || defined(c_plusplus) } #endif #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium.hf000077500000000000000000000101341177004724000244710ustar00rootroot00000000000000C Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE C C Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, C CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS C C This library is free software; you can redistribute it and/or C modify it under the terms of the GNU Lesser General Public C License as published by the Free Software Foundation; either C version 2.1 of the License. C C This library is distributed in the hope that it will be useful, C but WITHOUT ANY WARRANTY; without even the implied warranty of C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU C Lesser General Public License for more details. C C You should have received a copy of the GNU Lesser General Public C License along with this library; if not, write to the Free Software C Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA C C See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com C C File : version.h C Author : Eric Fayolle (EDF) C Module : KERNEL C C Outils d'Aide au Couplage de Code de Calcul : $Id: calcium.hf,v 1.3.32.2.12.1 2012-04-12 14:05:07 vsr Exp $ INTEGER CP_ENTIER, CP_REEL, CP_DREEL, CP_COMPLEXE, . CP_LOGIQUE, CP_CHAINE, . ENTIER,REEL,DREEL,COMPLEXE,LOGIQUE,CHAINE, . CP_NORMALE, CP_ANORMALE, . CP_CONT, CP_ARRET, . CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL, . CP_IN, CP_OUT, . IN, OUT, . CP_ILLIMITE, CP_AUTESP, . CP_LINEAIRE, CP_ESCALIER, CP_AUCUNE, . CP_ROUTE, CP_ERREURS, . CP_ROUTE_NORMAL, CP_ROUTE_DIRECT, . CP_AUTO, CP_BLOCAGE, CP_MANUEL, . CP_ATTENTE, CP_IMMEDIATE INTEGER CPLVAV, CPLVAF, CPLVAS, CPLCAV, CPLFAV, . VARIABLE_LEN, CODE_LEN, INSTANCE_LEN, . CPOK, CPEIU, CPNMVR, CPIOVR, CPTP, CPTPVR, . CPIT, CPITVR, CPRENA, CPDNTP, CPDNDI, . CPNMCD, CPNMIN, CPATTENTE, CPBLOC, CPNTNULL, . CPLGVR, CPSTOP, CPATAL, CPNOCP, CPCTVR, . CPPASNULL, CPMACHINE, CPGRNU, CPGRIN, . CPFINFICH, CPERRFICH, CPNORERR, CPRUNERR, . CPOPT, CPVALOPT, CPECREFF, CPLIEN, CPINARRET, . CPSTOPSEQ, CPDECL, CPINEXEC, CPPVM, CPERRINST PARAMETER (VARIABLE_LEN = 144 , . CODE_LEN = 72 , . INSTANCE_LEN = 72) PARAMETER (CP_NORMALE = 10, CP_ANORMALE = 11) PARAMETER (CP_CONT = 20, CP_ARRET = 21) PARAMETER (CP_ENTIER = 30, CP_REEL = 31, . CP_DREEL = 32, CP_COMPLEXE = 33, . CP_LOGIQUE = 34, CP_CHAINE = 35) PARAMETER (ENTIER = 30, REEL = 31, . DREEL = 32, COMPLEXE = 33, . LOGIQUE = 34, CHAINE = 35) PARAMETER (CP_TEMPS= 40, CP_ITERATION = 41, . CP_SEQUENTIEL = 42) PARAMETER (CP_IN = 50, CP_OUT = 51) PARAMETER (IN = 50, OUT = 51) PARAMETER (CP_ILLIMITE = -70, CP_AUTESP = -71) PARAMETER (CP_LINEAIRE = 100, CP_ESCALIER = 101, CP_AUCUNE = 121) PARAMETER (CP_ROUTE = 131, CP_ERREURS = 132) PARAMETER (CP_ROUTE_NORMAL = 133, CP_ROUTE_DIRECT = 134) PARAMETER (CP_AUTO = 135, CP_BLOCAGE = 136, CP_MANUEL = 137) PARAMETER (CP_ATTENTE = 24, CP_IMMEDIATE = 141) PARAMETER (CPLVAV = 151, CPLVAF = 152, CPLVAS = 153, . CPLCAV = 154, CPLFAV = 155) PARAMETER (CPOK = 0 , CPEIU = 1 , CPNMVR = 2, . CPIOVR = 3 , CPTP = 4 , CPTPVR = 5, . CPIT = 6 , CPITVR = 7 , CPRENA = 8, . CPDNTP = 9 , CPDNDI = 10, CPNMCD = 11, . CPNMIN = 12, CPATTENTE = 13, CPBLOC = 14, . CPNTNULL = 15, CPLGVR = 16, CPSTOP = 17, . CPATAL = 18, CPNOCP = 19, CPCTVR = 20, . CPPASNULL = 21, CPMACHINE = 22, CPGRNU = 23, . CPGRIN = 24, CPFINFICH = 25, CPERRFICH = 26, . CPNORERR = 27, CPRUNERR = 28, CPOPT = 29, . CPVALOPT = 30, CPECREFF = 31, CPLIEN = 32, . CPINARRET = 33, CPSTOPSEQ = 34, CPDECL = 35, . CPINEXEC = 36, CPPVM = 37, CPERRINST = 38) salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calciumE.h000077500000000000000000000444441177004724000244430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium.h // Author : Eric Fayolle (EDF) // Module : KERNEL // /* Outils d'Aide au Couplage de Code de Calcul : $Id: calciumE.h,v 1.2.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ */ #ifndef __CALCIUM_E_H #define __CALCIUM_E_H #include "calciumP.h" #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) #define CPNeedPrototype 1 #else #define CPNeedPrototype 0 #endif #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif /* */ /* */ /* Fonctions de connexion */ /* */ /* */ extern int ecp_cd( /* ----- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, char * /* S Nom de l instance appelante*/ #endif ); /* */ /* */ /* Fonction de deconnexion */ /* */ /* */ extern int ecp_fin( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Directive de continuation */ /* CP_CONT ou CP_ARRET */ #endif ); /* */ /* */ /* Fonctions de libération du buffer 0 copy */ /* */ extern void ecp_len_free( #if CPNeedPrototype int * #endif ); extern void ecp_lre_free( #if CPNeedPrototype float * #endif ); extern void ecp_ldb_free( #if CPNeedPrototype double * #endif ); extern void ecp_llo_free( #if CPNeedPrototype int * #endif ); extern void ecp_lcp_free( #if CPNeedPrototype float * #endif ); extern void ecp_lch_free( #if CPNeedPrototype char ** #endif ); /* */ /* */ /* Fonctions de lecture bloquante 0 copy */ /* */ /* */ extern int ecp_len( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int ** /* E/S Tableau d'entiers pour stocker les */ /* valeurs lues */ #endif ); extern int ecp_lre( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float **/* E/S Tableau de flottants pour stocker les */ /* valeurs lues */ #endif ); extern int ecp_ldb( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, double* /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, double* /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, double**/* E/S Tableau de doubles pour stocker les */ /* valeurs lues */ #endif ); extern int ecp_lcp( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float **/* E/S Tableau de flottants pour stocker les */ /* valeurs lues (dimension = 2 * le nombre */ /* de valeurs lues) */ #endif ); extern int ecp_llo( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int ** /* E/S Tableau d 'entier pour stocker les */ /* valeurs lues (remplace le logiques) */ #endif ); extern int ecp_lch( /* ------ */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, char **[]/*E/S Tableau de chaines pour stocker les */ /* valeurs lues (remplace le logiques) */, int /* E Taille des chaines du tablaeu */ #endif ); /* */ /* */ /* Fonctions de lecture non bloquantes */ /* */ /* */ extern int ecp_nlen( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int ** /* E/S Tableau d'entiers pour stocker les */ /* valeurs lues */ #endif ); extern int ecp_nlre( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float **/* E/S Tableau de flottants pour stocker les */ /* valeurs lues */ #endif ); extern int ecp_nldb( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, double */* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, double */* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, double**/* E/S Tableau de doubles pour stocker les */ /* valeurs lues */ #endif ); extern int ecp_nlcp( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, float **/* E/S Tableau de flottants pour stocker les */ /* valeurs lues (dimension = 2 * le nombre */ /* de valeurs lues) */ #endif ); extern int ecp_nllo( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, int **/* E/S Tableau d 'entier pour stocker les */ /* valeurs lues (remplace le logiques) */ #endif ); extern int ecp_nlch( /* ------- */ #if CPNeedPrototype void * component /* Pointeur de type Superv_Component_i* sur le */ /* composant SALOME Supervisable */, int /* E Type de dependance ou de lecture */ /* CP_TEMPS, CP_ITERATION, CP_SEQUENTIEL */, float * /* E/S Borne inf de l'intervalle de lecture */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, float * /* E Borne Sup de l'intervalle de lecture */, int * /* E/S Pas d'iteration a lire */ /* Retourne le pas lu dans le cas de */ /* lecture sequentielle */, char * /* E Nom de la variable a lire */, int /* E Nombre max de valeurs a lire */, int * /* S Nombre de valeurs rellement lues */, char **[]/* E/S Tableau de chaines pour stocker les */ /* valeurs lues (remplace le logiques) */, int /* E Taille des chaines du tablaeu */ #endif ); #if defined(__cplusplus) || defined(c_plusplus) } #endif #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calciumP.h000077500000000000000000000504471177004724000244560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calciumP.h // Author : Eric Fayolle (EDF) // Module : KERNEL // /* Outils d'Aide au Couplage de Code de Calcul : $Id: calciumP.h,v 1.3.2.1.14.2.12.1 2012-04-12 14:05:07 vsr Exp $ */ #ifndef __CONST_H #define __CONST_H #ifndef TrueOrFalse #define TrueOrFalse int #define TRUE 1 #define FALSE 0 #endif /* Definition d'un type de donnes pour le stockage du */ /* des pas de temps */ #ifdef CRAY #define Temps float #define FORMAT_TEMPS "%lf" #else #define Temps double #define FORMAT_TEMPS "%lg" #endif /* Precision relative pour tests d'egalite sur les temps */ #define EPSILON 1.e-6 /* Tailles utilisees lors des transmissions des noms */ #define VERSION_LEN 144 #define CODE_LEN 72 #define VARIABLE_LEN 144 #define INSTANCE_LEN 72 #define DRIVER_LEN 72 /* Tailles maximums */ #define ARCHI_LEN 64 #define ENV_VAR_LEN 256 #define ACCC_LEN 256 #define PVM_LEN 256 #define USER_LEN 256 #define MACHINE_LEN 256 #define COMMAND_LEN 256 #define MAX_LEN 256 #define FICHIER_LEN 256 /* Nombre de lignes dans une page du fichier erreur * * de trace */ #define NB_LIGNE_ERREUR 45 #define NB_LIGNE_TRACE 45 /* Type d'arret d'une instance */ #define CP_NORMALE 10 #define CP_ANORMALE 11 /* Directive de continuation d'une instance */ #define CP_CONT 20 #define CP_ARRET 21 /* Etat d'une instance */ #define CP_INITIAL 22 #define CP_NON_CONNECTE 23 #define CP_ATTENTE 24 #define CP_EXECUTION 25 #define CP_DECONNECTE 26 #define CP_TERMINE 27 /* Type de variables */ #define CP_ENTIER 30 #define CP_REEL 31 #define CP_DREEL 32 #define CP_COMPLEXE 33 #define CP_LOGIQUE 34 #define CP_CHAINE 35 /* Type de dependance des variables */ #define CP_TEMPS 40 #define CP_ITERATION 41 #define CP_SEQUENTIEL 42 /* Send des variables */ #define CP_IN 50 #define CP_OUT 51 /* Type des instances */ #define CP_NORMAL 60 #define CP_ESPION 62 /* Niveaux */ #define CP_ILLIMITE -70 #define CP_AUTESP -71 /* Mode de trace */ #define CP_SANS 80 #define CP_SUCCINCT 81 #define CP_DETAILLE 82 /* Mode d'execution */ /* La valeur CP_NORMAL definie pour les types */ /* est aussi utilisee */ #define CP_PAUSE 91 /* Type d'interpolation */ #define CP_LINEAIRE 100 #define CP_ESCALIER 101 /* Repere dans cycle de temps */ #define TI 110 #define TF 111 /* Mode de nettoyage des donnees d'un lien */ #define CP_TOUTES 120 #define CP_AUCUNE 121 #define CP_PAS 122 /* Options configurables */ #define CP_ROUTE 131 #define CP_ERREURS 132 /* Valeurs pour l'option CP_ROUTE */ #define CP_ROUTE_NORMAL 133 #define CP_ROUTE_DIRECT 134 /* Valeurs pour l'option Comportement en cas d'erreur */ #define CP_AUTO 135 #define CP_BLOCAGE 136 #define CP_MANUEL 137 /* Type de requete de lecture */ /* La valeur CP_ATTENTE define pour l'etat d'une */ /* instance est aussi utilisee */ #define CP_IMMEDIATE 141 /* Definition des types de lien */ #define CPLVAV 151 #define CPLVAF 152 #define CPLVAS 153 #define CPLCAV 154 #define CPLFAV 155 /* Codes des entetes des messages (Evenemet *) */ #define ERREUR 1000 #define CONNEXION 1001 #define EMISSION 1002 #define DECONNEXION 1003 #define LECTURE_VARIABLE 1004 #define ECRITURE_VARIABLE 1005 #define FIN_DE_PAS 1006 #define AUIN_FIN_DE_PAS 1007 #define EFFACEMENT 1008 #define MODE_EXEC 1009 #define RUN_N_PAS 1010 #define DEF_CODE 1011 #define DEF_INSTANCE 1012 #define DEF_LIEN 1013 #define DEM_VERSION 1014 #define SET_OPTION 1015 #define DEM_OPTION 1016 #define DEM_CODES 1017 #define DEM_INSTS_DE_CODE 1018 #define DEM_VARIABLES 1019 #define DEM_VARS_DE_CODE 1020 #define DEM_VARS_DE_INST 1021 #define DEM_CARS_DE_VARIABLE 1022 #define DEM_CARS_DE_LIEN 1023 #define ENV_VALEURS_VARIABLE 1024 #define ENV_OPTION 1025 #define ENV_CODES 1026 #define ENV_INSTS_DE_CODE 1027 #define ENV_VARIABLES 1028 #define ENV_VARS_DE_CODE 1029 #define ENV_VARS_DE_INST 1030 #define ENV_CARS_DE_VARIABLE 1031 #define ENV_CARS_DE_LIEN 1032 #define ENV_TOPOLOGY 1033 #define R_ENV_TOPOLOGY 1034 #define ENV_MACHINE 1035 #define R_ENV_MACHINE 1036 #define ENV_CODE 1037 #define R_ENV_CODE 1038 #define ENV_INSTANCE 1039 #define R_ENV_INSTANCE 1040 #define ENV_VAR 1041 #define R_ENV_VAR 1042 #define ENV_LIEN 1043 #define R_ENV_LIEN 1044 #define ENV_ATTRIBUTS 1045 #define R_ENV_ATTRIBUTS 1046 #define ENV_VDATA 1047 #define R_ENV_VDATA 1048 /* Message PVM */ #define P_HOST_DELETE 2000 #define P_TASK_EXIT 2001 /* Codes d'erreur */ /* Pas d'erreur */ #define CPOK 0 /* Emetteur inconnu */ #define CPERIU 1 /* Nom de variable inconnu */ #define CPNMVR 2 /* Type entree/sortie incompatible */ #define CPIOVR 3 /* Type inconnu */ #define CPTP 4 /* Type de variable incompatible */ #define CPTPVR 5 /* Mode de dependance inconnu */ #define CPIT 6 /* Mode dependance incompatible */ #define CPITVR 7 /* Requete non autorisee */ #define CPRENA 8 /* Type de deconnexion incorrect */ #define CPDNTP 9 /* Directive de deconnexion incorrecte */ #define CPDNDI 10 /* Nom de code inconnu */ #define CPNMCD 11 /* Nom d'instance inconnu */ #define CPNMIN 12 /* Attente */ #define CPATTENTE 13 /* Blocage */ #define CPBLOC 14 /* Nombre de valeurs transmises egal a zero */ #define CPNTNULL 15 /* Longueur de variable insuffisante */ #define CPLGVR 16 /* L'instance doit s'arreter */ #define CPSTOP 17 /* Arret anormal */ #define CPATAL 18 /* Coupleur abscent */ #define CPNOCP 19 /* Variable sortante non connectee */ #define CPCTVR 20 /* Nombre de pas a executer egal a zero */ #define CPPASNULL 21 /* Machine inconnue */ #define CPMACHINE 22 /* COUPLAGE_GROUPE non positionnee */ #define CPGRNU 23 /* Groupe d'instances incorrect */ #define CPGRIN 24 /* Fin du fichier d'entree */ #define CPFINFICH 25 /* Erreur de format dans un fichier */ #define CPERRFICH 26 /* Requete d'avance de n pas annullee */ /* par passage en mode NORMAL */ #define CPNORERR 27 /* Coupleur en mode NORMAL pour une */ /* requete RUN_N_PAS ou DEF_* */ #define CPRUNERR 28 /* Option inconnue */ #define CPOPT 29 /* Valeur d'option inconnue */ #define CPVALOPT 30 /* Ecriture impossible par effacement */ #define CPECREFF 31 /* Lecture d'une variable non connectee */ /* ou n'appartenant pas a un lien VAS */ /* ou VAV s'il s'agit d'une sortante */ #define CPLIEN 32 /* Lecture d'une variable d'une instance*/ /* deconnectee avec directive CP_ARRET */ #define CPINARRET 33 /* Les lectures sequentielles ne pourront plus */ /* etre satisfaites : instance productrice arretee */ #define CPSTOPSEQ 34 /* Erreur dans la chaine de declaration */ #define CPDECL 35 /* Erreur dans l'execution de l'instance ajoutee */ #define CPINEXEC 36 /* Erreur PVM */ #define CPPVM 37 /* Erreur detectee au niveau de l'interface de couplage */ #define CPERRINST 38 /* IDM : les deux define suivants ont ete rajoutes a la main*/ /* Erreur de mode d'execution non defini */ #define CPMODE 39 /* Erreur d'instance deconnectee */ #define CPINSTDEC 40 /* Codes des evenements pour le fichier de trace */ /* Debut du couplage */ #define DEBUT_COUPLAGE 0 /* Fin du couplage */ #define FIN_COUPLAGE 1 /* Execution d'une instance par Oacc */ #define EXEC 2 /* Connexion d'une instance */ #define CPCD 3 /* Permission d'emettre accordee a l'instance */ #define CPALLOW 4 /* Requete d'ecriture */ #define CPECRI 5 /* Requete de lecture */ #define DEB_LECT 6 /* Envoi des donnees suite a une requete de lecture */ #define FIN_LECT 7 /* Deconnexion d'une instance */ #define CPFIN 8 /* Requete de fin de pas */ #define CPFINP 9 /* Requete d'autorisation de fin de pas */ #define CPAUFP 10 /* Requete d'interdiction de fin de pas */ #define CPINFP 11 /* Requete d'effacement */ #define CPEFF 12 /* Signal d'arret d'une instance */ #define STOP 13 /* Avis de blocage suite a une requete de lecture */ #define BLOCAGE 14 /* Requete de passage en mode pause */ #define CPPAUSE 15 /* Requete de passage en mode normal */ #define CPNORMAL 16 /* Requete d'execution de n pas */ #define CPNPAS 17 /* Requete de definition d'un code */ #define CPADCD 18 /* Requete de definition d'une instance */ #define CPADINCD 19 /* Requete de definition d'un lien */ #define CPADLN 20 /* Requete d'identification de version */ #define CPIVERS 21 /* Requete de demande de la liste des codes */ #define CPICD 22 /* Requete de demande des instances d'un code */ #define CPIINCD 23 /* Requete de demande de la liste des variables globales*/ #define CPIVR 24 /* Requete de demande des variables d'un code */ #define CPIVRCD 25 /* Requete de demande des variables d'une instance */ #define CPIVRIN 26 /* Requete de demande d'info sur une variable globale */ #define CPICAVR 27 /* Requete de demande des caracteristiques d'un lien */ #define CPIILIEN 28 /* Requete de modification d'une option */ #define CPSETOPT 29 /* Requete de consultation d'une option */ #define CPGETOPT 30 /* Terminaison d'une tache PVM */ #define TASK_EXIT 31 /* Deconnexion d'une machine */ #define HOST_DELETE 32 #ifdef PRG_MAIN /* Fichier principal de la bibliotheque de couplage */ const char * CPMESSAGE[] = { "", "Emitter unknown", "Variable name unknown", "Different input/output codes in code and supervisor", "Variable type unknown", "Different variable types in code and supervisor", "Dependency mode unknown", "Different dependency modes in code and supervisor", "Unauthorized request", "Unauthorized disconnection request type", "Unauthorized disconnection directive", "Code name unknown", "Instance name unknown", "Waiting request", "Blocking", "Zero value number", "Insufficient variable length", "Instance is going to stop", "Unexpected instance stop", "Manuel execution", "Output variable not connected", "Number of steps to execute is nul", "Non declared computer", "Environment variable COUPLAGE_GROUPE is not set", "Instance group given by COUPLAGE_GROUPE is wrong", "End of input file", "Format error in input file", "Request ignored because of switching to NORMAL mode", "Supervisor is in normal execution mode", "Unknown option", "Option value is wrong", "Impossible to write because of an erasing request", "Reading of a variable wrongly connected", "Reading of a variable of an instance disconnected with CP_ARRET", "Sequential reading no more possible", "Error in declaration", "Error in instance launching", "Communication error", "Error in the instance", "Environnement variable CAL_MODE is not set", "Disconnected instance", }; #else extern const char * CPMESSAGE[]; #endif /* Type de variables */ #define ENTIER 30 #define REEL 31 #define DREEL 32 #define COMPLEXE 33 #define LOGIQUE 34 #define CHAINE 35 /* Macro minuscule majuscule */ #define TOUPPER(string) \ {\ int i, number = strlen(string);\ for (i = 0; i < number; i++) string[i] = toupper(string[i]); \ } /* Macro inferieur */ #define INF(a,b) (a <= b ? a : b) /* Macro superieur */ #define SUP(a,b) (a >= b ? a : b) #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_complex_port_uses.hxx000077500000000000000000000036171177004724000305450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_complex_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_complex_port_uses.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_COMPLEX_PORT_USES_HXX_ #define _CALCIUM_COMPLEX_PORT_USES_HXX_ #include "Calcium_Ports.hh" #include "GenericUsesPort.hxx" extern char _repository_Calcium_Complex_Port_name[]; class calcium_complex_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Complex_Port, _repository_Calcium_Complex_Port_name > { public : virtual ~calcium_complex_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_destructors_port_uses.cxx000077500000000000000000000035331177004724000314470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_destructors_port_uses.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // #include "calcium_integer_port_uses.hxx" #include "calcium_long_port_uses.hxx" #include "calcium_intc_port_uses.hxx" #include "calcium_real_port_uses.hxx" #include "calcium_double_port_uses.hxx" #include "calcium_string_port_uses.hxx" #include "calcium_logical_port_uses.hxx" #include "calcium_complex_port_uses.hxx" calcium_real_port_uses::~calcium_real_port_uses(void) {}; calcium_double_port_uses::~calcium_double_port_uses(void) {}; calcium_integer_port_uses::~calcium_integer_port_uses(void) {}; calcium_long_port_uses::~calcium_long_port_uses(void) {}; calcium_intc_port_uses::~calcium_intc_port_uses(void) {}; calcium_logical_port_uses::~calcium_logical_port_uses(void) {}; calcium_complex_port_uses::~calcium_complex_port_uses(void) {}; calcium_string_port_uses::~calcium_string_port_uses(void) {}; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_double_port_uses.hxx000077500000000000000000000036171177004724000303500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_double_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_double_port_uses.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_DOUBLE_PORT_USES_HXX_ #define _CALCIUM_DOUBLE_PORT_USES_HXX_ #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_Double_Port_name[]; class calcium_double_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Double_Port, _repository_Calcium_Double_Port_name > { public : virtual ~calcium_double_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_intc_port_uses.hxx000077500000000000000000000034261177004724000300310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_int_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_intc_port_uses.hxx,v 1.1.2.2.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_INTC_PORT_USES_HXX_ #define _CALCIUM_INTC_PORT_USES_HXX_ #include #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_Intc_Port_name[]; class calcium_intc_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Intc_Port, _repository_Calcium_Intc_Port_name > { public : virtual ~calcium_intc_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_integer_port_uses.hxx.in000077500000000000000000000033111177004724000311270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_integer_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_integer_port_uses.hxx.in,v 1.1.2.1.18.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_INTEGER_PORT_USES_HXX_ #define _CALCIUM_INTEGER_PORT_USES_HXX_ #include #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_Integer_Port_name[]; class calcium_integer_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Integer_Port, _repository_Calcium_Integer_Port_name > { public : virtual ~calcium_integer_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_logical_port_uses.hxx000077500000000000000000000036321177004724000305050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_logical_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_logical_port_uses.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_LOGICAL_PORT_USES_HXX_ #define _CALCIUM_LOGICAL_PORT_USES_HXX_ #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_Logical_Port_name[]; class calcium_logical_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Logical_Port, _repository_Calcium_Logical_Port_name > { public : virtual ~calcium_logical_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_long_port_uses.hxx000077500000000000000000000034401177004724000300270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_long_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_long_port_uses.hxx,v 1.1.2.2.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_LONG_PORT_USES_HXX_ #define _CALCIUM_LONG_PORT_USES_HXX_ #include #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_Long_Port_name[]; class calcium_long_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Long_Port, _repository_Calcium_Long_Port_name > { public : virtual ~calcium_long_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_port_factory.cxx000077500000000000000000000056461177004724000275050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_port_factory.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: calcium_port_factory.cxx,v 1.3.2.1.18.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "calcium_port_factory.hxx" #include "Superv_Component_i.hxx" calcium_port_factory::calcium_port_factory() { Superv_Component_i::register_factory("CALCIUM",this); } calcium_port_factory::~calcium_port_factory() {} provides_port * calcium_port_factory::create_data_servant(std::string type) { provides_port * rtn_port = NULL; if ( type == "integer") rtn_port = new calcium_integer_port_provides(); if ( type == "long") rtn_port = new calcium_long_port_provides(); if ( type == "intc") rtn_port = new calcium_intc_port_provides(); if ( type == "real") rtn_port = new calcium_real_port_provides(); if ( type == "double") rtn_port = new calcium_double_port_provides(); if ( type == "string") rtn_port = new calcium_string_port_provides(); if ( type == "logical") rtn_port = new calcium_logical_port_provides(); if ( type == "complex") rtn_port = new calcium_complex_port_provides(); return rtn_port; } uses_port * calcium_port_factory::create_data_proxy(std::string type) { uses_port * rtn_port = NULL; if ( type == "integer") rtn_port = new calcium_integer_port_uses(); if ( type == "long") rtn_port = new calcium_long_port_uses(); if ( type == "intc") rtn_port = new calcium_intc_port_uses(); if ( type == "real") rtn_port = new calcium_real_port_uses(); if ( type == "double") rtn_port = new calcium_double_port_uses(); if ( type == "string") rtn_port = new calcium_string_port_uses(); if ( type == "logical") rtn_port = new calcium_logical_port_uses(); if ( type == "complex") rtn_port = new calcium_complex_port_uses(); return rtn_port; } static calcium_port_factory myfactory; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_port_factory.hxx000077500000000000000000000040331177004724000274770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_port_factory.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 13:36:05 +0100 (jeu, 01 mar 2007) $ // Id : $Id: calcium_port_factory.hxx,v 1.3.2.1.18.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_PORT_FACTORY_HXX_ #define _CALCIUM_PORT_FACTORY_HXX_ #include "port_factory.hxx" #include "uses_port.hxx" #include "provides_port.hxx" #include #include "CalciumProvidesPort.hxx" #include "calcium_integer_port_uses.hxx" #include "calcium_long_port_uses.hxx" #include "calcium_intc_port_uses.hxx" #include "calcium_real_port_uses.hxx" #include "calcium_double_port_uses.hxx" #include "calcium_string_port_uses.hxx" #include "calcium_logical_port_uses.hxx" #include "calcium_complex_port_uses.hxx" class calcium_port_factory : public port_factory { public: calcium_port_factory(); virtual ~calcium_port_factory(); virtual provides_port * create_data_servant(std::string type); virtual uses_port * create_data_proxy(std::string type); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_provides_port.cxx000077500000000000000000000024551177004724000276640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (Wed, 28 Feb 2007) $ // Id : $Id: calcium_provides_port.cxx,v 1.3.32.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "calcium_provides_port.hxx" calcium_provides_port::calcium_provides_port() {} calcium_provides_port::~calcium_provides_port() {} salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_provides_port.hxx000077500000000000000000000052031177004724000276630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (Wed, 28 Feb 2007) $ // Id : $Id: calcium_provides_port.hxx,v 1.3.32.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_PROVIDES_PORT_HXX_ #define _CALCIUM_PROVIDES_PORT_HXX_ #include "provides_port.hxx" #include "CalciumTypes.hxx" class calcium_provides_port : public provides_port { public : typedef CalciumTypes::DependencyType DependencyType; typedef CalciumTypes::DateCalSchem DateCalSchem; typedef CalciumTypes::InterpolationSchem InterpolationSchem; typedef CalciumTypes::ExtrapolationSchem ExtrapolationSchem; typedef CalciumTypes::DisconnectDirective DisconnectDirective; calcium_provides_port(); virtual ~calcium_provides_port(); virtual void setDependencyType (DependencyType dependencyType) =0; virtual DependencyType getDependencyType () const =0; virtual void setStorageLevel (size_t storageLevel) =0; virtual size_t getStorageLevel () const =0; virtual void setDateCalSchem (DateCalSchem dateCalSchem) =0; virtual DateCalSchem getDateCalSchem () const =0; virtual void setAlpha(double alpha) =0; virtual double getAlpha() const =0; virtual void setDeltaT(double deltaT ) =0; virtual double getDeltaT() const =0; virtual void setInterpolationSchem (InterpolationSchem interpolationSchem) =0; virtual void setExtrapolationSchem (ExtrapolationSchem extrapolationSchem) =0; virtual InterpolationSchem getInterpolationSchem () const =0; virtual ExtrapolationSchem getExtrapolationSchem () const =0; virtual void calcium_erase (float t,long i, bool before) {}; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_real_port_uses.hxx000077500000000000000000000035741177004724000300230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_real_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_real_port_uses.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_REAL_PORT_USES_HXX_ #define _CALCIUM_REAL_PORT_USES_HXX_ #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_Real_Port_name[]; class calcium_real_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_Real_Port, _repository_Calcium_Real_Port_name > { public : virtual ~calcium_real_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_repository_types.cxx000077500000000000000000000044661177004724000304340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_repository_types.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: calcium_repository_types.cxx,v 1.3.2.1.18.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "calcium_integer_port_uses.hxx" #include "calcium_long_port_uses.hxx" #include "calcium_intc_port_uses.hxx" #include "calcium_real_port_uses.hxx" #include "calcium_double_port_uses.hxx" #include "calcium_complex_port_uses.hxx" #include "calcium_logical_port_uses.hxx" #include "calcium_string_port_uses.hxx" char _repository_Calcium_Integer_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Integer_Port:1.0"; char _repository_Calcium_Long_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Long_Port:1.0"; char _repository_Calcium_Intc_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Intc_Port:1.0"; char _repository_Calcium_Real_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Real_Port:1.0"; char _repository_Calcium_Double_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Double_Port:1.0"; char _repository_Calcium_Complex_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Complex_Port:1.0"; char _repository_Calcium_Logical_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_Logical_Port:1.0"; char _repository_Calcium_String_Port_name[]="IDL:Ports/Calcium_Ports/Calcium_String_Port:1.0"; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_string_port_uses.hxx000077500000000000000000000036101177004724000303750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_string_port_uses.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_string_port_uses.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_STRING_PORT_USES_HXX_ #define _CALCIUM_STRING_PORT_USES_HXX_ #include "Calcium_Ports.hh" #include "CalciumGenericUsesPort.hxx" extern char _repository_Calcium_String_Port_name[]; class calcium_string_port_uses : public virtual CalciumGenericUsesPort< seq_u_manipulation, Ports::Calcium_Ports::Calcium_String_Port, _repository_Calcium_String_Port_name > { public : virtual ~calcium_string_port_uses(); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_uses_port.cxx000077500000000000000000000025551177004724000270110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_uses_port.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_uses_port.cxx,v 1.3.32.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "calcium_uses_port.hxx" calcium_uses_port::calcium_uses_port() {} calcium_uses_port::~calcium_uses_port() {} salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calcium_uses_port.hxx000077500000000000000000000030041177004724000270040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium_uses_port.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: calcium_uses_port.hxx,v 1.3.32.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #ifndef _CALCIUM_USES_PORT_HXX_ #define _CALCIUM_USES_PORT_HXX_ #include "uses_port.hxx" class calcium_uses_port : public uses_port { public : calcium_uses_port(); virtual ~calcium_uses_port(); virtual void disconnect (bool provideLastGivenValue) {}; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calciumf.c000077500000000000000000000375021177004724000244740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include #include #include "fortoc.h" #include "calcium.h" #include "calciumf.h" #include "CalciumFortranInt.h" #include #ifdef __cplusplus extern "C" { #endif static void fstrtocstr(char *cstr, char *fstr,cal_int fstr_len) { cal_int i,iend; for (iend = fstr_len-1; iend >= 0; iend--) if (fstr[iend] != ' ') break; for (i = 0; i <= iend; i++) cstr[i] = fstr[i]; cstr[i] = '\0'; } static void cstrtofstr(char *cstr, char *fstr,cal_int fstr_len) { cal_int i, len; len = strlen(cstr); if (len > fstr_len) len = fstr_len; for (i = 0; i < len; i++) fstr[i] = cstr[i]; while (i < fstr_len) fstr[i++] = ' '; } static char * fstr1(char *nom,cal_int nnom) { char * cnom=(char*)malloc((nnom+1)*sizeof(char)); fstrtocstr(cnom,nom,nnom); return cnom; } static void free_str1(char *nom) { free(nom); } #define FLOAT_OK 0 #define POS_INFINITY 1 #define NEG_INFINITY 2 #define QUIET_NAN 3 #define SIGNALING_NAN 4 int CheckFloat(float* value) { unsigned long L1 = *(unsigned long*)value; unsigned long L2 = L1 & 0x7fffffff; if (L2 < 0x7f800000) return (FLOAT_OK); // Short circuit for most values if (L1 == 0x7f800000) return (POS_INFINITY); else if (L1 == 0xff800000) return (NEG_INFINITY); else if (L2 >= 0x7fc00000) return (QUIET_NAN); else if ((L2 >= 0x7f800001) && (L2 <= 0x7fbfffff)) return (SIGNALING_NAN); else return (FLOAT_OK); } /**********************************************/ /* INTERFACES DE DÉBUT ET DE FIN DE COUPLAGE */ /**********************************************/ void F_FUNC(cpcd,CPCD)(long *compo,STR_PSTR(nom),cal_int *info STR_PLEN(nom)); void F_FUNC(cpfin,CPFIN)(long *compo,cal_int *dep,cal_int *err); void F_FUNC(cpcd,CPCD)(long *compo,STR_PSTR(nom),cal_int *info STR_PLEN(nom)) { /* nom is OUT argument */ cp_cd((void *)*compo,STR_PTR(nom)); /* replace in place ??? */ cstrtofstr(STR_PTR(nom),STR_PTR(nom),STR_LEN(nom)); } void F_FUNC(cpfin,CPFIN)(long *compo,cal_int *dep,cal_int *err) { *err=cp_fin((void *)*compo,(int)*dep); } /**************************************/ /* ERASE INTERFACE */ /**************************************/ void F_FUNC(cpfini,CPFINI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom)); void F_FUNC(cpfint,CPFINT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom)); void F_FUNC(cpeffi,CPEFFI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom)); void F_FUNC(cpefft,CPEFFT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom)); void F_FUNC(cpfini,CPFINI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_fini((void *)*compo,cnom,*i); free_str1(cnom); } void F_FUNC(cpfint,CPFINT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_fint((void *)*compo,cnom,*t); free_str1(cnom); } void F_FUNC(cpeffi,CPEFFI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_effi((void *)*compo,cnom,*i); free_str1(cnom); } void F_FUNC(cpefft,CPEFFT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_efft((void *)*compo,cnom,*t); free_str1(cnom); } /**************************************/ /* INTERFACES DE LECTURE */ /**************************************/ void F_FUNC(cplin,CPLIN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpllg,CPLLG)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cplln,CPLLN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cplen,CPLEN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpllo,CPLLO)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpldb,CPLDB)(long *compo,cal_int *dep,double *ti,double *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, double *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cplre,CPLRE)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cplcp,CPLCP)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cplch,CPLCH)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, char *tab,cal_int *err STR_PLEN(nom) STR_PLEN(tab) ); void F_FUNC(cplin,CPLIN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); #if !SIZEOF_INT #error "The macro SIZEOF_INT must be defined." #elif SIZEOF_INT == 4 *err=cp_lin_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); #else fprintf(stderr,"End of CPLIN: %s : Can't use fortran INTEGER*4 because int C is not 32bits long on this machine.\n", cnom); #endif free_str1(cnom); } void F_FUNC(cpllg,CPLLG)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); #if !SIZEOF_LONG #error "The macro SIZEOF_LONG must be defined." #elif SIZEOF_LONG == 8 *err=cp_llg_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); #else fprintf(stderr,"End of CPLLG: %s : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n", cnom); #endif free_str1(cnom); } void F_FUNC(cplln,CPLLN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); #if !SIZEOF_LONG #error "The macro SIZEOF_LONG must be defined." #elif SIZEOF_LONG == 8 *err=cp_lln_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); #else fprintf(stderr,"End of CPLLN: %s : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n", cnom); #endif free_str1(cnom); } void F_FUNC(cplen,CPLEN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_len_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); free_str1(cnom); } void F_FUNC(cpllo,CPLLO)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_llo_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); free_str1(cnom); } void F_FUNC(cpldb,CPLDB)(long *compo,cal_int *dep,double *ti,double *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, double *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_ldb_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); free_str1(cnom); } void F_FUNC(cplre,CPLRE)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_lre_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); free_str1(cnom); } void F_FUNC(cplcp,CPLCP)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom)) { char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_lcp_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab); free_str1(cnom); } void F_FUNC(cplch,CPLCH)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom), cal_int *max,cal_int *n, char *tab,cal_int *err STR_PLEN(nom) STR_PLEN(tab) ) { char **tabChaine = NULL; cal_int index = 0; char* cnom = fstr1(STR_PTR(nom),STR_LEN(nom)); tabChaine = (char **) malloc(sizeof(char *) * (*max)); for (index = 0; index < *max; index++) tabChaine[index] = (char *) malloc(sizeof(char) * (STR_LEN(tab)+1)); *err=cp_lch_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tabChaine,STR_LEN(tab)); if (*err == CPOK ) { for (index = 0; index < *n; index++) { strncpy(&tab[index * STR_LEN(tab)], tabChaine[index], strlen(tabChaine[index])); if(STR_LEN(tab) > strlen(tabChaine[index])) memset(&tab[index * STR_LEN(tab)+strlen(tabChaine[index])],' ',STR_LEN(tab)-strlen(tabChaine[index])); } } if (tabChaine != (char **) NULL) { for (index = 0; index < *max; index++) free(tabChaine[index]); free(tabChaine); } free_str1(cnom); } /***************************/ /* INTERFACES D'ECRITURE */ /***************************/ void F_FUNC(cpech,CPECH)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, char *tab,cal_int *err STR_PLEN(nom) STR_PLEN(tab)); void F_FUNC(cpedb,CPEDB)(long *compo,cal_int *dep,double *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, double *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpere,CPERE)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpecp,CPECP)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpein,CPEIN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpelg,CPELG)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpeln,CPELN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpeen,CPEEN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpelo,CPELO)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom)); void F_FUNC(cpech,CPECH)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, char *tab,cal_int *err STR_PLEN(nom) STR_PLEN(tab)) { char ** tabChaine=NULL; cal_int index=0,index2=0; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); float tti=0.; if(*dep == CP_TEMPS)tti=*ti; tabChaine = (char **) malloc(sizeof(char *) * *n); for (index = 0; index < *n; index++) { tabChaine[index] = (char *) malloc(sizeof(char) * (STR_LEN(tab) + 1)); strncpy(tabChaine[index],&tab[STR_LEN(tab) * index],STR_LEN(tab)); tabChaine[index][STR_LEN(tab)]='\0'; for (index2 = STR_LEN(tab) - 1; index2 >= 0; index2--) { if ( tabChaine[index][index2] == ' ' || tabChaine[index][index2] == '\0' ) tabChaine[index][index2]='\0'; } } *err=cp_ech_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tabChaine,STR_LEN(tab) ); if (tabChaine != (char **) NULL) { for (index = 0; index < *n; index++) free(tabChaine[index]); free(tabChaine); } free_str1(cnom); } void F_FUNC(cpedb,CPEDB)(long *compo,cal_int *dep,double *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, double *tab,cal_int *err STR_PLEN(nom)) { double tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_edb_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); free_str1(cnom); } void F_FUNC(cpere,CPERE)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_ere_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); free_str1(cnom); } void F_FUNC(cpecp,CPECP)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_ecp_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); free_str1(cnom); } void F_FUNC(cpein,CPEIN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); #if !SIZEOF_INT #error "The macro SIZEOF_INT must be defined." #elif SIZEOF_INT == 4 *err=cp_ein_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); #else fprintf(stderr,"CPEIN: %s %f %d : Can't use fortran INTEGER*4 because int C is not 32bits long on this machine.\n", cnom, *ti,*iter); #endif free_str1(cnom); } void F_FUNC(cpelg,CPELG)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); #if !SIZEOF_LONG #error "The macro SIZEOF_LONG must be defined." #elif SIZEOF_LONG == 8 *err=cp_elg_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); #else fprintf(stderr,"CPELG: %s %f %d : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n", cnom, *ti,*iter); #endif free_str1(cnom); } void F_FUNC(cpeln,CPELN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); #if !SIZEOF_LONG #error "The macro SIZEOF_LONG must be defined." #elif SIZEOF_LONG == 8 *err=cp_eln_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); #else fprintf(stderr,"CPELN: %s %f %d : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n", cnom, *ti,*iter); #endif free_str1(cnom); } void F_FUNC(cpeen,CPEEN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_een_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); free_str1(cnom); } void F_FUNC(cpelo,CPELO)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom)) { float tti=0.; if(*dep == CP_TEMPS)tti=*ti; char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom)); *err=cp_elo_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab); free_str1(cnom); } #ifdef __cplusplus } #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/calciumf.h000077500000000000000000000071151177004724000244760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : calcium.h // Author : Eric Fayolle (EDF) // Module : KERNEL // /* Outils d'Aide au Couplage de Code de Calcul : $Id: calciumf.h,v 1.1.2.2.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ */ #ifndef __CALCIUMF_H #define __CALCIUMF_H #include "CalciumFortranInt.h" /*TODO CPCD... */ #define STAR * #define LCH_LAST_PARAM ,int strsize #define CALCIUM_ECR_INTERFACE_C_H(_name,_timeType,_calInt,_type,_typeName,_qual,lastarg) \ extern _calInt cp_##_name (void * component, _calInt mode, \ _timeType t, _calInt i, \ char * nomvar, _calInt nbelem, \ _type _qual * data \ lastarg ) ; \ CALCIUM_ECR_INTERFACE_C_H(een_fort_,float ,cal_int,cal_int,integer,,); CALCIUM_ECR_INTERFACE_C_H(elg_fort_,float ,cal_int,long ,long2integer,,); CALCIUM_ECR_INTERFACE_C_H(eln_fort_,float ,cal_int,long ,long,,); CALCIUM_ECR_INTERFACE_C_H(ein_fort_,float ,cal_int,int ,int2integer,,); CALCIUM_ECR_INTERFACE_C_H(ere_fort_,float ,cal_int,float ,float,,); CALCIUM_ECR_INTERFACE_C_H(edb_fort_,double,cal_int,double,double,,); CALCIUM_ECR_INTERFACE_C_H(elo_fort_,float ,cal_int,int ,bool,,); /*int pour bool ou cal_int */ CALCIUM_ECR_INTERFACE_C_H(ecp_fort_,float ,cal_int,float ,cplx,,); CALCIUM_ECR_INTERFACE_C_H(ech_fort_,float ,cal_int,char ,str,STAR,LCH_LAST_PARAM ); #define CALCIUM_LECT_INTERFACE_C_H(_name,_timeType,_calInt,_type,_typeName,_qual,lastarg) \ extern void cp_##_name##_free ( _type _qual * data); \ extern _calInt cp_##_name (void * component, _calInt mode, \ _timeType * ti, _timeType * tf, _calInt * i, \ char * nomvar, _calInt bufferLength, \ _calInt * nRead, _type _qual * data \ lastarg ) ; \ \ CALCIUM_LECT_INTERFACE_C_H(len_fort_,float ,cal_int,cal_int ,integer,,); CALCIUM_LECT_INTERFACE_C_H(llg_fort_,float ,cal_int,long ,long2integer,,); CALCIUM_LECT_INTERFACE_C_H(lln_fort_,float ,cal_int,long ,long,,); CALCIUM_LECT_INTERFACE_C_H(lin_fort_,float ,cal_int,int ,int2integer,,); CALCIUM_LECT_INTERFACE_C_H(lre_fort_,float ,cal_int,float ,float,,); CALCIUM_LECT_INTERFACE_C_H(ldb_fort_,double,cal_int,double ,double,,); CALCIUM_LECT_INTERFACE_C_H(llo_fort_,float ,cal_int,int ,bool,,); /*int pour bool ou cal_int */ CALCIUM_LECT_INTERFACE_C_H(lcp_fort_,float ,cal_int,float ,cplx,,); CALCIUM_LECT_INTERFACE_C_H(lch_fort_,float ,cal_int,char ,str,STAR, LCH_LAST_PARAM ); #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/fortoc.h000077500000000000000000000026261177004724000242110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef FORTRAN_H #define FORTRAN_H /* Operateur de concatenation */ #define _(A,B) A##B #ifdef __linux #define F_FUNC(lname,uname) _(lname,_) /* Fortran function name */ #define F_CALL(lname,uname) _(lname,_) /* Fortran function call */ #define STR_PSTR(str) char *str /* fortran string arg pointer */ #define STR_PLEN(str) , int _(Len,str) /* fortran string arg length */ #define STR_PTR(str) str /* fortran string pointer */ #define STR_LEN(str) _(Len,str) /* fortran string length */ #endif #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/test_DataIdContainer.cxx000077500000000000000000000100651177004724000273140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : test_DataIdContainer.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-03-01 15:07:46 +0100 (jeu, 01 mar 2007) $ // Id : $Id: test_DataIdContainer.cxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ // #include "CalciumCouplingPolicy.hxx" #include "CalciumProvidesPort.hxx" #include "CalciumException.hxx" using namespace CalciumTypes; class TEST1 : public CalciumCouplingPolicy { public: int ret; TEST1() { ret=0; CORBA::Long time=1,tag=1; typedef CalciumCouplingPolicy::DataIdContainer DataIdContainer; typedef CalciumCouplingPolicy::DataId DataId; DataId dataId(time,tag); //potentiellement avec un troisième paramètre try { DataIdContainer dataIds(dataId,*this); DataIdContainer::iterator dataIdIt = dataIds.begin(); if (!dataIds.empty()) for (;dataIdIt != dataIds.end();++dataIdIt) { std::cout << "(*dataIdIt) must be equal to given dataId parameter : " << *dataIdIt; std::cout << " == " << dataId << " : " << (ret = (*dataIdIt == dataId)) << std::endl; } } catch(const CalciumException & ex) { ret=1; std::cout << ex.what() << std::endl; } } }; class TEST2 : public CalciumCouplingPolicy { public: int ret; TEST2() { // Doit filtrer le mode de dépendance temporel car le mode est // défini itératif ret=0; CORBA::Long time=1,tag=1; typedef CalciumCouplingPolicy::DataIdContainer DataIdContainer; typedef CalciumCouplingPolicy::DataId DataId; DataId dataId(time,tag); //potentiellement avec un troisième paramètre setDependencyType(ITERATION_DEPENDENCY); DataIdContainer dataIds(dataId,*this); DataIdContainer::iterator dataIdIt = dataIds.begin(); if (!dataIds.empty()) for (;dataIdIt != dataIds.end();++dataIdIt) { std::cout << "(*dataIdIt) must be equal to given dataId parameter : " << *dataIdIt ; std::cout << " == " << DataId(0,tag) << " : " << (ret = (*dataIdIt == DataId(0,tag))) << std::endl; } } }; class TEST3 : public CalciumCouplingPolicy { public: int ret; TEST3() { // Doit filtrer le mode de dépendance temporel car le mode est // défini itératif ret=0; CORBA::Long time=1,tag=1; typedef CalciumCouplingPolicy::DataIdContainer DataIdContainer; typedef CalciumCouplingPolicy::DataId DataId; DataId dataId(time,tag); //potentiellement avec un troisième paramètre setDependencyType(TIME_DEPENDENCY); DataIdContainer dataIds(dataId,*this); DataIdContainer::iterator dataIdIt = dataIds.begin(); if (!dataIds.empty()) for (;dataIdIt != dataIds.end();++dataIdIt) { std::cout << "(*dataIdIt) must be equal to given dataId parameter : " << *dataIdIt ; std::cout << " == " << DataId(time,0) << " : " << (ret = (*dataIdIt == DataId(time,0))) << std::endl; } } }; int main() { TEST1 test1; TEST2 test2; TEST3 test3; return !test1.ret+!test2.ret+!test3.ret; }; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Calcium/version.h000077500000000000000000000027541177004724000244040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : version.h // Author : Eric Fayolle (EDF) // Module : KERNEL // /* Outils d'Aide au Couplage de Code de Calcul : $Id: version.h,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:07 vsr Exp $ */ #ifndef __VERSION_H #define __VERSION_H /* Constantes servant a memoriser les repertoires des versions */ /* de CALCIUM et de PVM ayant servi a la generation d'un */ /* executable */ #define ACCC_REP "/home/fayolle/CALCIUM3.0" #define PVM_REP "/home/fayolle/pvm3" #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/ConstTraits.hxx000077500000000000000000000027041177004724000241720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : ConstTraits.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: ConstTraits.hxx,v 1.3.32.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _CONST_TRAITS_HXX_ #define _CONST_TRAITS_HXX_ template < typename T > struct ConstTrait { typedef T NonConstType; }; template < typename T > struct ConstTrait < const T > { typedef T NonConstType; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/CorbaTypeManipulator.hxx000077500000000000000000000430451177004724000260240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CorbaTypeManipulator.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-07 18:26:44 +0100 (mer, 07 fév 2007) $ // Id : $Id: CorbaTypeManipulator.hxx,v 1.3.2.2.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _CORBA_TYPE_MANIPULATION_HXX_ #define _CORBA_TYPE_MANIPULATION_HXX_ #include #include #include //#define MYDEBUG // Classes manipulation // ------------------- // // Ces différentes classes permettent d'unifier la manipulation des // différents types de données dans un port datastream // Les données sont maniées par valeur ou par pointeur // pour éviter les recopies de gros volume de données // Les classes présentes quatre méthodes : // - clone // - get_data // - delete_data // - dump // et // trois types : // - Type : Le type CORBA de la donnée manipulée // - InType : Le mapping CORBA pour un paramètre IN du type manipulé // - InnerType : Type interne des valeurs d'un type contenant // Cette classe permet de manipuler des types CORBA // any, struct, union et sequence (utiliser plutôt les seq_manipulator) // Ces types sont manipulés par pointeur. // Les données reçues de CORBA sont systématiquement // dupliquées pour être conservées. // Quelque soit le type de donnée, les données sont considérées // comme une donnée unique (retour de size() == 1) template class user_type_manipulation { public: typedef T * Type; // correspond au mapping corba des type any, struct, // union, séquence en paramètre IN typedef const T & CorbaInType; typedef T InnerType; // Operation de recuperation des donnees venant de l'ORB et // creation d'une copie (memoire spécialement allouee) static inline Type get_data(CorbaInType data) { return new T(data); } // Pb si ownerShip == True car appel par l'utilisateur de relPointer ! static inline InnerType * const getPointer(Type data, bool ownerShip = false) { return data; } static inline void relPointer(InnerType * dataPtr) { delete dataPtr; } // Operation de clonage : par defaut, creation d'une copie en memoire allouee pour l'occasion static inline Type clone(Type data) { return new T (* data); } static inline Type clone(CorbaInType data) { return new T (data); } // Operation de création static inline Type create (size_t size=1) { return new T(); } // Operation de destruction d'une donnee static inline void delete_data(Type data) { delete data; } // Renvoie la taille de la donnée static inline size_t size(Type data) { return 1; } // Dump de l'objet pour deboguage: neant car on ne connait pas sa structure static inline void dump (CorbaInType data) {} }; // Gére les types CORBA atomiques ('Int', 'Char', 'Float', ...) // Gére les types enums // Gére les références d'objets CORBA // Ces types sont manipulés par valeur // Les méthodes getPointer ... ne devrait pas être utilisée // pour ce types de données template class atom_manipulation { public: typedef T Type; // correspond au mapping corba des types simples en paramètre IN typedef T CorbaInType; typedef T InnerType; // Operation de recuperation des donnees venant de l'ORB : une copie par affectation simple static inline Type get_data(CorbaInType data) { return data; } static inline InnerType * const getPointer(Type & data, bool getOwnerShip = false) { // InnerType * ptr; // if (getOwnerShip) { // ptr =new InnerType[1];*ptr=data; // return ptr; // } else // return &data; return &data; } // static inline void relPointer(InnerType * dataPtr) { // return; // delete[] dataPtr; // } // Je ne sais pas comment l'implémenter sans faire // d'allocation heap //static inline InnerType * allocPointer(size_t size=1) { // return new InnerType[1]; //} // Operation de clonage : une copie par affectation simple static inline Type clone(Type data) { return data; } // Inutile car Type == CorbaInType // static inline Type clone(CorbaInType data) { // return data; // } // Operation de création // static inline Type create(size_t size=1,InnerType * data=NULL, // bool giveOwnerShip=false) { // Type dummy; // if (dataPtr) // return *data; // else // return dummy; // } // Operation de destruction d'une donnee: rien a faire car pas de memoire a liberer static inline void delete_data(Type data) {} // Renvoie la taille de la donnée static inline size_t size(Type data) { return 1; } // Dump de l'objet pour deboguage : Affiche la donnee static void inline dump (CorbaInType data) { std::cerr << "[atom_manipulation] Data : " << data << std::endl; } }; // Gére un type sequence de taille illimitee (Unbounded) // Ces types sont manipulés par pointeur template class seq_u_manipulation { public: typedef seq_T * Type; // Type de donnée abstrait manipulé par GenericPort::Put,Get,.. typedef const seq_T & CorbaInType; // Mapping corba de la séquence en paramètre IN typedef elem_T InnerType; // Il n'existe pas dans CORBA de seq_T::elem_T // C'est la raison d'être du second paramètre template de seq_u_mani // Operation de recuperation des donnees venant de l'ORB // Remarque : On a un paramètre d'entrée de type const seq_T & // et en sortie un seq_T * static inline Type get_data(CorbaInType data) { CORBA::Long len = data.length(); CORBA::Long max = data.maximum(); // Récupère et devient propriétaire des données reçues dans la séquence. // La séquence reçue (mais pas le buffer) sera désallouée au retour // de la méthode CORBA qui a reçu le type CorbaInType en paramètre // (ex: GenericPort::put) // REM : Le mapping CORBA du type séquence IN est : const seq & // OLD : On ne teste pas si le flag release de la séquence est à true ou false // OLD : ( pour des séquences de chaines ou d'objrefs ) // OLD : -> Si on est collocalisé le port uses doit créer une copie pour éviter la modification // OLD : du contenu de la séquence lorsque l'utilisateur modifie ses données dans son programme (0 copie) // OLD : ATTENTION TESTER p194 si le pointeur est null (release flag==false) // OLD : -> La séquence n'était pas propriétaire des données ! // Le flag release() de la séquence est à false si elle n'est pas propriétaire du buffer // En collocalité release() renvoie false car // l'appelé n'est pas propriétaire de la séquence. On effectue alors // une copie pour éviter de perturber les structures de données de l'appelant. // En non collocalisé on recrée une séquence avec le buffer de la première dont on // a demandé la propriété. #ifdef MYDEBUG std::cout << "----seq_u_manipulation::get_data(..)-- MARK 1 ------------------" << std::endl; #endif if ( data.release() ) { InnerType * p_data = const_cast(data).get_buffer(true); // Crée une nouvelle sequence propriétaire des données du buffer (pas de recopie) // Les données de la nouvelle séquence seront automatiquement désallouées // par appel à la méthode freebuf dans le destructeur de la séquence (cf delete_data). #ifdef MYDEBUG std::cout << "----seq_u_manipulation::get_data(..)-- MARK 1(0 copy) bis ------"<< p_data <<"------------" << std::endl; #endif return new seq_T (max, len, p_data, true); } #ifdef MYDEBUG std::cout << "----seq_u_manipulation::get_data(..)-- MARK 1(recopie) bis ------"<< &data <<"------------" << std::endl; #endif // Crée une nouvelle sequence propriétaire des données du buffer (avec recopie) return new seq_T(data); } static inline size_t size(Type data) { return data->length(); } // Operation de destruction d'une donnee static inline void delete_data(Type data) { //La séquence est détruite par appel à son destructeur //Ce destructeur prend en compte la nécessité de détruire ou non //les données contenues en fonction de son flag interne release() delete data; } // Operation de clonage : par defaut creation d'une copie en memoire allouee pour l'occasion // Utilisation du constructeur du type seq_T static inline Type clone(Type data) { return new seq_T (*data) ; } static inline Type clone(CorbaInType data) { return new seq_T (data); } // Permet d'obtenir un pointeur sur le buffer de la séquence : // Si ownerShip=True, la séquence n'est plus propriétaire du buffer // (son pointeur de buffer interne est aussi réinitialisé) // On détruit également explicitement la séquence (mais pas le buffer !) // Si ownerShip=False, la séquence reste propriétaire du buffer // et l'utilisateur devra appeler delete_data sur la séquence contenante pour // détruire à la fois la séquence et le buffer contenu. static inline InnerType * const getPointer(Type data, bool ownerShip = false) { InnerType * p_data; if (ownerShip) { p_data = data->get_buffer(true); delete_data(data); } else p_data = data->get_buffer(false); return p_data; } // Permet de désallouer le buffer dont on détient le pointeur après appel // à la méthode getPointer avec ownerShip=True static inline void relPointer(InnerType * dataPtr) { seq_T::freebuf(dataPtr); } // Permet d'allouer un buffer compatible avec le type séquence static inline InnerType * allocPointer(size_t size ) { return seq_T::allocbuf(size); } // Opération de création de la séquence CORBA soit // - Vide et de taille size // - Utilisant les données du pointeur *data de taille size // (généralement pas de recopie qlq soit l'ownership ) // data doit avoir été alloué par allocPointer si giveOwnerShip = true static inline Type create(size_t size, InnerType * const data = NULL, bool giveOwnerShip = false ) { Type tmp; if (!data) { tmp = new seq_T(); tmp->length(size); } else { tmp = new seq_T(size,size,data,giveOwnerShip); } return tmp; } // Copie le contenu de la séquence dans le buffer idata de taille isize // pour les types non pointeur template static inline void copy( Type data, T * const idata, size_t isize ) { InnerType *dataPtr = getPointer(data,false); for (int i = 0; i< isize; ++i) idata[i]=dataPtr[i]; // Le mode de recopie suivant ne permet pas la conversion de type (ex int -> CORBA::Long) //OLD: Type tmp = new seq_T(isize,isize,idata,false); //OLD: // giveOwnerShip == false -> seul le contenu du buffer data est détruit et remplacé //OLD: // par celui de data dans l'affectation suivante : //OLD: // ---> ATTENTION SI LA TAILLE DU BUFFER EST TROP PETITE, QUE FAIT CORBA ! //OLD: // corruption mémoire //OLD: // Cependant ce cas devrait pas arrivé (on s'assure dans les couches supérieures //OLD: // de la taille correcte du buffer de recopie) //OLD: // Si giveOwnerShip était == true -> le buffer et son contenu serait détruit puis une //OLD: // allocation de la taille du buffer de data serait effectué avant la copie des données //OLD: // tmp = data; } // Copie le contenu de la séquence de char* dans le buffer idata de taille isize // La généralisation de la recopie profonde est difficile du fait que CORBA ne renvoie pas // pas des objets de haut niveau de type std::vector (avec des interfaces d'accès identiques) // mais un type simple C comme char *Tab[N]. On doit alors utiliser une méthode de recopie spécifique // comme l'appel C strcpy. static inline void copy( Type data, char* * const idata, size_t isize ) { char* *dataPtr = getPointer(data,false); // Si idata[i] n'a pas été alloué suffisament grand, // il y a corruption de la mémoire for (int i = 0; i< isize; ++i) strcpy(idata[i],dataPtr[i]); } // Dump de l'objet pour deboguage static void inline dump (CorbaInType data) { // Affiche la longueur des donnees std::cerr << "[seq_u_manipulation] Data length: " << data.length() << std::endl; // Affiche la longueur des donnees std::cerr << "[seq_u_manipulation] Data max: " << data.maximum() << std::endl; } }; // TODO : Vérifier la conformité de l'implémentation par rapport // au type unbounded // Gére un type sequence de taille limitée (bounded) // Ces types sont manipulés par pointeur // Cette classe diffère de la seq_u_manipulation // par la signature du constructeur de la séquence // utilisé dans le methode get_data template class seq_b_manipulation { public: typedef seq_T * Type; typedef const seq_T & CorbaInType; typedef elem_T InnerType; // Operation de recuperation des donnees venant de l'ORB // Sans opération de notre part, ces données seraient perdues // au retour de la méthode put de GenericPort. // Remarque : On a un paramètre d'entrée de type const seq_T & // et en sortie un seq_T * static inline Type get_data(CorbaInType data) { CORBA::Long len = data.length(); // Récupère et devient propriétaire des données reçues dans la séquence // la séquence sera désalloué (mais pas le buffer) // au retour de la méthode put (car mapping de type IN : const seq & ) if ( data.release() ) { InnerType * p_data = const_cast(data).get_buffer(true); // Crée une nouvelle sequence propriétaire des données du buffer (généralement pas de recopie) // Les données seront automatiquement désallouées par appel interne à la méthode freebuf // lors de la destruction de l'objet par appel à delete_data. #ifdef MYDEBUG std::cout << "----seq_u_manipulation::get_data(..)-- MARK 1bis Pas de Duplication -----------" << std::endl; #endif return new seq_T (len, p_data, true); } #ifdef MYDEBUG std::cout << "----seq_u_manipulation::get_data(..)-- MARK 1bis Duplication pour en devenir propriétaire -----------" << std::endl; #endif // Crée une nouvelle sequence propriétaire des données du buffer (avec recopie) return new seq_T(data); } static inline size_t size(Type data) { return data->length(); } // Operation de clonage : par defaut creation d'une copie en memoire allouee pour l'occasion // Utilisation du constructeur du type seq_T static inline Type clone(Type data) { return new seq_T (* data); } static inline Type clone(CorbaInType data) { return new seq_T (data); } // Operation de destruction d'une donnee CORBA static inline void delete_data(Type data) { delete data; } // Permet d'obtenir un pointeur sur le buffer de la séquence : // Si ownerShip=True, la séquence n'est plus propriétaire du buffer // (son pointeur de buffer interne est aussi réinitialisé) // On détruit également explicitement la séquence (mais pas le buffer !) // Si ownerShip=False, la séquence reste propriétaire du buffer // et l'utilisateur devra appeler delete_data sur la séquence contenante pour // détruire à la fois la séquence et le buffer contenu. static inline InnerType * const getPointer(Type data, bool getOwnerShip = false) { InnerType * p_data; if (getOwnerShip) { p_data = data->get_buffer(true); delete_data(data); } else p_data = data->get_buffer(false); return p_data; } // Permet de désallouer le buffer dont on détient le pointeur par appel // à la méthode getPointer avec ownerShip=True si la séquence contenante // à été détruite. static inline void relPointer(InnerType * dataPtr) { seq_T::freebuf(dataPtr); } // Permet d'allouer un buffer pour la séquence static inline InnerType * allocPointer(size_t size ) { return seq_T::allocbuf(size); } // Operation de création du type corba soit // - Vide et de taille size // - Utilisant les données du pointeur *data de taille size // (généralement pas de recopie qlq soit l'ownership ) // data doit avoir été alloué par allocPointer si giveOwnerShip = true static inline Type create(size_t size, InnerType * const data = NULL, bool giveOwnerShip = false ) { Type tmp; if (!data) { tmp = new seq_T(); tmp->length(size); } else { tmp = new seq_T(size,data,giveOwnerShip); } return tmp; } // Dump de l'objet pour deboguage static inline void dump (CorbaInType data) { // Affiche la longueur des donnees std::cerr << "[seq_b_manipulation] Data length: " << data.length() << std::endl; } }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/CouplingPolicy.hxx000077500000000000000000000155041177004724000246570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : CouplingPolicy.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: CouplingPolicy.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _COUPLING_POLICY_HXX_ #define _COUPLING_POLICY_HXX_ #include "IteratorTraits.hxx" #include "FindKeyPredicate.hxx" #include #include #include // La politique de couplage doit définir // 1) le type DataId qui identifie une instance de données // 2) Un container de DataId appelé DataIdContainer et son itérateur // 3) Un constructeur de DataIdContainer qui initialise le container à partir d'un DataId ////////// Le DataId ////////////// // COUPLING_POLICY::DataId // est construit par DataId(T1 time,T2 tag) // // COUPLING_POLICY::DataIdContainer // qui défini // les types : DataIdContainer::iterator // les méthodes : begin(), end(), empty() // COUPLING_POLICY::DataIdContainer::iterator // qui défini // les méthodes : != , == , ++() , ()++, *(), = // COUPLING_POLICY::DataTable // std::map< DataId, DataType> DataTable; // Définir void COUPLING_POLICY::DataIdContainer(const DataId &, CouplingPolicy & ) // qui initialise le container à partir d'un DataId // Opérateur d'affichage d'un dataId (les types doivent être affichables) class CouplingPolicy { public: // Renvoie isEqual si le dataId attendu est trouvé dans storedDataIds : // - l'itérateur wDataIt1 pointe alors sur ce dataId // Cette méthode doit être redéfini dans le mode de couplage s'il veut gérer // le cas d'un dataId damandé non trouvé mais encadrable // par deux autres dataIds. La méthode renvoie alors isBounded== true et : // - l'itérateur wDataIt1 doit être tel que : // wDataIt1->first < wdataId < (wDataIt1+1)->first template < typename Container > bool isDataIdConveniant(Container & storedDatas, const typename Container::key_type & expectedDataId, bool & isEqual , bool & isBounded, typename Container::iterator & wDataIt1 ) const { typedef typename Container::key_type key_type; typedef typename Container::value_type value_type; typedef typename Container::iterator iterator; isBounded = false; FindKeyPredicate fkp(expectedDataId); wDataIt1 = std::find_if(storedDatas.begin(),storedDatas.end(),fkp); isEqual = (wDataIt1 != storedDatas.end()); std::cout << "-------- Generic isDataIdConvenient : isEqual : " << isEqual << " , isBounded " << isBounded << std::endl; return isEqual || isBounded; } // Méthode Vide déclarée ici pour définir son nom dans GenericPort // Elle profite à tous les modes de couplages n'implémentant pas // de comportement particulier dans la méthode get pour // le cas d'une demande de dataId inexistant mais encadré par deux autres template struct BoundedDataIdProcessor{ BoundedDataIdProcessor(const CouplingPolicy & couplingPolicy) {}; template < typename Iterator, typename DataId > void inline apply(typename iterator_t::value_type & data, const DataId & dataId, const Iterator & it1) const { typedef typename iterator_t::value_type value_type; std::cout << "-------- Generic BoundedDataIdProcessor.apply() called " << std::endl; } }; // Supprime un DataId et ses données associées // du container // Cette méthode utilisée dans GenericPort::Get // peut être surchargée pour par exemple // conserver un historique. template struct EraseDataIdProcessor { EraseDataIdProcessor(CouplingPolicy couplingPolicy) {}; template < typename Container > void apply(Container & storedDatas, typename Container::iterator & wDataIt1 ) const { typedef typename Container::key_type key_type; typedef typename Container::value_type value_type; typedef typename Container::iterator iterator; std::cout << "-------- Generic eraseDataId called " << std::endl; } }; // Lorsque cette méthode est appelée l'expectedDataId n'a pas été trouvé // et n'est pas non plus encadrée (en mode temporel) // Si l'on effectue pas de traitement particulier la méthode renvoie false // Si le port a reçu une directive STOP une exception est levée // Si le port a reçu une directive CONTINUE, on localise l'expected template < typename DataManipulator > struct DisconnectProcessor { DisconnectProcessor(const CouplingPolicy & couplingPolicy) {}; template < typename Container, typename DataId > bool apply(Container & storedDatas, const DataId & expectedDataId, typename Container::iterator & wDataIt1 ) const { typedef typename Container::key_type key_type; typedef typename Container::value_type value_type; typedef typename Container::iterator iterator; std::cout << "-------- Generic DisconnectProcessor called " << std::endl; return true; } }; // Remove all DataId from a container before a given time or tag template struct EraseDataIdBeforeOrAfterTagProcessor { EraseDataIdBeforeOrAfterTagProcessor(CouplingPolicy couplingPolicy) {}; template < typename Container , typename TimeType , typename TagType > void apply(Container & storedDatas, TimeType time, TagType tag, bool before ) const { typedef typename Container::key_type key_type; typedef typename Container::value_type value_type; typedef typename Container::iterator iterator; } }; // Permet de réveiller les méthodes d'un GenericPort en attente // depuis une CouplingPolicy virtual void wakeupWaiting(){}; virtual ~CouplingPolicy() {} }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/DataIdFilter.hxx000077500000000000000000000335521177004724000242160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DataIdFilter.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // /* Module Filtre * ------------- * * Implemente les fonctions de filtrage et conversion d'un port de DATASTREAM * * Rappel des fonctions du Filtrage: * -------------------------------- * * Dans une communication de type DATASTREAM, le destinataire indique à l'avance la liste * des instances qu'il veut recevoir, c'est à dire celles qui lui sont nécessaires. * Il indique pour cela la liste des 'times' et la liste des 'tags' qui * caractérisent les instances désirées. * Ces deux listes sont indépendantes. Toute instance dont les paramètres 'time' et * 'tag' figurent dans la liste des 'times' et respectivement dans la liste des * 'tags' est désirée par le destinataire. * Par la suite, une telle instance sera acceptée par le port-DATASTREAM. Les autres * seront rejetées. * * Le filtrage consiste à limiter les valeurs possibles du paramètre TIME ou TAG (un * entier). La liste des valeurs possibles est décrite sous la forme d'une liste de * valeurs ou de séquences arithmétiques de valeurs. * Exemple: * La liste 1; 3; 30:34; 40:50:2 autorise les valeurs 1 et 3 et toutes les valeurs * comprises entre 30 et 34 inclus et toutes les valeurs de la séquence 40 à 50 * inclus par pas de 2, c'est à dire 40, 42, ... 50. * On appelle règle élémentaire de filtrage celle spécifiant un élément de la liste * des valeurs autorisées: soit une seule valeur, soit une séquence de valeurs. Une * séquence de valeurs est spécifiée par sa valeur de départ, sa valeur de fin et * son pas. Le filtrage est donc défini par une suite de règles de filtrage. * La fonction élémentaire de configuration du filtrage sert à spécifier une règle * de filtrage. * * Rappels des fonctions de conversion: * ----------------------------------- * * La conversion est intimement liée au filtrage car seules les valeurs passant le * filtre sont converties. La conversion n'est pas obligatoire. Une valeur de TIME ou TAG * entrante peut ne pas être convertie. Elle garde alors sa valeur et est gardée * telle quelle pour l'objet destinataire. * DATASTREAM peut associer une règle de conversion à chaque règle élémentaire de * filtrage. * La conversion consiste à changer: * - un valeur de TIME ou TAG en une valeur différente * - une séquence de valeurs en une autre séquence de valeurs de même taille * (ex: 30:40 en 300:400:10) * Mais la conversion permet aussi de transformer: * - une valeur de TIME ou TAG unique en une séquence de valeurs (les données entrantes sont * alors duppliquées et à chaque fois que l'objet destinataire réclame une donnée * de la séquence, il reçoit en fait une copie de la donnée reçue une seule fois) * * - une séquence de valeurs en une valeur unique (alors, chaque donnée entrante * associée à un TIME ou TAG de la séquence correspond à une donnée unique pour le * destinataire: seule la dernière reçue est la donnée valide) * */ #include #include // Pour l'utilisation de "vector" de la STL // Classe filtre_elementaire // // Implémente une structure de donnée décrivant un filtre élémentaire // sur le paramètre TIME ou TAG; c'est // - soit une valeur entière unique // - soit une séquence arithmétique de valeurs // class filtre_elementaire { public: int len; // Longueur de séquence ou 1 pour une valeur unique int debut; // Début de la séquence ou valeur pour une valeur unique int fin; // Fin de la séquence int pas; // Pas de la séquence // Constructeur par défaut filtre_elementaire() {} // Création d'un filtre élémentaire pour une valeur unique filtre_elementaire(int valeur) { this->len = 1; this->debut = valeur; } // Création d'un filtre élémentaire pour une séquence de valeurs entières // Le pas par défaut est 1 filtre_elementaire (int _debut, int _fin, int _pas=1) { this->debut = _debut; this->len = (_fin - _debut) / _pas; if (this->len > 0) { this->fin = _debut + _pas * this->len; // Calcule la vrai borne de fin this->pas = _pas; this->len += 1; // Compte les bornes et non les intervalles } else // erreur de spécification: on ne prend que la première valeur this->len = 1; } // Constructeur par copie filtre_elementaire (filtre_elementaire &_f) { this->len = _f.len; this->debut = _f.debut; this->fin = _f.fin; this->pas = _f.pas; } }; // Classe filtre_conversion // // Implémente le filtrage et la conversion du paramètre TIME ou TAG // des données reçues par un port DATASTREAM. // // Mode d'emploi: // 1) Création d'un objet // 2) Configuration de cet objet par passage de paramètres // de filtage et de conversion // 3) A la création d'un port DATASTREAM, on passe au constructeur // deux objets 'filtre_conversion', l'un pour le TIME, l'autre pour le TAG. // 4) A l'utilisation du port DATASTREAM, celui-ci appelle la méthode // "applique_filtre_conversion" pour opérer // class filtre_conversion { private: // Structure de données décrivant une conversion élémentaire: // un filtre élementaire // et un pointeur éventuel vers les paramètres de conversion associés class conversion_elementaire { public : // Data filtre_elementaire filtre; filtre_elementaire * p_convers; // Constructeur conversion_elementaire() {} // Constructeur par copie d'un objet non modifie (const) conversion_elementaire (const conversion_elementaire& _ce) { *this = _ce; } // Remarque: le Constructeur par copie d'un objet existe par defaut mais sans le modificateur 'const' // et l'emploi d'un objet comme element dans un vecteur oblige d'avoir un tel const-copy-constructor. }; // Données de configuration de filtrage et conversion: // une table de filtres élémentaires // avec leurs données de conversion associées éventuelles std::vector config; public: // Constructeur: juste une allocation mémoire initiale filtre_conversion() {} // Destructeur: // réclamer la mémoire utilisée par tous les éléments du vecteur config ~filtre_conversion() { std::vector::iterator i; for (i = this->config.begin(); i != this->config.end(); i ++) { delete (*i).p_convers; } } // Configuration partielle par ajout d'un filtre élémentaire bool config_elementaire (filtre_elementaire& _f) { // cout << "ajout config_elementaire 1 " << this << endl; conversion_elementaire conv_elem; conv_elem.filtre = _f; conv_elem.p_convers = NULL; // Ajoute cette conversion/filtrage elementaire a la liste this->config.push_back (conv_elem); // vector::iterator i; // cout << "liste apres ajout:" << endl; // for (i = this->config.begin(); i != this->config.end(); i ++) // { // cout << "config elem " << endl; // cout << "filtre: len, debut, fin, pas " << (*i).filtre.len << " " << (*i).filtre.debut << " " << (*i).filtre.fin << " " << (*i).filtre.pas << endl; // } return true; } // Configuration partielle par ajout d'un filtre élémentaire // et sa conversion associée // // Retourne false si les param de conversion sont incompatibles avec le filtre élémentaire. // La configuration partielle est alors refusée. // bool config_elementaire (filtre_elementaire& _f, filtre_elementaire& _conv) { // cout << "ajout config_elementaire 2 " << this << endl; if (_f.len == 1 || _conv.len == 1 || _f.len == _conv.len) { conversion_elementaire conv_elem; conv_elem.filtre = _f; conv_elem.p_convers = new filtre_elementaire(_conv); // Ajoute cette conversion/filtrage elementaire a la liste this->config.push_back (conv_elem); // vector::iterator i; // cout << "liste apres ajout:" << endl; // for (i = this->config.begin(); i != this->config.end(); i ++) // { // cout << "config elem " << endl; // cout << "filtre: len, debut, fin, pas " << (*i).filtre.len << " " << (*i).filtre.debut << " " << (*i).filtre.fin << " " << (*i).filtre.pas << endl; // } return true; } else { // Filtre et conversion incompatibles return false; } } // applique_filtre_conversion: Opération du filtre et de la conversion template T applique_filtre_conversion (T valeur_initiale, std::vector& liste_conversions) const; }; // filtre_conversion::applique_filtre_conversion: Opération du filtre et de la conversion // // Etant donné une valeur entière (de TIME ou de TAG), cette méthode détermine : // - si cette valeur passe le filtre // - dans le cas où une conversion existe, la liste des valeurs de conversion // qui correspondent à la valeur initiale // // Dans tous les cas, cette méthode retourne une liste de valeurs. // Dans le cas où il n'y a pas de conversion, cette liste a une longueur 1 // et ne contient que la valeur initiale. // // Paramètre d'entrée : la valeur initiale (integer) // // Paramètre de sortie : la liste des valeurs après conversion (vector) // // Valeur de retour : la longueur de la liste // si cette longueur est 0, c'est que la valeur initiale ne passe pas le filtre // template T filtre_conversion::applique_filtre_conversion (T valeur_initiale, std::vector& liste_conversions) const { // Part d'une liste vierge liste_conversions.clear(); // cout << "config applique_filtre_conversion " << this << endl; // Balaye tous les éléments de configuration // et cherche pour chacun d'eux si la valeur initiale est présente parmi les valeurs filtrées // Pour tous les éléments de configuration du filtrage/conversion std::vector::const_iterator i; for (i = config.begin(); i != config.end(); i ++) { // cout << "config elem " << endl; // cout << "filtre: len, debut, fin, pas " << (*i).filtre.len << " " << (*i).filtre.debut << " " << (*i).filtre.fin << " " << (*i).filtre.pas << endl; bool si_passe_filtre = false; // Si la longueur du filtre est 1 if ((*i).filtre.len == 1) { // Si la valeur initiale correspond à la valeur du filtre if ((*i).filtre.debut == valeur_initiale) si_passe_filtre = true; } else { // Si la valeur initiale est dans la séquence des valeurs du filtre // la valeur est comprise dans les bornes [debut,fin] // et sa distance du début de la séquence est modulo le pas if ( ((*i).filtre.fin - valeur_initiale >= 0) == (valeur_initiale - (*i).filtre.debut >= 0) && (valeur_initiale - (*i).filtre.debut) % (*i).filtre.pas == 0 ) { si_passe_filtre = true; } } // Si la valeur initiale passe le filtre if (si_passe_filtre) { // cout << "config: filtre passe " << endl; // Si il y a une conversion à effectuer if ((*i).p_convers != NULL) { // Si la longueur du filtre est 1 if ((*i).filtre.len == 1) { // Si la longueur des paramètres de conversion est aussi 1 if ((*i).p_convers->len == 1) { // Ajoute la valeur de conversion à la liste des valeurs après conversion liste_conversions.push_back ((*i).p_convers->debut); } else { // Ajoute la séquence de conversion à la liste des valeurs après conversion for (int s = (*i).p_convers->debut; s != (*i).p_convers->fin; s += (*i).p_convers->pas) { liste_conversions.push_back (s); } liste_conversions.push_back ((*i).p_convers->fin); } } else { // Le filtre est une séquence qui est convertie en une autre séquence de même longueur // Choisit la valeur au rang désiré dans la séquence de conversion int rang = (valeur_initiale - (*i).filtre.debut) / (*i).filtre.pas; int valeur_convertie = (*i).p_convers->debut + rang * (*i).p_convers->pas; // Ajoute cette valeur à la liste des valeurs après conversion liste_conversions.push_back (valeur_convertie); } } else { // Ajoute la valeur initiale telle-quelle à la liste des valeurs après conversion liste_conversions.push_back (valeur_initiale); } } } return liste_conversions.size(); } salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/DisplayPair.hxx000077500000000000000000000027451177004724000241430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : DisplayPair.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: DisplayPair.hxx,v 1.3.32.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef __DISPLAY_PAIR__ #define __DISPLAY_PAIR__ #include template std::ostream & operator <<(std::ostream & os, const std::pair & p) { os << "(" << p.first << "," << p.second << ")"; return os; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/FindKeyPredicate.hxx000077500000000000000000000057111177004724000250700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : FindKeyPredicate.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: FindKeyPredicate.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef __FIND_KEY_PREDICATE__ #define __FIND_KEY_PREDICATE__ #include #include #include "DisplayPair.hxx" template < typename T > struct FindKeyPredicate : public std::unary_function < T, bool > { T _value; FindKeyPredicate(const T& value):_value(value){} inline bool operator()(const T &v1, const T& v2) const { std::cout << "FindKeyPredicate Generic -> :" << &(v1.first) << std::endl; return ( v1 == _value ); } }; // Pour les MAPs avec une clef sous forme de pair // template // struct FindKeyPredicate< std::pair, T3 > > : // public std::binary_function < std::pair, T3 >, // std::pair, T3 >, bool > // { // std::pair _value; // FindKeyPredicate(const std::pair & value):_value(value){ // std::cout << "1-Initializing with value " << _value << std::endl; // } // bool operator()( const std::pair, T3 > & v1, // const std::pair, T3 > v2) const { // std::cout << "1-> :" << v1 << "," << v2 << " " << std::endl; // return (v1.first <= _value ) && (_value < v2.first) ; // } // }; template struct FindKeyPredicate< std::pair > : public std::unary_function < std::pair, bool > { T1 _value; FindKeyPredicate(const T1 & value):_value(value){ std::cout << "FindKeyPredicate 2-Initializing with value " << _value << std::endl; } inline bool operator()( const std::pair & v1) const { std::cout << "FindKeyPredicate 2-> :" << v1.first << std::endl; return v1.first == _value ; } }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/GenericPort.hxx000077500000000000000000000670311177004724000241420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GenericPort.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: GenericPort.hxx,v 1.3.2.4.14.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _GENERIC_PORT_HXX_ #define _GENERIC_PORT_HXX_ #include "CorbaTypeManipulator.hxx" #include "Superv_Component_i.hxx" // SALOME CORBA Exception #include "Utils_CorbaException.hxx" // SALOME C++ Exception #include "Utils_SALOME_Exception.hxx" #include "DSC_Exception.hxx" #include "utilities.h" #include #include // Inclusions pour l'affichage #include #include //#define MYDEBUG // Classe GenericPort // -------------------------------- // // Definition: Implemente un port de type "data-stream" // Cette implémentation gère tous les types de données définies par DataManipulator::type // Ce port est soumis à une politique d'itération sur les identificateurs de données (DataId) // Un identificateur de données est construit à partir d'un ou plusieurs paramètres de la méthode put // tels que : une date, une itération, un pas de temps ou une combinaison de ces paramètres. template < typename DataManipulator, class COUPLING_POLICY > class GenericPort : public COUPLING_POLICY { public: // Type de données manipulés typedef typename DataManipulator::Type DataType; typedef typename DataManipulator::CorbaInType CorbaInDataType; GenericPort(); virtual ~GenericPort(); template void put(CorbaInDataType data, TimeType time, TagType tag); template DataType get(TimeType time, TagType tag); template DataType get(TimeType& ti, TimeType tf, TagType tag = 0); template DataType next(TimeType &t, TagType &tag ); void close (PortableServer::POA_var poa, PortableServer::ObjectId_var id); void wakeupWaiting(); template void erase(TimeType time, TagType tag, bool before ); private: // Type identifiant une instance de donnee. Exemple (time,tag) typedef typename COUPLING_POLICY::DataId DataId; typedef std::map< DataId, DataType> DataTable; // Stockage des donnees recues et non encore distribuées DataTable storedDatas ; // Indicateur que le destinataire attend une instance particuliere de données bool waitingForConvenientDataId; // Indicateur que le destinataire attend n'importe qu'elle instance de données bool waitingForAnyDataId; // Identificateur de la donné que le destinataire (propriétaire du port) attend DataId expectedDataId ; // Sauvegarde du DataId courant pour la méthode next DataId lastDataId; bool lastDataIdSet; // Exclusion mutuelle d'acces a la table des données reçues omni_mutex storedDatas_mutex; // Condition d'attente d'une instance (Le processus du Get attend la condition declaree par le processus Put) omni_condition cond_instance; }; template < typename DataManipulator, typename COUPLING_POLICY > GenericPort::GenericPort() : cond_instance(& this->storedDatas_mutex),waitingForConvenientDataId(false), waitingForAnyDataId(false),lastDataIdSet(false) {} template < typename DataManipulator, typename COUPLING_POLICY> GenericPort::~GenericPort() { typename DataTable::iterator it; for (it=storedDatas.begin(); it!=storedDatas.end(); ++it) { #ifdef MYDEBUG std::cerr << "~GenericPort() : destruction de la donnnée associée au DataId :"<< (*it).first << std::endl; #endif DataManipulator::delete_data( (*it).second ); } } template < typename DataManipulator, typename COUPLING_POLICY> void GenericPort::close (PortableServer::POA_var poa, PortableServer::ObjectId_var id) { // Ferme le port en supprimant le servant // La desactivation du servant du POA provoque sa suppression poa->deactivate_object (id); } template < typename DataManipulator, typename COUPLING_POLICY> void GenericPort::wakeupWaiting() { #ifdef MYDEBUG std::cout << "-------- wakeupWaiting ------------------" << std::endl; #endif storedDatas_mutex.lock(); if (waitingForAnyDataId || waitingForConvenientDataId) { #ifdef MYDEBUG std::cout << "-------- wakeupWaiting:signal --------" << std::endl; std::cout << std::flush; #endif cond_instance.signal(); } storedDatas_mutex.unlock(); } /* Methode put_generique * * Stocke en memoire une instance de donnee (pointeur) que l'emetteur donne a l'intention du destinataire. * Reveille le destinataire, si il y a lieu. */ template < typename DataManipulator, typename COUPLING_POLICY> template < typename TimeType,typename TagType> void GenericPort::put(CorbaInDataType dataParam, TimeType time, TagType tag) { fflush(stdout); fflush(stderr); try { #ifdef MYDEBUG // Affichage des donnees pour DEBUGging std::cerr << "parametres emis: " << time << ", " << tag << std::endl; DataManipulator::dump(dataParam); #endif // L'intérêt des paramètres time et tag pour ce port est décidé dans la politique de couplage // Il est possible de filtrer en prenant en compte uniquement un paramètre time/tag ou les deux // Il est également possible de convertir les données recues ou bien de les dupliquer // pour plusieurs valeurs de time et/ou tag (d'où la notion de container dans la politique de couplage) typedef typename COUPLING_POLICY::DataIdContainer DataIdContainer; typedef typename COUPLING_POLICY::DataId DataId; DataId dataId(time,tag); // Effectue les traitements spécifiques à la politique de couplage // pour construire une liste d'ids (par filtrage, conversion ...) // DataIdContainer dataIds(dataId,*(static_cast(this))); DataIdContainer dataIds(dataId, *this); typename DataIdContainer::iterator dataIdIt = dataIds.begin(); bool expectedDataReceived = false; #ifdef MYDEBUG std::cout << "-------- Put : MARK 1 ------------------" << std::endl; #endif if ( dataIds.empty() ) return; #ifdef MYDEBUG std::cout << "-------- Put : MARK 1bis ------------------" << std::endl; #endif // Recupere les donnees venant de l'ORB et relâche les structures CORBA // qui n'auraient plus cours en sortie de méthode put DataType data = DataManipulator::get_data(dataParam); int nbOfIter = 0; #ifdef MYDEBUG std::cout << "-------- Put : MARK 2 ------ "<< (dataIdIt == dataIds.end()) << "------------" << std::endl; std::cout << "-------- Put : MARK 2bis "<< (*dataIdIt) <<"------------------" << std::endl; #endif storedDatas_mutex.lock(); for (;dataIdIt != dataIds.end();++dataIdIt) { #ifdef MYDEBUG std::cout << "-------- Put : MARK 3 ------------------" << std::endl; #endif // Duplique l'instance de donnée pour les autres dataIds if (nbOfIter > 0) data = DataManipulator::clone(data); #ifdef MYDEBUG std::cout << "-------- Put : MARK 3bis -----"<< dataIdIt.operator*() <<"------------" << std::endl; #endif DataId currentDataId=*dataIdIt; #ifdef MYDEBUG std::cerr << "processing dataId : "<< currentDataId << std::endl; std::cout << "-------- Put : MARK 4 ------------------" << std::endl; #endif // Ajoute l'instance de la donnee a sa place dans la table de données // ou remplace une instance précédente si elle existe // Recherche la première clé telle quelle ne soit pas < currentDataId // pour celà l'opérateur de comparaison storedDatas.key_comp() est utilisé // <=> premier emplacement où l'on pourrait insérer notre DataId // <=> en général équivaux à (*wDataIt).first >= currentDataId typename DataTable::iterator wDataIt = storedDatas.lower_bound(currentDataId); #ifdef MYDEBUG std::cout << "-------- Put : MARK 5 ------------------" << std::endl; #endif // On n'a pas trouvé de dataId supérieur au notre ou // on a trouvé une clé > à cet Id if (wDataIt == storedDatas.end() || storedDatas.key_comp()(currentDataId,(*wDataIt).first) ) { #ifdef MYDEBUG std::cout << "-------- Put : MARK 6 ------------------" << std::endl; #endif // Ajoute la donnee dans la table wDataIt = storedDatas.insert(wDataIt, make_pair (currentDataId, data)); } else { // Si on n'est pas en fin de liste et qu'il n'y a pas de relation d'ordre strict // entre notre dataId et le DataId pointé c'est qu'ils sont identiques #ifdef MYDEBUG std::cout << "-------- Put : MARK 7 ------------------" << std::endl; #endif // Les données sont remplacées par les nouvelles valeurs // lorsque que le dataId existe déjà DataType old_data = (*wDataIt).second; (*wDataIt).second = data; // Detruit la vieille donnee DataManipulator::delete_data (old_data); } #ifdef MYDEBUG std::cout << "-------- Put : MARK 8 ------------------" << std::endl; #endif // Compte le nombre de dataIds à traiter ++nbOfIter; #ifdef MYDEBUG std::cout << "-------- Put : waitingForConvenientDataId : " << waitingForConvenientDataId <<"---" << std::endl; std::cout << "-------- Put : waitingForAnyDataId : " << waitingForAnyDataId <<"---" << std::endl; std::cout << "-------- Put : currentDataId : " << currentDataId <<"---" << std::endl; std::cout << "-------- Put : expectedDataId : " << expectedDataId <<"---" << std::endl; std::cout << "-------- Put : MARK 9 ------------------" << std::endl; #endif // A simplifier mais : // - pas possible de mettre des arguments optionnels à cause // du type itérator qui n'est pas connu (pas de possibilité de déclarer un static ) // - compliquer de créer une méthode sans les paramètres inutiles tout en réutilisant // la méthode initiale car cette dernière ne peut pas être déclarée virtuelle // à cause de ses paramètres templates. Du coup, il faudrait aussi redéfinir la // méthode simplifiée dans les classes définissant une politique // de couplage particulière ... bool dummy1,dummy2; typename DataTable::iterator dummy3; // Par construction, les valeurs de waitingForAnyDataId, waitingForConvenientDataId et de // expectedDataId ne peuvent pas être modifiées pendant le traitement de la boucle // sur les dataIds (à cause du lock utilisé dans la méthode put et les méthodes get ) // rem : Utilisation de l'évaluation gauche droite du logical C or if ( waitingForAnyDataId || ( waitingForConvenientDataId && isDataIdConveniant(storedDatas, expectedDataId, dummy1, dummy2, dummy3) ) ) { #ifdef MYDEBUG std::cout << "-------- Put : MARK 10 ------------------" << std::endl; #endif //Doit pouvoir réveiller le get ici (a vérifier) expectedDataReceived = true; } } if (expectedDataReceived) { #ifdef MYDEBUG std::cout << "-------- Put : MARK 11 ------------------" << std::endl; #endif // si waitingForAnyDataId était positionné, c'est forcément lui qui a activer // expectedDataReceived à true if (waitingForAnyDataId) waitingForAnyDataId = false; else waitingForConvenientDataId = false; // Reveille le thread du destinataire (stoppe son attente) // Ne faudrait-il pas réveiller plutôt tous les threads ? // Celui réveillé ne correspond pas forcément à celui qui demande // cet expectedDataReceived. // Pb1 : cas d'un un get séquentiel et d'un get sur un dataId que l'on vient de recevoir. // Si l'on reveille le mauvais thread, l'autre va attendre indéfiniment ! (sauf timeout) // Pb2 : également si deux attentes de DataIds même différents car on n'en stocke qu'un ! // Conclusion : Pour l'instant on ne gère pas un service multithreadé qui effectue // des lectures simultanées sur le même port ! #ifdef MYDEBUG std::cerr << "-------- Put : new datas available ------------------" << std::endl; #endif fflush(stdout);fflush(stderr); cond_instance.signal(); } #ifdef MYDEBUG std::cout << "-------- Put : MARK 12 ------------------" << std::endl; #endif // Deverouille l'acces a la table : On peut remonter l'appel au dessus de expected... storedDatas_mutex.unlock(); #ifdef MYDEBUG std::cout << "-------- Put : MARK 13 ------------------" << std::endl; #endif fflush(stdout); fflush(stderr); } // Catch les exceptions SALOME//C++ pour la transformer en une exception SALOME//CORBA catch ( const SALOME_Exception & ex ) { // On évite de laisser un mutex storedDatas_mutex.unlock(); THROW_SALOME_CORBA_EXCEPTION(ex.what(), SALOME::INTERNAL_ERROR); } } // erase data before time or tag template < typename DataManipulator, typename COUPLING_POLICY > template void GenericPort::erase(TimeType time, TagType tag, bool before) { typename COUPLING_POLICY::template EraseDataIdBeforeOrAfterTagProcessor processEraseDataId(*this); processEraseDataId.apply(storedDatas,time,tag,before); } // Version du Get en 0 copy // ( n'effectue pas de recopie de la donnée trouvée dans storedDatas ) // ( L'utilisateur devra être attentif à la politique de gestion de l'historique // spécifique au mode de couplage car il peut y avoir une suppression potentielle // d'une donnée utilisée directement dans le code utilisateur ) // Le code doit prendre connaissance du transfert de propriété ou non des données // auprès du mode de couplage choisi. template < typename DataManipulator, typename COUPLING_POLICY > template < typename TimeType,typename TagType> typename DataManipulator::Type GenericPort::get(TimeType time, TagType tag) // REM : Laisse passer toutes les exceptions // En particulier les SALOME_Exceptions qui viennent de la COUPLING_POLICY // Pour déclarer le throw avec l'exception spécifique il faut que je vérifie // qu'un setunexpeted est positionné sinon le C++ arrête tout par appel à terminate { typedef typename COUPLING_POLICY::DataId DataId; // (Pointeur sur séquence) ou valeur.. DataType dataToTransmit ; bool isEqual, isBounded; typedef typename DataManipulator::InnerType InnerType; #ifdef MYDEBUG std::cout << "-------- Get : MARK 1 ------------------" << std::endl; #endif expectedDataId = DataId(time,tag); #ifdef MYDEBUG std::cout << "-------- Get : MARK 2 ------------------" << std::endl; #endif typename DataTable::iterator wDataIt1; try { storedDatas_mutex.lock(); // Gérer les Exceptions ds le corps de la méthode while ( true ) { // Renvoie isEqual si le dataId attendu est trouvé dans storedDatas : // - l'itérateur wDataIt1 pointe alors sur ce dataId // Renvoie isBounded si le dataId attendu n'est pas trouvé mais encadrable et // que la politique gére ce cas de figure // - l'itérateur wDataIt1 est tel que wDataIt1->first < wdataId < (wDataIt1+1)->first // Méthode provenant de la COUPLING_POLICY isDataIdConveniant(storedDatas,expectedDataId,isEqual,isBounded,wDataIt1); #ifdef MYDEBUG std::cout << "-------- Get : MARK 3 ------------------" << std::endl; #endif // L'ordre des différents tests est important if ( isEqual ) { #ifdef MYDEBUG std::cout << "-------- Get : MARK 4 ------------------" << std::endl; #endif // La propriété de la données N'EST PAS transmise à l'utilisateur en mode CALCIUM. // Si l'utilisateur supprime la donnée, storedDataIds devient incohérent // C'est EraseDataId qui choisi ou non de supprimer la donnée // Du coup interaction potentielle entre le 0 copy et gestion de l'historique dataToTransmit = (*wDataIt1).second; #ifdef MYDEBUG std::cout << "-------- Get : MARK 5 ------------------" << std::endl; std::cout << "-------- Get : Données trouvées à t : " << std::endl; typename DataManipulator::InnerType const * const InIt1 = DataManipulator::getPointer(dataToTransmit); size_t N = DataManipulator::size(dataToTransmit); std::copy(InIt1, InIt1 + N, std::ostream_iterator< InnerType > (std::cout," ")); std::cout << std::endl; #endif // Décide de la suppression de certaines instances de données // La donnée contenu dans la structure CORBA et son dataId sont désallouées // Méthode provenant de la COUPLING_POLICY typename COUPLING_POLICY::template EraseDataIdProcessor processEraseDataId(*this); processEraseDataId.apply(storedDatas,wDataIt1); #ifdef MYDEBUG std::cout << "-------- Get : MARK 6 ------------------" << std::endl; #endif break; } #ifdef MYDEBUG std::cout << "-------- Get : MARK 7 ------------------" << std::endl; #endif //if ( isBounded() && COUPLING_POLICY::template needToProcessBoundedDataId() ) { // Le DataId demandé n'est pas trouvé mais est encadré ET la politique de couplage // implémente une méthode processBoundedDataId capable de générer les données à retourner if ( isBounded ) { // Pour être cohérent avec la politique du bloc précédent // on stocke la paire (dataId,données interpolées ). // CALCIUM ne stockait pas les données interpolées. // Cependant comme les données sont censées être produites // par ordre croissant de DataId, de nouvelles données ne devrait pas améliorer // l'interpolation. #ifdef MYDEBUG std::cout << "-------- Get : MARK 8 ------------------" << std::endl; #endif typedef typename COUPLING_POLICY::template BoundedDataIdProcessor BDI; BDI processBoundedDataId(*this); // typename COUPLING_POLICY::template BoundedDataIdProcessor processBoundedDataId(*this); //si static BDIP::apply(dataToTransmit,expectedDataId,wDataIt1); //ancienne version template processBoundedDataId(dataToTransmit,expectedDataId,wDataIt1); //BDIP processBoundedDataId; processBoundedDataId.apply(dataToTransmit,expectedDataId,wDataIt1); // Il ne peut pas y avoir déjà une clé expectedDataId dans storedDatas (utilisation de la notation [] ) // La nouvelle donnée produite est stockée, ce n'était pas le cas dans CALCIUM // Cette opération n'a peut être pas un caractère générique. // A déplacer en paramètre de la méthode précédente ? ou déléguer ce choix au mode de couplage ? storedDatas[expectedDataId]=dataToTransmit; #ifdef MYDEBUG std::cout << "-------- Get : Données calculées à t : " << std::endl; typename DataManipulator::InnerType const * const InIt1 = DataManipulator::getPointer(dataToTransmit); size_t N = DataManipulator::size(dataToTransmit); std::copy(InIt1, InIt1 + N, std::ostream_iterator< InnerType > (std::cout," ")); std::cout << std::endl; std::cout << "-------- Get : MARK 9 ------------------" << std::endl; #endif typename COUPLING_POLICY::template EraseDataIdProcessor processEraseDataId(*this); processEraseDataId.apply(storedDatas,wDataIt1); break; } // Délègue au mode de couplage la gestion d'une demande de donnée non disponible // si le port est deconnecté typename COUPLING_POLICY::template DisconnectProcessor processDisconnect(*this); if ( processDisconnect.apply(storedDatas, expectedDataId, wDataIt1) ) continue; // Réception bloquante sur le dataId demandé // Si l'instance de donnée n'est pas trouvee #ifdef MYDEBUG std::cout << "-------- Get : MARK 10 ------------------" << std::endl; #endif //Positionné à faux dans la méthode put waitingForConvenientDataId = true; #ifdef MYDEBUG std::cout << "-------- Get : MARK 11 ------------------" << std::endl; // Ici on attend que la méthode put recoive la donnée std::cout << "-------- Get : waiting datas ------------------" << std::endl; #endif fflush(stdout);fflush(stderr); unsigned long ts, tns,rs=Superv_Component_i::dscTimeOut; if(rs==0) cond_instance.wait(); else { //Timed wait on omni condition omni_thread::get_time(&ts,&tns, rs,0); int success=cond_instance.timedwait(ts,tns); if(!success) { // Waiting too long probably blocking std::stringstream msg; msg<<"Timeout ("< template < typename TimeType,typename TagType> typename DataManipulator::Type GenericPort::get(TimeType& ti, TimeType tf, TagType tag ) { ti = COUPLING_POLICY::getEffectiveTime(ti,tf); return get(ti,tag); } // Version du next en 0 copy // ( n'effectue pas de recopie de la donnée trouvée dans storedDatas ) template < typename DataManipulator, typename COUPLING_POLICY > template < typename TimeType,typename TagType> typename DataManipulator::Type GenericPort::next(TimeType &t, TagType &tag ) { typedef typename COUPLING_POLICY::DataId DataId; DataType dataToTransmit; DataId dataId; try { storedDatas_mutex.lock();// Gérer les Exceptions ds le corps de la méthode #ifdef MYDEBUG std::cout << "-------- Next : MARK 1 ---lastDataIdSet ("< processDisconnect(*this); while ( storedDatas.empty() || wDataIt1 == storedDatas.end() ) { // Délègue au mode de couplage la gestion d'une demande de donnée non disponible // si le port est deconnecté if ( processDisconnect.apply(storedDatas, lastDataId, wDataIt1) ) { waitingForAnyDataId = false; break; } #ifdef MYDEBUG std::cout << "-------- Next : MARK 2 ------------------" << std::endl; #endif //Positionné à faux dans la méthode put waitingForAnyDataId = true; #ifdef MYDEBUG std::cout << "-------- Next : MARK 3 ------------------" << std::endl; // Ici on attend que la méthode put recoive la donnée std::cout << "-------- Next : waiting datas ------------------" << std::endl; #endif fflush(stdout);fflush(stderr); unsigned long ts, tns,rs=Superv_Component_i::dscTimeOut; if(rs==0) cond_instance.wait(); else { //Timed wait on omni condition omni_thread::get_time(&ts,&tns, rs,0); int success=cond_instance.timedwait(ts,tns); if(!success) { // Waiting too long probably blocking std::stringstream msg; msg<<"Timeout ("< processEraseDataId(*this); processEraseDataId.apply(storedDatas, wDataIt1); #ifdef MYDEBUG std::cout << "-------- Next : MARK 8 ------------------" << std::endl; #endif } catch (...) { #ifdef MYDEBUG std::cout << "-------- Next : MARK 8bis ------------------" << std::endl; #endif waitingForAnyDataId = false; storedDatas_mutex.unlock(); throw; } storedDatas_mutex.unlock(); #ifdef MYDEBUG std::cout << "-------- Next : MARK 9 ------------------" << std::endl; #endif // La propriété de la données N'EST PAS transmise à l'utilisateur en mode CALCIUM // Si l'utilisateur supprime la donnée, storedDataIds devient incohérent // c'est eraseDataId qui choisi ou non de supprimer la donnée // Du coup interaction potentielle entre le 0 copy et gestion des niveaux return dataToTransmit; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/GenericProvidesPort.hxx000077500000000000000000000033501177004724000256500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (Wed, 28 Feb 2007) $ // Id : $Id: GenericProvidesPort.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _GENERIC_PROVIDES_PORT_HXX_ #define _GENERIC_PROVIDES_PORT_HXX_ #include "provides_port.hxx" #include "GenericPort.hxx" template class GenericProvidesPort : public ProvidesPort, public GenericPort< DataManipulator , CouplingPolicy > { public : // Type de données manipulés typedef typename DataManipulator::Type DataType; typedef typename DataManipulator::CorbaInType CorbaInDataType; virtual ~GenericProvidesPort() {}; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/GenericUsesPort.hxx000077500000000000000000000132231177004724000247740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GenericUsesPort.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $ // Id : $Id: GenericUsesPort.hxx,v 1.3.2.3.10.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _GENERIC_USES_PORT_HXX_ #define _GENERIC_USES_PORT_HXX_ #include "CorbaTypeManipulator.hxx" #include "uses_port.hxx" #include "SALOME_Ports.hh" #include "DSC_Exception.hxx" // #define GENERATE_USES_PORT(dataManip,portType,portName) \ // const char * _repository_##portType##_name_ = "IDL:Ports/##portType##:1.0"; \ // GenericUsesPort< dataManip, portType, _repository_##portType##_name_ > portName; //ex : GENERATE_USES_PORT(Ports::Data_Short_Port,data_short_port); template class GenericUsesPort : public UsesPort { public : // Type de données manipulés typedef typename DataManipulator::Type DataType; typedef typename DataManipulator::CorbaInType CorbaInDataType; GenericUsesPort(); virtual ~GenericUsesPort(); virtual const char * get_repository_id(); template void put(CorbaInDataType data, TimeType time, TagType tag); virtual void uses_port_changed(Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message); protected : Engines::DSC::uses_port * _my_ports; }; template GenericUsesPort< DataManipulator,CorbaPortType, repositoryName, UsesPort >::GenericUsesPort() { _my_ports = NULL; } template GenericUsesPort< DataManipulator,CorbaPortType, repositoryName, UsesPort >::~GenericUsesPort() { delete _my_ports; } template const char * GenericUsesPort< DataManipulator,CorbaPortType, repositoryName, UsesPort >::get_repository_id() { return repositoryName; } template template void GenericUsesPort< DataManipulator,CorbaPortType, repositoryName, UsesPort >::put( CorbaInDataType data, TimeType time, TagType tag) { typedef typename CorbaPortType::_var_type CorbaPortTypeVar; if (!_my_ports) throw DSC_Exception(LOC("There is no connected provides port to communicate with.")); // OLD : PB1 : Cf remarque dans CalciumInterface, si on n'effectue pas de copie // OLD : du buffer ! // OLD : PB2 : Si les ports provides auquels on envoie data sont collocalisés // OLD : ils vont partagés le même buffer (à cause de notre optim ds get_data) // OLD : il faut alors effectuer une copie ici. // OLD : Pour l'instant on résoud PB2 en créant une copie de la donnée en cas // OLD : de connexions multiples. Il faudra tester la collocalisation. // OLD : DataType copyOfData; // = data; PB1 for(int i = 0; i < _my_ports->length(); i++) { CorbaPortTypeVar port = CorbaPortType::_narrow((*_my_ports)[i]); //if (i) { PB1 //OLD : copyOfData = DataManipulator::clone(data); #ifdef MYDEBUG std::cerr << "-------- GenericUsesPort::put -------- " << std::endl; #endif //} PB1 try { port->put(data,time,tag); // OLD : port->put(*copyOfData,time,tag); } catch(const CORBA::SystemException& ex) { //OLD : DataManipulator::delete_data(copyOfData); throw DSC_Exception(LOC(OSS() << "Can't invoke put method on port number " << i << "( i>= 0)")); } //if (i) PB1 // La séquence est détruite avec le buffer si on n'est pas collocalisé // La séquence est détruite sans son buffer sinon (cf comportement de get_data // appelée dans put (port provides) //OLD : DataManipulator::delete_data(copyOfData); } } template void GenericUsesPort< DataManipulator, CorbaPortType, repositoryName, UsesPort >::uses_port_changed(Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message) { if (_my_ports) delete _my_ports; #ifdef MYDEBUG std::cerr << "GenericUsesPort::uses_port_changed" << std::endl; #endif _my_ports = new_uses_port; } #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/IteratorTraits.hxx000077500000000000000000000030451177004724000246740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : IteratorTraits.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: IteratorTraits.hxx,v 1.3.32.2.12.1 2012-04-12 14:05:06 vsr Exp $ // #ifndef _ITERATOR_TRAITS_HXX_ #define _ITERATOR_TRAITS_HXX_ // Trait permettant d'accéder au type de donnée stockée // dans une map template < typename MapIterator > struct iterator_t { typedef typename MapIterator::value_type value_type1; typedef typename value_type1::second_type value_type; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Makefile.am000077500000000000000000000051251177004724000232200ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF), Eric Fayolle (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am SUBDIRS = Palm Calcium # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = GenericPort.hxx \ GenericProvidesPort.hxx \ GenericUsesPort.hxx \ DataIdFilter.hxx \ CorbaTypeManipulator.hxx \ CouplingPolicy.hxx \ DisplayPair.hxx \ FindKeyPredicate.hxx \ AdjacentFunctor.hxx \ IteratorTraits.hxx \ ConstTraits.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= @BOOST_CPPFLAGS@ -I$(top_srcdir)/src/DSC/DSC_User # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/src/DSC/DSC_User/Datastream/Palm/libSalomePalm.la \ $(top_builddir)/src/DSC/DSC_User/Datastream/Calcium/libSalomeCalcium.la \ ../libSalomeDSCSuperv.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDatastream.la libSalomeDatastream_la_SOURCES = fake.cc libSalomeDatastream_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDatastream_la_LIBADD = $(COMMON_LIBS) libSalomeDatastream_la_LDFLAGS = -no-undefined -version-info=0:0:0 salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Makefile.in000077500000000000000000001057051177004724000232360ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/DSC/DSC_User/Datastream ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeDatastream_la_DEPENDENCIES = $(COMMON_LIBS) am_libSalomeDatastream_la_OBJECTS = libSalomeDatastream_la-fake.lo libSalomeDatastream_la_OBJECTS = $(am_libSalomeDatastream_la_OBJECTS) libSalomeDatastream_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeDatastream_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeDatastream_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDatastream_la_SOURCES) DIST_SOURCES = $(libSalomeDatastream_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(salomeinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF), Eric Fayolle (EDF) # Module : KERNEL # SUBDIRS = Palm Calcium # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = GenericPort.hxx \ GenericProvidesPort.hxx \ GenericUsesPort.hxx \ DataIdFilter.hxx \ CorbaTypeManipulator.hxx \ CouplingPolicy.hxx \ DisplayPair.hxx \ FindKeyPredicate.hxx \ AdjacentFunctor.hxx \ IteratorTraits.hxx \ ConstTraits.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = @BOOST_CPPFLAGS@ -I$(top_srcdir)/src/DSC/DSC_User # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/src/DSC/DSC_User/Datastream/Palm/libSalomePalm.la \ $(top_builddir)/src/DSC/DSC_User/Datastream/Calcium/libSalomeCalcium.la \ ../libSalomeDSCSuperv.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDatastream.la libSalomeDatastream_la_SOURCES = fake.cc libSalomeDatastream_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDatastream_la_LIBADD = $(COMMON_LIBS) libSalomeDatastream_la_LDFLAGS = -no-undefined -version-info=0:0:0 all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/DSC_User/Datastream/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/DSC_User/Datastream/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDatastream.la: $(libSalomeDatastream_la_OBJECTS) $(libSalomeDatastream_la_DEPENDENCIES) $(libSalomeDatastream_la_LINK) -rpath $(libdir) $(libSalomeDatastream_la_OBJECTS) $(libSalomeDatastream_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDatastream_la-fake.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDatastream_la-fake.lo: fake.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDatastream_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDatastream_la-fake.lo -MD -MP -MF $(DEPDIR)/libSalomeDatastream_la-fake.Tpo -c -o libSalomeDatastream_la-fake.lo `test -f 'fake.cc' || echo '$(srcdir)/'`fake.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDatastream_la-fake.Tpo $(DEPDIR)/libSalomeDatastream_la-fake.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fake.cc' object='libSalomeDatastream_la-fake.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDatastream_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDatastream_la-fake.lo `test -f 'fake.cc' || echo '$(srcdir)/'`fake.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am \ install-salomeincludeHEADERS install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/000077500000000000000000000000001177004724000220475ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/Makefile.am000077500000000000000000000056221177004724000241130ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF), Eric Fayolle (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = palm_port_factory.hxx \ palm_data_short_port_provides.hxx \ palm_data_seq_short_port_provides.hxx \ PalmCouplingPolicy.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= -I$(top_srcdir)/src/DSC/DSC_User \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # noinst_LTLIBRARIES = libSalomePalm.la libSalomePalm_la_SOURCES = palm_port_factory.cxx libSalomePalm_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomePalm_la_LDFLAGS = -no-undefined -version-info=0:0:0 # # =============================================================== # Executables targets # =============================================================== # noinst_PROGRAMS = test_DataIdContainer test_DataIdContainer_SOURCES = test_DataIdContainer.cxx test_DataIdContainer_CXXFLAGS = $(COMMON_CPPFLAGS) test_DataIdContainer_LDFLAGS = $(COMMON_LIBS) salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/Makefile.in000077500000000000000000001003751177004724000241250ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am noinst_PROGRAMS = test_DataIdContainer$(EXEEXT) subdir = src/DSC/DSC_User/Datastream/Palm ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libSalomePalm_la_LIBADD = am_libSalomePalm_la_OBJECTS = libSalomePalm_la-palm_port_factory.lo libSalomePalm_la_OBJECTS = $(am_libSalomePalm_la_OBJECTS) libSalomePalm_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomePalm_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomePalm_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(noinst_PROGRAMS) am_test_DataIdContainer_OBJECTS = \ test_DataIdContainer-test_DataIdContainer.$(OBJEXT) test_DataIdContainer_OBJECTS = $(am_test_DataIdContainer_OBJECTS) test_DataIdContainer_LDADD = $(LDADD) test_DataIdContainer_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) \ $(test_DataIdContainer_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomePalm_la_SOURCES) $(test_DataIdContainer_SOURCES) DIST_SOURCES = $(libSalomePalm_la_SOURCES) \ $(test_DataIdContainer_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomeincludedir)" HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF), Eric Fayolle (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = palm_port_factory.hxx \ palm_data_short_port_provides.hxx \ palm_data_seq_short_port_provides.hxx \ PalmCouplingPolicy.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = -I$(top_srcdir)/src/DSC/DSC_User \ -I$(top_srcdir)/src/DSC/DSC_User/Datastream \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # noinst_LTLIBRARIES = libSalomePalm.la libSalomePalm_la_SOURCES = palm_port_factory.cxx libSalomePalm_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomePalm_la_LDFLAGS = -no-undefined -version-info=0:0:0 test_DataIdContainer_SOURCES = test_DataIdContainer.cxx test_DataIdContainer_CXXFLAGS = $(COMMON_CPPFLAGS) test_DataIdContainer_LDFLAGS = $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/DSC_User/Datastream/Palm/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/DSC_User/Datastream/Palm/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomePalm.la: $(libSalomePalm_la_OBJECTS) $(libSalomePalm_la_DEPENDENCIES) $(libSalomePalm_la_LINK) $(libSalomePalm_la_OBJECTS) $(libSalomePalm_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test_DataIdContainer$(EXEEXT): $(test_DataIdContainer_OBJECTS) $(test_DataIdContainer_DEPENDENCIES) @rm -f test_DataIdContainer$(EXEEXT) $(test_DataIdContainer_LINK) $(test_DataIdContainer_OBJECTS) $(test_DataIdContainer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomePalm_la-palm_port_factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomePalm_la-palm_port_factory.lo: palm_port_factory.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomePalm_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomePalm_la-palm_port_factory.lo -MD -MP -MF $(DEPDIR)/libSalomePalm_la-palm_port_factory.Tpo -c -o libSalomePalm_la-palm_port_factory.lo `test -f 'palm_port_factory.cxx' || echo '$(srcdir)/'`palm_port_factory.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomePalm_la-palm_port_factory.Tpo $(DEPDIR)/libSalomePalm_la-palm_port_factory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='palm_port_factory.cxx' object='libSalomePalm_la-palm_port_factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomePalm_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomePalm_la-palm_port_factory.lo `test -f 'palm_port_factory.cxx' || echo '$(srcdir)/'`palm_port_factory.cxx test_DataIdContainer-test_DataIdContainer.o: test_DataIdContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -MT test_DataIdContainer-test_DataIdContainer.o -MD -MP -MF $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo -c -o test_DataIdContainer-test_DataIdContainer.o `test -f 'test_DataIdContainer.cxx' || echo '$(srcdir)/'`test_DataIdContainer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test_DataIdContainer.cxx' object='test_DataIdContainer-test_DataIdContainer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -c -o test_DataIdContainer-test_DataIdContainer.o `test -f 'test_DataIdContainer.cxx' || echo '$(srcdir)/'`test_DataIdContainer.cxx test_DataIdContainer-test_DataIdContainer.obj: test_DataIdContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -MT test_DataIdContainer-test_DataIdContainer.obj -MD -MP -MF $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo -c -o test_DataIdContainer-test_DataIdContainer.obj `if test -f 'test_DataIdContainer.cxx'; then $(CYGPATH_W) 'test_DataIdContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/test_DataIdContainer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Tpo $(DEPDIR)/test_DataIdContainer-test_DataIdContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test_DataIdContainer.cxx' object='test_DataIdContainer-test_DataIdContainer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DataIdContainer_CXXFLAGS) $(CXXFLAGS) -c -o test_DataIdContainer-test_DataIdContainer.obj `if test -f 'test_DataIdContainer.cxx'; then $(CYGPATH_W) 'test_DataIdContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/test_DataIdContainer.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \ ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/PalmCouplingPolicy.hxx000077500000000000000000000161761177004724000263700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : PalmCouplingPolicy.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-29 16:12:41 +0100 (lun, 29 jan 2007) $ // Id : $Id: PalmCouplingPolicy.hxx,v 1.3.2.1.10.2.12.1 2012-04-12 14:05:08 vsr Exp $ // #ifndef _PALM_COUPLING_POLICIES_HXX_ #define _PALM_COUPLING_POLICIES_HXX_ #include #include #include #include "DataIdFilter.hxx" #include "DisplayPair.hxx" #include "CouplingPolicy.hxx" class PalmCouplingPolicy: public CouplingPolicy { // Objet de filtrage et conversion d'un TIME filtre_conversion filtre_convert_TIME ; // Objet de filtrage et conversion d'un TAG filtre_conversion filtre_convert_TAG ; public: template class InternalDataIdContainer; template friend class InternalDataIdContainer; filtre_conversion * get_filtre_convert_TIME() { return &filtre_convert_TIME; } filtre_conversion * get_filtre_convert_TAG() { return &filtre_convert_TAG; } // Classe DataId rassemblant les paramètres de la méthode PORT::put // qui identifient l'instance d'une donnée pour Palm // Rem : Le DataId doit pouvoir être une key dans une map stl typedef CORBA::Long TimeType; typedef CORBA::Long TagType; typedef std::pair < TimeType , TagType > DataId; typedef InternalDataIdContainer < TimeType , TagType > DataIdContainer; TimeType getTime(const DataId &dataId) const { return dataId.first;} TagType getTag (const DataId &dataId) const { return dataId.second;} // Container qui permet d'itérer sur l'ensemble des DataId générés par les // eventuelles conversions template class InternalDataIdContainer { std::vector _lTime; std::vector _lTag; // Interdit la construction d'un container vide car // aucune méthode d'ajout d'élément n'a été implémentée InternalDataIdContainer() {} public: typedef DataId value_type; template class DataIdIterator; typedef DataIdIterator iterator; typedef value_type & reference; typedef value_type const & const_reference; // Remplit le container d'identificateurs après avoir appliqué // les filtres/convertions des paramètres "TIMEs" et des "TAGs" InternalDataIdContainer(const DataId & dataId, const PalmCouplingPolicy & policy ) { std::cout << "----Cst ---- InternalDataIdContainer(const DataId & dataId..) " << dataId <::iterator i=_lTime.begin();i!=_lTime.end();++i) std::cout << "_lTime["<< c++ << "] : " << *i << std::endl; policy.filtre_convert_TAG.applique_filtre_conversion(dataId.second, _lTag); c=0; for(std::vector::iterator i=_lTag.begin();i!=_lTag.end();++i) std::cout << "_lTag["<< c++ << "] : " << *i << std::endl; } // Pas encore testé InternalDataIdContainer(std::vector const & lTime, std::vector const & lTag): _lTime(lTime),_lTag(lTag) {} // Pas encore testé InternalDataIdContainer( InternalDataIdContainer const & pc): _lTime(pc._lTime), _lTag(pc._lTag) {} // Pas encore testé InternalDataIdContainer & operator=(const InternalDataIdContainer & pc) { if (this != &pc) { _lTime=pc._lTime; _lTag=pc._lTag; } return *this; } virtual ~InternalDataIdContainer() {} iterator begin() { return iterator(*this); } iterator end() { return iterator(*this,_lTime.end(),_lTag.end()); } // En Palm les deux paramètres du couple (temps,tag) doivent // exister (un seul paramètre n'est pas recevable) bool empty() const { return _lTime.empty() || _lTag.empty(); } // Définition de l'itérateur du container template class DataIdIterator { public: typedef typename std::vector::const_iterator ItTime; typedef typename std::vector::const_iterator ItTag; private: ItTime _itTime; ItTag _itTag; const InternalDataIdContainer & _pc; DataIdIterator() {} public: // Pas encore testé DataIdIterator(const InternalDataIdContainer & pc): _pc(pc),_itTime(pc._lTime.begin()),_itTag(pc._lTag.begin()) {} DataIdIterator(const InternalDataIdContainer & pc, ItTime itTime, ItTag itTag): _pc(pc),_itTime(itTime),_itTag(itTag) {} // Pas encore testé DataIdIterator(const DataIdIterator & dIt): _pc(dIt._pc),_itTime(dIt._itTime),_itTag(dIt._itTag) {} ~DataIdIterator() {} // Pas encore testé DataIdIterator & operator=(const DataIdIterator & dIt) { if (this != &dIt) { _pc=dIt._pc;_itTime=dIt._itTime;_itTag=dIt._itTag; } return *this; } DataId operator*() const { std::cout << "-------- operator*(), *_itTime : " << *_itTime << " *_itTag " << *_itTag <, PalmCouplingPolicy > { typedef Ports::Palm_Ports::seq_short CorbaDataType; typedef seq_u_manipulation DataManipulator; typedef GenericPort< DataManipulator, PalmCouplingPolicy > Port; public : palm_data_seq_short_port_provides() {} virtual ~palm_data_seq_short_port_provides() {} void put(DataManipulator::CorbaInType data, CORBA::Long time, CORBA::Long tag) { Port::put(data, time, tag); } Ports::Port_ptr get_port_ref() { return _this(); } }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/palm_data_short_port_provides.hxx000077500000000000000000000037301177004724000307260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : palm_data_short_port_provides.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // #ifndef _PALM_DATA_SHORT_PORT_PROVIDES_HXX_ #define _PALM_DATA_SHORT_PORT_PROVIDES_HXX_ #include "Palm_Ports.hh" #include "provides_port.hxx" #include "GenericPort.hxx" #include "PalmCouplingPolicy.hxx" class palm_data_short_port_provides : public virtual POA_Ports::Palm_Ports::Palm_Data_Short_Port, public virtual provides_port, public virtual GenericPort< atom_manipulation< CORBA::Short >, PalmCouplingPolicy > { typedef CORBA::Short CorbaDataType; typedef atom_manipulation < CorbaDataType > DataManipulator; typedef GenericPort< DataManipulator, PalmCouplingPolicy > Port; public : palm_data_short_port_provides() {} virtual ~palm_data_short_port_provides() {} void put(DataManipulator::CorbaInType data, CORBA::Long time, CORBA::Long tag) { Port::put(data, time, tag); } virtual Ports::Port_ptr get_port_ref() { return _this(); } }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/palm_port_factory.cxx000077500000000000000000000036241177004724000263270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : palm_port_factory.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: palm_port_factory.cxx,v 1.3.32.2.12.1 2012-04-12 14:05:09 vsr Exp $ // #include "palm_port_factory.hxx" #include "Superv_Component_i.hxx" palm_port_factory::palm_port_factory() { Superv_Component_i::register_factory("PALM",this); } palm_port_factory::~palm_port_factory() {} provides_port * palm_port_factory::create_data_servant(std::string type) { provides_port * rtn_port = NULL; if (type == "short") { rtn_port = new palm_data_short_port_provides(); } if (type == "seq_short") { rtn_port = new palm_data_seq_short_port_provides(); } return rtn_port; } uses_port * palm_port_factory::create_data_proxy(std::string type) { uses_port * rtn_port = NULL; return rtn_port; } static palm_port_factory myfactory; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/palm_port_factory.hxx000077500000000000000000000033771177004724000263410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : palm_port_factory.hxx // Author : Eric Fayolle (EDF) // Module : KERNEL // Modified by : $LastChangedBy$ // Date : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $ // Id : $Id: palm_port_factory.hxx,v 1.3.32.2.12.1 2012-04-12 14:05:09 vsr Exp $ // #ifndef _PALM_PORT_FACTORY_HXX_ #define _PALM_PORT_FACTORY_HXX_ #include "port_factory.hxx" #include "uses_port.hxx" #include "provides_port.hxx" #include #include "palm_data_short_port_provides.hxx" #include "palm_data_seq_short_port_provides.hxx" class palm_port_factory : public port_factory { public: palm_port_factory(); virtual ~palm_port_factory(); virtual provides_port * create_data_servant(std::string type); virtual uses_port * create_data_proxy(std::string type); }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/Palm/test_DataIdContainer.cxx000077500000000000000000000076341177004724000266400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : test_DataIdContainer.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // #include "PalmCouplingPolicy.hxx" #include "palm_data_short_port_provides.hxx" //using namespace PalmCouplingPolicy; class TEST1 : public PalmCouplingPolicy { public: TEST1() { std::cout << "------------ TEST1 --------------" << std::endl; // int ret=0; CORBA::Long time=1,tag=1; typedef PalmCouplingPolicy::DataIdContainer DataIdContainer; typedef PalmCouplingPolicy::DataId DataId; DataId dataId(time,tag); //potentiellement avec un troisième paramètre //std::vector a(1,time);std::vector b(1,tag); //DataIdContainer dataIds(a,b); std::cout << "-------- MARK 1 --"<< dataId <<"----------------" << std::endl; filtre_conversion * f_time = get_filtre_convert_TIME(); filtre_conversion * f_tag = get_filtre_convert_TAG(); // On accepte les temps de 1 à 100 sans conversion filtre_elementaire * f_time_el = new filtre_elementaire(1, 100); f_time->config_elementaire(*f_time_el); // On accepte que les tags 1 et ce sans conversion filtre_elementaire * f_time_tag = new filtre_elementaire(1); f_tag->config_elementaire(*f_time_tag); DataIdContainer dataIds(dataId,*this); DataIdContainer::iterator dataIdIt = dataIds.begin(); if (!dataIds.empty()) for (;dataIdIt != dataIds.end();++dataIdIt) { std::cout << "-------- MARK 2 --"<< *dataIdIt <<"----------------" << std::endl; } } }; class TEST2 : public PalmCouplingPolicy { public: TEST2() { std::cout << "------------ TEST2 --------------" << std::endl; // int ret=0; CORBA::Long time=1,tag=1; typedef PalmCouplingPolicy::DataIdContainer DataIdContainer; typedef PalmCouplingPolicy::DataId DataId; DataId dataId(time,tag); //potentiellement avec un troisième paramètre //std::vector a(1,time);std::vector b(1,tag); //DataIdContainer dataIds(a,b); std::cout << "-------- MARK 1 --"<< dataId <<"----------------" << std::endl; filtre_conversion * f_time = get_filtre_convert_TIME(); filtre_conversion * f_tag = get_filtre_convert_TAG(); filtre_elementaire * f_time_2 = new filtre_elementaire(1); filtre_elementaire * g_time_2 = new filtre_elementaire(2); f_time->config_elementaire(*f_time_2, *g_time_2); filtre_elementaire * f_time_3 = new filtre_elementaire(1); f_time->config_elementaire(*f_time_3); // On accepte que les tags 1 et ce sans conversion filtre_elementaire * f_time_tag = new filtre_elementaire(1); f_time_tag = new filtre_elementaire(1); f_tag->config_elementaire(*f_time_tag); DataIdContainer dataIds(dataId,*this); DataIdContainer::iterator dataIdIt = dataIds.begin(); if (!dataIds.empty()) for (;dataIdIt != dataIds.end();++dataIdIt) { std::cout << "-------- MARK 2 --"<< *dataIdIt <<"----------------" << std::endl; } } }; int main() { TEST1 test1; TEST2 test2; }; salome-kernel-6.5.0/src/DSC/DSC_User/Datastream/fake.cc000077500000000000000000000021101177004724000223700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : fake.cc // Author : Eric Fayolle (EDF) // Module : KERNEL // void fake_method(void) { // int fake_int; }; salome-kernel-6.5.0/src/DSC/DSC_User/Makefile.am000077500000000000000000000061261177004724000211350ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = base_port.hxx \ uses_port.hxx \ provides_port.hxx \ Superv_Component_i.hxx \ DSC_Exception.hxx \ port_factory.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSCSuperv.la libSalomeDSCSuperv_la_SOURCES = base_port.cxx \ uses_port.cxx \ provides_port.cxx \ Superv_Component_i.cxx libSalomeDSCSuperv_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDSCSuperv_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeDSCSuperv_la_LIBADD = ../DSC_Basic/libSalomeDSCContainer.la # # =============================================================== # Executables targets # =============================================================== # noinst_PROGRAMS = test_DSC_Exception test_DSC_Exception_SOURCES = test_DSC_Exception.cxx test_DSC_Exception_CXXFLAGS = $(COMMON_CPPFLAGS) test_DSC_Exception_LDADD = $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(CORBA_LIBS) SUBDIRS = . Basic Datastream salome-kernel-6.5.0/src/DSC/DSC_User/Makefile.in000077500000000000000000001254001177004724000211430ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am noinst_PROGRAMS = test_DSC_Exception$(EXEEXT) subdir = src/DSC/DSC_User ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeDSCSuperv_la_DEPENDENCIES = \ ../DSC_Basic/libSalomeDSCContainer.la am_libSalomeDSCSuperv_la_OBJECTS = libSalomeDSCSuperv_la-base_port.lo \ libSalomeDSCSuperv_la-uses_port.lo \ libSalomeDSCSuperv_la-provides_port.lo \ libSalomeDSCSuperv_la-Superv_Component_i.lo libSalomeDSCSuperv_la_OBJECTS = $(am_libSalomeDSCSuperv_la_OBJECTS) libSalomeDSCSuperv_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeDSCSuperv_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(noinst_PROGRAMS) am_test_DSC_Exception_OBJECTS = \ test_DSC_Exception-test_DSC_Exception.$(OBJEXT) test_DSC_Exception_OBJECTS = $(am_test_DSC_Exception_OBJECTS) am__DEPENDENCIES_1 = test_DSC_Exception_DEPENDENCIES = \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(am__DEPENDENCIES_1) test_DSC_Exception_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(test_DSC_Exception_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDSCSuperv_la_SOURCES) \ $(test_DSC_Exception_SOURCES) DIST_SOURCES = $(libSalomeDSCSuperv_la_SOURCES) \ $(test_DSC_Exception_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(salomeinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = base_port.hxx \ uses_port.hxx \ provides_port.hxx \ Superv_Component_i.hxx \ DSC_Exception.hxx \ port_factory.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/GenericObj \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSCSuperv.la libSalomeDSCSuperv_la_SOURCES = base_port.cxx \ uses_port.cxx \ provides_port.cxx \ Superv_Component_i.cxx libSalomeDSCSuperv_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeDSCSuperv_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeDSCSuperv_la_LIBADD = ../DSC_Basic/libSalomeDSCContainer.la test_DSC_Exception_SOURCES = test_DSC_Exception.cxx test_DSC_Exception_CXXFLAGS = $(COMMON_CPPFLAGS) test_DSC_Exception_LDADD = $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(CORBA_LIBS) SUBDIRS = . Basic Datastream all: all-recursive .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/DSC_User/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/DSC_User/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDSCSuperv.la: $(libSalomeDSCSuperv_la_OBJECTS) $(libSalomeDSCSuperv_la_DEPENDENCIES) $(libSalomeDSCSuperv_la_LINK) -rpath $(libdir) $(libSalomeDSCSuperv_la_OBJECTS) $(libSalomeDSCSuperv_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test_DSC_Exception$(EXEEXT): $(test_DSC_Exception_OBJECTS) $(test_DSC_Exception_DEPENDENCIES) @rm -f test_DSC_Exception$(EXEEXT) $(test_DSC_Exception_LINK) $(test_DSC_Exception_OBJECTS) $(test_DSC_Exception_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSuperv_la-Superv_Component_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSuperv_la-base_port.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSuperv_la-provides_port.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSCSuperv_la-uses_port.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDSCSuperv_la-base_port.lo: base_port.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSuperv_la-base_port.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSuperv_la-base_port.Tpo -c -o libSalomeDSCSuperv_la-base_port.lo `test -f 'base_port.cxx' || echo '$(srcdir)/'`base_port.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSuperv_la-base_port.Tpo $(DEPDIR)/libSalomeDSCSuperv_la-base_port.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='base_port.cxx' object='libSalomeDSCSuperv_la-base_port.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSuperv_la-base_port.lo `test -f 'base_port.cxx' || echo '$(srcdir)/'`base_port.cxx libSalomeDSCSuperv_la-uses_port.lo: uses_port.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSuperv_la-uses_port.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSuperv_la-uses_port.Tpo -c -o libSalomeDSCSuperv_la-uses_port.lo `test -f 'uses_port.cxx' || echo '$(srcdir)/'`uses_port.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSuperv_la-uses_port.Tpo $(DEPDIR)/libSalomeDSCSuperv_la-uses_port.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='uses_port.cxx' object='libSalomeDSCSuperv_la-uses_port.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSuperv_la-uses_port.lo `test -f 'uses_port.cxx' || echo '$(srcdir)/'`uses_port.cxx libSalomeDSCSuperv_la-provides_port.lo: provides_port.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSuperv_la-provides_port.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSuperv_la-provides_port.Tpo -c -o libSalomeDSCSuperv_la-provides_port.lo `test -f 'provides_port.cxx' || echo '$(srcdir)/'`provides_port.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSuperv_la-provides_port.Tpo $(DEPDIR)/libSalomeDSCSuperv_la-provides_port.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='provides_port.cxx' object='libSalomeDSCSuperv_la-provides_port.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSuperv_la-provides_port.lo `test -f 'provides_port.cxx' || echo '$(srcdir)/'`provides_port.cxx libSalomeDSCSuperv_la-Superv_Component_i.lo: Superv_Component_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSCSuperv_la-Superv_Component_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDSCSuperv_la-Superv_Component_i.Tpo -c -o libSalomeDSCSuperv_la-Superv_Component_i.lo `test -f 'Superv_Component_i.cxx' || echo '$(srcdir)/'`Superv_Component_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSCSuperv_la-Superv_Component_i.Tpo $(DEPDIR)/libSalomeDSCSuperv_la-Superv_Component_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Superv_Component_i.cxx' object='libSalomeDSCSuperv_la-Superv_Component_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeDSCSuperv_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSCSuperv_la-Superv_Component_i.lo `test -f 'Superv_Component_i.cxx' || echo '$(srcdir)/'`Superv_Component_i.cxx test_DSC_Exception-test_DSC_Exception.o: test_DSC_Exception.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DSC_Exception_CXXFLAGS) $(CXXFLAGS) -MT test_DSC_Exception-test_DSC_Exception.o -MD -MP -MF $(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Tpo -c -o test_DSC_Exception-test_DSC_Exception.o `test -f 'test_DSC_Exception.cxx' || echo '$(srcdir)/'`test_DSC_Exception.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Tpo $(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test_DSC_Exception.cxx' object='test_DSC_Exception-test_DSC_Exception.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DSC_Exception_CXXFLAGS) $(CXXFLAGS) -c -o test_DSC_Exception-test_DSC_Exception.o `test -f 'test_DSC_Exception.cxx' || echo '$(srcdir)/'`test_DSC_Exception.cxx test_DSC_Exception-test_DSC_Exception.obj: test_DSC_Exception.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DSC_Exception_CXXFLAGS) $(CXXFLAGS) -MT test_DSC_Exception-test_DSC_Exception.obj -MD -MP -MF $(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Tpo -c -o test_DSC_Exception-test_DSC_Exception.obj `if test -f 'test_DSC_Exception.cxx'; then $(CYGPATH_W) 'test_DSC_Exception.cxx'; else $(CYGPATH_W) '$(srcdir)/test_DSC_Exception.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Tpo $(DEPDIR)/test_DSC_Exception-test_DSC_Exception.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test_DSC_Exception.cxx' object='test_DSC_Exception-test_DSC_Exception.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_DSC_Exception_CXXFLAGS) $(CXXFLAGS) -c -o test_DSC_Exception-test_DSC_Exception.obj `if test -f 'test_DSC_Exception.cxx'; then $(CYGPATH_W) 'test_DSC_Exception.cxx'; else $(CYGPATH_W) '$(srcdir)/test_DSC_Exception.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am \ install-salomeincludeHEADERS install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/DSC_User/Superv_Component_i.cxx000077500000000000000000000264661177004724000234540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Superv_Component_i.cxx // Author : André RIBES (EDF), Eric Fayolle (EDF) // Module : KERNEL // #include "Superv_Component_i.hxx" DSC_EXCEPTION_CXX(Superv_Component_i,BadFabType); DSC_EXCEPTION_CXX(Superv_Component_i,BadType); DSC_EXCEPTION_CXX(Superv_Component_i,BadCast); DSC_EXCEPTION_CXX(Superv_Component_i,UnexpectedState); DSC_EXCEPTION_CXX(Superv_Component_i,PortAlreadyDefined); DSC_EXCEPTION_CXX(Superv_Component_i,PortNotDefined); DSC_EXCEPTION_CXX(Superv_Component_i,PortNotConnected); DSC_EXCEPTION_CXX(Superv_Component_i,NilPort); DSC_EXCEPTION_CXX(Superv_Component_i,BadProperty); std::map Superv_Component_i::_factory_map; long Superv_Component_i::dscTimeOut=0; Superv_Component_i::Superv_Component_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif) : Engines_DSC_i(orb, poa, contId, instanceName, interfaceName) { #ifdef MYDEBUG std::cerr << "--Superv_Component_i : MARK 1 ---- " << instanceName << "----" << std::endl; #endif setTimeOut(); } Superv_Component_i::Superv_Component_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif, bool regist) : Engines_DSC_i(orb, poa, container, instanceName, interfaceName,notif,regist) { #ifdef MYDEBUG std::cerr << "--Superv_Component_i : MARK 1 ---- " << instanceName << "----" << std::endl; #endif setTimeOut(); } Superv_Component_i::~Superv_Component_i() { my_superv_ports_it = my_superv_ports.begin(); for(;my_superv_ports_it != my_superv_ports.end();my_superv_ports_it++) delete my_superv_ports_it->second; } void Superv_Component_i::register_factory(const std::string & factory_name, port_factory * factory_ptr) { factory_map_t::iterator it = _factory_map.find(factory_name); if (it == _factory_map.end() ) { _factory_map[factory_name] = factory_ptr; } } port_factory * Superv_Component_i::get_factory(const std::string & factory_name) { port_factory * rtn_factory = NULL; factory_map_t::iterator it = _factory_map.find(factory_name); if (it != _factory_map.end() ) { rtn_factory = _factory_map[factory_name]; } return rtn_factory; } provides_port * Superv_Component_i::create_provides_data_port(const std::string& port_fab_type) throw (BadFabType) { provides_port * rtn_port = NULL; std::string factory_name; std::string type_name; int search_result; search_result = port_fab_type.find("_"); factory_name = port_fab_type.substr(0,search_result); type_name = port_fab_type.substr(search_result+1, port_fab_type.length()); port_factory * factory = get_factory(factory_name); if (factory) { rtn_port = factory->create_data_servant(type_name); } if (rtn_port == NULL) throw BadFabType( LOC(OSS()<< "No way to get the port factory " <create_data_proxy(type_name); } if (rtn_proxy == NULL) throw BadFabType( LOC(OSS()<< "No way to get the port factory " <get_port_properties(); Ports::Port_var portref=port->get_port_ref(); Engines_DSC_interface::add_provides_port(portref, provides_port_name, portproperties); superv_port_t * new_superv_port = new superv_port_t(); new_superv_port->p_ref = port; my_superv_ports[provides_port_name] = new_superv_port; } catch (const Engines::DSC::PortAlreadyDefined&) { throw PortAlreadyDefined( LOC(OSS()<< "provides port " << provides_port_name <<" already exist.")); } catch (const Engines::DSC::NilPort&) { throw NilPort( LOC(OSS()<< "provides port pointer is nul.")); } catch (const Engines::DSC::BadProperty&) { throw BadProperty( LOC(OSS()<< "Property is not well defined")); } } void Superv_Component_i::add_port(uses_port * port, const char* uses_port_name) throw (PortAlreadyDefined, NilPort, BadProperty) { assert(port); assert(uses_port_name); try { Ports::PortProperties_var portproperties=port->get_port_properties(); Engines_DSC_interface::add_uses_port(port->get_repository_id(), uses_port_name, portproperties); superv_port_t * new_superv_port = new superv_port_t(); new_superv_port->u_ref = port; my_superv_ports[uses_port_name] = new_superv_port; } catch (const Engines::DSC::PortAlreadyDefined&) { throw PortAlreadyDefined( LOC(OSS()<< "uses port " << uses_port_name <<" already exists.")); } catch (const Engines::DSC::NilPort&) { throw NilPort( LOC(OSS()<< "uses port pointer is nul.")); } catch (const Engines::DSC::BadProperty&) { throw BadProperty( LOC(OSS()<< "Property is not well defined")); } } void Superv_Component_i::get_port(provides_port *& port, const char * provides_port_name) throw (PortNotDefined,PortNotConnected) { assert(provides_port_name); try { Ports::Port_var portref=Engines_DSC_interface::get_provides_port(provides_port_name, false); port = my_superv_ports[provides_port_name]->p_ref; } catch (const Engines::DSC::PortNotDefined&) { throw PortNotDefined( LOC(OSS()<< "provides port " << provides_port_name <<" does not exist.")); } catch (const Engines::DSC::PortNotConnected&) { throw PortNotConnected( LOC(OSS()<< "provides port " << provides_port_name << " is not connected.")); } } void Superv_Component_i::get_port(uses_port *& port, const char * uses_port_name) throw (PortNotDefined, PortNotConnected) { assert(uses_port_name); try { Engines::DSC::uses_port * portseq=Engines_DSC_i::get_uses_port(uses_port_name); delete portseq; port = my_superv_ports[uses_port_name]->u_ref; } catch (const Engines::DSC::PortNotDefined&) { throw PortNotDefined( LOC(OSS()<< "uses port " << uses_port_name <<" does not exist.")); } catch (const Engines::DSC::PortNotConnected&) { throw PortNotConnected( LOC(OSS()<< "uses port " << uses_port_name << " is not connected.")); } } void Superv_Component_i::provides_port_changed(const char* provides_port_name, int connection_nbr, const Engines::DSC::Message message) { my_superv_ports_it = my_superv_ports.find(provides_port_name); if (my_superv_ports_it != my_superv_ports.end()) my_superv_ports[provides_port_name]->p_ref->provides_port_changed(connection_nbr, message); } void Superv_Component_i::uses_port_changed(const char* uses_port_name, Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message) { my_superv_ports_it = my_superv_ports.find(uses_port_name); if (my_superv_ports_it != my_superv_ports.end()) my_superv_ports[uses_port_name]->u_ref->uses_port_changed(new Engines::DSC::uses_port(*new_uses_port), message); //delete the copy made by the caller delete new_uses_port; } void Superv_Component_i::get_uses_port_names(std::vector & port_names, const std::string servicename) const { port_names.reserve(my_superv_ports.size()); superv_ports::const_iterator it; for (it=my_superv_ports.begin(); it!=my_superv_ports.end();++it) if( (*it).second->p_ref == NULL ) port_names.push_back((*it).first); } void Superv_Component_i::setTimeOut() { char* valenv=getenv("DSC_TIMEOUT"); if(valenv) { std::istringstream iss(valenv); long temp; if (iss >> temp) if(temp >=0) Superv_Component_i::dscTimeOut=temp; } } void Superv_Component_i::beginService(const char *serviceName) { Engines_DSC_i::beginService(serviceName); setTimeOut(); } salome-kernel-6.5.0/src/DSC/DSC_User/Superv_Component_i.hxx000077500000000000000000000316531177004724000234530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Superv_Component_i.hxx // Author : André RIBES (EDF), Eric Fayolle (EDF) // Module : KERNEL // #ifndef _SUPERV_COMPONENT_I_HXX_ #define _SUPERV_COMPONENT_I_HXX_ #include "DSC_i.hxx" #include "base_port.hxx" #include "uses_port.hxx" #include "provides_port.hxx" #include "port_factory.hxx" #include "DSC_Exception.hxx" #include //#define MYDEBUG /*! \class Superv_Component_i * \brief This class implements DSC_User component. * * This class allows a higher programming level than DSC_Basic. It enables * a programming level for service's developpers who want to use DSC ports. * * This class has two level for using and declare ports. The higher level proposes * operations to add ports that are provided by default by SALOME like Calcium ports. * It provides too some methods to add their own DSC_User ports. * * \note This class doesn't implement the init_service CORBA operation. */ class Superv_Component_i : public Engines_DSC_i, virtual public POA_Engines::Superv_Component { public: Superv_Component_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif = false); Superv_Component_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif = false, bool regist = true ); virtual ~Superv_Component_i(); // Exceptions declarations. // There are defined on the Superv_Component_i.cxx to avoid problems // from dlopen. DSC_EXCEPTION(BadFabType); DSC_EXCEPTION(BadType); DSC_EXCEPTION(BadCast); DSC_EXCEPTION(UnexpectedState); DSC_EXCEPTION(PortAlreadyDefined); DSC_EXCEPTION(PortNotDefined); DSC_EXCEPTION(PortNotConnected); DSC_EXCEPTION(NilPort); DSC_EXCEPTION(BadProperty); /*! * \warning currently disabled. */ virtual provides_port * create_provides_control_port() {return NULL;} /*! * \warning currently disabled. */ virtual provides_port * create_provides_data_and_control_port(const char* port_type) {return NULL;} /*! * \warning currently disabled. */ virtual uses_port * create_uses_control_port() {return NULL;} /*! * \warning currently disabled. */ virtual uses_port * create_uses_data_and_control_port(const char* port_type) {return NULL;} /*! * This method permits to create a provides port provided by the platform. * (See documentation of DSC for knoing these ports). * * * \param port_fab_type type provides port. * \return the provides port. * * \note It's user repsonsability to destroy the provides port. */ virtual provides_port * create_provides_data_port(const std::string& port_fab_type) throw (BadFabType); /*! * This method permits to create a uses port provided by the platform. * (See documentation of DSC for knoing these ports). * * * \param port_fab_type type uses port. * \return the uses port. * * \note It's user repsonsability to destroy the uses port. */ virtual uses_port * create_uses_data_port(const std::string& port_fab_type) throw (BadFabType); /*! * Adds a port to the component. With this method only Salomé's provided DSC ports * can be added. * * \param port_fab_type type of the port. * \param port_type uses or provides. * \param port_name the name of the port in the component. */ virtual void add_port(const char * port_fab_type, const char * port_type, const char * port_name) throw (PortAlreadyDefined, BadFabType, BadType, BadProperty); /*! * Adds a port to the component. With this method only Salomé's provided DSC ports * can be added. * * \param port_fab_type type of the port. * \param port_type uses or provides. * \param port_name the name of the port in the component. * \return the created port. */ template < typename SpecificPortType > SpecificPortType * add_port(const char * port_fab_type, const char * port_type, const char * port_name) throw (PortAlreadyDefined, BadFabType, BadType, BadCast, BadProperty); /*! * Adds a created provides port to the component. * * \param port the provides port. * \param provides_port_name the name of the port in the component. */ virtual void add_port(provides_port * port, const char* provides_port_name) throw (PortAlreadyDefined, NilPort, BadProperty); /*! * Adds a created uses port to the component. * * \param port the uses port. * \param uses_port_name the name of the port in the component. */ virtual void add_port(uses_port * port, const char* uses_port_name) throw (PortAlreadyDefined, NilPort, BadProperty); /*! * Gets the provides port already added in the component. * * \param port the provides port pointer. * \param provides_port_name the name of the port. */ virtual void get_port(provides_port *& port, const char* provides_port_name) throw (PortNotDefined, PortNotConnected); /*! * Gets the uses port already added in the component. * * \param port the uses port pointer. * \param uses_port_name the name of the port. */ virtual void get_port(uses_port *& port, const char* uses_port_name) throw (PortNotDefined, PortNotConnected); /*! * Gets the list of the ports of a service. * If servicename is not set, all the ports of the component are * returned. * * \param port_names the ports's list. * \param servicename service's name. */ virtual void get_uses_port_names(std::vector & port_names, const std::string servicename="") const; /*! * Gets a port already added in the component. * * \param port_name the name of the port. * \return a port's pointer. */ template SpecificPortType * get_port( const char * port_name) throw (PortNotDefined, PortNotConnected, BadCast, UnexpectedState); /*! * \see DSC_Callbacks::provides_port_changed */ virtual void provides_port_changed(const char* provides_port_name, int connection_nbr, const Engines::DSC::Message message); /*! * \see DSC_Callbacks::uses_port_changed */ virtual void uses_port_changed(const char* uses_port_name, Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message); /*! * Add a factory the component. If the factory_name is already * used, the new library is not added. * * \param factory_name name of the factory (used by Superv_Component_i::create_provides_data_port * and Superv_Component_i::create_uses_data_port) * \param factory_ptr factory pointer (destroyed by the component) */ static void register_factory(const std::string & factory_name, port_factory * factory_ptr); /*! * Get a factory from the component. * * \param factory_name name of the factory. * \return factory pointer, NULL if the factory doesn't exist. */ virtual port_factory * get_factory(const std::string & factory_name); /*! */ static long dscTimeOut; static void setTimeOut(); void beginService(const char *serviceName); private: // Factory map typedef std::map factory_map_t; static factory_map_t _factory_map; /*-------------------------------------------------*/ // A Superv_Component port. struct superv_port_t { superv_port_t():u_ref(NULL),p_ref(NULL){}; ~superv_port_t() { if(u_ref)delete u_ref; if(p_ref) { // do not delete CORBA servant : deactivate it and then call _remove_ref or delete PortableServer::ServantBase* servant=dynamic_cast(p_ref); if(servant) { PortableServer::POA_var poa =servant->_default_POA(); PortableServer::ObjectId_var oid = poa->servant_to_id(servant); poa->deactivate_object(oid); servant->_remove_ref(); } } }; // For uses ports. uses_port * u_ref; // For provides ports. provides_port * p_ref; }; typedef std::map superv_ports; /*-------------------------------------------------*/ /*-------------------------------------------------*/ superv_ports my_superv_ports; superv_ports::iterator my_superv_ports_it; }; template < typename SpecificPortType > SpecificPortType * Superv_Component_i::add_port(const char * port_fab_type, const char * port_type, const char * port_name) throw (PortAlreadyDefined, BadFabType, BadType, BadCast, BadProperty) { assert(port_fab_type); assert(port_type); assert(port_name); SpecificPortType * retPort; #ifdef MYDEBUG std::cout << "---- Superv_Component_i::add_port : Mark 0 ---- " << port_name << "----" << std::endl; #endif std::string s_port_type(port_type); if (s_port_type == "provides") { provides_port * port = create_provides_data_port(port_fab_type); add_port(port, port_name); retPort = dynamic_cast(port); if ( retPort == NULL ) { delete port; throw BadCast( LOC("Can't cast to asked port type " )); } } else if (s_port_type == "uses") { uses_port * port = create_uses_data_port(port_fab_type); add_port(port, port_name); #ifdef MYDEBUG std::cout << "---- Superv_Component_i::add_port : Mark 1 ---- " << port << "----" << std::endl; std::cout << "---- Superv_Component_i::add_port : Mark 1 ---- get_repository_id()" << port->get_repository_id() << std::endl; #endif retPort = dynamic_cast(port); #ifdef MYDEBUG std::cout << "---- Superv_Component_i::add_port : Mark 2 ---- " << retPort << "----" << std::endl; #endif if ( retPort == NULL ) { delete port; throw BadCast( LOC("Can't cast to asked port type " )); } } else throw BadType(LOC(OSS()<< "port_type must be either 'provides' either 'uses' not " << port_type)); return retPort; }; template SpecificPortType * Superv_Component_i::get_port( const char * port_name) throw (PortNotDefined, PortNotConnected, BadCast, UnexpectedState) { assert(port_name); SpecificPortType * retPort; base_port * port; my_superv_ports_it = my_superv_ports.find(port_name); if (my_superv_ports_it == my_superv_ports.end()) { throw PortNotDefined( LOC(OSS()<< "Port " << port_name <<" does not exist")); } superv_port_t * superv_port = my_superv_ports[port_name]; try { if ( superv_port->p_ref != NULL ) { port = superv_port->p_ref; Ports::Port_var portref=Engines_DSC_interface::get_provides_port(port_name, false); } else if ( superv_port->u_ref != NULL ) { port = superv_port->u_ref; Engines::DSC::uses_port * portseq=Engines_DSC_i::get_uses_port(port_name); delete portseq; } else { throw UnexpectedState( LOC(OSS()<< "Internal Error superv_port struct is inconsistent ")); } } catch (const Engines::DSC::PortNotDefined&) { throw PortNotDefined( LOC(OSS()<< "port " << port_name <<" does not exist.")); } catch (const Engines::DSC::PortNotConnected&) { throw PortNotConnected( LOC(OSS()<< "port " << port_name << " is not connected.")); } retPort = dynamic_cast(port); if ( retPort == NULL ) { throw BadCast( LOC("Can't cast to required port type " )); } return retPort; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/base_port.cxx000077500000000000000000000030041177004724000215730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "base_port.hxx" #include base_port::base_port() { default_properties = new PortProperties_i(); } base_port::~base_port() { //do not call delete on corba servant: deactivate it and then call _remove_ref or delete PortableServer::POA_var poa =default_properties->_default_POA(); PortableServer::ObjectId_var oid = poa->servant_to_id(default_properties); poa->deactivate_object(oid); default_properties->_remove_ref(); } Ports::PortProperties_ptr base_port::get_port_properties() { return default_properties->_this(); } salome-kernel-6.5.0/src/DSC/DSC_User/base_port.hxx000077500000000000000000000030631177004724000216050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : base_port.hxx // Author : Eric Fayolle (EDF), André RIBES (EDF) // Module : KERNEL // #ifndef _PORT_HXX_ #define _PORT_HXX_ #include "PortProperties_i.hxx" /* * This class is base class for all DSC_User provides and uses port. * It provides a default property object for the port. */ class base_port { public : base_port(); virtual ~base_port(); /*! * This is used to get the property object of the port. * * \return property's CORBA reference. */ virtual Ports::PortProperties_ptr get_port_properties(); protected : PortProperties_i * default_properties; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/port_factory.hxx000077500000000000000000000032761177004724000223500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : port_factory.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _PORT_FACTORY_HXX #define _PORT_FACTORY_HXX #include "base_port.hxx" #include "uses_port.hxx" #include "provides_port.hxx" #include /*! \class port_factory * \brief This class is an abstract for all the DSC ports factories that have to be * registered into the component. */ class port_factory { public: virtual ~port_factory() {} /*! * This method creates a provides port. * * \param type port's type. * \return a pointer of the provides port. */ virtual provides_port * create_data_servant(std::string type) = 0; /*! * This method creates a uses port. * * \param type port's type. * \return a pointer of the uses port. */ virtual uses_port * create_data_proxy(std::string type) = 0; }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/provides_port.cxx000077500000000000000000000022101177004724000225120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : provides_port.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "provides_port.hxx" provides_port::provides_port() {} provides_port::~provides_port() {} salome-kernel-6.5.0/src/DSC/DSC_User/provides_port.hxx000077500000000000000000000040411177004724000225230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : provides_port.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _PROVIDES_PORT_HXX_ #define _PROVIDES_PORT_HXX_ #include "base_port.hxx" #include "SALOME_Ports.hh" #include "DSC_Engines.hh" /*! \class provides_port * \brief This class implements a DSC_User provides C++ port. * * This class is base class for all DSC_User provides port. * It's an abstract class. */ class provides_port : public base_port { public : provides_port(); virtual ~provides_port(); /*! * This method permits to get the CORBA reference of the port. * * \return port's CORBA reference. */ virtual Ports::Port_ptr get_port_ref() = 0; /*! * This method is the callback called by the component to inform * the provides port of a new or a removed connection. * * \param connection_nbr current connection number. * \param message message associated with this connection. */ virtual void provides_port_changed(int connection_nbr, const Engines::DSC::Message message) {} }; #endif salome-kernel-6.5.0/src/DSC/DSC_User/test_DSC_Exception.cxx000077500000000000000000000123651177004724000233150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : test_DSC_Exception.cxx // Author : Eric Fayolle (EDF) // Module : KERNEL // #include "DSC_Exception.hxx" //Compiler ce fichier en mode _DEBUG_ et sans _DEBUG_ class A { public: DSC_EXCEPTION(Exp1); DSC_EXCEPTION(Exp2); A() {}; virtual ~A() {}; // La salome exception ne permet pas de passer une chaine "" void lanceException1_1() throw(Exp1) { throw Exp1("_");} void lanceException1_2() throw(Exp1) { throw Exp1("Ceci est l'exception 1_2");} void lanceException1_3() throw(Exp1) { throw Exp1(LOC("Ceci est l'exception 1_3"));} void lanceException1_4() throw(Exp1) { throw Exp1(LOC(OSS() << "Ceci est l'exeption 1_4" )); } void lanceException1_5() throw(Exp1) { int a=1; throw Exp1(LOC(OSS() << "Ceci est l'exeption 1_5 avec la valeur A : " << a )); } void lanceException1_6() throw(Exp1) { Exp1 exp1(LOC(OSS() << "Ceci est l'exeption 1_6")); std::cout << "Affichage de exp1.what() dans lanceException1_6() " << exp1.what() << std::endl; throw Exp1(exp1); } void lanceException1_7() throw(Exp1) { throw Exp1(LOC(OSS() << "Ceci est l'exeption 1_7")); } }; DSC_EXCEPTION_CXX(A,Exp1); DSC_EXCEPTION_CXX(A,Exp2); int main() { A a; try { a.lanceException1_1(); } catch ( const A::Exp1 & ex ) { std::cout << "Exception 1 bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( const DSC_Exception & dscE ) { std::cout << "Exception DSC reçue mais aurait dû recevoir Exception 1" << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception 1" << std::endl; } try { a.lanceException1_2(); } // Essai par valeur (ne pas faire çà !) catch ( A::Exp1 ex ) { std::cout << "Exception 1 bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( const DSC_Exception & dscE ) { std::cout << "Exception DSC reçue mais aurait dû recevoir Exception 1" << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception 1" << std::endl; } try { a.lanceException1_3(); } catch ( const A::Exp1 & ex ) { std::cout << "Exception 1 bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( const DSC_Exception & dscE ) { std::cout << "Exception DSC reçue mais aurait dû recevoir Exception 1" << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception 1" << std::endl; } try { a.lanceException1_4(); } catch ( const A::Exp1 & ex ) { std::cout << "Exception 1 bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( const DSC_Exception & dscE ) { std::cout << "Exception DSC reçue mais aurait dû recevoir Exception 1" << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception 1" << std::endl; } try { a.lanceException1_5(); } catch ( const A::Exp1 & ex ) { std::cout << "Exception 1 bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( const DSC_Exception & dscE ) { std::cout << "Exception DSC reçue mais aurait dû recevoir Exception 1" << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception 1" << std::endl; } try { a.lanceException1_6(); } catch ( SALOME_Exception ex ) { std::cout << "Exception SALOME bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception SALOME" << std::endl; } try { a.lanceException1_6(); } catch ( const SALOME_Exception & ex ) { std::cout << "Exception SALOME bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception SALOME" << std::endl; } try { a.lanceException1_7(); } catch ( const DSC_Exception & ex ) { std::cout << "Exception DSC bien reçue" << std::endl; std::cout << ex.what() << std::endl; } catch ( const SALOME_Exception & ex ) { std::cout << "Exception SALOME reçue mais aurais dû recevoir une exception DSC" << std::endl; std::cout << ex.what() << std::endl; } catch ( ...) { std::cout << "Exception ... reçue mais aurait dû recevoir Exception DSC" << std::endl; } }; salome-kernel-6.5.0/src/DSC/DSC_User/uses_port.cxx000077500000000000000000000020401177004724000216370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "uses_port.hxx" uses_port::uses_port() {} uses_port::~uses_port() {} salome-kernel-6.5.0/src/DSC/DSC_User/uses_port.hxx000077500000000000000000000044401177004724000216520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : uses_port.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _USES_PORT_HXX_ #define _USES_PORT_HXX_ #include "base_port.hxx" #include "SALOME_Ports.hh" #include "DSC_Engines.hh" /*! \class uses_port * \brief This class implements a DSC_User uses C++ port. * * This class is base class for all DSC_User uses port. * It's an abstract class. * * Contrary to DSC_Basic layer, a uses port as an implementation * provided by this class which permits to manipulate the uses port. */ class uses_port : public base_port { public : uses_port(); virtual ~uses_port(); /*! * This is used by the component to get the CORBA repository id * of the uses port. It's an abstract method. * * \return port's CORBA repository id. */ virtual const char * get_repository_id() = 0; /*! * This method is the uses port's callback to be aware of * connections states. * It's an abstract method. The uses port uses this method * to manage the sequence of the DSC_Basic uses port. * * \param new_uses_port new uses port sequence. * \param message message associated with this modification. */ virtual void uses_port_changed(Engines::DSC::uses_port * new_uses_port, const Engines::DSC::Message message) = 0; }; #endif salome-kernel-6.5.0/src/DSC/Makefile.am000077500000000000000000000024311177004724000175210ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # SUBDIRS_COMMON = DSC_Basic if !WINDOWS SUBDIRS_ADD = DSC_User DSC_Python endif if WITH_PACO_PARALLEL SUBDIR_PAR = ParallelDSC endif SUBDIRS = $(SUBDIRS_COMMON) $(SUBDIRS_ADD) $(SUBDIR_PAR) EXTRA_DIST= DSC.dox DIST_SUBDIRS = DSC_Basic DSC_User DSC_Python ParallelDSC salome-kernel-6.5.0/src/DSC/Makefile.in000077500000000000000000000561751177004724000175500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/DSC DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # SUBDIRS_COMMON = DSC_Basic @WINDOWS_FALSE@SUBDIRS_ADD = DSC_User DSC_Python @WITH_PACO_PARALLEL_TRUE@SUBDIR_PAR = ParallelDSC SUBDIRS = $(SUBDIRS_COMMON) $(SUBDIRS_ADD) $(SUBDIR_PAR) EXTRA_DIST = DSC.dox DIST_SUBDIRS = DSC_Basic DSC_User DSC_Python ParallelDSC all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/ParallelDSC/000077500000000000000000000000001177004724000175505ustar00rootroot00000000000000salome-kernel-6.5.0/src/DSC/ParallelDSC/Makefile.am000077500000000000000000000052101177004724000216050ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = ParallelDSC_i.hxx \ Param_Double_Port_provides_i.hxx \ Param_Double_Port_uses_i.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/ParallelContainer \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/GenericObj \ -I$(top_builddir)/idl \ -I$(top_srcdir)/src/Registry \ -I$(top_srcdir)/src/Utils \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ @PACO_INCLUDES@ @MPI_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeParallelDSCContainer.la libSalomeParallelDSCContainer_la_SOURCES = ParallelDSC_i.cxx \ Param_Double_Port_provides_i.cxx \ Param_Double_Port_uses_i.cxx libSalomeParallelDSCContainer_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeParallelDSCContainer_la_LIBADD = $(COMMON_LIBS) libSalomeParallelDSCContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 salome-kernel-6.5.0/src/DSC/ParallelDSC/Makefile.in000077500000000000000000001026001177004724000216170ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/DSC/ParallelDSC ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libSalomeParallelDSCContainer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSalomeParallelDSCContainer_la_OBJECTS = \ libSalomeParallelDSCContainer_la-ParallelDSC_i.lo \ libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.lo \ libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.lo libSalomeParallelDSCContainer_la_OBJECTS = \ $(am_libSalomeParallelDSCContainer_la_OBJECTS) libSalomeParallelDSCContainer_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeParallelDSCContainer_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeParallelDSCContainer_la_SOURCES) DIST_SOURCES = $(libSalomeParallelDSCContainer_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = ParallelDSC_i.hxx \ Param_Double_Port_provides_i.hxx \ Param_Double_Port_uses_i.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/ParallelContainer \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/DSC/DSC_Basic \ -I$(top_srcdir)/src/GenericObj \ -I$(top_builddir)/idl \ -I$(top_srcdir)/src/Registry \ -I$(top_srcdir)/src/Utils \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ @PACO_INCLUDES@ @MPI_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeParallelDSCContainer.la libSalomeParallelDSCContainer_la_SOURCES = ParallelDSC_i.cxx \ Param_Double_Port_provides_i.cxx \ Param_Double_Port_uses_i.cxx libSalomeParallelDSCContainer_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeParallelDSCContainer_la_LIBADD = $(COMMON_LIBS) libSalomeParallelDSCContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/DSC/ParallelDSC/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/DSC/ParallelDSC/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeParallelDSCContainer.la: $(libSalomeParallelDSCContainer_la_OBJECTS) $(libSalomeParallelDSCContainer_la_DEPENDENCIES) $(libSalomeParallelDSCContainer_la_LINK) -rpath $(libdir) $(libSalomeParallelDSCContainer_la_OBJECTS) $(libSalomeParallelDSCContainer_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelDSCContainer_la-ParallelDSC_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeParallelDSCContainer_la-ParallelDSC_i.lo: ParallelDSC_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelDSCContainer_la-ParallelDSC_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelDSCContainer_la-ParallelDSC_i.Tpo -c -o libSalomeParallelDSCContainer_la-ParallelDSC_i.lo `test -f 'ParallelDSC_i.cxx' || echo '$(srcdir)/'`ParallelDSC_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelDSCContainer_la-ParallelDSC_i.Tpo $(DEPDIR)/libSalomeParallelDSCContainer_la-ParallelDSC_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ParallelDSC_i.cxx' object='libSalomeParallelDSCContainer_la-ParallelDSC_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelDSCContainer_la-ParallelDSC_i.lo `test -f 'ParallelDSC_i.cxx' || echo '$(srcdir)/'`ParallelDSC_i.cxx libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.lo: Param_Double_Port_provides_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.Tpo -c -o libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.lo `test -f 'Param_Double_Port_provides_i.cxx' || echo '$(srcdir)/'`Param_Double_Port_provides_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.Tpo $(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Param_Double_Port_provides_i.cxx' object='libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelDSCContainer_la-Param_Double_Port_provides_i.lo `test -f 'Param_Double_Port_provides_i.cxx' || echo '$(srcdir)/'`Param_Double_Port_provides_i.cxx libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.lo: Param_Double_Port_uses_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.Tpo -c -o libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.lo `test -f 'Param_Double_Port_uses_i.cxx' || echo '$(srcdir)/'`Param_Double_Port_uses_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.Tpo $(DEPDIR)/libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Param_Double_Port_uses_i.cxx' object='libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelDSCContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelDSCContainer_la-Param_Double_Port_uses_i.lo `test -f 'Param_Double_Port_uses_i.cxx' || echo '$(srcdir)/'`Param_Double_Port_uses_i.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/DSC/ParallelDSC/ParallelDSC_i.cxx000077500000000000000000000106751177004724000227060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : ParallelDSC_i.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "ParallelDSC_i.hxx" Engines_ParallelDSC_i::Engines_ParallelDSC_i(CORBA::ORB_ptr orb, char * ior, int rank, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif) : Engines_Parallel_Component_i(orb, ior, rank, poa, contId, instanceName, interfaceName, notif), Engines::Parallel_DSC_serv(orb, ior, rank), Engines::Parallel_DSC_base_serv(orb, ior, rank), Engines::DSC_serv(orb, ior, rank), Engines::DSC_base_serv(orb, ior, rank), Engines::Superv_Component_serv(orb, ior, rank), Engines::Superv_Component_base_serv(orb, ior, rank), Engines::EngineComponent_serv(orb, ior, rank), Engines::EngineComponent_base_serv(orb, ior, rank), Engines::Parallel_Component_serv(orb, ior, rank), Engines::Parallel_Component_base_serv(orb, ior, rank), InterfaceParallel_impl(orb, ior, rank) { } Engines_ParallelDSC_i::~Engines_ParallelDSC_i() {} // WARNING !!! // CURRENTLY ERRORS ARE NOT SUPPORTED !!!!!!! // WARNING !! void Engines_ParallelDSC_i::set_paco_proxy(const CORBA::Object_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop) { assert(provides_port_name); Engines_DSC_interface::add_provides_port(Ports::Port::_narrow(ref), provides_port_name, port_prop); // Waiting that all the nodes have the proxy _my_com->paco_barrier(); cerr << "set_paco_proxy node fin" << endl; } const char * Engines_ParallelDSC_i::get_proxy(const char* provides_port_name) { char * rtn_char = NULL; Ports::Port_ptr proxy = Engines_DSC_interface::get_provides_port(provides_port_name, 0); if (!CORBA::is_nil(proxy)) rtn_char = (char *) _orb->object_to_string(proxy); return rtn_char; } CORBA::Boolean Engines_ParallelDSC_i::add_parallel_provides_proxy_port(const CORBA::Object_ptr ref, const char * provides_port_name, Ports::PortProperties_ptr port_prop) { assert(provides_port_name); CORBA::Boolean rtn_bool = false; Engines::Parallel_DSC_var real_comp_proxy = Engines::Parallel_DSC::_narrow(InterfaceParallel_impl::_proxy); real_comp_proxy->set_paco_proxy(ref, provides_port_name, port_prop); rtn_bool = true; return rtn_bool; } CORBA::Boolean Engines_ParallelDSC_i::add_parallel_provides_proxy_wait(const char * provides_port_name) { assert(provides_port_name); char * proxy = NULL; try { proxy = (char *) get_proxy(provides_port_name); } catch(...) { while(proxy == NULL) { sleep(1); try { proxy = (char *) get_proxy(provides_port_name); } catch(...) {} } } return true; } CORBA::Boolean Engines_ParallelDSC_i::add_parallel_provides_node_port(Ports::Port_PaCO_ptr ref, const char* provides_port_name) { CORBA::Boolean rtn_bool = false; PaCO::InterfaceParallel_var node = PaCO::InterfaceParallel::_narrow(ref); node->deploy(); rtn_bool = true; return rtn_bool; } salome-kernel-6.5.0/src/DSC/ParallelDSC/ParallelDSC_i.hxx000077500000000000000000000170531177004724000227100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : ParallelDSC_i.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _PARALLEL_DSC_COMPONENT_I_HXX_ #define _PARALLEL_DSC_COMPONENT_I_HXX_ #include #include #include "DSC_interface.hxx" #include "SALOME_ParallelComponent_i.hxx" #include "SALOME_PACOExtensionPaCO_Engines_Parallel_DSC_server.hxx" #include "SALOME_PortsPaCO.hxx" class Engines_ParallelDSC_i: public virtual Engines_Parallel_Component_i, public virtual Engines::Parallel_DSC_serv, public virtual Engines_DSC_interface { public: Engines_ParallelDSC_i(CORBA::ORB_ptr orb, char * ior, int rank, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif = false); virtual ~Engines_ParallelDSC_i(); /*! * \see Engines::DSC::add_provides_port */ virtual void add_provides_port(Ports::Port_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::NilPort, Engines::DSC::BadProperty) { Engines_DSC_interface::add_provides_port(ref, provides_port_name, port_prop); } /*! * \see Engines::DSC::add_uses_port */ virtual void add_uses_port(const char* repository_id, const char* uses_port_name, Ports::PortProperties_ptr port_prop) throw (Engines::DSC::PortAlreadyDefined, Engines::DSC::BadProperty) { Engines_DSC_interface::add_uses_port(repository_id, uses_port_name, port_prop); } /*! * \see Engines::DSC::get_provides_port */ virtual Ports::Port_ptr get_provides_port(const char* provides_port_name, const CORBA::Boolean connection_error) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { return Engines_DSC_interface::get_provides_port(provides_port_name, connection_error); } /*! * \see Engines::DSC::get_uses_port */ virtual Engines::DSC::uses_port * get_uses_port(const char* uses_port_name) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { return Engines_DSC_interface::get_uses_port(uses_port_name); } /*! * \see Engines::DSC::connect_provides_port */ virtual void connect_provides_port(const char* provides_port_name) throw (Engines::DSC::PortNotDefined) { Engines_DSC_interface::connect_provides_port(provides_port_name); } /*! * \see Engines::DSC::connect_uses_port */ virtual void connect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref) throw (Engines::DSC::PortNotDefined, Engines::DSC::BadPortType, Engines::DSC::NilPort) { Engines_DSC_interface::connect_uses_port(uses_port_name, provides_port_ref); } /*! * \see Engines::DSC::is_connected */ virtual CORBA::Boolean is_connected(const char* port_name) throw (Engines::DSC::PortNotDefined) { return Engines_DSC_interface::is_connected(port_name); } /*! * \see Engines::DSC::disconnect_provides_port */ virtual void disconnect_provides_port(const char* provides_port_name, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected) { Engines_DSC_interface::disconnect_provides_port(provides_port_name, message); } /*! * \see Engines::DSC::disconnect_uses_port */ virtual void disconnect_uses_port(const char* uses_port_name, Ports::Port_ptr provides_port_ref, const Engines::DSC::Message message) throw (Engines::DSC::PortNotDefined, Engines::DSC::PortNotConnected, Engines::DSC::BadPortReference) { Engines_DSC_interface::disconnect_uses_port(uses_port_name, provides_port_ref, message); } virtual Ports::PortProperties_ptr get_port_properties(const char* port_name) throw (Engines::DSC::PortNotDefined) { return Engines_DSC_interface::get_port_properties(port_name); } /*! * This method is used to register the proxy of the parallel port into * all the nodes of the parallel component. * * \param ref CORBA proxy reference. * \param provides_port_name provides port associated with the proxy. * \param port_prop port properties. */ virtual void set_paco_proxy(CORBA::Object_ptr ref, const char* provides_port_name, Ports::PortProperties_ptr port_prop); /*! * This method is used by the node that want to add the parallel proxy port. * * \param ref CORBA proxy reference. * \param provides_port_name provides port associated with the proxy. * * \return true if the proxy is correctly added. */ virtual CORBA::Boolean add_parallel_provides_proxy_port(const CORBA::Object_ptr ref, const char * provides_port_name, Ports::PortProperties_ptr port_prop); /*! * This method by the nodes that do not add the proxy to wait is reference. * * \param provides_port_name provides port associated with the proxy. * * \return true if the proxy is correctly added. */ virtual CORBA::Boolean add_parallel_provides_proxy_wait(const char * provides_port_name); /*! * Permits to add a parallel node of a parallel provides port. * * \param ref CORBA node reference. * \param provides_port_name provides port associated with the node. * * \return true if the node is correctly added. */ virtual CORBA::Boolean add_parallel_provides_node_port(Ports::Port_PaCO_ptr ref, const char* provides_port_name); /*! * Used to get the proxy of the parallel port. * * \param provides_port_name name of the parallel provides port. * * \return IOR of the proxy. */ virtual const char * get_proxy(const char* provides_port_name); }; #endif salome-kernel-6.5.0/src/DSC/ParallelDSC/Param_Double_Port_provides_i.cxx000077500000000000000000000300571177004724000260650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : param_double_port_provides.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include #include #include #include "Param_Double_Port_provides_i.hxx" #include #include #include #include #include #include Param_Double_Port_provides_i::Param_Double_Port_provides_i(CORBA::ORB_ptr orb, char * ior, int rank) : Ports::Param_Double_Port_serv(orb,ior,rank), Ports::Param_Double_Port_base_serv(orb,ior,rank), Ports::Data_Port_serv(orb,ior,rank), Ports::Data_Port_base_serv(orb,ior,rank), Ports::Port_serv(orb,ior,rank), Ports::Port_base_serv(orb,ior,rank), InterfaceParallel_impl(orb,ior,rank) { _seq_data = NULL; seq_data_termine = false; seq_data_mutex = new pthread_mutex_t(); pthread_mutex_init(seq_data_mutex, NULL); seq_data_condition = new pthread_cond_t(); pthread_cond_init(seq_data_condition, NULL); seq_data_termine_cp = true; seq_data_mutex_cp = new pthread_mutex_t(); pthread_mutex_init(seq_data_mutex_cp, NULL); seq_data_condition_cp = new pthread_cond_t(); pthread_cond_init(seq_data_condition_cp, NULL); _seq_results = NULL; seq_results_termine = false; seq_results_mutex = new pthread_mutex_t(); pthread_mutex_init(seq_results_mutex, NULL); seq_results_condition = new pthread_cond_t(); pthread_cond_init(seq_results_condition, NULL); seq_results_termine_cp = true; seq_results_mutex_cp = new pthread_mutex_t(); pthread_mutex_init(seq_results_mutex_cp, NULL); seq_results_condition_cp = new pthread_cond_t(); pthread_cond_init(seq_results_condition_cp, NULL); } Param_Double_Port_provides_i::~Param_Double_Port_provides_i() { if (_seq_data) delete _seq_data; pthread_mutex_destroy(seq_data_mutex); delete seq_data_mutex; pthread_cond_destroy(seq_data_condition); delete seq_data_condition; pthread_mutex_destroy(seq_data_mutex_cp); delete seq_data_mutex_cp; pthread_cond_destroy(seq_data_condition_cp); delete seq_data_condition_cp; if (_seq_results) delete _seq_results; pthread_mutex_destroy(seq_results_mutex); delete seq_results_mutex; pthread_cond_destroy(seq_results_condition); delete seq_results_condition; pthread_mutex_destroy(seq_results_mutex_cp); delete seq_results_mutex_cp; pthread_cond_destroy(seq_results_condition_cp); delete seq_results_condition_cp; } Param_Double_Port_provides_i * Param_Double_Port_provides_i::init_port(Engines_ParallelDSC_i * par_compo, std::string port_name, CORBA::ORB_ptr orb) { int rank = par_compo->getMyRank(); int totalNode = par_compo->getTotalNode(); paco_com * com = par_compo->getCom(); MESSAGE("Configuration of Param_Double_Port_provides: rank = " << rank << " totalNode = " << totalNode); // DOIT ETRE DEJA FAIT AVANT !!!??? paco_fabrique_manager* pfm = paco_getFabriqueManager(); pfm->register_com("pdp_dummy", new paco_dummy_fabrique()); pfm->register_thread("pdp_thread", new paco_omni_fabrique()); pfm->register_comScheduling("pdp_direct", new paco_direct_fabrique()); pfm->register_distribution("pdp_GaBro", new GaBro_fab()); pfm->register_distribution("pdp_BasicBC", new BasicBC_fab()); Param_Double_Port_provides_i * port = NULL; Ports::Param_Double_Port_proxy_impl * proxy_node = NULL; std::cerr << "Creating Proxy" << std::endl; if (rank == 0) { // On commence par créer le proxy // Il est enregistré dans le composant et sera détruit automatiquement // lorsque le composant sera détruit proxy_node = new Ports::Param_Double_Port_proxy_impl(CORBA::ORB::_duplicate(orb), pfm->get_thread("pdp_thread")); proxy_node->setLibCom("pdp_dummy", proxy_node); proxy_node->setLibThread("pdp_thread"); PaCO::PacoTopology_t serveur_topo; serveur_topo.total = totalNode; proxy_node->setTopology(serveur_topo); // Création de la propriété PortProperties_i * proxy_node_properties = new PortProperties_i(); // Enregistrement du proxy par_compo->add_parallel_provides_proxy_port(proxy_node->_this(), port_name.c_str(), proxy_node_properties->_this()); proxy_node->_remove_ref(); proxy_node_properties->_remove_ref(); } else { par_compo->add_parallel_provides_proxy_wait(port_name.c_str()); } std::cerr << "Getting proxy" << std::endl; char * proxy_ior = (char * ) par_compo->get_proxy(port_name.c_str()); std::cerr << "Proxy ior is : " << proxy_ior << std::endl; port = new Param_Double_Port_provides_i(CORBA::ORB::_duplicate(orb), proxy_ior, rank); port->copyClientGlobalContext(par_compo); // Il faut maintenant configurer les bibliothèques // de redistributions de la fonction put ParallelMethodContext * method_ptr = port->getParallelMethodContext("put"); method_ptr->setLibComScheduling("pdp_direct"); method_ptr->setDistLibArg("param_data", "pdp_BasicBC", "in"); BasicBC * dislib = (BasicBC *) method_ptr->getDistLibArg("param_data", "in"); dislib->setEltSize(sizeof(CORBA::Double)); // Il faut maintenant configurer les bibliothèques // de redistributions de la fonction get_results method_ptr = port->getParallelMethodContext("get_results"); method_ptr->setLibComScheduling("pdp_direct"); method_ptr->setDistLibArg("param_results", "pdp_GaBro", "out"); GaBro * dislib_gabro = (GaBro *) method_ptr->getDistLibArg("param_results", "out"); dislib_gabro->setEltSize(sizeof(CORBA::Double)); // Enregistement du port for (int i = 0; i < totalNode; i++) { std::ostringstream node_number; node_number << i; std::string event_name("AddNode"); event_name += node_number.str(); std::string tag_name = proxy_ior; if (i == rank) { std::cerr << "Adding node of processor : " << i << std::endl; par_compo->add_parallel_provides_node_port(Ports::Port_PaCO::_narrow(port->_this()), port_name.c_str()); port->_remove_ref(); par_compo->InterfaceParallel_impl::_proxy->send_event(event_name.c_str(), tag_name.c_str()); } par_compo->wait_event(event_name.c_str(), tag_name.c_str()); } // On démarre l'objet parallèle std::string event_name("StartingProxy"); std::string tag_name = proxy_ior; if (rank == 0) { proxy_node->start(); par_compo->InterfaceParallel_impl::_proxy->send_event(event_name.c_str(), tag_name.c_str()); } CORBA::string_free(proxy_ior); return port; } void Param_Double_Port_provides_i::wait_init_port(Engines_ParallelDSC_i * par_compo, std::string port_name, CORBA::ORB_ptr orb) { int rank = par_compo->getMyRank(); int totalNode = par_compo->getTotalNode(); // Enregistement du port for (int i = 0; i < totalNode; i++) { std::ostringstream node_number; node_number << i; std::string event_name("WaitingNode"); event_name += node_number.str(); char * proxy_ior = (char * ) par_compo->get_proxy(port_name.c_str()); std::string tag_name(proxy_ior); CORBA::string_free(proxy_ior); if (i == rank) par_compo->InterfaceParallel_impl::_proxy->send_event(event_name.c_str(), tag_name.c_str()); par_compo->wait_event(event_name.c_str(), tag_name.c_str()); } } void Param_Double_Port_provides_i::put(const Ports::Param_Double_Port::seq_double & param_data) { // On attend que le get soit fait // Au départ seq_data_termine_cp = TRUE pthread_mutex_lock(seq_data_mutex_cp); while (seq_data_termine_cp == false) { pthread_cond_wait(seq_data_condition_cp, seq_data_mutex_cp); } seq_data_termine_cp = false; pthread_mutex_unlock(seq_data_mutex_cp); pthread_mutex_lock(seq_data_mutex); // Création d'une nouvelle séquence // Elle prend le buffer sans le copier Ports::Param_Double_Port::seq_double * n_param_data = (Ports::Param_Double_Port::seq_double *) ¶m_data; _seq_data = new Ports::Param_Double_Port::seq_double(n_param_data->length(), n_param_data->length(), n_param_data->get_buffer(1), 1); seq_data_termine = true; pthread_cond_signal(seq_data_condition); pthread_mutex_unlock(seq_data_mutex); } void Param_Double_Port_provides_i::get_results(Ports::Param_Double_Port::seq_double_out param_results) { pthread_mutex_lock(seq_results_mutex); while (seq_results_termine == false) { pthread_cond_wait(seq_results_condition, seq_results_mutex); } // Création d'une nouvelle séquence // Elle prend le buffer sans le copier param_results = new Ports::Param_Double_Port::seq_double(_seq_results->length(), _seq_results->length(), _seq_results->get_buffer(1), 1); delete _seq_results; _seq_results = NULL; seq_results_termine = false; pthread_mutex_unlock(seq_results_mutex); // On indique que l'on a copié la valeur // Et donc que l'on peut recevoir une nouvelle valeur pthread_mutex_lock(seq_results_mutex_cp); seq_results_termine_cp = true; pthread_cond_signal(seq_results_condition_cp); pthread_mutex_unlock(seq_results_mutex_cp); } Ports::Param_Double_Port::seq_double * Param_Double_Port_provides_i::get_data() { Ports::Param_Double_Port::seq_double * result = NULL; pthread_mutex_lock(seq_data_mutex); while (seq_data_termine == false) { pthread_cond_wait(seq_data_condition, seq_data_mutex); } // Création d'une nouvelle séquence // Elle prend le buffer sans le copier result = new Ports::Param_Double_Port::seq_double(_seq_data->length(), _seq_data->length(), _seq_data->get_buffer(1), 1); delete _seq_data; _seq_data = NULL; seq_data_termine = false; pthread_mutex_unlock(seq_data_mutex); // On indique que l'on a copié la valeur // Et donc que l'on peut recevoir une nouvelle valeur pthread_mutex_lock(seq_data_mutex_cp); seq_data_termine_cp = true; pthread_cond_signal(seq_data_condition_cp); pthread_mutex_unlock(seq_data_mutex_cp); return result; } void Param_Double_Port_provides_i::set_data(Ports::Param_Double_Port::seq_double * results) { // On attend que le get soit fait // Au départ seq_results_termine_cp = TRUE pthread_mutex_lock(seq_results_mutex_cp); while (seq_results_termine_cp == false) { pthread_cond_wait(seq_results_condition_cp, seq_results_mutex_cp); } seq_results_termine_cp = false; pthread_mutex_unlock(seq_results_mutex_cp); pthread_mutex_lock(seq_results_mutex); // Création d'une nouvelle séquence // Elle prend le buffer sans le copier _seq_results = new Ports::Param_Double_Port::seq_double(results->length(), results->length(), results->get_buffer(1), 1); seq_results_termine = true; pthread_cond_signal(seq_results_condition); pthread_mutex_unlock(seq_results_mutex); } void Param_Double_Port_provides_i::configure_set_data(int data_length, int totalNbElt, int BeginEltPos) { // Configuration de la biblothèque de redistribution // pour les données actuelles ParallelMethodContext * method_ptr = getParallelMethodContext("get_results"); GaBro * dislib = (GaBro *) method_ptr->getDistLibArg("param_results", "out"); dislib->setNodeNbElt(data_length); dislib->setTotalNbElt(totalNbElt); dislib->setNodePos(BeginEltPos); } salome-kernel-6.5.0/src/DSC/ParallelDSC/Param_Double_Port_provides_i.hxx000077500000000000000000000060261177004724000260710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : param_double_port_provides.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _PARAM_DOUBLE_PORT_PROVIDES_HXX_ #define _PARAM_DOUBLE_PORT_PROVIDES_HXX_ #include "SALOME_ParamPortsPaCO_Ports_Param_Double_Port_server.hxx" #include "ParallelDSC_i.hxx" #include "PortProperties_i.hxx" class Param_Double_Port_provides_i : public virtual Ports::Param_Double_Port_serv { public : Param_Double_Port_provides_i(CORBA::ORB_ptr orb, char * ior, int rank); virtual ~Param_Double_Port_provides_i(); void put(const Ports::Param_Double_Port::seq_double & param_data); void get_results(Ports::Param_Double_Port::seq_double_out param_results); // local methods Ports::Param_Double_Port::seq_double * get_data(); void set_data(Ports::Param_Double_Port::seq_double * results); void configure_set_data(int data_length, int totalNbElt, int BeginEltPos); // Aide à la création du port static Param_Double_Port_provides_i * init_port(Engines_ParallelDSC_i * par_compo, std::string port_name, CORBA::ORB_ptr orb); // Méthode temporaire en attendant d'avoir des méthodes parallèles bien synchronisé static void wait_init_port(Engines_ParallelDSC_i * par_compo, std::string port_name, CORBA::ORB_ptr orb); private: // Buffers pour la réception et l'envoi Ports::Param_Double_Port::seq_double * _seq_data; Ports::Param_Double_Port::seq_double * _seq_results; // Variable pour la gestion du buffer de réception pthread_mutex_t * seq_data_mutex; pthread_cond_t * seq_data_condition; bool seq_data_termine; pthread_mutex_t * seq_data_mutex_cp; pthread_cond_t * seq_data_condition_cp; bool seq_data_termine_cp; // Variable pour la gestion du buffer d'envoi pthread_mutex_t * seq_results_mutex; pthread_cond_t * seq_results_condition; bool seq_results_termine; pthread_mutex_t * seq_results_mutex_cp; pthread_cond_t * seq_results_condition_cp; bool seq_results_termine_cp; }; #endif salome-kernel-6.5.0/src/DSC/ParallelDSC/Param_Double_Port_uses_i.cxx000077500000000000000000000102031177004724000252000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : param_double_port_uses.cxx // Author : André RIBES (EDF) // Module : KERNEL // #include "Param_Double_Port_uses_i.hxx" Param_Double_Port_uses_i::Param_Double_Port_uses_i(Engines_ParallelDSC_i * par_compo, std::string port_name, CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); _fake_properties = new PortProperties_i(); _fake_prop_ref = _fake_properties->_this(); _fake_properties->_remove_ref(); _par_compo = par_compo; _port_name = port_name; _provides_port = NULL; paco_fabrique_manager * pfm = paco_getFabriqueManager(); pfm->register_comScheduling("Param_Double_Port_uses_i_direct", new paco_direct_fabrique()); pfm->register_distribution("Param_Double_Port_uses_i_GaBro", new GaBro_fab()); pfm->register_distribution("Param_Double_Port_uses_i_BasicBC", new BasicBC_fab()); } Param_Double_Port_uses_i::~Param_Double_Port_uses_i() { if (_provides_port) { _provides_port->stop(); delete _provides_port; } } void Param_Double_Port_uses_i::add_port_to_component() { _par_compo->add_uses_port("IDL:Ports/Param_Double_Port:1.0", _port_name.c_str(), _fake_prop_ref); } void Param_Double_Port_uses_i::start_port() { Engines::DSC::uses_port * uport = _par_compo->get_uses_port(_port_name.c_str()); _proxy_port = Ports::Param_Double_Port::_narrow((*uport)[0]); _provides_port = Ports::PaCO_Param_Double_Port::PaCO_narrow(_proxy_port, _orb); _provides_port->copyClientGlobalContext(_par_compo); _provides_port->init(_par_compo->getMyRank(), _par_compo->getTotalNode()); // Il faut maintenant configurer les bibliothèques // de redistributions de la fonction put ParallelMethodContext * method_ptr; method_ptr = _provides_port->getParallelMethodContext("put"); method_ptr->setLibComScheduling("Param_Double_Port_uses_i_direct"); method_ptr->setDistLibArg("param_data", "Param_Double_Port_uses_i_BasicBC", "in"); BasicBC * dislib = (BasicBC *) method_ptr->getDistLibArg("param_data", "in"); dislib->setEltSize(sizeof(CORBA::Double)); dislib->setBlocSize(0); // BLOC dislib->setNodeRank(_par_compo->getMyRank()); // Il faut maintenant configurer les bibliothèques // de redistributions de la fonction get_results method_ptr = _provides_port->getParallelMethodContext("get_results"); method_ptr->setLibComScheduling("Param_Double_Port_uses_i_direct"); method_ptr->setDistLibArg("param_results", "Param_Double_Port_uses_i_GaBro", "out"); GaBro * dislib_gabro = (GaBro *) method_ptr->getDistLibArg("param_results", "out"); dislib_gabro->setEltSize(sizeof(CORBA::Double)); _provides_port->start(); delete uport; } void Param_Double_Port_uses_i::configure_port_method_put(int totalNbElt) { ParallelMethodContext * method_ptr; method_ptr = _provides_port->getParallelMethodContext("put"); BasicBC * dislib = (BasicBC *) method_ptr->getDistLibArg("param_data", "in"); dislib->setTotalNbElt(totalNbElt); } void Param_Double_Port_uses_i::put(const Ports::Param_Double_Port::seq_double & param_data) { _provides_port->put(param_data); } void Param_Double_Port_uses_i::get_results(Ports::Param_Double_Port::seq_double_out param_results) { _provides_port->get_results(param_results); } salome-kernel-6.5.0/src/DSC/ParallelDSC/Param_Double_Port_uses_i.hxx000077500000000000000000000041001177004724000252040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : param_double_port_uses.hxx // Author : André RIBES (EDF) // Module : KERNEL // #ifndef _PARAM_DOUBLE_PORT_USES_HXX_ #define _PARAM_DOUBLE_PORT_USES_HXX_ #include "SALOME_ParamPortsPaCO_Ports_Param_Double_Port_client.hxx" #include "ParallelDSC_i.hxx" #include "PortProperties_i.hxx" #include #include #include class Param_Double_Port_uses_i { public : Param_Double_Port_uses_i(Engines_ParallelDSC_i * par_compo, std::string port_name, CORBA::ORB_ptr orb); virtual ~Param_Double_Port_uses_i(); // Port local init methods virtual void add_port_to_component(); virtual void start_port(); void configure_port_method_put(int totalNbElt); // Port methods void put(const Ports::Param_Double_Port::seq_double & param_data); void get_results(Ports::Param_Double_Port::seq_double_out param_results); private : CORBA::ORB_var _orb; std::string _port_name; Engines_ParallelDSC_i * _par_compo; Ports::Param_Double_Port_var _proxy_port; PortProperties_i * _fake_properties; Ports::PortProperties_var _fake_prop_ref; Ports::PaCO_Param_Double_Port * _provides_port; }; #endif salome-kernel-6.5.0/src/GenericObj/000077500000000000000000000000001177004724000170605ustar00rootroot00000000000000salome-kernel-6.5.0/src/GenericObj/Makefile.am000077500000000000000000000033331177004724000211210ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/GenericObj/Makefile.am,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:11 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # header files salomeinclude_HEADERS =\ SALOME_GenericObj_i.hh # Libraries targets lib_LTLIBRARIES = libSalomeGenericObj.la libSalomeGenericObj_la_SOURCES =\ SALOME_GenericObj_i.cc libSalomeGenericObj_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeGenericObj_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeGenericObj_la_LIBADD = \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la salome-kernel-6.5.0/src/GenericObj/Makefile.in000077500000000000000000000720471177004724000211420ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/GenericObj ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeGenericObj_la_DEPENDENCIES = \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la am_libSalomeGenericObj_la_OBJECTS = \ libSalomeGenericObj_la-SALOME_GenericObj_i.lo libSalomeGenericObj_la_OBJECTS = $(am_libSalomeGenericObj_la_OBJECTS) libSalomeGenericObj_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeGenericObj_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeGenericObj_la_SOURCES) DIST_SOURCES = $(libSalomeGenericObj_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/GenericObj/Makefile.am,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:11 vsr Exp $ # # header files salomeinclude_HEADERS = \ SALOME_GenericObj_i.hh # Libraries targets lib_LTLIBRARIES = libSalomeGenericObj.la libSalomeGenericObj_la_SOURCES = \ SALOME_GenericObj_i.cc libSalomeGenericObj_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeGenericObj_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeGenericObj_la_LIBADD = \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/GenericObj/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/GenericObj/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeGenericObj.la: $(libSalomeGenericObj_la_OBJECTS) $(libSalomeGenericObj_la_DEPENDENCIES) $(libSalomeGenericObj_la_LINK) -rpath $(libdir) $(libSalomeGenericObj_la_OBJECTS) $(libSalomeGenericObj_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeGenericObj_la-SALOME_GenericObj_i.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeGenericObj_la-SALOME_GenericObj_i.lo: SALOME_GenericObj_i.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeGenericObj_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeGenericObj_la-SALOME_GenericObj_i.lo -MD -MP -MF $(DEPDIR)/libSalomeGenericObj_la-SALOME_GenericObj_i.Tpo -c -o libSalomeGenericObj_la-SALOME_GenericObj_i.lo `test -f 'SALOME_GenericObj_i.cc' || echo '$(srcdir)/'`SALOME_GenericObj_i.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeGenericObj_la-SALOME_GenericObj_i.Tpo $(DEPDIR)/libSalomeGenericObj_la-SALOME_GenericObj_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_GenericObj_i.cc' object='libSalomeGenericObj_la-SALOME_GenericObj_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeGenericObj_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeGenericObj_la-SALOME_GenericObj_i.lo `test -f 'SALOME_GenericObj_i.cc' || echo '$(srcdir)/'`SALOME_GenericObj_i.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/GenericObj/SALOME_GenericObj_i.cc000077500000000000000000000075351177004724000227630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_GenericObj_i.cc // Author : Alexey PETROV, Open CASCADE S.A.S. (alexey.petrov@opencascade.com) #include "SALOME_GenericObj_i.hh" #include "utilities.h" #ifdef _DEBUG_ static int MYDEBUG = 0; #else static int MYDEBUG = 0; #endif namespace SALOME { /*! \class SALOME::GenericObj_i \brief Implementation of the base servant for SALOME objects with reference counter. This class can be used to implement data entities with life-cycle management based on the reference counting. The object is initially created with the reference counter equal to 1. The function Register() can be used to incrfement the reference counter. Function UnRegister() should be used to decrement reference counter. As soon as reference counter goes to zero, the object is automatically deactivated in POA (and, eventually its destructor is automatically called). */ /*! \brief Constructor. Creates an object with the reference counter initially set to 1. The default POA for the servant can be passed as a parameter \a thePOA. By default, root POA is used. \param thePOA optional default POA for the servant */ GenericObj_i::GenericObj_i(PortableServer::POA_ptr thePOA): myRefCounter(1) { if(MYDEBUG) MESSAGE("GenericObj_i::GenericObj_i() - this = "<GetId()); } HDFarray::~HDFarray() { if(_dim ) delete [] _dim; } hdf_type HDFarray::GetDataType() { if (_datatype == HDF_NONE) if ((_datatype = HDFarrayGetType(_id)) == HDF_NONE ) throw HDFexception("Can't determine the type of array data"); return _datatype; } void HDFarray::CreateOnDisk() { if( (_id = HDFarrayCreate(_datatype,_ndim, _dim)) < 0 ) throw HDFexception("Can't create HDF array"); } void HDFarray::CloseOnDisk() { if( HDFarrayClose(_id) < 0 ) throw HDFexception("Can't close HDF array"); } int HDFarray::nDim() { if (_ndim == -1) if ((_ndim = HDFarrayGetnDim(_id)) < 0) throw HDFexception("Can't determine the array dimensions number"); return _ndim; } void HDFarray::GetDim(hdf_size dim[]) { int i; int ndim; hdf_err ret; if (_dim == 0) { if (_ndim == -1) ndim = HDFdatasetGetnDim(_id); else ndim = _ndim; _dim = new hdf_size[ndim]; if ((ret = HDFarrayGetDim(_id,_dim)) < 0) throw HDFexception("Can't determine the size dimensions of the array "); } for (i=0;i<_ndim;i++) dim[i] = _dim[i]; } hdf_object_type HDFarray::GetObjectType() { return HDF_ARRAY_TYPE; } salome-kernel-6.5.0/src/HDFPersist/HDFarray.hxx000077500000000000000000000032331177004724000212210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFarray.hxx // Module : SALOME // #ifndef HDFARRAY_HXX #define HDFARRAY_HXX #include "HDFobject.hxx" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFarray : public HDFobject { protected: HDFobject* _father; hdf_type _datatype; hdf_size* _dim; int _ndim; public : HDFarray( HDFobject* father, hdf_type dataType, int ndim, hdf_size *dim); HDFarray( HDFobject* father); virtual ~HDFarray(); virtual hdf_type GetDataType(); virtual hdf_object_type GetObjectType(); void CreateOnDisk(); void CloseOnDisk(); int nDim(); void GetDim(hdf_size dim[]); }; #endif /* HDFARRAY_HXX */ salome-kernel-6.5.0/src/HDFPersist/HDFarrayClose.c000077500000000000000000000030651177004724000216250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFarrayClose.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFarrayClose * - Description : close a HDF array * - Parameters : * - id (IN) : array ID * - Result : * - if success : returns 0 * - if failure : returns -1 */ hdf_err HDFarrayClose(hdf_idt id) { hdf_err ret; if ((ret = H5Tclose(id)) < 0) return -1; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFarrayCreate.c000077500000000000000000000044631177004724000217660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFarrayCreate.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFarrayCreate * - Description : creates a HDF array * - Parameters : * - dataType (IN) : type of the data in the array (HDF_INT32, HDF_INT64, HDF_FLOAT64, HDF_CHAR). * - ndim (IN) : is the number of dimensions and the size of each dimension is specified in the array dims. * - dim (IN) : size of each array dimension. * - Result : * - if success : returns array ID * - if failure : -1 */ hdf_idt HDFarrayCreate(hdf_type dataType, int ndim, hdf_size *dim) { hdf_idt type_hdf; switch(dataType) { case HDF_FLOAT64 : #if defined (PCLINUX) || defined (PCLINUX64) type_hdf = H5T_IEEE_F64BE; #else type_hdf = H5T_IEEE_F64LE; #endif break; case HDF_INT32 : #if defined (PCLINUX) || defined (PCLINUX64) type_hdf = H5T_STD_I32BE; #else type_hdf = H5T_NATIVE_INT; #endif break; case HDF_INT64 : type_hdf = H5T_NATIVE_LONG; break; case HDF_CHAR : type_hdf = H5T_NATIVE_CHAR; break; default: return -1; break; } return H5Tarray_create2( type_hdf, ndim, dim ); } salome-kernel-6.5.0/src/HDFPersist/HDFarrayGetDim.c000077500000000000000000000031641177004724000217310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFarrayGetDim.c Module : SALOME ----------------------------------------------------------------------------*/ #include #include "hdfi.h" #include hdf_err HDFarrayGetDim(hdf_idt id,hdf_size dim[]) { hdf_err ret = 0; hdf_size *tmp; int ndim, i; if ( (ndim = H5Tget_array_ndims(id)) < 0 ) return -1; tmp = (hdf_size *) malloc(sizeof(hdf_size)*ndim); ret = H5Tget_array_dims2(id, tmp); for( i=0 ; i < ndim ; i++) dim[i] = tmp[i]; free (tmp); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFarrayGetType.c000077500000000000000000000036471177004724000221470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFarrayGetType.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include hdf_type HDFarrayGetType(hdf_idt type_id) { hdf_idt super; hdf_type type; hdf_size_type size; if(type_id < 0 ) return HDF_NONE; if((super = H5Tget_super(type_id)) < 0 ) return HDF_NONE; switch (H5Tget_class(super)) { case H5T_INTEGER : size = H5Tget_size(super); if(size == 1) type = HDF_CHAR; else if (size == 4) type = HDF_INT32; else type = HDF_INT64; break; case H5T_FLOAT : type = HDF_FLOAT64; break; case H5T_STRING : type = HDF_STRING; break; default : type = HDF_NONE; } H5Tclose(super); return type; } salome-kernel-6.5.0/src/HDFPersist/HDFarrayGetTypeId.c000077500000000000000000000025161177004724000224160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFarrayGetTypeId.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include hdf_idt HDFarrayGetTypeId(hdf_idt id) { return H5Dget_type(id); } salome-kernel-6.5.0/src/HDFPersist/HDFarrayGetnDim.c000077500000000000000000000026041177004724000221050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFarrayGetnDim.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include int HDFarrayGetnDim(hdf_idt id) { int ndim; if ((ndim = H5Tget_array_ndims(id)) < 0) return -1; return ndim; } salome-kernel-6.5.0/src/HDFPersist/HDFascii.cc000077500000000000000000000601661177004724000207610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Tool.cxx // Created : Mon Oct 21 16:24:34 2002 // Author : Sergey RUIN // Project : SALOME // Module : SALOMEDS // #include "HDFOI.hxx" #include #include #include #include #include #ifdef WIN32 #include #include #include #define open _open #define read _read #define close _close #define dir_separator '\\' #else #define dir_separator '/' #endif void Move(const std::string& fName, const std::string& fNameDst); bool Exists(const std::string thePath); bool CreateAttributeFromASCII(HDFinternalObject *father, FILE* fp); bool CreateDatasetFromASCII(HDFcontainerObject *father, FILE *fp); bool CreateGroupFromASCII(HDFcontainerObject *father, FILE *fp); void SaveAttributeInASCIIfile(HDFattribute *hdf_attribute, FILE* fp, int ident); void SaveGroupInASCIIfile(HDFgroup *hdf_group, FILE* fp, int ident); void SaveDatasetInASCIIfile(HDFdataset *hdf_dataset, FILE* fp, int ident); std::string GetTmpDir(); char* makeName(char* name); char* restoreName(char* name); void write_float64(FILE* fp, hdf_float64* value); void read_float64(FILE* fp, hdf_float64* value); void WriteSimpleData( FILE* fp, HDFdataset *hdf_dataset, hdf_type type, long size ); #define MAX_STRING_SIZE 65535 #define MAX_ID_SIZE 20 #define NB_FLOAT_IN_ROW 3 #define NB_INTEGER_IN_ROW 9 #define ASCIIHDF_ID "ASCIIHDF" #define ATTRIBUTE_ID "ATTRIBUTE" #define DATASET_ID "DATASET" #define GROUP_ID "GROUP" #define ASCIIHDF_ID_END "ASCIIHDF_END" #define ATTRIBUTE_ID_END "ATTRIBUTE_END" #define DATASET_ID_END "DATASET_END" #define GROUP_ID_END "GROUP_END" //============================================================================ // function : isASCII // purpose : Returns True if the file is a converted to ASCII HDF file //============================================================================ bool HDFascii::isASCII(const char* thePath) { int fd; if(!(fd = open(thePath, O_RDONLY))) return false; char* aBuffer = new char[9]; aBuffer[8] = (char)0; read(fd, aBuffer, 8); close(fd); if(strcmp(aBuffer, ASCIIHDF_ID) == 0) return true; return false; } //############################## HDF => ASCII ################################ //============================================================================ // function : ConvertFromHDFToASCII // purpose : Converts a file pointed by thePath to ASCII format // If isReplace is true the newly created file will replace the existent one. // If isReplace is false theExtension will be added to a created file name // Returns the file name of ASCII file //============================================================================ char* HDFascii::ConvertFromHDFToASCII(const char* thePath, bool isReplace, const char* theExtension) { std::string aPath(thePath); if(!isReplace) { if(theExtension == NULL) aPath += ".asc"; else aPath += (char*)theExtension; } std::string aFileName(aPath); if(isReplace) aFileName=aPath+".ascii_tmp"; HDFfile *hdf_file = new HDFfile((char*)thePath); hdf_file->OpenOnDisk(HDF_RDONLY); char name[HDF_NAME_MAX_LEN+1]; int nbsons = hdf_file->nInternalObjects(), nbAttr = hdf_file->nAttributes(); FILE* fp = fopen(aFileName.c_str(), "wb"); fprintf(fp, "%s\n", ASCIIHDF_ID); fprintf(fp, "%i\n", nbsons+nbAttr); for(int j=0; jGetAttributeName(j); HDFattribute *hdf_attribute = new HDFattribute(attr_name, hdf_file); delete attr_name; SaveAttributeInASCIIfile(hdf_attribute, fp, 0); hdf_attribute = 0; } for (int i=0; iInternalObjectIndentify(i,name); if (strncmp(name, "INTERNAL_COMPLEX",16) == 0) continue; hdf_object_type type = hdf_file->InternalObjectType(name); if(type == HDF_DATASET) { HDFdataset* hdf_dataset = new HDFdataset(name, hdf_file); SaveDatasetInASCIIfile(hdf_dataset, fp, 0); hdf_dataset = 0; } else if(type == HDF_GROUP) { HDFgroup *hdf_group = new HDFgroup(name, hdf_file); SaveGroupInASCIIfile(hdf_group, fp, 0); hdf_group = 0; } } fprintf(fp, "%s", ASCIIHDF_ID_END); fclose(fp); hdf_file->CloseOnDisk(); delete hdf_file; if(isReplace) { if(Exists(aFileName)) Move(aFileName, aPath); else return NULL; } int length = strlen(aPath.c_str()); char *new_str = new char[ 1+length ]; strcpy(new_str , aPath.c_str()) ; return new_str; } //============================================================================ // function : SaveGroupInASCIIfile // purpose : //============================================================================ void SaveGroupInASCIIfile(HDFgroup *hdf_group, FILE* fp, int ident) { hdf_group->OpenOnDisk(); int nbsons = hdf_group->nInternalObjects(), nbAttr = hdf_group->nAttributes(); fprintf(fp, "%s\n", GROUP_ID); char* name = makeName(hdf_group->GetName()); fprintf(fp, "%s %i\n", name, nbsons+nbAttr); delete [] name; for(int j=0; jGetAttributeName(j); HDFattribute *hdf_attribute = new HDFattribute(name, hdf_group); delete [] name; SaveAttributeInASCIIfile(hdf_attribute, fp, ident+1); hdf_attribute = 0; } char objName[HDF_NAME_MAX_LEN+1]; for (int i=0; iInternalObjectIndentify(i, objName); if (strncmp(objName, "INTERNAL_COMPLEX",16) == 0) continue; hdf_object_type type = hdf_group->InternalObjectType(objName); if (type == HDF_DATASET) { HDFdataset* hdf_dataset = new HDFdataset(objName, hdf_group); SaveDatasetInASCIIfile(hdf_dataset, fp, ident+1); hdf_dataset = 0; } else if (type == HDF_GROUP) { HDFgroup *hdf_subgroup = new HDFgroup(objName, hdf_group); SaveGroupInASCIIfile(hdf_subgroup, fp, ident+1); hdf_subgroup = 0; } } fprintf(fp, "%s\n", GROUP_ID_END); hdf_group->CloseOnDisk(); } //============================================================================ // function : SaveDatasetInASCIIfile // purpose : //============================================================================ void SaveDatasetInASCIIfile(HDFdataset *hdf_dataset, FILE* fp, int ident) { hdf_dataset->OpenOnDisk(); long size = (long) hdf_dataset->GetSize(); long ndim = hdf_dataset->nDim(); //Get number of dimesions hdf_size *dim = new hdf_size[ndim]; hdf_type type = hdf_dataset->GetType(); hdf_byte_order order = hdf_dataset->GetOrder(); int nbAttr = hdf_dataset->nAttributes(); char* name = makeName(hdf_dataset->GetName()); fprintf(fp, "%s\n", DATASET_ID); fprintf(fp, "%s %i %i\n", name, type, nbAttr); delete [] name; hdf_dataset->GetDim(dim); fprintf(fp, " %i\n", ndim); for(int i = 0;i < ndim;i++) { fprintf(fp, " %i", dim[i]); } fprintf(fp, "\n"); delete [] dim; fprintf(fp, "%li %i:", size, order); if( type == HDF_ARRAY ) { HDFarray *array = new HDFarray(hdf_dataset); hdf_type data_type = array->GetDataType(); fprintf(fp, "\n" ); fprintf(fp, " %i\n", data_type ); //Write array data type //Write nDim of the array int arr_ndim = array->nDim(); fprintf(fp, " %i\n", arr_ndim); hdf_size *arr_dim = new hdf_size[arr_ndim]; array->GetDim(arr_dim); for( int i = 0;i < arr_ndim; i++ ) { fprintf(fp, " %i", arr_dim[i]); } //And write the data array WriteSimpleData( fp, hdf_dataset, data_type, size); } else { WriteSimpleData( fp, hdf_dataset, type, size); } fprintf(fp, "\n"); for ( int j=0; jGetAttributeName(j); HDFattribute *hdf_attribute = new HDFattribute(name, hdf_dataset); delete [] name; SaveAttributeInASCIIfile(hdf_attribute, fp, ident+1); hdf_attribute = 0; } fprintf(fp, "%s\n", DATASET_ID_END); hdf_dataset->CloseOnDisk(); } //============================================================================ // function : SaveAttributeInASCIIfile // purpose : //============================================================================ void SaveAttributeInASCIIfile(HDFattribute *hdf_attribute, FILE* fp, int ident) { hdf_attribute->OpenOnDisk(); hdf_type type = hdf_attribute->GetType(); char* name = makeName(hdf_attribute->GetName()); int size = hdf_attribute->GetSize(); fprintf(fp, "%s\n", ATTRIBUTE_ID); fprintf(fp, "%s %i %i\n", name, type, size); delete [] name; if (type == HDF_STRING) { char* val = new char[size+1]; hdf_attribute->ReadFromDisk(val); fprintf(fp, ":"); fwrite(val, 1, size, fp); fprintf(fp, "\n"); delete [] val; } else if (type == HDF_FLOAT64) { hdf_float64 val; hdf_attribute->ReadFromDisk(&val); write_float64(fp, &val); fprintf(fp, "\n"); } else if(type == HDF_INT64) { hdf_int64 val; hdf_attribute->ReadFromDisk(&val); fprintf(fp, "%li \n", val); } else if(type == HDF_INT32) { hdf_int32 val; hdf_attribute->ReadFromDisk(&val); fprintf(fp, "%i \n", val); } fprintf(fp, "%s\n", ATTRIBUTE_ID_END); hdf_attribute->CloseOnDisk(); } //############################## ASCII => HDF ################################ //============================================================================ // function : ConvertFromASCIIToHDF // purpose : Converts a file pointed by thePath to HDF format // Returns a name of directory where a created HDF file is placed // The created file is named "hdf_from_ascii.hdf" //============================================================================ char* HDFascii::ConvertFromASCIIToHDF(const char* thePath, bool isReplace) { std::string aTmpDir, aFullName; if(!isReplace) { // Get a temporary directory to store a file aTmpDir = GetTmpDir(); // Build a full file name of temporary file aFullName = aTmpDir + "hdf_from_ascii.hdf"; } else { aTmpDir = thePath; aFullName = std::string(thePath)+".ascii_tmp"; } FILE *fp = fopen(thePath, "rb"); if(!fp) return NULL; HDFfile *hdf_file = new HDFfile((char*)aFullName.c_str()); hdf_file->CreateOnDisk(); char type[9]; int nbsons, i; fscanf(fp, "%s", type); fscanf(fp, "%i",&nbsons); if(strcmp(type, ASCIIHDF_ID) != 0) return NULL; for(i = 0; i < nbsons; i++) { char id_of_begin[MAX_ID_SIZE]; fscanf(fp, "%s\n", id_of_begin); if(strcmp(id_of_begin, GROUP_ID) == 0) { if(!CreateGroupFromASCII(hdf_file, fp)) { std::cout << "ConvertFromASCIIToHDF : Can not create group number " << i << std::endl; return NULL; } } else if(strcmp(id_of_begin, DATASET_ID) == 0) { if(!CreateDatasetFromASCII(hdf_file, fp)) { std::cout << "ConvertFromASCIIToHDF :Can not create dataset number " << i << std::endl; return NULL; } } else if(strcmp(id_of_begin, ATTRIBUTE_ID) == 0) { if(!CreateAttributeFromASCII(hdf_file, fp)) { std::cout << "ConvertFromASCIIToHDF :Can not create attribute number " << i << std::endl; return NULL; } } else std::cout << "ConvertFromASCIIToHDF : Unrecognized type " << id_of_begin << std::endl; } char id_of_end[MAX_ID_SIZE]; fscanf(fp, "%s", id_of_end); if(strcmp(id_of_end, ASCIIHDF_ID_END) != 0) { std::cout << "ConvertFromASCIIToHDF : Can not find the end ASCII token " << std::endl; return false; } hdf_file->CloseOnDisk(); delete hdf_file; if(isReplace) { if(Exists(aFullName)) Move(aFullName, thePath); else return NULL; } int length = strlen(aTmpDir.c_str()); char *new_str = new char[ 1+length ]; strcpy(new_str , aTmpDir.c_str()) ; fclose(fp); return new_str; } //============================================================================ // function : CreateGroupFromASCII // purpose : Creates a HDF group from a set attributes situated under theLabel //============================================================================ bool CreateGroupFromASCII(HDFcontainerObject *father, FILE *fp) { char name[HDF_NAME_MAX_LEN+1]; int nbsons, i; fscanf(fp, "%s %i\n", name, &nbsons); char* new_name = restoreName(name); HDFgroup* hdf_group = new HDFgroup(new_name, father); delete [] new_name; hdf_group->CreateOnDisk(); for(i = 0; i < nbsons; i++) { char id_of_begin[MAX_ID_SIZE]; fscanf(fp, "%s\n", id_of_begin); if(strcmp(id_of_begin, GROUP_ID) == 0) { if(!CreateGroupFromASCII(hdf_group, fp)) { std::cout << "Can not create subgroup " << i << " for group " << name << std::endl; return false; } } else if(strcmp(id_of_begin, DATASET_ID) == 0) { if(!CreateDatasetFromASCII(hdf_group, fp)) { std::cout << "Can not create dataset " << i << " for group " << name << std::endl; return false; } } else if(strcmp(id_of_begin, ATTRIBUTE_ID) == 0) { if(!CreateAttributeFromASCII(hdf_group, fp)) { std::cout << "Can not create attribute " << i << " for group " << name << std::endl; return false; } } else std::cout << "CreateGroupFromASCII : Unrecognized type " << id_of_begin << std::endl; } hdf_group->CloseOnDisk(); hdf_group = 0; //will be deleted by father destructor char id_of_end[MAX_ID_SIZE]; fscanf(fp, "%s\n", id_of_end); if(strcmp(id_of_end, GROUP_ID_END) != 0) { std::cout << "CreateGroupFromASCII : Invalid end token : " << id_of_end << std::endl; return false; } return true; } //============================================================================ // function : CreateDatasetFromASCII // purpose : Creates a HDF dataset from a set attributes situated under theLabel //============================================================================ bool CreateDatasetFromASCII(HDFcontainerObject *father, FILE *fp) { char name[HDF_NAME_MAX_LEN+1]; hdf_type type; hdf_byte_order order; int nbDim, nbAttr; long i, size; fscanf(fp, "%s %i %i\n", name, &type, &nbAttr); char* new_name = restoreName(name); fscanf(fp, "%i\n", &nbDim); hdf_size* sizeArray = new hdf_size[nbDim]; int dim = 0; for(i = 0; iCreateOnDisk(); type = arr_data_type; delete [] arr_dim; } HDFdataset* hdf_dataset = new HDFdataset(new_name, father, anArray ? HDF_ARRAY : type, sizeArray, nbDim, order); if(anArray) hdf_dataset->SetArrayId(anArray->GetId()); delete [] new_name; delete [] sizeArray; hdf_dataset->CreateOnDisk(); if (type == HDF_STRING) { char *val = new char[size+1]; fread(val, 1, size, fp); hdf_dataset->WriteOnDisk(val); delete [] val; } else if (type == HDF_FLOAT64) { hdf_float64* val = new hdf_float64[size]; for(i=0; iWriteOnDisk(val); delete [] val; } else if(type == HDF_INT64) { hdf_int64* val = new hdf_int64[size]; for(i=0; iWriteOnDisk(val); delete [] val; } else if(type == HDF_INT32) { hdf_int32* val = new hdf_int32[size]; for(i=0; iWriteOnDisk(val); delete [] val; } else if(type == HDF_CHAR) { hdf_char* val = new hdf_char[size]; for(i=0; iWriteOnDisk(val); delete [] val; } char token[MAX_ID_SIZE]; for(i = 0; i < nbAttr; i++) { fscanf(fp, "%s\n", token); if(strcmp(token, ATTRIBUTE_ID) == 0) { if(!CreateAttributeFromASCII(hdf_dataset, fp)) { std::cout << "Can not create attribute " << i << " for dataset " << name << std::endl; return false; } } else { std::cout << "CreateGroupFromASCII : Unrecognized type " << token << std::endl; return false; } } fscanf(fp, "%s\n", token); if(strcmp(token, DATASET_ID_END) != 0) { std::cout << "CreateDatasetFromASCII : Invalid end token : " << token << std::endl; return false; } hdf_dataset->CloseOnDisk(); hdf_dataset = 0; //will be deleted by father destructor if(anArray) { anArray->CloseOnDisk(); anArray = 0; //will be deleted by father destructor } return true; } //============================================================================ // function : CreateAttributeFromASCII // purpose : Creates a HDF attribute from a set attributes situated under theLabel //============================================================================ bool CreateAttributeFromASCII(HDFinternalObject *father, FILE* fp) { char name[HDF_NAME_MAX_LEN+1]; hdf_type type; int size; fscanf(fp, "%s %i %i\n", name, &type, &size); char* new_name = restoreName(name); HDFattribute* hdf_attribute = new HDFattribute(new_name, father, type, size); hdf_attribute->CreateOnDisk(); delete [] new_name; if (type == HDF_STRING) { char tmp; fscanf(fp, "%c", &tmp); char *val = new char[size+1]; val[size] = (char)0; fread(val, 1, size, fp); hdf_attribute->WriteOnDisk(val); delete [] val; } else if (type == HDF_FLOAT64) { hdf_float64 val; read_float64(fp, &val); hdf_attribute->WriteOnDisk(&val); } else if(type == HDF_INT64) { hdf_int64 val; fscanf(fp, "%li", &val); hdf_attribute->WriteOnDisk(&val); } else if(type == HDF_INT32) { hdf_int32 val; fscanf(fp, "%i", &val); hdf_attribute->WriteOnDisk(&val); } hdf_attribute->CloseOnDisk(); hdf_attribute = 0; //will be deleted by father destructor char id_of_end[MAX_ID_SIZE]; fscanf(fp, "%s\n", id_of_end); if(strcmp(id_of_end, ATTRIBUTE_ID_END) != 0) { std::cout << "CreateAttributeFromASCII : Invalid end token : " << id_of_end << std::endl; return false; } return true; } //============================================================================ // function : GetTempDir // purpose : Return a temp directory to store created files like "/tmp/sub_dir/" //============================================================================ std::string GetTmpDir() { //Find a temporary directory to store a file std::string aTmpDir; char *Tmp_dir = getenv("SALOME_TMP_DIR"); if(Tmp_dir != NULL) { aTmpDir = std::string(Tmp_dir); if(aTmpDir[aTmpDir.size()-1] != dir_separator) aTmpDir+=dir_separator; } else { #ifdef WIN32 aTmpDir = std::string("C:\\"); #else aTmpDir = std::string("/tmp/"); #endif } srand((unsigned int)time(NULL)); int aRND = 999 + (int)(100000.0*rand()/(RAND_MAX+1.0)); //Get a random number to present a name of a sub directory char buffer[127]; sprintf(buffer, "%d", aRND); std:: string aSubDir(buffer); if(aSubDir.size() <= 1) aSubDir = std::string("123409876"); aTmpDir += aSubDir; //Get RND sub directory if(aTmpDir[aTmpDir.size()-1] != dir_separator) aTmpDir+=dir_separator; std::string aDir = aTmpDir; for(aRND = 0; Exists(aDir); aRND++) { sprintf(buffer, "%d", aRND); aDir = aTmpDir+buffer; //Build a unique directory name } #ifdef WIN32 //fuction CreateDirectory create only final directory, but not intermediate CreateDirectory(aTmpDir.c_str(), NULL); CreateDirectory(aDir.c_str(), NULL); #else mkdir(aDir.c_str(), 0x1ff); #endif return aDir + dir_separator; } char* makeName(char* name) { std::string aName(name), aNewName; int i, length = aName.size(); char replace = (char)19; for(i=0; iReadFromDisk(val); fwrite(val, 1, size, fp); delete [] val; } else if (type == HDF_FLOAT64) { hdf_float64* val = new hdf_float64[size]; hdf_dataset->ReadFromDisk(val); fprintf(fp, "\n"); for (int i = 0, j = 0; i < size; i++) { write_float64(fp, &val[i]); if(++j == NB_FLOAT_IN_ROW) { fprintf(fp, "\n"); j = 0; } else fprintf(fp," "); } delete [] val; } else if(type == HDF_INT64) { hdf_int64* val = new hdf_int64[size]; hdf_dataset->ReadFromDisk(val); fprintf(fp, "\n"); for (int i = 0, j = 0; i < size; i++) { fprintf(fp, " %li", val[i]); if(++j == NB_INTEGER_IN_ROW) { fprintf(fp, "\n"); j = 0; } } delete [] val; } else if(type == HDF_INT32) { hdf_int32* val = new hdf_int32[size]; hdf_dataset->ReadFromDisk(val); fprintf(fp, "\n"); for (int i = 0, j = 0; i < size; i++) { fprintf(fp, " %i", val[i]); if(++j == NB_INTEGER_IN_ROW) { fprintf(fp, "\n"); j = 0; } } delete [] val; }else if(type == HDF_CHAR) { hdf_char* val = new hdf_char[size]; hdf_dataset->ReadFromDisk(val); fprintf(fp, "\n"); for (int i = 0, j = 0; i < size; i++) { fprintf(fp, " %i", val[i]); if(++j == NB_INTEGER_IN_ROW) { fprintf(fp, "\n"); j = 0; } } delete [] val; } } salome-kernel-6.5.0/src/HDFPersist/HDFascii.hxx000077500000000000000000000032241177004724000211730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : HDFascii.hxx // Created : Mon Jun 10 16:24:50 2003 // Author : Sergey RUIN // Project : SALOME // Module : HDFPersist // #ifndef __HDFascii_H__ #define __HDFascii_H__ #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFascii { public: static char* ConvertFromHDFToASCII(const char* thePath, bool isReplaced = true, const char* theExtension = NULL); static char* ConvertFromASCIIToHDF(const char* thePath, bool isReplaced = false); static bool isASCII(const char* thePath); }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFattrClose.c000077500000000000000000000031641177004724000214610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com File : HDFattrClose.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name: HDFattrClose * - Description : close a HDF attribute * - Parameters : * - id (IN) : attribute ID * - Result : * - if success : 0 * - if failure : -1 */ hdf_err HDFattrClose(hdf_idt id) { hdf_err ret; if ((ret = H5Aclose(id)) < 0) return -1; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFattrCreate.c000077500000000000000000000046471177004724000216260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFattrCreate.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFattrCreate * - Description : create a HDF attribute * - Parameters : * - pid (IN) : father ID * - name (IN) : attribute name * - type (IN) : attribute type * - Result: * - if success : attribute ID * - if failure : -1 */ hdf_idt HDFattrCreate(hdf_idt pid,char *name,hdf_type type, size_t size) { hdf_idt aid,attr; hdf_err ret; int type_hdf; switch(type) { case HDF_FLOAT64 : #if defined (PCLINUX) || defined (PCLINUX64) type_hdf = H5T_IEEE_F64BE; #else type_hdf = H5T_IEEE_F64LE; #endif break; case HDF_INT32 : #if defined (PCLINUX) || defined (PCLINUX64) type_hdf = H5T_STD_I32BE; #else type_hdf = H5T_NATIVE_INT; #endif break; case HDF_INT64 : type_hdf = H5T_NATIVE_LONG; break; case HDF_STRING : if((type_hdf = H5Tcopy(H5T_C_S1)) < 0) return -1; if((ret = H5Tset_size(type_hdf, size)) < 0) return -1; break; default : return -1; } if ((aid = H5Screate(H5S_SCALAR)) < 0) return -1; if ((attr = H5Acreate(pid,name,type_hdf,aid,H5P_DEFAULT)) < 0) return -1; if ((ret = H5Sclose(aid)) < 0) return -1; return attr; } salome-kernel-6.5.0/src/HDFPersist/HDFattrGetSize.c000077500000000000000000000027371177004724000217730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFattrGetSize.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include hdf_type HDFattrGetSize( hdf_idt id ) { hdf_type ret; hdf_idt type_id; if ((type_id = H5Aget_type(id)) < 0) return HDF_NONE; ret = (hdf_type)H5Tget_size(type_id); H5Tclose(type_id); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFattrGetType.c000077500000000000000000000035461177004724000220010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFattrGetType.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include hdf_type HDFattrGetType(hdf_idt id) { hdf_idt type_id; hdf_type type; hdf_class_type hdf_type; hdf_size_type size; if ((type_id = H5Aget_type(id)) < 0) return HDF_NONE; hdf_type = H5Tget_class(type_id); switch (hdf_type) { case H5T_INTEGER : size = H5Tget_size(type_id); if (size == 4) type = HDF_INT32; else type = HDF_INT64; break; case H5T_FLOAT : type = HDF_FLOAT64; break; case H5T_STRING : type = HDF_STRING; break; default : type = HDF_NONE; } H5Tclose(type_id); return type; } salome-kernel-6.5.0/src/HDFPersist/HDFattrOpen.c000077500000000000000000000030421177004724000213100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- File : HDFattrOpen.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name: HDFattrOpen * - Description : open a HDF attribute * - Parameters : * - pid (IN) : father ID * - name (IN) : attribute name * - Result : * - if success : attribute ID * - if failure : -1 */ hdf_idt HDFattrOpen(hdf_idt pid,char * name) { hdf_idt aid; if ((aid = H5Aopen_name(pid,name)) < 0) return -1; return aid; } salome-kernel-6.5.0/src/HDFPersist/HDFattrRead.c000077500000000000000000000035311177004724000212650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFattrRead.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFattrWrite * - Description : write a value to a HDF attribute * - Parameters : * - id (IN) : attribute ID * - val (OUT) : attribute value * - Result : * - if success : 0 * - if failure : -1 */ hdf_err HDFattrRead(hdf_idt id,void *val) { hdf_err ret = -1; hdf_idt type_hdf; if ((type_hdf = H5Aget_type(id)) >= 0) { #if defined (PCLINUX) || defined (PCLINUX64) if ((H5Tget_class(type_hdf) == H5T_INTEGER) && (H5Tget_size(type_hdf) == 4)) type_hdf = H5T_NATIVE_INT; #endif ret = H5Aread(id, type_hdf, val); } H5Tclose(type_hdf); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFattrWrite.c000077500000000000000000000042521177004724000215050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFattrWrite.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFattrWrite * - Description : write a value to a HDF attribute * - Parameters : * - id (IN) : attribute ID * - val (IN) : attribute value * - Result : * - if success : 0 * - if failure : -1 */ hdf_err HDFattrWrite(hdf_idt id, void *val) { hdf_idt type_id; int ret = 0; #if defined (PCLINUX) || defined (PCLINUX64) int isI32BE = 0; #endif if ((type_id = H5Aget_type(id)) < 0) return -1; #if defined (PCLINUX) || defined (PCLINUX64) if((H5Tget_class(type_id) == H5T_INTEGER) && (H5Tget_size(type_id) == 4)) { isI32BE = 1; /* See HDFattrCreate */ if (H5Tconvert(H5T_NATIVE_INT,H5T_STD_I32BE,1,(void *)val,NULL,(hid_t)0) < 0) return -1; } #endif ret = H5Awrite(id,type_id, val); #if defined (PCLINUX) || defined (PCLINUX64) if (isI32BE && (H5Tconvert(H5T_STD_I32BE,H5T_NATIVE_INT,1,(void *)val,NULL,(hid_t)0) < 0)) return -1; #endif H5Tclose(type_id); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFattribute.cc000077500000000000000000000053341177004724000216700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFattribute.cc // Module : SALOME // #include "hdfi.h" #include "HDFexception.hxx" #include "HDFattribute.hxx" #include "HDFinternalObject.hxx" HDFattribute::HDFattribute(char *name,HDFinternalObject *father,hdf_type type, size_t size) : HDFobject(name) { _father = father; _fid = _father->GetId(); _type = type; _size = size; } HDFattribute::HDFattribute(char *name,HDFinternalObject *father) : HDFobject(name) { _father = father; _fid = _father->GetId(); _type = HDF_NONE; _size = 0; } void HDFattribute::CreateOnDisk() { if ((_id = HDFattrCreate(_fid,_name, _type, _size)) < 0) throw HDFexception("Can't create attribute"); } void HDFattribute::OpenOnDisk() { if ((_id = HDFattrOpen(_fid,_name)) < 0) throw HDFexception("Can't open attribute"); } void HDFattribute::CloseOnDisk() { hdf_err ret; if ((ret = HDFattrClose(_id)) < 0) throw HDFexception("Can't close attribute"); } void HDFattribute::WriteOnDisk(void *values) { hdf_err ret; if ((ret = HDFattrWrite(_id,values)) < 0) throw HDFexception("Can't write attribute"); } void HDFattribute::ReadFromDisk(void *values) { hdf_err ret; if ((ret = HDFattrRead(_id,values)) < 0) throw HDFexception("Can't read attribute"); } HDFinternalObject * HDFattribute::GetFather() { return _father; } hdf_type HDFattribute::GetType() { if (_type == HDF_NONE) if ((_type = HDFattrGetType(_id)) == HDF_NONE) throw HDFexception("Can't determine the type of data in the attribute"); return _type; } size_t HDFattribute::GetSize() { if(_size == 0) { if((_size = HDFattrGetSize(_id)) < 0) throw HDFexception("Can't determine the size of data in the attribute"); } return _size; } salome-kernel-6.5.0/src/HDFPersist/HDFattribute.hxx000077500000000000000000000033361177004724000221120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFattribute.hxx // Module : SALOME // #ifndef HDFATTRIBUTE_HXX #define HDFATTRIBUTE_HXX #include "HDFtypes.h" #include "HDFinternalObject.hxx" #include "HDFcontainerObject.hxx" class HDFPERSIST_EXPORT HDFattribute : public HDFobject { private : HDFinternalObject *_father; hdf_idt _fid; hdf_type _type; size_t _size; public : HDFattribute(char *name,HDFinternalObject *father,hdf_type type, size_t size); HDFattribute(char *name,HDFinternalObject *father); void CreateOnDisk(); void OpenOnDisk(); void CloseOnDisk(); void WriteOnDisk(void *values); void ReadFromDisk(void *values); HDFinternalObject *GetFather(); hdf_type GetType(); size_t GetSize(); }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFcontainerObject.cc000077500000000000000000000042241177004724000227730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFcontainerObject.cc // Module : SALOME // #include "hdfi.h" #include "HDFcontainerObject.hxx" #include "HDFexception.hxx" HDFcontainerObject::HDFcontainerObject(const char *name) : HDFinternalObject(name) { _nsons = 0; _firstson = NULL; _lastson = NULL; } HDFcontainerObject::~HDFcontainerObject() { HDFinternalObject *sonToDelete = 0; while(_firstson) { sonToDelete = _firstson; _firstson = _firstson->GetNextBrother(); delete sonToDelete; } } int HDFcontainerObject::nInternalObjects() { return 0; } void HDFcontainerObject::InternalObjectIndentify(int rank, char *object_name) { object_name = NULL; } void HDFcontainerObject::AddSon(HDFinternalObject *son) { if (_nsons == 0) { _firstson = son; _lastson = _firstson; } else { _lastson->SetNextBrother(son); son->SetPreviousBrother(_lastson); _lastson = son; } _nsons ++; } HDFinternalObject *HDFcontainerObject::GetFirstSon() { return _firstson; } HDFinternalObject *HDFcontainerObject::GetLastSon() { return _lastson; } int HDFcontainerObject::nSons() { return _nsons; } salome-kernel-6.5.0/src/HDFPersist/HDFcontainerObject.hxx000077500000000000000000000033371177004724000232210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFcontainerObject.hxx // Module : SALOME // #ifndef HDFCONTAINEROBJECT_HXX #define HDFCONTAINEROBJECT_HXX #include "HDFtypes.h" #include "HDFobject.hxx" #include "HDFinternalObject.hxx" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFcontainerObject : public HDFinternalObject { private : HDFinternalObject *_firstson; HDFinternalObject *_lastson; int _nsons; public : HDFcontainerObject(const char *name); virtual ~HDFcontainerObject(); virtual int nInternalObjects(); virtual void InternalObjectIndentify(int rank, char *object_name); void AddSon(HDFinternalObject *son); HDFinternalObject *GetFirstSon(); HDFinternalObject *GetLastSon(); int nSons(); }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFconvert.cc000077500000000000000000000065761177004724000213560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFconvert.cc // Module : SALOME // #include "HDFconvert.hxx" #ifdef WIN32 #include #include #define open _open #define close _close #endif int HDFConvert::FromAscii(const std::string& file, const HDFcontainerObject & hdf_container, const std::string& nomdataset) { HDFdataset * hdf_dataset; char * buffer; int fd; struct stat status; size_t length; hdf_size length_long; // Ouverture du fichier source if ( (fd = open(file.c_str(),O_RDONLY)) <0) { perror("HDFConvert::FromAscii"); return -1; }; // Lit l'‰tat du fichier if ( fstat(fd,&status) < 0) { perror("HDFConvert::FromAscii"); return -1; }; length = status.st_size; //Calcul la taille du fichier en octets length_long = length; #ifdef _POSIX_MAPPED_FILES // Map le fichier en m‰moire if ( (buffer = (char *) mmap(0,length,PROT_READ,MAP_SHARED,fd,0)) == MAP_FAILED ) { perror("HDFConvert::FromAscii"); return -1; }; #elif defined WIN32 #define SHMEMSIZE 4096 HANDLE hMapObject = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, SHMEMSIZE, ""); if (hMapObject != NULL) { // Get a pointer to the file-mapped shared memory. buffer = ( char* ) MapViewOfFile( hMapObject, FILE_MAP_WRITE, 0, 0, 0 ); if( buffer == NULL ) CloseHandle(hMapObject); }; #else // Sort de la compilation #error Necessite l''utilisation de la primitive mmap #endif // Creation du Dataset utilisateur hdf_dataset = new HDFdataset( (char *) nomdataset.c_str(), /*discard const */ (HDFcontainerObject*) &hdf_container, /*discard const, pas de constructeur par r‰f‰rence */ HDF_STRING, &length_long,1); // Cree le Dataset sur le disk hdf_dataset->CreateOnDisk(); // Effectue la copie hdf_dataset->WriteOnDisk(buffer); // Ferme le fichier hdf hdf_dataset->CloseOnDisk(); // Memory Clean delete hdf_dataset; #ifdef _POSIX_MAPPED_FILES // Desalloue le mapping if (munmap(buffer,length) < 0 ) { perror("HDFConvert::FromAscii"); return -1; }; #endif // Ferme le fichier ASCII if (close(fd) <0) { perror("HDFConvert::FromAscii"); return -1; }; return length; }; salome-kernel-6.5.0/src/HDFPersist/HDFconvert.hxx000077500000000000000000000032571177004724000215710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFconvert.hxx // Module : SALOME // #ifndef HDFCONVERT_HXX #define HDFCONVERT_HXX #include "HDFtypes.h" #ifndef WIN32 #include #include #else #endif #include #include #include #include #include #include "HDFexport.hxx" #include "HDFcontainerObject.hxx" #include "HDFdataset.hxx" #include "HDFfile.hxx" #include class HDFPERSIST_EXPORT HDFConvert { private: HDFConvert(); ~HDFConvert(); public: static int FromAscii(const std::string& file, const HDFcontainerObject& hdf_container, const std::string& nomdataset); }; #endif /* HDFCONVERT_HXX */ salome-kernel-6.5.0/src/HDFPersist/HDFdataset.cc000077500000000000000000000120751177004724000213120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFdataset.cc // Module : SALOME // #include "hdfi.h" #include #include "HDFdataset.hxx" #include "HDFcontainerObject.hxx" #include "HDFexception.hxx" #include herr_t dataset_attr(hid_t loc_id, const char *attr_name, void *operator_data) { *(char**)operator_data = new char[strlen(attr_name)+1]; strcpy(*(char**)operator_data, attr_name); return 1; } HDFdataset::HDFdataset(const char *name, HDFcontainerObject *father,hdf_type type, hdf_size dim[], int dimsize, hdf_byte_order order) : HDFinternalObject(name) { int i; _father = father; _fid = _father->GetId(); _father->AddSon(this); _type = type; _ndim = dimsize; _dim = new hdf_size[dimsize]; _byte_order = order; _size = 1; _attribute = NULL; for (i=0;iGetId(); _father->AddSon(this); _type = HDF_NONE; _ndim = -1; _dim = 0; _byte_order = H5T_ORDER_ERROR; _size = -1; _attribute = NULL; _arrayId = -1; } HDFdataset::~HDFdataset() { delete [] _dim; } void HDFdataset::CreateOnDisk() { if ((_id = HDFdatasetCreate(_fid,_name,_type,_dim,_ndim,_byte_order,_arrayId)) < 0) throw HDFexception("Can't create dataset"); } void HDFdataset::OpenOnDisk() { if ((_id = HDFdatasetOpen(_fid,_name)) < 0) throw HDFexception("Can't open dataset"); } void HDFdataset::CloseOnDisk() { hdf_err ret; if ((ret = HDFdatasetClose(_id)) < 0) throw HDFexception("Can't close dataset"); _id = -1; } void HDFdataset::WriteOnDisk(void *values) { hdf_err ret; if ((ret = HDFdatasetWrite(_id,values)) < 0) throw HDFexception("Can't write dataset"); } void HDFdataset::ReadFromDisk(void *values) { hdf_err ret; if ((ret = HDFdatasetRead(_id,values)) < 0) throw HDFexception("Can't read dataset"); } HDFcontainerObject *HDFdataset::GetFather() { return _father; } hdf_type HDFdataset::GetType() { if (_type == HDF_NONE) if ((_type = HDFdatasetGetType(_id)) == HDF_NONE) throw HDFexception("Can't determine the type of data in the dataset"); return _type; } int HDFdataset::nDim() { if (_ndim == -1) if ((_ndim = HDFdatasetGetnDim(_id)) < 0) throw HDFexception("Can't determine the dataset dimensions number"); return _ndim; } void HDFdataset::GetDim(hdf_size dim[]) { int i; int ndim; hdf_err ret; if (_dim == 0) { if (_ndim == -1) ndim = HDFdatasetGetnDim(_id); else ndim = _ndim; _dim = new hdf_size[ndim]; if ((ret = HDFdatasetGetDim(_id,_dim)) < 0) throw HDFexception("Can't determine the size dimensions of the dataset "); } for (i=0;i<_ndim;i++) dim[i] = _dim[i]; } hdf_size HDFdataset::GetSize() { int size_type; if (_size == -1) { if ((_size = HDFdatasetGetSize(_id)) < 0) throw HDFexception("Can't determine the size of the dataset"); if (_type == HDF_NONE) if ((_type = HDFdatasetGetType(_id)) == HDF_NONE) throw HDFexception("Can't determine the size of the dataset"); switch (_type) { case HDF_INT32 : size_type = 4; break; case HDF_INT64 : case HDF_FLOAT64 : size_type = 8; break; default : size_type = 1; } _size = _size / size_type; } return _size; } hdf_byte_order HDFdataset::GetOrder() { if (_byte_order < 0 ) if ((_byte_order = HDFdatasetGetOrder( _id )) < 0) throw HDFexception("Can't determine the byte order of the dataset"); return _byte_order; } hdf_object_type HDFdataset::GetObjectType() { return HDF_DATASET; } int HDFdataset::nAttributes() { int nbAttrs = H5Aget_num_attrs(_id); if(nbAttrs <= 0) nbAttrs = 0; return nbAttrs; } char* HDFdataset::GetAttributeName(unsigned idx) { int nbAttrs = nAttributes(); if(nbAttrs == 0) return NULL; H5Aiterate(_id, &idx, dataset_attr, &_attribute); return _attribute; } void HDFdataset::SetArrayId(hdf_idt arrayId) { _arrayId = arrayId; } salome-kernel-6.5.0/src/HDFPersist/HDFdataset.hxx000077500000000000000000000042331177004724000215310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFdataset.hxx // Module : SALOME // #ifndef HDFDATASET_HXX #define HDFDATASET_HXX #include "HDFtypes.h" #include "HDFinternalObject.hxx" #include "HDFcontainerObject.hxx" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFdataset : public HDFinternalObject { private : HDFcontainerObject *_father; hdf_idt _fid; hdf_type _type; hdf_size *_dim; hdf_byte_order _byte_order; hdf_size _size; int _ndim; char* _attribute; hdf_idt _arrayId; public: HDFdataset(const char *name, HDFcontainerObject *father,hdf_type type, hdf_size dim[],int dimsize, hdf_byte_order order = H5T_ORDER_NONE); HDFdataset(const char *name,HDFcontainerObject *father); virtual ~HDFdataset(); void CreateOnDisk(); void OpenOnDisk(); void CloseOnDisk(); void WriteOnDisk(void *values); void ReadFromDisk(void *values); HDFcontainerObject *GetFather(); hdf_type GetType(); int nDim(); void GetDim(hdf_size dim[]); hdf_size GetSize(); hdf_object_type GetObjectType(); hdf_byte_order GetOrder(); void SetArrayId(hdf_idt arrayId); int nAttributes(); char* GetAttributeName(unsigned idx); }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFdatasetClose.c000077500000000000000000000030751177004724000221350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetClose.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFdatasetClose * - Description : close a HDF datset * - Parameters : * - id (IN) : dateset ID * - Result : * - if success : returns 0 * - if failure : returns -1 */ hdf_err HDFdatasetClose(hdf_idt id) { hdf_err ret; if ((ret = H5Dclose(id)) < 0) return -1; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetCreate.c000077500000000000000000000067051177004724000222760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetCreate.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFdatasetCreate * - Description : creates a HDF dataset * - Parameters : * - pid (IN) : father ID * - name (IN) : dataset name * - type (IN) : dataset type (HDF_STRING,HDF_INT32,HDF_INT64,HDF_FLOAT64) * - dimd (IN) : dataset size * - order(IN) : byte order (H5T_ORDER_NONE, H5T_ORDER_LE, H5T_ORDER_BE) * - Result : * - if success : returns dataset ID * - if failure : -1 */ hdf_idt HDFdatasetCreate(hdf_idt pid,char *name,hdf_type type, hdf_size *dimd, int ndim, hdf_byte_order order, hdf_idt arrayId) { hdf_idt dataset, dataspace = 0; hdf_err ret; hdf_idt type_hdf, new_type_hdf = -1; switch(type) { case HDF_FLOAT64 : #if defined (PCLINUX) || defined (PCLINUX64) type_hdf = H5T_IEEE_F64BE; #else type_hdf = H5T_IEEE_F64LE; #endif break; case HDF_INT32 : #if defined (PCLINUX) || defined (PCLINUX64) type_hdf = H5T_STD_I32BE; #else type_hdf = H5T_NATIVE_INT; #endif break; case HDF_INT64 : type_hdf = H5T_NATIVE_LONG; break; case HDF_STRING : if((new_type_hdf = H5Tcopy(H5T_C_S1)) < 0) return -1; if((ret = H5Tset_size(new_type_hdf,1)) < 0) return -1; break; case HDF_ARRAY : type_hdf = arrayId; break; default : return -1; } /* set order */ if ( order != H5T_ORDER_ERROR && order != H5T_ORDER_NONE && type != HDF_STRING ) { if (( new_type_hdf = H5Tcopy( type_hdf )) < 0 ) return -1; if (( ret = H5Tset_order (new_type_hdf, order )) < 0 ) return -1; } if ((dataset = H5Dopen(pid,name)) < 0) { if ((dataspace = H5Screate_simple(ndim, dimd, NULL)) < 0) return -1; if ((dataset = H5Dcreate(pid,name, new_type_hdf < 0 ? type_hdf : new_type_hdf, dataspace, H5P_DEFAULT)) < 0) return -1; } else return -1; if ( ! (new_type_hdf < 0) && (ret = H5Tclose(new_type_hdf)) < 0) return -1; if ((ret = H5Sclose(dataspace)) < 0) return -1; return dataset; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetGetDim.c000077500000000000000000000033461177004724000222420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetGetDim.c Module : SALOME ----------------------------------------------------------------------------*/ #include #include "hdfi.h" #include hdf_err HDFdatasetGetDim(hdf_idt id,hdf_size dim[]) { hdf_err ret = 0; hdf_size *tmp; int ndim; hdf_idt space_id; if ((space_id = H5Dget_space(id)) < 0) return -1; if ((ndim = H5Sget_simple_extent_ndims(space_id)) < 0) return -1; tmp = (hdf_size *) malloc(sizeof(hdf_size)*ndim); ret = H5Sget_simple_extent_dims(space_id, dim, tmp); ret = H5Sclose(space_id); free (tmp); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetGetOrder.c000077500000000000000000000030031177004724000225720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetGetOrder.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include hdf_byte_order HDFdatasetGetOrder(hdf_idt dataset_id) { hdf_idt type_id; hdf_byte_order order; if ((type_id = H5Dget_type(dataset_id)) < 0) return H5T_ORDER_ERROR; order = H5Tget_order(type_id); H5Tclose(type_id); return order; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetGetSize.c000077500000000000000000000026211177004724000224360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetGetSize.c Module : SALOME ----------------------------------------------------------------------------*/ #include #include "hdfi.h" int HDFdatasetGetSize(hdf_idt id) { hdf_size size; if ((size = H5Dget_storage_size(id)) < 0) return -1; return (int) size; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetGetType.c000077500000000000000000000035721177004724000224530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetGetType.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include hdf_type HDFdatasetGetType(hdf_idt id) { hdf_idt type_id; hdf_type type; hdf_size_type size; if ((type_id = H5Dget_type(id)) < 0) return HDF_NONE; switch (H5Tget_class(type_id)) { case H5T_INTEGER : size = H5Tget_size(type_id); if (size == 4) type = HDF_INT32; else type = HDF_INT64; break; case H5T_FLOAT : type = HDF_FLOAT64; break; case H5T_STRING : type = HDF_STRING; break; case H5T_ARRAY : type = HDF_ARRAY; break; default : type = HDF_NONE; } H5Tclose(type_id); return type; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetGetnDim.c000077500000000000000000000030461177004724000224150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetGetnDim.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include int HDFdatasetGetnDim(hdf_idt id) { int ndim; hdf_idt space_id; hdf_err ret; if ((space_id = H5Dget_space(id)) < 0) return -1; if ((ndim = H5Sget_simple_extent_ndims(space_id)) < 0) return -1; if ((ret = H5Sclose(space_id)) < 0) return -1; return ndim; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetOpen.c000077500000000000000000000031701177004724000217650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetOpen.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFdatasetOpen * - Description : open a HDF datset * - Parameters : * - pid (IN) : father ID * - name (IN) : dataset name * - Result : * - if success : returns dateset ID * - if failure : returns -1 */ hdf_idt HDFdatasetOpen(hdf_idt pid,char *name) { hdf_idt id; if ((id = H5Dopen(pid,name)) < 0) return -1; return id; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetRead.c000077500000000000000000000035671177004724000217510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetRead.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : _MEDdatasetRead * - Description : writes a HDF dataset * - Parameters : * - id (IN) : dataset ID * - val (OUT) : datset values * - Result : * - if success : 0 * - if failure : -1 */ hdf_err HDFdatasetRead(hdf_idt id, void *val) { hdf_idt datatype; hdf_err ret; if ((datatype = H5Dget_type(id)) < 0) return -1; //#if defined (PCLINUX) || defined (PCLINUX64) if ((H5Tget_class(datatype) == H5T_INTEGER) && (H5Tget_size(datatype) == 4)) datatype = H5T_NATIVE_INT; //#endif if ((ret = H5Dread(id,datatype,H5S_ALL,H5S_ALL,H5P_DEFAULT, val)) < 0) return -1; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFdatasetWrite.c000077500000000000000000000052641177004724000221640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFdatasetWrite.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include /* * - Name : _MEDdatasetWrite * - Description : writes a HDF dataset * - Parameters : * - id (IN) : dataset ID * - val (IN) : datset values * - Result : * - if success : 0 * - if failure : -1 */ hdf_err HDFdatasetWrite(hdf_idt id, void *val) { hdf_idt datatype; hdf_err ret; #if defined (PCLINUX) || defined (PCLINUX64) int isI32BE = 0; int size = 0; #endif if ((datatype = H5Dget_type(id)) < 0) return -1; #if defined (PCLINUX) || defined (PCLINUX64) if((H5Tget_class(datatype) == H5T_INTEGER) && (H5Tget_size(datatype) == 4)) { isI32BE = 1; /* See HDFdatasetCreate */ /*SRN : bug IPAL9619: replaced the method of getting the size of INT32 dataset */ int i, ndim = HDFdatasetGetnDim(id); if(ndim < 0) return -1; hdf_size *dim = (hdf_size *) malloc(sizeof(hdf_size)*ndim); if ((ret = HDFdatasetGetDim(id, dim)) < 0) return -1; for(i=0; i class HDFPERSIST_EXPORT HDFexception { public : HDFexception(const char *message) { std::cerr << message << std::endl; } }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFexplorer.cc000077500000000000000000000036461177004724000215310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFexplorer.cc // Module : SALOME // #include "HDFcontainerObject.hxx" #include "HDFexception.hxx" #include "HDFinternalObject.hxx" #include "HDFexplorer.hxx" HDFexplorer::HDFexplorer(HDFcontainerObject *container) { _container = container; _size = _container->nSons(); _head = _container->GetFirstSon(); _queue = _container->GetLastSon(); _current = _head; } HDFexplorer::~HDFexplorer() { } void HDFexplorer::Init() { _current = _head; } void HDFexplorer::Next() { _current = _current->GetNextBrother(); } int HDFexplorer::More() { if (_current != NULL) return 1; else return 0; } HDFinternalObject *HDFexplorer::Value() { return _current; } void HDFexplorer::Reset(HDFcontainerObject *new_container) { _container = new_container; _size = _container->nSons(); _head = _container->GetFirstSon(); _queue = _container->GetLastSon(); _current = _head; } salome-kernel-6.5.0/src/HDFPersist/HDFexplorer.hxx000077500000000000000000000031071177004724000217430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFexplorer.hxx // Module : SALOME // #ifndef HDFEXPLORER_HXX #define HDFEXPLORER_HXX #include "HDFinternalObject.hxx" #include "HDFcontainerObject.hxx" class HDFPERSIST_EXPORT HDFexplorer { private : int _size; HDFcontainerObject *_container; HDFinternalObject *_head; HDFinternalObject *_queue; HDFinternalObject *_current; public : HDFexplorer(HDFcontainerObject *container); ~HDFexplorer(); void Reset(HDFcontainerObject *new_container); void Init(); void Next(); int More(); HDFinternalObject *Value(); }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFexport.hxx000077500000000000000000000023201177004724000214200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : HDFexport.hxx // Author : Andre Ribes - EDF R&D // Module : SALOME // #ifndef _HDF_export_HXX_ #define _HDF_export_HXX_ #ifdef WIN32 # if defined HDFPERSIST_EXPORTS || defined SalomeHDFPersist_EXPORTS # define HDFPERSIST_EXPORT __declspec( dllexport ) # else # define HDFPERSIST_EXPORT __declspec( dllimport ) # endif #else # define HDFPERSIST_EXPORT #endif #endif salome-kernel-6.5.0/src/HDFPersist/HDFfile.cc000077500000000000000000000074641177004724000206120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFfile.cc // Module : SALOME // #include "hdfi.h" #ifndef WIN32 #include #else #include #define F_OK 0 #define access _access #endif #include #include #include "HDFfile.hxx" #include "HDFexception.hxx" herr_t file_attr(hid_t loc_id, const char *attr_name, void *operator_data) { *(char**)operator_data = new char[strlen(attr_name)+1]; strcpy(*(char**)operator_data, attr_name); return 1; } HDFfile::HDFfile(char *name) : HDFcontainerObject(name) { _attribute = NULL; } void HDFfile::CreateOnDisk() { if ((_id = HDFfileCreate(_name)) < 0) throw HDFexception("Can't create HDF file"); } void HDFfile::OpenOnDisk(hdf_access_mode access_mode) { _access_mode = access_mode; switch (_access_mode) { case HDF_RDWR : if (access(_name,F_OK)) { if ((_id = HDFfileCreate(_name)) < 0) throw HDFexception("Can't open HDF file"); } else if ((_id = HDFfileOpen(_name,_access_mode)) < 0) throw HDFexception("Can't open HDF file"); break; case HDF_RDONLY : if ((_id = HDFfileOpen(_name,_access_mode)) < 0) throw HDFexception("Can't open HDF file"); break; default : throw HDFexception("Can't open HDF file : bad acces option"); } } void HDFfile::CloseOnDisk() { hdf_err ret; if ((ret = HDFfileClose(_id)) < 0) throw HDFexception("Can't close HDF file"); _id = -1; } hdf_access_mode HDFfile::GetAccessMode() { return _access_mode; } hdf_object_type HDFfile::GetObjectType() { return HDF_FILE; } int HDFfile::nInternalObjects() { int n; hdf_err ret; if ((ret = HDFnObjects(_id,"/",&n)) < 0) throw HDFexception("Can't determine the number of internal objects"); return n; } void HDFfile::InternalObjectIndentify(int rank, char *object_name) { hdf_err ret; if ((ret = HDFobjectIdentify(_id,"/",rank,object_name)) < 0) throw HDFexception("Can't identify an internal object"); } int HDFfile::ExistInternalObject(const char *object_name) { int n,i; int ret = 0; char name[HDF_NAME_MAX_LEN+1]; n = this->nInternalObjects(); for (i=0;iInternalObjectIndentify(i,name); if (!strcmp(name,object_name)) { ret = 1; break; } } return ret; } hdf_object_type HDFfile::InternalObjectType(char *object_name) { hdf_object_type type; hdf_err ret; if ((ret = HDFobjectType(_id,object_name,&type)) < 0) throw HDFexception("Can't determine internal object type"); return type; } int HDFfile::nAttributes() { int nbAttrs = H5Aget_num_attrs(_id); if(nbAttrs <= 0) nbAttrs = 0; return nbAttrs; } char* HDFfile::GetAttributeName(unsigned idx) { int nbAttrs = nAttributes(); if(nbAttrs == 0) return NULL; H5Aiterate(_id, &idx, file_attr, &_attribute); return _attribute; } salome-kernel-6.5.0/src/HDFPersist/HDFfile.hxx000077500000000000000000000034451177004724000210270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFfile.hxx // Module : SALOME // #ifndef HDFFILE_HXX #define HDFFILE_HXX #include "HDFtypes.h" #include "HDFcontainerObject.hxx" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFfile : public HDFcontainerObject { private : hdf_access_mode _access_mode; char* _attribute; public : HDFfile(char *name); void CreateOnDisk(); void OpenOnDisk(hdf_access_mode acess_mode); void CloseOnDisk(); hdf_access_mode GetAccessMode(); hdf_object_type GetObjectType(); int nInternalObjects(); void InternalObjectIndentify(int rank, char *object_name); int ExistInternalObject(const char *object_name); hdf_object_type InternalObjectType(char *object_name); int nAttributes(); char* GetAttributeName(unsigned idx); }; #endif /* HDFFILE_HXX */ salome-kernel-6.5.0/src/HDFPersist/HDFfileClose.c000077500000000000000000000030671177004724000214300ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFfileClose.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFfileClose * - Description : closes a HDF file * - Parameters : * - fid (IN) : file ID * - Result : * - success : 0 * - failure : -1 */ hdf_err HDFfileClose(hdf_idt fid) { hdf_err ret; H5Fflush(fid,H5F_SCOPE_GLOBAL); if ((ret = H5Fclose(fid)) < 0) return -1; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFfileCreate.c000077500000000000000000000031511177004724000215600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFfileCreate.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFfileCreate * - Description : creates a HDF file * - Parameters : * - name (IN) : file name * - Result : * - success : file ID * - failure : -1 */ hdf_idt HDFfileCreate(char *name) { hdf_idt fid; if ((fid = H5Fcreate(name,H5F_ACC_TRUNC, H5P_DEFAULT,H5P_DEFAULT)) < 0) return -1; return fid; } salome-kernel-6.5.0/src/HDFPersist/HDFfileMount.c000077500000000000000000000026321177004724000214620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFfileMount.c Module : SALOME ----------------------------------------------------------------------------*/ #include #include "hdfi.h" hdf_err HDFfileMount(hdf_idt id,const char *name,hdf_idt fid) { hdf_err ret = 0; ret = H5Fmount(id, name, fid,H5P_DEFAULT); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFfileOpen.c000077500000000000000000000035231177004724000212610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFfileOpen.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFfileOpen * - Description : open an existing HDF file * - Parameters : * - name (IN) : file name * - access_mode (IN) : file access mode * - Result : * - success : file ID * - failure : -1 */ hdf_idt HDFfileOpen(char *name,hdf_access_mode access_mode) { hdf_idt fid; int mode; switch(access_mode) { case HDF_RDONLY: mode = H5F_ACC_RDONLY; break; case HDF_RDWR : mode = H5F_ACC_RDWR; break; default : return -1; } if ((fid = H5Fopen(name,mode,H5P_DEFAULT)) < 0) return -1; return fid; } salome-kernel-6.5.0/src/HDFPersist/HDFfileUmount.c000077500000000000000000000025671177004724000216560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFfileUmount.c Module : SALOME ----------------------------------------------------------------------------*/ #include #include "hdfi.h" hdf_err HDFfileUmount(hdf_idt id,const char *name) { hdf_err ret; ret = H5Funmount(id,name); return ret; } salome-kernel-6.5.0/src/HDFPersist/HDFgroup.cc000077500000000000000000000076571177004724000210330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFgroup.cc // Module : SALOME // #include "hdfi.h" #include #include "HDFgroup.hxx" #include "HDFexception.hxx" herr_t group_attr(hid_t loc_id, const char *attr_name, void *operator_data) { *(char**)operator_data = new char[strlen(attr_name)+1]; strcpy(*(char**)operator_data, attr_name); return 1; } HDFgroup::HDFgroup(const char *name, HDFcontainerObject *father) : HDFcontainerObject(name) { _father = father; _fid = _father->GetId(); _father->AddSon(this); _mid = -1; _attribute = NULL; }; void HDFgroup::CreateOnDisk() { if ((_id = HDFgroupCreate(_fid,_name)) < 0) throw HDFexception("Can't create group"); } void HDFgroup::OpenOnDisk() { if ((_id = HDFgroupOpen(_fid,_name)) < 0) throw HDFexception("Can't open group"); } void HDFgroup::CloseOnDisk() { hdf_err ret; if ((ret = HDFgroupClose(_id)) < 0) throw HDFexception("Can't close group"); _id = -1; } HDFcontainerObject *HDFgroup::GetFather() { return _father; } hdf_object_type HDFgroup::GetObjectType() { return HDF_GROUP; } int HDFgroup::nInternalObjects() { int n = 0; hdf_err ret; if ((ret = HDFnObjects(_fid,_name,&n)) < 0) throw HDFexception("Can't determine the number of internal objects"); return n; } void HDFgroup::InternalObjectIndentify(int rank, char *object_name) { hdf_err ret; if ((ret = HDFobjectIdentify(_fid,_name,rank,object_name)) < 0) throw HDFexception("Can't identify an internal object"); } int HDFgroup::ExistInternalObject(const char *object_name) { int n,i; int ret = 0; char name[HDF_NAME_MAX_LEN+1]; n = this->nInternalObjects(); for (i=0;iInternalObjectIndentify(i,name); if (!strcmp(name,object_name)) { ret = 1; break; } } return ret; } hdf_object_type HDFgroup::InternalObjectType(char *object_name) { hdf_object_type type; hdf_err ret; if ((ret = HDFobjectType(_id,object_name,&type)) < 0) throw HDFexception("Can't determine internal object type"); return type; } void HDFgroup::FileMount(char *file,hdf_access_mode mode) { hdf_err ret; if (_mid != -1) throw HDFexception("Can't mount the file"); if ((_mid = HDFfileOpen(file,mode)) < 0) throw HDFexception("Can't mount the file"); if ((ret = HDFfileMount(_fid,_name,_mid)) < 0) throw HDFexception("Can't mount the file"); } void HDFgroup::FileUnMount() { hdf_err ret; if ((ret = HDFfileUmount(_fid,_name)) < 0) throw HDFexception("Can't unmount the file"); if ((ret = HDFfileClose(_mid)) < 0) throw HDFexception("Can't unmount the file"); _mid = -1; } int HDFgroup::nAttributes() { int nbAttrs = H5Aget_num_attrs(_id); if(nbAttrs <= 0) nbAttrs = 0; return nbAttrs; } char* HDFgroup::GetAttributeName(unsigned idx) { int nbAttrs = nAttributes(); if(nbAttrs == 0) return NULL; H5Aiterate(_id, &idx, group_attr, &_attribute); return _attribute; } salome-kernel-6.5.0/src/HDFPersist/HDFgroup.hxx000077500000000000000000000036321177004724000212420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFgroup.hxx // Module : SALOME // #ifndef HDFGROUP_HXX #define HDFGROUP_HXX #include "HDFtypes.h" #include "HDFcontainerObject.hxx" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFgroup : public HDFcontainerObject { private : HDFcontainerObject *_father; hdf_idt _fid; hdf_idt _mid; char* _attribute; public : HDFgroup(const char *name, HDFcontainerObject *father); void CreateOnDisk(); void OpenOnDisk(); void CloseOnDisk(); void FileMount(char *file,hdf_access_mode mode); void FileUnMount(); HDFcontainerObject *GetFather(); hdf_object_type GetObjectType(); int nInternalObjects(); void InternalObjectIndentify(int rank, char *object_name); int ExistInternalObject(const char *object_name); hdf_object_type InternalObjectType(char *object_name); int nAttributes(); char* GetAttributeName(unsigned idx); }; #endif /* HDFGROUP_HXX */ salome-kernel-6.5.0/src/HDFPersist/HDFgroupClose.c000077500000000000000000000030661177004724000216440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFgroupClose.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFgroupClose * - Description : close a HDF group * - Parameters : * - id (IN) : group ID * - Result : * - if success : returns 0 * - if failure : returns -1 */ hdf_err HDFgroupClose(hdf_idt id) { hdf_err ret; if ((ret = H5Gclose(id)) < 0) return -1; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFgroupCreate.c000077500000000000000000000031721177004724000220000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFgroupCreate.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFgroupCreate * - Description : create a HDF group * - Parameters : * - pid (IN) : father ID * - name (IN) : group name * - Result : * - if success : returns group ID * - if failure : returns -1 */ hdf_idt HDFgroupCreate(hdf_idt pid, char *name) { hdf_idt id; if ((id = H5Gcreate(pid,name,0)) < 0) return -1; return id; } salome-kernel-6.5.0/src/HDFPersist/HDFgroupOpen.c000077500000000000000000000031711177004724000214750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFgroupOpen.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" /* * - Name : HDFgroupOpen * - Description : open an existing HDF group * - Parameters : * - pid (IN) : father ID * - name (IN) : group name * - Result : * - if success : returns group ID * - if failure : returns -1 */ hdf_idt HDFgroupOpen(hdf_idt pid, char *name) { hdf_idt id; if ((id = H5Gopen(pid,name)) < 0) return -1; return id; } salome-kernel-6.5.0/src/HDFPersist/HDFinternalObject.cc000077500000000000000000000032011177004724000226170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFinternalObject.cc // Module : SALOME // #include "hdfi.h" #include "HDFinternalObject.hxx" HDFinternalObject::HDFinternalObject(const char *name) : HDFobject(name) { _previousbrother = NULL; _nextbrother = NULL; } HDFinternalObject *HDFinternalObject::GetPreviousBrother() { return _previousbrother; } HDFinternalObject *HDFinternalObject::GetNextBrother() { return _nextbrother; } void HDFinternalObject::SetPreviousBrother(HDFinternalObject *previous) { _previousbrother = previous; } void HDFinternalObject::SetNextBrother(HDFinternalObject *next) { _nextbrother = next; } salome-kernel-6.5.0/src/HDFPersist/HDFinternalObject.hxx000077500000000000000000000031371177004724000230510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFinternalObject.hxx // Module : SALOME // #ifndef HDFINTERNALOBJECT_HXX #define HDFINTERNALOBJECT_HXX #include "HDFtypes.h" #include "HDFobject.hxx" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFinternalObject : public HDFobject { private : HDFinternalObject *_previousbrother; HDFinternalObject *_nextbrother; public : HDFinternalObject(const char *name); HDFinternalObject *GetPreviousBrother(); HDFinternalObject *GetNextBrother(); void SetPreviousBrother(HDFinternalObject *previous); void SetNextBrother(HDFinternalObject *next); }; #endif salome-kernel-6.5.0/src/HDFPersist/HDFnObjects.c000077500000000000000000000036601177004724000212710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFnObjects.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include /* * - Name : HDFnObjects * - Description : returns the number of HDF objets in a HDF group * - Parameters : * - fid (IN) : HDF file ID * - path (IN) : acces path to the HDF group in the HDF file * - Results : * - if success : number of objects * - if failure : -1 */ hdf_err Num(hdf_idt id,const char *name, void *data); hdf_err HDFnObjects(hdf_idt fid,const char *path,int *n) { int idx; int m = 0; if ((idx = H5Giterate(fid,path,NULL,Num,(void*)&m)) < 0) return -1; *n = (int) m; return 0; } hdf_err Num(hdf_idt id,const char *name, void *data) { int *count; count = (int *) data; (*count)++; return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFobject.cc000077500000000000000000000027721177004724000211360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFobject.cc // Module : SALOME // #include "HDFobject.hxx" #include "hdfi.h" #include #include #ifdef WNT #define strdup _strdup #endif HDFobject::HDFobject(const char *name) { HDFerrorModeLock(); _name = strdup(name); _id = -1; } HDFobject::~HDFobject() { free(_name); } hdf_idt HDFobject::GetId() { return _id; } char *HDFobject::GetName() { return _name; } hdf_object_type HDFobject::GetObjectType() { return HDF_OBJECT; } salome-kernel-6.5.0/src/HDFPersist/HDFobject.hxx000077500000000000000000000026521177004724000213550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : HDFobject.hxx // Module : SALOME // #ifndef HDFOBJECT_HXX #define HDFOBJECT_HXX #include "HDFtypes.h" #include "HDFexport.hxx" class HDFPERSIST_EXPORT HDFobject { protected : char *_name; hdf_idt _id; public : HDFobject(const char *name); virtual ~HDFobject(); hdf_idt GetId(); char *GetName(); virtual hdf_object_type GetObjectType(); }; #endif /* HDFOBJECT_HXX */ salome-kernel-6.5.0/src/HDFPersist/HDFobjectIdentify.c000077500000000000000000000040451177004724000224620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFobjectIdentify.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" #include /* * - Name: HDFobjectIdentify * - Description : find the name of the HDF object of rank "i" in the HDF * group "path" * - Parameters : * - fid (IN) : l'ID du fichier o * - path (IN) : group access path * - i (IN) : access rank * - name (OUT) : expected name * - Result : * - if sucess : 0 * - if failure : -1 */ hdf_err RankInfo(hdf_idt id, const char *name, void *data); hdf_err HDFobjectIdentify(hdf_idt fid,const char *path,int i,char *name) { int idx; if ((idx = H5Giterate(fid,path,&i,RankInfo, name)) < 0) return -1; return 0; } hdf_err RankInfo(hdf_idt id, const char *name, void *data) { if ( data ) strcpy( (char*)data, name ); else return -1; return 1; } salome-kernel-6.5.0/src/HDFPersist/HDFobjectType.c000077500000000000000000000032131177004724000216240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFobjectType.c Module : SALOME ----------------------------------------------------------------------------*/ #include "hdfi.h" hdf_err HDFobjectType(hdf_idt id, char *name, hdf_object_type *type) { hdf_bool follow = 1; H5G_stat_t buf; hdf_err ret; if ((ret = H5Gget_objinfo(id,name,follow,&buf) < 0)) return -1; switch(buf.type) { case H5G_GROUP : *type = HDF_GROUP; break; case H5G_DATASET : *type = HDF_DATASET; break; default : return -1; } return 0; } salome-kernel-6.5.0/src/HDFPersist/HDFtypes.h000077500000000000000000000044521177004724000206730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : HDFtypes.h Module : SALOME ----------------------------------------------------------------------------------*/ #ifndef HDFTYPES_H #define HDFTYPES_H #include /* max length of a HDF object */ #define HDF_NAME_MAX_LEN 100 /* HDF 5 types */ typedef size_t hdf_size_type; typedef H5T_class_t hdf_class_type; typedef hsize_t hdf_size; typedef hid_t hdf_idt; typedef herr_t hdf_err; typedef hbool_t hdf_bool; typedef H5T_order_t hdf_byte_order; typedef char hdf_char; typedef int hdf_int32; typedef long hdf_int64; typedef double hdf_float64; /* Access Mode */ typedef enum {HDF_RDONLY,HDF_RDWR} hdf_access_mode; /* Values types for HDF datasets and attributes */ typedef enum {HDF_NONE,HDF_STRING, HDF_INT32, HDF_INT64, HDF_FLOAT64, HDF_CHAR, HDF_ARRAY} hdf_type; /* - HDF_STRING : C string - HDF_INT32 : 32 bits integer - HDF_INT64 : 64 bits integer - HDF_FLOAT64 : IEEE 64 bits float - HDF_ARRAY : Array */ /* HDF object types */ typedef enum {HDF_OBJECT,HDF_FILE,HDF_GROUP,HDF_DATASET, HDF_ATTRIBUTE, HDF_ARRAY_TYPE } hdf_object_type; #endif /* HDFTYPES_H */ salome-kernel-6.5.0/src/HDFPersist/Makefile.am000077500000000000000000000055411177004724000210700ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) # File : Makefile.in # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/HDFPersist/Makefile.am,v 1.5.32.2.12.1 2012-04-12 14:05:13 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am salomeinclude_HEADERS = \ HDFattribute.hxx \ HDFcontainerObject.hxx \ HDFdataset.hxx \ HDFexplorer.hxx \ HDFexception.hxx \ HDFfile.hxx \ HDFgroup.hxx \ HDFinternalObject.hxx \ HDFobject.hxx \ HDFarray.hxx \ HDFOI.hxx \ HDFtypes.h \ HDFconvert.hxx \ hdfi.h \ HDFascii.hxx \ HDFexport.hxx # Libraries targets lib_LTLIBRARIES = libSalomeHDFPersist.la libSalomeHDFPersist_la_SOURCES =\ HDFfileCreate.c \ HDFfileClose.c \ HDFfileOpen.c \ HDFfileMount.c \ HDFfileUmount.c \ HDFgroupCreate.c \ HDFgroupOpen.c \ HDFgroupClose.c \ HDFdatasetOpen.c \ HDFdatasetClose.c \ HDFdatasetCreate.c \ HDFdatasetWrite.c \ HDFdatasetRead.c \ HDFdatasetGetDim.c \ HDFdatasetGetSize.c \ HDFdatasetGetType.c \ HDFdatasetGetnDim.c \ HDFdatasetGetOrder.c \ HDFarrayGetType.c \ HDFarrayGetTypeId.c \ HDFarrayCreate.c \ HDFarrayClose.c \ HDFarrayGetnDim.c \ HDFarrayGetDim.c \ HDFattrOpen.c \ HDFattrClose.c \ HDFattrWrite.c \ HDFattrCreate.c \ HDFattrRead.c \ HDFattrGetType.c \ HDFattrGetSize.c \ HDFerrorModeLock.c \ HDFnObjects.c \ HDFobjectIdentify.c \ HDFobjectType.c \ HDFobject.cc \ HDFarray.cc \ HDFinternalObject.cc \ HDFattribute.cc \ HDFcontainerObject.cc \ HDFdataset.cc \ HDFfile.cc \ HDFgroup.cc \ HDFexplorer.cc \ HDFconvert.cc \ HDFascii.cc libSalomeHDFPersist_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeHDFPersist_la_CPPFLAGS = @HDF5_INCLUDES@ -D@MACHINE@ libSalomeHDFPersist_la_LIBADD = @HDF5_LIBS@ EXTRA_DIST = \ test1.c \ test2.c \ test3.cxx \ test4.cxx \ test5.cxx \ test6.cxx \ test7.cxx \ test8.cxx \ test9.cxx salome-kernel-6.5.0/src/HDFPersist/Makefile.in000077500000000000000000002626431177004724000211110ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/HDFPersist ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeHDFPersist_la_DEPENDENCIES = am_libSalomeHDFPersist_la_OBJECTS = \ libSalomeHDFPersist_la-HDFfileCreate.lo \ libSalomeHDFPersist_la-HDFfileClose.lo \ libSalomeHDFPersist_la-HDFfileOpen.lo \ libSalomeHDFPersist_la-HDFfileMount.lo \ libSalomeHDFPersist_la-HDFfileUmount.lo \ libSalomeHDFPersist_la-HDFgroupCreate.lo \ libSalomeHDFPersist_la-HDFgroupOpen.lo \ libSalomeHDFPersist_la-HDFgroupClose.lo \ libSalomeHDFPersist_la-HDFdatasetOpen.lo \ libSalomeHDFPersist_la-HDFdatasetClose.lo \ libSalomeHDFPersist_la-HDFdatasetCreate.lo \ libSalomeHDFPersist_la-HDFdatasetWrite.lo \ libSalomeHDFPersist_la-HDFdatasetRead.lo \ libSalomeHDFPersist_la-HDFdatasetGetDim.lo \ libSalomeHDFPersist_la-HDFdatasetGetSize.lo \ libSalomeHDFPersist_la-HDFdatasetGetType.lo \ libSalomeHDFPersist_la-HDFdatasetGetnDim.lo \ libSalomeHDFPersist_la-HDFdatasetGetOrder.lo \ libSalomeHDFPersist_la-HDFarrayGetType.lo \ libSalomeHDFPersist_la-HDFarrayGetTypeId.lo \ libSalomeHDFPersist_la-HDFarrayCreate.lo \ libSalomeHDFPersist_la-HDFarrayClose.lo \ libSalomeHDFPersist_la-HDFarrayGetnDim.lo \ libSalomeHDFPersist_la-HDFarrayGetDim.lo \ libSalomeHDFPersist_la-HDFattrOpen.lo \ libSalomeHDFPersist_la-HDFattrClose.lo \ libSalomeHDFPersist_la-HDFattrWrite.lo \ libSalomeHDFPersist_la-HDFattrCreate.lo \ libSalomeHDFPersist_la-HDFattrRead.lo \ libSalomeHDFPersist_la-HDFattrGetType.lo \ libSalomeHDFPersist_la-HDFattrGetSize.lo \ libSalomeHDFPersist_la-HDFerrorModeLock.lo \ libSalomeHDFPersist_la-HDFnObjects.lo \ libSalomeHDFPersist_la-HDFobjectIdentify.lo \ libSalomeHDFPersist_la-HDFobjectType.lo \ libSalomeHDFPersist_la-HDFobject.lo \ libSalomeHDFPersist_la-HDFarray.lo \ libSalomeHDFPersist_la-HDFinternalObject.lo \ libSalomeHDFPersist_la-HDFattribute.lo \ libSalomeHDFPersist_la-HDFcontainerObject.lo \ libSalomeHDFPersist_la-HDFdataset.lo \ libSalomeHDFPersist_la-HDFfile.lo \ libSalomeHDFPersist_la-HDFgroup.lo \ libSalomeHDFPersist_la-HDFexplorer.lo \ libSalomeHDFPersist_la-HDFconvert.lo \ libSalomeHDFPersist_la-HDFascii.lo libSalomeHDFPersist_la_OBJECTS = $(am_libSalomeHDFPersist_la_OBJECTS) libSalomeHDFPersist_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeHDFPersist_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeHDFPersist_la_SOURCES) DIST_SOURCES = $(libSalomeHDFPersist_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) # File : Makefile.in # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/HDFPersist/Makefile.am,v 1.5.32.2.12.1 2012-04-12 14:05:13 vsr Exp $ # salomeinclude_HEADERS = \ HDFattribute.hxx \ HDFcontainerObject.hxx \ HDFdataset.hxx \ HDFexplorer.hxx \ HDFexception.hxx \ HDFfile.hxx \ HDFgroup.hxx \ HDFinternalObject.hxx \ HDFobject.hxx \ HDFarray.hxx \ HDFOI.hxx \ HDFtypes.h \ HDFconvert.hxx \ hdfi.h \ HDFascii.hxx \ HDFexport.hxx # Libraries targets lib_LTLIBRARIES = libSalomeHDFPersist.la libSalomeHDFPersist_la_SOURCES = \ HDFfileCreate.c \ HDFfileClose.c \ HDFfileOpen.c \ HDFfileMount.c \ HDFfileUmount.c \ HDFgroupCreate.c \ HDFgroupOpen.c \ HDFgroupClose.c \ HDFdatasetOpen.c \ HDFdatasetClose.c \ HDFdatasetCreate.c \ HDFdatasetWrite.c \ HDFdatasetRead.c \ HDFdatasetGetDim.c \ HDFdatasetGetSize.c \ HDFdatasetGetType.c \ HDFdatasetGetnDim.c \ HDFdatasetGetOrder.c \ HDFarrayGetType.c \ HDFarrayGetTypeId.c \ HDFarrayCreate.c \ HDFarrayClose.c \ HDFarrayGetnDim.c \ HDFarrayGetDim.c \ HDFattrOpen.c \ HDFattrClose.c \ HDFattrWrite.c \ HDFattrCreate.c \ HDFattrRead.c \ HDFattrGetType.c \ HDFattrGetSize.c \ HDFerrorModeLock.c \ HDFnObjects.c \ HDFobjectIdentify.c \ HDFobjectType.c \ HDFobject.cc \ HDFarray.cc \ HDFinternalObject.cc \ HDFattribute.cc \ HDFcontainerObject.cc \ HDFdataset.cc \ HDFfile.cc \ HDFgroup.cc \ HDFexplorer.cc \ HDFconvert.cc \ HDFascii.cc libSalomeHDFPersist_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeHDFPersist_la_CPPFLAGS = @HDF5_INCLUDES@ -D@MACHINE@ libSalomeHDFPersist_la_LIBADD = @HDF5_LIBS@ EXTRA_DIST = \ test1.c \ test2.c \ test3.cxx \ test4.cxx \ test5.cxx \ test6.cxx \ test7.cxx \ test8.cxx \ test9.cxx all: all-am .SUFFIXES: .SUFFIXES: .c .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/HDFPersist/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/HDFPersist/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeHDFPersist.la: $(libSalomeHDFPersist_la_OBJECTS) $(libSalomeHDFPersist_la_DEPENDENCIES) $(libSalomeHDFPersist_la_LINK) -rpath $(libdir) $(libSalomeHDFPersist_la_OBJECTS) $(libSalomeHDFPersist_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarray.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarrayClose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarrayCreate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetDim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetTypeId.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetnDim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFascii.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrClose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrCreate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetSize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrOpen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrRead.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattrWrite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFattribute.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFcontainerObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFconvert.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdataset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetClose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetCreate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetDim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetOrder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetSize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetnDim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetOpen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetRead.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetWrite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFerrorModeLock.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFexplorer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFfile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFfileClose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFfileCreate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFfileMount.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFfileOpen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFfileUmount.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFgroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFgroupClose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFgroupCreate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFgroupOpen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFinternalObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFnObjects.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFobject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFobjectIdentify.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeHDFPersist_la-HDFobjectType.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libSalomeHDFPersist_la-HDFfileCreate.lo: HDFfileCreate.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFfileCreate.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFfileCreate.Tpo -c -o libSalomeHDFPersist_la-HDFfileCreate.lo `test -f 'HDFfileCreate.c' || echo '$(srcdir)/'`HDFfileCreate.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFfileCreate.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFfileCreate.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFfileCreate.c' object='libSalomeHDFPersist_la-HDFfileCreate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFfileCreate.lo `test -f 'HDFfileCreate.c' || echo '$(srcdir)/'`HDFfileCreate.c libSalomeHDFPersist_la-HDFfileClose.lo: HDFfileClose.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFfileClose.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFfileClose.Tpo -c -o libSalomeHDFPersist_la-HDFfileClose.lo `test -f 'HDFfileClose.c' || echo '$(srcdir)/'`HDFfileClose.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFfileClose.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFfileClose.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFfileClose.c' object='libSalomeHDFPersist_la-HDFfileClose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFfileClose.lo `test -f 'HDFfileClose.c' || echo '$(srcdir)/'`HDFfileClose.c libSalomeHDFPersist_la-HDFfileOpen.lo: HDFfileOpen.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFfileOpen.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFfileOpen.Tpo -c -o libSalomeHDFPersist_la-HDFfileOpen.lo `test -f 'HDFfileOpen.c' || echo '$(srcdir)/'`HDFfileOpen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFfileOpen.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFfileOpen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFfileOpen.c' object='libSalomeHDFPersist_la-HDFfileOpen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFfileOpen.lo `test -f 'HDFfileOpen.c' || echo '$(srcdir)/'`HDFfileOpen.c libSalomeHDFPersist_la-HDFfileMount.lo: HDFfileMount.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFfileMount.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFfileMount.Tpo -c -o libSalomeHDFPersist_la-HDFfileMount.lo `test -f 'HDFfileMount.c' || echo '$(srcdir)/'`HDFfileMount.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFfileMount.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFfileMount.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFfileMount.c' object='libSalomeHDFPersist_la-HDFfileMount.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFfileMount.lo `test -f 'HDFfileMount.c' || echo '$(srcdir)/'`HDFfileMount.c libSalomeHDFPersist_la-HDFfileUmount.lo: HDFfileUmount.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFfileUmount.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFfileUmount.Tpo -c -o libSalomeHDFPersist_la-HDFfileUmount.lo `test -f 'HDFfileUmount.c' || echo '$(srcdir)/'`HDFfileUmount.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFfileUmount.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFfileUmount.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFfileUmount.c' object='libSalomeHDFPersist_la-HDFfileUmount.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFfileUmount.lo `test -f 'HDFfileUmount.c' || echo '$(srcdir)/'`HDFfileUmount.c libSalomeHDFPersist_la-HDFgroupCreate.lo: HDFgroupCreate.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFgroupCreate.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupCreate.Tpo -c -o libSalomeHDFPersist_la-HDFgroupCreate.lo `test -f 'HDFgroupCreate.c' || echo '$(srcdir)/'`HDFgroupCreate.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupCreate.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupCreate.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFgroupCreate.c' object='libSalomeHDFPersist_la-HDFgroupCreate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFgroupCreate.lo `test -f 'HDFgroupCreate.c' || echo '$(srcdir)/'`HDFgroupCreate.c libSalomeHDFPersist_la-HDFgroupOpen.lo: HDFgroupOpen.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFgroupOpen.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupOpen.Tpo -c -o libSalomeHDFPersist_la-HDFgroupOpen.lo `test -f 'HDFgroupOpen.c' || echo '$(srcdir)/'`HDFgroupOpen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupOpen.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupOpen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFgroupOpen.c' object='libSalomeHDFPersist_la-HDFgroupOpen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFgroupOpen.lo `test -f 'HDFgroupOpen.c' || echo '$(srcdir)/'`HDFgroupOpen.c libSalomeHDFPersist_la-HDFgroupClose.lo: HDFgroupClose.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFgroupClose.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupClose.Tpo -c -o libSalomeHDFPersist_la-HDFgroupClose.lo `test -f 'HDFgroupClose.c' || echo '$(srcdir)/'`HDFgroupClose.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupClose.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFgroupClose.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFgroupClose.c' object='libSalomeHDFPersist_la-HDFgroupClose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFgroupClose.lo `test -f 'HDFgroupClose.c' || echo '$(srcdir)/'`HDFgroupClose.c libSalomeHDFPersist_la-HDFdatasetOpen.lo: HDFdatasetOpen.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetOpen.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetOpen.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetOpen.lo `test -f 'HDFdatasetOpen.c' || echo '$(srcdir)/'`HDFdatasetOpen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetOpen.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetOpen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetOpen.c' object='libSalomeHDFPersist_la-HDFdatasetOpen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetOpen.lo `test -f 'HDFdatasetOpen.c' || echo '$(srcdir)/'`HDFdatasetOpen.c libSalomeHDFPersist_la-HDFdatasetClose.lo: HDFdatasetClose.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetClose.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetClose.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetClose.lo `test -f 'HDFdatasetClose.c' || echo '$(srcdir)/'`HDFdatasetClose.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetClose.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetClose.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetClose.c' object='libSalomeHDFPersist_la-HDFdatasetClose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetClose.lo `test -f 'HDFdatasetClose.c' || echo '$(srcdir)/'`HDFdatasetClose.c libSalomeHDFPersist_la-HDFdatasetCreate.lo: HDFdatasetCreate.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetCreate.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetCreate.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetCreate.lo `test -f 'HDFdatasetCreate.c' || echo '$(srcdir)/'`HDFdatasetCreate.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetCreate.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetCreate.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetCreate.c' object='libSalomeHDFPersist_la-HDFdatasetCreate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetCreate.lo `test -f 'HDFdatasetCreate.c' || echo '$(srcdir)/'`HDFdatasetCreate.c libSalomeHDFPersist_la-HDFdatasetWrite.lo: HDFdatasetWrite.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetWrite.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetWrite.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetWrite.lo `test -f 'HDFdatasetWrite.c' || echo '$(srcdir)/'`HDFdatasetWrite.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetWrite.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetWrite.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetWrite.c' object='libSalomeHDFPersist_la-HDFdatasetWrite.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetWrite.lo `test -f 'HDFdatasetWrite.c' || echo '$(srcdir)/'`HDFdatasetWrite.c libSalomeHDFPersist_la-HDFdatasetRead.lo: HDFdatasetRead.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetRead.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetRead.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetRead.lo `test -f 'HDFdatasetRead.c' || echo '$(srcdir)/'`HDFdatasetRead.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetRead.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetRead.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetRead.c' object='libSalomeHDFPersist_la-HDFdatasetRead.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetRead.lo `test -f 'HDFdatasetRead.c' || echo '$(srcdir)/'`HDFdatasetRead.c libSalomeHDFPersist_la-HDFdatasetGetDim.lo: HDFdatasetGetDim.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetGetDim.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetDim.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetGetDim.lo `test -f 'HDFdatasetGetDim.c' || echo '$(srcdir)/'`HDFdatasetGetDim.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetDim.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetDim.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetGetDim.c' object='libSalomeHDFPersist_la-HDFdatasetGetDim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetGetDim.lo `test -f 'HDFdatasetGetDim.c' || echo '$(srcdir)/'`HDFdatasetGetDim.c libSalomeHDFPersist_la-HDFdatasetGetSize.lo: HDFdatasetGetSize.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetGetSize.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetSize.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetGetSize.lo `test -f 'HDFdatasetGetSize.c' || echo '$(srcdir)/'`HDFdatasetGetSize.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetSize.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetSize.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetGetSize.c' object='libSalomeHDFPersist_la-HDFdatasetGetSize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetGetSize.lo `test -f 'HDFdatasetGetSize.c' || echo '$(srcdir)/'`HDFdatasetGetSize.c libSalomeHDFPersist_la-HDFdatasetGetType.lo: HDFdatasetGetType.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetGetType.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetType.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetGetType.lo `test -f 'HDFdatasetGetType.c' || echo '$(srcdir)/'`HDFdatasetGetType.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetType.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetGetType.c' object='libSalomeHDFPersist_la-HDFdatasetGetType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetGetType.lo `test -f 'HDFdatasetGetType.c' || echo '$(srcdir)/'`HDFdatasetGetType.c libSalomeHDFPersist_la-HDFdatasetGetnDim.lo: HDFdatasetGetnDim.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetGetnDim.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetnDim.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetGetnDim.lo `test -f 'HDFdatasetGetnDim.c' || echo '$(srcdir)/'`HDFdatasetGetnDim.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetnDim.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetnDim.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetGetnDim.c' object='libSalomeHDFPersist_la-HDFdatasetGetnDim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetGetnDim.lo `test -f 'HDFdatasetGetnDim.c' || echo '$(srcdir)/'`HDFdatasetGetnDim.c libSalomeHDFPersist_la-HDFdatasetGetOrder.lo: HDFdatasetGetOrder.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFdatasetGetOrder.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetOrder.Tpo -c -o libSalomeHDFPersist_la-HDFdatasetGetOrder.lo `test -f 'HDFdatasetGetOrder.c' || echo '$(srcdir)/'`HDFdatasetGetOrder.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetOrder.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdatasetGetOrder.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFdatasetGetOrder.c' object='libSalomeHDFPersist_la-HDFdatasetGetOrder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFdatasetGetOrder.lo `test -f 'HDFdatasetGetOrder.c' || echo '$(srcdir)/'`HDFdatasetGetOrder.c libSalomeHDFPersist_la-HDFarrayGetType.lo: HDFarrayGetType.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFarrayGetType.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetType.Tpo -c -o libSalomeHDFPersist_la-HDFarrayGetType.lo `test -f 'HDFarrayGetType.c' || echo '$(srcdir)/'`HDFarrayGetType.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetType.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFarrayGetType.c' object='libSalomeHDFPersist_la-HDFarrayGetType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFarrayGetType.lo `test -f 'HDFarrayGetType.c' || echo '$(srcdir)/'`HDFarrayGetType.c libSalomeHDFPersist_la-HDFarrayGetTypeId.lo: HDFarrayGetTypeId.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFarrayGetTypeId.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetTypeId.Tpo -c -o libSalomeHDFPersist_la-HDFarrayGetTypeId.lo `test -f 'HDFarrayGetTypeId.c' || echo '$(srcdir)/'`HDFarrayGetTypeId.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetTypeId.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetTypeId.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFarrayGetTypeId.c' object='libSalomeHDFPersist_la-HDFarrayGetTypeId.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFarrayGetTypeId.lo `test -f 'HDFarrayGetTypeId.c' || echo '$(srcdir)/'`HDFarrayGetTypeId.c libSalomeHDFPersist_la-HDFarrayCreate.lo: HDFarrayCreate.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFarrayCreate.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayCreate.Tpo -c -o libSalomeHDFPersist_la-HDFarrayCreate.lo `test -f 'HDFarrayCreate.c' || echo '$(srcdir)/'`HDFarrayCreate.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayCreate.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayCreate.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFarrayCreate.c' object='libSalomeHDFPersist_la-HDFarrayCreate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFarrayCreate.lo `test -f 'HDFarrayCreate.c' || echo '$(srcdir)/'`HDFarrayCreate.c libSalomeHDFPersist_la-HDFarrayClose.lo: HDFarrayClose.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFarrayClose.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayClose.Tpo -c -o libSalomeHDFPersist_la-HDFarrayClose.lo `test -f 'HDFarrayClose.c' || echo '$(srcdir)/'`HDFarrayClose.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayClose.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayClose.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFarrayClose.c' object='libSalomeHDFPersist_la-HDFarrayClose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFarrayClose.lo `test -f 'HDFarrayClose.c' || echo '$(srcdir)/'`HDFarrayClose.c libSalomeHDFPersist_la-HDFarrayGetnDim.lo: HDFarrayGetnDim.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFarrayGetnDim.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetnDim.Tpo -c -o libSalomeHDFPersist_la-HDFarrayGetnDim.lo `test -f 'HDFarrayGetnDim.c' || echo '$(srcdir)/'`HDFarrayGetnDim.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetnDim.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetnDim.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFarrayGetnDim.c' object='libSalomeHDFPersist_la-HDFarrayGetnDim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFarrayGetnDim.lo `test -f 'HDFarrayGetnDim.c' || echo '$(srcdir)/'`HDFarrayGetnDim.c libSalomeHDFPersist_la-HDFarrayGetDim.lo: HDFarrayGetDim.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFarrayGetDim.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetDim.Tpo -c -o libSalomeHDFPersist_la-HDFarrayGetDim.lo `test -f 'HDFarrayGetDim.c' || echo '$(srcdir)/'`HDFarrayGetDim.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetDim.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarrayGetDim.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFarrayGetDim.c' object='libSalomeHDFPersist_la-HDFarrayGetDim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFarrayGetDim.lo `test -f 'HDFarrayGetDim.c' || echo '$(srcdir)/'`HDFarrayGetDim.c libSalomeHDFPersist_la-HDFattrOpen.lo: HDFattrOpen.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrOpen.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrOpen.Tpo -c -o libSalomeHDFPersist_la-HDFattrOpen.lo `test -f 'HDFattrOpen.c' || echo '$(srcdir)/'`HDFattrOpen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrOpen.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrOpen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrOpen.c' object='libSalomeHDFPersist_la-HDFattrOpen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrOpen.lo `test -f 'HDFattrOpen.c' || echo '$(srcdir)/'`HDFattrOpen.c libSalomeHDFPersist_la-HDFattrClose.lo: HDFattrClose.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrClose.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrClose.Tpo -c -o libSalomeHDFPersist_la-HDFattrClose.lo `test -f 'HDFattrClose.c' || echo '$(srcdir)/'`HDFattrClose.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrClose.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrClose.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrClose.c' object='libSalomeHDFPersist_la-HDFattrClose.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrClose.lo `test -f 'HDFattrClose.c' || echo '$(srcdir)/'`HDFattrClose.c libSalomeHDFPersist_la-HDFattrWrite.lo: HDFattrWrite.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrWrite.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrWrite.Tpo -c -o libSalomeHDFPersist_la-HDFattrWrite.lo `test -f 'HDFattrWrite.c' || echo '$(srcdir)/'`HDFattrWrite.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrWrite.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrWrite.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrWrite.c' object='libSalomeHDFPersist_la-HDFattrWrite.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrWrite.lo `test -f 'HDFattrWrite.c' || echo '$(srcdir)/'`HDFattrWrite.c libSalomeHDFPersist_la-HDFattrCreate.lo: HDFattrCreate.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrCreate.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrCreate.Tpo -c -o libSalomeHDFPersist_la-HDFattrCreate.lo `test -f 'HDFattrCreate.c' || echo '$(srcdir)/'`HDFattrCreate.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrCreate.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrCreate.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrCreate.c' object='libSalomeHDFPersist_la-HDFattrCreate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrCreate.lo `test -f 'HDFattrCreate.c' || echo '$(srcdir)/'`HDFattrCreate.c libSalomeHDFPersist_la-HDFattrRead.lo: HDFattrRead.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrRead.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrRead.Tpo -c -o libSalomeHDFPersist_la-HDFattrRead.lo `test -f 'HDFattrRead.c' || echo '$(srcdir)/'`HDFattrRead.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrRead.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrRead.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrRead.c' object='libSalomeHDFPersist_la-HDFattrRead.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrRead.lo `test -f 'HDFattrRead.c' || echo '$(srcdir)/'`HDFattrRead.c libSalomeHDFPersist_la-HDFattrGetType.lo: HDFattrGetType.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrGetType.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetType.Tpo -c -o libSalomeHDFPersist_la-HDFattrGetType.lo `test -f 'HDFattrGetType.c' || echo '$(srcdir)/'`HDFattrGetType.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetType.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrGetType.c' object='libSalomeHDFPersist_la-HDFattrGetType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrGetType.lo `test -f 'HDFattrGetType.c' || echo '$(srcdir)/'`HDFattrGetType.c libSalomeHDFPersist_la-HDFattrGetSize.lo: HDFattrGetSize.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFattrGetSize.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetSize.Tpo -c -o libSalomeHDFPersist_la-HDFattrGetSize.lo `test -f 'HDFattrGetSize.c' || echo '$(srcdir)/'`HDFattrGetSize.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetSize.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattrGetSize.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFattrGetSize.c' object='libSalomeHDFPersist_la-HDFattrGetSize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFattrGetSize.lo `test -f 'HDFattrGetSize.c' || echo '$(srcdir)/'`HDFattrGetSize.c libSalomeHDFPersist_la-HDFerrorModeLock.lo: HDFerrorModeLock.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFerrorModeLock.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFerrorModeLock.Tpo -c -o libSalomeHDFPersist_la-HDFerrorModeLock.lo `test -f 'HDFerrorModeLock.c' || echo '$(srcdir)/'`HDFerrorModeLock.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFerrorModeLock.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFerrorModeLock.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFerrorModeLock.c' object='libSalomeHDFPersist_la-HDFerrorModeLock.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFerrorModeLock.lo `test -f 'HDFerrorModeLock.c' || echo '$(srcdir)/'`HDFerrorModeLock.c libSalomeHDFPersist_la-HDFnObjects.lo: HDFnObjects.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFnObjects.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFnObjects.Tpo -c -o libSalomeHDFPersist_la-HDFnObjects.lo `test -f 'HDFnObjects.c' || echo '$(srcdir)/'`HDFnObjects.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFnObjects.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFnObjects.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFnObjects.c' object='libSalomeHDFPersist_la-HDFnObjects.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFnObjects.lo `test -f 'HDFnObjects.c' || echo '$(srcdir)/'`HDFnObjects.c libSalomeHDFPersist_la-HDFobjectIdentify.lo: HDFobjectIdentify.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFobjectIdentify.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFobjectIdentify.Tpo -c -o libSalomeHDFPersist_la-HDFobjectIdentify.lo `test -f 'HDFobjectIdentify.c' || echo '$(srcdir)/'`HDFobjectIdentify.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFobjectIdentify.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFobjectIdentify.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFobjectIdentify.c' object='libSalomeHDFPersist_la-HDFobjectIdentify.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFobjectIdentify.lo `test -f 'HDFobjectIdentify.c' || echo '$(srcdir)/'`HDFobjectIdentify.c libSalomeHDFPersist_la-HDFobjectType.lo: HDFobjectType.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libSalomeHDFPersist_la-HDFobjectType.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFobjectType.Tpo -c -o libSalomeHDFPersist_la-HDFobjectType.lo `test -f 'HDFobjectType.c' || echo '$(srcdir)/'`HDFobjectType.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFobjectType.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFobjectType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='HDFobjectType.c' object='libSalomeHDFPersist_la-HDFobjectType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libSalomeHDFPersist_la-HDFobjectType.lo `test -f 'HDFobjectType.c' || echo '$(srcdir)/'`HDFobjectType.c .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeHDFPersist_la-HDFobject.lo: HDFobject.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFobject.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFobject.Tpo -c -o libSalomeHDFPersist_la-HDFobject.lo `test -f 'HDFobject.cc' || echo '$(srcdir)/'`HDFobject.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFobject.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFobject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFobject.cc' object='libSalomeHDFPersist_la-HDFobject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFobject.lo `test -f 'HDFobject.cc' || echo '$(srcdir)/'`HDFobject.cc libSalomeHDFPersist_la-HDFarray.lo: HDFarray.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFarray.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFarray.Tpo -c -o libSalomeHDFPersist_la-HDFarray.lo `test -f 'HDFarray.cc' || echo '$(srcdir)/'`HDFarray.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFarray.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFarray.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFarray.cc' object='libSalomeHDFPersist_la-HDFarray.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFarray.lo `test -f 'HDFarray.cc' || echo '$(srcdir)/'`HDFarray.cc libSalomeHDFPersist_la-HDFinternalObject.lo: HDFinternalObject.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFinternalObject.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFinternalObject.Tpo -c -o libSalomeHDFPersist_la-HDFinternalObject.lo `test -f 'HDFinternalObject.cc' || echo '$(srcdir)/'`HDFinternalObject.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFinternalObject.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFinternalObject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFinternalObject.cc' object='libSalomeHDFPersist_la-HDFinternalObject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFinternalObject.lo `test -f 'HDFinternalObject.cc' || echo '$(srcdir)/'`HDFinternalObject.cc libSalomeHDFPersist_la-HDFattribute.lo: HDFattribute.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFattribute.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFattribute.Tpo -c -o libSalomeHDFPersist_la-HDFattribute.lo `test -f 'HDFattribute.cc' || echo '$(srcdir)/'`HDFattribute.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFattribute.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFattribute.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFattribute.cc' object='libSalomeHDFPersist_la-HDFattribute.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFattribute.lo `test -f 'HDFattribute.cc' || echo '$(srcdir)/'`HDFattribute.cc libSalomeHDFPersist_la-HDFcontainerObject.lo: HDFcontainerObject.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFcontainerObject.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFcontainerObject.Tpo -c -o libSalomeHDFPersist_la-HDFcontainerObject.lo `test -f 'HDFcontainerObject.cc' || echo '$(srcdir)/'`HDFcontainerObject.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFcontainerObject.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFcontainerObject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFcontainerObject.cc' object='libSalomeHDFPersist_la-HDFcontainerObject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFcontainerObject.lo `test -f 'HDFcontainerObject.cc' || echo '$(srcdir)/'`HDFcontainerObject.cc libSalomeHDFPersist_la-HDFdataset.lo: HDFdataset.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFdataset.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFdataset.Tpo -c -o libSalomeHDFPersist_la-HDFdataset.lo `test -f 'HDFdataset.cc' || echo '$(srcdir)/'`HDFdataset.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFdataset.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFdataset.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFdataset.cc' object='libSalomeHDFPersist_la-HDFdataset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFdataset.lo `test -f 'HDFdataset.cc' || echo '$(srcdir)/'`HDFdataset.cc libSalomeHDFPersist_la-HDFfile.lo: HDFfile.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFfile.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFfile.Tpo -c -o libSalomeHDFPersist_la-HDFfile.lo `test -f 'HDFfile.cc' || echo '$(srcdir)/'`HDFfile.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFfile.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFfile.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFfile.cc' object='libSalomeHDFPersist_la-HDFfile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFfile.lo `test -f 'HDFfile.cc' || echo '$(srcdir)/'`HDFfile.cc libSalomeHDFPersist_la-HDFgroup.lo: HDFgroup.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFgroup.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFgroup.Tpo -c -o libSalomeHDFPersist_la-HDFgroup.lo `test -f 'HDFgroup.cc' || echo '$(srcdir)/'`HDFgroup.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFgroup.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFgroup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFgroup.cc' object='libSalomeHDFPersist_la-HDFgroup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFgroup.lo `test -f 'HDFgroup.cc' || echo '$(srcdir)/'`HDFgroup.cc libSalomeHDFPersist_la-HDFexplorer.lo: HDFexplorer.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFexplorer.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFexplorer.Tpo -c -o libSalomeHDFPersist_la-HDFexplorer.lo `test -f 'HDFexplorer.cc' || echo '$(srcdir)/'`HDFexplorer.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFexplorer.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFexplorer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFexplorer.cc' object='libSalomeHDFPersist_la-HDFexplorer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFexplorer.lo `test -f 'HDFexplorer.cc' || echo '$(srcdir)/'`HDFexplorer.cc libSalomeHDFPersist_la-HDFconvert.lo: HDFconvert.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFconvert.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFconvert.Tpo -c -o libSalomeHDFPersist_la-HDFconvert.lo `test -f 'HDFconvert.cc' || echo '$(srcdir)/'`HDFconvert.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFconvert.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFconvert.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFconvert.cc' object='libSalomeHDFPersist_la-HDFconvert.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFconvert.lo `test -f 'HDFconvert.cc' || echo '$(srcdir)/'`HDFconvert.cc libSalomeHDFPersist_la-HDFascii.lo: HDFascii.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeHDFPersist_la-HDFascii.lo -MD -MP -MF $(DEPDIR)/libSalomeHDFPersist_la-HDFascii.Tpo -c -o libSalomeHDFPersist_la-HDFascii.lo `test -f 'HDFascii.cc' || echo '$(srcdir)/'`HDFascii.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeHDFPersist_la-HDFascii.Tpo $(DEPDIR)/libSalomeHDFPersist_la-HDFascii.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='HDFascii.cc' object='libSalomeHDFPersist_la-HDFascii.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeHDFPersist_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeHDFPersist_la-HDFascii.lo `test -f 'HDFascii.cc' || echo '$(srcdir)/'`HDFascii.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/HDFPersist/hdfi.h000077500000000000000000000067051177004724000201220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : hdfi.h Module : SALOME ----------------------------------------------------------------------*/ #ifndef HDFI_H #define HDFI_H #include "HDFtypes.h" /* HDF C INTERFACE */ #ifdef __cplusplus extern "C" { #endif /* File Interface */ extern hdf_idt HDFfileCreate(char *name); extern hdf_err HDFfileClose(hdf_idt fid); extern hdf_idt HDFfileOpen(char *name,hdf_access_mode access_mode); extern hdf_err HDFfileMount(hdf_idt id,const char *name,hdf_idt fid); extern hdf_err HDFfileUmount(hdf_idt id,const char *name); /* Group Interface */ extern hdf_idt HDFgroupCreate(hdf_idt pid, char *name); extern hdf_idt HDFgroupOpen(hdf_idt pid, char *name); extern hdf_err HDFgroupClose(hdf_idt id); /* DataSet Interface */ extern hdf_idt HDFdatasetOpen(hdf_idt pid,char *name); extern hdf_err HDFdatasetClose(hdf_idt id); extern hdf_idt HDFdatasetCreate(hdf_idt pid,char *name, hdf_type type, hdf_size *dimd, int ndim, hdf_byte_order order, hdf_idt arrayId); extern hdf_err HDFdatasetWrite(hdf_idt id, void *val); extern hdf_err HDFdatasetRead(hdf_idt id, void *val); extern hdf_type HDFdatasetGetType(hdf_idt id); extern hdf_type HDFarrayGetType(hdf_idt id); extern hdf_idt HDFarrayGetTypeId(hdf_idt type_id); extern hdf_err HDFarrayClose(hdf_idt id); extern int HDFarrayGetnDim(hdf_idt id); extern hdf_err HDFarrayGetDim(hdf_idt id, hdf_size dim[]); extern hdf_idt HDFarrayCreate(hdf_type dataType,int ndim,hdf_size *dim); extern int HDFdatasetGetnDim(hdf_idt id); extern hdf_err HDFdatasetGetDim(hdf_idt id,hdf_size dim[]); extern int HDFdatasetGetSize(hdf_idt id); extern hdf_byte_order HDFdatasetGetOrder(hdf_idt id); /* Attribute interface */ extern hdf_idt HDFattrOpen(hdf_idt pid,char *name); extern hdf_err HDFattrClose(hdf_idt id); extern hdf_idt HDFattrCreate(hdf_idt pid,char *name,hdf_type type, size_t size); extern hdf_err HDFattrWrite(hdf_idt id,void *val); extern hdf_err HDFattrRead(hdf_idt id,void *val); extern hdf_type HDFattrGetType(hdf_idt id); extern hdf_type HDFattrGetSize(hdf_idt id); /* HDF Tools */ extern void HDFerrorModeLock(); extern hdf_err HDFnObjects(hdf_idt fid,const char *path,int *n); extern hdf_err HDFobjectIdentify(hdf_idt fid,const char *path,int i,char *name); extern hdf_err HDFobjectType(hdf_idt id, char *name, hdf_object_type *type); #ifdef __cplusplus } #endif #endif /* HDFI_H */ salome-kernel-6.5.0/src/HDFPersist/test1.c000077500000000000000000000052571177004724000202440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : test1.c Module : SALOME ----------------------------------------------------------------------------*/ #include"hdfi.h" #include #define MESSAGE(msg) printf(msg); //__FILE__,":[",__LINE__,"]: ", int main() { hdf_idt fid,gid,did,atid; hdf_err ret; hdf_size size[1]; hdf_int32 data[10] = { 1,2,3,4,5,6,7,8,9,10}; hdf_int32 attr_val = 2; system("rm titi.HDF"); HDFerrorModeLock(); if ((fid = HDFfileCreate("titi.HDF")) < 0) return -1; MESSAGE("Creation du fichier") if ((gid = HDFgroupCreate(fid,"GROUP")) < 0) return -1; MESSAGE("Creation d'un groupe") if ((atid = HDFattrCreate(gid,"ATTR",HDF_INT32))< 0) return -1; MESSAGE("Creation d'un attribut") if ((ret = HDFattrWrite(atid,&attr_val)) < 0) return -1; MESSAGE("Ecriture de l'attribut") if ((ret = HDFattrClose(atid)) < 0) return -1; MESSAGE("Fermeture de l'attribut") size[0] = 10; if ((did = HDFdatasetCreate(gid,"DATASET",HDF_INT32,size)) < 0) return -1; MESSAGE("Creation d'un dataset") if ((ret = HDFdatasetWrite(did,data)) < 0) return -1; MESSAGE("Ecriture du dataset") if ((ret = HDFdatasetClose(did)) < 0) return -1; MESSAGE("Fermeture du datset") if ((ret = HDFgroupClose(gid)) < 0) return -1; MESSAGE("Fermeture du groupe") if ((ret = HDFfileClose(fid)) < 0) return ret; MESSAGE("Fermeture du fichier") if ((fid = HDFfileCreate("toto.HDF")) < 0) return -1; MESSAGE("Creation du fichier") if ((ret = HDFfileClose(fid)) < 0) return ret; MESSAGE("Fermeture du fichier") return 0; } salome-kernel-6.5.0/src/HDFPersist/test2.c000077500000000000000000000046441177004724000202440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*---------------------------------------------------------------------------- SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) File : test2.c Module : SALOME ----------------------------------------------------------------------------*/ #include"hdfi.h" #include int main() { hdf_idt fid,gid,did,atid; hdf_err ret; hdf_size size[1]; hdf_int32 data[10]; int attr_val; int i; HDFerrorModeLock(); if ((fid = HDFfileOpen("titi.HDF",HDF_RDONLY)) < 0) return -1; MESSAGE("Ouverture du fichier") if ((gid = HDFgroupOpen(fid,"GROUP")) < 0) return -1; MESSAGE("Ouverture du goupe") if ((atid = HDFattrOpen(gid,"ATTR"))< 0) return -1; MESSAGE("Ouverture de l'attribut du goupe") if ((ret = HDFattrRead(atid,&attr_val)) < 0) return -1; MESSAGE("Lecture de l'attribut du goupe : " << attr_val) if ((ret = HDFattrClose(atid)) < 0) return -1; MESSAGE("Fermeture de l'attribut du goupe") if ((did = HDFdatasetOpen(gid,"DATASET")) < 0) return -1; MESSAGE("Ouverture du dataset") if ((ret = HDFdatasetRead(did,data)) < 0) return -1; MESSAGE("Lecture du dataset") for (i=0;i<10;i++) MESSAGE(data[i]) if ((ret = HDFdatasetClose(did)) < 0) return -1; MESSAGE("Fermeture du dataset") if ((ret = HDFgroupClose(gid)) < 0) return -1; MESSAGE("Fermeture du groupe") if ((ret = HDFfileClose(fid)) < 0) return ret; MESSAGE("Fermeture du fichier") return 0; } salome-kernel-6.5.0/src/HDFPersist/test3.cxx000077500000000000000000000140771177004724000206260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test3.cxx // Module : SALOME // #include #include "HDFOI.hxx" #include int main() { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset; HDFdataset *hdf_dataset2; HDFattribute *hdf_attribute; hdf_size size[1]; hdf_float64 coordinates[3] = {5.,-6.9,4.2}; hdf_int32 unit[3] = {0,0,0}; char message[HDF_NAME_MAX_LEN+1] = "MESSAGE"; hdf_int32 attribute = 3; HDFexplorer *explorer; HDFinternalObject *object; system("rm file_test3.hdf"); try { // a new HDFfile object hdf_file = new HDFfile("file_test3.hdf"); MESSAGE( ">> A HDFfile object is created" ); hdf_file->CreateOnDisk(); MESSAGE( ">> The HDF file is created on Disk " ); // Inside the HDF file // A new HDF group object hdf_group = new HDFgroup("MESH",hdf_file); MESSAGE( ">> A HDFgroup object 'MESH' is created" ); hdf_group->CreateOnDisk(); MESSAGE( ">> The HDF group is created on Disk " ); // Inside the HDF group // A new HDF dataset object // size of each dimension, only one in the example size[0] = 3; hdf_dataset = new HDFdataset("COORDINATES",hdf_group,HDF_FLOAT64,size,1); MESSAGE( ">> A HDFdataset object 'COORDINATES' is created" ); hdf_dataset->CreateOnDisk(); MESSAGE( ">> The HDF dataset is created on Disk " ); // a HDFattribute object inside the dataset hdf_attribute = new HDFattribute("ATTRIBUTE",hdf_dataset,HDF_INT32); MESSAGE( ">> A HDF attribute object is created for the dataset " ); hdf_dataset->WriteOnDisk(coordinates); MESSAGE( ">> The HDF dataset is written on Disk " ); hdf_attribute->CreateOnDisk(); MESSAGE( ">> The HDF attribute is created on Disk " ); hdf_attribute->WriteOnDisk(&attribute); MESSAGE( ">> The HDF attribute is written on Disk " ); hdf_attribute->CloseOnDisk(); MESSAGE( ">> The HDF attribute closed on Disk " ); hdf_dataset->CloseOnDisk(); MESSAGE( ">> The HDF dataset is closed on Disk " ); // A new dataset is created size[0] = 3; hdf_dataset2 = new HDFdataset("UNIT",hdf_group,HDF_INT32,size,1); MESSAGE( ">> A second HDFdataset object 'UNIT' is created" ); hdf_dataset2->CreateOnDisk(); MESSAGE( ">> The HDF dataset is created on Disk " ); hdf_dataset2->WriteOnDisk(unit); MESSAGE( ">> The HDF dataset is written on Disk " ); hdf_dataset2->CloseOnDisk(); MESSAGE( ">> The HDF dataset is closed on Disk " ); // The HDF group is built, it can be closed hdf_group->CloseOnDisk(); MESSAGE( ">> The HDF group is closed on Disk " ); // The HDF file is built, it can be closed hdf_file->CloseOnDisk(); MESSAGE( ">> The HDF file is closed on disk" ); // Explorer explorer = new HDFexplorer(hdf_file); MESSAGE( ">> A HDF explorer object is created" ); MESSAGE( ">> File Exploration " ); for (explorer->Init();explorer->More();explorer->Next()) { object = explorer->Value(); MESSAGE( "--> Name of the object : " << object->GetName() ); switch (object->GetObjectType()) { case HDF_FILE : MESSAGE( "--> Type of the object : HDF_FILE : " ); break; case HDF_GROUP : MESSAGE( "--> Type of the object : HDF_GROUP : " ); break; case HDF_DATASET : MESSAGE( "--> Type of the object : HDF_DATASET : " ); break; default : MESSAGE( "--> PANIC !!! : " ); } } MESSAGE( ">> Group exploration" ); explorer->Reset(hdf_group); for (explorer->Init();explorer->More();explorer->Next()) { object = explorer->Value(); MESSAGE( "--> Name of the object : " << object->GetName() ); switch (object->GetObjectType()) { case HDF_FILE : MESSAGE( "--> Type of the object : HDF_FILE : " ); break; case HDF_GROUP : MESSAGE( "--> Type of the object : HDF_GROUP : " ); break; case HDF_DATASET : MESSAGE( "--> Type of the object : HDF_DATASET : " ); break; default : MESSAGE( "--> !!! PANIC !!! : " ); } } // memory clean MESSAGE( ">> MEMORY CLEAN " ); delete explorer; MESSAGE( ">> The HDF eplorer object is deleted" ); delete hdf_attribute; MESSAGE( ">> The HDF attribute object is deleted" ); delete hdf_dataset; MESSAGE( ">> The first HDF dataset object is deleted" ); delete hdf_dataset2; MESSAGE( ">> The second HDF dataset object is deleted" ); delete hdf_group; MESSAGE( ">> The HDF group object is deleted" ); delete hdf_file; MESSAGE( ">> The HDF file object is deleted" ); } catch (HDFexception) { MESSAGE( "!!!! HDFexception" ) } return 0; } salome-kernel-6.5.0/src/HDFPersist/test4.cxx000077500000000000000000000151771177004724000206310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test4.cxx // Module : SALOME // #include #include "HDFOI.hxx" #include int main() { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset1, *hdf_dataset2; int n,i; char name[HDF_NAME_MAX_LEN+1]; hdf_object_type type; hdf_type data_type; int ndim, size; hdf_size *dim; hdf_float64 *val1; hdf_int32 *val2; try { // a new HDFfile object hdf_file = new HDFfile("file_test3.hdf"); MESSAGE( ">> A HDFfile object is created" ); hdf_file->OpenOnDisk(HDF_RDONLY); MESSAGE(">> The HDF file is opened on Disk with HDF_RDONLY access mode") // It is possible to read the name of all (objects) sons in the file n = hdf_file->nInternalObjects(); for (i=0;iInternalObjectIndentify(i,name); MESSAGE( "--> First Level Internal Object Name : " << name ); } // Or it is possible to ask if an object is in the file if (hdf_file->ExistInternalObject("MESH")) MESSAGE( "--> The object naming 'MESH' is in the file " ); // it is possible to determine the type of an object type = hdf_file->InternalObjectType("MESH"); switch (type) { case HDF_GROUP : MESSAGE( "--> Its type is HDF_GROUP" ); break; case HDF_DATASET : MESSAGE( "--> Its type is HDF_DATASET" ); break; default : MESSAGE( "--> !!!! PANIC !!!" ); } hdf_group = new HDFgroup(name,hdf_file); MESSAGE( ">> A new HDF group object " << name << " is created in memory") hdf_group->OpenOnDisk(); MESSAGE( ">> The group " << name << " is opened on disk" ); // object inside the group ? n = hdf_group->nInternalObjects(); MESSAGE( ">> There are " << n << " objects in this group " ); for (i=0;iInternalObjectIndentify(i,name); type = hdf_group->InternalObjectType(name); MESSAGE( "--> First Level Internal Object Name : " << name ); switch (type) { case HDF_GROUP : MESSAGE( "--> Its type is HDF_GROUP" ); break; case HDF_DATASET : MESSAGE( "--> Its type is HDF_DATASET" ); break; default : MESSAGE( "--> !!!! PANIC !!!" ); } } // The first dataset object 'COORDINATES' hdf_dataset1 = new HDFdataset("COORDINATES",hdf_group); MESSAGE( ">> The dataset object 'COORDINATES' is created in memory " ); hdf_dataset1->OpenOnDisk(); MESSAGE( ">> The dataset object 'COORDINATES' is opened on disk " ); data_type = hdf_dataset1->GetType(); switch(data_type) { case HDF_INT32 : MESSAGE( "--> Type of data : HDF_INT32 " ); break; case HDF_INT64 : MESSAGE( "--> Type of data : HDF_INT64 " ); break; case HDF_FLOAT64 : MESSAGE( "--> Type of data : HDF_FLOAT64 " ); break; default : MESSAGE( "--> Type of data : HDF_STRING " ); } ndim = hdf_dataset1->nDim(); MESSAGE( "--> Number of dimensions : " << ndim ); dim = new hdf_size[ndim]; hdf_dataset1->GetDim(dim); for (i=0;i Dimension " << i+1 << " of size : " << dim[i] ); delete dim; size = hdf_dataset1->GetSize(); val1 = new hdf_float64[size]; hdf_dataset1->ReadFromDisk(val1); MESSAGE( "--> The values are : "); for (i=0;iCloseOnDisk(); MESSAGE( ">> The dataset object 'COORDINATES' is closed on disk " ); // The second dataset 'UNIT' hdf_dataset2 = new HDFdataset("UNIT",hdf_group); MESSAGE( ">> The dataset object 'UNIT' is created in memory " ); hdf_dataset2->OpenOnDisk(); MESSAGE( ">> The dataset object 'UNIT' is opened on disk " ); data_type = hdf_dataset2->GetType(); switch(data_type) { case HDF_INT32 : MESSAGE( "--> Type of data : HDF_INT32 " ); break; case HDF_INT64 : MESSAGE( "--> Type of data : HDF_INT64 " ); break; case HDF_FLOAT64 : MESSAGE( "--> Type of data : HDF_FLOAT64 " ); break; default : MESSAGE( "--> Type of data : HDF_STRING " ); } ndim = hdf_dataset2->nDim(); MESSAGE( "--> Number of dimensions : " << ndim ); dim = new hdf_size[ndim]; hdf_dataset2->GetDim(dim); for (i=0;i Dimension " << i+1 << " of size : " << dim[i] ); delete dim; size = hdf_dataset2->GetSize(); val2 = new hdf_int32[size]; hdf_dataset2->ReadFromDisk(val2); MESSAGE( "--> The values are : "); for (i=0;iCloseOnDisk(); MESSAGE( ">> The dataset object 'UNIT' is closed on disk " ); hdf_group->CloseOnDisk(); MESSAGE( ">> The group is closed on file" ); hdf_file->CloseOnDisk(); MESSAGE(">> The HDF file is closed on Disk" ) // Memory clean delete hdf_dataset1; delete hdf_dataset2; delete hdf_group; delete hdf_file; MESSAGE( ">> MEMORY CLEAN : all HDF objects have been deleted" ); } catch (HDFexception) { MESSAGE( "!!! HDFexception !!! " ) } return 0; } salome-kernel-6.5.0/src/HDFPersist/test5.cxx000077500000000000000000000052061177004724000206220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test5.cxx // Module : SALOME // #include #include "HDFOI.hxx" #include int main() { HDFfile *hdf_file; HDFgroup *hdf_group; try { // A file study.hdf with 2 groups : MESH and GEOM hdf_file = new HDFfile("study.hdf"); hdf_file->CreateOnDisk(); hdf_group = new HDFgroup("GEOM",hdf_file); hdf_group->CreateOnDisk(); hdf_group->CloseOnDisk(); delete hdf_group; hdf_group = new HDFgroup("MESH",hdf_file); hdf_group->CreateOnDisk(); hdf_group->CloseOnDisk(); delete hdf_group; hdf_file->CloseOnDisk(); delete hdf_file; // a file mesh.hdf with 2 groups MESH_1 and MESH_2 hdf_file = new HDFfile("mesh.hdf"); hdf_file->CreateOnDisk(); hdf_group = new HDFgroup("MESH_1",hdf_file); hdf_group->CreateOnDisk(); hdf_group->CloseOnDisk(); delete hdf_group; hdf_group = new HDFgroup("MESH_2",hdf_file); hdf_group->CreateOnDisk(); hdf_group->CloseOnDisk(); delete hdf_group; hdf_file->CloseOnDisk(); delete hdf_file; // a file geom.hdf with 2 groups GEOM_1 and GEOM_2 hdf_file = new HDFfile("geom.hdf"); hdf_file->CreateOnDisk(); hdf_group = new HDFgroup("GEOM_1",hdf_file); hdf_group->CreateOnDisk(); hdf_group->CloseOnDisk(); delete hdf_group; hdf_group = new HDFgroup("GEOM_2",hdf_file); hdf_group->CreateOnDisk(); hdf_group->CloseOnDisk(); delete hdf_group; hdf_file->CloseOnDisk(); delete hdf_file; } catch (HDFexception) { MESSAGE( "!!!! HDFexception !!!" ) } return 0; } salome-kernel-6.5.0/src/HDFPersist/test6.cxx000077500000000000000000000100101177004724000206100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test6.cxx // Module : SALOME // #include #include "HDFOI.hxx" #include int main() { HDFfile *study; HDFgroup *geom, *mesh; HDFgroup *geom1, *geom2, *mesh1, *mesh2; int n,m,i; char name[HDF_NAME_MAX_LEN+1]; try { // the groups 'GEOM' and 'MESH' become mounted points for // the files 'geom.hdf' and 'mesh.hdf' in the 'study.hdf' file study = new HDFfile("study.hdf"); MESSAGE( ">> The HDFfile object for 'study.hdf' is created" ); study->OpenOnDisk(HDF_RDONLY); MESSAGE( "--> The file is opened" ); geom = new HDFgroup("GEOM",study); MESSAGE( ">> The HDFgroup object for 'GEOM' is created" ); geom->FileMount("geom.hdf",HDF_RDONLY); MESSAGE( ">> 'GEOM' becomes a mounted point for the file 'geom.hdf'" ); geom->OpenOnDisk(); MESSAGE( "--> The group is opened" ); m = geom->nInternalObjects(); MESSAGE( "--> There are " << m << " objects in the group" ); for (i=0;iInternalObjectIndentify(i,name); MESSAGE( "--> First Level Internal Object Name : " << name ); } geom1 = new HDFgroup("GEOM_1",geom); MESSAGE( ">> The HDF group object is created for 'GEOM_1' with 'GEOM' as father" ); MESSAGE( "--> This group is in fact in the file 'geom.hdf'"); geom1->OpenOnDisk(); MESSAGE( "-> The group 'GEOM_1' is opened" ); geom1->CloseOnDisk(); MESSAGE( "-> The group 'GEOM_1' is closed" ); geom2 = new HDFgroup("GEOM_2",geom); MESSAGE( ">> The HDF group object is created for 'GEOM_2' with 'GEOM' as father" ); MESSAGE( "--> This group is in fact in the file 'geom.hdf'"); geom2->OpenOnDisk(); MESSAGE( "-> The group 'GEOM_2' is opened" ); geom2->CloseOnDisk(); MESSAGE( "-> The group 'GEOM_2' is closed" ); geom->CloseOnDisk(); MESSAGE( "-> The group 'GEOM' is closed" ); geom->FileUnMount(); MESSAGE( ">> The file 'geom.hdf' is unmounted from 'GEOM' " ); mesh = new HDFgroup("MESH",study); mesh->FileMount("mesh.hdf",HDF_RDONLY); mesh->OpenOnDisk(); mesh1 = new HDFgroup("MESH_1",mesh); mesh1->OpenOnDisk(); mesh1->CloseOnDisk(); mesh2 = new HDFgroup("MESH_2",mesh); mesh2->OpenOnDisk(); mesh2->CloseOnDisk(); mesh->CloseOnDisk(); mesh->FileUnMount(); MESSAGE( ">> The same operations have been done for the file 'mesh.hdf'" ) MESSAGE( " and the groups MESH_1 and MESH_2" ) MESSAGE( "--> This file has been mounted on the group 'MESH' of the file 'study.hdf' ") study->CloseOnDisk(); MESSAGE( ">> The study.hdf file is closed" ); MESSAGE( ">> Memory clean" ); delete mesh1; delete mesh2; delete mesh; delete geom1; delete geom2; delete geom; delete study; } catch(HDFexception) { MESSAGE( "!!! HDFexception !!! ") } return 0; } salome-kernel-6.5.0/src/HDFPersist/test7.cxx000077500000000000000000000022231177004724000206200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test7.cxx // Module : SALOME // #include "HDFIO.hxx" #include int main() { return 0; } salome-kernel-6.5.0/src/HDFPersist/test8.cxx000077500000000000000000000050311177004724000206210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test8.cxx // Module : SALOME // #include #include "HDFOI.hxx" #include int main() { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset; hdf_size size[1]; char message[HDF_NAME_MAX_LEN+1] = "MESSAGE"; hdf_int32 attribute = 3; system("rm file_ascii.hdf"); try { // a new HDFfile object hdf_file = new HDFfile("file_ascii.hdf"); MESSAGE( ">> A HDFfile object is created" ); hdf_file->CreateOnDisk(); MESSAGE( ">> The HDF file is created on Disk " ); // Inside the HDF file // A new HDF group object hdf_group = new HDFgroup("ASCII GROUP",hdf_file); MESSAGE( ">> A HDFgroup object 'ASCII' is created" ); hdf_group->CreateOnDisk(); MESSAGE( ">> The HDF group is created on Disk " ); // Transfert d'un fichier ASCII dans un groupe HDF HDFConvert::FromAscii("ascii.txt",*hdf_group,"ASCII DATASET"); MESSAGE( ">> The Ascii file is transfered " ); // The HDF group is built, it can be closed hdf_group->CloseOnDisk(); MESSAGE( ">> The HDF group is closed on Disk " ); // The HDF file is built, it can be closed hdf_file->CloseOnDisk(); MESSAGE( ">> The HDF file is closed on disk" ); delete hdf_group; MESSAGE( ">> The HDF group object is deleted" ); delete hdf_file; MESSAGE( ">> The HDF file object is deleted" ); } catch (HDFexception) { MESSAGE( "!!!! HDFexception" ) } return 0; } salome-kernel-6.5.0/src/HDFPersist/test9.cxx000077500000000000000000000075671177004724000206420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME HDFPersist : implementation of HDF persitent ( save/ restore ) // File : test9.cxx // Module : SALOME // #include #include "HDFOI.hxx" #include int main() { HDFfile *hdf_file; HDFgroup *hdf_group; HDFdataset *hdf_dataset1; int fd; size_t size; char * buffer; off_t pos; system("rm ascii_hdf.txt"); try { // a new HDFfile object hdf_file = new HDFfile("file_ascii.hdf"); MESSAGE( ">> A HDFfile object is created" ); hdf_file->OpenOnDisk(HDF_RDONLY); MESSAGE( ">> The HDF file is opened on Disk with HDF_RDONLY access mode" ) hdf_group = new HDFgroup("ASCII GROUP",hdf_file); MESSAGE(">> A new HDF group object ASCII GROUP" << " is created in memory") hdf_group->OpenOnDisk(); MESSAGE( ">> The group ASCII GROUP is opened on disk" ); // The dataset object 'ASCII DATASET' hdf_dataset1 = new HDFdataset("ASCII DATASET",hdf_group); MESSAGE( ">> The dataset object 'ASCII DATASET' is created in memory " ); hdf_dataset1->OpenOnDisk(); MESSAGE( ">> The dataset object 'ASCII DATASET' is opened on disk " ); size = (size_t) hdf_dataset1->GetSize(); // Open the target file if ( (fd = open("ascii_hdf.txt",O_RDWR|O_CREAT,00666)) <0) { perror("open : test9"); return -1; }; // if ( (pos = lseek(fd,(off_t) size-3,SEEK_SET)) <0) { // perror("lseek : test9"); // return -1; // }; // if ( write(fd,"END",3) <0) { // perror("write : test9"); // return -1; // }; #ifdef _POSIX_MAPPED_FILES // Map le fichier en mémoire // if ((buffer = (char *) mmap(0,size,PROT_WRITE,MAP_SHARED,fd,0)) == MAP_FAILED ) { // perror("mmap : test9"); //return -1; //}; buffer = new char[size]; #else // Sort de la compilation #error Necessite l''utilisation de la primitive mmap #endif // Transfert les informations dans le fichier destination hdf_dataset1->ReadFromDisk(buffer); if ( write(fd,buffer,size) <0) { perror("write : test9"); return -1; }; // Desalloue le mapping // if (munmap(buffer,size) < 0 ) { // perror("munmap : test9"); // return -1; // }; // Close the target file if (close(fd) <0) { perror("close : test9"); return -1; } hdf_dataset1->CloseOnDisk(); MESSAGE( ">> The dataset is closed on disk " ); hdf_group->CloseOnDisk(); MESSAGE( ">> The group is closed on file" ); hdf_file->CloseOnDisk(); MESSAGE( ">> The HDF file is closed on Disk" ) // Memory clean delete hdf_dataset1; delete hdf_group; delete hdf_file; delete buffer; MESSAGE( ">> MEMORY CLEAN : all HDF objects have been deleted" ); } catch (HDFexception) { return -1; MESSAGE( "!!! HDFexception !!! " ) } return 0; } salome-kernel-6.5.0/src/KERNEL_PY/000077500000000000000000000000001177004724000164415ustar00rootroot00000000000000salome-kernel-6.5.0/src/KERNEL_PY/Help.py000077500000000000000000000121041177004724000177040ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Help.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/Help.py,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:13 vsr Exp $ # class SalomeDoc: def __init__(self, aDoc): self.doc = aDoc def __repr__(self): print self.doc return "---" def salome(self): doc_salome = ''' MODULE : salome --------------- module salome gives access to Salome ressources: variables: salome.orb : CORBA salome.naming_service : instance of naming Service class methods: Resolve(name) : find a CORBA object (ior) by its pathname Register(name) : register a CORBA object under a pathname salome.lcc : instance of lifeCycleCORBA class methods: FindOrLoadComponent(server,name) : obtain an Engine (CORBA object) or launch the Engine if not found, with a Server name and an Engine name salome.sg methods: updateObjBrowser(bool): getActiveStudyId(): getActiveStudyName(): SelectedCount(): returns number of selected objects getSelected(i): returns entry of selected object number i getAllSelected(): returns list of entry of selected objects AddIObject(Entry): select an existing Interactive object RemoveIObject(Entry): remove object from selection ClearIObjects(): clear selection Display(*Entry): DisplayOnly(Entry): Erase(Entry): DisplayAll(): EraseAll(): IDToObject(Entry): returns CORBA reference from entry salome.myStudyName : active Study Name salome.myStudyId : active Study Id salome.myStudy : the active Study itself (CORBA ior) methods : defined in SALOMEDS.idl methods: salome.DumpStudy(study) : Dump a study, given the ior --- ''' print doc_salome def geompy(self): doc_geompy = ''' MODULE : geompy --------------- module geompy provides an encapsulation of GEOM Engine methods variables: geompy.geom : a Geometry Engine, found or loaded at first import of module geompy. methods : defined in GEOM_Gen.idl geompy.myBuilder : a study builder geompy.father : GEOM root in current study (salome.myStudy) methods: addToStudy(aShape, aName) : add the shape into the current study --- all methods of GEOM_Gen.idl that returns a shape are encapsulated, with the same interface : shapes are named with their ior ''' print doc_geompy def supervision(self): doc_supervision = ''' MODULES : SALOME_SuperVisionEditor and SALOME_SuperVisionExecutor ----------------------------------------------------------------- this modules provide access to Editor and Executor Engine methods See SUPERV.idl In order to run the example (supervisionexample.py) Type : from supervisionexample import * supervisionexample.py contains comments A new python example avoids references to LifeCycleCORBA avoids references to NamingService avoids references to ModuleCatalog avoids SuperVisionComponent creation allows G.Input(...) instead of AddInput(G,...) replaces Editor/Executor with Graph allows Nodes, Ports and Links CORBA objects shortens methods names ... See /SuperVisionTest/resources/GraphExample.py and GraphExample.xml --- ''' print doc_supervision Help = SalomeDoc(''' Availables modules: salome : gives access to Salome ressources geompy : encapsulation of GEOM Engine methods supervision : gives access to SuperVision Engine To obtain specific help on a module "truc", type: Help.truc() To run an example, type: import example3 ''') salome-kernel-6.5.0/src/KERNEL_PY/Makefile.am000077500000000000000000000034351177004724000205050ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # Scripts to be installed (salomepython is an automake keyword for python targets) salomepython_PYTHON = \ salome_shared_modules.py \ import_hook.py \ omnipatch.py if CORBA_GEN salomepython_PYTHON += \ Help.py \ PyInterp.py \ batchmode_salome.py \ salome_test.py \ salome_kernel.py \ salome_study.py \ salome_iapp.py \ salome_ComponentGUI.py \ iparameters.py \ salome_version.py \ salome_notebook.py \ salome_pynode.py \ salome_genericobj.py endif # _GBO_SALOME_PYTHON_PACKAGING_ # Note that the salome.py should not be installed any more # Special extention to create a python packaging SUBDIRS= kernel salomepypkg_PYTHON= \ __init__.py sharedpkgpython_PYTHON = kernel_shared_modules.py salome-kernel-6.5.0/src/KERNEL_PY/Makefile.in000077500000000000000000001036471177004724000205240ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(am__salomepython_PYTHON_DIST) $(salomepypkg_PYTHON) \ $(sharedpkgpython_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am @CORBA_GEN_TRUE@am__append_1 = \ @CORBA_GEN_TRUE@ Help.py \ @CORBA_GEN_TRUE@ PyInterp.py \ @CORBA_GEN_TRUE@ batchmode_salome.py \ @CORBA_GEN_TRUE@ salome_test.py \ @CORBA_GEN_TRUE@ salome_kernel.py \ @CORBA_GEN_TRUE@ salome_study.py \ @CORBA_GEN_TRUE@ salome_iapp.py \ @CORBA_GEN_TRUE@ salome_ComponentGUI.py \ @CORBA_GEN_TRUE@ iparameters.py \ @CORBA_GEN_TRUE@ salome_version.py \ @CORBA_GEN_TRUE@ salome_notebook.py \ @CORBA_GEN_TRUE@ salome_pynode.py \ @CORBA_GEN_TRUE@ salome_genericobj.py subdir = src/KERNEL_PY ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomepypkgdir)" \ "$(DESTDIR)$(salomepythondir)" \ "$(DESTDIR)$(sharedpkgpythondir)" am__salomepython_PYTHON_DIST = salome_shared_modules.py import_hook.py \ omnipatch.py Help.py PyInterp.py batchmode_salome.py \ salome_test.py salome_kernel.py salome_study.py salome_iapp.py \ salome_ComponentGUI.py iparameters.py salome_version.py \ salome_notebook.py salome_pynode.py salome_genericobj.py py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # # Scripts to be installed (salomepython is an automake keyword for python targets) salomepython_PYTHON = salome_shared_modules.py import_hook.py \ omnipatch.py $(am__append_1) # _GBO_SALOME_PYTHON_PACKAGING_ # Note that the salome.py should not be installed any more # Special extention to create a python packaging SUBDIRS = kernel salomepypkg_PYTHON = \ __init__.py sharedpkgpython_PYTHON = kernel_shared_modules.py all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/KERNEL_PY/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/KERNEL_PY/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomepypkgPYTHON: $(salomepypkg_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomepypkgdir)" || $(MKDIR_P) "$(DESTDIR)$(salomepypkgdir)" @list='$(salomepypkg_PYTHON)'; dlist=; list2=; test -n "$(salomepypkgdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomepypkgdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomepypkgdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomepypkgdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomepypkgdir)" $$dlist; \ fi; \ else :; fi uninstall-salomepypkgPYTHON: @$(NORMAL_UNINSTALL) @list='$(salomepypkg_PYTHON)'; test -n "$(salomepypkgdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomepypkgdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomepypkgdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepypkgdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomepypkgdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepypkgdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomepypkgdir)" && rm -f $$fileso install-salomepythonPYTHON: $(salomepython_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomepythondir)" || $(MKDIR_P) "$(DESTDIR)$(salomepythondir)" @list='$(salomepython_PYTHON)'; dlist=; list2=; test -n "$(salomepythondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomepythondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomepythondir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomepythondir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomepythondir)" $$dlist; \ fi; \ else :; fi uninstall-salomepythonPYTHON: @$(NORMAL_UNINSTALL) @list='$(salomepython_PYTHON)'; test -n "$(salomepythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$fileso install-sharedpkgpythonPYTHON: $(sharedpkgpython_PYTHON) @$(NORMAL_INSTALL) test -z "$(sharedpkgpythondir)" || $(MKDIR_P) "$(DESTDIR)$(sharedpkgpythondir)" @list='$(sharedpkgpython_PYTHON)'; dlist=; list2=; test -n "$(sharedpkgpythondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sharedpkgpythondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sharedpkgpythondir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(sharedpkgpythondir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(sharedpkgpythondir)" $$dlist; \ fi; \ else :; fi uninstall-sharedpkgpythonPYTHON: @$(NORMAL_UNINSTALL) @list='$(sharedpkgpython_PYTHON)'; test -n "$(sharedpkgpythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(sharedpkgpythondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sharedpkgpythondir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(sharedpkgpythondir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(sharedpkgpythondir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(sharedpkgpythondir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(sharedpkgpythondir)" && rm -f $$fileso # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(salomepypkgdir)" "$(DESTDIR)$(salomepythondir)" "$(DESTDIR)$(sharedpkgpythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-salomepypkgPYTHON install-salomepythonPYTHON \ install-sharedpkgpythonPYTHON install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-salomepypkgPYTHON uninstall-salomepythonPYTHON \ uninstall-sharedpkgpythonPYTHON .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomepypkgPYTHON \ install-salomepythonPYTHON install-sharedpkgpythonPYTHON \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-salomepypkgPYTHON uninstall-salomepythonPYTHON \ uninstall-sharedpkgpythonPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/KERNEL_PY/PyInterp.py000077500000000000000000000063571177004724000206030ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : PyInterp.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/PyInterp.py,v 1.4.2.2.14.2.12.1 2012-04-12 14:05:13 vsr Exp $ # import sys from omniORB import CORBA from LifeCycleCORBA import * from libSALOME_Swig import * import SALOMEDS from SALOME_NamingServicePy import * #-------------------------------------------------------------------------- def DumpComponent(Study, SO, offset): it = Study.NewChildIterator(SO) Builder = Study.NewBuilder() while it.More(): CSO = it.Value() it.Next() anAttr = Builder.FindOrCreateAttribute(CSO, "AttributeName") AtName = anAttr._narrow(SALOMEDS.AttributeName) t_name = AtName.Value() if t_name[0] == 1: ofs = 1 a = "" while ofs <= offset: a = a + "--" ofs = ofs +1 print a + ">" + CSO.GetID() + " " + t_name[1] t_RefSO = CSO.ReferencedObject() if t_RefSO[0] == 1: RefSO = t_RefSO[1] ofs = 1 a = "" while ofs <= offset: a = a + " " ofs = ofs +1 print a + ">" + RefSO.GetID() DumpComponent(Study, CSO, offset+2) #-------------------------------------------------------------------------- def DumpStudy(Study): itcomp = Study.NewComponentIterator() while itcomp.More(): SC = itcomp.Value() itcomp.Next() name = SC.ComponentDataType() print "-> ComponentDataType is " + name DumpComponent(Study, SC, 1) #-------------------------------------------------------------------------- # initialise the ORB orb = CORBA.ORB_init([''], CORBA.ORB_ID) # create an LifeCycleCORBA instance lcc = LifeCycleCORBA(orb) # create an SALOMEGUI_Swig instance sg = SALOMEGUI_Swig() #create an naming service instance naming_service = SALOME_NamingServicePy_i(orb) # get active study name and id myStudyName = sg.getActiveStudyName() print myStudyName myStudyId = sg.getActiveStudyId() print myStudyId # get Study Manager reference obj = naming_service.Resolve('myStudyManager') myStudyManager = obj._narrow(SALOMEDS.StudyManager) # get active study myStudy = myStudyManager.GetStudyByName(myStudyName) salome-kernel-6.5.0/src/KERNEL_PY/__init__.py000077500000000000000000000215251177004724000205620ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome.py renamed as __init__.py for python packaging (gboulant) # Author : Paul RASCLE, EDF # Module : SALOME # """ Module salome gives access to Salome ressources. variables: - salome.orb : CORBA - salome.naming_service : instance of naming Service class - methods: - Resolve(name) : find a CORBA object (ior) by its pathname - Register(name) : register a CORBA object under a pathname - salome.lcc : instance of lifeCycleCORBA class - methods: - FindOrLoadComponent(server,name) : obtain an Engine (CORBA object) or launch the Engine if not found, with a Server name and an Engine name - salome.sg : salome object to communicate with the graphical user interface (if any) - methods: - updateObjBrowser(bool): - getActiveStudyId(): - getActiveStudyName(): - SelectedCount(): returns number of selected objects - getSelected(i): returns entry of selected object number i - getAllSelected(): returns list of entry of selected objects - AddIObject(Entry): select an existing Interactive object - RemoveIObject(Entry): remove object from selection - ClearIObjects(): clear selection - Display(*Entry): - DisplayOnly(Entry): - Erase(Entry): - DisplayAll(): - EraseAll(): - IDToObject(Entry): returns CORBA reference from entry - salome.myStudyName : active Study Name - salome.myStudyId : active Study Id - salome.myStudy : the active Study itself (CORBA ior) - methods : defined in SALOMEDS.idl """ ## @package salome # Module salome gives access to Salome ressources. # # \param salome.orb : CORBA orb object # \param salome.naming_service : instance of naming Service class (SALOME_NamingServicePy::SALOME_NamingServicePy_i) # \param salome.lcc : instance of lifeCycleCORBA class (SALOME_LifeCycleCORBA) # \param salome.sg : Salome object to communicate with the graphical user interface, if running (see interface in salome_iapp::SalomeOutsideGUI) # \param salome.myStudyName : active Study Name # \param salome.myStudyId : active Study Id # \param salome.myStudy : the active Study (interface SALOMEDS::Study) # # ========================================================================== # # The function extend_path is used here to aggregate in a single # virtual python package all the python sub-packages embedded in each # SALOME modules (python "namespace" pattern). # ROOT_PYTHONPACKAGE_NAME="salome" # # This root package name is expected to be found as a directory in # some paths of the sys.path variable, especially the paths # /lib/pythonX.Y/site-packages/salome where are # installed the python files. These paths are theorically appended by # the SALOME main runner and should be in the sys.path at this point # of the application. The extend_path is looking then for directories # of the type: # # /lib/pythonX.Y/site-packages/salome/ # # And append them to the sys.path. These directories are supposed to # be the pieces to be aggregated as a single virtual python package. # import os, sys from salome_utils import verbose MATCH_ENDING_PATTERN="site-packages" + os.path.sep + "salome" def extend_path(pname): for dir in sys.path: if not isinstance(dir, basestring) or not os.path.isdir(dir) or not dir.endswith(MATCH_ENDING_PATTERN): continue subdir = os.path.join(dir, pname) # XXX This may still add duplicate entries to path on # case-insensitive filesystems if os.path.isdir(subdir) and subdir not in __path__: if verbose(): print "INFO - The directory %s is appended to sys.path" % subdir __path__.append(subdir) extend_path(ROOT_PYTHONPACKAGE_NAME) # ========================================================================== # from salome_kernel import * from salome_study import * from salome_iapp import * import salome_study # # The next block is workaround for the problem of shared symbols loading for the extension modules (e.g. SWIG-generated) # that causes RTTI unavailable in some cases. To solve this problem, sys.setdlopenflags() function is used. # Depending on the Python version and platform, the dlopen flags can be defined in the dl, DLFUN or ctypes module. # import sys flags = None if not flags: try: # dl module can be unavailable import dl flags = dl.RTLD_NOW | dl.RTLD_GLOBAL except: pass pass if not flags: try: # DLFCN module can be unavailable import DLFCN flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL except: pass pass if not flags: try: # ctypes module can be unavailable import ctypes flags = ctypes.RTLD_GLOBAL except: pass pass # Disable -> bug with scipy, seems very dangerous to do that #if flags: # sys.setdlopenflags(flags) # pass orb, lcc, naming_service, cm,sg=None,None,None,None,None myStudyManager, myStudyId, myStudy, myStudyName=None,None,None,None def setCurrentStudy(theStudy): """ Change current study : an existing one given by a study object. :param theStudy: the study CORBA object to set as current study """ global myStudyId, myStudy, myStudyName myStudyId, myStudy, myStudyName =salome_study.setCurrentStudy(theStudy) def setCurrentStudyId(theStudyId=0): """ Change current study : an existing or new one given by Id. :param theStudyId: the study Id (optional argument) 0 : create a new study (default). n (>0) : try connection to study with Id = n, or create a new one if study not found. """ global myStudyId, myStudy, myStudyName myStudyId, myStudy, myStudyName =salome_study.setCurrentStudyId(theStudyId) salome_initial=1 def salome_init(theStudyId=0,embedded=0): """ Performs only once SALOME general purpose intialisation for scripts. optional argument : theStudyId When in embedded interpreter inside IAPP, theStudyId is not used When used without GUI (external interpreter) 0 : create a new study (default). n (>0) : try connection to study with Id = n, or create a new one if study not found. If study creation, its Id may be different from theStudyId ! Provides: orb reference to CORBA lcc a LifeCycleCorba instance naming_service a naming service instance cm reference to the container manager sg access to SALOME GUI (when linked with IAPP GUI) myStudyManager the study manager myStudyId active study identifier myStudy active study itself (CORBA reference) myStudyName active study name """ global salome_initial global orb, lcc, naming_service, cm global sg global myStudyManager, myStudyId, myStudy, myStudyName try: if salome_initial: salome_initial=0 sg = salome_iapp_init(embedded) orb, lcc, naming_service, cm = salome_kernel_init() myStudyManager, myStudyId, myStudy, myStudyName =salome_study_init(theStudyId) pass pass except RuntimeError, inst: # wait a little to avoid trace mix import time time.sleep(0.2) x = inst print "salome.salome_init():", x print """ ============================================ May be there is no running SALOME session salome.salome_init() is intented to be used within an already running session ============================================ """ raise #to expose all objects to pydoc __all__=dir() salome-kernel-6.5.0/src/KERNEL_PY/batchmode_salome.py000077500000000000000000000243521177004724000223120ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : batchmode_salome.py # Module : SALOME #import salome_shared_modules # from omniORB import CORBA from LifeCycleCORBA import * import SALOME import SALOMEDS from SALOME_NamingServicePy import * #-------------------------------------------------------------------------- def ImportComponentGUI(ComponentName): libName = "lib" + ComponentName + "_Swig" command = "from " + libName + " import *" exec ( command ) constructor = ComponentName + "GUI_Swig()" command = "gui = " + constructor exec ( command ) return gui #-------------------------------------------------------------------------- def SalomeGUIgetAllSelected(self): selNumber = self.SelectedCount() listSelected = [] for i in range(selNumber): listSelected.append(self.getSelected(i)) return listSelected #-------------------------------------------------------------------------- def generateName(prefix = None): import random; int = random.randint(1,1000); if prefix is None: return "Study" + str(int) else : return prefix + str(int) #WITHOUTIHMfrom libSALOME_Swig import * ###from SalomePyQt import * #WITHOUTIHMclass SalomeGUI(SALOMEGUI_Swig): #WITHOUTIHMgetAllSelected = SalomeGUIgetAllSelected #WITHOUTIHMdef getDesktop(self) : # return SalomePyQt.getDesktop() #WITHOUTIHMreturn None #WITHOUTIHMdef getSelection(self) : # return SalomePyQt.getSelection() #WITHOUTIHMreturn None #-------------------------------------------------------------------------- def IDToObject(id): myObj = None mySO = myStudy.FindObjectID(id); if mySO is not None: ok, anAttr = mySO.FindAttribute("AttributeIOR") if ok: AtIOR = anAttr._narrow(SALOMEDS.AttributeIOR) if AtIOR.Value() != "": myObj = orb.string_to_object(AtIOR.Value()) return myObj def ObjectToSObject(obj): mySO = None if obj is not None: ior = orb.object_to_string(obj) if ior != "": mySO = myStudy.FindObjectIOR(ior) return mySO def ObjectToID(obj): mySO = ObjectToSObject(obj) if mySO: return mySO.GetID() return "" def IDToSObject(id): mySO = myStudy.FindObjectID(id); return mySO #-------------------------------------------------------------------------- def PersistentPresentation(theStudy, theSO, theWithID): # put the sobject's content (with subchildren) to the string aResult = "" attrs = theSO.GetAllAttributes() aLen = len(attrs) anUncopied = 0 for a in range(0,aLen): attr = attrs[a] if isinstance(attr,SALOMEDS._objref_AttributeTreeNode): anUncopied += 1 elif isinstance(attr,SALOMEDS._objref_AttributeTarget): anUncopied += 1 elif isinstance(attr,SALOMEDS._objref_AttributeReal) or \ isinstance(attr,SALOMEDS._objref_AttributeInteger) or \ isinstance(attr,SALOMEDS._objref_AttributeName) or \ isinstance(attr,SALOMEDS._objref_AttributeComment) or \ isinstance(attr,SALOMEDS._objref_AttributePersistentRef) or \ isinstance(attr,SALOMEDS._objref_AttributeLocalID) or \ isinstance(attr,SALOMEDS._objref_AttributeUserID): aResult += " attribute value: " + str(attr.Value()) elif isinstance(attr,SALOMEDS._objref_AttributeIOR): aResult += " attribute: IOR" elif isinstance(attr,SALOMEDS._objref_AttributeSequenceOfReal) or \ isinstance(attr,SALOMEDS._objref_AttributeSequenceOfInteger): aResult += " Sequence: " + str(attr.CorbaSequence()) elif isinstance(attr,SALOMEDS._objref_AttributeDrawable): aResult += " Drawable: " + str(attr.IsDrawable()) elif isinstance(attr,SALOMEDS._objref_AttributeSelectable): aResult += " Selectable: " + str(attr.IsSelectable()) elif isinstance(attr,SALOMEDS._objref_AttributeExpandable): aResult += " Expandable: " + str(attr.IsExpandable()) elif isinstance(attr,SALOMEDS._objref_AttributeOpened): aResult += " Opened: " + str(attr.IsOpened()) elif isinstance(attr,SALOMEDS._objref_AttributeTextColor): aResult += " TextColor: " + str(attr.TextColor()) elif isinstance(attr,SALOMEDS._objref_AttributeTextHighlightColor): aResult += " TextHighlightColor: " + str(attr.TextHighlightColor()) elif isinstance(attr,SALOMEDS._objref_AttributePixMap): aResult += " PixMap: " + str(attr.GetPixMap()) elif isinstance(attr,SALOMEDS._objref_AttributeTableOfInteger) or \ isinstance(attr,SALOMEDS._objref_AttributeTableOfReal): aResult += " Table with title: " + attr.GetTitle() elif isinstance(attr,SALOMEDS._objref_AttributePythonObject): aResult += " PythonObject: " + attr.GetObject() if theWithID: aResult = "sobject: " + theSO.GetID() + " nbattrs: " + str(aLen - anUncopied) + aResult + '\n' else: aResult = " nbattrs: " + str(aLen - anUncopied) + aResult + '\n' anIter = theStudy.NewChildIterator(theSO) while anIter.More(): aResult += PersistentPresentation(theStudy, anIter.Value(), theWithID) anIter.Next() return aResult #-------------------------------------------------------------------------- def GetTree(theSO): # returns the document list tree (as list) aResult = [theSO.GetID()] anIter = myStudy.NewChildIterator(theSO) while anIter.More(): aResult += GetTree(anIter.Value()) anIter.Next() return aResult #-------------------------------------------------------------------------- def CheckCopyPaste(theSO, theInfo ,theComponentPaste): aRoot = theSO while aRoot.GetID() != "0:": aRoot = aRoot.GetFather() aTree = GetTree(aRoot) aStudyPersist = PersistentPresentation(myStudy, aRoot, 1) if not myStudyManager.CanCopy(theSO): raise RuntimeError, " for "+theInfo+" returns false" if not myStudyManager.Copy(theSO): raise RuntimeError, " for "+theInfo+" returns false" if not myStudyManager.CanPaste(theSO): raise RuntimeError, " for "+theInfo+" returns false" # check: before paste study is not changed check if aStudyPersist != PersistentPresentation(myStudy, aRoot, 1): raise RuntimeError, "Study is changed before Paste calling for "+theInfo aSObj = theSO if theComponentPaste: aSObj = theSO.GetFatherComponent() theInfo = theInfo + "(paste for component)" if myStudyManager.Paste(aSObj) == None: raise RuntimeError, " for "+theInfo+" returns None object" aNewTree = GetTree(aRoot) aLen = len(aTree) for a in range(0,aLen): if aTree[a] != aNewTree[a]: return myStudy.FindObjectID(aNewTree[a]) if aLen < len(aNewTree): return myStudy.FindObjectID(aNewTree[aLen]) raise RuntimeError, "After Copy calling the tree is not changed" #-------------------------------------------------------------------------- def FindFileInDataDir(filename): import os datadir = os.getenv("DATA_DIR") if datadir is not None: import string dirs = string.split(datadir, ":") for dir in dirs: file = dir + "/" + filename if os.path.exists(file): return file; datadir = os.getenv("KERNEL_ROOT_DIR") + "/examples/" file = datadir + filename if os.path.exists(file): return file; return None #-------------------------------------------------------------------------- # initialise the ORB orb = None step = 0 sleeping_time = 0.01 sleeping_time_max = 1.0 while 1: orb = CORBA.ORB_init([''], CORBA.ORB_ID) if orb is not None: break step = step + 1 if step > 100: break time.sleep(sleeping_time) sleeping_time = max(sleeping_time_max, 2*sleeping_time) pass if orb is None: print "Warning: ORB has not been initialized !!!" # create an LifeCycleCORBA instance lcc = LifeCycleCORBA(orb) step = 0 sleeping_time = 0.01 sleeping_time_max = 1.0 while 1: lcc = LifeCycleCORBA(orb) if lcc is not None: break step = step + 1 if step > 100: break time.sleep(sleeping_time) sleeping_time = max(sleeping_time_max, 2*sleeping_time) pass if lcc is None: print "Warning: LifeCycleCORBA object has not been initialized !!!" #create a naming service instance naming_service = SALOME_NamingServicePy_i(orb) # get Study Manager reference obj = None step = 0 sleeping_time = 0.01 sleeping_time_max = 1.0 while 1: obj = naming_service.Resolve('myStudyManager') if obj is not None:break step = step + 1 if step > 100: break time.sleep(sleeping_time) sleeping_time = max(sleeping_time_max, 2*sleeping_time) pass myStudyManager = obj._narrow(SALOMEDS.StudyManager) if myStudyManager is None: print "Warning: SALOMEDS.StudyManager has not been created !!!" # create new study aListOfOpenStudies = myStudyManager.GetOpenStudies(); myStudy = None; if len(aListOfOpenStudies) == 0 : myStudy = myStudyManager.NewStudy("Study1") else: myStudyName = aListOfOpenStudies[0] myStudy = myStudyManager.GetStudyByName(myStudyName) myStudyName = myStudy._get_Name() myStudyId = myStudy._get_StudyId() #print myStudyId salome-kernel-6.5.0/src/KERNEL_PY/import_hook.py000077500000000000000000000164201177004724000213530ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module replaces the standard import mechanism with one that filters some imports that can't be done more than once. This is related to the multi study feature that is implemented by using the Python multi interpreter feature. Some modules register objects or classes by calling modules implemented in C. These operations can't be done multiple times. So it's very important to control these imports. Examples: - PyQt : import qt calls a C module to register classes - OmniORB : import *_idl calls a C module to register CORBA interfaces Usage: - First import the module : import import_hook. This module will replace the original importer mechanism - Next register the module names or pattern names to filter out:: import_hook.register_name("a") import_hook.register_pattern(pattern) where pattern is a function with one parameter, the module name to be imported, that returns true or false depending if this module is to be filtered or not. - Then it's done IMPORTANT : Every subinterpretor has its own import_hook module. import_hook is not shared among subinterpretors. The mechanism only works if shared_imported and pattern are shared between all subinterpretors. This is done by calling init_shared_modules(). """ import sys, imp, __builtin__ # Keep in shared_imported a copy of dictionnary modules # that need to be imported only once in multi-study context shared_imported={} # patterns contains functions that returns 1 or 0 depending if # the module name (argument) must be filtered out or not # These functions are added by calling register_pattern patterns=[] original_import=__builtin__.__import__ def register_name(name): if shared_imported.has_key(name):return shared_imported[name]=None def register_pattern(pattern): patterns.append(pattern) def is_shared(name): """ Indicate if module name is a shared module among multiple interpreters (return value=1) """ if shared_imported.has_key(name):return 1 for pattern in patterns: if pattern(name) : return 1 return 0 def get_shared_imported(name,fromlist): """ If the module is registered in shared_imported update the sys.modules dict Let the real import be done by original_import """ module= shared_imported.get(name) if module is None : #module name is not shared or not already imported #let original_import do the job return None # module is already imported and shared. Put it in sys.modules and # let original_import finish the job sys.modules[name]=module def get_real_module(mod,name): """Return effective module on import Standard import returns module A on import A.B To get module A.B use get_real_module with name "A.B" """ components = name.split('.') for comp in components[1:]: mod = getattr(mod, comp) return mod def set_shared_imported(name,module): """ Register a shared module Name can be a dotted name : package """ shared_imported[name]=module #print "Module %s shared registered" % name,module def import_module(partname, fqname, parent): """ Try to import module fqname It's parent is module parent and has name partname """ #print "import_module",partname, fqname, parent try: m = sys.modules[fqname] except KeyError: pass else: return m def ensure_fromlist(m, fromlist, recursive=0): """ Return the real modules list to be imported """ #print "ensure_fromlist",m, fromlist, recursive l=[] for sub in fromlist: if sub == "*": if not recursive: try: all = m.__all__ except AttributeError: pass else: l.extend(ensure_fromlist(m, all, 1)) else: #try to find if sub is an attribute (eventually dotted) of m components=sub.split('.') has_submod=True submod=m for comp in components: if hasattr(submod,comp): submod=getattr(submod, comp) else: has_submod=False break if has_submod: #the attribute has been found if type(submod) == type(sys): l.append(("%s.%s" % (m.__name__, sub),submod)) else: subname="%s.%s" % (m.__name__, sub) submod = import_module(sub, subname, m) #if not found ignore it if submod: l.append((subname,submod)) return l def import_hook(name, globals=None, locals=None, fromlist=None, *args, **kwds): """ Import replacement for sharing modules among multiple interpreters Mostly update sys.modules before doing real import """ #print "import_hook",name,fromlist m=get_shared_imported(name,fromlist) module= original_import(name, globals, locals, fromlist, *args, **kwds) if fromlist: #when fromlist is specified, module is the real module #fromlist is a list of possibly dotted name m=module for nam,mod in ensure_fromlist(m, fromlist): if is_shared(nam): set_shared_imported(nam,mod) else: #when fromlist is not specified and name is a dotted name, # module is the root package not the real module #so we need to retrieve it # note: some modules like xml.dom do not play the rule # (import xml: no attribute dom, but import xml.dom OK) try: m=get_real_module(module,name) except AttributeError: m=None if type(m) == type(sys) and is_shared(m.__name__): set_shared_imported(m.__name__,m) return module original_reload=__builtin__.reload def reload_hook(module): if is_shared(module.__name__): return module return original_reload(module) __builtin__.__import__=import_hook # Reload is not replaced #__builtin__.reload=reload_hook def init_shared_modules(shared_module): global shared_imported, patterns shared_imported=shared_module.shared_imported patterns= shared_module.patterns for k,v in shared_imported.items(): if v is not None:sys.modules[k]=v shared_imported["salome_shared_modules"]=shared_module import salome_shared_modules for m in salome_shared_modules.list_modules: m.init_shared_modules() salome-kernel-6.5.0/src/KERNEL_PY/iparameters.py000077500000000000000000000216211177004724000213340ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import salome import string import SALOME import SALOMEDS import SALOME_Session_idl PT_INTEGER = 0 PT_REAL = 1 PT_BOOLEAN = 2 PT_STRING = 3 PT_REALARRAY = 4 PT_INTARRAY = 5 PT_STRARRAY = 6 _AP_LISTS_LIST_ = "AP_LISTS_LIST" _AP_ENTRIES_LIST_ = "AP_ENTRIES_LIST" _AP_PROPERTIES_LIST_ = "AP_PROPERTIES_LIST" _AP_DUMP_PYTHON_ = "AP_DUMP_PYTHON" vp_session = None def getSession(): global vp_session if vp_session is None: vp_session = salome.naming_service.Resolve("/Kernel/Session") vp_session = vp_session._narrow(SALOME.Session) pass return vp_session class IParameters: """ Interface IParameters was designed to provide a common way to set up named parameters. The interface is initialized by AttributeParameter that is used as a container of stored data. The interface supports 3 types of named parameters: 1. Named list - a named list consists of string values. One can append value to list (method 'append'), get a number of values in the list (method 'nbValues'), get all values of the given list (method 'getValues') and get names of all created named lists. 2. Parameters - that is a set of named string values associated with some named entity. Parameter consists of tree elements: entity name, a parameter name and a parameter value. Thus for one named entity there are an arbitrary number of pair 'name parameter : value'. One can add a new parameter to entry (method 'setParameter'), get a value of a given named parameter of the given entry (method 'getParameter'), get a number of parameters of the given entry (method 'getNbParameters'), get all names of parameters for the given entry (method 'getAllParameterNames'), get all values of parameters for the entry (method 'getAllParameterValues') and get all stored entries (method 'getEntries') 3. Property - a property has a name and a string value. One can set property (method 'setProperty'), getProperty (method 'getProperty') and get a list of all stored properties (method 'getProperties'). Note: Methods not mentioned above are private and is not supposed to be used by module's developers. """ def __init__(self, attributeParameter, clr=False): """Initializes the instance. If clr parameter is True, all IAPP attribute values are cleared.""" self._ap = attributeParameter if ( clr ): self.clear() pass def clear(self): """Clear parameters""" self._ap.Clear() def append(self, listName, value): """Appends a value to the named list""" if self._ap is None: return -1 v = [] if self._ap.IsSet(listName, PT_STRARRAY) == 0: if self._ap.IsSet(_AP_LISTS_LIST_, PT_STRARRAY) == 0: self._ap.SetStrArray(_AP_LISTS_LIST_, v); if listName != _AP_ENTRIES_LIST_ and listName != _AP_PROPERTIES_LIST_: self.append(_AP_LISTS_LIST_, listName) pass self._ap.SetStrArray(listName, v) pass v = self._ap.GetStrArray(listName) v.append(value) self._ap.SetStrArray(listName, v) return (len(v)-1) def nbValues(self, listName): """Returns a number of values in the named list""" if self._ap is None: return -1 if self._ap.IsSet(listName, PT_STRARRAY) == 0: return 0 v = self._ap.GetStrArray(listName) return len(v) def getValues(self, listName): """Returns a list of values in the named list""" v = [] if self._ap is None: return v if self._ap.IsSet(listName, PT_STRARRAY) == 0: return v return self._ap.GetStrArray(listName) def getLists(self): """Returns a list of named lists' names""" v = [] if self._ap is None: return v if self._ap.IsSet(_AP_LISTS_LIST_, PT_STRARRAY) == 0: return v return self._ap.GetStrArray(_AP_LISTS_LIST_) def setParameter(self, entry, parameterName, value): """Sets a value of the named parameter for the entry""" if self._ap is None: return v = [] if self._ap.IsSet(entry, PT_STRARRAY) ==0: self.append(_AP_ENTRIES_LIST_, entry) #Add the entry to the internal list of entries self._ap.SetStrArray(entry, v) pass v = self._ap.GetStrArray(entry) v.append(parameterName) v.append(value) self._ap.SetStrArray(entry, v) pass def getParameter(self, entry, parameterName): """Returns a value of the named parameter for the entry""" if self._ap is None: return "" if self._ap.IsSet(entry, PT_STRARRAY) == 0: return "" v = self._ap.GetStrArray(entry) length = len(v); i = 0 while i/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(mypkgpythondir)" "$(DESTDIR)$(mypkgpythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-mypkgpythonPYTHON \ install-nodist_mypkgpythonPYTHON install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-mypkgpythonPYTHON \ uninstall-nodist_mypkgpythonPYTHON .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man \ install-mypkgpythonPYTHON install-nodist_mypkgpythonPYTHON \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-mypkgpythonPYTHON \ uninstall-nodist_mypkgpythonPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/KERNEL_PY/kernel/__init__.py000077500000000000000000000056451177004724000220470ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __all__ = [ "deprecation", "logger", "termcolor", "logconfig" ] # WARN: This file SHOULD NOT import salome stuff so that modules of the # package could be used outside of a SALOME session context when # possible. For example logger.py, datamodeler.py, enumerate.py, # diclookup.py, ... does not need a SALOME running application. # # ============================================================================== # Generic serialization functions for the module datamodeler # ============================================================================== # import pickle def serialize(dataToSerialize): """ Creates a string description of the specified data. .. attribute:: dataToSerialize a data object to serialize """ serialstring = pickle.dumps(dataToSerialize) return serialstring def unserialize(stringToUnserialize): """ Creates a data object from its string description. The string description is supposed to be obtained by a call to serialize. .. attribute:: stringToUnserialize a string description of the object """ data = pickle.loads(stringToUnserialize) return data class Callable: """ This class is used to create class-method (see MetaData) """ def __init__(self, anycallable): self.__call__ = anycallable # # ============================================================================== # Basic use cases and unit tests # ============================================================================== # def TEST_serialization(): from testdata import TestData ref_name = "my study case" studyData = TestData() studyData.setName(ref_name) print "serialize data ..." serialString = serialize(studyData) print "unserialize data ..." unserialData = unserialize(serialString) res_name = unserialData.getName() print res_name if ( ref_name != res_name ): return False unserialData.log() unserialData.setName("an other name") return True if __name__ == "__main__": import unittester unittester.run("salome/kernel/__init__","TEST_serialization") salome-kernel-6.5.0/src/KERNEL_PY/kernel/datamodeler.py000077500000000000000000000240071177004724000225620ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$15 avr. 2010 19:44:17$" from uiexception import DevelException # Most usable class types TypeString= "".__class__ __ref_integer = 0 TypeInteger = __ref_integer.__class__ __ref_double = 0.0 TypeDouble = __ref_double.__class__ __ref_list = [] TypeList = __ref_list.__class__ __ref_dict = {} TypeDictionnary = __ref_dict.__class__ # There is no control to do for these attributes. They are attributes for the # class management and not data of the model. UNCHECKED_ATTRIBUTES = [ "_typemap", "_rangemap", "_defaultmap", "_voidmap" ] class DataModeler: """ This class is a placeholder for modeling data. An object based on this class (particular instance or specialized derived class) can defined attributes with the following properties: - a type : the class or the type of the attribute. Setting an attribute to a value whose type is not the specified type raises an exception. - a range : a list of the possible values for the attribute. Setting an attribute to a value not in the range raises an exception - a default: the default value of an attribute when an instance is created - a void flag: the attribute can be authorized to be None or not using this flag. Setting an attribute to a None value while the flag is not set to True raises an exception. By default, a None value is not allowed. These properties are dictionnaries mapping the attribute name to its associated value for the property. A typical usage is to derived this class in a specialized form where the attributes names and there properties are defined in the constructor. See use cases at the end of this file. """ def __init__(self, typemap=None, rangemap=None, defaultmap=None, voidmap=None): self._typemap = {} self._rangemap = {} # possible values self._defaultmap = {} # defaults values self._voidmap = {} # None values are allowed if typemap is not None: self._typemap.update(typemap) if rangemap is not None: self._rangemap.update(rangemap) if voidmap is not None: self._voidmap.update(voidmap) # Default initialization (if any) if defaultmap is not None: self._defaultmap.update(defaultmap) for name in self._defaultmap.keys(): self.__setattr__(name,self._defaultmap[name]) def addAttribute(self, name, type=None, range=None, default=None, void=None): """ A None argument means that no entry is created in the associated maps. """ self._typemap[name] = type if range is not None: self._rangemap[name] = range if void is not None: self._voidmap[name] = void if (not void) and (default is None): return self.__setattr__(name,default) def __setattr__(self, name, val): if name in UNCHECKED_ATTRIBUTES: self.__dict__[name] = val return #__GBO_DEBUG_ if name == "_typemap": print "WARNING WARNING WARNING : changing value of _typemap by ",val if name not in self._typemap.keys(): raise DevelException("The class "+str(self.__class__)+" has no attribute "+str(name)) if val is None: if not self.__isVoidAllowed(name): raise DevelException("The attribute "+str(name)+" can't be None") else: # We can stop here and set the value to None self.__dict__[name] = None return if self.__isNotValidType(name,val): raise DevelException("The attribute "+str(name)+" must be an instance of "+str(self._typemap[name])) if self.__isNotValidRange(name,val): raise DevelException("The attribute "+str(name)+" must be a value in :"+str(self._rangemap[name])) self.__dict__[name] = val def __getattribute__(self, name): if name in UNCHECKED_ATTRIBUTES: return self.__dict__[name] if name not in self._typemap.keys(): raise DevelException("The class "+str(self.__class__)+" has no attribute "+str(name)) # The attribute coulb be requested while it has not been created yet (for # example if we did't call the setter before). if not self.__dict__.has_key(name): return None return self.__dict__[name] def __isNotValidType(self, name, val): isNotValid = ( ( self._typemap[name] is not None) and ( not isinstance(val,self._typemap[name]) ) ) return isNotValid def __isNotValidRange(self, name, val): isNotValid = ( ( self._rangemap is not None) and ( self._rangemap.has_key(name) ) and ( self._rangemap[name] is not None ) and ( val not in self._rangemap[name] ) ) return isNotValid def __isVoidAllowed(self,name): isVoidAllowed = ( ( self._voidmap is not None) and ( self._voidmap.has_key(name) ) and ( self._voidmap[name] is True ) ) return isVoidAllowed def log(self): print "DATAMODELER ["+str(self.__class__)+"]: self._typemap.keys() = "+str(self._typemap.keys()) # # ============================================================================== # Basic use cases and unit tests # ============================================================================== # def TEST_usecase(): typemap={} typemap["stringdata"] = TypeString typemap["integerdata"] = TypeInteger typemap["anydata"] = None # can be anything data = DataModeler(typemap) sdata = "toto" idata = 3 data.stringdata = sdata data.integerdata = idata data.anydata = 5.3 data.anydata = "any value" data.anydata = True print data.integerdata return True def TEST_addAttribute(): typemap={} typemap["stringdata"] = TypeString typemap["integerdata"] = TypeInteger data = DataModeler(typemap) data.stringdata = "a string value" ref_value = 1.3 data.addAttribute( name = "myAttr", type = TypeDouble, range = None, default = ref_value, void = False) try: if data.myAttr != ref_value: return False data.myAttr = 5.3 #data.myAttr = 5 except Exception, e: print e return False try: data.myAttr = "bad type value" return False except Exception, e: print e return True def TEST_badAttributeName(): map={} map["stringdata"] = TypeString map["integerdata"] = TypeInteger data = DataModeler(map) # this should raise an exception try: data.myatt = 3 return False except Exception, e: print "OK : "+str(e) return True def TEST_badAttributeType(): map={} map["stringdata"] = TypeString map["integerdata"] = TypeInteger data = DataModeler(map) # this should raise an exception try: data.stringdata = 2 return False except Exception, e: print "OK : "+str(e) return True def TEST_badAttributeRange(): map={} map["stringdata"] = TypeString map["integerdata"] = TypeInteger range={} ref_integervalue = 3 range["integerdata"] = [1,ref_integervalue,7] data = DataModeler(map,range) # this should not raise an exception try: data.integerdata = ref_integervalue data.stringdata = "anything (no restriction has been defined)" except Exception, e: print e return False # this should raise an exception try: data.integerdata = 9999 # a value not in the range return False except Exception, e: print e return True def TEST_voidAttributeAllowed(): map={} map["stringdata"] = TypeString map["integerdata"] = TypeInteger voidmap={} voidmap["stringdata"] = True data = DataModeler(typemap=map,voidmap=voidmap) try: # this should not raise an exception data.stringdata = None print data.stringdata except Exception, e: print e return False try: # this should raise an exception data.integerdata = None return False except Exception, e: print e return True def TEST_defaultValues(): typemap={} typemap["stringdata"] = TypeString typemap["integerdata"] = TypeInteger ref_value = "my initial value" defaultmap={} defaultmap["stringdata"] = ref_value data = DataModeler(typemap=typemap,defaultmap=defaultmap) print data.stringdata if data.stringdata != ref_value: return False else: return True if __name__ == "__main__": from unittester import run run("salome/kernel/datamodeler","TEST_usecase") run("salome/kernel/datamodeler","TEST_addAttribute") run("salome/kernel/datamodeler","TEST_badAttributeName") run("salome/kernel/datamodeler","TEST_badAttributeType") run("salome/kernel/datamodeler","TEST_badAttributeRange") run("salome/kernel/datamodeler","TEST_voidAttributeAllowed") run("salome/kernel/datamodeler","TEST_defaultValues") salome-kernel-6.5.0/src/KERNEL_PY/kernel/deprecation.py000077500000000000000000000107211177004724000225740ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module provides several functions to indicate the deprecation of a module, a method or a function. Example:: from salome.kernel.deprecation import deprecated @deprecated("Deprecated since version 6.3.0. Consider replacement with " "newFunction()") def oldFunction(): ... """ import sys import warnings import inspect import os from salome.kernel import termcolor msg_seedoc = "See documentation for possible replacements." def __deprecated_with_msg(func, msg): def new_func(*args, **kwargs): if len(inspect.stack()) > 1: callingfunc = inspect.stack()[1][3] else: callingfunc = "CORBA middleware" warnings.warn( ("Call to deprecated function %(funcname)s of module " + "%(modname)s (called from %(callingfunc)s).\n %(msg)s") % { 'funcname': func.__name__, 'modname': func.__module__, 'callingfunc': callingfunc, 'msg': msg, }, category = DeprecationWarning, stacklevel = 2 ) return func(*args, **kwargs) return new_func def deprecated(msg = msg_seedoc): """ This is a decorator which can be used to mark functions as deprecated. It will result in a warning being emitted when the function is used. The message in parameter will be displayed and should indicate how this function can be replaced. If the terminal can display colors, the warning messages will appear in blue. """ def make_dep(f): if is_called_by_sphinx(): return f else: g = __deprecated_with_msg(f, msg) g.__name__ = f.__name__ g.__doc__ = f.__doc__ g.__dict__.update(f.__dict__) return g return make_dep def deprecated_module(msg = msg_seedoc): """ This function can be used to mark a module as deprecated. It must be called explicitly at the beginning of the deprecated module. It will result in a warning being emitted. The message in parameter will be displayed and should indicate how this module can be replaced. If the terminal can display colors, the warning messages will appear in blue. """ if not is_called_by_sphinx(): warnings.warn( "Importation of deprecated module %(modname)s.\n %(msg)s" % { 'modname': inspect.getmodulename(inspect.stack()[1][1]), 'msg': msg, }, category = DeprecationWarning, stacklevel = 5 ) def is_called_by_sphinx(): """ Determine if the calling code is ultimately called by sphinx to generate documentation. The result can be used to conditionally inhibit the decorators or some Salome-related imports that fail when called outside Salome. """ calling_file = inspect.stack()[len(inspect.stack())-1][1] basename = os.path.basename(calling_file) return (basename == "sphinx-build") def __show_colored_warning(message, category, filename, lineno, file = sys.stderr, line = None): str = warnings.formatwarning(message, category, filename, lineno, line) if category == DeprecationWarning and termcolor.canDisplayColor(file): file.write(termcolor.makeColoredMessage(str, termcolor.BLUE)) else: file.write(str) # Enable warnings for deprecated functions and modules (in Python 2.7, they # are disabled by default) warnings.filterwarnings("always", "Call to *", DeprecationWarning) warnings.filterwarnings("always", "Importation of *", DeprecationWarning) warnings.showwarning = __show_colored_warning salome-kernel-6.5.0/src/KERNEL_PY/kernel/diclookup.py000077500000000000000000000076731177004724000223040ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$21 mai 2010 18:00:23$" # search a dictionary for key or value # using named functions or a class # tested with Python25 by Ene Uran 01/19/2008 def find_key(dic, val): """return the key of dictionary dic given the value""" return [k for k, v in dic.iteritems() if v == val][0] def find_value(dic, key): """return the value of dictionary dic given the key""" return dic[key] class Lookup(dict): """ a dictionary which can lookup value by key, or keys by value """ def __init__(self, items=[]): """items can be a list of pair_lists or a dictionary""" dict.__init__(self, items) def get_keys(self, value): """find the key(s) as a list given a value""" return [item[0] for item in self.items() if item[1] == value] def get_key(self, value): """ find the key associated to the given a value. If several keys exist, only the first is given. To get the whole list, use get_keys instead. """ list = self.get_keys(value) if len(list) == 0: return None return list[0] def get_value(self, key): """find the value given a key""" return self[key] # # ============================================================================== # Use cases and unit tests # ============================================================================== # def TEST_getTestDictionnary(): # dictionary of chemical symbols symbol_dic = { 'C': 'carbon', 'H': 'hydrogen', 'N': 'nitrogen', 'Li': 'lithium', 'Be': 'beryllium', 'B': 'boron' } return symbol_dic def TEST_find_value(): symbol_dic = TEST_getTestDictionnary() print find_key(symbol_dic, 'boron') # B print find_value(symbol_dic, 'B') # boron print find_value(symbol_dic, 'H') # hydrogen if find_key(symbol_dic, 'nitrogen') != 'N': return False return True def TEST_lookup(): symbol_dic = TEST_getTestDictionnary() name = 'lithium' symbol = 'Li' # use a dictionary as initialization argument look = Lookup(symbol_dic) print look.get_key(name) # [Li'] if look.get_key(name) != symbol: print "get "+str(look.get_key(name))+" while "+str(symbol)+" was expected" return False print look.get_value(symbol) # lithium # use a list of pairs instead of a dictionary as initialization argument # (will be converted to a dictionary by the class internally) age_list = [['Fred', 23], ['Larry', 28], ['Ene', 23]] look2 = Lookup(age_list) print look2.get_keys(23) # ['Ene', 'Fred'] if look2.get_keys(23)[0] != 'Ene' or look2.get_keys(23)[1] != 'Fred': print "get "+str(look2.get_keys(23))+" while ['Ene', 'Fred'] was expected" return False print look2.get_value('Fred') # 23 return True if __name__ == '__main__': import unittester unittester.run("diclookup", "TEST_find_value") unittester.run("diclookup", "TEST_lookup") salome-kernel-6.5.0/src/KERNEL_PY/kernel/enumerate.py000077500000000000000000000143701177004724000222700ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__ = "gboulant" __date__ = "$1 avr. 2010 09:08:02$" class Enumerate(object): """ This class emulates a C-like enum for python. It is initialized with a list of strings to be used as the enum symbolic keys. The enum values are automatically generated as sequencing integer starting at the specified offset value. """ def __init__(self, keys, offset=0): """ Canonical constructor @keys a list of string to be used as the enum symbolic keys. The enum values are automatically generated as a sequence of integers starting at the specified offset value. """ self._dict_keynumbers = {} for number, key in enumerate(keys): value = offset + number setattr(self, key, value) self._dict_keynumbers[key] = value def contains(self, key): """ Return true if this enumerate contains the specified key string @key a key string to test """ return (key in self._dict_keynumbers.keys()) def isValid(self, value): """ Returns true if the specified integer value is defined as an identifier in this enumarate. @value a value to test """ return (value in self._dict_keynumbers.values()) def listkeys(self): """ Returns the list of keys in this enumerate. """ list = self._dict_keynumbers.keys() list.sort() return list def listvalues(self): """ Returns the list of values specified to initiate this enumerate. """ list = self._dict_keynumbers.values() list.sort() return list def keyOf(self, value): """ Returns the symbolic key string associated to the specified identifier value. @param value : an integer value whose associated key string is requested. """ if not self.isValid(value): return None # _MEM_ We assume here that the keys and associated values are in the # same order in their list. return self._dict_keynumbers.keys()[self._dict_keynumbers.values().index(value)] # If not, weshould use a longer implementation such that: #for key in self._dict_keynumbers.keys(): # if self._dict_keynumbers[key] == value: # return key # # ============================================================================== # Basic use cases and unit test functions # ============================================================================== # def TEST_simple(): TYPES_LIST = Enumerate([ 'SEP', 'OTHER' ]) print TYPES_LIST.listvalues() return True def TEST_createFromList(): codes = Enumerate([ 'KERNEL', # This should take the value 0 'GUI', # This should take the value 1 'GEOM', # ... 'MED', 'SMESH']) print codes.KERNEL print codes.GEOM if (codes.KERNEL == 0 and codes.GEOM == 2): return True else: return False def TEST_createFromString(): aList = "KERNEL GUI GEOM MED" codes = Enumerate(aList.split()) print codes.KERNEL print codes.GEOM if (codes.KERNEL == 0 and codes.GEOM == 2): return True else: return False def TEST_contains(): codes = Enumerate([ 'KERNEL', # This should take the value 0 'GUI', # This should take the value 1 'GEOM', # ... 'MED', 'SMESH']) print "VISU in enumerate?", codes.contains("VISU") if (not codes.contains("VISU")): return True else: return False def TEST_isValid(): codes = Enumerate([ 'KERNEL', # This should take the value 0 'GUI', # This should take the value 1 'GEOM', # ... 'MED', 'SMESH']) if (not codes.isValid(23)): return True else: return False def TEST_offset(): codes = Enumerate([ 'KERNEL', # This should take the value 0 'GUI', # This should take the value 1 'GEOM', # ... 'MED', 'SMESH'], offset=20) print codes.KERNEL print codes.GEOM if (codes.KERNEL == 20 and codes.GEOM == 22): return True else: return False def TEST_listvalues(): codes = Enumerate([ 'KERNEL', # This should take the value 0 'GUI', # This should take the value 1 'GEOM', # ... 'MED', 'SMESH'], offset=20) print codes.listvalues() if codes.listvalues() != [20, 21, 22, 23, 24]: return False return True def TEST_keyOf(): codes = Enumerate([ 'KERNEL', # This should take the value 0 'GUI', # This should take the value 1 'GEOM', # ... 'MED', 'SMESH']) if ( codes.keyOf(codes.KERNEL) != 'KERNEL' or codes.keyOf(codes.GUI) != 'GUI' or codes.keyOf(codes.GEOM) != 'GEOM' or codes.keyOf(codes.MED) != 'MED' or codes.keyOf(codes.SMESH) != 'SMESH'): return False return True if __name__ == "__main__": import unittester unittester.run("enumerate", "TEST_simple") unittester.run("enumerate", "TEST_createFromList") unittester.run("enumerate", "TEST_createFromString") unittester.run("enumerate", "TEST_contains") unittester.run("enumerate", "TEST_isValid") unittester.run("enumerate", "TEST_offset") unittester.run("enumerate", "TEST_listvalues") unittester.run("enumerate", "TEST_keyOf") salome-kernel-6.5.0/src/KERNEL_PY/kernel/kernelpy_autotest.sh.in000077500000000000000000000045161177004724000244540ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Author : Guillaume Boulant (EDF) # # # This script runs the unit tests embedded in each of the python # modules of the package salome.kernel. # # This script should be executed in a SALOME shell session, # for example the shell obtained from the command runSession # provided by the SALOME application. # # This first list does not need a SALOME application. Only the # environnement is required (for example, run these script in a # session obtained with runSession listfiles="\ unittester.py \ enumerate.py \ uiexception.py \ datamodeler.py \ testdata.py \ diclookup.py \ syshelper.py \ pyunittester.py \ __init__.py" # This files should be add to the list #listfiles=$listfiles"\ # deprecation.py \ # logger.py \ # termcolor.py \ # logconfig.py" # This list REQUIRES a running SALOME application listfiles=$listfiles"\ services.py \ studyedit.py" # This files are not used yet (but we test them) #listfiles=$listfiles"\ # salome/kernel/threadhelper.py" MODULE_ROOT_DIR=@prefix@ MODULE_PYTHON_DIR=$MODULE_ROOT_DIR/lib/python@PYTHON_VERSION@/site-packages/salome PYTHONPATH=$MODULE_PYTHON_DIR:$PYTHONPATH export PYTHONPATH here=$(pwd) package_path="salome/kernel" cd $MODULE_PYTHON_DIR for file in $listfiles; do # Uncomment this line (and comment the next one) to display # the start line of a test and not only the result: #python $package_path/$file | grep '^\[TEST' python $package_path/$file | grep '^\[TEST' | grep -v 'test in progress' done cd $here salome-kernel-6.5.0/src/KERNEL_PY/kernel/logconfig.py.in000077500000000000000000000017361177004724000226610ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module defines a variable to indicate which traces should be logged. """ import logging loggingLevel = logging.@PYLOGLEVEL@ salome-kernel-6.5.0/src/KERNEL_PY/kernel/logger.py000077500000000000000000000201211177004724000215510ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #============================================================================= # Author : Guillaume Boulant (CSSI) # Rewritten by Renaud Barate (EDF R&D) # Project : SALOME # Copyright : EDF 2001-2009 # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/kernel/Attic/logger.py,v 1.1.8.3.12.1 2012-04-12 14:05:14 vsr Exp $ #============================================================================= """ This module defines a class which provides logging facility in Salome: """ import sys, os import logging from salome.kernel.deprecation import deprecated from salome.kernel import termcolor import salome.kernel.logconfig class Logger(logging.Logger): """ This class formats and displays log messages in Salome environment. It inherits :class:`Logger` class defined in :mod:`logging` module from Python library, so all methods from :class:`logging.Logger` can be used here. The format of the traces is: LEVEL [keyword] : Message where `LEVEL` is the level of the message (`DEBUG`, `INFO`, etc.), `keyword` is the name of the logger, and `Message` is the message to log. When creating a new Logger object, the parameter `keyword` defines the name of the logger, `level` defines the logging level (default is :const:`logging.DEBUG` if KERNEL module is configured with --enable-debug option or :const:`logging.WARNING` otherwise), and `color` defines the color of the log messages for this logger (log messages will appear in color only when displayed on color-capable ASCII terminals). See module :mod:`salome.kernel.termcolor` for the color constants. By default, log messages will be displayed only on standard output. They can also be recorded in a file (see method :meth:`setLogFile`). For now, the CORBA-based logging facility can not be used through this class. A source filename `sourceFileName` can be defined. If this argument is specified, then the `keyword` is modified to the basename of the `sourceFileName` Basic usage:: from salome.kernel.logger import Logger log = Logger("Test") log.debug("Debug message") log.info("Information message") log.warning("Warning message") log.error("Error message") log.critical("Fatal error message") """ def __init__(self, keyword = "KEY", level = salome.kernel.logconfig.loggingLevel, color = None, sourceFileName=None): if sourceFileName is not None: keyword = os.path.basename(sourceFileName).split('.')[0] logging.Logger.__init__(self, keyword, level) self._baseFormatString = "%(levelname)-8s [%(name)s] : %(message)s" self._baseFormatter = logging.Formatter(self._baseFormatString) if hasattr(sys.stdout, "flush"): self._stdoutStream = sys.stdout else: self._stdoutStream = _UnFlushableLogStream(sys.stdout) self._stdoutHandler = logging.StreamHandler(self._stdoutStream) self._stdoutHandler.setLevel(logging.DEBUG) self.setColor(color) self.addHandler(self._stdoutHandler) self._fileHandler = None def showDebug(self): """ Log all messages, including DEBUG level messages (equivalent to ``setLevel(logging.DEBUG)``). """ self.setLevel(logging.DEBUG) def setLogFile(self, logFilename): """ Define a log file to record the log messages (in addition to the standard output). """ self.closeLogFile() self._fileHandler = logging.FileHandler(logFilename, 'w') self._fileHandler.setLevel(logging.DEBUG) self._fileHandler.setFormatter(self._baseFormatter) self.addHandler(self._fileHandler) def setColor(self, color): """ Set the color of log messages on color-capable terminals. If `color` is :const:`None`, the default color will be used. """ if color is None or not termcolor.canDisplayColor(self._stdoutStream): stdoutFormatter = self._baseFormatter else: format = ("%s%s%s" % (termcolor.getControlSequence(color), self._baseFormatString, termcolor.getControlSequence(termcolor.DEFAULT))) stdoutFormatter = logging.Formatter(format) self._stdoutHandler.setFormatter(stdoutFormatter) def closeLogFile(self): """Close the log file.""" if self._fileHandler is not None: self.removeHandler(self._fileHandler) self._fileHandler.close() self._fileHandler = None def hideDebug(self): """ Hide DEBUG level messages (equivalent to ``setLevel(logging.INFO)``). """ self.setLevel(logging.INFO) @deprecated("Deprecated since version 5.1.5. Please replace with " "Logger.critical(message)") def fatal(self, message): """ Log a message with CRITICAL level. This method only exists for backward compatibility and is equivalent to ``critical(message)``. """ self.critical(message) class _UnFlushableLogStream: """ This utility class allows to log messages to a stream with no `flush` method. This is useful to send log messages to `PyOut` objects. """ def __init__(self, stream): self._stream = stream def write(self, msg): self._stream.write(msg) def flush(self): pass class ExtLogger(Logger): """ This class extends :class:`Logger` class and adds exception information when DEBUG messages are recorded. It exists mainly for backward compatibility, as the same thing can be done by calling ``Logger.debug(message, exc_info = True)``. """ @deprecated("Class ExtLogger is deprecated since version 5.1.5. See " "documentation for replacement.") def __init__(self, keyword = "KEY", level = salome.kernel.logconfig.loggingLevel, color = None, sourceFileName=None): Logger.__init__(self, keyword, level, color, sourceFileName) def debug( self, message ): """ Log a DEBUG message with exception information (equivalent to ``Logger.debug(message, exc_info = True)``). """ Logger.debug(self, message, exc_info = True) def TEST_Logger(): """Test function for logger module""" log = Logger("TST") # Base methods log.info("Information message") log.debug("Debug message") log.fatal("Fatal error message") # Message building data = 12 log.info("This message displays data = " + str(data)) data = {} data["KERNEL"] = "V1" data["GEOM"] = "V2" log.info("This message displays data = " + str(data)) # Test with a non-string parameter log.info(data) # Test with a default instance log = Logger() log.info("Default logger") # Test showDebug method log.setLogFile("test.log") log.debug("Debug trace") log.hideDebug() log.debug("This trace should NOT be displayed") log.showDebug() log.debug("This trace should be displayed") log.closeLogFile() log.info("After closing the log file") # Main function only used to test the module if __name__ == "__main__": TEST_Logger() salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/000077500000000000000000000000001177004724000220505ustar00rootroot00000000000000salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/Makefile.am000077500000000000000000000020261177004724000241070ustar00rootroot00000000000000# Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am mypkgpythondir =$(salomepypkgdir)/kernel/parametric mypkgpython_PYTHON = \ __init__.py \ study_exchange_vars.py \ compo_utils.py \ pyscript_utils.py salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/Makefile.in000077500000000000000000000535371177004724000241350ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(mypkgpython_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/KERNEL_PY/kernel/parametric ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(mypkgpythondir)" py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules mypkgpythondir = $(salomepypkgdir)/kernel/parametric mypkgpython_PYTHON = \ __init__.py \ study_exchange_vars.py \ compo_utils.py \ pyscript_utils.py all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/KERNEL_PY/kernel/parametric/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/KERNEL_PY/kernel/parametric/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-mypkgpythonPYTHON: $(mypkgpython_PYTHON) @$(NORMAL_INSTALL) test -z "$(mypkgpythondir)" || $(MKDIR_P) "$(DESTDIR)$(mypkgpythondir)" @list='$(mypkgpython_PYTHON)'; dlist=; list2=; test -n "$(mypkgpythondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mypkgpythondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mypkgpythondir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(mypkgpythondir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(mypkgpythondir)" $$dlist; \ fi; \ else :; fi uninstall-mypkgpythonPYTHON: @$(NORMAL_UNINSTALL) @list='$(mypkgpython_PYTHON)'; test -n "$(mypkgpythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(mypkgpythondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(mypkgpythondir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(mypkgpythondir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(mypkgpythondir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(mypkgpythondir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(mypkgpythondir)" && rm -f $$fileso tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: for dir in "$(DESTDIR)$(mypkgpythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-mypkgpythonPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-mypkgpythonPYTHON .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man \ install-mypkgpythonPYTHON install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-mypkgpythonPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/__init__.py000077500000000000000000000014761177004724000241740ustar00rootroot00000000000000# Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/compo_utils.py000077500000000000000000000100721177004724000247620ustar00rootroot00000000000000# Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module provides utility functions for the computation codes intended for use in parametric studies. The computation codes must be implemented as SALOME components to use these functions. If the computation code is implemented as a Python script or function, use module :mod:`salome.kernel.parametric.pyscript_utils` instead. """ import SALOME_TYPES def create_input_dict(deterministic_dict, parametric_input): """ This function returns a dictionary containing the input values to be used in the computation code. :type deterministic_dict: dict :param deterministic_dict: dictionary containing the fixed values (i.e. non-parametric). This dictionary can be empty if all variables are parametric. :type parametric_input: SALOME_TYPES/ParametricInput :param parametric_input: structure containing the description and values of the parametric variables. :return: a dictionary containing the input values for the computation code. """ # Simply get the first point from input (no time series, single observation) input_point = parametric_input.inputValues[0][0] if len(input_point) != len(parametric_input.inputVarList): raise Exception("Size mismatch between inputVarList and point to evaluate") input_dict = deterministic_dict.copy() for i in range(len(input_point)): input_dict[parametric_input.inputVarList[i]] = input_point[i][0] return input_dict def create_normal_parametric_output(output_dict, parametric_input): """ This function returns a structure describing the output of the computation code in parametric studies. :type output_dict: dict :param output_dict: dictionary containing the output values of the computation code (the keys are the variable names, the values are the variable values). :type parametric_input: SALOME_TYPES/ParametricInput :param parametric_input: structure containing the description and values of the parametric variables. :return: a structure of type SALOME_TYPES/ParametricOutput containing the output of the computation code. """ output_values = [[[]]] for output_var in parametric_input.outputVarList: output_values[0][0].append([output_dict[output_var]]) return SALOME_TYPES.ParametricOutput(outputValues = output_values, specificOutputInfos = [], returnCode = 0, errorMessage = "") def create_error_parametric_output(error_message): """ This function returns a structure describing the output of the computation code in parametric studies in case of error. :type error_message: string :param error_message: the error message. :return: a structure of type SALOME_TYPES/ParametricOutput describing the error. """ return SALOME_TYPES.ParametricOutput(outputValues = [], specificOutputInfos = [], returnCode = 1, errorMessage = error_message) salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/pyscript_utils.py000077500000000000000000000073521177004724000255310ustar00rootroot00000000000000# Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module provides utility functions for the computation codes intended for use in parametric studies. The computation codes must be implemented as a Python script or function to use these functions. If the computation code is implemented as a SALOME component, use module :mod:`salome.kernel.parametric.compo_utils` instead. """ def create_input_dict(deterministic_dict, parametric_input): """ This function returns a dictionary containing the input values to be used in the computation code. :type deterministic_dict: dict :param deterministic_dict: dictionary containing the fixed values (i.e. non-parametric). This dictionary can be empty if all variables are parametric. :type parametric_input: dict :param parametric_input: dictionary containing the description and values of the parametric variables. :return: a dictionary containing the input values for the computation code. """ # Simply get the first point from input (no time series, single observation) input_point = parametric_input["inputValues"][0][0] if len(input_point) != len(parametric_input["inputVarList"]): raise Exception("Size mismatch between inputVarList and point to evaluate") input_dict = deterministic_dict.copy() for i in range(len(input_point)): input_dict[parametric_input["inputVarList"][i]] = input_point[i][0] return input_dict def create_normal_parametric_output(output_dict, parametric_input): """ This function returns a dictionary describing the output of the computation code in parametric studies. :type output_dict: dict :param output_dict: dictionary containing the output values of the computation code (the keys are the variable names, the values are the variable values). :type parametric_input: dict :param parametric_input: dictionary containing the description and values of the parametric variables. :return: a dictionary containing the representation of the output of the computation code. """ output_values = [[[]]] for output_var in parametric_input["outputVarList"]: output_values[0][0].append([output_dict[output_var]]) return {"outputValues" : output_values, "specificOutputInfos" : [], "returnCode" : 0, "errorMessage" : ""} def create_error_parametric_output(error_message): """ This function returns a dictionary describing the output of the computation code in parametric studies in case of error. :type error_message: string :param error_message: the error message. :return: a dictionary describing the error. """ return {"outputValues" : [], "specificOutputInfos" : [], "returnCode" : 1, "errorMessage" : error_message} salome-kernel-6.5.0/src/KERNEL_PY/kernel/parametric/study_exchange_vars.py000077500000000000000000000201611177004724000264720ustar00rootroot00000000000000# Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module provides classes and functions to handle "Exchange Variables", i.e. description of variables to be exchanged between a supervision code and a computation code. These Exchange Variables can be stored in a SObject in Salome study. """ from xml.dom.minidom import getDOMImplementation, parse from salome.kernel.studyedit import getStudyEditor DEFAULT_NAME = "Variables" INPUT_VAR_NAMES = "ExchangeVariables.InputVarNames" OUTPUT_VAR_NAMES = "ExchangeVariables.OutputVarNames" REF_ENTRY = "ExchangeVariables.RefEntry" class Variable: """ This class describes a single variable. For now, it is only described by its name. Other attributes are reserved for future use. """ def __init__(self, name, dimension = [], minValue = None, maxValue = None, initialValue = None): self.name = name # Reserved for future use self.dimension = dimension self.minValue = minValue self.maxValue = maxValue self.initialValue = initialValue class ExchangeVariables: """ This class describes "Exchange Variables", i.e. a structure containing all the necessary information to exchange variables between a supervision code and a computation code. .. attribute:: inputVarList This instance attribute is a list of :class:`Variable` objects, describing the input variables for the computation code. .. attribute:: outputVarList This instance attribute is a list of :class:`Variable` objects, describing the output variables for the computation code. .. attribute:: refEntry This instance attribute is optional and can be used to store a reference to a Salome entry containing an "Exchange Variable" SObject that was used to build this one (when the current object has been built by selecting variables of interest in a list of potential variables). """ def __init__(self, inputVarList = [], outputVarList = [], refEntry = None): self.inputVarList = inputVarList self.outputVarList = outputVarList self.refEntry = refEntry def saveToXmlFile(self, filepath): """ Save this object to an XML file. :type filepath: string :param filepath: path of the XML file. """ doc = getDOMImplementation().createDocument(None, "variables", None) top_el = doc.documentElement top_el.setAttribute("version", "6.4") input_variables_el = doc.createElement("input_variables") top_el.appendChild(input_variables_el) output_variables_el = doc.createElement("output_variables") top_el.appendChild(output_variables_el) for input_var in self.inputVarList: input_var_el = doc.createElement("variable") input_var_el.setAttribute("name", input_var.name) input_variables_el.appendChild(input_var_el) for output_var in self.outputVarList: output_var_el = doc.createElement("variable") output_var_el.setAttribute("name", output_var.name) output_variables_el.appendChild(output_var_el) f = open(filepath, "w") f.write(doc.toprettyxml(indent = " ")) f.close() def createSObjectForExchangeVariables(fatherSobj, exchangeVariables, name = DEFAULT_NAME, icon = None, typeId = None): """ Create a SObject to store an :class:`ExchangeVariables` instance. :type fatherSobj: SObject :param fatherSobj: parent of the SObject to create. :type exchangeVariables: :class:`ExchangeVariables` :param exchangeVariables: :class:`ExchangeVariables` instance to store in Salome study. :type name: string :param name: name of the SObject to create. :type icon: string :param icon: icon of the SObject to create. :type typeId: integer :param typeId: type of the SObject to create. :return: the newly created SObject. """ studyId = fatherSobj.GetStudy()._get_StudyId() editor = getStudyEditor(studyId) sobj = editor.createItem(fatherSobj, name = name, icon = icon, typeId = typeId) _setSObjectForExchangeVariables(editor, sobj, exchangeVariables) def updateSObjectForExchangeVariables(sobj, exchangeVariables, name = DEFAULT_NAME, icon = None, typeId = None): """ Update an existing SObject storing an :class:`ExchangeVariables` instance. :type sobj: SObject :param sobj: the SObject to update. See :func:`createSObjectForExchangeVariables` for the description of the other parameters. """ studyId = sobj.GetStudy()._get_StudyId() editor = getStudyEditor(studyId) editor.setItem(sobj, name = name, icon = icon, typeId = typeId) editor.builder.RemoveAttribute(sobj, "AttributeParameter") _setSObjectForExchangeVariables(editor, sobj, exchangeVariables) def _setSObjectForExchangeVariables(editor, sobj, exchangeVariables): attr = editor.builder.FindOrCreateAttribute(sobj, "AttributeParameter") attr.SetStrArray(INPUT_VAR_NAMES, [x.name for x in exchangeVariables.inputVarList]) attr.SetStrArray(OUTPUT_VAR_NAMES, [x.name for x in exchangeVariables.outputVarList]) if exchangeVariables.refEntry is not None: attr.SetString(REF_ENTRY, exchangeVariables.refEntry) def getExchangeVariablesFromSObject(sobj): """ Get an :class:`ExchangeVariables` instance from a SObject that stores it. :type sobj: SObject :param sobj: the SObject from which to read the :class:`ExchangeVariables` instance. :return: the newly created :class:`ExchangeVariables` instance. """ (found, attr) = sobj.FindAttribute("AttributeParameter") if not found: return None refEntry = None if attr.IsSet(REF_ENTRY, 3): refEntry = attr.GetString(REF_ENTRY) return ExchangeVariables( [Variable(name) for name in attr.GetStrArray(INPUT_VAR_NAMES)], [Variable(name) for name in attr.GetStrArray(OUTPUT_VAR_NAMES)], refEntry) def loadExchangeVariablesFromXmlFile(filepath): """ Load an :class:`ExchangeVariables` instance from an XML file. :type filepath: string :param filepath: path of the XML file to load. :return: the newly created :class:`ExchangeVariables` instance. """ doc = parse(filepath) top_el = doc.documentElement # Check version version = top_el.getAttribute("version") if version != "6.4": raise Exception(self.tr("Unsupported version: %s" % version)) input_variables_el = top_el.getElementsByTagName("input_variables")[0] input_var_list = [Variable(input_var_el.getAttribute("name")) for input_var_el in input_variables_el.getElementsByTagName("variable")] output_variables_el = top_el.getElementsByTagName("output_variables")[0] output_var_list = [Variable(output_var_el.getAttribute("name")) for output_var_el in output_variables_el.getElementsByTagName("variable")] return ExchangeVariables(input_var_list, output_var_list) salome-kernel-6.5.0/src/KERNEL_PY/kernel/pyunittester.py000077500000000000000000000121571177004724000230630ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2011-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys from salome.kernel import termcolor def printfile(filename): stream = open(filename,'r') lines = stream.readlines() stream.close() for line in lines: if not termcolor.canDisplayColor(sys.stdout): msg = line.split('\n')[0] else: msg = termcolor.makeColoredMessage(line.split('\n')[0], termcolor.BLUE) print msg import os import unittest from unittest import TestCase from uiexception import DevelException class PyUnitTester(): ''' This class is a simple wrapper of the pyunit framework. ''' def __init__(self): self.__listTestSuite=[] self.setLogFilename("testlog.txt") def addTestCase(self,testCaseClass): # We test some attributes to validate that the argument # corresponds to a unittest.TestCase class (WARN: it's not an # instance but a class keyword) if "assertTrue" not in dir(testCaseClass): raise DevelException("Not a pyunit test case") suite = unittest.TestLoader().loadTestsFromTestCase(testCaseClass) self.__listTestSuite.append(suite) def setLogFilename(self, filename): self.__logfilename = filename def run(self): # We first open the output stream if os.path.exists(self.__logfilename): os.remove(self.__logfilename) logfile = open(self.__logfilename,'w') # Then, define and execute the runner to play the test suites runner = unittest.TextTestRunner(stream=logfile,verbosity=2) for suite in self.__listTestSuite: runner.run(suite) # Finally close the ouput stream and print the report logfile.close() self.printreport() def printreport(self): printfile(self.__logfilename) def execAndConvertExceptionToBoolean(function): """ This can be used to just execute a test function that is considered as OK simply if no exception is raised (can be test by an assertTrue). """ try: result = function() if result is None: return True return result except Exception, e: print e return False # Simple helper function for most cases where there is only one # TestCase classe. def run(testCaseClass): """ Run the test suite provided by the specified TestCase class. """ tester = PyUnitTester() tester.addTestCase(testCaseClass) tester.run() # # ============================================================================== # Simple use cases # ============================================================================== # class MyTestCase(unittest.TestCase): def test_myTestOk_01(self): r=True print "myTestOk_01: should be OK" self.assertTrue(r) def test_myTestOk_02(self): r=True print "myTestOk_02: should be OK" self.assertTrue(r) def test_myTestNotOk(self): r=False print "myTestNotOk: should be NOT OK" self.assertTrue(r) def functionRaisingAnException(): raise Exception("An error occurs") def functionReturningFalse(): return False def functionReturningTrue(): return True def functionReturningNothing(): print "functionReturningNothing" class MyTestCase2(unittest.TestCase): def test_myTest_01(self): r=execAndConvertExceptionToBoolean(functionRaisingAnException) print "test 01: this test should be NOT OK" self.assertTrue(r) def test_myTest_02(self): r=execAndConvertExceptionToBoolean(functionReturningFalse) print "test 02: this test should be NOT OK" self.assertTrue(r) def test_myTest_03(self): r=execAndConvertExceptionToBoolean(functionReturningTrue) print "test 03: this test should be OK" self.assertTrue(r) def test_myTest_04(self): r=execAndConvertExceptionToBoolean(functionReturningNothing) print "test 04: this test should be OK" self.assertTrue(r) def test_myTest_05(self): r=True print "test 05: this test should be OK" self.assertTrue(r) def TEST_basic_usecase(): tester = PyUnitTester() # Note that the class keywords must be passed tester.addTestCase(MyTestCase) tester.addTestCase(MyTestCase2) tester.run() if __name__ == "__main__": TEST_basic_usecase() salome-kernel-6.5.0/src/KERNEL_PY/kernel/services.py000077500000000000000000000206011177004724000221200ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Author: Guillaume Boulant (EDF/R&D) # # WARNING: development notes # # This python module is aimed to be a (yet another?) end user # interface to manipulate the KERNEL SALOME services. Note that it # does not replace the salome module (i.e. what you get when typing # "import salome", actually implemented in the file __init__.py of the # salome python package). It provides instead functions that help to # use the salome module in a end user context (development of domain # specific tools by programmers that are not ten years experienced in # SALOME development). import salome from deprecation import is_called_by_sphinx if not is_called_by_sphinx() and salome.lcc is None: try: salome.salome_init() except Exception, e: print e # Note that the salome module provides you with standard SALOME # objects: CORBA broker (orb): salome.orb lyfe cycle (lcc) : # salome.lcc naming service : salome.naming_service study manager : # salome.myStudyManager The default study : salome.myStudy # # Alternatively, you may obtain these objects directly with the # following instructions: # # from omniORB import CORBA # from LifeCycleCORBA import LifeCycleCORBA # orb = CORBA.ORB_init( [''], CORBA.ORB_ID ) # lcc = LifeCycleCORBA( orb ) # # from SALOME_NamingServicePy import SALOME_NamingServicePy_i # naming_service = SALOME_NamingServicePy_i( orb ) # # (See salome.py page in the KERNEL documentation) # # ============================================================================== # Helper functions for SALOME components # ============================================================================== # # # componentName is the name of the component as declared in the XML # SALOME catalog. A loadable library with name libEngine.so # is supposed to be reachable. This library is supposed to provide a # factory function with the prototype: # # PortableServer::ObjectId * Engine_factory( # CORBA::ORB_ptr orb, # PortableServer::POA_ptr poa, # PortableServer::ObjectId * contId, # const char *instanceName, # const char *interfaceName); # # corbaModule is the name of the IDL module that contains the # definition of the interface of the component. This name corresponds # to the namespace of the servant classes. # # containerType specified the container in which the servants are # executed. # def getComponent(componentName = "SalomeTestComponent", corbaModule = "Engines", containerType = "FactoryServer"): """ Get a SALOME CORBA component from its name """ print "INF: getting component %s from CORBA module %s ..."%(componentName,corbaModule) __import__(corbaModule) component=salome.lcc.FindOrLoadComponent(containerType,componentName) if component is None: print "ERR: the SALOME component "+componentName+" can't be reached" print "INF: component %s obtained from CORBA module %s"%(componentName,corbaModule) return component # Note that an alternative (and maybe better) method to get a component # is to use the module catalog. Here, we just use the catalog to get # the list of components defined in the current session. import SALOME_ModuleCatalog def getComponentList(): """ Get the list of names of all SALOME componenents register in the catalog. """ obj = salome.naming_service.Resolve('Kernel/ModulCatalog') catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog) if not catalog: raise RuntimeError, "Can't accesss module catalog" return catalog.GetComponentList() def getStudyManager(): """Get a study manager to create and manage SALOME studies""" return salome.myStudyManager import SALOMEDS def __getStudyManager_demo(): """ Get a study manager to create and manage SALOME studies. WARN: you should use instead the variable salome.myStudyManager. This function is given for illustration of usage of the naming service """ naming_service = SALOME_NamingServicePy_i( orb ) obj = naming_service.Resolve( '/myStudyManager' ) studyManager = obj._narrow( SALOMEDS.StudyManager) return studyManager # # ============================================================================== # Helper functions for manipulating objects, sobjects and entry # ============================================================================== # # - the SObject is an item in a study (Study Object). # - the entry is the identifier of an item. # - the ID is the entry # - the object (geom object or smesh object) is a CORBA servant # embedded in the SALOME component container and with a reference in # the SALOME study, so that it can be retrieved. # __GBO__ WARN: theses functions are already defined in # salome_study.py, but without the possibility to specify the # underlying study (in salome_study.py, the study is the default study # binded to the salome.myStudy attribute). TODO: see if it can be # extends to the prototype (with the study as an argument) below and # resorb the functions below. def IDToObject(id, study=None): myObj = None if study is None: myStudy = salome.myStudy else: myStudy = study mySO = myStudy.FindObjectID(id); if mySO is not None: ok, anAttr = mySO.FindAttribute("AttributeIOR") if ok: AtIOR = anAttr._narrow(SALOMEDS.AttributeIOR) if AtIOR.Value() != "": myObj = salome.orb.string_to_object(AtIOR.Value()) return myObj def ObjectToSObject(obj, study=None): mySO = None if study is None: myStudy = salome.myStudy else: myStudy = study if obj is not None: ior = salome.orb.object_to_string(obj) if ior != "": mySO = myStudy.FindObjectIOR(ior) return mySO def ObjectToID(obj, study=None): mySO = ObjectToSObject(obj,study) if mySO: return mySO.GetID() return "" def IDToSObject(id, study=None): if study is None: myStudy = salome.myStudy else: myStudy = study mySO = myStudy.FindObjectID(id); return mySO def SObjectToID(sobject): if sobject is None: return None return sobject.GetID() # # ============================================================================== # Basic use cases and unit tests # ============================================================================== # def TEST_getComponent(): component=getComponent(componentName = "SalomeTestComponent") ref_string = 'TestComponent_i : L = 3' res_string = component.Coucou(3) if ref_string != ref_string: return False return True def TEST_getComponentList(): componentList=getComponentList() if 'SalomeTestComponent' not in componentList: return False return True def TEST_createObject(): """ WARNING: for this test, we need GEOM (used to create an object """ import geompy geompy.init_geom(salome.myStudy) box = geompy.MakeBoxDXDYDZ(200, 200, 200) id = geompy.addToStudy( box, 'box' ) return id def TEST_objectsManipulation(): myEntry = TEST_createObject() mySObject = IDToSObject(myEntry) entry = SObjectToID(mySObject) if str(entry) != str(myEntry): return False myObject = IDToObject(myEntry) print myObject if myObject is None: return False return True if __name__ == "__main__": import unittester unittester.run("services","TEST_getComponent") unittester.run("services","TEST_getComponentList") unittester.run("services","TEST_objectsManipulation") salome-kernel-6.5.0/src/KERNEL_PY/kernel/studyedit.py000077500000000000000000000475761177004724000223370ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This module provides a new class :class:`StudyEditor` to complement :class:`Study` and :class:`StudyBuilder` classes. """ import re import salome from salome.kernel.logger import Logger from salome.kernel import termcolor logger = Logger("salome.kernel.studyedit", color = termcolor.PURPLE) _editors = {} _DEFAULT_CONTAINER = "FactoryServer" def getActiveStudyId(): """ Return the ID of the active study. In GUI mode, this function is equivalent to ``salome.sg.getActiveStudyId()``. Outside GUI, it returns ``salome.myStudyId`` variable. """ salome.salome_init() # Warning: we don't use salome.getActiveStudy() here because it doesn't # work properly when called from Salome modules (multi-study interpreter # issue) if salome.hasDesktop(): return salome.sg.getActiveStudyId() else: return salome.myStudyId def getActiveStudy(): return getStudyFromStudyId(getActiveStudyId()) def getStudyFromStudyId(studyId): salome.salome_init() study = salome.myStudyManager.GetStudyByID(studyId) return study def getStudyIdFromStudy(study): studyId = study._get_StudyId() return studyId def getStudyEditor(studyId = None): """ Return a :class:`StudyEditor` instance to edit the study with ID `studyId`. If `studyId` is :const:`None`, return an editor for the current study. """ if studyId is None: studyId = getActiveStudyId() if not _editors.has_key(studyId): _editors[studyId] = StudyEditor(studyId) return _editors[studyId] class StudyEditor: """ This class provides utility methods to complement :class:`Study` and :class:`StudyBuilder` classes. Those methods may be moved in those classes in the future. The parameter `studyId` defines the ID of the study to edit. If it is :const:`None`, the edited study will be the current study. The preferred way to get a StudyEditor object is through the method :meth:`getStudyEditor` which allows to reuse existing instances. .. attribute:: studyId This instance attribute contains the ID of the edited study. This attribute should not be modified. .. attribute:: study This instance attribute contains the underlying :class:`Study` object. It can be used to access the study but the attribute itself should not be modified. .. attribute:: builder This instance attribute contains the underlying :class:`StudyBuilder` object. It can be used to edit the study but the attribute itself should not be modified. """ def __init__(self, studyId = None): salome.salome_init() if studyId is None: studyId = getActiveStudyId() self.studyId = studyId self.study = salome.myStudyManager.GetStudyByID(studyId) if self.study is None: raise Exception("Can't create StudyEditor object: " "Study %d doesn't exist" % studyId) self.builder = self.study.NewBuilder() def findOrCreateComponent(self, moduleName, componentName = None, icon = None, containerName = _DEFAULT_CONTAINER): """ Find a component corresponding to the Salome module `moduleName` in the study. If none is found, create a new component and associate it with the corresponding engine (i.e. the engine named `moduleName`). Note that in Salome 5, the module name and engine name must be identical (every module must provide an engine with the same name). In Salome 6 it will be possible to define a different name for the engine. :type moduleName: string :param moduleName: name of the module corresponding to the component (the module name is the string value in the attribute "AttributeComment" of the component) :type componentName: string :param componentName: name of the new component if created. If :const:`None`, use `moduleName` instead. :type icon: string :param icon: icon for the new component (attribute "AttributePixMap"). :type containerName: string :param containerName: name of the container in which the engine should be loaded. :return: the SComponent found or created. """ sComponent = self.study.FindComponent(moduleName) if sComponent is None: sComponent = self.builder.NewComponent(moduleName) # Note that the NewComponent method set the "comment" attribute to the # value of its argument (moduleName here) if componentName is None: componentName = moduleName self.builder.SetName(sComponent, componentName) if icon is not None: # _MEM_ : This will be effective if and only if "moduleName" # really corresponds to the module name (as specified in the # SalomeApp.xml) self.setIcon(sComponent, icon) # This part will stay inactive until Salome 6. In Salome 6, the # engine name will be stored separately from the module name. # An internal convention (in this class) is to store the name of the # associated engine in the parameter attribute of the scomponent (so that # it could be retrieved in a future usage of this scomponent, for example, # for the need of the function loadComponentEngine). The comment attribute # SHOULD NOT be used for this purpose because it's used by the SALOME # resources manager to identify the SALOME module and then localized # the resource files #attr = self.builder.FindOrCreateAttribute( sComponent, "AttributeParameter" ) #attr.SetString( "ENGINE_NAME", engineName ) engine = salome.lcc.FindOrLoadComponent(containerName, moduleName) if engine is None: raise Exception("Cannot load engine %s in container %s. See " "logs of container %s for more details." % (moduleName, containerName, containerName)) self.builder.DefineComponentInstance(sComponent, engine) return sComponent def loadComponentEngine(self, sComponent, containerName = _DEFAULT_CONTAINER): """ Load the engine corresponding to `sComponent` in the container `containerName`, associate the engine with the component and load the CORBA objects of this component in the study. """ # This part will stay inactive until Salome 6. In Salome 6, the # engine name will be stored separately from the module name. #attr = self.builder.FindOrCreateAttribute( sComponent, "AttributeParameter" ) #engineName = attr.GetString( "ENGINE_NAME" ) engine = salome.lcc.FindOrLoadComponent(containerName, sComponent.GetComment()) if engine is None: raise Exception("Cannot load component %s in container %s. See " "logs of container %s for more details." % (sComponent.GetComment(), containerName, containerName)) self.builder.LoadWith(sComponent, engine) def getOrLoadObject(self, item): """ Get the CORBA object associated with the SObject `item`, eventually by first loading it with the corresponding engine. """ object = item.GetObject() if object is None: # the engine has not been loaded yet sComponent = item.GetFatherComponent() self.loadComponentEngine(sComponent) object = item.GetObject() return object def findOrCreateItem(self, fatherItem, name, fileType = None, fileName = None, comment = None, icon = None, IOR = None, typeId = None): """ Find an object under `fatherItem` in the study with the given attributes. Return the first one found if at least one exists, otherwise create a new one with the given attributes and return it. See :meth:`setItem` for the description of the parameters. """ sObject = self.findItem(fatherItem, name, fileType, fileName, comment, icon, IOR, typeId) if sObject is None: sObject = self.createItem(fatherItem, name, fileType, fileName, comment, icon, IOR, typeId) return sObject def findItem(self, fatherItem, name = None, fileType = None, fileName = None, comment = None, icon = None, IOR = None, typeId = None): """ Find an item with given attributes under `fatherItem` in the study. If none is found, return :const:`None`. If several items correspond to the parameters, only the first one is returned. The search is made only on given parameters (i.e. not :const:`None`). To look explicitly for an empty attribute, use an empty string in the corresponding parameter. See :meth:`setItem` for the description of the parameters. """ foundItem = None; childIterator = self.study.NewChildIterator(fatherItem) while childIterator.More() and foundItem is None: childItem = childIterator.Value() if childItem and \ (name is None or childItem.GetName() == name) and \ (fileType is None or \ self.getFileType(childItem) == fileType) and \ (fileName is None or \ self.getFileName(childItem) == fileName) and \ (comment is None or childItem.GetComment() == comment) and \ (icon is None or \ self.getIcon(childItem) == icon) and \ (IOR is None or childItem.GetIOR() == IOR) and \ (typeId is None or \ self.getTypeId(childItem) == typeId): foundItem = childItem childIterator.Next() return foundItem def createItem(self, fatherItem, name, fileType = None, fileName = None, comment = None, icon = None, IOR = None, typeId = None): """ Create a new object named `name` under `fatherItem` in the study, with the given attributes. If an object named `name` already exists under the father object, the new object is created with a new name `name_X` where X is the first available index. :type fatherItem: SObject :param fatherItem: item under which the new item will be added. :return: new SObject created in the study See :meth:`setItem` for the description of the other parameters. """ aSObject = self.builder.NewObject(fatherItem) aChildIterator = self.study.NewChildIterator(fatherItem) aMaxId = -1 aLength = len(name) aDelim = "_" anIdRE = re.compile("^" + aDelim + "[0-9]+") aNameRE = re.compile("^" + name) while aChildIterator.More(): aSObj = aChildIterator.Value() aChildIterator.Next() aName = aSObj.GetName() if re.match(aNameRE,aName): aTmp = aName[aLength:] if re.match(anIdRE,aTmp): import string anId = string.atol(aTmp[1:]) if aMaxId < anId: aMaxId = anId pass pass elif aMaxId < 0: aMaxId = 0 pass pass pass aMaxId = aMaxId + 1 aName = name if aMaxId > 0: aName = aName + aDelim + str(aMaxId) pass self.setItem(aSObject, aName, fileType, fileName, comment, icon, IOR, typeId) return aSObject def setItem(self, item, name = None, fileType = None, fileName = None, comment = None, icon = None, IOR = None, typeId = None): """ Modify the attributes of an item in the study. Unspecified attributes (i.e. those set to :const:`None`) are left unchanged. :type item: SObject :param item: item to modify. :type name: string :param name: item name (attribute 'AttributeName'). :type fileType: string :param fileType: item file type (attribute 'AttributeFileType'). :type fileName: string :param fileName: item file name (attribute 'AttributeExternalFileDef'). :type comment: string :param comment: item comment (attribute 'AttributeComment'). Note that this attribute will appear in the 'Value' column in the object browser. :type icon: string :param icon: item icon name (attribute 'AttributePixMap'). :type IOR: string :param IOR: IOR of a CORBA object associated with the item (attribute 'AttributeIOR'). :type typeId: integer :param typeId: item type (attribute 'AttributeLocalID'). """ logger.debug("setItem (ID=%s): name=%s, fileType=%s, fileName=%s, " "comment=%s, icon=%s, IOR=%s" % (item.GetID(), name, fileType, fileName, comment, icon, IOR)) # Explicit cast is necessary for unicode to string conversion if name is not None: self.builder.SetName(item, str(name)) if fileType is not None: self.setFileType(item, fileType) if fileName is not None: self.setFileName(item, fileName) if comment is not None: self.builder.SetComment(item, str(comment)) if icon is not None: self.setIcon(item, icon) if IOR is not None: self.builder.SetIOR(item, str(IOR)) if typeId is not None: self.setTypeId(item, typeId) def removeItem(self, item, withChildren = False ): """ Remove the given item from the study. Note that the items are never really deleted. They just don't appear in the study anymore. :type item: SObject :param item: the item to be removed :type withChildren: boolean :param withChildren: if :const:`True`, also remove the children of `item` :return: :const:`True` if the item was removed successfully, or :const:`False` if an error happened. """ ok = False try: if withChildren: self.builder.RemoveObjectWithChildren(item) else: self.builder.RemoveObject(item) ok = True except: ok = False return ok def setItemAtTag(self, fatherItem, tag, name = None, fileType = None, fileName = None, comment = None, icon = None, IOR = None, typeId = None): """ Find an item tagged `tag` under `fatherItem` in the study tree or create it if there is none, then set its attributes. :type fatherItem: SObject :param fatherItem: item under which the tagged item will be looked for and eventually created. :type tag: integer :param tag: tag of the item to look for. :return: the SObject at `tag` if found or created successfully, or :const:`None` if an error happened. See :meth:`setItem` for the description of the other parameters. """ found, sObj = fatherItem.FindSubObject(tag) if not found: sObj = self.builder.NewObjectToTag(fatherItem, tag) self.setItem(sObj, name, fileType, fileName, comment, icon, IOR, typeId) return sObj def getAttributeValue(self, sObject, attributeName, default = None): """ Return the value of the attribute named `attributeName` on the object `sObject`, or `default` if the attribute doesn't exist. """ value = default found, attr = self.builder.FindAttribute(sObject, attributeName) if found: value = attr.Value() return value def setAttributeValue(self, sObject, attributeName, attributeValue): """ Set the value of the attribute named `attributeName` on the object `sObject` to the value `attributeValue`. """ attr = self.builder.FindOrCreateAttribute(sObject, attributeName) attr.SetValue(attributeValue) def getTypeId(self, sObject): """ Return the value of the attribute "AttributeLocalID" of the object `sObject`, or :const:`None` if it is not set. """ return self.getAttributeValue(sObject, "AttributeLocalID") def setTypeId(self, sObject, value): """ Set the attribute "AttributeLocalID" of the object `sObject` to the value `value`. """ self.setAttributeValue(sObject, "AttributeLocalID", value) def getFileType(self, sObject): """ Return the value of the attribute "AttributeFileType" of the object `sObject`, or an empty string if it is not set. """ return self.getAttributeValue(sObject, "AttributeFileType", "") def setFileType(self, sObject, value): """ Set the attribute "AttributeFileType" of the object `sObject` to the value `value`. """ # Explicit cast is necessary for unicode to string conversion self.setAttributeValue(sObject, "AttributeFileType", str(value)) def getFileName(self, sObject): """ Return the value of the attribute "AttributeExternalFileDef" of the object `sObject`, or an empty string if it is not set. """ return self.getAttributeValue(sObject, "AttributeExternalFileDef", "") def setFileName(self, sObject, value): """ Set the attribute "AttributeExternalFileDef" of the object `sObject` to the value `value`. """ # Explicit cast is necessary for unicode to string conversion self.setAttributeValue(sObject, "AttributeExternalFileDef", str(value)) def getIcon(self, sObject): """ Return the value of the attribute "AttributePixMap" of the object `sObject`, or an empty string if it is not set. """ value = "" found, attr = self.builder.FindAttribute(sObject, "AttributePixMap") if found and attr.HasPixMap(): value = attr.GetPixMap() return value def setIcon(self, sObject, value): """ Set the attribute "AttributePixMap" of the object `sObject` to the value `value`. """ attr = self.builder.FindOrCreateAttribute(sObject, "AttributePixMap") # Explicit cast is necessary for unicode to string conversion attr.SetPixMap(str(value)) salome-kernel-6.5.0/src/KERNEL_PY/kernel/syshelper.py000077500000000000000000000071531177004724000223220ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$21 mai 2010 18:00:23$" def findFiles(rootpath, excludes=[]): """ This looks after files recursively from the specified rootpath, but without visiting directories whose basename is in the list @param excludes. """ if not os.path.exists(rootpath): raise RuntimeError("the path %s does not exists"%rootpath) exclude_options="" for excludepath in excludes: exclude_options+="-e %s "%excludepath listfiles=[] stream=os.popen("find %s -type f | grep -v -e '\.svn' %s 2>/dev/null"%(rootpath,exclude_options)) for line in stream.readlines(): listfiles.append(line.split('\n')[0]) return listfiles import sys from stat import ST_MODE, S_ISDIR, S_ISREG def walktree(rootpath, callback, **kwargs): ''' This recursively descends the directory tree rooted at rootpath, calling the callback function for each regular file ''' for f in os.listdir(rootpath): pathname = os.path.join(rootpath, f) try: mode = os.stat(pathname)[ST_MODE] except OSError, e: # It probably means that the file is a broken inode mode = -1 if S_ISDIR(mode): # It's a directory, recurse into it walktree(pathname, callback, **kwargs) elif S_ISREG(mode): # It's a file, call the callback function callback(pathname, **kwargs) else: # Unknown file type, print a message print 'Skipping %s' % pathname # # ============================================================= # Use cases and unit test functions # ============================================================= # import os try: TESTDOCDIR=os.path.join(os.environ["KERNEL_ROOT_DIR"],"share") except KeyError: TESTDOCDIR="/tmp" def TEST_findFiles(): print "########## find 1" rootpath=TESTDOCDIR listfiles=findFiles(rootpath) for filename in listfiles: print filename print "########## find 2" excludes=[os.path.join(TESTDOCDIR,"doc")] listfiles=findFiles(rootpath,excludes) for filename in listfiles: print filename return True # This is the test callback function def visitfile_withargs(file, rootid): print 'visiting file %s (rootid=%s)'%(file,str(rootid)) def visitfile_withoutargs(file): print 'visiting file %s'%(file) def TEST_walktree(): #walktree(TESTDOCDIR, visitfile_withargs, rootid=2) walktree(TESTDOCDIR, visitfile_withoutargs) return True if __name__ == "__main__": import unittester unittester.run("syshelper", "TEST_findFiles") unittester.run("syshelper", "TEST_walktree") salome-kernel-6.5.0/src/KERNEL_PY/kernel/termcolor.py000077500000000000000000000113111177004724000223010ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Author : Renaud Barate (EDF R&D) # Date : August 2009 # """ This module provides utility functions to display colored text in the terminal. It is based on ISO 6429 standard that defines control codes to change characters representation in color-capable ASCII terminals. In this module, colors are represented as lists of codes, so they can be added to obtain special effects (e.g. RED + GREEN_BG to display red text on green background). Several constants are defined for the most usual codes to facilitate the use of colors, but it is also possible to define colors directly from the corresponding code from ISO 6429 standard. In fact it is even necessary for less usual codes that don't have an associated constant (e.g. PURPLE + ['09'] can be used to display a crossed-out purple text). Example:: import sys from salome.kernel import termcolor if termcolor.canDisplayColor(sys.stdout): print termcolor.makeColoredMessage("Hello world!", termcolor.BLUE) else: print "Hello world!" """ # Constants for color codes DEFAULT = ['00'] """Default color for the terminal""" BOLD = ['01'] """Bold text and brighter colors""" UNDERLINED = ['04'] """Underlined text""" BLACK_FG = ['30'] """Black foreground""" RED_FG = ['31'] """Red foreground""" GREEN_FG = ['32'] """Green foreground""" YELLOW_FG = ['33'] """Yellow foreground""" BLUE_FG = ['34'] """Blue foreground""" PURPLE_FG = ['35'] """Purple foreground""" CYAN_FG = ['36'] """Cyan foreground""" WHITE_FG = ['37'] """White foreground""" BLACK_BG = ['40'] """Black background""" RED_BG = ['41'] """Red background""" GREEN_BG = ['42'] """Green background""" YELLOW_BG = ['43'] """Yellow background""" BLUE_BG = ['44'] """Blue background""" PURPLE_BG = ['45'] """Purple background""" CYAN_BG = ['46'] """Cyan background""" WHITE_BG = ['47'] """White background""" # Constants for common colored text BLACK = BLACK_FG """Black text (equivalent to BLACK_FG)""" RED = BOLD + RED_FG """Red text (equivalent to BOLD + RED_FG)""" GREEN = BOLD + GREEN_FG """Green text (equivalent to BOLD + GREEN_FG)""" YELLOW = BOLD + YELLOW_FG """Yellow text (equivalent to BOLD + YELLOW_FG)""" BLUE = BOLD + BLUE_FG """Blue text (equivalent to BOLD + BLUE_FG)""" PURPLE = BOLD + PURPLE_FG """Purple text (equivalent to BOLD + PURPLE_FG)""" CYAN = BOLD + CYAN_FG """Cyan text (equivalent to BOLD + CYAN_FG)""" WHITE = WHITE_FG """White text (equivalent to WHITE_FG)""" def canDisplayColor(stream): """ Return True if the stream can display colored text, False otherwise. """ return hasattr(stream, "isatty") and stream.isatty() def getControlSequence(color): """ Return the control sequence for the color in parameter, i.e. the string telling the terminal to display the following text in the given color. """ seq = "\x1b[" for i in range(len(color)): seq += color[i] if i < len(color)-1: seq += ";" seq += "m" return seq def makeColoredMessage(message, color): """ Return a string that can be used to display the message in parameter with the given color. """ return (getControlSequence(color) + str(message) + getControlSequence(DEFAULT)) def TEST_termcolor(): """Test function for termcolor module.""" import sys if not canDisplayColor(sys.stdout): print "Standard output does not support colors." return print makeColoredMessage("This message must appear in blue.", BLUE) print makeColoredMessage("This message must appear in red on green " + "background.", RED + GREEN_BG) print makeColoredMessage("This message must appear in magenta and " + "crossed-out.", PURPLE + ['09']) # Main function only used to test the module if __name__ == "__main__": TEST_termcolor() salome-kernel-6.5.0/src/KERNEL_PY/kernel/testdata.py000077500000000000000000000106021177004724000221060ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$17 avr. 2010 19:44:36$" from enumerate import Enumerate from datamodeler import DataModeler, TypeString, TypeInteger from salome.kernel import Callable class TestData(DataModeler): """ This class is the placeholder for meta data associated to a study case. The meta-data are used for organisation and indexing purposes """ TYPES_LIST=Enumerate([ 'SEP', 'OTHER' ]) def __init__(self): DataModeler.__init__(self) self.addAttribute( name = "NAME", type = TypeString, range = None ) self.addAttribute( name = "TYPE", type = TypeInteger, range = self.TYPES_LIST.listvalues() ) def setName(self, value): self.NAME = value def getName(self): return self.NAME def setType(self, value): self.TYPE = value def getType(self): return self.TYPE def getDefault(): """ Create a default instance of TestData @class-method """ testdata = TestData() testdata.NAME = "my case" testdata.TYPE = TestData.TYPES_LIST.SEP return testdata getDefault = Callable(getDefault) # # ============================================================================== # Basic use cases and unit tests # ============================================================================== # from uiexception import UiException def TEST_getName(): testdata = TestData() testdata.setName("Sous-epaisseur") testdata.setType(TestData.TYPES_LIST.SEP) if ( testdata.NAME != "Sous-epaisseur" ): return False return True def TEST_useBadKey(): testdata = TestData() try: testdata.unknown = "unknown" # This should not arrive here return False except UiException, err: print err return True def TEST_useBadType(): testdata = TestData() try: testdata.TYPE = "unknown" # This should not arrive here return False except UiException, err: print err return True def TEST_useBadRange(): testdata = TestData() try: testdata.TYPE = TestData.TYPES_LIST.SEP testdata.setType(TestData.TYPES_LIST.SEP) # This should arrive here except UiException, err: # And not here print err return False try: testdata.TYPE = 9999 # a type that does not exist in the range # This should not arrive here return False except UiException, err: print err return True def TEST_serialize(): import salome.kernel ref_testdata = TestData() ref_testdata.setName("The firts name") res_testdata = salome.kernel.unserialize(salome.kernel.serialize(ref_testdata)) print res_testdata.getName() if res_testdata.getName() != ref_testdata.getName(): return False # Is the unserialized data still functional? try: res_testdata.setName("An other name") print res_testdata.getName() except: print e return False return True if __name__ == "__main__": from unittester import run run("salome/kernel/testdata","TEST_getName") run("salome/kernel/testdata","TEST_useBadKey") run("salome/kernel/testdata","TEST_useBadType") run("salome/kernel/testdata","TEST_useBadRange") run("salome/kernel/testdata","TEST_serialize") salome-kernel-6.5.0/src/KERNEL_PY/kernel/threadhelper.py000077500000000000000000000270271177004724000227550ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$1 avr. 2010 18:12:38$" import time import threading # =========================================================================== class Runner(threading.Thread): """ This class provides a tool to run and drive a function in a dedicated thread. """ def __init__(self, functionToRun=None,*argv): threading.Thread.__init__( self ) self._stopevent = threading.Event() self.setFunction(functionToRun) self.setArguments(*argv) self._exception = None self._return = None self._observer = None self._callbackFunction = None # We create an id from the name and the time date in milliseconds self._id = functionToRun.__name__ +"/"+ str(time.time()) def setFunction(self,functionToRun): """ Positionne la fonction � ex�cuter. La fonction peut �tre la m�thode d'un objet pass�e sous la forme 'monobjet.mamethode'. """ self.clear() self._function = functionToRun def setArguments(self,*argv): """ Positionne les arguments � passer � la fonction """ self.clear() self._argv = argv def getReturn(self): """ Retourne le resultat de la fonction. En cas d'erreur, on r�cup�rera l'exception lev�e au moyen de la m�thode getException(). """ return self._return def setCallbackFunction(self, callbackFunction): self._callbackFunction = callbackFunction def setObserver(self, observerToNotify): """ Permet de sp�cifier un observateur � notifier en fin d'ex�cution. L'observateur est suppos� �tre un objet qui impl�mente une m�thode processNotification() """ try: observerToNotify.processNotification except AttributeError: raise DevelException("The observer should implement the method processNotification()") self._observer = observerToNotify def run(self): """ Ex�cution de la fonction. Impl�mentation de la m�thode run d�clench�e par l'appel � Thread.start(). """ print "##################### threadhelper.run" if self._function is None: return try: self._return = self._function(*self._argv) except Exception, e: print e self._exception = e self._stopevent.set() self.notifyObserver() self.callback() # _GBO_ Maybe it's no use to have both observers and a callback function. # One of the two mechanism should be sufficient def notifyObserver(self): if self._observer is None: # Aucune notification pr�vue return try: self._observer.processNotification() except AttributeError, att: if str(att) == "processNotification": print "L'observateur n'impl�mente pas la m�thode processNotification()" else: print "La fonction processNotification() a lev� une exception:" print att except Exception, e: print "La fonction processNotification() a lev� une exception:" print e def callback(self): if self._callbackFunction is None: return self._callbackFunction() def isEnded(self): """ Retourne true si la fonction s'est termin�e naturellement (correctement ou en erreur). Utile pour les client qui pratique le pooling (interrogation r�p�t�e � intervalle r�gulier. """ return self._stopevent.isSet() # _GBO_ On n'utilise pas isAlive() pour pouvoir ma�triser # l'indicateur de stop (exemple de la fonction kill) # return not self.isAlive() def getException(self): return self._exception def getId(self): return self._id def wait(self,timeout=None): """ Met fin au thread apr�s timeout seconde s'il est encore en ex�cution. Si le compte-�-rebours est atteind sans que la fonction functionToRun soit termin�e, alors le runner est laiss� dans l'�tat 'not Ended', c'est-�-dire que isEnded retourne false. On peut ainsi distinguer l'arr�t normal de l'arr�t � l'issue du timeout. """ threading.Thread.join(self, timeout) def kill(self,message="Arr�t demand�"): """ Cette m�thode doit �tre appeler pour interrombre le thread. Cet appel d�clare le thread comme en erreur (exception mise � disposition par la m�thode getException(). """ # On cr�e un exception indiquant la demande d'interruption self._exception = Exception(message) self._stopevent.set() # _GBO_ ATTENTION # Un thread python ne peut pas en r�alit� �tre int�rrompu. # La fonction reste donc en ex�cution m�me si on a rejoint le # thread appelant. def clear(self): self._stopevent.clear() self._exception = None self._return = None # =========================================================================== CONTINUE=1 STOP=0 class PeriodicTimer( threading.Thread ): """ Cette classe permet d'amorcer un compte-�-rebours p�riodique pour op�rer un m�canisme de pooling. On d�finit la fonction appell�e p�riodiquement et la fonction terminale. """ def __init__( self, loopdelay, initdelay=0, periodic_action=None, ended_action=None, *ended_argv ): if periodic_action is None: self._periodic_action = self.defaultPeriodicAction else: self._periodic_action = periodic_action self._ended_action = ended_action self._loopdelay = loopdelay self._initdelay = initdelay self._running = CONTINUE self._ended_argv = ended_argv threading.Thread.__init__( self ) def defaultPeriodicAction(): """ Les fonctions 'periodicAction' retournent CONTINU ou STOP apr�s avoir ex�cut� l'action de fin de boucle. Si STOP est retourn�, le cycle est interrompu. """ return CONTINU def run( self ): if self._initdelay: time.sleep( self._initdelay ) self._runtime = time.time() while self._running == CONTINUE: start = time.time() self._running = self._periodic_action() self._runtime += self._loopdelay time.sleep( max( 0, self._runtime - start ) ) if self._ended_action is not None: self._ended_action( *self._ended_argv ) def stop( self ): self._running = STOP # # ====================================================== # Fonctions de test unitaire # ====================================================== # # ====================================================== import os testfilename="/tmp/threadhelperTestFile" def testIfContinue(): print "On examine la pr�sence du fichier ", testfilename if os.path.exists(testfilename): return STOP else: return CONTINUE def endedAction(): print "FINI" def TEST_PeriodicTimer(): periodicTimer=PeriodicTimer(1,0,testIfContinue, endedAction) periodicTimer.start() # ====================================================== def function_ok(nbsteps=5): """ Fonction qui se termine correctement """ print "D�but" cnt=0 while ( cnt < nbsteps ): print "Etape ", cnt time.sleep(0.6) cnt+=1 print "Fin" def function_with_exception(): """ Fonction qui aboutie � une lev�e d'exception """ print "D�but" cnt=0 while ( cnt < 5 ): print "Etape ", cnt time.sleep(1) cnt+=1 raise Exception("erreur d'ex�cution de la fonction") print "Fin" def infinite_function(): """ fonction de dur�e infinie (tant qu'il y a du courant �l�ctrique) pour le test du timeout. """ print "D�but" cnt=0 while ( 1 ): print "Etape ", cnt time.sleep(1) cnt+=1 raise Exception("erreur") print "Fin" def runWithRunner(functionToRun): """ Ex�cute la fonction avec le runner. On illustre ici la modalit� d'utilisation du Runner. """ print "###########" runner = Runner(functionToRun) runner.start() while ( not runner.isEnded() ): print "La fonction est en cours" time.sleep(0.2) e = runner.getException() if e is not None: print "La fonction s'est termin�e en erreur" print e # On peut en fait la relancer # raise e else: print "La fonction s'est termin�e correctement" def runWithTimeout(functionToRun, timeout=10): """ Ex�cute la fonction avec le runner. On illustre ici la modalit� d'utilisation du Runner. """ print "runWithTimeout : DEBUT" runner = Runner(functionToRun) runner.start() # On se fixe un temps au del� duquel on consid�re que la fonction # est en erreur => on tue le thread (timeout) runner.wait(timeout) print "Apr�s runner.timeout(timeout)" if not runner.isEnded(): runner.kill() e = runner.getException() if e is not None: print "La fonction s'est termin�e en erreur" print e # On peut en fait la relancer # raise e else: print "La fonction s'est termin�e correctement" print "runWithTimeout : FIN" import sys sys.exit(0) def TEST_Timeout(): #runWithTimeout(function_ok) #runWithTimeout(function_ok,2) runWithTimeout(function_with_exception) def TEST_Runner(): runWithRunner(function_ok) runWithRunner(function_with_exception) #runWithRunner(infinite_function) def myCallbackFunction(): print "myCallbackFunction: the job is ended" def TEST_runWithCallback(): runner = Runner(function_ok,8) runner.setCallbackFunction(myCallbackFunction) runner.start() if runner.getException() is not None: return False runnerId = runner.getId() print "A runner has been started with id="+str(runnerId) cpt = 0 while ( not runner.isEnded() ): print "Waiting notification from process "+str(runner.getId())+", step n°"+str(cpt) time.sleep(0.2) cpt+=1 return True if __name__ == "__main__": import unittester #TEST_PeriodicTimer() #TEST_Runner() #TEST_Timeout() unittester.run("threadhelper","TEST_runWithCallback") salome-kernel-6.5.0/src/KERNEL_PY/kernel/uiexception.py000077500000000000000000000065511177004724000226410ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$31 mars 2010 11:59:33$" from enumerate import Enumerate class UiException(Exception): TYPES = Enumerate([ 'USER', # This type should be displayed to end user using a dialog box 'ADMIN', # This type should be displayed to admin user in console log 'DEVEL' # This type should be displayed to developer only ]) _UImessage = "An error occurs" _type = TYPES.USER """ This exception should be used for functionnal error management, at least in the GUI part of the application, for example to set user oriented messages at point of exception raise. WARN: The exception should NOT be used to hide defaults in the algorithm, but only predicted error in the specified use case. """ def __init__(self, message, type=TYPES.USER): """Canonical constructor""" Exception.__init__(self,message) self.setUIMessage(message) self.setType(type) def setUIMessage(self, UImessage): self._UImessage = UImessage def getUIMessage(self): return self._UImessage def setType(self, type): """Specify the type of this exception. To be choosen in the TYPES list.""" if not self.TYPES.isValid(type): raise UiException("The exception type "+str(type)+" can't be used",self.TYPES.DEVEL) self._type = type def getType(self): return self._type def __str__(self): return self.getUIMessage() def UserException(msg): return UiException(msg,UiException.TYPES.USER) def AdminException(msg): return UiException(msg,UiException.TYPES.ADMIN) def DevelException(msg): return UiException(msg,UiException.TYPES.DEVEL) # # ============================================================================== # Basic use cases and unit test functions # ============================================================================== # def somethingGoesWrong(): raise UiException("Something goes wrong") def TEST_uimessage(): try: somethingGoesWrong() return False except UiException, err: print 'ERROR: %s' % str(err) if ( str(err) == "Something goes wrong" ): return True else: return False def TEST_specificException(): print DevelException("err") print AdminException("err") print UserException("err") return True if __name__ == "__main__": import unittester unittester.run("uiexception","TEST_uimessage") unittester.run("uiexception","TEST_specificException") salome-kernel-6.5.0/src/KERNEL_PY/kernel/unittester.py000077500000000000000000000050541177004724000225100ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # __author__="gboulant" __date__ ="$1 avr. 2010 09:45:21$" import sys def run(modulePath, functionName): """ This function should be used for very basic unit tests and only for a rapid development. A better way should be the pyunit framework. The function functionName is supposed here to return a boolean value indicating if the test is OK (True) or NOT OK (False) """ moduleName = modulePath.replace('/','.') __import__ (moduleName) module=sys.modules[moduleName] func = getattr(module,functionName) tabsize = 70-len(moduleName)-len(functionName) print "[TEST] %s.%s %s test in progress" % (moduleName, functionName,"."*tabsize) ok = func() if ( ok ): print "[TEST] %s.%s %s OK" % (moduleName, functionName,"."*tabsize) else: print "[TEST] %s.%s %s NOT OK" % (moduleName, functionName,"."*tabsize) def tryfunction(function,*argv): """ This function is for debug only. It executes the specified function with the specified arguments in a try/except bloc so that to display the exception in the case where an exception is raised (usefull to debug server side of a CORBA process). """ print "[TEST] trying the function %s" % function try: return function(*argv) except Exception, e: print e raise e # # ============================================================================== # Simple use cases # ============================================================================== # def TEST_myTestIsOk(): return True def TEST_myTestIsNotOk(): return False if __name__ == "__main__": run("salome/kernel/unittester","TEST_myTestIsOk") run("salome/kernel/unittester","TEST_myTestIsNotOk") salome-kernel-6.5.0/src/KERNEL_PY/kernel_shared_modules.py000077500000000000000000000031211177004724000233510ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ """ import import_hook import glob,os,sys,string,imp from import_hook import register_name from import_hook import register_pattern register_name("qt") register_name("libSALOME_LifeCycleCORBA") register_pattern(lambda(x):x.endswith("_idl")) register_pattern(lambda(x):x.endswith("_Swig")) register_name("omniORB") register_name("CORBA") register_name("CosNaming") register_name("CosNaming__POA") register_name("omnipatch") import omniORB from omniORB import CORBA import CosNaming import CosNaming__POA import omnipatch def init_shared_modules(): """ This function initializes shared modules that need to be """ salome-kernel-6.5.0/src/KERNEL_PY/omnipatch.py000077500000000000000000000100421177004724000207750ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ This patch of omniORB is made to make it work with multiple interpreters and to correct the problem of incomplete import of CORBA packages in some situations common in SALOME This patch add or modify functions in omniORB module. In multiple interpreters context, omniORB module is meant to be shared among all interpreters """ import sys,string,imp import omniORB # Map of partially-opened modules _partialModules = {} # Map of modules to share shared_imported={} # Function to return a Python module for the required IDL module name def openModule(mname, fname=None): # Salome modification start # Be sure to use the right module dictionnary import sys # Salome modification end if mname == "CORBA": mod = sys.modules["omniORB.CORBA"] # Salome modification start shared_imported[mname]=mod # Salome modification end elif sys.modules.has_key(mname): mod = sys.modules[mname] if _partialModules.has_key(mname): pmod = _partialModules[mname] mod.__dict__.update(pmod.__dict__) del _partialModules[mname] # Salome modification start shared_imported[mname]=mod # Salome modification end elif _partialModules.has_key(mname): mod = _partialModules[mname] # Salome modification start elif shared_imported.get(mname) : mod = shared_imported[mname] # Salome modification end else: mod = newModule(mname) if not hasattr(mod, "__doc__") or mod.__doc__ is None: mod.__doc__ = "omniORB IDL module " + mname + "\n\n" + \ "Generated from:\n\n" if fname is not None: mod.__doc__ = mod.__doc__ + " " + fname + "\n" return mod # Function to create a new module, and any parent modules which do not # already exist def newModule(mname): # Salome modification start # Be sure to use the right module dictionnary import sys # Salome modification end mlist = string.split(mname, ".") current = "" mod = None for name in mlist: current = current + name if sys.modules.has_key(current): mod = sys.modules[current] elif _partialModules.has_key(current): mod = _partialModules[current] else: newmod = imp.new_module(current) if mod: setattr(mod, name, newmod) _partialModules[current] = mod = newmod current = current + "." return mod # Function to update a module with the partial module store in the # partial module map def updateModule(mname): # Salome modification start # Be sure to use the right module dictionnary import sys # Salome modification end if _partialModules.has_key(mname): pmod = _partialModules[mname] mod = sys.modules[mname] mod.__dict__.update(pmod.__dict__) del _partialModules[mname] # Salome modification start shared_imported[mname]=sys.modules[mname] # Salome modification end omniORB.updateModule=updateModule omniORB.newModule=newModule omniORB.openModule=openModule salome-kernel-6.5.0/src/KERNEL_PY/salome_ComponentGUI.py000077500000000000000000000042571177004724000226750ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/salome_ComponentGUI.py,v 1.4.2.2.14.3.12.1 2012-04-12 14:05:13 vsr Exp $ # to replace some function from _SWIG, outside GUI # --- From GeometryGUI_SWIG #-------------------------------------------------------------------------- # def getIndexTopology(aSubId, aMainId): return 0 #-------------------------------------------------------------------------- def getShapeTypeString(aSubId): return "SubShape" #-------------------------------------------------------------------------- def createAndDisplayGO( *args, **kwargs ): pass #-------------------------------------------------------------------------- def UpdateViewer(): pass #-------------------------------------------------------------------------- # --- From SMESHGUI_SWIG #-------------------------------------------------------------------------- def Init(studyId): return #-------------------------------------------------------------------------- def SetName(objId, name): return #-------------------------------------------------------------------------- salome-kernel-6.5.0/src/KERNEL_PY/salome_genericobj.py000077500000000000000000000031431177004724000224660ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ When imported this module adds to CORBA objref from GenericObj type automatic management of reference count The reference count is incremented when the local proxy is created (assignment of __omni_obj attribute) and is decremented when the local proxy is deleted (call of __del__) The GenericObj class for proxy is modified by adding two methods : __del__ and __setattr__ The module must be imported before any other import of SALOME CORBA module """ import omniORB import SALOME def mydel(self): self.UnRegister() omniORB.CORBA.Object.__del__(self) def mysetattr(self,attr,value): self.__dict__[attr]=value if attr == "__omni_obj": self.Register() SALOME._objref_GenericObj.__del__=mydel SALOME._objref_GenericObj.__setattr__=mysetattr salome-kernel-6.5.0/src/KERNEL_PY/salome_iapp.py000077500000000000000000000136131177004724000213130ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_iapp.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/salome_iapp.py,v 1.6.2.3.14.2.12.1 2012-04-12 14:05:13 vsr Exp $ ## @package salome_iapp # Module salome gives access to Salome GUI ressources (if GUI has been launched). # import salome_ComponentGUI #-------------------------------------------------------------------------- IN_SALOME_GUI=0 def ImportComponentGUI(ComponentName): if IN_SALOME_GUI: libName = "lib" + ComponentName + "_Swig" command = "from " + libName + " import *" exec ( command ) constructor = ComponentName + "_Swig()" command = "gui = " + constructor exec ( command ) return gui else: print "Warning: ImportComponentGUI(",ComponentName,") outside GUI !" print "calls to GUI methods may crash..." return salome_ComponentGUI #-------------------------------------------------------------------------- def SalomeGUIgetAllSelected(self): selNumber = self.SelectedCount() listSelected = [] for i in range(selNumber): listSelected.append(self.getSelected(i)) return listSelected #-------------------------------------------------------------------------- def hasDesktop(): return IN_SALOME_GUI #-------------------------------------------------------------------------- salome_iapp_initial = 1 class SalomeOutsideGUI(object): """ Provides a replacement for class SalomeGUI outside GUI process. Do almost nothing """ global myStudyId, myStudyName def hasDesktop(self): """Indicate if GUI is running""" return False def updateObjBrowser(self, bid): """update the GUI object browser""" print "SalomeOutsideGUI: no objectBrowser update outside GUI" pass def getActiveStudyId(self): """Get the active study id""" print "SalomeOutsideGUI.getActiveStudyId: avoid use outside GUI" return myStudyId def getActiveStudyName(self): """Get the active study name""" print "SalomeOutsideGUI.getActiveStudyName: avoid use outside GUI" return myStudyName def SelectedCount(self): """Get the number of active selections""" print "SalomeOutsideGUI: no selection mecanism available outside GUI" return 0 def getSelected(self, i): """Get the selection number i """ print "SalomeOutsideGUI: no selection mecanism available outside GUI" return none def AddIObject(self, Entry): """Add an entry""" print "SalomeOutsideGUI.AddIOObject: not available outside GUI" pass def RemoveIObject(self, Entry): """Remove an entry""" print "SalomeOutsideGUI.REmoveIOObject: not available outside GUI" pass def ClearIObjects(self): """Clear entries""" print "SalomeOutsideGUI.ClearIOObject: not available outside GUI" pass def Display(self, Entry): """Display an entry""" print "SalomeOutsideGUI.Display: not available outside GUI" pass def DisplayOnly(self, Entry): """Display only an entry""" print "SalomeOutsideGUI.DisplayOnly: not available outside GUI" pass def Erase(self, Entry): """Erase en entry""" print "SalomeOutsideGUI.Erase: not available outside GUI" pass def DisplayAll(self): """Display all""" print "SalomeOutsideGUI.Erase: not available outside GUI" pass def EraseAll(self): """Erase all""" print "SalomeOutsideGUI.EraseAll: not available outside GUI" pass def IsInCurrentView(self, Entry): """Indicate if an entry is in current view""" print "SalomeOutsideGUI.IsIncurentView: not available outside GUI" return False def getComponentName(self, ComponentUserName ): """Get component name from component user name""" print "SalomeOutsideGUI.getComponentName: not available outside GUI" return "" def getComponentUserName( self, ComponentName ): """Get component user name from component name""" print "SalomeOutsideGUI.getComponentUserName: not available outside GUI" return "" #-------------------------------------------------------------------------- def salome_iapp_init(embedded): global salome_iapp_initial global sg,IN_SALOME_GUI if salome_iapp_initial: salome_iapp_initial=0 if embedded: import libSALOME_Swig class SalomeGUI(libSALOME_Swig.SALOMEGUI_Swig): getAllSelected = SalomeGUIgetAllSelected # create a SALOMEGUI_Swig instance sg = SalomeGUI() IN_SALOME_GUI = sg.hasDesktop() else: # Not embedded in GUI sg=SalomeOutsideGUI() IN_SALOME_GUI=0 return sg salome-kernel-6.5.0/src/KERNEL_PY/salome_kernel.py000077500000000000000000000036571177004724000216510ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_kernel.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/salome_kernel.py,v 1.4.2.2.14.2.12.1 2012-04-12 14:05:13 vsr Exp $ # from omniORB import CORBA from LifeCycleCORBA import * from SALOME_NamingServicePy import * from SALOME_utilities import * import Engines salome_kernel_initial=1 def salome_kernel_init(): global salome_kernel_initial global orb, lcc, naming_service, cm if salome_kernel_initial: salome_kernel_initial = 0 # initialise the ORB orb = CORBA.ORB_init([''], CORBA.ORB_ID) # create a LifeCycleCORBA instance lcc = LifeCycleCORBA(orb) #create a naming service instance naming_service = SALOME_NamingServicePy_i(orb) # get Container Manager obj = naming_service.Resolve('/ContainerManager') cm = obj._narrow(Engines.ContainerManager) return orb, lcc, naming_service, cm salome-kernel-6.5.0/src/KERNEL_PY/salome_notebook.py000077500000000000000000000126161177004724000222040ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_notebook.py # Author : Roman NIKOLAEV, Open CASCADE S.A.S. # Module : SALOME # $Header: # """ Module salome_notebook gives access to Salome Notebook. """ import salome class PseudoStudyForNoteBook(object): def __init__(self, **kwargs): self.kwargs = kwargs pass def GetVariableNames(self): return self.kwargs.keys() def IsVariable(self, variableName): return variableName in self.kwargs def IsReal(self, variableName): val = self.kwargs[variableName] try: float(val) return True except: pass return False IsInteger = IsReal IsBoolean = IsReal def IsString(self, variableName): return not self.IsReal(variableName) def GetString(self, variableName): return self.kwargs[variableName] def GetReal(self, variableName): return float(self.kwargs[variableName]) GetInteger = GetReal GetBoolean = GetReal pass class NoteBook: def __init__(self, Study): self.myStudy = Study def set(self, variableName, variable): """ Create (or modify) variable with name "variableName" and value equal "theValue". """ if type(variable) == float: self.myStudy.SetReal(variableName, variable) elif type(variable) == int: self.myStudy.SetInteger(variableName, variable) elif type(variable) == bool: self.myStudy.SetBoolean(variableName, variable) elif type(variable) == str: self.myStudy.SetString(variableName, variable) def get(self, variableName): """ Return value of the variable with name "variableName". """ aResult = None if self.myStudy.IsVariable(variableName): if self.myStudy.IsReal(variableName): aResult = self.myStudy.GetReal(variableName) elif self.myStudy.IsInteger(variableName): aResult = self.myStudy.GetInteger(variableName) elif self.myStudy.IsBoolean(variableName): aResult = self.myStudy.GetBoolean(variableName) elif self.myStudy.IsString(variableName): aResult = self.myStudy.GetString(variableName) aResult_orig = aResult l = self.myStudy.GetVariableNames() l.remove(variableName) # -- # To avoid the smallest strings to be replaced first, # the list is sorted by decreasing lengths # -- l.sort(key=str.__len__) l.reverse() for name in l: if aResult.find(name) >= 0: val = self.get(name) aResult = aResult.replace(name, "%s"%(val)) pass pass try: aResult = eval(aResult) except Exception, e: msg = str(e) msg += "\n" msg += "A problem occurs while parsing " msg += "the variable %s "%(variableName.__repr__()) msg += "with value %s ..."%(aResult_orig.__repr__()) msg += "\n" msg += "Please, check your notebook !" raise Exception(msg) pass return aResult def isVariable(self, variableName): """ Return true if variable with name "variableName" exists in the study, otherwise return false. """ return self.myStudy.IsVariable(variableName) def setAs(self, variableName, typ): value = self.get(variableName) value = float(typ(value)) self.myStudy.SetStringAsDouble(variableName, value) return def setAsReal(self, variableName): self.setAs(variableName, float) return def setAsInteger(self, variableName): self.setAs(variableName, int) return def setAsBool(self, variableName): self.setAs(variableName, bool) return def check(self): for variableName in self.myStudy.GetVariableNames(): self.get(variableName) pass return pass def checkThisNoteBook(**kwargs): study = PseudoStudyForNoteBook(**kwargs) note_book = NoteBook(study) note_book.check() return notebook = NoteBook(salome.myStudy) salome-kernel-6.5.0/src/KERNEL_PY/salome_pynode.py000077500000000000000000000052211177004724000216540ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_pynode.py # Author : Christian CAREMOLI, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/Attic/salome_pynode.py,v 1.1.2.1.14.3.12.1 2012-04-12 14:05:13 vsr Exp $ # """ When imported this module adds to CORBA proxy (from PyNode type) automatic pickle and unpickle of arguments and results when calling execute method. It also converts the SALOME exception into a standard python exception """ import omniORB import cPickle import SALOME import Engines class SmartPyNode(Engines._objref_PyNode): def __init__(self): Engines._objref_PyNode.__init__(self) def execute(self,functionName,*args,**kws): try: args=cPickle.dumps((args,kws),-1) results=Engines._objref_PyNode.execute(self,functionName,args) x=cPickle.loads(results) return x except SALOME.SALOME_Exception, e: raise ValueError(e.details.text) def __getattr__(self,name): """ a trick to be able to call directly a remote method by its name : no need to use execute""" if name[0]== '_': raise AttributeError, name def afunc(*args,**kws): return self.execute(name,*args,**kws) return afunc class SmartPyScriptNode(Engines._objref_PyScriptNode): def __init__(self): Engines._objref_PyScriptNode.__init__(self) def execute(self,outargsname,*args,**kws): #the tuple args are ignored try: args=cPickle.dumps(((),kws),-1) results=Engines._objref_PyScriptNode.execute(self,outargsname,args) x=cPickle.loads(results) return x except SALOME.SALOME_Exception, e: raise ValueError(e.details.text) #Register the new proxy for PyNode omniORB.registerObjref(Engines._objref_PyNode._NP_RepositoryId, SmartPyNode) #Register the new proxy for PyScriptNode omniORB.registerObjref(Engines._objref_PyScriptNode._NP_RepositoryId, SmartPyScriptNode) salome-kernel-6.5.0/src/KERNEL_PY/salome_shared_modules.py000077500000000000000000000076561177004724000233720ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_shared_modules.py # Module : SALOME # """ This module with help of import_hook and *_shared_modules filters imports when using the embedded Python interpretor. Some imports can't be done more than once. This is related to the multi study feature that is implemented by using the Python multi interpreter feature. Some modules register objects or classes by calling modules implemented in C. These operations can't be done multiple times. So it's very important to control these imports. Examples: - PyQt : import qt calls a C module to register classes - OmniORB : import *_idl calls a C module to register CORBA interfaces Usage: - First : the module salome_shared_modules is imported by main Python interpretor. It will keep a dictionnary and a list that are shared among all the subinterpretors and imports import_hook module that replaces the standard import mechanism par one that prevents more than one import for some modules identified by name (call register_name) or by a validator (call register_pattern). Calls to register_name and register_pattern are done in modules named *_shared_modules that could be found in the path SALOMEPATH """ import glob,os,sys import import_hook # shared_imported, patterns, register_name, register_pattern # will be shared by all Python sub interpretors from import_hook import patterns from import_hook import register_name from import_hook import register_pattern register_name("salome_shared_modules") register_name("omniORB") register_name("omnipatch") register_pattern(lambda(x):x.endswith("_idl")) register_pattern(lambda(x):x.startswith("omniORB.")) from omnipatch import shared_imported shared_imported.update(import_hook.shared_imported) import_hook.shared_imported=shared_imported # Get the SALOMEPATH if set or else use KERNEL_ROOT_DIR that should be set. salome_path=os.environ.get("SALOMEPATH",os.getenv("KERNEL_ROOT_DIR")) list_modules=[] # Import all *_shared_modules in the path and store them in list_modules splitter = ":" if sys.platform == "win32": splitter = ";" path=salome_path.split(splitter) import platform libdir = "lib" for rep in path: # Import all *_shared_modules in rep for f in glob.glob(os.path.join(rep,libdir,"python"+sys.version[:3],"site-packages","salome","shared_modules","*_shared_modules.py")): try: name=os.path.splitext(os.path.basename(f))[0] register_name(name) #print name + " REGISTERED" m=__import__(name) #print name + " IMPORTED" list_modules.append(m) except: print "Exception during register and import shared module" pass # # If shared modules have been imported before installing import mechanism # we add them to shared_imported # for name,module in sys.modules.items(): if module and import_hook.is_shared(name) and not shared_imported.has_key(name): #print "Module shared added to shared_imported: ",name shared_imported[name]=module salome-kernel-6.5.0/src/KERNEL_PY/salome_study.py000077500000000000000000000312641177004724000215340ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_study.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KERNEL_PY/salome_study.py,v 1.6.2.2.14.4.12.1 2012-04-12 14:05:13 vsr Exp $ # import salome_kernel import SALOMEDS import salome_iapp from launchConfigureParser import verbose #-------------------------------------------------------------------------- def DumpComponent(Study, SO, Builder,offset): it = Study.NewChildIterator(SO) while it.More(): CSO = it.Value() a=offset*"--" + ">" + CSO.GetID() find,AtName = Builder.FindAttribute(CSO, "AttributeName") if find: a=a+":"+AtName.Value() find,AtIOR = Builder.FindAttribute(CSO, "AttributeIOR") if find: a=a+":"+AtIOR.Value() find,RefSO = CSO.ReferencedObject() if find: a=a+":"+RefSO.GetID() print a DumpComponent(Study, CSO, Builder,offset+2) it.Next() #-------------------------------------------------------------------------- def DumpStudy(Study): """ Dump a study, given the ior """ itcomp = Study.NewComponentIterator() Builder = Study.NewBuilder() while itcomp.More(): SC = itcomp.Value() name = SC.ComponentDataType() print "-> ComponentDataType is " + name DumpComponent(Study, SC,Builder, 1) itcomp.Next() def DumpStudies(): """ Dump all studies in a StudyManager """ for name in myStudyManager.GetOpenStudies(): s=myStudyManager.GetStudyByName(name) print "study:",name, s._get_StudyId() DumpStudy(s) #-------------------------------------------------------------------------- def IDToObject(id): myObj = None mySO = myStudy.FindObjectID(id); if mySO is not None: ok, anAttr = mySO.FindAttribute("AttributeIOR") if ok: AtIOR = anAttr._narrow(SALOMEDS.AttributeIOR) if AtIOR.Value() != "": myObj = orb.string_to_object(AtIOR.Value()) return myObj def ObjectToSObject(obj): mySO = None if obj is not None: ior = orb.object_to_string(obj) if ior != "": mySO = myStudy.FindObjectIOR(ior) return mySO def ObjectToID(obj): mySO = ObjectToSObject(obj) if mySO: return mySO.GetID() return "" def IDToSObject(id): mySO = myStudy.FindObjectID(id); return mySO #-------------------------------------------------------------------------- def generateName(prefix = None): import random; int = random.randint(1,1000); if prefix is None: return "Study" + str(int) else : return prefix + str(int) #-------------------------------------------------------------------------- def PersistentPresentation(theStudy, theSO, theWithID): # put the sobject's content (with subchildren) to the string aResult = "" attrs = theSO.GetAllAttributes() aLen = len(attrs) anUncopied = 0 for a in range(0,aLen): attr = attrs[a] if isinstance(attr,SALOMEDS._objref_AttributeTreeNode): anUncopied += 1 elif isinstance(attr,SALOMEDS._objref_AttributeTarget): anUncopied += 1 elif isinstance(attr,SALOMEDS._objref_AttributeReal) or \ isinstance(attr,SALOMEDS._objref_AttributeInteger) or \ isinstance(attr,SALOMEDS._objref_AttributeName) or \ isinstance(attr,SALOMEDS._objref_AttributeComment) or \ isinstance(attr,SALOMEDS._objref_AttributePersistentRef) or \ isinstance(attr,SALOMEDS._objref_AttributeLocalID) or \ isinstance(attr,SALOMEDS._objref_AttributeUserID): aResult += " attribute value: " + str(attr.Value()) elif isinstance(attr,SALOMEDS._objref_AttributeIOR): aResult += " attribute: IOR" elif isinstance(attr,SALOMEDS._objref_AttributeSequenceOfReal) or \ isinstance(attr,SALOMEDS._objref_AttributeSequenceOfInteger): aResult += " Sequence: " + str(attr.CorbaSequence()) elif isinstance(attr,SALOMEDS._objref_AttributeDrawable): aResult += " Drawable: " + str(attr.IsDrawable()) elif isinstance(attr,SALOMEDS._objref_AttributeSelectable): aResult += " Selectable: " + str(attr.IsSelectable()) elif isinstance(attr,SALOMEDS._objref_AttributeExpandable): aResult += " Expandable: " + str(attr.IsExpandable()) elif isinstance(attr,SALOMEDS._objref_AttributeOpened): aResult += " Opened: " + str(attr.IsOpened()) elif isinstance(attr,SALOMEDS._objref_AttributeTextColor): aResult += " TextColor: " + str(attr.TextColor()) elif isinstance(attr,SALOMEDS._objref_AttributeTextHighlightColor): aResult += " TextHighlightColor: " + str(attr.TextHighlightColor()) elif isinstance(attr,SALOMEDS._objref_AttributePixMap): aResult += " PixMap: " + str(attr.GetPixMap()) elif isinstance(attr,SALOMEDS._objref_AttributeTableOfInteger) or \ isinstance(attr,SALOMEDS._objref_AttributeTableOfReal): aResult += " Table with title: " + attr.GetTitle() elif isinstance(attr,SALOMEDS._objref_AttributePythonObject): aResult += " PythonObject: " + attr.GetObject() if theWithID: aResult = "sobject: " + theSO.GetID() + " nbattrs: " + str(aLen - anUncopied) + aResult + '\n' else: aResult = " nbattrs: " + str(aLen - anUncopied) + aResult + '\n' anIter = theStudy.NewChildIterator(theSO) while anIter.More(): aResult += PersistentPresentation(theStudy, anIter.Value(), theWithID) anIter.Next() return aResult #-------------------------------------------------------------------------- def GetTree(theSO): # returns the document list tree (as list) aResult = [theSO.GetID()] anIter = myStudy.NewChildIterator(theSO) while anIter.More(): aResult += GetTree(anIter.Value()) anIter.Next() return aResult #-------------------------------------------------------------------------- def CheckCopyPaste(theSO, theInfo ,theComponentPaste): aRoot = theSO while aRoot.GetID() != "0:": aRoot = aRoot.GetFather() aTree = GetTree(aRoot) aStudyPersist = PersistentPresentation(myStudy, aRoot, 1) if not myStudyManager.CanCopy(theSO): raise RuntimeError, " for "+theInfo+" returns false" if not myStudyManager.Copy(theSO): raise RuntimeError, " for "+theInfo+" returns false" if not myStudyManager.CanPaste(theSO): raise RuntimeError, " for "+theInfo+" returns false" # check: before paste study is not changed check if aStudyPersist != PersistentPresentation(myStudy, aRoot, 1): raise RuntimeError, "Study is changed before Paste calling for "+theInfo aSObj = theSO if theComponentPaste: aSObj = theSO.GetFatherComponent() theInfo = theInfo + "(paste for component)" if myStudyManager.Paste(aSObj) == None: raise RuntimeError, " for "+theInfo+" returns None object" aNewTree = GetTree(aRoot) aLen = len(aTree) for a in range(0,aLen): if aTree[a] != aNewTree[a]: return myStudy.FindObjectID(aNewTree[a]) if aLen < len(aNewTree): return myStudy.FindObjectID(aNewTree[aLen]) raise RuntimeError, "After Copy calling the tree is not changed" #-------------------------------------------------------------------------- def FindFileInDataDir(filename): import os datadir = os.getenv("DATA_DIR") if datadir is not None: import string dirs = string.split(datadir, ":") for dir in dirs: file = dir + "/" + filename if os.path.exists(file): return file; datadir = os.getenv("KERNEL_ROOT_DIR") + "/examples/" file = datadir + filename if os.path.exists(file): return file; return None #-------------------------------------------------------------------------- salome_study_ID = -1 def getActiveStudy(theStudyId=0): global salome_study_ID if verbose(): print "getActiveStudy" if salome_study_ID == -1: if salome_iapp.hasDesktop(): if verbose(): print "---in gui" salome_study_ID = salome_iapp.sg.getActiveStudyId() else: if verbose(): print "---outside gui" if theStudyId: aStudy=myStudyManager.GetStudyByID(theStudyId) if aStudy: if verbose(): print "connection to existing study ", theStudyId salome_study_ID = theStudyId if salome_study_ID == -1: salome_study_ID = createNewStudy() if verbose(): print"--- Study Id ", salome_study_ID return salome_study_ID #-------------------------------------------------------------------------- def setCurrentStudy(theStudy): """ Change current study : an existing one given by a study object. :param theStudy: the study CORBA object to set as current study """ global myStudyId, myStudy, myStudyName global salome_study_ID myStudy=theStudy myStudyId=theStudy._get_StudyId() myStudyName=theStudy._get_Name() return myStudyId, myStudy, myStudyName #-------------------------------------------------------------------------- def setCurrentStudyId(theStudyId=0): """ Change current study : an existing or new one. optional argument : theStudyId 0 : create a new study (default). n (>0) : try connection to study with Id = n, or create a new one if study not found. """ global myStudyId, myStudy, myStudyName global salome_study_ID salome_study_ID = -1 myStudyId = getActiveStudy(theStudyId) if verbose(): print "myStudyId",myStudyId myStudy = myStudyManager.GetStudyByID(myStudyId) myStudyName = myStudy._get_Name() return myStudyId, myStudy, myStudyName #-------------------------------------------------------------------------- def createNewStudy(): print "createNewStudy" i=1 aStudyName = "noName" nameAlreadyInUse = 1 listOfOpenStudies = myStudyManager.GetOpenStudies() print listOfOpenStudies while nameAlreadyInUse: aStudyName = "extStudy_%d"%i if aStudyName not in listOfOpenStudies: nameAlreadyInUse=0 else: i = i+1 theStudy = myStudyManager.NewStudy(aStudyName) theStudyId = theStudy._get_StudyId() print aStudyName, theStudyId return theStudyId #-------------------------------------------------------------------------- salome_study_initial = 1 def salome_study_init(theStudyId=0): """ Performs only once study creation or connection. optional argument : theStudyId When in embedded interpreter inside IAPP, theStudyId is not used When used without GUI (external interpreter) 0 : create a new study (default). n (>0) : try connection to study with Id = n, or create a new one if study not found. """ global salome_study_initial global myStudyManager, myStudyId, myStudy, myStudyName global orb, lcc, naming_service, cm if salome_study_initial: salome_study_initial = 0 orb, lcc, naming_service, cm = salome_kernel.salome_kernel_init() # get Study Manager reference if verbose(): print "looking for studyManager ..." obj = naming_service.Resolve('myStudyManager') myStudyManager = obj._narrow(SALOMEDS.StudyManager) if verbose(): print "studyManager found" # get active study Id, ref and name myStudyId = getActiveStudy(theStudyId) if verbose(): print "myStudyId",myStudyId myStudy = myStudyManager.GetStudyByID(myStudyId) myStudyName = myStudy._get_Name() return myStudyManager, myStudyId, myStudy, myStudyName salome-kernel-6.5.0/src/KERNEL_PY/salome_test.py000077500000000000000000000305111177004724000213350ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # print print "Perform quick test of the application by loading of the GEOM, SMESH, VISU, MED" print "components and doing some operation within the components." print import salome import SALOME import SALOMEDS import os import sys import SALOME_ModuleCatalog step = 1 print "======================================================================" print " %d. Initialize study " % step; step+=1 print "======================================================================" # initialize study salome.salome_init() # get study builder builder = salome.myStudy.NewBuilder() print "OK" print print "======================================================================" print " %d. Retrieve module catalog " % step; step+=1 print "======================================================================" obj = salome.naming_service.Resolve('Kernel/ModulCatalog') catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog) if not catalog: raise RuntimeError, "Can't accesss module catalog" print "OK" print print "======================================================================" print " %d. Check modules availability in the module catalog " % step; step+=1 print "======================================================================" print print "--- Check GEOM ..." comp = catalog.GetComponent("GEOM") if not comp: raise RuntimeError, "Component GEOM is not found in Module Catalog." print "OK" print print "--- Check SMESH ..." comp = catalog.GetComponent("SMESH") if not comp: raise RuntimeError, "Component SMESH is not found in Module Catalog." print "OK" print print "--- Check MED ..." comp = catalog.GetComponent("MED") if not comp: raise RuntimeError, "Component MED is not found in Module Catalog." print "OK" print print "--- Check VISU ..." comp = catalog.GetComponent("VISU") if not comp: raise RuntimeError, "Component VISU is not found in Module Catalog." print "OK" print print "======================================================================" print " %d. Test Data Server " % step; step+=1 print "======================================================================" print print "--- Create new component ..." comp = builder.NewComponent("TEST") if not comp: raise RuntimeError, "Can't create new component" print "OK" print print "--- Create AttributeName ..." A = builder.FindOrCreateAttribute(comp, "AttributeName") if not A: raise RuntimeError, "Can't create AttributeName attribute" A.SetValue("TEST") if A.Value() != "TEST": raise RuntimeError, "Error : wrong value of AttributeName" print "OK" print print "--- Create AttributeReal ..." A = builder.FindOrCreateAttribute(comp, "AttributeReal") if not A: raise RuntimeError, "Can't create AttributeReal attribute" A.SetValue(0.0001) if A.Value() != 0.0001: raise RuntimeError, "Error : wrong value of AttributeReal" print "OK" print print "======================================================================" print " %d. Test Geometry " % step; step+=1 print "======================================================================" import geompy ShapeTypeCompSolid = 1 ShapeTypeSolid = 2 ShapeTypeShell = 3 ShapeTypeFace = 4 ShapeTypeWire = 5 ShapeTypeEdge = 6 ShapeTypeVertex = 7 print print "--- Create a box ..." box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) idbox = geompy.addToStudy(box, "box") box_obj = salome.myStudy.FindObjectByPath("/Geometry/box") if not box_obj: raise RuntimeError, "Error : wrong value of AttributeReal" print "OK" # ---- add shell from box in study print print "--- Extract shell ..." subShellList = geompy.SubShapeAll(box, ShapeTypeShell) shell = subShellList[0] name = geompy.SubShapeName(shell, box) idshell = geompy.addToStudyInFather(box, shell, name) print name print "OK" # ---- add first face of box in study print print "--- Extract face ..." subShapeList = geompy.SubShapeAll(box, ShapeTypeFace) face = subShapeList[0] name = geompy.SubShapeName(face, box) idface = geompy.addToStudyInFather(box, face, name) print name print "OK" # ---- add first edge of face in study print print "--- Extract edge ..." edgeList = geompy.SubShapeAll(face, ShapeTypeEdge) edge = edgeList[0]; name = geompy.SubShapeName(edge, face) idedge = geompy.addToStudyInFather(face, edge, name) print name print "OK" # ---- update object browser if salome.hasDesktop(): salome.sg.updateObjBrowser(1); print print "======================================================================" print " %d. Test Mesh " % step; step+=1 print "======================================================================" import StdMeshers import SMESH smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH") if salome.hasDesktop(): smeshgui = salome.ImportComponentGUI("SMESH") smeshgui.Init(salome.myStudyId); else: smesh.SetCurrentStudy(salome.myStudy) # ---- create hypotheses if sys.platform == "win32": stdMeshersEngine = "StdMeshersEngine" else: stdMeshersEngine = "libStdMeshersEngine.so" print print "--- Create hypotheses ..." print print "------ LocalLength ..." hypLen1 = smesh.CreateHypothesis( "LocalLength", stdMeshersEngine ) hypLen1.SetLength(100) print hypLen1.GetName() print hypLen1.GetId() print hypLen1.GetLength() if salome.hasDesktop(): smeshgui.SetName(salome.ObjectToID(hypLen1), "Local_Length_100") print "OK" print print "------ NumberOfSegments ..." hypNbSeg1= smesh.CreateHypothesis( "NumberOfSegments", stdMeshersEngine ) hypNbSeg1.SetNumberOfSegments(7) print hypNbSeg1.GetName() print hypNbSeg1.GetId() print hypNbSeg1.GetNumberOfSegments() if salome.hasDesktop(): smeshgui.SetName(salome.ObjectToID(hypNbSeg1), "NumberOfSegments_7") print "OK" print print "------ MaxElementArea [1] ..." hypArea1 = smesh.CreateHypothesis( "MaxElementArea", stdMeshersEngine ) hypArea1.SetMaxElementArea(2500) print hypArea1.GetName() print hypArea1.GetId() print hypArea1.GetMaxElementArea() if salome.hasDesktop(): smeshgui.SetName(salome.ObjectToID(hypArea1), "MaxElementArea_2500") print "OK" print print "------ MaxElementArea [2] ..." hypArea2 = smesh.CreateHypothesis( "MaxElementArea", stdMeshersEngine ) hypArea2.SetMaxElementArea(500) print hypArea2.GetName() print hypArea2.GetId() print hypArea2.GetMaxElementArea() if salome.hasDesktop(): smeshgui.SetName(salome.ObjectToID(hypArea2), "MaxElementArea_500") print "OK" # ---- create algorithms print print "--- Create algorithms ..." print print "------ Regular_1D ..." algoReg = smesh.CreateHypothesis( "Regular_1D", stdMeshersEngine ) listHyp = algoReg.GetCompatibleHypothesis() for hyp in listHyp: print hyp print algoReg.GetName() print algoReg.GetId() if salome.hasDesktop(): smeshgui.SetName(salome.ObjectToID(algoReg), "Regular_1D" ) print "OK" print print "------ MEFISTO_2D ..." algoMef = smesh.CreateHypothesis( "MEFISTO_2D", stdMeshersEngine ) listHyp=algoMef.GetCompatibleHypothesis() for hyp in listHyp: print hyp print algoMef.GetName() print algoMef.GetId() if salome.hasDesktop(): smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D" ) print "OK" # ---- create mesh on the box, apply hypotheses / algorithms print print "--- Create mesh on the box ..." mesh = smesh.CreateMesh(box) if salome.hasDesktop(): smeshgui.SetName( salome.ObjectToID(mesh), "MeshBox" ); ret = mesh.AddHypothesis(box, algoReg) ret = mesh.AddHypothesis(box, algoMef) ret = mesh.AddHypothesis(box, hypNbSeg1) ret = mesh.AddHypothesis(box, hypArea1) print "OK" # ---- create submesh on the edge, add hypothesis print print "--- Add 1D sub-mesh on the edge ..." submesh = mesh.GetSubMesh(edge, "SubMeshEdge") ret = mesh.AddHypothesis(edge, algoReg) ret = mesh.AddHypothesis(edge, hypLen1) print "OK" # ---- create submesh on the edge, add hypothesis print print "--- Add 2D sub-mesh on the face ..." submesh = mesh.GetSubMesh(face, "SubMeshFace") ret = mesh.AddHypothesis(face, hypArea2) print "OK" # ---- compute mesh print print "--- Compute mesh ..." smesh.Compute(mesh, box) print "OK" # ---- update object browser if salome.hasDesktop(): salome.sg.updateObjBrowser(1); print print "======================================================================" print " %d. Test Med " % step; step+=1 print "======================================================================" import SALOME_MED medFileName = "pointe.med" medFile = os.path.join(os.getenv('DATA_DIR'), 'MedFiles', medFileName) med_comp = salome.myStudy.FindComponent("MED") if not med_comp: med = salome.lcc.FindOrLoadComponent("FactoryServer", "MED") print print "--- Read med file structure from %s ..." % medFile med.readStructFileWithFieldType(medFile, salome.myStudyName) print "OK" pass else: print print "This script cannot work properly, because there is" print "some MED component data already existing in the study." print "Execution aborted." print print "Skipping test for MED..." pass print print "======================================================================" print " %d. Test Post-Pro " % step; step+=1 print "======================================================================" import VISU aMeshName = "maa1" anEntity = VISU.NODE field_name = "fieldnodedouble" if salome.hasDesktop(): # in gui mode import visu_gui visu = salome.lcc.FindOrLoadComponent("FactoryServer", "VISU") if not med_comp: print print "--- Get med object from study ..." med_obj = visu_gui.visu.getMedObjectFromStudy() if not med_obj: raise RuntimeError, "Med object is not found in the study" print "OK" print print "--- Get field from study ..." field = visu_gui.visu.getFieldObjectFromStudy(3,1) if not field: raise RuntimeError, "Field object is not found in the study" print "OK" print print "--- Import field to the VISU ..." aTimeStampId = -1 result1 = visu.ImportMedField(field) if not result1: raise RuntimeError, "Can't import field" print "OK" print print "--- Create mesh presentation ..." mesh1 = visu.MeshOnEntity(result1, aMeshName, anEntity); if not mesh1: raise RuntimeError, "Can't create mesh presentation" print "OK" print print "--- Create scalar map ..." scalarMap1 = visu.ScalarMapOnField(result1, aMeshName, anEntity, field_name, aTimeStampId) if not scalarMap1: raise RuntimeError, "Can't create scalar map" print "OK" pass # if not med_comp print print "--- Import med file %s to the VISU ..." % medFile result2 = visu.ImportFile(medFile); if not result2: raise RuntimeError, "Can't import file" print "OK" print print "--- Create mesh presentation ..." mesh2 = visu.MeshOnEntity(result2, aMeshName, anEntity); if not mesh2: raise RuntimeError, "Can't create mesh presentation" print "OK" print print "--- Create scalar map ..." scalarMap2 = visu.ScalarMapOnField(result2, aMeshName, anEntity, field_name, 3) if not scalarMap2: raise RuntimeError, "Can't create scalar map" print "OK" pass else: # not in gui mode, visu can not be tested print print "VISU module requires SALOME to be running in GUI mode." print print "Skipping test for VISU..." pass # ---- update object browser if salome.hasDesktop(): salome.sg.updateObjBrowser(1); salome-kernel-6.5.0/src/KERNEL_PY/salome_version.py000077500000000000000000000121261177004724000220450ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : salome_version.py # Author : Vadim SANDLER # Module : SALOME # __ALL__ = [ "getVersion", "getVersionMajor", "getVersionMinor", "getVersionRelease", "getVersions", "getXVersion", "isDevelopmentVersion", ] _salome_versions = {} def getVersion( mod = "KERNEL", full = False ): """ Get SALOME module version number Parameters: - mod : SALOME module name, default is 'KERNEL' - full : take into account development marker (in this case 'dev' is added to the end of version value for development version), False by default Returns: version number string or None if VERSION file is not found """ global _salome_versions mod = mod.upper() dev_flag = { True : "dev", False : "" } if not _salome_versions.has_key( mod ): _salome_versions[ mod ] = [ None, "" ] import os root_dir = os.getenv( "%s_ROOT_DIR" % mod ) if root_dir: try: filename = root_dir + "/bin/salome/VERSION" if not os.path.exists( filename ): filename = root_dir + "/bin/VERSION" f = open( filename ) data = f.readlines() f.close() for l in data: if l.strip().startswith("#") or ":" not in l: continue key = ":".join( l.split( ":" )[ :-1 ] ).strip() val = l.split( ":" )[ -1 ].strip() if "development" in key.lower(): _salome_versions[ mod ][ 1 ] = dev_flag[ val == "1" ] elif "version" in key.lower() or mod in key: _salome_versions[ mod ][ 0 ] = val pass except: pass v = _salome_versions[ mod ][ 0 ] if full and v is not None: v += _salome_versions[ mod ][ 1 ] return v def getVersionMajor( mod = "KERNEL" ): """ Get SALOME module major version number Parameters: - mod : SALOME module name, default is 'KERNEL' Returns: version major number string or None if VERSION file is not found """ ver = getVersion( mod ) try: return ver.split( "." )[ 0 ] except: pass return None def getVersionMinor( mod = "KERNEL" ): """ Get SALOME module minor version number Parameters: - mod : SALOME module name, default is 'KERNEL' Returns: version minor number string or None if VERSION file is not found """ ver = getVersion( mod ) try: return ver.split( "." )[ 1 ] except: pass return None def getVersionRelease( mod = "KERNEL" ): """ Get SALOME module release version number Parameters: - mod : SALOME module name, default is 'KERNEL' Returns: version release number string or None if VERSION file is not found """ ver = getVersion( mod ) try: return ver.split( "." )[ 2 ] except: pass return None def getVersions( mod = "KERNEL" ): """ Get SALOME module version as list of [major, minor, release] numbers Parameters: - mod : SALOME module name, default is 'KERNEL' Returns: version numbers list """ try: major = int( getVersionMajor( mod ) ) except: major = 0 pass try: minor = int( getVersionMinor( mod ) ) except: minor = 0 pass try: rel = int( getVersionRelease( mod ) ) except: rel = 0 pass return [ major, minor, rel ] def getXVersion( mod = "KERNEL" ): """ Get SALOME module version as list of [major, minor, release] numbers Parameters: - mod : SALOME module name, default is 'KERNEL' Returns: version numbers list """ major, minor, rel = getVersions( mod ) return hex( (major<<16) + (minor<<8) + rel ) def isDevelopmentVersion( mod = "KERNEL" ): """ Checks if the version of SALOME module is marked as development one Parameters: - mod : SALOME module name, default is 'KERNEL' Returns: Return True for delopment version of module or False otherwise """ ver = getVersion( mod, True ) return ver.endswith( "dev" ) salome-kernel-6.5.0/src/KernelHelpers/000077500000000000000000000000001177004724000176145ustar00rootroot00000000000000salome-kernel-6.5.0/src/KernelHelpers/KernelHelpers.hxx000077500000000000000000000026271177004724000231220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Basics.hxx // Author : Roman NIKOLAEV // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/KernelHelpers/Attic/KernelHelpers.hxx,v 1.1.4.2.2.1 2012-04-12 14:05:15 vsr Exp $ // #ifndef _SALOME_KERNEL_HELPERS_HXX_ #define _SALOME_KERNEL_HELPERS_HXX_ #ifdef WIN32 # if defined KERNELHELPERS_EXPORTS || defined SalomeKernelHelpers_EXPORTS # define KERNELHELPERS_EXPORT __declspec( dllexport ) # else # define KERNELHELPERS_EXPORT __declspec( dllimport ) # endif #else # define KERNELHELPERS_EXPORT #endif #endif //_SALOME_KERNEL_HELPERS_HXX_ salome-kernel-6.5.0/src/KernelHelpers/KernelHelpersUseCases.cxx000077500000000000000000000066161177004724000245530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: Guillaume Boulant (EDF/R&D) #include "SALOME_KernelServices.hxx" #include "Basics_Utils.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_TestComponent) bool TEST_corba() { CORBA::ORB_var orb = KERNEL::getORB(); if ( CORBA::is_nil(orb) ) { LOG("TEST_Corba: orb ERROR"); return false; } SALOME_NamingService * ns = KERNEL::getNamingService(); if ( ns == NULL ) { LOG("TEST_Corba: ns ERROR"); return false; } SALOME_LifeCycleCORBA * lcc = KERNEL::getLifeCycleCORBA(); if ( lcc == NULL ) { LOG("TEST_Corba: lcc ERROR"); return false; } LOG("TEST_Corba: OK"); return true; } #include bool TEST_getLifeCycleCORBA() { Engines::EngineComponent_var component = KERNEL::getLifeCycleCORBA()->FindOrLoad_Component( "FactoryServer","SalomeTestComponent" ); Engines::TestComponent_var engine = Engines::TestComponent::_narrow(component); char * coucou_res = engine->Coucou(123.); const char * coucou_ref = "L = 123"; LOG(coucou_res); if ( strcmp(coucou_res, coucou_ref) == 0 ) { return false; } return true; } bool TEST_getStudyManager() { SALOMEDS::Study_ptr myTestStudy = KERNEL::getStudyManager()->NewStudy("kerneltest"); if ( CORBA::is_nil(myTestStudy) ) { return false; } // One can use the study to store some general properties myTestStudy->SetString("material","wood"); myTestStudy->SetReal("volume",3.23); // The study is characterized by an ID int myTestStudyId = myTestStudy->StudyId(); LOG("TestComponentImpl::testkernel: study id = "<getPID(); LOG("["< #include "SALOMEDS_DriverDefaultImpl.hxx" //=========================================================================== SALOMEDS_DriverDefaultImpl::SALOMEDS_DriverDefaultImpl(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName) // :Engines_Component_i(orb, poa, contId, instanceName, interfaceName) { MESSAGE("SALOMEDS_DriverDefaultImpl::SALOMEDS_DriverDefaultImpl : "); }; //=========================================================================== SALOMEDS_DriverDefaultImpl::~SALOMEDS_DriverDefaultImpl() { MESSAGE("SALOMEDS_DriverDefaultImpl::~SALOMEDS_DriverDefaultImpl"); }; //=========================================================================== CORBA::Boolean SALOMEDS_DriverDefaultImpl::Load(SALOMEDS::SComponent_ptr theComponent, const SALOMEDS::TMPFile & theStream, const char* theURL, bool isMultiFile) { MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::Load"); MESSAGE("Should be implemented"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); return false; }; //=========================================================================== CORBA::Boolean SALOMEDS_DriverDefaultImpl::LoadASCII(SALOMEDS::SComponent_ptr theComponent, const SALOMEDS::TMPFile & theStream, const char* theURL, bool isMultiFile) { MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::LoadASCII"); MESSAGE("Should be implemented"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); return false; }; //=========================================================================== char* SALOMEDS_DriverDefaultImpl::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject, const char* aLocalPersistentID, CORBA::Boolean isMultiFile, CORBA::Boolean isASCII) { MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::LocalPersistentIDToIOR"); MESSAGE("Should be implemented"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); CORBA::String_var aString(""); return aString._retn(); }; //=========================================================================== SALOMEDS::TMPFile* SALOMEDS_DriverDefaultImpl::Save(SALOMEDS::SComponent_ptr theComponent, const char* theURL, bool isMultiFile) { MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::Save"); MESSAGE("Should be implemented"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(0); return aStreamFile._retn(); }; //=========================================================================== SALOMEDS::TMPFile* SALOMEDS_DriverDefaultImpl::SaveASCII(SALOMEDS::SComponent_ptr theComponent, const char* theURL, bool isMultiFile) { MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::SaveASCII"); MESSAGE("Should be implemented"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(0); return aStreamFile._retn(); }; //=========================================================================== char* SALOMEDS_DriverDefaultImpl::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject, const char* IORString, CORBA::Boolean isMultiFile, CORBA::Boolean isASCII) { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::IORToLocalPersistentID"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); CORBA::String_var aString(""); return aString._retn(); }; //=========================================================================== void SALOMEDS_DriverDefaultImpl::Close(SALOMEDS::SComponent_ptr theComponent) { MESSAGE("------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::Close"); MESSAGE("------------------------"); }; //=========================================================================== char* SALOMEDS_DriverDefaultImpl::ComponentDataType() { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::ComponentDataType"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); return CORBA::string_dup("J aurais du nommer mon type prefere"); }; //=========================================================================== bool SALOMEDS_DriverDefaultImpl::CanPublishInStudy(CORBA::Object_ptr theIOR) { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::CanPublishInStudy"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); return false; }; //=========================================================================== SALOMEDS::SObject_ptr SALOMEDS_DriverDefaultImpl::PublishInStudy(SALOMEDS::Study_ptr theStudy, SALOMEDS::SObject_ptr theSObject, CORBA::Object_ptr theObject, const char* theName) throw (SALOME::SALOME_Exception) { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::PublishInStudy"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); SALOMEDS::SObject_var aResultSO; return aResultSO._retn(); }; //=========================================================================== CORBA::Boolean SALOMEDS_DriverDefaultImpl::CanCopy(SALOMEDS::SObject_ptr theObject) { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::CanCopy"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); //return false; return true; }; //=========================================================================== SALOMEDS::TMPFile* SALOMEDS_DriverDefaultImpl::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID) { MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::CopyFrom"); MESSAGE("Should be implemented"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); MESSAGE("--------------------------------------"); SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(0); return aStreamFile._retn(); }; //=========================================================================== SALOMEDS::SObject_ptr SALOMEDS_DriverDefaultImpl::PasteInto( const SALOMEDS::TMPFile & theStream, CORBA::Long theObjectID, SALOMEDS::SObject_ptr theSObject) { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::PasteInto"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); SALOMEDS::SObject_var aResultSO; return aResultSO._retn(); }; //=========================================================================== CORBA::Boolean SALOMEDS_DriverDefaultImpl::CanPaste ( const char *theComponentName, CORBA::Long theObjectID) { MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("SALOMEDS_DriverDefaultImpl::CanPaste"); MESSAGE("Should be implemented"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); MESSAGE("-----------------------------------------"); return false; }; salome-kernel-6.5.0/src/KernelHelpers/SALOMEDS_DriverDefaultImpl.hxx000077500000000000000000000072771177004724000252360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: Guillaume Boulant (EDF/R&D) #ifndef __SALOMEDS_DRIVER_DEFAULT_IMPL_H__ #define __SALOMEDS_DRIVER_DEFAULT_IMPL_H__ #include "KernelHelpers.hxx" #include "SALOME_Component_i.hxx" #include "SALOME_NamingService.hxx" #include CORBA_CLIENT_HEADER(SALOMEDS) //--------------------------------------------------------- class KERNELHELPERS_EXPORT SALOMEDS_DriverDefaultImpl: public virtual POA_SALOMEDS::Driver //--------------------------------------------------------- { SALOMEDS_DriverDefaultImpl(); public: SALOMEDS_DriverDefaultImpl(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName); virtual ~SALOMEDS_DriverDefaultImpl(); //--------------------------------------------- // inherited methods from SALOMEDS::Driver //--------------------------------------------- //virtual SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent, SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent, const char* theURL, bool isMultiFile); virtual SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent, const char* theURL, bool isMultiFile); virtual bool Load(SALOMEDS::SComponent_ptr, const SALOMEDS::TMPFile &, const char* theURL, bool isMultiFile); virtual bool LoadASCII(SALOMEDS::SComponent_ptr, const SALOMEDS::TMPFile &, const char* theURL, bool isMultiFile); virtual void Close(SALOMEDS::SComponent_ptr IORSComponent); virtual char* ComponentDataType(); virtual char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject, const char* IORString, CORBA::Boolean isMultiFile, CORBA::Boolean isASCII); virtual char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject, const char* aLocalPersistentID, CORBA::Boolean isMultiFile, CORBA::Boolean isASCII); virtual bool CanPublishInStudy(CORBA::Object_ptr theIOR); virtual SALOMEDS::SObject_ptr PublishInStudy (SALOMEDS::Study_ptr theStudy, SALOMEDS::SObject_ptr theSObject, CORBA::Object_ptr theObject, const char* theName) throw (SALOME::SALOME_Exception); virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject); virtual SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID); virtual CORBA::Boolean CanPaste(const char* theComponentName, CORBA::Long theObjectID); virtual SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream, CORBA::Long theObjectID, SALOMEDS::SObject_ptr theObject); }; #endif salome-kernel-6.5.0/src/KernelHelpers/SALOME_KernelServices.cxx000077500000000000000000000141161177004724000243320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: Guillaume Boulant (EDF/R&D) #include "SALOME_KernelServices.hxx" namespace KERNEL { /** * This function returns a static reference to the orb. The orb can * be used for example to initialize CORBA variables or to serialize * and unserialize the CORBA objet to/from an IOR string. */ CORBA::ORB_ptr getORB() { static CORBA::ORB_ptr orb; if(CORBA::is_nil(orb)){ int argc=0; orb = CORBA::ORB_init(argc,0); } return orb; } /** * This function returns a static reference to the SALOME naming service. */ SALOME_NamingService * getNamingService() { static SALOME_NamingService * namingService; if ( namingService == NULL ) { namingService = new SALOME_NamingService(getORB()); } return namingService; } /** * This function returns a static reference to the SALOME life cycle CORBA. */ SALOME_LifeCycleCORBA * getLifeCycleCORBA() { static SALOME_LifeCycleCORBA * lifeCycleCORBA; if ( lifeCycleCORBA == NULL ) { SALOME_NamingService *aNamingService = getNamingService(); lifeCycleCORBA = new SALOME_LifeCycleCORBA(aNamingService); } return lifeCycleCORBA; } /** * This returns a static reference to the SALOME study manager. The * study manager can be used to retrieve a study or to get * informations about a study. */ SALOMEDS::StudyManager_ptr getStudyManager() { static SALOMEDS::StudyManager_ptr aStudyManager; if(CORBA::is_nil(aStudyManager)){ SALOME_NamingService *aNamingService = getNamingService(); CORBA::Object_ptr anObject = aNamingService->Resolve("/myStudyManager"); aStudyManager = SALOMEDS::StudyManager::_narrow(anObject); } return aStudyManager; } /** * This returns a static reference to the SALOME session. The * SALOME session can be used to retrieve some objects of the * current session, as the SALOME study. */ SALOME::Session_ptr getSalomeSession() { static SALOME::Session_ptr salomeSession; if(CORBA::is_nil(salomeSession)){ SALOME_NamingService *aNamingService = getNamingService(); CORBA::Object_ptr obj = aNamingService->Resolve("/Kernel/Session"); salomeSession = SALOME::Session::_narrow(obj); } return salomeSession; } /** * This returns a static reference to the SALOME launcher. The * SALOME launcher can be used to schedule jobs, local or remote, * using a batch system or not (see SALOME documentation). */ Engines::SalomeLauncher_ptr getSalomeLauncher() { //LOG("KERNEL_services::getSalomeLauncher()"); static Engines::SalomeLauncher_ptr salomeLauncher; if(CORBA::is_nil(salomeLauncher)){ //LOG("KERNEL_services::getSalomeLauncher(): creating the static instance"); SALOME_NamingService *aNamingService = getNamingService(); CORBA::Object_ptr obj = aNamingService->Resolve("/SalomeLauncher"); salomeLauncher = Engines::SalomeLauncher::_narrow(obj); } return salomeLauncher; } Engines::ResourcesManager_ptr getResourcesManager() { static Engines::ResourcesManager_ptr resourcesManager; if(CORBA::is_nil(resourcesManager)){ SALOME_NamingService *aNamingService = getNamingService(); CORBA::Object_ptr obj = aNamingService->Resolve("/ResourcesManager"); resourcesManager = Engines::ResourcesManager::_narrow(obj); } return resourcesManager; } /** * This returns the study with the specified id if it's defined in * the SALOME study manager. Returns null otherwise. * Please not that it is just a shortcut, and you may prefer use * directly the study manager: * KERNEL::getStudyManager()->GetStudyByID(aStudyId) */ SALOMEDS::Study_ptr getStudyById(int aStudyId) { if ( aStudyId < 0 ) { INFOS("ERR: trying to get a study with ID<0"); return SALOMEDS::Study::_nil(); } return getStudyManager()->GetStudyByID(aStudyId); } int getStudyId(SALOMEDS::Study_ptr study) { if( CORBA::is_nil(study) ) return -1; return study->StudyId(); } /** * This function retrieve the CORBA object reference from the study * object wrapping it. */ CORBA::Object_ptr SObjectToObject(SALOMEDS::SObject_ptr theSObject) { SALOMEDS::GenericAttribute_var anAttr; CORBA::Object_var anObject; if(CORBA::is_nil(theSObject)) return anObject; try{ if(theSObject->FindAttribute(anAttr, "AttributeIOR")){ SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); CORBA::String_var aValue = anIOR->Value(); CORBA::ORB_ptr anORB = getORB(); if(strcmp(aValue,"") != 0) anObject = anORB->string_to_object(aValue); } }catch(...){ INFOS("SObjectToObject - Unknown exception was occured!!!"); } return anObject._retn(); } /*! * This function provides a CORBA pointer to a servant from its IOR * given as a string of characters. */ CORBA::Object_ptr IORToObject(char * IOR) { return getORB()->string_to_object(IOR); } // // __GBO__ See the file ./src/SMESHGUI/SMESHGUI_Utils.h of SMESH_SRC // for other helper functions // SALOME::SALOME_Exception createSalomeException(const char * text) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = CORBA::string_dup(text); return SALOME::SALOME_Exception(es); } } salome-kernel-6.5.0/src/KernelHelpers/SALOME_KernelServices.hxx000077500000000000000000000103361177004724000243370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: Guillaume Boulant (EDF/R&D) #ifndef __KERNEL_SERVICES_H__ #define __KERNEL_SERVICES_H__ #include "KernelHelpers.hxx" #include "SALOMEconfig.h" #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include CORBA_SERVER_HEADER(SALOME_ContainerManager) #include CORBA_CLIENT_HEADER(SALOME_Session) #include CORBA_SERVER_HEADER(SALOME_Exception) #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" namespace KERNEL { // --------------------------------------------- // SALOME KERNEL main services KERNELHELPERS_EXPORT CORBA::ORB_ptr getORB(); KERNELHELPERS_EXPORT SALOME_NamingService * getNamingService(); KERNELHELPERS_EXPORT SALOME_LifeCycleCORBA * getLifeCycleCORBA(); KERNELHELPERS_EXPORT SALOME::Session_ptr getSalomeSession(); KERNELHELPERS_EXPORT SALOMEDS::StudyManager_ptr getStudyManager(); KERNELHELPERS_EXPORT Engines::SalomeLauncher_ptr getSalomeLauncher(); KERNELHELPERS_EXPORT Engines::ResourcesManager_ptr getResourcesManager(); // --------------------------------------------- // SALOME KERNEL services to deal with a SALOME study, SObject and // SComponent. // KERNELHELPERS_EXPORT SALOMEDS::Study_ptr getStudyById(int aStudyId); KERNELHELPERS_EXPORT int getStudyId(SALOMEDS::Study_ptr study); KERNELHELPERS_EXPORT CORBA::Object_ptr IORToObject(char * IOR); KERNELHELPERS_EXPORT CORBA::Object_ptr SObjectToObject(SALOMEDS::SObject_ptr); /*! * This template function provides you with the servant (CORBA * object narrowed to its interface) corresponding to the specified * CORBA object (naked CORBA pointer). */ template typename TInterface::_var_type ObjectToInterface(CORBA::Object_ptr object) { if(!CORBA::is_nil(object)) return TInterface::_narrow(object); return TInterface::_nil(); } template typename TInterface::_var_type SObjectToInterface(SALOMEDS::SObject_ptr sobject) { CORBA::Object_ptr object = SObjectToObject(sobject); return ObjectToInterface(object); } // _MEM_: note that template functions have to be declared AND // implemented in the header because they are not compiled in this // library but in every client library that includes this header // file. The effective compilation depends on the particular class // used for TInterface. // --------------------------------------------- // To create a standard SALOME exception embedding a simple text KERNELHELPERS_EXPORT SALOME::SALOME_Exception createSalomeException(const char * text); } // // ============================================================= // SALOME Logger macros // ============================================================= // // We can use the macros defined by SALOMELocalTrace/utilities.h #include "utilities.h" #define SALOMELOG(msg) {MESS_BEGIN("[XSALOME]") << msg << MESS_END} #define LOG SALOMELOG // This can help to LOG (or use in stream) the CORBA exceptions // Ex: LOG("An exception occurs: "< #include static std::ostream & operator<<(std::ostream & os, const CORBA::Exception & e) { CORBA::Any tmp; tmp <<=e ; CORBA::TypeCode_var tc = tmp.type(); const char * p = tc->name (); if (*p != '\0') os << p; else os << tc->id(); return os; } #endif // KERNEL_SERVICES salome-kernel-6.5.0/src/KernelHelpers/SALOME_StudyEditor.cxx000077500000000000000000000135671177004724000236760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: Guillaume Boulant (EDF/R&D) #include "SALOME_StudyEditor.hxx" #include "SALOME_KernelServices.hxx" /** Canonic constructor. The object can't be used without a setStudy() */ SALOME_StudyEditor::SALOME_StudyEditor() { } void SALOME_StudyEditor::setStudy(SALOMEDS::Study_ptr study) { _study = study; _sbuilder = _study->NewBuilder(); } void SALOME_StudyEditor::setStudyById(int studyId) { this->setStudy(KERNEL::getStudyManager()->GetStudyByID(studyId)); } int SALOME_StudyEditor::getStudyId() { if ( _study->_is_nil() ) return UNDEFINED; return _study->StudyId(); } SALOME_StudyEditor::SALOME_StudyEditor(int studyId) { this->setStudyById(studyId); } SALOME_StudyEditor::SALOME_StudyEditor(SALOMEDS::Study_ptr study) { this->setStudy(study); } SALOMEDS::SObject_ptr SALOME_StudyEditor::newObject(SALOMEDS::SObject_ptr parent) { return _sbuilder->NewObject(parent); } SALOMEDS::SObject_ptr SALOME_StudyEditor::findObject(const char * entry) { SALOMEDS::SObject_var sobject = _study->FindObjectID(entry); return sobject._retn(); } SALOMEDS::SComponent_ptr SALOME_StudyEditor::newRoot(const char * moduleName) { SALOMEDS::SComponent_var sroot = findRoot(moduleName); if ( sroot->_is_nil() ) { sroot = _sbuilder->NewComponent(moduleName); _sbuilder->SetName(sroot,moduleName); } return sroot._retn(); } bool SALOME_StudyEditor::bindEngine(SALOMEDS::SComponent_var studyRoot, Engines::EngineComponent_var engine) { // WARN: The engine should be associated to the SComponent IF // AND ONLY IF it is a SALOMEDS::Driver. Otherwise, there is no // need to do that, and it could even lead to exception // raising (eh, you work on SALOME isn't it?) SALOMEDS::Driver_var driver = SALOMEDS::Driver::_narrow(engine); if ( driver->_is_nil() || studyRoot->_is_nil() ) return false; _sbuilder->DefineComponentInstance(studyRoot, engine); return true; } SALOMEDS::SComponent_ptr SALOME_StudyEditor::findRoot(const char * moduleName) { return _study->FindComponent(moduleName); } void SALOME_StudyEditor::setName(SALOMEDS::SObject_var sobject, const char * value) { _sbuilder->SetName(sobject,value); } const char * SALOME_StudyEditor::getName(SALOMEDS::SObject_var sobject) { if (sobject->_is_nil()) return NULL; return sobject->GetName(); } /** * This function specifies which resource file is to be used to * associate an icon to the specified object. Note that even if the * icon as no sens outside the GUI context, it can be defined here * because only the resource name is provided. The effective rendering * is done in the object browser of course, and use this string * attribute. WARN: note that the resource name is supposed to be the * base name of a file managed by the SALOME resource manager (i.e. a * file located in the directory specified in the SalomeApp.xml). */ void SALOME_StudyEditor::setIcon(SALOMEDS::SObject_var sobject, const char * resourcename) { SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributePixMap_var aPixmap; anAttr = _sbuilder->FindOrCreateAttribute(sobject, "AttributePixMap"); aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr); aPixmap->SetPixMap(resourcename); } // // MEM: AttributeParameter // Note that the AttributeParameter is a multitype dictionnary whose // keys are the names specified when setting the value // /** * Add a parameter attribute of type integer or simply set its value * if it already exists. */ void SALOME_StudyEditor::setParameterInt(SALOMEDS::SObject_var sobject, const char * name, int value) { SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; anAttr = _sbuilder->FindOrCreateAttribute(sobject, "AttributeParameter"); aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); aParam->SetInt(name,value); } int SALOME_StudyEditor::getParameterInt(SALOMEDS::SObject_var sobject, const char * name) { if (sobject->_is_nil()) return UNDEFINED; SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; if ( sobject->FindAttribute(anAttr,"AttributeParameter") ) { aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); return aParam->GetInt(name); } return UNDEFINED; } /** * Add a parameter attribute of type boolean or simply set its value * if it already exists. */ void SALOME_StudyEditor::setParameterBool(SALOMEDS::SObject_var sobject, const char * name, bool value) { SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; anAttr = _sbuilder->FindOrCreateAttribute(sobject, "AttributeParameter"); aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); aParam->SetBool(name,value); } bool SALOME_StudyEditor::getParameterBool(SALOMEDS::SObject_var sobject, const char * name) { if (sobject->_is_nil()) return false; // _GBO_ Q: Maybe it's better in this case to raise an exception? SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeParameter_var aParam; if ( sobject->FindAttribute(anAttr,"AttributeParameter") ) { aParam = SALOMEDS::AttributeParameter::_narrow(anAttr); return aParam->GetBool(name); } return false; } salome-kernel-6.5.0/src/KernelHelpers/SALOME_StudyEditor.hxx000077500000000000000000000046241177004724000236750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: Guillaume Boulant (EDF/R&D) #ifndef __STUDY_EDITOR_HXX__ #define __STUDY_EDITOR_HXX__ #include "KernelHelpers.hxx" #include #include CORBA_CLIENT_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOME_Component) #include class KERNELHELPERS_EXPORT SALOME_StudyEditor { public: SALOME_StudyEditor(int studyId); SALOME_StudyEditor(SALOMEDS::Study_ptr study); typedef std::vector SObjectList; SALOMEDS::SComponent_ptr newRoot(const char * moduleName); SALOMEDS::SComponent_ptr findRoot(const char * moduleName); bool bindEngine(SALOMEDS::SComponent_var studyRoot,Engines::EngineComponent_var engine); SALOMEDS::SObject_ptr newObject(SALOMEDS::SObject_ptr parent); SALOMEDS::SObject_ptr findObject(const char * entry); void setName(SALOMEDS::SObject_var sobject, const char * value); const char * getName(SALOMEDS::SObject_var sobject); void setIcon(SALOMEDS::SObject_var sobject, const char * resourcename); void setParameterInt(SALOMEDS::SObject_var sobject, const char * name, int value); int getParameterInt(SALOMEDS::SObject_var sobject, const char * name); void setParameterBool(SALOMEDS::SObject_var sobject, const char * name, bool value); bool getParameterBool(SALOMEDS::SObject_var sobject, const char * name); static const int UNDEFINED = -1; protected: SALOME_StudyEditor(); void setStudy(SALOMEDS::Study_ptr study); void setStudyById(int studyId); int getStudyId(); SALOMEDS::Study_var _study; private: SALOMEDS::StudyBuilder_var _sbuilder; }; #endif // __STUDY_EDITOR_HXX__ salome-kernel-6.5.0/src/KernelHelpers/Test/000077500000000000000000000000001177004724000205335ustar00rootroot00000000000000salome-kernel-6.5.0/src/KernelHelpers/Test/KernelHelpersUnitTests.cxx000077500000000000000000000072361177004724000257200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "KernelHelpersUnitTests.hxx" #include "SALOME_KernelServices.hxx" #include "Basics_Utils.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_TestComponent) // ============================================================================ /*! * Set up the environment */ // ============================================================================ void KernelHelpersUnitTests::setUp() { } // ============================================================================ /*! * - delete */ // ============================================================================ void KernelHelpersUnitTests::tearDown() { } // ============================================================================ /*! * Check SalomeApp functionality */ // ============================================================================ void KernelHelpersUnitTests::TEST_corba() { CORBA::ORB_var orb = KERNEL::getORB(); CPPUNIT_ASSERT(!CORBA::is_nil(orb)); SALOME_NamingService * ns = KERNEL::getNamingService(); CPPUNIT_ASSERT(ns!=NULL); SALOME_LifeCycleCORBA * lcc = KERNEL::getLifeCycleCORBA(); CPPUNIT_ASSERT(lcc!=NULL); } void KernelHelpersUnitTests::TEST_getLifeCycleCORBA() { Engines::EngineComponent_var component = KERNEL::getLifeCycleCORBA()->FindOrLoad_Component( "FactoryServer","SalomeTestComponent" ); Engines::TestComponent_var engine = Engines::TestComponent::_narrow(component); char * coucou_res = engine->Coucou(123.); const char * coucou_ref = "TestComponent_i : L = 123"; LOG(coucou_res); CPPUNIT_ASSERT( strcmp(coucou_res, coucou_ref) == 0 ); } void KernelHelpersUnitTests::TEST_getStudyManager() { SALOMEDS::Study_ptr myTestStudy = KERNEL::getStudyManager()->NewStudy("kerneltest"); CPPUNIT_ASSERT(!CORBA::is_nil(myTestStudy)); // One can use the study to store some general properties myTestStudy->SetString("material","wood"); myTestStudy->SetReal("volume",3.23); // The study is characterized by an ID int myTestStudyId = myTestStudy->StudyId(); LOG("TestComponentImpl::testkernel: study id = "<getPID(); LOG("SALOME launcher PID = " << pid); } catch (const SALOME::SALOME_Exception & ex) { LOG("SALOME Exception in createJob !" < class KernelHelpersUnitTests : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( KernelHelpersUnitTests ); CPPUNIT_TEST( TEST_corba ); CPPUNIT_TEST( TEST_getLifeCycleCORBA ); CPPUNIT_TEST( TEST_getStudyManager ); CPPUNIT_TEST( TEST_getSalomeLauncher ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void TEST_corba(); void TEST_getLifeCycleCORBA(); void TEST_getStudyManager(); void TEST_getSalomeLauncher(); }; #endif salome-kernel-6.5.0/src/KernelHelpers/Test/Makefile.am000077500000000000000000000056511177004724000226010ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Author: Guillaume Boulant (EDF/R&D) include $(top_srcdir)/salome_adm/unix/make_common_starter.am lib_LTLIBRARIES = libSalomeKernelHelpersTest.la salomeinclude_HEADERS = KernelHelpersUnitTests.hxx dist_libSalomeKernelHelpersTest_la_SOURCES = KernelHelpersUnitTests.cxx OMNIORB_CXXFLAGS=@OMNIORB_CXXFLAGS@ @OMNIORB_INCLUDES@ OMNIORB_LIBS=@OMNIORB_LIBS@ libSalomeKernelHelpersTest_la_CXXFLAGS = \ @CPPUNIT_INCLUDES@ \ $(OMNIORB_CXXFLAGS) \ -I$(top_srcdir)/src/Basics/Test \ -I$(srcdir)/.. \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/LifeCycleCORBA \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/GenericObj \ -I$(top_builddir)/idl libSalomeKernelHelpersTest_la_LIBADD = \ @CPPUNIT_LIBS@ \ ../libSalomeKernelHelpers.la \ $(OMNIORB_LIBS) \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/Notification/libSalomeNotification.la \ $(top_builddir)/src/GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la bin_PROGRAMS = TestKernelHelpers TestKernelHelpers_SOURCES = TestKernelHelpers.cxx TestKernelHelpers_CXXFLAGS = $(libSalomeKernelHelpersTest_la_CXXFLAGS) TestKernelHelpers_LDADD = $(libSalomeKernelHelpersTest_la_LIBADD) libSalomeKernelHelpersTest.la dist_salomescript_PYTHON = TestKernelHelpers.py UNIT_TEST_PROG = TestKernelHelpers salome-kernel-6.5.0/src/KernelHelpers/Test/Makefile.in000077500000000000000000001146461177004724000226170ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Author: Guillaume Boulant (EDF/R&D) # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestKernelHelpers$(EXEEXT) subdir = src/KernelHelpers/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libSalomeKernelHelpersTest_la_DEPENDENCIES = \ ../libSalomeKernelHelpers.la $(am__DEPENDENCIES_1) \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/Notification/libSalomeNotification.la \ $(top_builddir)/src/GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la dist_libSalomeKernelHelpersTest_la_OBJECTS = \ libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.lo libSalomeKernelHelpersTest_la_OBJECTS = \ $(dist_libSalomeKernelHelpersTest_la_OBJECTS) libSalomeKernelHelpersTest_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeKernelHelpersTest_la_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_TestKernelHelpers_OBJECTS = \ TestKernelHelpers-TestKernelHelpers.$(OBJEXT) TestKernelHelpers_OBJECTS = $(am_TestKernelHelpers_OBJECTS) am__DEPENDENCIES_2 = ../libSalomeKernelHelpers.la \ $(am__DEPENDENCIES_1) \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/Notification/libSalomeNotification.la \ $(top_builddir)/src/GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la TestKernelHelpers_DEPENDENCIES = $(am__DEPENDENCIES_2) \ libSalomeKernelHelpersTest.la TestKernelHelpers_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(TestKernelHelpers_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(dist_libSalomeKernelHelpersTest_la_SOURCES) \ $(TestKernelHelpers_SOURCES) DIST_SOURCES = $(dist_libSalomeKernelHelpersTest_la_SOURCES) \ $(TestKernelHelpers_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ @OMNIORB_INCLUDES@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules lib_LTLIBRARIES = libSalomeKernelHelpersTest.la salomeinclude_HEADERS = KernelHelpersUnitTests.hxx dist_libSalomeKernelHelpersTest_la_SOURCES = KernelHelpersUnitTests.cxx libSalomeKernelHelpersTest_la_CXXFLAGS = \ @CPPUNIT_INCLUDES@ \ $(OMNIORB_CXXFLAGS) \ -I$(top_srcdir)/src/Basics/Test \ -I$(srcdir)/.. \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/LifeCycleCORBA \ -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/GenericObj \ -I$(top_builddir)/idl libSalomeKernelHelpersTest_la_LIBADD = \ @CPPUNIT_LIBS@ \ ../libSalomeKernelHelpers.la \ $(OMNIORB_LIBS) \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/Utils/libOpUtil.la \ $(top_builddir)/src/LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/Notification/libSalomeNotification.la \ $(top_builddir)/src/GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la TestKernelHelpers_SOURCES = TestKernelHelpers.cxx TestKernelHelpers_CXXFLAGS = $(libSalomeKernelHelpersTest_la_CXXFLAGS) TestKernelHelpers_LDADD = $(libSalomeKernelHelpersTest_la_LIBADD) libSalomeKernelHelpersTest.la dist_salomescript_PYTHON = TestKernelHelpers.py UNIT_TEST_PROG = TestKernelHelpers all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/KernelHelpers/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/KernelHelpers/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeKernelHelpersTest.la: $(libSalomeKernelHelpersTest_la_OBJECTS) $(libSalomeKernelHelpersTest_la_DEPENDENCIES) $(libSalomeKernelHelpersTest_la_LINK) -rpath $(libdir) $(libSalomeKernelHelpersTest_la_OBJECTS) $(libSalomeKernelHelpersTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestKernelHelpers$(EXEEXT): $(TestKernelHelpers_OBJECTS) $(TestKernelHelpers_DEPENDENCIES) @rm -f TestKernelHelpers$(EXEEXT) $(TestKernelHelpers_LINK) $(TestKernelHelpers_OBJECTS) $(TestKernelHelpers_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.lo: KernelHelpersUnitTests.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeKernelHelpersTest_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.lo -MD -MP -MF $(DEPDIR)/libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.Tpo -c -o libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.lo `test -f 'KernelHelpersUnitTests.cxx' || echo '$(srcdir)/'`KernelHelpersUnitTests.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.Tpo $(DEPDIR)/libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='KernelHelpersUnitTests.cxx' object='libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeKernelHelpersTest_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeKernelHelpersTest_la-KernelHelpersUnitTests.lo `test -f 'KernelHelpersUnitTests.cxx' || echo '$(srcdir)/'`KernelHelpersUnitTests.cxx TestKernelHelpers-TestKernelHelpers.o: TestKernelHelpers.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(TestKernelHelpers_CXXFLAGS) $(CXXFLAGS) -MT TestKernelHelpers-TestKernelHelpers.o -MD -MP -MF $(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Tpo -c -o TestKernelHelpers-TestKernelHelpers.o `test -f 'TestKernelHelpers.cxx' || echo '$(srcdir)/'`TestKernelHelpers.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Tpo $(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestKernelHelpers.cxx' object='TestKernelHelpers-TestKernelHelpers.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(TestKernelHelpers_CXXFLAGS) $(CXXFLAGS) -c -o TestKernelHelpers-TestKernelHelpers.o `test -f 'TestKernelHelpers.cxx' || echo '$(srcdir)/'`TestKernelHelpers.cxx TestKernelHelpers-TestKernelHelpers.obj: TestKernelHelpers.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(TestKernelHelpers_CXXFLAGS) $(CXXFLAGS) -MT TestKernelHelpers-TestKernelHelpers.obj -MD -MP -MF $(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Tpo -c -o TestKernelHelpers-TestKernelHelpers.obj `if test -f 'TestKernelHelpers.cxx'; then $(CYGPATH_W) 'TestKernelHelpers.cxx'; else $(CYGPATH_W) '$(srcdir)/TestKernelHelpers.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Tpo $(DEPDIR)/TestKernelHelpers-TestKernelHelpers.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestKernelHelpers.cxx' object='TestKernelHelpers-TestKernelHelpers.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(TestKernelHelpers_CXXFLAGS) $(CXXFLAGS) -c -o TestKernelHelpers-TestKernelHelpers.obj `if test -f 'TestKernelHelpers.cxx'; then $(CYGPATH_W) 'TestKernelHelpers.cxx'; else $(CYGPATH_W) '$(srcdir)/TestKernelHelpers.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/KernelHelpers/Test/TestKernelHelpers.cxx000077500000000000000000000022541177004724000246700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "KernelHelpersUnitTests.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( KernelHelpersUnitTests ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/KernelHelpers/Test/TestKernelHelpers.py000077500000000000000000000030211177004724000245070ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = runSalome.get_config() runSalome.set_env(args, modules_list, modules_root_dir) # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # execute Unit Test command = ['TestKernelHelpers'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/Launcher/000077500000000000000000000000001177004724000166125ustar00rootroot00000000000000salome-kernel-6.5.0/src/Launcher/BatchTest.cxx000077500000000000000000000523011177004724000212230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "BatchTest.hxx" #include "Launcher.hxx" #ifdef WITH_LIBBATCH #include #include #endif #include "utilities.h" #include #include #include #ifdef WIN32 # include #endif BatchTest::BatchTest(const Engines::ResourceDefinition& batch_descr) { #ifdef WITH_LIBBATCH _batch_descr = batch_descr; // Getting date Batch::Date date = Batch::Date(time(0)); _date = date.str(); int lend = _date.size() ; int i = 0 ; while (i < lend) { if (_date[i] == '/' || _date[i] == '-' || _date[i] == ':' ) { _date[i] = '_' ; } i++ ; } // Creating test temporary file _test_filename = "/tmp/"; _test_filename += _date + "_test_cluster_file_"; _test_filename += _batch_descr.hostname.in(); _base_filename = _date + "_test_cluster_file_" + _batch_descr.hostname.in(); #endif } BatchTest::~BatchTest() {} bool BatchTest::test() { bool rtn = false; INFOS(std::endl << "--- Testing batch Machine :" << std::endl << "--- Name : " << _batch_descr.hostname << std::endl << "--- hostname : " << _batch_descr.hostname << std::endl << "--- Protocol : " << _batch_descr.protocol << std::endl << "--- User Name : " << _batch_descr.username << std::endl << "--- Batch Type : " << _batch_descr.batch << std::endl << "--- MPI Impl : " << _batch_descr.mpiImpl << std::endl << "--- Appli Path : " << _batch_descr.applipath << std::endl ); std::string result_connection("Not Tested"); std::string result_filecopy("Not Tested"); std::string result_getresult("Not Tested"); std::string result_jobsubmit_simple("Not Tested"); std::string result_jobsubmit_mpi("Not Tested"); std::string result_appli("Not Tested"); result_connection = test_connection(); result_filecopy = test_filecopy(); result_getresult = test_getresult(); result_jobsubmit_simple = test_jobsubmit_simple(); result_jobsubmit_mpi = test_jobsubmit_mpi(); result_appli = test_appli(); INFOS(std::endl << "--- Test results" << std::endl << "--- Connection : " << result_connection << std::endl << "--- File copy : " << result_filecopy << std::endl << "--- Get results : " << result_getresult << std::endl << "--- Submit simple job : " << result_jobsubmit_simple << std::endl << "--- Submit mpi job : " << result_jobsubmit_mpi << std::endl << "--- Application : " << result_appli << std::endl ); if (result_connection == "OK" && result_filecopy == "OK" && result_getresult == "OK" && result_jobsubmit_simple == "OK" && result_jobsubmit_mpi == "OK" && result_appli == "OK") rtn = true; return rtn; } // For this test we use : hostname, protocol, username std::string BatchTest::test_connection() { int status; std::string command; std::string result("Failed : "); std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); // Basic tests if(hostname == "") { result += "hostname is empty !"; return result; } if(username == "") { result += "username is empty !"; return result; } if( protocol != "rsh" && protocol != "ssh") { result += "protocol unknown ! (" + protocol + ")"; return result; } // Build command command += protocol + " " + username + "@" + hostname; // Test status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error of connection on remote host ! status = "; result += oss.str(); return result; } result = "OK"; return result; } // For this test we use : hostname, protocol, username std::string BatchTest::test_filecopy() { int status; std::string home; std::string command; std::string result("Failed : "); std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); // Getting home directory std::string rst = get_home(&home); if(rst != "") { result += rst; return result; } // Writing into the tempory file command = "echo Hello > " + _test_filename; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in creating tempory file ! status = "; result += oss.str(); return result; } // Build command command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + _test_filename + " " + username + "@" + hostname + ":" + home; // Test status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in copy file on remote host ! status = "; result += oss.str(); return result; } result = "OK"; return result; } // For this test we use : hostname, protocol, username std::string BatchTest::test_getresult() { int status; std::string home; std::string command; std::string result("Failed : "); std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); // Getting home directory std::string rst = get_home(&home); if(rst != "") { result += rst; return result; } // Build command command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + username + "@" + hostname + ":" + home + "/" + _base_filename + " " + _test_filename + "_copy"; // Test status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in copy file from remote host ! status = "; result += oss.str(); return result; } // Compare files std::ifstream src_file(_test_filename.c_str()); if (!src_file) { result += "Error in reading temporary file ! filename = " + _test_filename; return result; } std::string cp_filename = _test_filename + "_copy"; std::ifstream cp_file(cp_filename.c_str()); if (!cp_file) { result += "Error in reading temporary copy file ! filename = " + cp_filename; return result; } std::string src_firstline; std::string cp_firstline; std::getline(src_file, src_firstline); std::getline(cp_file, cp_firstline); src_file.close(); cp_file.close(); if (src_firstline != cp_firstline) { result += "Error source file and copy file are not equa ! source = " + src_firstline + " copy = " + cp_firstline; return result; } result = "OK"; return result; } std::string BatchTest::test_jobsubmit_simple() { int status; std::string home; std::string command; std::string result("Failed : "); std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); std::string batch_type = _batch_descr.batch.in(); // Basic test if (batch_type == "lsf") { INFOS("test_jobsubmit_simple not yet implemented for lsf... return OK"); result = "OK"; return result; } if (batch_type == "ccc") { INFOS("test_jobsubmit_simple not yet implemented for ccc... return OK"); result = "OK"; return result; } if (batch_type == "slurm") { INFOS("test_jobsubmit_simple not yet implemented for slurm... return OK"); result = "OK"; return result; } if (batch_type == "sge") { INFOS("test_jobsubmit_simple not yet implemented for sge... return OK"); result = "OK"; return result; } if (batch_type != "pbs") { result += "Batch type unknown ! : " + batch_type; return result; } // Getting home directory std::string rst = get_home(&home); if(rst != "") { result += rst; return result; } // PBS test std::string _test_file_simple = _test_filename + "_simple"; std::ofstream file; file.open(_test_file_simple.c_str(), std::ofstream::out); file << "#!/bin/bash\n" << "#PBS -l nodes=1\n" << "#PBS -l walltime=00:01:00\n" << "#PBS -o " + home + "/" + _date + "_simple_output.log\n" << "#PBS -e " + home + "/" + _date + "_simple_error.log\n" << "echo Bonjour\n" << "echo Error >&2\n"; file.flush(); file.close(); // Build command for copy command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + _test_file_simple + " " + username + "@" + hostname + ":" + home; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in copy job file to remote host ! status = "; result += oss.str(); return result; } // Build command for submit job std::string file_job_name = _test_filename + "_jobid"; command = protocol + " " + username + "@" + hostname + " qsub " + _base_filename + "_simple > " + file_job_name; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in sending qsub to remote host ! status = "; result += oss.str(); return result; } std::string jobid; std::ifstream file_job(file_job_name.c_str()); if (!file_job) { result += "Error in reading temporary file ! filename = " + file_job_name; return result; } std::getline(file_job, jobid); file_job.close(); // Wait the end of the job command = protocol + " " + username + "@" + hostname + " qstat -f " + jobid + " > " + file_job_name; bool stop = false; while (!stop) { status = system(command.c_str()); if(status && status != 153 && status != 256*153) { std::ostringstream oss; oss << status; result += "Error in sending qstat to remote host ! status = "; result += oss.str(); return result; } if(status == 153 || status == 256*153 ) stop = true; #ifdef WIN32 Sleep(1); #else sleep(1); #endif } // Build command for getting results command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + username + "@" + hostname + ":" + home + "/" + _date + "_simple* /tmp"; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "error in getting file result of qsub simple to remote host ! status = "; result += oss.str(); return result; } // Test results std::string normal_input; std::string file_normal_name = "/tmp/" + _date + "_simple_output.log"; std::ifstream file_normal(file_normal_name.c_str()); if (!file_normal) { result += "Error in reading temporary file ! filename = " + file_normal_name; return result; } std::getline(file_normal, normal_input); file_normal.close(); if (normal_input != "Bonjour") { result += "error from simple ouput file ! waiting for Bonjour and get : " + normal_input; return result; } std::string error_input; std::string file_error_name = "/tmp/" + _date + "_simple_error.log"; std::ifstream file_error(file_error_name.c_str()); if (!file_error) { result += "Error in reading temporary file ! filename = " + file_error_name; return result; } std::getline(file_error, error_input); file_error.close(); if (error_input != "Error") { result += "error from simple error file ! waiting for Error and get : " + error_input; return result; } result = "OK"; return result; } std::string BatchTest::test_jobsubmit_mpi() { #ifdef WITH_LIBBATCH int status; std::string home; std::string command; MpiImpl * mpiImpl; std::string result("Failed : "); std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); std::string batch_type = _batch_descr.batch.in(); std::string mpi_type = _batch_descr.mpiImpl.in(); // Basic test if(mpi_type == "lam") mpiImpl = new MpiImpl_LAM(); else if(mpi_type == "mpich1") mpiImpl = new MpiImpl_MPICH1(); else if(mpi_type == "mpich2") mpiImpl = new MpiImpl_MPICH2(); else if(mpi_type == "openmpi") mpiImpl = new MpiImpl_OPENMPI(); else if(mpi_type == "slurmmpi") mpiImpl = new MpiImpl_SLURM(); else { result += "Error MPI impl not supported : " + mpi_type; return result; } // LSF et SGE not yet implemented... if (batch_type == "lsf") { INFOS("test_jobsubmit_simple not yet implemented for lsf... return OK"); result = "OK"; return result; } if (batch_type == "ccc") { INFOS("test_jobsubmit_simple not yet implemented for ccc... return OK"); result = "OK"; return result; } if (batch_type == "slurm") { INFOS("test_jobsubmit_simple not yet implemented for slurm... return OK"); result = "OK"; return result; } if (batch_type == "sge") { INFOS("test_jobsubmit_simple not yet implemented for sge... return OK"); result = "OK"; return result; } // Getting home directory std::string rst = get_home(&home); if(rst != "") { result += rst; return result; } // MPI test std::string _test_file_script = _test_filename + "_script"; std::ofstream file_script; file_script.open(_test_file_script.c_str(), std::ofstream::out); file_script << "#!/bin/bash\n" << "echo HELLO MPI\n"; file_script.flush(); file_script.close(); #ifdef WIN32 _chmod #else chmod #endif (_test_file_script.c_str(), 0x1ED); std::string _test_file_mpi = _test_filename + "_mpi"; std::ofstream file_mpi; file_mpi.open(_test_file_mpi.c_str(), std::ofstream::out); file_mpi << "#!/bin/bash\n" << "#PBS -l nodes=1\n" << "#PBS -l walltime=00:01:00\n" << "#PBS -o " << home << "/" << _date << "_mpi_output.log\n" << "#PBS -e " << home << "/" << _date << "_mpi_error.log\n" << mpiImpl->boot("${PBS_NODEFILE}", 1) << mpiImpl->run("${PBS_NODEFILE}", 1, _base_filename + "_script") << mpiImpl->halt(); file_mpi.flush(); file_mpi.close(); // Build command for copy command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + _test_file_script + " " + username + "@" + hostname + ":" + home; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in copy job file to remote host ! status = "; result += oss.str(); return result; } command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + _test_file_mpi + " " + username + "@" + hostname + ":" + home; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in copy job file to remote host ! status = "; result += oss.str(); return result; } // Build command for submit job std::string file_job_name = _test_filename + "_jobid"; command = protocol + " " + username + "@" + hostname + " qsub " + _base_filename + "_mpi > " + file_job_name; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in sending qsub to remote host ! status = "; result += oss.str(); return result; } std::string jobid; std::ifstream file_job(file_job_name.c_str()); if (!file_job) { result += "Error in reading temporary file ! filename = " + file_job_name; return result; } std::getline(file_job, jobid); file_job.close(); // Wait the end of the job command = protocol + " " + username + "@" + hostname + " qstat -f " + jobid + " > " + file_job_name; bool stop = false; while (!stop) { status = system(command.c_str()); if(status && status != 153 && status != 256*153) { std::ostringstream oss; oss << status; result += "Error in sending qstat to remote host ! status = "; result += oss.str(); return result; } if(status == 153 || status == 256*153 ) stop = true; #ifdef WIN32 Sleep(1); #else sleep(1); #endif } // Build command for getting results command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + username + "@" + hostname + ":" + home + "/" + _date + "_mpi* /tmp"; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "error in getting file result of qsub mpi from remote host ! status = "; result += oss.str(); return result; } // Test results std::string normal_input; std::string file_normal_name = "/tmp/" + _date + "_mpi_output.log"; std::ifstream file_normal(file_normal_name.c_str()); if (!file_normal) { result += "Error in reading temporary file ! filename = " + file_normal_name; return result; } bool test_ok = false; while (std::getline(file_normal, normal_input)) { if (normal_input == "HELLO MPI") test_ok = true; } file_normal.close(); if (!test_ok) { result += "error from mpi ouput file ! waiting for HELLO MPI please watch /tmp/" + _date + "_mpi_output.log file"; return result; } result = "OK"; return result; #else throw LauncherException("Method BatchTest::test_jobsubmit_mpi is not available " "(libBatch was not present at compilation time)"); #endif } std::string BatchTest::test_appli() { int status; std::string home; std::string command; std::string result("Failed : "); std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); std::string applipath = _batch_descr.applipath.in(); // Getting home directory std::string rst = get_home(&home); if(rst != "") { result += rst; return result; } std::string _test_file_appli = _test_filename + "_appli_test"; std::ofstream file_appli; file_appli.open(_test_file_appli.c_str(), std::ofstream::out); file_appli << "#!/bin/bash\n" << "if [ -f " << applipath << "/runAppli ]\n" << "then\n" << " echo OK\n" << "else\n" << " echo NOK\n" << "fi\n"; file_appli.flush(); file_appli.close(); // Build command for copy command = "scp"; if(protocol == "rsh") command = "rcp"; command += " " + _test_file_appli + " " + username + "@" + hostname + ":" + home; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in copy appli test file to remote host ! status = "; result += oss.str(); return result; } // Launch test command = protocol + " " + username + "@" + hostname + " sh " + home + "/" + _base_filename + "_appli_test > " + _test_filename + "_appli_test_result"; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in launching appli test on remote host ! status = "; result += oss.str(); return result; } // Read test result std::string rst_appli; std::string file_appli_result_name = _test_filename + "_appli_test_result"; std::ifstream file_appli_result(file_appli_result_name.c_str()); if (!file_appli_result) { result += "Error in reading temporary file ! filename = " + file_appli_result_name; return result; } std::getline(file_appli_result, rst_appli); file_appli_result.close(); if (rst_appli != "OK") { result += "Error checking application on remote host ! result = " + rst; return result; } result = "OK"; return result; } // Useful methods std::string BatchTest::get_home(std::string * home) { int status; std::string result = ""; std::string command; std::string hostname = _batch_descr.hostname.in(); std::string username = _batch_descr.username.in(); std::string protocol = _batch_descr.protocol.in(); std::string file_home_name = _test_filename + "_home"; command = protocol + " " + username + "@" + hostname + " 'echo $HOME' > " + file_home_name; status = system(command.c_str()); if(status) { std::ostringstream oss; oss << status; result += "Error in getting home directory ! status = "; result += oss.str(); return result; } std::ifstream file_home(file_home_name.c_str()); if (!file_home) { result += "Error in reading temporary file ! filename = " + file_home_name; return result; } std::getline(file_home, *home); file_home.close(); return result; } salome-kernel-6.5.0/src/Launcher/BatchTest.hxx000077500000000000000000000033271177004724000212340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __BatchTest_HXX__ #define __BatchTest_HXX__ #include "SALOME_Launcher_defs.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_ContainerManager) #include class SALOMELAUNCHER_EXPORT BatchTest { public: BatchTest(const Engines::ResourceDefinition& batch_descr); virtual ~BatchTest(); bool test(); std::string test_connection(); std::string test_filecopy(); std::string test_getresult(); std::string test_jobsubmit_simple(); std::string test_jobsubmit_mpi(); std::string test_appli(); protected: std::string get_home(std::string * home); private: Engines::ResourceDefinition _batch_descr; std::string _test_filename; std::string _base_filename; std::string _date; }; #endif salome-kernel-6.5.0/src/Launcher/Launcher.cxx000077500000000000000000000514761177004724000211170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WITH_LIBBATCH #include #include #include #include #endif #include "Basics_Utils.hxx" #include "Basics_DirUtils.hxx" #include "SALOME_Launcher_Handler.hxx" #include "Launcher.hxx" #include "Launcher_Job_Command.hxx" #include #include #include #include //============================================================================= /*! * Constructor * \param orb * Define a CORBA single thread policy for the server, which avoid to deal * with non thread-safe usage like Change_Directory in SALOME naming service */ //============================================================================= Launcher_cpp::Launcher_cpp() { LAUNCHER_MESSAGE("Launcher_cpp constructor"); _job_cpt = 0; _job_cpt_mutex = new pthread_mutex_t(); pthread_mutex_init(_job_cpt_mutex, NULL); } //============================================================================= /*! * destructor */ //============================================================================= Launcher_cpp::~Launcher_cpp() { LAUNCHER_MESSAGE("Launcher_cpp destructor"); #ifdef WITH_LIBBATCH std::map::const_iterator it_job; for(it_job = _launcher_job_map.begin(); it_job != _launcher_job_map.end(); it_job++) delete it_job->second; std::map ::const_iterator it1; for(it1=_batchmap.begin();it1!=_batchmap.end();it1++) delete it1->second; #endif pthread_mutex_destroy(_job_cpt_mutex); delete _job_cpt_mutex; } #ifdef WITH_LIBBATCH //============================================================================= /*! * Add a job into the launcher - check resource and choose one */ //============================================================================= void Launcher_cpp::createJob(Launcher::Job * new_job) { LAUNCHER_MESSAGE("Creating a new job"); // Add job to the jobs map pthread_mutex_lock(_job_cpt_mutex); new_job->setNumber(_job_cpt); _job_cpt++; pthread_mutex_unlock(_job_cpt_mutex); std::map::const_iterator it_job = _launcher_job_map.find(new_job->getNumber()); if (it_job == _launcher_job_map.end()) _launcher_job_map[new_job->getNumber()] = new_job; else { LAUNCHER_INFOS("A job as already the same id: " << new_job->getNumber()); delete new_job; throw LauncherException("A job as already the same id - job is not created !"); } LAUNCHER_MESSAGE("New Job created"); } //============================================================================= /*! * Launch a job */ //============================================================================= void Launcher_cpp::launchJob(int job_id) { LAUNCHER_MESSAGE("Launch a job"); // Check if job exist std::map::const_iterator it_job = _launcher_job_map.find(job_id); if (it_job == _launcher_job_map.end()) { LAUNCHER_INFOS("Cannot find the job, is it created ? job number: " << job_id); throw LauncherException("Cannot find the job, is it created ?"); } Launcher::Job * job = it_job->second; // Check job state (cannot launch a job already launched...) if (job->getState() != "CREATED") { LAUNCHER_INFOS("Bad state of the job: " << job->getState()); throw LauncherException("Bad state of the job: " + job->getState()); } // Third step search batch manager for the job into the map -> instanciate one if does not exist #ifdef WITH_LIBBATCH std::map::const_iterator it = _batchmap.find(job_id); if(it == _batchmap.end()) { createBatchManagerForJob(job); } #endif try { Batch::JobId batch_manager_job_id = _batchmap[job_id]->submitJob(*(job->getBatchJob())); job->setBatchManagerJobId(batch_manager_job_id); job->setState("QUEUED"); } catch(const Batch::EmulationException &ex) { LAUNCHER_INFOS("Job is not launched, exception in submitJob: " << ex.message); throw LauncherException(ex.message.c_str()); } LAUNCHER_MESSAGE("Job launched"); } //============================================================================= /*! * Get job state */ //============================================================================= const char * Launcher_cpp::getJobState(int job_id) { LAUNCHER_MESSAGE("Get job state"); // Check if job exist std::map::const_iterator it_job = _launcher_job_map.find(job_id); if (it_job == _launcher_job_map.end()) { LAUNCHER_INFOS("Cannot find the job, is it created ? job number: " << job_id); throw LauncherException("Cannot find the job, is it created ?"); } Launcher::Job * job = it_job->second; std::string state; try { state = job->updateJobState(); } catch(const Batch::EmulationException &ex) { LAUNCHER_INFOS("getJobState failed, exception: " << ex.message); throw LauncherException(ex.message.c_str()); } catch(const Batch::RunTimeException &ex) { LAUNCHER_INFOS("getJobState failed, exception: " << ex.message); throw LauncherException(ex.message.c_str()); } return state.c_str(); } //============================================================================= /*! * Get Job result - the result directory could be changed */ //============================================================================= void Launcher_cpp::getJobResults(int job_id, std::string directory) { LAUNCHER_MESSAGE("Get Job results"); // Check if job exist std::map::const_iterator it_job = _launcher_job_map.find(job_id); if (it_job == _launcher_job_map.end()) { LAUNCHER_INFOS("Cannot find the job, is it created ? job number: " << job_id); throw LauncherException("Cannot find the job, is it created ?"); } Launcher::Job * job = it_job->second; std::string resource_name = job->getResourceDefinition().Name; try { if (directory != "") _batchmap[job_id]->importOutputFiles(*(job->getBatchJob()), directory); else _batchmap[job_id]->importOutputFiles(*(job->getBatchJob()), job->getResultDirectory()); } catch(const Batch::EmulationException &ex) { LAUNCHER_INFOS("getJobResult is maybe incomplete, exception: " << ex.message); throw LauncherException(ex.message.c_str()); } LAUNCHER_MESSAGE("getJobResult ended"); } //============================================================================= /*! * Get Job dump state - the result directory could be changed */ //============================================================================= bool Launcher_cpp::getJobDumpState(int job_id, std::string directory) { bool rtn; LAUNCHER_MESSAGE("Get Job dump state"); // Check if job exist std::map::const_iterator it_job = _launcher_job_map.find(job_id); if (it_job == _launcher_job_map.end()) { LAUNCHER_INFOS("Cannot find the job, is it created ? job number: " << job_id); throw LauncherException("Cannot find the job, is it created ?"); } Launcher::Job * job = it_job->second; std::string resource_name = job->getResourceDefinition().Name; try { if (directory != "") rtn = _batchmap[job_id]->importDumpStateFile(*(job->getBatchJob()), directory); else rtn = _batchmap[job_id]->importDumpStateFile(*(job->getBatchJob()), job->getResultDirectory()); } catch(const Batch::EmulationException &ex) { LAUNCHER_INFOS("getJobResult is maybe incomplete, exception: " << ex.message); throw LauncherException(ex.message.c_str()); } LAUNCHER_MESSAGE("getJobResult ended"); return rtn; } //============================================================================= /*! * Remove the job - into the Launcher and its batch manager */ //============================================================================= void Launcher_cpp::removeJob(int job_id) { LAUNCHER_MESSAGE("Remove Job"); // Check if job exist std::map::iterator it_job = _launcher_job_map.find(job_id); if (it_job == _launcher_job_map.end()) { LAUNCHER_INFOS("Cannot find the job, is it created ? job number: " << job_id); throw LauncherException("Cannot find the job, is it created ?"); } it_job->second->removeJob(); delete it_job->second; _launcher_job_map.erase(it_job); } //============================================================================= /*! * stop the job */ //============================================================================= void Launcher_cpp::stopJob(int job_id) { LAUNCHER_MESSAGE("Stop Job"); // Check if job exist std::map::iterator it_job = _launcher_job_map.find(job_id); if (it_job == _launcher_job_map.end()) { LAUNCHER_INFOS("Cannot find the job, is it created ? job number: " << job_id); throw LauncherException("Cannot find the job, is it created ?"); } it_job->second->stopJob(); } //============================================================================= /*! * create a launcher job based on a file * \param xmlExecuteFile : to define the execution on the batch cluster */ //============================================================================= long Launcher_cpp::createJobWithFile(const std::string xmlExecuteFile, const std::string clusterName) { LAUNCHER_MESSAGE("Begin of Launcher_cpp::createJobWithFile"); // Parsing xml file ParserLauncherType job_params = ParseXmlFile(xmlExecuteFile); // Creating a new job Launcher::Job_Command * new_job = new Launcher::Job_Command(); std::string cmdFile = Kernel_Utils::GetTmpFileName(); #ifndef WIN32 cmdFile += ".sh"; #else cmdFile += ".bat"; #endif std::ofstream os; os.open(cmdFile.c_str(), std::ofstream::out ); os << "#! /bin/sh" << std::endl; os << job_params.Command; os.close(); new_job->setJobFile(cmdFile); new_job->setLocalDirectory(job_params.RefDirectory); new_job->setWorkDirectory(job_params.MachinesList[clusterName].WorkDirectory); new_job->setEnvFile(job_params.MachinesList[clusterName].EnvFile); for(int i=0; i < job_params.InputFile.size(); i++) new_job->add_in_file(job_params.InputFile[i]); for(int i=0; i < job_params.OutputFile.size();i++) new_job->add_out_file(job_params.OutputFile[i]); resourceParams p; p.hostname = clusterName; p.name = ""; p.OS = ""; p.nb_proc = job_params.NbOfProcesses; p.nb_node = 0; p.nb_proc_per_node = 0; p.cpu_clock = 0; p.mem_mb = 0; new_job->setResourceRequiredParams(p); createJob(new_job); return new_job->getNumber(); } //============================================================================= /*! * Factory to instanciate the good batch manager for choosen cluster. */ //============================================================================= Batch::BatchManager_eClient * Launcher_cpp::FactoryBatchManager(ParserResourcesType& params) { std::string mpi; Batch::CommunicationProtocolType protocol; Batch::FactBatchManager_eClient* fact; int nb_proc_per_node = params.DataForSort._nbOfProcPerNode; std::string hostname = params.HostName; switch(params.Protocol) { case rsh: protocol = Batch::RSH; break; case ssh: protocol = Batch::SSH; break; default: throw LauncherException("Unknown protocol for this resource"); break; } switch(params.mpi) { case lam: mpi = "lam"; break; case mpich1: mpi = "mpich1"; break; case mpich2: mpi = "mpich2"; break; case openmpi: mpi = "openmpi"; break; case slurmmpi: mpi = "slurmmpi"; break; case prun: mpi = "prun"; break; default: mpi = "nompi"; } const char * bmType; switch( params.Batch ) { case pbs: bmType = "ePBS"; break; case lsf: bmType = "eLSF"; break; case sge: bmType = "eSGE"; break; case ccc: bmType = "eCCC"; break; case slurm: bmType = "eSLURM"; break; case ssh_batch: bmType = "eSSH"; break; case ll: bmType = "eLL"; break; case vishnu: bmType = "eVISHNU"; break; default: LAUNCHER_MESSAGE("Bad batch description of the resource: Batch = " << params.Batch); throw LauncherException("No batchmanager for that cluster - Bad batch description of the resource"); } Batch::BatchManagerCatalog & cata = Batch::BatchManagerCatalog::getInstance(); fact = dynamic_cast(cata(bmType)); if (fact == NULL) { LAUNCHER_MESSAGE("Cannot find batch manager factory for " << bmType << ". Check your version of libBatch."); throw LauncherException("Cannot find batch manager factory"); } LAUNCHER_MESSAGE("Instanciation of batch manager of type: " << bmType); Batch::BatchManager_eClient * batch_client = (*fact)(hostname.c_str(), params.UserName.c_str(), protocol, mpi.c_str(), nb_proc_per_node); return batch_client; } //---------------------------------------------------------- // Without LIBBATCH - Launcher_cpp do nothing... //---------------------------------------------------------- #else void Launcher_cpp::createJob(Launcher::Job * new_job) { LAUNCHER_INFOS("Launcher compiled without LIBBATCH - cannot create a job !!!"); delete new_job; throw LauncherException("Method Launcher_cpp::createJob is not available " "(libBatch was not present at compilation time)"); } void Launcher_cpp::launchJob(int job_id) { LAUNCHER_INFOS("Launcher compiled without LIBBATCH - cannot launch a job !!!"); throw LauncherException("Method Launcher_cpp::launchJob is not available " "(libBatch was not present at compilation time)"); } const char * Launcher_cpp::getJobState(int job_id) { LAUNCHER_INFOS("Launcher compiled without LIBBATCH - cannot get job state!!!"); throw LauncherException("Method Launcher_cpp::getJobState is not available " "(libBatch was not present at compilation time)"); } void Launcher_cpp::getJobResults(int job_id, std::string directory) { LAUNCHER_INFOS("Launcher compiled without LIBBATCH - cannot get job results!!!"); throw LauncherException("Method Launcher_cpp::getJobResults is not available " "(libBatch was not present at compilation time)"); } bool Launcher_cpp::getJobDumpState(int job_id, std::string directory) { LAUNCHER_INFOS("Launcher compiled without LIBBATCH - cannot get job dump state!!!"); throw LauncherException("Method Launcher_cpp::getJobDumpState is not available " "(libBatch was not present at compilation time)"); } void Launcher_cpp::removeJob(int job_id) { LAUNCHER_INFOS("Launcher compiled without LIBBATCH - cannot remove job!!!"); throw LauncherException("Method Launcher_cpp::removeJob is not available " "(libBatch was not present at compilation time)"); } void Launcher_cpp::stopJob(int job_id) { throw LauncherException("Method Launcher_cpp::stopJob is not available " "(libBatch was not present at compilation time)"); } long Launcher_cpp::createJobWithFile( const std::string xmlExecuteFile, std::string clusterName) { throw LauncherException("Method Launcher_cpp::createJobWithFile is not available " "(libBatch was not present at compilation time)"); return 0; } #endif ParserLauncherType Launcher_cpp::ParseXmlFile(std::string xmlExecuteFile) { ParserLauncherType job_params; SALOME_Launcher_Handler * handler = new SALOME_Launcher_Handler(job_params); const char* aFilePath = xmlExecuteFile.c_str(); FILE* aFile = fopen(aFilePath, "r"); if (aFile != NULL) { xmlDocPtr aDoc = xmlReadFile(aFilePath, NULL, 0); if (aDoc != NULL) handler->ProcessXmlDocument(aDoc); else { std::string message = "ResourcesManager_cpp: could not parse file: " + xmlExecuteFile; LAUNCHER_MESSAGE(message); delete handler; throw LauncherException(message); } // Free the document xmlFreeDoc(aDoc); fclose(aFile); } else { std::string message = "ResourcesManager_cpp: file is not readable: " + xmlExecuteFile; LAUNCHER_MESSAGE(message); delete handler; throw LauncherException(message); } // Return delete handler; return job_params; } std::map Launcher_cpp::getJobs() { return _launcher_job_map; } void Launcher_cpp::createBatchManagerForJob(Launcher::Job * job) { int job_id = job->getNumber(); // Select a ressource for the job std::vector ResourceList; resourceParams params = job->getResourceRequiredParams(); try { ResourceList = _ResManager->GetFittingResources(params); } catch(const ResourcesException &ex) { throw LauncherException(ex.msg.c_str()); } if (ResourceList.size() == 0) { LAUNCHER_INFOS("No adequate resource found for the job, number " << job->getNumber()); job->setState("ERROR"); throw LauncherException("No resource found the job"); } // Configure the job with the resource selected - the first of the list ParserResourcesType resource_definition = _ResManager->GetResourcesDescr(ResourceList[0]); // Set resource definition to the job // The job will check if the definitions needed try { job->setResourceDefinition(resource_definition); } catch(const LauncherException &ex) { LAUNCHER_INFOS("Error in the definition of the resource, mess: " << ex.msg); job->setState("ERROR"); throw ex; } // Step 2: We can now add a Factory if the resource is correctly define #ifdef WITH_LIBBATCH std::map::const_iterator it = _batchmap.find(job_id); if(it == _batchmap.end()) { try { // Warning cannot write on one line like this, because map object is constructed before // the method is called... //_batchmap[job_id] = FactoryBatchManager(resource_definition); Batch::BatchManager_eClient * batch_client = FactoryBatchManager(resource_definition); _batchmap[job_id] = batch_client; } catch(const LauncherException &ex) { LAUNCHER_INFOS("Error during creation of the batch manager of the job, mess: " << ex.msg); throw ex; } catch(const Batch::EmulationException &ex) { LAUNCHER_INFOS("Error during creation of the batch manager of the job, mess: " << ex.message); throw LauncherException(ex.message); } catch(const Batch::InvalidArgumentException &ex) { LAUNCHER_INFOS("Error during creation of the batch manager of the job, mess: " << ex.message); throw LauncherException(ex.message); } } #endif } void Launcher_cpp::addJobDirectlyToMap(Launcher::Job * new_job, const std::string job_reference) { // Step 0: Calculated job_id pthread_mutex_lock(_job_cpt_mutex); int job_id = _job_cpt; _job_cpt++; new_job->setNumber(job_id); pthread_mutex_unlock(_job_cpt_mutex); // Step 1: check if resource is already in the map createBatchManagerForJob(new_job); // Step 2: add the job to the batch manager #ifdef WITH_LIBBATCH try { Batch::JobId batch_manager_job_id = _batchmap[job_id]->addJob(*(new_job->getBatchJob()), job_reference); new_job->setBatchManagerJobId(batch_manager_job_id); } catch(const Batch::EmulationException &ex) { LAUNCHER_INFOS("Job cannot be added, exception in addJob: " << ex.message); throw LauncherException(ex.message.c_str()); } // Step 3: add job to launcher map std::map::const_iterator it_job = _launcher_job_map.find(new_job->getNumber()); if (it_job == _launcher_job_map.end()) _launcher_job_map[new_job->getNumber()] = new_job; else { LAUNCHER_INFOS("A job as already the same id: " << new_job->getNumber()); delete new_job; throw LauncherException("A job as already the same id - job is not created !"); } LAUNCHER_MESSAGE("New job added"); #endif } salome-kernel-6.5.0/src/Launcher/Launcher.hxx000077500000000000000000000055441177004724000211170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __LAUNCHER_HXX__ #define __LAUNCHER_HXX__ #include "Launcher_Utils.hxx" #include "Launcher_Job.hxx" #include "ResourcesManager.hxx" #include #include "SALOME_Launcher_Parser.hxx" #include #include #include class MpiImpl; namespace Batch{ class BatchManager_eClient; class Job; } struct batchParams{ std::string batch_directory; std::string expected_during_time; std::string mem; unsigned long nb_proc; }; class LAUNCHER_EXPORT Launcher_cpp { public: Launcher_cpp(); virtual ~Launcher_cpp(); // Main interface void createJob(Launcher::Job * new_job); void launchJob(int job_id); const char * getJobState(int job_id); void getJobResults(int job_id, std::string directory); bool getJobDumpState(int job_id, std::string directory); void stopJob(int job_id); void removeJob(int job_id); // Useful methods long createJobWithFile(std::string xmlExecuteFile, std::string clusterName); std::map getJobs(); void createBatchManagerForJob(Launcher::Job * job); void addJobDirectlyToMap(Launcher::Job * new_job, const std::string job_reference); // Lib methods void SetResourcesManager( ResourcesManager_cpp* rm ) {_ResManager = rm;} // Used by SALOME_Launcher ResourcesManager_cpp *_ResManager; protected: virtual void notifyObservers(const std::string & event_name, const std::string & event_data) {} // Methods used by user interface methods #ifdef WITH_LIBBATCH Batch::BatchManager_eClient *FactoryBatchManager(ParserResourcesType& params); std::map _batchmap; #endif ParserLauncherType ParseXmlFile(std::string xmlExecuteFile); std::map _launcher_job_map; int _job_cpt; // job number counter pthread_mutex_t * _job_cpt_mutex; // mutex for job counter }; #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job.cxx000077500000000000000000000440321177004724000216770ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #include "Launcher_Job.hxx" #include "Launcher.hxx" #ifdef WITH_LIBBATCH #include #endif Launcher::Job::Job() { _number = -1; _state = "CREATED"; _launch_date = getLaunchDate(); _env_file = ""; _job_name = ""; _job_file = ""; _job_file_name = ""; _job_file_name_complete = ""; _work_directory = ""; _local_directory = ""; _result_directory = ""; _maximum_duration = ""; _maximum_duration_in_second = -1; _resource_required_params.name = ""; _resource_required_params.hostname = ""; _resource_required_params.OS = ""; _resource_required_params.nb_proc = -1; _resource_required_params.nb_node = -1; _resource_required_params.nb_proc_per_node = -1; _resource_required_params.cpu_clock = -1; _resource_required_params.mem_mb = -1; _queue = ""; _job_type = ""; #ifdef WITH_LIBBATCH _batch_job = new Batch::Job(); #endif } Launcher::Job::~Job() { LAUNCHER_MESSAGE("Deleting job number: " << _number); #ifdef WITH_LIBBATCH if (_batch_job) delete _batch_job; #endif } void Launcher::Job::stopJob() { LAUNCHER_MESSAGE("Stop resquested for job number: " << _number); setState("FAILED"); #ifdef WITH_LIBBATCH if (_batch_job_id.getReference() != "undefined") { try { _batch_job_id.deleteJob(); } catch (const Batch::EmulationException &ex) { LAUNCHER_INFOS("WARNING: exception when stopping the job: " << ex.message); } } #endif } void Launcher::Job::removeJob() { LAUNCHER_MESSAGE("Removing job number: " << _number); #ifdef WITH_LIBBATCH if (_batch_job_id.getReference() != "undefined") { try { _batch_job_id.deleteJob(); } catch (const Batch::EmulationException &ex) { LAUNCHER_INFOS("WARNING: exception when removing the job: " << ex.message); } } #endif } std::string Launcher::Job::getJobType() { return _job_type; } void Launcher::Job::setJobName(const std::string & job_name) { _job_name = job_name; } std::string Launcher::Job::getJobName() { return _job_name; } void Launcher::Job::setState(const std::string & state) { // State of a Job: CREATED, QUEUED, RUNNING, FINISHED, FAILED if (state != "CREATED" && state != "IN_PROCESS" && state != "QUEUED" && state != "RUNNING" && state != "PAUSED" && state != "FINISHED" && state != "FAILED" && state != "ERROR") { throw LauncherException("Bad state, this state does not exist: " + state); } _state = state; } std::string Launcher::Job::getState() { return _state; } void Launcher::Job::setNumber(const int & number) { if (_number != -1) std::cerr << "Launcher::Job::setNumber -- Job number was already defined, before: " << _number << " now: " << number << std::endl; _number = number; } int Launcher::Job::getNumber() { return _number; } void Launcher::Job::setResourceDefinition(const ParserResourcesType & resource_definition) { // Check machine_definition std::string user_name = ""; if (resource_definition.UserName == "") { user_name = getenv("USER"); if (user_name == "") { std::string mess = "You must define a user name: into your resource description or with env variable USER"; throw LauncherException(mess); } } else user_name = resource_definition.UserName; _resource_definition = resource_definition; _resource_definition.UserName = user_name; } ParserResourcesType Launcher::Job::getResourceDefinition() { return _resource_definition; } void Launcher::Job::setJobFile(const std::string & job_file) { // Check job file if (job_file == "") { std::string mess = "Empty Job File is forbidden !"; throw LauncherException(mess); } _job_file = job_file; std::string::size_type p1 = _job_file.find_last_of("/"); std::string::size_type p2 = _job_file.find_last_of("."); _job_file_name_complete = _job_file.substr(p1+1); _job_file_name = _job_file.substr(p1+1,p2-p1-1); } std::string Launcher::Job::getJobFile() { return _job_file; } void Launcher::Job::setEnvFile(const std::string & env_file) { _env_file = env_file; } std::string Launcher::Job::getEnvFile() { return _env_file; } void Launcher::Job::setWorkDirectory(const std::string & work_directory) { _work_directory = work_directory; } void Launcher::Job::setLocalDirectory(const std::string & local_directory) { _local_directory = local_directory; } void Launcher::Job::setResultDirectory(const std::string & result_directory) { _result_directory = result_directory; } void Launcher::Job::add_in_file(const std::string & file) { std::list::iterator it = std::find(_in_files.begin(), _in_files.end(), file); if (it == _in_files.end()) _in_files.push_back(file); else std::cerr << "Launcher::Job::add_in_file -- Warning file was already entered in in_files: " << file << std::endl; } void Launcher::Job::add_out_file(const std::string & file) { std::list::iterator it = std::find(_out_files.begin(), _out_files.end(), file); if (it == _out_files.end()) _out_files.push_back(file); else std::cerr << "Launcher::Job::add_out_file -- Warning file was already entered in out_files: " << file << std::endl; } void Launcher::Job::setMaximumDuration(const std::string & maximum_duration) { checkMaximumDuration(maximum_duration); _maximum_duration_in_second = convertMaximumDuration(maximum_duration); _maximum_duration = maximum_duration; } void Launcher::Job::setResourceRequiredParams(const resourceParams & resource_required_params) { checkResourceRequiredParams(resource_required_params); _resource_required_params = resource_required_params; } void Launcher::Job::setQueue(const std::string & queue) { _queue = queue; } std::string Launcher::Job::getWorkDirectory() { return _work_directory; } std::string Launcher::Job::getLocalDirectory() { return _local_directory; } std::string Launcher::Job::getResultDirectory() { return _result_directory; } const std::list & Launcher::Job::get_in_files() { return _in_files; } const std::list & Launcher::Job::get_out_files() { return _out_files; } std::string Launcher::Job::getMaximumDuration() { return _maximum_duration; } resourceParams Launcher::Job::getResourceRequiredParams() { return _resource_required_params; } std::string Launcher::Job::getQueue() { return _queue; } void Launcher::Job::checkMaximumDuration(const std::string & maximum_duration) { std::string result(""); std::string edt_value = maximum_duration; std::size_t pos = edt_value.find(":"); if (edt_value != "") { if (pos == edt_value.npos) { throw LauncherException("[Launcher::Job::checkMaximumDuration] Error on definition: " + edt_value); } std::string begin_edt_value = edt_value.substr(0, pos); std::string mid_edt_value = edt_value.substr(pos, 1); std::string end_edt_value = edt_value.substr(pos + 1, edt_value.npos); long value; std::istringstream iss(begin_edt_value); if (!(iss >> value)) { result = "[Launcher::Job::checkExpectedDuration] Error on definition ! : " + edt_value; } else if (value < 0) { result = "[Launcher::Job::checkExpectedDuration] Error on definition time is negative ! : " + value; } std::istringstream iss_2(end_edt_value); if (!(iss_2 >> value)) { result = "[Launcher::Job::checkExpectedDuration] Error on definition ! : " + edt_value; } else if (value < 0) { result = "[Launcher::Job::checkExpectedDuration] Error on definition time is negative ! : " + value; } if (mid_edt_value != ":") { result = "[Launcher::Job::checkExpectedDuration] Error on definition ! :" + edt_value; } } if (result != "") throw LauncherException(result); } void Launcher::Job::checkResourceRequiredParams(const resourceParams & resource_required_params) { // nb_proc has be to > 0 if (resource_required_params.nb_proc <= 0) { std::string message("[Launcher::Job::checkResourceRequiredParams] proc number is not > 0 ! "); throw LauncherException(message); } } long Launcher::Job::convertMaximumDuration(const std::string & edt) { long hh, mm, ret; if( edt.size() == 0 ) return -1; std::string::size_type pos = edt.find(":"); std::string h = edt.substr(0,pos); std::string m = edt.substr(pos+1,edt.size()-pos+1); std::istringstream issh(h); issh >> hh; std::istringstream issm(m); issm >> mm; ret = hh*60 + mm; ret = ret * 60; return ret; } std::string Launcher::Job::getLaunchDate() { time_t rawtime; time(&rawtime); std::string launch_date = ctime(&rawtime); int i = 0 ; for (;i < launch_date.size(); i++) if (launch_date[i] == '/' || launch_date[i] == '-' || launch_date[i] == ':' || launch_date[i] == ' ') launch_date[i] = '_'; launch_date.erase(--launch_date.end()); // Last caracter is a \n return launch_date; } std::string Launcher::Job::updateJobState() { if (_state != "FINISHED" && _state != "ERROR" && _state != "FAILED") { #ifdef WITH_LIBBATCH if (_batch_job_id.getReference() != "undefined") { // A batch manager has been affected to the job Batch::JobInfo job_info = _batch_job_id.queryJob(); Batch::Parametre par = job_info.getParametre(); _state = par[Batch::STATE].str(); LAUNCHER_MESSAGE("State received is: " << par[Batch::STATE].str()); } #endif } return _state; } #ifdef WITH_LIBBATCH Batch::Job * Launcher::Job::getBatchJob() { update_job(); return _batch_job; } Batch::Parametre Launcher::Job::common_job_params() { Batch::Parametre params; params[Batch::NAME] = getJobName(); params[Batch::USER] = _resource_definition.UserName; params[Batch::NBPROC] = _resource_required_params.nb_proc; // Memory in megabytes if (_resource_required_params.mem_mb > 0) { params[Batch::MAXRAMSIZE] = _resource_required_params.mem_mb; } // We define a default directory based on user time if (_work_directory == "") { std::string thedate; Batch::Date date = Batch::Date(time(0)); thedate = date.str(); int lend = thedate.size() ; int i = 0 ; while ( i < lend ) { if ( thedate[i] == '/' || thedate[i] == '-' || thedate[i] == ':' ) { thedate[i] = '_' ; } i++ ; } _work_directory = std::string("$HOME/Batch/"); _work_directory += thedate; } params[Batch::WORKDIR] = _work_directory; params[Batch::TMPDIR] = _work_directory; // To Compatibility -- remove ??? TODO // If result_directory is not defined, we use HOME environnement if (_result_directory == "") _result_directory = getenv("HOME"); // _in_files std::list in_files(_in_files); in_files.push_back(_job_file); if (_env_file != "") in_files.push_back(_env_file); for(std::list::iterator it = in_files.begin(); it != in_files.end(); it++) { std::string file = *it; // local file -> If file is not an absolute path, we apply _local_directory std::string local_file; if (file.substr(0, 1) == std::string("/")) local_file = file; else local_file = _local_directory + "/" + file; // remote file -> get only file name from in_files size_t found = file.find_last_of("/"); std::string remote_file = _work_directory + "/" + file.substr(found+1); params[Batch::INFILE] += Batch::Couple(local_file, remote_file); } // _out_files for(std::list::iterator it = _out_files.begin(); it != _out_files.end(); it++) { std::string file = *it; // local file size_t found = file.find_last_of("/"); std::string local_file = _result_directory + "/" + file.substr(found+1); // remote file -> If file is not an absolute path, we apply _work_directory std::string remote_file; if (file.substr(0, 1) == std::string("/")) remote_file = file; else remote_file = _work_directory + "/" + file; params[Batch::OUTFILE] += Batch::Couple(local_file, remote_file); } // Time if (_maximum_duration_in_second != -1) params[Batch::MAXWALLTIME] = _maximum_duration_in_second / 60; // Queue if (_queue != "") params[Batch::QUEUE] = _queue; // Specific parameters std::map::iterator it = _specific_parameters.find("LoalLevelerJobType"); if (it != _specific_parameters.end()) params["LL_JOBTYPE"] = it->second; return params; } void Launcher::Job::setBatchManagerJobId(Batch::JobId batch_manager_job_id) { _batch_job_id = batch_manager_job_id; } Batch::JobId Launcher::Job::getBatchManagerJobId() { return _batch_job_id; } #endif void Launcher::Job::addToXmlDocument(xmlNodePtr root_node) { // Begin job xmlNodePtr job_node = xmlNewChild(root_node, NULL, xmlCharStrdup("job"), NULL); xmlNewProp(job_node, xmlCharStrdup("type"), xmlCharStrdup(getJobType().c_str())); xmlNewProp(job_node, xmlCharStrdup("name"), xmlCharStrdup(getJobName().c_str())); // Add user part xmlNodePtr node = xmlNewChild(job_node, NULL, xmlCharStrdup("user_part"), NULL); xmlNewChild(node, NULL, xmlCharStrdup("job_file"), xmlCharStrdup(getJobFile().c_str())); xmlNewChild(node, NULL, xmlCharStrdup("env_file"), xmlCharStrdup(getEnvFile().c_str())); xmlNewChild(node, NULL, xmlCharStrdup("work_directory"), xmlCharStrdup(getWorkDirectory().c_str())); xmlNewChild(node, NULL, xmlCharStrdup("local_directory"), xmlCharStrdup(getLocalDirectory().c_str())); xmlNewChild(node, NULL, xmlCharStrdup("result_directory"), xmlCharStrdup(getResultDirectory().c_str())); // Files xmlNodePtr files_node = xmlNewChild(node, NULL, xmlCharStrdup("files"), NULL); std::list in_files = get_in_files(); std::list out_files = get_out_files(); for(std::list::iterator it = in_files.begin(); it != in_files.end(); it++) xmlNewChild(files_node, NULL, xmlCharStrdup("in_file"), xmlCharStrdup((*it).c_str())); for(std::list::iterator it = out_files.begin(); it != out_files.end(); it++) xmlNewChild(files_node, NULL, xmlCharStrdup("out_file"), xmlCharStrdup((*it).c_str())); // Resource part resourceParams resource_params = getResourceRequiredParams(); xmlNodePtr res_node = xmlNewChild(node, NULL, xmlCharStrdup("resource_params"), NULL); xmlNewChild(res_node, NULL, xmlCharStrdup("name"), xmlCharStrdup(resource_params.name.c_str())); xmlNewChild(res_node, NULL, xmlCharStrdup("hostname"), xmlCharStrdup(resource_params.hostname.c_str())); xmlNewChild(res_node, NULL, xmlCharStrdup("OS"), xmlCharStrdup(resource_params.OS.c_str())); std::ostringstream nb_proc_stream; std::ostringstream nb_node_stream; std::ostringstream nb_proc_per_node_stream; std::ostringstream cpu_clock_stream; std::ostringstream mem_mb_stream; nb_proc_stream << resource_params.nb_proc; nb_node_stream << resource_params.nb_node; nb_proc_per_node_stream << resource_params.nb_proc_per_node; cpu_clock_stream << resource_params.cpu_clock; mem_mb_stream << resource_params.mem_mb; xmlNewChild(res_node, NULL, xmlCharStrdup("nb_proc"), xmlCharStrdup(nb_proc_stream.str().c_str())); xmlNewChild(res_node, NULL, xmlCharStrdup("nb_node"), xmlCharStrdup(nb_node_stream.str().c_str())); xmlNewChild(res_node, NULL, xmlCharStrdup("nb_proc_per_node"), xmlCharStrdup(nb_proc_per_node_stream.str().c_str())); xmlNewChild(res_node, NULL, xmlCharStrdup("cpu_clock"), xmlCharStrdup(cpu_clock_stream.str().c_str())); xmlNewChild(res_node, NULL, xmlCharStrdup("mem_mb"), xmlCharStrdup(mem_mb_stream.str().c_str())); xmlNewChild(node, NULL, xmlCharStrdup("maximum_duration"), xmlCharStrdup(getMaximumDuration().c_str())); xmlNewChild(node, NULL, xmlCharStrdup("queue"), xmlCharStrdup(getQueue().c_str())); // Specific parameters part xmlNodePtr specific_parameters_node = xmlNewChild(node, NULL, xmlCharStrdup("specific_parameters"), NULL); std::map specific_parameters = getSpecificParameters(); for(std::map::iterator it = specific_parameters.begin(); it != specific_parameters.end(); it++) { xmlNodePtr specific_parameter_node = xmlNewChild(specific_parameters_node, NULL, xmlCharStrdup("specific_parameter"), NULL); xmlNewChild(specific_parameter_node, NULL, xmlCharStrdup("name"), xmlCharStrdup((it->first).c_str())); xmlNewChild(specific_parameter_node, NULL, xmlCharStrdup("value"), xmlCharStrdup((it->second).c_str())); } // Run part xmlNodePtr run_node = xmlNewChild(job_node, NULL, xmlCharStrdup("run_part"), NULL); xmlNewChild(run_node, NULL, xmlCharStrdup("job_state"), xmlCharStrdup(getState().c_str())); ParserResourcesType resource_definition = getResourceDefinition(); xmlNewChild(run_node, NULL, xmlCharStrdup("resource_choosed_name"), xmlCharStrdup(resource_definition.Name.c_str())); #ifdef WITH_LIBBATCH Batch::JobId job_id = getBatchManagerJobId(); xmlNewChild(run_node, NULL, xmlCharStrdup("job_reference"), xmlCharStrdup(job_id.getReference().c_str())); #endif } void Launcher::Job::addSpecificParameter(const std::string & name, const std::string & value) { _specific_parameters[name] = value; } const std::map & Launcher::Job::getSpecificParameters() { return _specific_parameters; } void Launcher::Job::checkSpecificParameters() { } salome-kernel-6.5.0/src/Launcher/Launcher_Job.hxx000077500000000000000000000115241177004724000217040ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #ifndef _LAUNCHER_JOB_HXX_ #define _LAUNCHER_JOB_HXX_ #include "Launcher_Utils.hxx" #include "ResourcesManager.hxx" #include #include #include #include #include #include #include #include #include #include #ifdef WITH_LIBBATCH #include #include #include #include #endif #include namespace Launcher { class LAUNCHER_EXPORT Job { public: Job(); virtual ~Job(); // Launcher managing parameters // State of a Job: CREATED, IN_PROCESS, QUEUED, RUNNING, PAUSED, FINISHED, ERROR void setState(const std::string & state); std::string getState(); void setNumber(const int & number); int getNumber(); virtual void setResourceDefinition(const ParserResourcesType & resource_definition); ParserResourcesType getResourceDefinition(); // Common parameters void setJobName(const std::string & job_name); virtual void setJobFile(const std::string & job_file); void setWorkDirectory(const std::string & work_directory); void setLocalDirectory(const std::string & local_directory); void setResultDirectory(const std::string & result_directory); void add_in_file(const std::string & file); void add_out_file(const std::string & file); void setMaximumDuration(const std::string & maximum_duration); void setResourceRequiredParams(const resourceParams & resource_required_params); void setQueue(const std::string & queue); void setEnvFile(const std::string & env_file); std::string getJobName(); std::string getJobFile(); std::string getWorkDirectory(); std::string getLocalDirectory(); std::string getResultDirectory(); const std::list & get_in_files(); const std::list & get_out_files(); std::string getMaximumDuration(); resourceParams getResourceRequiredParams(); std::string getQueue(); std::string getEnvFile(); std::string getJobType(); std::string updateJobState(); void addSpecificParameter(const std::string & name, const std::string & value); const std::map & getSpecificParameters(); virtual void checkSpecificParameters(); // Checks void checkMaximumDuration(const std::string & maximum_duration); void checkResourceRequiredParams(const resourceParams & resource_required_params); // Helps long convertMaximumDuration(const std::string & maximum_duration); std::string getLaunchDate(); // Xml method void addToXmlDocument(xmlNodePtr root_node); void stopJob(); void removeJob(); // Abstract class virtual void update_job() = 0; protected: int _number; std::string _job_type; std::string _state; std::string _launch_date; std::string _env_file; ParserResourcesType _resource_definition; std::string _job_name; std::string _job_file; std::string _job_file_name; std::string _job_file_name_complete; std::string _work_directory; std::string _local_directory; std::string _result_directory; std::list _in_files; std::list _out_files; std::map _specific_parameters; std::string _maximum_duration; long _maximum_duration_in_second; resourceParams _resource_required_params; std::string _queue; #ifdef WITH_LIBBATCH // Connection with LIBBATCH public: Batch::Job * getBatchJob(); Batch::Parametre common_job_params(); void setBatchManagerJobId(Batch::JobId batch_manager_job_id); Batch::JobId getBatchManagerJobId(); protected: Batch::Job * _batch_job; Batch::JobId _batch_job_id; #endif }; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job_Command.cxx000077500000000000000000000052411177004724000233340ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #include "Launcher_Job_Command.hxx" #ifdef WITH_LIBBATCH #include #endif #ifdef WNT #include #define _chmod chmod #endif Launcher::Job_Command::Job_Command() {_job_type = "command";} Launcher::Job_Command::~Job_Command() {} void Launcher::Job_Command::update_job() { #ifdef WITH_LIBBATCH Batch::Parametre params = common_job_params(); params[Batch::EXECUTABLE] = buildCommandScript(params, _launch_date); params[Batch::EXCLUSIVE] = false; _batch_job->setParametre(params); #endif } #ifdef WITH_LIBBATCH std::string Launcher::Job_Command::buildCommandScript(Batch::Parametre params, std::string launch_date) { // parameters std::string work_directory = params[Batch::WORKDIR].str(); // File name std::string launch_date_port_file = launch_date; std::string launch_script = "/tmp/runCommand_" + _job_file_name + "_" + launch_date + ".sh"; std::ofstream launch_script_stream; launch_script_stream.open(launch_script.c_str(), std::ofstream::out); // Script launch_script_stream << "#! /bin/bash -f" << std::endl; launch_script_stream << "cd " << work_directory << std::endl; launch_script_stream << "export PYTHONPATH=" << work_directory << ":$PYTHONPATH" << std::endl; launch_script_stream << "export PATH=" << work_directory << ":$PATH" << std::endl; if (_env_file != "") { std::string::size_type last = _env_file.find_last_of("/"); launch_script_stream << "source ./" << _env_file.substr(last+1) << std::endl; } launch_script_stream << "./" << _job_file_name_complete << " > " << work_directory <<"/logs/command_" << launch_date << ".log 2>&1" << std::endl; // Return launch_script_stream.flush(); launch_script_stream.close(); chmod(launch_script.c_str(), 0x1ED); chmod(_job_file.c_str(), 0x1ED); return launch_script; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job_Command.hxx000077500000000000000000000025761177004724000233510ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #ifndef _LAUNCHER_JOB_COMMAND_HXX_ #define _LAUNCHER_JOB_COMMAND_HXX_ #include "Launcher_Job.hxx" #include "Launcher.hxx" #ifdef WITH_LIBBATCH #include #endif namespace Launcher { class LAUNCHER_EXPORT Job_Command : virtual public Launcher::Job { public: Job_Command(); virtual ~Job_Command(); virtual void update_job(); #ifdef WITH_LIBBATCH protected: std::string buildCommandScript(Batch::Parametre params, std::string launch_date); #endif }; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job_PythonSALOME.cxx000077500000000000000000000026741177004724000241470ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #include "Launcher_Job_PythonSALOME.hxx" Launcher::Job_PythonSALOME::Job_PythonSALOME() {_job_type = "python_salome";} Launcher::Job_PythonSALOME::~Job_PythonSALOME() {} void Launcher::Job_PythonSALOME::setJobFile(const std::string & job_file) { Launcher::Job::setJobFile(job_file); } void Launcher::Job_PythonSALOME::addJobTypeSpecificScript(std::ofstream & launch_script_stream) { launch_script_stream << _resource_definition.AppliPath << "/runSession -p $appli_port python " << _job_file_name_complete << " > logs/python_" << _launch_date << ".log 2>&1" << std::endl; } salome-kernel-6.5.0/src/Launcher/Launcher_Job_PythonSALOME.hxx000077500000000000000000000024751177004724000241530ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #ifndef _LAUNCHER_JOB_PYTHONSALOME_HXX_ #define _LAUNCHER_JOB_PYTHONSALOME_HXX_ #include "Launcher_Job_SALOME.hxx" namespace Launcher { class LAUNCHER_EXPORT Job_PythonSALOME : virtual public Launcher::Job_SALOME { public: Job_PythonSALOME(); virtual ~Job_PythonSALOME(); virtual void setJobFile(const std::string & job_file); virtual void addJobTypeSpecificScript(std::ofstream & launch_script_stream); }; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job_SALOME.cxx000077500000000000000000000143161177004724000227410ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #include "Launcher_Job_SALOME.hxx" #ifdef WITH_LIBBATCH #include #endif #ifdef WNT #include #define _chmod chmod #endif Launcher::Job_SALOME::Job_SALOME() {} Launcher::Job_SALOME::~Job_SALOME() {} void Launcher::Job_SALOME::setResourceDefinition(const ParserResourcesType & resource_definition) { // Check resource_definition if (resource_definition.AppliPath == "") { std::string mess = "Resource definition must define an application path !, resource name is: " + resource_definition.Name; throw LauncherException(mess); } Launcher::Job::setResourceDefinition(resource_definition); } void Launcher::Job_SALOME::update_job() { #ifdef WITH_LIBBATCH Batch::Parametre params = common_job_params(); params[Batch::EXECUTABLE] = buildSalomeScript(params); params[Batch::EXCLUSIVE] = true; _batch_job->setParametre(params); #endif } #ifdef WITH_LIBBATCH std::string Launcher::Job_SALOME::buildSalomeScript(Batch::Parametre params) { // parameters std::string work_directory = params[Batch::WORKDIR].str(); std::string launch_script = "/tmp/runSalome_" + _job_file_name + "_" + _launch_date + ".sh"; std::ofstream launch_script_stream; launch_script_stream.open(launch_script.c_str(), std::ofstream::out); // Begin of script launch_script_stream << "#!/bin/sh -f" << std::endl; launch_script_stream << "cd " << work_directory << std::endl; launch_script_stream << "export PYTHONPATH=" << work_directory << ":$PYTHONPATH" << std::endl; launch_script_stream << "export PATH=" << work_directory << ":$PATH" << std::endl; if (_env_file != "") { std::string::size_type last = _env_file.find_last_of("/"); launch_script_stream << ". " << _env_file.substr(last+1) << std::endl; } launch_script_stream << "export SALOME_TMP_DIR=" << work_directory << "/logs" << std::endl; // -- Generates Catalog Resources std::string resource_protocol = ParserResourcesType::protocolToString(_resource_definition.ClusterInternalProtocol); launch_script_stream << "if [ \"x$LIBBATCH_NODEFILE\" != \"x\" ]; then " << std::endl; launch_script_stream << "CATALOG_FILE=" << "CatalogResources_" << _launch_date << ".xml" << std::endl; launch_script_stream << "export USER_CATALOG_RESOURCES_FILE=" << "$CATALOG_FILE" << std::endl; launch_script_stream << "echo '' > $CATALOG_FILE" << std::endl; launch_script_stream << "echo '' >> $CATALOG_FILE" << std::endl; launch_script_stream << "cat $LIBBATCH_NODEFILE | sort | uniq -c | while read nbproc host" << std::endl; launch_script_stream << "do" << std::endl; launch_script_stream << "echo '> $CATALOG_FILE" << std::endl; launch_script_stream << "echo ' userName=\"" << _resource_definition.UserName << "\"' >> $CATALOG_FILE" << std::endl; launch_script_stream << "echo ' appliPath=\"" << _resource_definition.AppliPath << "\"' >> $CATALOG_FILE" << std::endl; launch_script_stream << "echo ' mpi=\"" << _resource_definition.PrintMpiImplType() << "\"' >> $CATALOG_FILE" << std::endl; launch_script_stream << "echo ' nbOfNodes='\\\"$nbproc\\\" >> $CATALOG_FILE" << std::endl; launch_script_stream << "echo ' nbOfProcPerNode=\"1\"' >> $CATALOG_FILE" << std::endl; launch_script_stream << "echo '/>' >> $CATALOG_FILE" << std::endl; launch_script_stream << "done" << std::endl; launch_script_stream << "echo '' >> $CATALOG_FILE" << std::endl; launch_script_stream << "fi" << std::endl; // Create file for ns-port-log launch_script_stream << "NS_PORT_FILE_PATH=`mktemp " << _resource_definition.AppliPath << "/USERS/nsport_XXXXXX` &&\n"; launch_script_stream << "NS_PORT_FILE_NAME=`basename $NS_PORT_FILE_PATH` &&\n"; // Launch SALOME with an appli launch_script_stream << _resource_definition.AppliPath << "/runAppli --terminal --ns-port-log=$NS_PORT_FILE_NAME --server-launch-mode=fork "; launch_script_stream << "> logs/salome_" << _launch_date << ".log 2>&1 &&" << std::endl; launch_script_stream << "current=0 &&\n" << "stop=20 &&\n" << "while ! test -s $NS_PORT_FILE_PATH\n" << "do\n" << " sleep 2\n" << " current=$((current+1))\n" << " if [ \"$current\" -eq \"$stop\" ] ; then\n" << " echo Error Naming Service failed ! >&2\n" << " exit\n" << " fi\n" << "done &&\n" << "appli_port=`cat $NS_PORT_FILE_PATH` &&\n" << "rm $NS_PORT_FILE_PATH &&\n"; // Call real job type addJobTypeSpecificScript(launch_script_stream); // End launch_script_stream << _resource_definition.AppliPath << "/runSession -p $appli_port shutdownSalome.py" << std::endl; launch_script_stream << "sleep 10" << std::endl; // Return launch_script_stream.flush(); launch_script_stream.close(); chmod(launch_script.c_str(), 0x1ED); return launch_script; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job_SALOME.hxx000077500000000000000000000030171177004724000227420ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #ifndef _LAUNCHER_JOB_SALOME_HXX_ #define _LAUNCHER_JOB_SALOME_HXX_ #include "Launcher_Job.hxx" #include "Launcher.hxx" #ifdef WITH_LIBBATCH #include #endif namespace Launcher { class LAUNCHER_EXPORT Job_SALOME : virtual public Launcher::Job { public: Job_SALOME(); virtual ~Job_SALOME(); virtual void setResourceDefinition(const ParserResourcesType & resource_definition); virtual void update_job(); #ifdef WITH_LIBBATCH public: std::string buildSalomeScript(Batch::Parametre params); virtual void addJobTypeSpecificScript(std::ofstream & launch_script_stream) = 0; #endif }; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Job_YACSFile.cxx000077500000000000000000000040641177004724000233170ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #include "Launcher_Job_YACSFile.hxx" #include Launcher::Job_YACSFile::Job_YACSFile() { _job_type = "yacs_file"; _dumpState = -1; } Launcher::Job_YACSFile::~Job_YACSFile() {} void Launcher::Job_YACSFile::setJobFile(const std::string & job_file) { Launcher::Job::setJobFile(job_file); } void Launcher::Job_YACSFile::addJobTypeSpecificScript(std::ofstream & launch_script_stream) { launch_script_stream << _resource_definition.AppliPath << "/runSession -p $appli_port driver -k $appli_port " << _job_file_name_complete; if (_dumpState > 0) launch_script_stream << " --dump=" << _dumpState; launch_script_stream << " > logs/yacs_" << _launch_date << ".log 2>&1" << std::endl; } void Launcher::Job_YACSFile::checkSpecificParameters() { // Specific parameters std::map::iterator it = _specific_parameters.find("EnableDumpYACS"); if (it != _specific_parameters.end()) { // Decode info std::string user_value = it->second; std::istringstream iss(user_value); if (!(iss >> _dumpState)) throw LauncherException("Specific parameter EnableDumpYACS is not correctly defined: it should be an integer. Value given is " + user_value); } } salome-kernel-6.5.0/src/Launcher/Launcher_Job_YACSFile.hxx000077500000000000000000000025741177004724000233300ustar00rootroot00000000000000// Copyright (C) 2009-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #ifndef _LAUNCHER_JOB_YACSFILE_HXX_ #define _LAUNCHER_JOB_YACSFILE_HXX_ #include "Launcher_Job_SALOME.hxx" namespace Launcher { class LAUNCHER_EXPORT Job_YACSFile : virtual public Launcher::Job_SALOME { public: Job_YACSFile(); virtual ~Job_YACSFile(); virtual void setJobFile(const std::string & job_file); virtual void addJobTypeSpecificScript(std::ofstream & launch_script_stream); virtual void checkSpecificParameters(); protected: int _dumpState; }; } #endif salome-kernel-6.5.0/src/Launcher/Launcher_Utils.hxx000077500000000000000000000034451177004724000222750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author: André RIBES - EDF R&D // #ifndef __LAUNCHER_UTILS_HXX__ #define __LAUNCHER_UTILS_HXX__ #include #ifdef WIN32 # if defined LAUNCHER_EXPORTS || defined Launcher_EXPORTS # define LAUNCHER_EXPORT __declspec(dllexport) # else # define LAUNCHER_EXPORT __declspec(dllimport) # endif #else # define LAUNCHER_EXPORT #endif // MESSAGES #define LAUNCHER_MESS_INIT(deb) std::cerr << deb #define LAUNCHER_MESS_BEGIN(deb) LAUNCHER_MESS_INIT(deb)<<__FILE__ <<" ["<<__LINE__<<"] : " #define LAUNCHER_MESS_END std::endl; #define LAUNCHER_INFOS(msg) {LAUNCHER_MESS_BEGIN("- Trace ") << msg << LAUNCHER_MESS_END} #if defined(_DEBUG_) || defined(_DEBUG) #define LAUNCHER_MESSAGE(msg) {LAUNCHER_MESS_BEGIN("- Trace ") << msg << LAUNCHER_MESS_END} #else /* ifdef _DEBUG_*/ #define LAUNCHER_MESSAGE(msg) {} #endif /* ifdef _DEBUG_*/ class LAUNCHER_EXPORT LauncherException { public: const std::string msg; LauncherException(const std::string m) : msg(m) {} }; #endif salome-kernel-6.5.0/src/Launcher/Makefile.am000077500000000000000000000117651177004724000206630ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_Launcher_Parser.hxx \ SALOME_Launcher_Handler.hxx \ BatchTest.hxx \ SALOME_Launcher_defs.hxx \ SALOME_Launcher.hxx \ Launcher_Utils.hxx \ Launcher_Job.hxx \ Launcher_Job_Command.hxx \ Launcher_Job_SALOME.hxx \ Launcher_Job_PythonSALOME.hxx \ Launcher_Job_YACSFile.hxx \ Launcher.hxx # Scripts to be installed dist_salomescript_DATA = # These files are executable scripts dist_salomescript_SCRIPTS= # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @PYTHON_INCLUDES@ \ @MPI_INCLUDES@ \ @LIBXML_INCLUDES@ \ @LIBBATCH_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../Container \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ if WITH_LIBBATCH COMMON_CPPFLAGS += -DWITH_LIBBATCH endif # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @LIBBATCH_LIBS@ \ @MPI_LIBS@ \ @CORBA_LIBS@ \ @LIBXML_LIBS@ \ @PYTHON_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # if WITHONLYLAUNCHER lib_LTLIBRARIES = libLauncher.la else lib_LTLIBRARIES = libLauncher.la libSalomeLauncher.la endif libSalomeLauncher_la_SOURCES=\ BatchTest.cxx \ SALOME_Launcher.cxx libSalomeLauncher_la_CPPFLAGS =\ $(COMMON_CPPFLAGS) libSalomeLauncher_la_LDFLAGS =\ -no-undefined -version-info=0:0:0 \ @LDEXPDYNFLAGS@ libSalomeLauncher_la_LIBADD =\ $(COMMON_LIBS) libLauncher.la libLauncher_la_SOURCES=\ SALOME_Launcher_Parser.cxx \ SALOME_Launcher_Handler.cxx \ Launcher_Utils.hxx \ Launcher_Job.cxx \ Launcher_Job_Command.cxx \ Launcher_Job_SALOME.cxx \ Launcher_Job_PythonSALOME.cxx \ Launcher_Job_YACSFile.cxx \ Launcher.cxx libLauncher_la_CPPFLAGS =\ -I$(srcdir)/../Basics \ -I$(srcdir)/../ResourcesManager \ @LIBBATCH_INCLUDES@ \ @MPI_INCLUDES@ \ @LIBXML_INCLUDES@ if WITH_LIBBATCH libLauncher_la_CPPFLAGS += -DWITH_LIBBATCH endif libLauncher_la_LDFLAGS =\ -no-undefined -version-info=0:0:0 \ @LDEXPDYNFLAGS@ libLauncher_la_LIBADD =\ ../ResourcesManager/libResourcesManager.la \ @LIBBATCH_LIBS@ \ @MPI_LIBS@ \ @LIBXML_LIBS@ # # =============================================================== # Executables targets # =============================================================== # if !WITHONLYLAUNCHER bin_PROGRAMS = SALOME_LauncherServer TestLauncher else bin_PROGRAMS = TestLauncher endif SALOME_LauncherServer_SOURCES =\ SALOME_LauncherServer.cxx SALOME_LauncherServer_CPPFLAGS=\ $(COMMON_CPPFLAGS) SALOME_LauncherServer_LDADD =\ libLauncher.la \ libSalomeLauncher.la \ ../Basics/libSALOMEBasics.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ @LIBBATCH_LIBS@ \ @MPI_LIBS@ \ @CORBA_LIBS@ \ @LIBXML_LIBS@ \ @PYTHON_LIBS@ TestLauncher_SOURCES = TestLauncher.cxx TestLauncher_CPPFLAGS = @LIBXML_INCLUDES@ -I$(srcdir)/../ResourcesManager @LIBBATCH_INCLUDES@ if WITH_LIBBATCH TestLauncher_CPPFLAGS += -DWITH_LIBBATCH endif TestLauncher_LDADD = \ @LIBXML_LIBS@ \ ../ResourcesManager/libResourcesManager.la \ libLauncher.la \ ../Utils/libOpUtil.la \ @LIBBATCH_LIBS@ salome-kernel-6.5.0/src/Launcher/Makefile.in000077500000000000000000001575221177004724000206760ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_DATA) $(dist_salomescript_SCRIPTS) \ $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am @WITH_LIBBATCH_TRUE@am__append_1 = -DWITH_LIBBATCH @WITH_LIBBATCH_TRUE@am__append_2 = -DWITH_LIBBATCH @WITHONLYLAUNCHER_FALSE@bin_PROGRAMS = SALOME_LauncherServer$(EXEEXT) \ @WITHONLYLAUNCHER_FALSE@ TestLauncher$(EXEEXT) @WITHONLYLAUNCHER_TRUE@bin_PROGRAMS = TestLauncher$(EXEEXT) @WITH_LIBBATCH_TRUE@am__append_3 = -DWITH_LIBBATCH subdir = src/Launcher ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libLauncher_la_DEPENDENCIES = \ ../ResourcesManager/libResourcesManager.la am_libLauncher_la_OBJECTS = libLauncher_la-SALOME_Launcher_Parser.lo \ libLauncher_la-SALOME_Launcher_Handler.lo \ libLauncher_la-Launcher_Job.lo \ libLauncher_la-Launcher_Job_Command.lo \ libLauncher_la-Launcher_Job_SALOME.lo \ libLauncher_la-Launcher_Job_PythonSALOME.lo \ libLauncher_la-Launcher_Job_YACSFile.lo \ libLauncher_la-Launcher.lo libLauncher_la_OBJECTS = $(am_libLauncher_la_OBJECTS) libLauncher_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libLauncher_la_LDFLAGS) $(LDFLAGS) -o $@ @WITHONLYLAUNCHER_FALSE@am_libLauncher_la_rpath = -rpath $(libdir) @WITHONLYLAUNCHER_TRUE@am_libLauncher_la_rpath = -rpath $(libdir) am__DEPENDENCIES_1 = ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSalomeLauncher_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ libLauncher.la am_libSalomeLauncher_la_OBJECTS = libSalomeLauncher_la-BatchTest.lo \ libSalomeLauncher_la-SALOME_Launcher.lo libSalomeLauncher_la_OBJECTS = $(am_libSalomeLauncher_la_OBJECTS) libSalomeLauncher_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeLauncher_la_LDFLAGS) $(LDFLAGS) -o $@ @WITHONLYLAUNCHER_FALSE@am_libSalomeLauncher_la_rpath = -rpath \ @WITHONLYLAUNCHER_FALSE@ $(libdir) PROGRAMS = $(bin_PROGRAMS) am_SALOME_LauncherServer_OBJECTS = \ SALOME_LauncherServer-SALOME_LauncherServer.$(OBJEXT) SALOME_LauncherServer_OBJECTS = $(am_SALOME_LauncherServer_OBJECTS) SALOME_LauncherServer_DEPENDENCIES = libLauncher.la \ libSalomeLauncher.la ../Basics/libSALOMEBasics.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la am_TestLauncher_OBJECTS = TestLauncher-TestLauncher.$(OBJEXT) TestLauncher_OBJECTS = $(am_TestLauncher_OBJECTS) TestLauncher_DEPENDENCIES = \ ../ResourcesManager/libResourcesManager.la libLauncher.la \ ../Utils/libOpUtil.la SCRIPTS = $(dist_salomescript_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libLauncher_la_SOURCES) $(libSalomeLauncher_la_SOURCES) \ $(SALOME_LauncherServer_SOURCES) $(TestLauncher_SOURCES) DIST_SOURCES = $(libLauncher_la_SOURCES) \ $(libSalomeLauncher_la_SOURCES) \ $(SALOME_LauncherServer_SOURCES) $(TestLauncher_SOURCES) DATA = $(dist_salomescript_DATA) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_Launcher_Parser.hxx \ SALOME_Launcher_Handler.hxx \ BatchTest.hxx \ SALOME_Launcher_defs.hxx \ SALOME_Launcher.hxx \ Launcher_Utils.hxx \ Launcher_Job.hxx \ Launcher_Job_Command.hxx \ Launcher_Job_SALOME.hxx \ Launcher_Job_PythonSALOME.hxx \ Launcher_Job_YACSFile.hxx \ Launcher.hxx # Scripts to be installed dist_salomescript_DATA = # These files are executable scripts dist_salomescript_SCRIPTS = # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = @PYTHON_INCLUDES@ @MPI_INCLUDES@ @LIBXML_INCLUDES@ \ @LIBBATCH_INCLUDES@ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../Container -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ $(am__append_1) # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @LIBBATCH_LIBS@ \ @MPI_LIBS@ \ @CORBA_LIBS@ \ @LIBXML_LIBS@ \ @PYTHON_LIBS@ @WITHONLYLAUNCHER_FALSE@lib_LTLIBRARIES = libLauncher.la libSalomeLauncher.la # # =============================================================== # Libraries targets # =============================================================== # @WITHONLYLAUNCHER_TRUE@lib_LTLIBRARIES = libLauncher.la libSalomeLauncher_la_SOURCES = \ BatchTest.cxx \ SALOME_Launcher.cxx libSalomeLauncher_la_CPPFLAGS = \ $(COMMON_CPPFLAGS) libSalomeLauncher_la_LDFLAGS = \ -no-undefined -version-info=0:0:0 \ @LDEXPDYNFLAGS@ libSalomeLauncher_la_LIBADD = \ $(COMMON_LIBS) libLauncher.la libLauncher_la_SOURCES = \ SALOME_Launcher_Parser.cxx \ SALOME_Launcher_Handler.cxx \ Launcher_Utils.hxx \ Launcher_Job.cxx \ Launcher_Job_Command.cxx \ Launcher_Job_SALOME.cxx \ Launcher_Job_PythonSALOME.cxx \ Launcher_Job_YACSFile.cxx \ Launcher.cxx libLauncher_la_CPPFLAGS = -I$(srcdir)/../Basics \ -I$(srcdir)/../ResourcesManager @LIBBATCH_INCLUDES@ \ @MPI_INCLUDES@ @LIBXML_INCLUDES@ $(am__append_2) libLauncher_la_LDFLAGS = \ -no-undefined -version-info=0:0:0 \ @LDEXPDYNFLAGS@ libLauncher_la_LIBADD = \ ../ResourcesManager/libResourcesManager.la \ @LIBBATCH_LIBS@ \ @MPI_LIBS@ \ @LIBXML_LIBS@ SALOME_LauncherServer_SOURCES = \ SALOME_LauncherServer.cxx SALOME_LauncherServer_CPPFLAGS = \ $(COMMON_CPPFLAGS) SALOME_LauncherServer_LDADD = \ libLauncher.la \ libSalomeLauncher.la \ ../Basics/libSALOMEBasics.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ @LIBBATCH_LIBS@ \ @MPI_LIBS@ \ @CORBA_LIBS@ \ @LIBXML_LIBS@ \ @PYTHON_LIBS@ TestLauncher_SOURCES = TestLauncher.cxx TestLauncher_CPPFLAGS = @LIBXML_INCLUDES@ \ -I$(srcdir)/../ResourcesManager @LIBBATCH_INCLUDES@ \ $(am__append_3) TestLauncher_LDADD = \ @LIBXML_LIBS@ \ ../ResourcesManager/libResourcesManager.la \ libLauncher.la \ ../Utils/libOpUtil.la \ @LIBBATCH_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Launcher/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Launcher/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libLauncher.la: $(libLauncher_la_OBJECTS) $(libLauncher_la_DEPENDENCIES) $(libLauncher_la_LINK) $(am_libLauncher_la_rpath) $(libLauncher_la_OBJECTS) $(libLauncher_la_LIBADD) $(LIBS) libSalomeLauncher.la: $(libSalomeLauncher_la_OBJECTS) $(libSalomeLauncher_la_DEPENDENCIES) $(libSalomeLauncher_la_LINK) $(am_libSalomeLauncher_la_rpath) $(libSalomeLauncher_la_OBJECTS) $(libSalomeLauncher_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_LauncherServer$(EXEEXT): $(SALOME_LauncherServer_OBJECTS) $(SALOME_LauncherServer_DEPENDENCIES) @rm -f SALOME_LauncherServer$(EXEEXT) $(CXXLINK) $(SALOME_LauncherServer_OBJECTS) $(SALOME_LauncherServer_LDADD) $(LIBS) TestLauncher$(EXEEXT): $(TestLauncher_OBJECTS) $(TestLauncher_DEPENDENCIES) @rm -f TestLauncher$(EXEEXT) $(CXXLINK) $(TestLauncher_OBJECTS) $(TestLauncher_LDADD) $(LIBS) install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(salomescriptdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(salomescriptdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_salomescriptSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestLauncher-TestLauncher.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-Launcher.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-Launcher_Job.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-Launcher_Job_Command.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-Launcher_Job_PythonSALOME.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-Launcher_Job_SALOME.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-Launcher_Job_YACSFile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-SALOME_Launcher_Handler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLauncher_la-SALOME_Launcher_Parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeLauncher_la-BatchTest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeLauncher_la-SALOME_Launcher.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libLauncher_la-SALOME_Launcher_Parser.lo: SALOME_Launcher_Parser.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-SALOME_Launcher_Parser.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-SALOME_Launcher_Parser.Tpo -c -o libLauncher_la-SALOME_Launcher_Parser.lo `test -f 'SALOME_Launcher_Parser.cxx' || echo '$(srcdir)/'`SALOME_Launcher_Parser.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-SALOME_Launcher_Parser.Tpo $(DEPDIR)/libLauncher_la-SALOME_Launcher_Parser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Launcher_Parser.cxx' object='libLauncher_la-SALOME_Launcher_Parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-SALOME_Launcher_Parser.lo `test -f 'SALOME_Launcher_Parser.cxx' || echo '$(srcdir)/'`SALOME_Launcher_Parser.cxx libLauncher_la-SALOME_Launcher_Handler.lo: SALOME_Launcher_Handler.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-SALOME_Launcher_Handler.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-SALOME_Launcher_Handler.Tpo -c -o libLauncher_la-SALOME_Launcher_Handler.lo `test -f 'SALOME_Launcher_Handler.cxx' || echo '$(srcdir)/'`SALOME_Launcher_Handler.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-SALOME_Launcher_Handler.Tpo $(DEPDIR)/libLauncher_la-SALOME_Launcher_Handler.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Launcher_Handler.cxx' object='libLauncher_la-SALOME_Launcher_Handler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-SALOME_Launcher_Handler.lo `test -f 'SALOME_Launcher_Handler.cxx' || echo '$(srcdir)/'`SALOME_Launcher_Handler.cxx libLauncher_la-Launcher_Job.lo: Launcher_Job.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-Launcher_Job.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-Launcher_Job.Tpo -c -o libLauncher_la-Launcher_Job.lo `test -f 'Launcher_Job.cxx' || echo '$(srcdir)/'`Launcher_Job.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-Launcher_Job.Tpo $(DEPDIR)/libLauncher_la-Launcher_Job.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Launcher_Job.cxx' object='libLauncher_la-Launcher_Job.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-Launcher_Job.lo `test -f 'Launcher_Job.cxx' || echo '$(srcdir)/'`Launcher_Job.cxx libLauncher_la-Launcher_Job_Command.lo: Launcher_Job_Command.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-Launcher_Job_Command.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-Launcher_Job_Command.Tpo -c -o libLauncher_la-Launcher_Job_Command.lo `test -f 'Launcher_Job_Command.cxx' || echo '$(srcdir)/'`Launcher_Job_Command.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-Launcher_Job_Command.Tpo $(DEPDIR)/libLauncher_la-Launcher_Job_Command.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Launcher_Job_Command.cxx' object='libLauncher_la-Launcher_Job_Command.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-Launcher_Job_Command.lo `test -f 'Launcher_Job_Command.cxx' || echo '$(srcdir)/'`Launcher_Job_Command.cxx libLauncher_la-Launcher_Job_SALOME.lo: Launcher_Job_SALOME.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-Launcher_Job_SALOME.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-Launcher_Job_SALOME.Tpo -c -o libLauncher_la-Launcher_Job_SALOME.lo `test -f 'Launcher_Job_SALOME.cxx' || echo '$(srcdir)/'`Launcher_Job_SALOME.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-Launcher_Job_SALOME.Tpo $(DEPDIR)/libLauncher_la-Launcher_Job_SALOME.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Launcher_Job_SALOME.cxx' object='libLauncher_la-Launcher_Job_SALOME.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-Launcher_Job_SALOME.lo `test -f 'Launcher_Job_SALOME.cxx' || echo '$(srcdir)/'`Launcher_Job_SALOME.cxx libLauncher_la-Launcher_Job_PythonSALOME.lo: Launcher_Job_PythonSALOME.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-Launcher_Job_PythonSALOME.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-Launcher_Job_PythonSALOME.Tpo -c -o libLauncher_la-Launcher_Job_PythonSALOME.lo `test -f 'Launcher_Job_PythonSALOME.cxx' || echo '$(srcdir)/'`Launcher_Job_PythonSALOME.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-Launcher_Job_PythonSALOME.Tpo $(DEPDIR)/libLauncher_la-Launcher_Job_PythonSALOME.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Launcher_Job_PythonSALOME.cxx' object='libLauncher_la-Launcher_Job_PythonSALOME.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-Launcher_Job_PythonSALOME.lo `test -f 'Launcher_Job_PythonSALOME.cxx' || echo '$(srcdir)/'`Launcher_Job_PythonSALOME.cxx libLauncher_la-Launcher_Job_YACSFile.lo: Launcher_Job_YACSFile.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-Launcher_Job_YACSFile.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-Launcher_Job_YACSFile.Tpo -c -o libLauncher_la-Launcher_Job_YACSFile.lo `test -f 'Launcher_Job_YACSFile.cxx' || echo '$(srcdir)/'`Launcher_Job_YACSFile.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-Launcher_Job_YACSFile.Tpo $(DEPDIR)/libLauncher_la-Launcher_Job_YACSFile.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Launcher_Job_YACSFile.cxx' object='libLauncher_la-Launcher_Job_YACSFile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-Launcher_Job_YACSFile.lo `test -f 'Launcher_Job_YACSFile.cxx' || echo '$(srcdir)/'`Launcher_Job_YACSFile.cxx libLauncher_la-Launcher.lo: Launcher.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLauncher_la-Launcher.lo -MD -MP -MF $(DEPDIR)/libLauncher_la-Launcher.Tpo -c -o libLauncher_la-Launcher.lo `test -f 'Launcher.cxx' || echo '$(srcdir)/'`Launcher.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLauncher_la-Launcher.Tpo $(DEPDIR)/libLauncher_la-Launcher.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Launcher.cxx' object='libLauncher_la-Launcher.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLauncher_la-Launcher.lo `test -f 'Launcher.cxx' || echo '$(srcdir)/'`Launcher.cxx libSalomeLauncher_la-BatchTest.lo: BatchTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeLauncher_la-BatchTest.lo -MD -MP -MF $(DEPDIR)/libSalomeLauncher_la-BatchTest.Tpo -c -o libSalomeLauncher_la-BatchTest.lo `test -f 'BatchTest.cxx' || echo '$(srcdir)/'`BatchTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeLauncher_la-BatchTest.Tpo $(DEPDIR)/libSalomeLauncher_la-BatchTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BatchTest.cxx' object='libSalomeLauncher_la-BatchTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeLauncher_la-BatchTest.lo `test -f 'BatchTest.cxx' || echo '$(srcdir)/'`BatchTest.cxx libSalomeLauncher_la-SALOME_Launcher.lo: SALOME_Launcher.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeLauncher_la-SALOME_Launcher.lo -MD -MP -MF $(DEPDIR)/libSalomeLauncher_la-SALOME_Launcher.Tpo -c -o libSalomeLauncher_la-SALOME_Launcher.lo `test -f 'SALOME_Launcher.cxx' || echo '$(srcdir)/'`SALOME_Launcher.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeLauncher_la-SALOME_Launcher.Tpo $(DEPDIR)/libSalomeLauncher_la-SALOME_Launcher.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Launcher.cxx' object='libSalomeLauncher_la-SALOME_Launcher.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLauncher_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeLauncher_la-SALOME_Launcher.lo `test -f 'SALOME_Launcher.cxx' || echo '$(srcdir)/'`SALOME_Launcher.cxx SALOME_LauncherServer-SALOME_LauncherServer.o: SALOME_LauncherServer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_LauncherServer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_LauncherServer-SALOME_LauncherServer.o -MD -MP -MF $(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Tpo -c -o SALOME_LauncherServer-SALOME_LauncherServer.o `test -f 'SALOME_LauncherServer.cxx' || echo '$(srcdir)/'`SALOME_LauncherServer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Tpo $(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_LauncherServer.cxx' object='SALOME_LauncherServer-SALOME_LauncherServer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_LauncherServer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_LauncherServer-SALOME_LauncherServer.o `test -f 'SALOME_LauncherServer.cxx' || echo '$(srcdir)/'`SALOME_LauncherServer.cxx SALOME_LauncherServer-SALOME_LauncherServer.obj: SALOME_LauncherServer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_LauncherServer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_LauncherServer-SALOME_LauncherServer.obj -MD -MP -MF $(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Tpo -c -o SALOME_LauncherServer-SALOME_LauncherServer.obj `if test -f 'SALOME_LauncherServer.cxx'; then $(CYGPATH_W) 'SALOME_LauncherServer.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_LauncherServer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Tpo $(DEPDIR)/SALOME_LauncherServer-SALOME_LauncherServer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_LauncherServer.cxx' object='SALOME_LauncherServer-SALOME_LauncherServer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_LauncherServer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_LauncherServer-SALOME_LauncherServer.obj `if test -f 'SALOME_LauncherServer.cxx'; then $(CYGPATH_W) 'SALOME_LauncherServer.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_LauncherServer.cxx'; fi` TestLauncher-TestLauncher.o: TestLauncher.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLauncher_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestLauncher-TestLauncher.o -MD -MP -MF $(DEPDIR)/TestLauncher-TestLauncher.Tpo -c -o TestLauncher-TestLauncher.o `test -f 'TestLauncher.cxx' || echo '$(srcdir)/'`TestLauncher.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestLauncher-TestLauncher.Tpo $(DEPDIR)/TestLauncher-TestLauncher.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestLauncher.cxx' object='TestLauncher-TestLauncher.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLauncher_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestLauncher-TestLauncher.o `test -f 'TestLauncher.cxx' || echo '$(srcdir)/'`TestLauncher.cxx TestLauncher-TestLauncher.obj: TestLauncher.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLauncher_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestLauncher-TestLauncher.obj -MD -MP -MF $(DEPDIR)/TestLauncher-TestLauncher.Tpo -c -o TestLauncher-TestLauncher.obj `if test -f 'TestLauncher.cxx'; then $(CYGPATH_W) 'TestLauncher.cxx'; else $(CYGPATH_W) '$(srcdir)/TestLauncher.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestLauncher-TestLauncher.Tpo $(DEPDIR)/TestLauncher-TestLauncher.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestLauncher.cxx' object='TestLauncher-TestLauncher.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLauncher_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestLauncher-TestLauncher.obj `if test -f 'TestLauncher.cxx'; then $(CYGPATH_W) 'TestLauncher.cxx'; else $(CYGPATH_W) '$(srcdir)/TestLauncher.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptDATA: $(dist_salomescript_DATA) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_DATA)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done uninstall-dist_salomescriptDATA: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_DATA)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \ $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptDATA \ install-dist_salomescriptSCRIPTS install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptDATA \ uninstall-dist_salomescriptSCRIPTS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptDATA \ install-dist_salomescriptSCRIPTS install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-dist_salomescriptDATA \ uninstall-dist_salomescriptSCRIPTS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Launcher/SALOME_Launcher.cxx000077500000000000000000001152511177004724000221470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_Launcher.hxx" #include "BatchTest.hxx" #include "OpUtil.hxx" #include "SALOME_ContainerManager.hxx" #include "Utils_CorbaException.hxx" #include "Launcher_Job_Command.hxx" #include "Launcher_Job_YACSFile.hxx" #include "Launcher_Job_PythonSALOME.hxx" #ifdef WIN32 # include #else # include #endif #include #include #include #include #include const char *SALOME_Launcher::_LauncherNameInNS = "/SalomeLauncher"; //============================================================================= /*! * Constructor * \param orb */ //============================================================================= SALOME_Launcher::SALOME_Launcher(CORBA::ORB_ptr orb, PortableServer::POA_var poa) : _l() { MESSAGE("SALOME_Launcher constructor"); _NS = new SALOME_NamingService(orb); _ResManager = new SALOME_ResourcesManager(orb,poa,_NS); _l.SetResourcesManager(_ResManager->GetImpl()); _ContManager = new SALOME_ContainerManager(orb,poa,_ResManager,_NS); _ResManager->_remove_ref(); _ContManager->_remove_ref(); _orb = CORBA::ORB::_duplicate(orb) ; _poa = PortableServer::POA::_duplicate(poa) ; PortableServer::ObjectId_var id = _poa->activate_object(this); CORBA::Object_var obj = _poa->id_to_reference(id); Engines::SalomeLauncher_var refContMan = Engines::SalomeLauncher::_narrow(obj); _NS->Register(refContMan,_LauncherNameInNS); MESSAGE("SALOME_Launcher constructor end"); } //============================================================================= /*! * destructor */ //============================================================================= SALOME_Launcher::~SALOME_Launcher() { MESSAGE("SALOME_Launcher destructor"); delete _NS; MESSAGE("SALOME_Launcher destructor end"); } CORBA::Long SALOME_Launcher::createJob(const Engines::JobParameters & job_parameters) { std::string job_type = job_parameters.job_type.in(); if (job_type != "command" && job_type != "yacs_file" && job_type != "python_salome") { std::string message("SALOME_Launcher::createJob: bad job type: "); message += job_type; THROW_SALOME_CORBA_EXCEPTION(message.c_str(), SALOME::INTERNAL_ERROR); } Launcher::Job * new_job; // It is Launcher_cpp that is going to destroy it if (job_type == "command") new_job = new Launcher::Job_Command(); else if (job_type == "yacs_file") new_job = new Launcher::Job_YACSFile(); else if (job_type == "python_salome") new_job = new Launcher::Job_PythonSALOME(); // Name new_job->setJobName(job_parameters.job_name.in()); // Directories std::string work_directory = job_parameters.work_directory.in(); std::string local_directory = job_parameters.local_directory.in(); std::string result_directory = job_parameters.result_directory.in(); new_job->setWorkDirectory(work_directory); new_job->setLocalDirectory(local_directory); new_job->setResultDirectory(result_directory); // Job File std::string job_file = job_parameters.job_file.in(); try { new_job->setJobFile(job_file); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR); } // Files std::string env_file = job_parameters.env_file.in(); new_job->setEnvFile(env_file); for (CORBA::ULong i = 0; i < job_parameters.in_files.length(); i++) new_job->add_in_file(job_parameters.in_files[i].in()); for (CORBA::ULong i = 0; i < job_parameters.out_files.length(); i++) new_job->add_out_file(job_parameters.out_files[i].in()); // Expected During Time try { std::string maximum_duration = job_parameters.maximum_duration.in(); new_job->setMaximumDuration(maximum_duration); } catch(const LauncherException &ex){ INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR); } // Queue std::string queue = job_parameters.queue.in(); new_job->setQueue(queue); // Resources requirements try { resourceParams p; p.name = job_parameters.resource_required.name; p.hostname = job_parameters.resource_required.hostname; p.OS = job_parameters.resource_required.OS; p.nb_proc = job_parameters.resource_required.nb_proc; p.nb_node = job_parameters.resource_required.nb_node; p.nb_proc_per_node = job_parameters.resource_required.nb_proc_per_node; p.cpu_clock = job_parameters.resource_required.cpu_clock; p.mem_mb = job_parameters.resource_required.mem_mb; new_job->setResourceRequiredParams(p); } catch(const LauncherException &ex){ INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR); } // Adding specific parameters to the job for (CORBA::ULong i = 0; i < job_parameters.specific_parameters.length(); i++) new_job->addSpecificParameter(job_parameters.specific_parameters[i].name.in(), job_parameters.specific_parameters[i].value.in()); try { new_job->checkSpecificParameters(); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR); } try { _l.createJob(new_job); std::ostringstream job_id; job_id << new_job->getNumber(); notifyObservers("NEW_JOB", job_id.str()); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } return new_job->getNumber(); } void SALOME_Launcher::launchJob(CORBA::Long job_id) { try { _l.launchJob(job_id); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } } char * SALOME_Launcher::getJobState(CORBA::Long job_id) { std::string result; try { result = _l.getJobState(job_id); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } return CORBA::string_dup(result.c_str()); } void SALOME_Launcher::getJobResults(CORBA::Long job_id, const char * directory) { try { _l.getJobResults(job_id, directory); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } } CORBA::Boolean SALOME_Launcher::getJobDumpState(CORBA::Long job_id, const char * directory) { CORBA::Boolean rtn = false; try { rtn = _l.getJobDumpState(job_id, directory); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } return rtn; } void SALOME_Launcher::removeJob(CORBA::Long job_id) { try { _l.removeJob(job_id); std::ostringstream job_id_str; job_id_str << job_id; notifyObservers("REMOVE_JOB", job_id_str.str()); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } } void SALOME_Launcher::stopJob(CORBA::Long job_id) { try { _l.stopJob(job_id); std::ostringstream job_id_str; job_id_str << job_id; notifyObservers("UPDATE_JOB_STATE", job_id_str.str()); } catch(const LauncherException &ex) { INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM); } } //============================================================================= /*! CORBA Method: * Create a job in the launcher with a file * \param xmlExecuteFile : .xml to parse that contains job description * \param clusterName : machine choosed */ //============================================================================= CORBA::Long SALOME_Launcher::createJobWithFile(const char * xmlExecuteFile, const char * clusterName) { CORBA::Long jobId; try{ jobId = _l.createJobWithFile(xmlExecuteFile, clusterName); } catch(const LauncherException &ex){ INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR); } return jobId; } //============================================================================= /*! CORBA Method: * the test batch configuration * \param params : The batch cluster */ //============================================================================= CORBA::Boolean SALOME_Launcher::testBatch(const Engines::ResourceParameters& params) { MESSAGE("BEGIN OF SALOME_Launcher::testBatch"); CORBA::Boolean rtn = false; try { // find a cluster matching the structure params Engines::ResourceList *aMachineList = _ResManager->GetFittingResources(params); if (aMachineList->length() == 0) throw SALOME_Exception("No resources have been found with your parameters"); const Engines::ResourceDefinition* p = _ResManager->GetResourceDefinition((*aMachineList)[0]); std::string resource_name(p->name); INFOS("Choose resource for test: " << resource_name); BatchTest t(*p); if (t.test()) { rtn = true; } } catch(const LauncherException &ex){ INFOS(ex.msg.c_str()); THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR); } return rtn; } //============================================================================= /*! CORBA method: * shutdown all the containers, then the ContainerManager servant */ //============================================================================= void SALOME_Launcher::Shutdown() { MESSAGE("Shutdown"); _NS->Destroy_Name(_LauncherNameInNS); _ContManager->Shutdown(); _ResManager->Shutdown(); PortableServer::ObjectId_var oid = _poa->servant_to_id(this); _poa->deactivate_object(oid); if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } //============================================================================= /*! CORBA Method: * Returns the PID of the process */ //============================================================================= CORBA::Long SALOME_Launcher::getPID() { return #ifndef WIN32 (CORBA::Long)getpid(); #else (CORBA::Long)_getpid(); #endif } //============================================================================= /*! CORBA Method: * Returns current launcher jobs list */ //============================================================================= Engines::JobsList * SALOME_Launcher::getJobsList() { Engines::JobsList_var jobs_list = new Engines::JobsList(); std::map cpp_jobs = _l.getJobs(); std::map::const_iterator it_job; int list_id = 0; for(it_job = cpp_jobs.begin(); it_job != cpp_jobs.end(); it_job++) { int number = it_job->first; try { // Prepare CORBA job description Engines::JobDescription_var job_descr = new Engines::JobDescription(); Engines::JobParameters_var job_parameters = getJobParameters(number); job_descr->job_id = number; job_descr->job_parameters = job_parameters; // Add job description to the sequence jobs_list->length(list_id + 1); jobs_list[list_id] = job_descr; list_id++; } catch (...) {} } return jobs_list._retn(); } //============================================================================= /*! CORBA Method: * Returns the job description */ //============================================================================= Engines::JobParameters * SALOME_Launcher::getJobParameters(CORBA::Long job_id) { std::map cpp_jobs = _l.getJobs(); std::map::const_iterator it_job = cpp_jobs.find(job_id); if (it_job == cpp_jobs.end()) { INFOS("Cannot find the job, is it created ? job number: " << job_id); THROW_SALOME_CORBA_EXCEPTION("Job does not exist", SALOME::INTERNAL_ERROR); } Launcher::Job * job = it_job->second; Engines::JobParameters_var job_parameters = new Engines::JobParameters; job_parameters->job_name = CORBA::string_dup(job->getJobName().c_str()); job_parameters->job_type = CORBA::string_dup(job->getJobType().c_str()); job_parameters->job_file = CORBA::string_dup(job->getJobFile().c_str()); job_parameters->env_file = CORBA::string_dup(job->getEnvFile().c_str()); job_parameters->work_directory = CORBA::string_dup(job->getWorkDirectory().c_str()); job_parameters->local_directory = CORBA::string_dup(job->getLocalDirectory().c_str()); job_parameters->result_directory = CORBA::string_dup(job->getResultDirectory().c_str()); int i = 0; int j = 0; std::list in_files = job->get_in_files(); std::list out_files = job->get_out_files(); job_parameters->in_files.length(in_files.size()); for(std::list::iterator it = in_files.begin(); it != in_files.end(); it++) { job_parameters->in_files[i] = CORBA::string_dup((*it).c_str()); i++; } job_parameters->out_files.length(out_files.size()); for(std::list::iterator it = out_files.begin(); it != out_files.end(); it++) { job_parameters->out_files[j] = CORBA::string_dup((*it).c_str()); j++; } job_parameters->maximum_duration = CORBA::string_dup(job->getMaximumDuration().c_str()); job_parameters->queue = CORBA::string_dup(job->getQueue().c_str()); resourceParams resource_params = job->getResourceRequiredParams(); job_parameters->resource_required.name = CORBA::string_dup(resource_params.name.c_str()); job_parameters->resource_required.hostname = CORBA::string_dup(resource_params.hostname.c_str()); job_parameters->resource_required.OS = CORBA::string_dup(resource_params.OS.c_str()); job_parameters->resource_required.nb_proc = resource_params.nb_proc; job_parameters->resource_required.nb_node = resource_params.nb_node; job_parameters->resource_required.nb_proc_per_node = resource_params.nb_proc_per_node; job_parameters->resource_required.cpu_clock = resource_params.cpu_clock; job_parameters->resource_required.mem_mb = resource_params.mem_mb; std::map specific_parameters = job->getSpecificParameters(); if (!specific_parameters.empty()) { job_parameters->specific_parameters.length(specific_parameters.size()); std::map::const_iterator it_specific; CORBA::ULong i = 0; for (it_specific = specific_parameters.begin() ; it_specific != specific_parameters.end(); it_specific++) { Engines::Parameter_var new_param = new Engines::Parameter; new_param->name = CORBA::string_dup((it_specific->first).c_str()); new_param->value = CORBA::string_dup((it_specific->second).c_str()); job_parameters->specific_parameters[i] = new_param; i++; } } return job_parameters._retn(); } //============================================================================= /*! CORBA Method: * Loads jobs saved in jobs_file */ //============================================================================= void SALOME_Launcher::loadJobs(const char* jobs_file) { // Step 1: check jobs_file read access FILE* xml_file = fopen(jobs_file, "r"); if (xml_file == NULL) { std::string error = "Error opening jobs_file in SALOME_Launcher::loadJobs: " + std::string(jobs_file); INFOS(error); THROW_SALOME_CORBA_EXCEPTION(error.c_str(), SALOME::INTERNAL_ERROR); } // Step 2: read xml file xmlDocPtr doc = xmlReadFile(jobs_file, NULL, 0); if (doc == NULL) { std::string error = "Error in xmlReadFile in SALOME_Launcher::loadJobs, could not parse file: " + std::string(jobs_file); INFOS(error); fclose(xml_file); THROW_SALOME_CORBA_EXCEPTION(error.c_str(), SALOME::INTERNAL_ERROR); } // Step 3: Find jobs xmlNodePtr root_node = xmlDocGetRootElement(doc); xmlNodePtr xmlCurrentNode = root_node->xmlChildrenNode; if (!xmlStrcmp(root_node->name, xmlCharStrdup("jobs"))) { while(xmlCurrentNode != NULL) { if (!xmlStrcmp(xmlCurrentNode->name, xmlCharStrdup("job"))) { INFOS("A job is found"); Launcher::Job * new_job; // It is Launcher_cpp that is going to destroy it xmlNodePtr job_node = xmlCurrentNode; // Begin Job if (!xmlHasProp(job_node, xmlCharStrdup("type")) || !xmlHasProp(job_node, xmlCharStrdup("name"))) { INFOS("A bad job is found, type or name not found"); break; } xmlChar* type = xmlGetProp(job_node, xmlCharStrdup("type")); xmlChar* name = xmlGetProp(job_node, xmlCharStrdup("name")); std::string job_type((const char*) type); if (job_type == "command") new_job = new Launcher::Job_Command(); else if (job_type == "yacs_file") new_job = new Launcher::Job_YACSFile(); else if (job_type == "python_salome") new_job = new Launcher::Job_PythonSALOME(); new_job->setJobName(std::string((const char *)name)); xmlFree(type); xmlFree(name); xmlNodePtr user_node = xmlFirstElementChild(job_node); xmlNodePtr run_node = xmlNextElementSibling(user_node); if (user_node == NULL || run_node == NULL) { INFOS("A bad job is found, user_part or run_part not found"); delete new_job; break; } if (xmlStrcmp(user_node->name, xmlCharStrdup("user_part")) || xmlStrcmp(run_node->name, xmlCharStrdup("run_part"))) { INFOS("A bad job is found, cannot get a correct user_part or run_part node"); delete new_job; break; } // Add user part // Get job_file env_file work_directory local_directory result_directory xmlNodePtr job_file_node = xmlFirstElementChild(user_node); xmlNodePtr env_file_node = xmlNextElementSibling(job_file_node); xmlNodePtr work_directory_node = xmlNextElementSibling(env_file_node); xmlNodePtr local_directory_node = xmlNextElementSibling(work_directory_node); xmlNodePtr result_directory_node = xmlNextElementSibling(local_directory_node); if (job_file_node == NULL || env_file_node == NULL || work_directory_node == NULL || local_directory_node == NULL || result_directory_node == NULL ) { INFOS("A bad job is found, some user_part are not found"); delete new_job; break; } if (xmlStrcmp(job_file_node->name, xmlCharStrdup("job_file")) || xmlStrcmp(env_file_node->name, xmlCharStrdup("env_file")) || xmlStrcmp(work_directory_node->name, xmlCharStrdup("work_directory")) || xmlStrcmp(local_directory_node->name, xmlCharStrdup("local_directory")) || xmlStrcmp(result_directory_node->name, xmlCharStrdup("result_directory")) ) { INFOS("A bad job is found, some user part node are not in the rigth or does not have a correct name"); delete new_job; break; } xmlChar* job_file = xmlNodeGetContent(job_file_node); try { new_job->setJobFile(std::string((const char *)job_file)); } catch(const LauncherException &ex) { INFOS("Exception receice for job_file, cannot add the job" << ex.msg.c_str()); delete new_job; xmlFree(job_file); break; } xmlChar* env_file = xmlNodeGetContent(env_file_node); xmlChar* work_directory = xmlNodeGetContent(work_directory_node); xmlChar* local_directory = xmlNodeGetContent(local_directory_node); xmlChar* result_directory = xmlNodeGetContent(result_directory_node); new_job->setEnvFile(std::string((const char *)env_file)); new_job->setWorkDirectory(std::string((const char *)work_directory)); new_job->setLocalDirectory(std::string((const char *)local_directory)); new_job->setResultDirectory(std::string((const char *)result_directory)); xmlFree(job_file); xmlFree(env_file); xmlFree(work_directory); xmlFree(local_directory); xmlFree(result_directory); // Get in and out files xmlNodePtr files_node = xmlNextElementSibling(result_directory_node); if (files_node == NULL) { INFOS("A bad job is found, user_part files is not found"); delete new_job; break; } if (xmlStrcmp(files_node->name, xmlCharStrdup("files"))) { INFOS("A bad job is found, files node are not in the rigth place or does not have a correct name or does not exist"); delete new_job; break; } xmlNodePtr file_node = xmlFirstElementChild(files_node); while (file_node != NULL) { if (!xmlStrcmp(file_node->name, xmlCharStrdup("in_file"))) { xmlChar* in_file = xmlNodeGetContent(file_node); new_job->add_in_file(std::string((const char *)in_file)); xmlFree(in_file); } else if (!xmlStrcmp(file_node->name, xmlCharStrdup("out_file"))) { xmlChar* out_file = xmlNodeGetContent(file_node); new_job->add_out_file(std::string((const char *)out_file)); xmlFree(out_file); } file_node = xmlNextElementSibling(file_node); } // Get resource part xmlNodePtr res_node = xmlNextElementSibling(files_node); xmlNodePtr maximum_duration_node = xmlNextElementSibling(res_node); xmlNodePtr queue_node = xmlNextElementSibling(maximum_duration_node); if (res_node == NULL || maximum_duration_node == NULL || queue_node == NULL ) { INFOS("A bad job is found, some user_part are not found"); delete new_job; break; } if (xmlStrcmp(res_node->name, xmlCharStrdup("resource_params")) || xmlStrcmp(maximum_duration_node->name, xmlCharStrdup("maximum_duration")) || xmlStrcmp(queue_node->name, xmlCharStrdup("queue")) ) { INFOS("A bad job is found, some user part node are not in the rigth or does not have a correct name"); delete new_job; break; } xmlChar* maximum_duration = xmlNodeGetContent(maximum_duration_node); try { new_job->setMaximumDuration(std::string((const char *)maximum_duration)); } catch(const LauncherException &ex) { INFOS("Exception receice for maximum_duration, cannot add the job" << ex.msg.c_str()); delete new_job; xmlFree(maximum_duration); break; } xmlChar* queue = xmlNodeGetContent(queue_node); new_job->setQueue(std::string((const char *)queue)); xmlFree(maximum_duration); xmlFree(queue); xmlNodePtr specific_node = xmlNextElementSibling(queue_node); if (specific_node == NULL) { INFOS("A bad job is found, specific_parameters part is not found"); delete new_job; break; } xmlNodePtr parameter_node = xmlFirstElementChild(specific_node); while (parameter_node != NULL) { if (!xmlStrcmp(parameter_node->name, xmlCharStrdup("specific_parameter"))) { xmlNodePtr name_node = xmlFirstElementChild(parameter_node); xmlNodePtr value_node = xmlNextElementSibling(name_node); if (name_node == NULL || value_node == NULL) { INFOS("A bad job is found, specific_parameter parts are not found"); delete new_job; break; } if (xmlStrcmp(name_node->name, xmlCharStrdup("name")) || xmlStrcmp(value_node->name, xmlCharStrdup("value"))) { INFOS("A bad job is found, specific_parameter bad parts are found"); delete new_job; break; } xmlChar* name = xmlNodeGetContent(name_node); xmlChar* value = xmlNodeGetContent(value_node); try { new_job->addSpecificParameter(std::string((const char*)name), std::string((const char*)value)); xmlFree(name); xmlFree(value); } catch(const LauncherException &ex) { INFOS("Exception receice for a specific parameter, cannot add the job" << ex.msg.c_str()); delete new_job; xmlFree(name); xmlFree(value); break; } } else { INFOS("A bad job is found, specific_parameters part is bad, a node that is not a specific parameter is found"); delete new_job; break; } parameter_node = xmlNextElementSibling(parameter_node); } xmlNodePtr res_name_node = xmlFirstElementChild(res_node); xmlNodePtr res_hostname_node = xmlNextElementSibling(res_name_node); xmlNodePtr res_os_node = xmlNextElementSibling(res_hostname_node); xmlNodePtr res_nb_proc_node = xmlNextElementSibling(res_os_node); xmlNodePtr res_nb_node_node = xmlNextElementSibling(res_nb_proc_node); xmlNodePtr res_nb_proc_per_node_node = xmlNextElementSibling(res_nb_node_node); xmlNodePtr res_cpu_clock_node = xmlNextElementSibling(res_nb_proc_per_node_node); xmlNodePtr res_mem_mb_node = xmlNextElementSibling(res_cpu_clock_node); if (res_name_node == NULL || res_hostname_node == NULL || res_os_node == NULL || res_nb_proc_node == NULL || res_nb_node_node == NULL || res_nb_proc_per_node_node == NULL || res_cpu_clock_node == NULL || res_mem_mb_node == NULL ) { INFOS("A bad job is found, some resource_params user_part are not found"); delete new_job; break; } if (xmlStrcmp(res_name_node->name, xmlCharStrdup("name")) || xmlStrcmp(res_hostname_node->name, xmlCharStrdup("hostname")) || xmlStrcmp(res_os_node->name, xmlCharStrdup("OS")) || xmlStrcmp(res_nb_proc_node->name, xmlCharStrdup("nb_proc")) || xmlStrcmp(res_nb_node_node->name, xmlCharStrdup("nb_node")) || xmlStrcmp(res_nb_proc_per_node_node->name, xmlCharStrdup("nb_proc_per_node")) || xmlStrcmp(res_cpu_clock_node->name, xmlCharStrdup("cpu_clock")) || xmlStrcmp(res_mem_mb_node->name, xmlCharStrdup("mem_mb")) ) { INFOS("A bad job is found, some resource_params user_part node are not in the rigth or does not have a correct name"); delete new_job; break; } xmlChar* res_name = xmlNodeGetContent(res_name_node); xmlChar* res_hostname = xmlNodeGetContent(res_hostname_node); xmlChar* res_os = xmlNodeGetContent(res_os_node); resourceParams p; p.name = std::string((const char*) res_name); p.hostname = std::string((const char*) res_hostname); p.OS = std::string((const char*) res_os); xmlFree(res_name); xmlFree(res_hostname); xmlFree(res_os); xmlChar* res_nb_proc = xmlNodeGetContent(res_nb_proc_node); xmlChar* res_nb_node = xmlNodeGetContent(res_nb_node_node); xmlChar* res_nb_proc_per_node = xmlNodeGetContent(res_nb_proc_per_node_node); xmlChar* res_cpu_clock = xmlNodeGetContent(res_cpu_clock_node); xmlChar* res_mem_mb = xmlNodeGetContent(res_mem_mb_node); bool import_value = true; std::istringstream nb_proc_stream((const char *) res_nb_proc); if (!(nb_proc_stream >> p.nb_proc)) import_value = false; std::istringstream nb_node_stream((const char *) res_nb_node); if (!(nb_node_stream >> p.nb_node)) import_value = false; std::istringstream nb_proc_per_node_stream((const char *) res_nb_proc_per_node); if (!(nb_proc_per_node_stream >> p.nb_proc_per_node)) import_value = false; std::istringstream cpu_clock_stream((const char *) res_cpu_clock); if (!(cpu_clock_stream >> p.cpu_clock)) import_value = false; std::istringstream mem_mb_stream((const char *) res_mem_mb); if (!(mem_mb_stream >> p.mem_mb)) import_value = false; xmlFree(res_nb_proc); xmlFree(res_nb_node); xmlFree(res_nb_proc_per_node); xmlFree(res_cpu_clock); xmlFree(res_mem_mb); if (!import_value) { INFOS("A bad job is found, some resource_params value are not correct"); delete new_job; break; } try { new_job->setResourceRequiredParams(p); } catch(const LauncherException &ex) { INFOS("A bad job is found, an error when inserting resource_params:" << ex.msg.c_str()); delete new_job; break; } // We finally get run part to figure out what to do xmlNodePtr job_state_node = xmlFirstElementChild(run_node); xmlNodePtr resource_choosed_name_node = xmlNextElementSibling(job_state_node); xmlNodePtr job_reference_node = xmlNextElementSibling(resource_choosed_name_node); if (job_state_node == NULL || resource_choosed_name_node == NULL || job_reference_node == NULL ) { INFOS("A bad job is found, some run_part are not found"); delete new_job; break; } if (xmlStrcmp(job_state_node->name, xmlCharStrdup("job_state")) || xmlStrcmp(resource_choosed_name_node->name, xmlCharStrdup("resource_choosed_name")) || xmlStrcmp(job_reference_node->name, xmlCharStrdup("job_reference")) ) { INFOS("A bad job is found, some run_part nodes are not in the rigth or does not have a correct name"); delete new_job; break; } xmlChar* job_state_xml = xmlNodeGetContent(job_state_node); xmlChar* resource_choosed_name_xml = xmlNodeGetContent(resource_choosed_name_node); xmlChar* job_reference_xml = xmlNodeGetContent(job_reference_node); std::string job_state((const char *) job_state_xml); std::string resource_choosed_name((const char *) resource_choosed_name_xml); std::string job_reference((const char *) job_reference_xml); xmlFree(job_state_xml); xmlFree(resource_choosed_name_xml); xmlFree(job_reference_xml); if (job_state == "CREATED") { // In this case, we ignore run_part informations try { _l.createJob(new_job); std::ostringstream job_id; job_id << new_job->getNumber(); notifyObservers("NEW_JOB", job_id.str()); } catch(const LauncherException &ex) { INFOS("Load failed: " << ex.msg.c_str()); } } else if (job_state == "QUEUED" || job_state == "RUNNING" || job_state == "IN_PROCESS" || job_state == "PAUSED") { try { new_job->setState(job_state); _l.addJobDirectlyToMap(new_job, job_reference); // Step 4: We check that the BatchManager could resume // the job #ifdef WITH_LIBBATCH if (new_job->getBatchManagerJobId().getReference() != job_reference) { INFOS("BatchManager type cannot resume a job - job state is set to ERROR"); new_job->setState("ERROR"); } #endif std::ostringstream job_id; job_id << new_job->getNumber(); notifyObservers("NEW_JOB", job_id.str()); } catch(const LauncherException &ex) { INFOS("Cannot load the job! Exception: " << ex.msg.c_str()); delete new_job; } } else if (job_state == "FINISHED" || job_state == "FAILED" || job_state == "ERROR") { try { // Step 2: We add run_part informations new_job->setState(job_state); _l.addJobDirectlyToMap(new_job, job_reference); std::ostringstream job_id; job_id << new_job->getNumber(); notifyObservers("NEW_JOB", job_id.str()); } catch(const LauncherException &ex) { INFOS("Cannot load the job! Exception: " << ex.msg.c_str()); delete new_job; } } else { INFOS("A bad job is found, state unknown " << job_state); delete new_job; } } xmlCurrentNode = xmlCurrentNode->next; } } else { xmlFreeDoc(doc); fclose(xml_file); std::string error = "Error in xml file, could not find root_node named jobs: " + std::string(jobs_file); INFOS(error); THROW_SALOME_CORBA_EXCEPTION(error.c_str(), SALOME::INTERNAL_ERROR); } // Clean xmlFreeDoc(doc); fclose(xml_file); notifyObservers("LOAD_JOBS", jobs_file); } //============================================================================= /*! CORBA Method: * Save jobs of Launcher (in any steps) in file jobs_file */ //============================================================================= void SALOME_Launcher::saveJobs(const char* jobs_file) { // Step 1: check jobs_file write access FILE* xml_file = fopen(jobs_file, "w"); if (xml_file == NULL) { std::string error = "Error opening jobs_file in SALOME_Launcher::saveJobs: " + std::string(jobs_file); INFOS(error); THROW_SALOME_CORBA_EXCEPTION(error.c_str(), SALOME::INTERNAL_ERROR); } // Step 2: First lines xmlKeepBlanksDefault(0); xmlDocPtr doc = xmlNewDoc(xmlCharStrdup("1.0")); xmlNodePtr root_node = xmlNewNode(NULL, xmlCharStrdup("jobs")); xmlDocSetRootElement(doc, root_node); xmlNodePtr doc_comment = xmlNewDocComment(doc, xmlCharStrdup("SALOME Launcher save jobs file")); xmlAddPrevSibling(root_node, doc_comment); // Step 3: For each job write it on the xml document // We could put a mutex but are not foing to do that currently std::map jobs_list = _l.getJobs(); std::map::const_iterator it_job; for(it_job = jobs_list.begin(); it_job != jobs_list.end(); it_job++) { it_job->second->addToXmlDocument(root_node); } // Final step: write file int isOk = xmlSaveFormatFile(jobs_file, doc, 1); if (!isOk) { std::string error = "Error during xml file saving in SALOME_Launcher::saveJobs: " + std::string(jobs_file); INFOS(error); xmlFreeDoc(doc); fclose(xml_file); THROW_SALOME_CORBA_EXCEPTION(error.c_str(), SALOME::INTERNAL_ERROR); } // Clean xmlFreeDoc(doc); fclose(xml_file); MESSAGE("SALOME_Launcher::saveJobs : WRITING DONE!"); notifyObservers("SAVE_JOBS", jobs_file); } //============================================================================= /*! CORBA Method: * Add a new observer to the launcher */ //============================================================================= void SALOME_Launcher::addObserver(Engines::SalomeLauncherObserver_ptr observer) { bool new_observer = true; std::list::iterator iter = _observers.begin(); while(iter != _observers.end()) { if (std::string(_orb->object_to_string(*iter)) == std::string(_orb->object_to_string(observer))) { new_observer = false; break; } iter++; } if (new_observer) _observers.push_back(Engines::SalomeLauncherObserver::_duplicate(observer)); // We notify the new observer with all jobs that are currently in the Launcher std::map cpp_jobs = _l.getJobs(); std::map::const_iterator it_job; for(it_job = cpp_jobs.begin(); it_job != cpp_jobs.end(); it_job++) { int number = it_job->first; std::ostringstream job_id; job_id << number; try { observer->notify("NEW_JOB", job_id.str().c_str()); } catch (...) { MESSAGE("Notify Observer, exception catch"); } } } //============================================================================= /*! CORBA Method: * Add a new observer to the launcher */ //============================================================================= void SALOME_Launcher::removeObserver(Engines::SalomeLauncherObserver_ptr observer) { std::list::iterator iter = _observers.begin(); while(iter != _observers.end()) { if (std::string(_orb->object_to_string(*iter)) == std::string(_orb->object_to_string(observer))) { // Observer found iter =_observers.erase(iter++); } else { iter++; } } } //============================================================================= /*! Internal Method: * Notify observers on a new event */ //============================================================================= void SALOME_Launcher::notifyObservers(const std::string & event_name, const std::string & event_data) { std::list::iterator iter = _observers.begin(); while(iter != _observers.end()) { try { (*iter)->notify(CORBA::string_dup(event_name.c_str()), CORBA::string_dup(event_data.c_str())); } catch (...) { MESSAGE("Notify Observer, exception catch"); } iter++; } } salome-kernel-6.5.0/src/Launcher/SALOME_Launcher.hxx000077500000000000000000000060731177004724000221550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_LAUNCHER_HXX__ #define __SALOME_LAUNCHER_HXX__ #include "SALOME_Launcher_defs.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_ContainerManager) #include "Launcher.hxx" #include #include class SALOME_NamingService; class SALOME_ContainerManager; class SALOME_ResourcesManager; class SALOMELAUNCHER_EXPORT SALOME_Launcher: public POA_Engines::SalomeLauncher, public PortableServer::RefCountServantBase { public: SALOME_Launcher(CORBA::ORB_ptr orb, PortableServer::POA_var poa); virtual ~SALOME_Launcher(); // Main methods CORBA::Long createJob (const Engines::JobParameters & job_parameters); void launchJob (CORBA::Long job_id); char * getJobState (CORBA::Long job_id); void getJobResults(CORBA::Long job_id, const char * directory); CORBA::Boolean getJobDumpState(CORBA::Long job_id, const char * directory); void stopJob (CORBA::Long job_id); void removeJob (CORBA::Long job_id); // Useful methods CORBA::Long createJobWithFile(const char * xmlExecuteFile, const char * clusterName); CORBA::Boolean testBatch (const Engines::ResourceParameters& params); // SALOME Kernel service methods void Shutdown(); CORBA::Long getPID(); // Observer and introspection methods virtual void addObserver(Engines::SalomeLauncherObserver_ptr observer); virtual void removeObserver(Engines::SalomeLauncherObserver_ptr observer); virtual Engines::JobsList * getJobsList(); virtual Engines::JobParameters * getJobParameters(CORBA::Long job_id); // Save and load methods virtual void loadJobs(const char* jobs_file); virtual void saveJobs(const char* jobs_file); static const char *_LauncherNameInNS; protected: // Internal methods virtual void notifyObservers(const std::string & event_name, const std::string & event_data); protected: CORBA::ORB_var _orb; PortableServer::POA_var _poa; SALOME_ContainerManager *_ContManager; SALOME_ResourcesManager *_ResManager; SALOME_NamingService *_NS; std::list _observers; Launcher_cpp _l; }; #endif salome-kernel-6.5.0/src/Launcher/SALOME_LauncherServer.cxx000077500000000000000000000065241177004724000233400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_Launcher.hxx" #include "utilities.h" #include #include #include #include void AttachDebugger(); void terminateHandler(void); void unexpectedHandler(void); void AttachDebugger() { #ifndef WIN32 if(getenv ("DEBUGGER")) { std::stringstream exec; exec << "$DEBUGGER SALOME_LauncherServer " << getpid() << "&"; MESSAGE ( exec.str() ); system(exec.str().c_str()); while(1); } #endif } void terminateHandler(void) { MESSAGE ( "Terminate: not managed exception !" ); AttachDebugger(); } void unexpectedHandler(void) { MESSAGE ( "Unexpected: unexpected exception !" ); AttachDebugger(); } int main(int argc, char* argv[]) { if(getenv ("DEBUGGER")) { // setsig(SIGSEGV,&Handler); std::set_terminate(&terminateHandler); std::set_unexpected(&unexpectedHandler); } /* Init libxml * To avoid memory leak, need to call xmlInitParser in the main thread * and not call xmlCleanupParser later (cause implicit reinitialization in thread) */ xmlInitParser(); PortableServer::POA_var root_poa; PortableServer::POAManager_var pman; CORBA::Object_var obj; CORBA::ORB_var orb = CORBA::ORB_init( argc , argv ) ; // LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); INFOS_COMPILATION; BEGIN_OF(argv[0]); try{ obj = orb->resolve_initial_references("RootPOA"); if(!CORBA::is_nil(obj)) root_poa = PortableServer::POA::_narrow(obj); if(!CORBA::is_nil(root_poa)) pman = root_poa->the_POAManager(); } catch(CORBA::COMM_FAILURE&){ MESSAGE( "Container: CORBA::COMM_FAILURE: Unable to contact the Naming Service" ); } try{ SALOME_Launcher *lServ=new SALOME_Launcher(orb,root_poa); pman->activate(); lServ->_remove_ref(); orb->run(); orb->destroy(); }catch(CORBA::SystemException&){ MESSAGE("Caught CORBA::SystemException."); }catch(PortableServer::POA::WrongPolicy&){ MESSAGE("Caught CORBA::WrongPolicyException."); }catch(PortableServer::POA::ServantAlreadyActive&){ MESSAGE("Caught CORBA::ServantAlreadyActiveException"); }catch(CORBA::Exception&){ MESSAGE("Caught CORBA::Exception."); }catch(std::exception& exc){ MESSAGE("Caught std::exception - "< #include //============================================================================= /*! * Constructor * \param listOfResources: map of ParserResourcesType to fill when parsing */ //============================================================================= SALOME_Launcher_Handler::SALOME_Launcher_Handler(ParserLauncherType& launch): _launch(launch) { //XML tags initialisation test_machine_list = "machine-list"; test_main = "main"; test_machine = "machine"; test_env_file = "env-file"; test_work_directory = "work-directory"; test_ref_directory = "ref-directory"; test_nb_processes = "nb-processes"; test_input_file = "input-file"; test_output_file = "output-file"; test_command = "command"; } //============================================================================= /*! * Destructor */ //============================================================================= SALOME_Launcher_Handler::~SALOME_Launcher_Handler() { // cout << "SALOME_Launcher_Handler destruction") << endl; } //============================================================================= /*! * Retrieves DS after the file parse. */ //============================================================================= const ParserLauncherType& SALOME_Launcher_Handler::GetLauncherAfterParsing() const { return _launch; } //============================================================================= /*! * Processes XML document and fills the list of resources */ //============================================================================= void SALOME_Launcher_Handler::ProcessXmlDocument(xmlDocPtr theDoc) { // if (MYDEBUG) cout << "Begin parse document" << endl; // Empty private elements _launch.Clear(); // Get the document root node xmlNodePtr aCurNode = xmlDocGetRootElement(theDoc); aCurNode = aCurNode->xmlChildrenNode; // Processing the document nodes while(aCurNode != NULL){ if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_machine_list) ){ xmlNodePtr aCurNode2 = aCurNode->xmlChildrenNode; while(aCurNode2 != NULL){ if ( !xmlStrcmp(aCurNode2->name,(const xmlChar*)test_machine) ){ _machp.Clear(); xmlChar* name = xmlNodeGetContent(aCurNode2); std::string clusterName = (const char*)name; xmlFree(name); if (xmlHasProp(aCurNode2, (const xmlChar*)test_env_file)){ xmlChar* envfile = xmlGetProp(aCurNode2, (const xmlChar*)test_env_file); _machp.EnvFile = (const char*)envfile; xmlFree(envfile); } if (xmlHasProp(aCurNode2, (const xmlChar*)test_work_directory)){ xmlChar* workdirectory = xmlGetProp(aCurNode2, (const xmlChar*)test_work_directory); _machp.WorkDirectory = (const char*)workdirectory; xmlFree(workdirectory); } _launch.MachinesList[clusterName]=_machp ; } aCurNode2 = aCurNode2->next; } } if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_ref_directory) ){ xmlChar* refdirectory = xmlNodeGetContent(aCurNode); _launch.RefDirectory = (const char*)refdirectory; xmlFree(refdirectory); } if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_nb_processes) ){ xmlChar* nbofprocesses = xmlNodeGetContent(aCurNode); _launch.NbOfProcesses = atoi((const char*)nbofprocesses); xmlFree(nbofprocesses); } if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_input_file) ){ xmlChar* inputfile = xmlNodeGetContent(aCurNode); _launch.InputFile.push_back((const char*)inputfile); xmlFree(inputfile); } if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_output_file) ){ xmlChar* outputfile = xmlNodeGetContent(aCurNode); _launch.OutputFile.push_back((const char*)outputfile); xmlFree(outputfile); } if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_command) ){ xmlChar* command = xmlNodeGetContent(aCurNode); _launch.Command = (const char*)command; xmlFree(command); } aCurNode = aCurNode->next; } } salome-kernel-6.5.0/src/Launcher/SALOME_Launcher_Handler.hxx000077500000000000000000000041271177004724000236100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl) // File : SALOME_Launcher_Handler.hxx // Author : Bernard SECHER // Module : SALOME //$Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Launcher/SALOME_Launcher_Handler.hxx,v 1.2.32.2.12.1 2012-04-12 14:05:16 vsr Exp $ // #ifndef SALOME_LAUNCHER_HANDLER #define SALOME_LAUNCHER_HANDLER #include "SALOME_Launcher_Parser.hxx" #include #include #include class SALOME_Launcher_Handler { public : SALOME_Launcher_Handler(ParserLauncherType& launch); virtual ~SALOME_Launcher_Handler(); const ParserLauncherType& GetLauncherAfterParsing() const; void ProcessXmlDocument(xmlDocPtr theDoc); private : ParserLauncherType& _launch; MachineParameters _machp; const char *test_machine_list; const char *test_main; const char *test_machine; const char *test_env_file; const char *test_work_directory; const char *test_ref_directory; const char *test_nb_processes; const char *test_input_file; const char *test_output_file; const char *test_command; }; #endif // SALOME_LAUNCHER_HANDLER salome-kernel-6.5.0/src/Launcher/SALOME_Launcher_Parser.cxx000077500000000000000000000042541177004724000234630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_Launcher_Parser.hxx" #include #include #define NULL_VALUE 0 void MachineParameters::Clear() { EnvFile = ""; WorkDirectory = ""; } void MachineParameters::Print() const { std::ostringstream oss; oss << " EnvFile: " << EnvFile << " WorkDirectory: " << WorkDirectory << std::endl; std::cout << oss.str(); } void ParserLauncherType::Print() const { std::ostringstream oss; oss << std::endl << "RefDirectory: " << RefDirectory << std::endl << "NbOfProcesses: " << NbOfProcesses << std::endl << "InputFile: "; for(int i=0; i ::const_iterator it; for(it=MachinesList.begin();it!=MachinesList.end();it++){ std::cout << " " << it->first; it->second.Print(); } } void ParserLauncherType::Clear() { MachinesList.clear(); RefDirectory = ""; NbOfProcesses = 1; InputFile.clear(); OutputFile.clear(); Command = ""; } salome-kernel-6.5.0/src/Launcher/SALOME_Launcher_Parser.hxx000077500000000000000000000035461177004724000234730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl) // File : SALOME_Launcher_Parser.hxx // Author : Bernard Secher // Module : SALOME //$Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Launcher/SALOME_Launcher_Parser.hxx,v 1.2.32.2.12.1 2012-04-12 14:05:16 vsr Exp $ // #ifndef SALOME_LAUNCHER_PARSER #define SALOME_LAUNCHER_PARSER #include #include #include #include struct MachineParameters { std::string EnvFile; std::string WorkDirectory; void Print() const; void Clear(); }; struct ParserLauncherType { std::map MachinesList; std::string RefDirectory; long NbOfProcesses; std::vector InputFile; std::vector OutputFile; std::string Command; void Print() const; void Clear(); }; #endif //SALOME_LAUNCHER_PARSER salome-kernel-6.5.0/src/Launcher/SALOME_Launcher_defs.hxx000077500000000000000000000022741177004724000231550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_LAUNCHER_DEFS_HXX__ #define __SALOME_LAUNCHER_DEFS_HXX__ #ifdef WIN32 # if defined SALOMELAUNCHER_EXPORTS || defined SalomeLauncher_EXPORTS # define SALOMELAUNCHER_EXPORT __declspec(dllexport) # else # define SALOMELAUNCHER_EXPORT __declspec(dllimport) # endif #else # define SALOMELAUNCHER_EXPORT #endif #endif //__SALOME_LAUNCHER_DEFS_HXX__ salome-kernel-6.5.0/src/Launcher/TestLauncher.cxx000077500000000000000000000025601177004724000217450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "Launcher.hxx" int main(int argc, char** argv) { try { Launcher_cpp *lcpp = new Launcher_cpp(); ResourcesManager_cpp *rcpp = new ResourcesManager_cpp(); lcpp->SetResourcesManager(rcpp); delete lcpp; delete rcpp; std::cout << "test OK" << std::endl; } catch ( const ResourcesException &ex) { std::cout << ex.msg.c_str() << std::endl; } catch ( const LauncherException &ex) { std::cout << ex.msg.c_str() << std::endl; } catch (...){ std::cout << "test KO" << std::endl; } exit(0); } salome-kernel-6.5.0/src/LifeCycleCORBA/000077500000000000000000000000001177004724000174575ustar00rootroot00000000000000salome-kernel-6.5.0/src/LifeCycleCORBA/Makefile.am000077500000000000000000000105011177004724000215130ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME LifeCycleCORBA : implementation of containers and engines life cycle both in Python and C++ # File : Makefile.am # Author : Guillaume Boulant # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/Makefile.am,v 1.6.2.1.14.3.12.1 2012-04-12 14:05:16 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_LifeCycleCORBA.hxx \ SALOME_FileTransferCORBA.hxx # Scripts to be installed #dist_salomescript_DATA =\ # Launchers.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../SALOMETraceCollector \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../GenericObj \ -I$(srcdir)/../Container \ -I$(srcdir)/../ResourcesManager \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @LIBXML_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Container/libSalomeContainer.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeLifeCycleCORBA.la libSalomeLifeCycleCORBA_la_SOURCES = \ SALOME_LifeCycleCORBA.cxx \ SALOME_FileTransferCORBA.cxx libSalomeLifeCycleCORBA_la_CPPFLAGS = \ $(COMMON_CPPFLAGS) \ @PYTHON_INCLUDES@ \ -I$(srcdir)/../Batch \ -I$(srcdir)/../Container \ -I$(srcdir)/../Notification libSalomeLifeCycleCORBA_la_LIBADD = $(COMMON_LIBS) # _CS_gbo Check whether Python lib or Qt lib is not required here. # For better understanding, it could be better to specified # explicitely all libraries even those that are implicitly given # throught a library mentionned in COMMON_LIBS. # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = Test_LifeCycleCORBA TestContainerManager Test_LifeCycleCORBA_SOURCES = Test_LifeCycleCORBA.cxx Test_LifeCycleCORBA_CPPFLAGS =\ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ $(COMMON_CPPFLAGS) Test_LifeCycleCORBA_LDADD = \ libSalomeLifeCycleCORBA.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ $(COMMON_LIBS) \ @CORBA_LIBS@ TestContainerManager_SOURCES = TestContainerManager.cxx TestContainerManager_CPPFLAGS =\ -I$(srcdir)/../Batch \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ $(COMMON_CPPFLAGS) TestContainerManager_LDADD = \ libSalomeLifeCycleCORBA.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ $(COMMON_LIBS) \ @CORBA_LIBS@ salome-kernel-6.5.0/src/LifeCycleCORBA/Makefile.in000077500000000000000000001213761177004724000215410ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = Test_LifeCycleCORBA$(EXEEXT) \ TestContainerManager$(EXEEXT) subdir = src/LifeCycleCORBA ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeLifeCycleCORBA_la_DEPENDENCIES = $(COMMON_LIBS) am_libSalomeLifeCycleCORBA_la_OBJECTS = \ libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.lo \ libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.lo libSalomeLifeCycleCORBA_la_OBJECTS = \ $(am_libSalomeLifeCycleCORBA_la_OBJECTS) PROGRAMS = $(bin_PROGRAMS) am_TestContainerManager_OBJECTS = \ TestContainerManager-TestContainerManager.$(OBJEXT) TestContainerManager_OBJECTS = $(am_TestContainerManager_OBJECTS) TestContainerManager_DEPENDENCIES = libSalomeLifeCycleCORBA.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la $(COMMON_LIBS) am_Test_LifeCycleCORBA_OBJECTS = \ Test_LifeCycleCORBA-Test_LifeCycleCORBA.$(OBJEXT) Test_LifeCycleCORBA_OBJECTS = $(am_Test_LifeCycleCORBA_OBJECTS) Test_LifeCycleCORBA_DEPENDENCIES = libSalomeLifeCycleCORBA.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la $(COMMON_LIBS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeLifeCycleCORBA_la_SOURCES) \ $(TestContainerManager_SOURCES) $(Test_LifeCycleCORBA_SOURCES) DIST_SOURCES = $(libSalomeLifeCycleCORBA_la_SOURCES) \ $(TestContainerManager_SOURCES) $(Test_LifeCycleCORBA_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME LifeCycleCORBA : implementation of containers and engines life cycle both in Python and C++ # File : Makefile.am # Author : Guillaume Boulant # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/Makefile.am,v 1.6.2.1.14.3.12.1 2012-04-12 14:05:16 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_LifeCycleCORBA.hxx \ SALOME_FileTransferCORBA.hxx # Scripts to be installed #dist_salomescript_DATA =\ # Launchers.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../SALOMETraceCollector \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../GenericObj \ -I$(srcdir)/../Container \ -I$(srcdir)/../ResourcesManager \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @LIBXML_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Container/libSalomeContainer.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeLifeCycleCORBA.la libSalomeLifeCycleCORBA_la_SOURCES = \ SALOME_LifeCycleCORBA.cxx \ SALOME_FileTransferCORBA.cxx libSalomeLifeCycleCORBA_la_CPPFLAGS = \ $(COMMON_CPPFLAGS) \ @PYTHON_INCLUDES@ \ -I$(srcdir)/../Batch \ -I$(srcdir)/../Container \ -I$(srcdir)/../Notification libSalomeLifeCycleCORBA_la_LIBADD = $(COMMON_LIBS) Test_LifeCycleCORBA_SOURCES = Test_LifeCycleCORBA.cxx Test_LifeCycleCORBA_CPPFLAGS = \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ $(COMMON_CPPFLAGS) Test_LifeCycleCORBA_LDADD = \ libSalomeLifeCycleCORBA.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ $(COMMON_LIBS) \ @CORBA_LIBS@ TestContainerManager_SOURCES = TestContainerManager.cxx TestContainerManager_CPPFLAGS = \ -I$(srcdir)/../Batch \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ $(COMMON_CPPFLAGS) TestContainerManager_LDADD = \ libSalomeLifeCycleCORBA.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../Container/libSalomeContainer.la \ $(COMMON_LIBS) \ @CORBA_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/LifeCycleCORBA/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/LifeCycleCORBA/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeLifeCycleCORBA.la: $(libSalomeLifeCycleCORBA_la_OBJECTS) $(libSalomeLifeCycleCORBA_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libSalomeLifeCycleCORBA_la_OBJECTS) $(libSalomeLifeCycleCORBA_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestContainerManager$(EXEEXT): $(TestContainerManager_OBJECTS) $(TestContainerManager_DEPENDENCIES) @rm -f TestContainerManager$(EXEEXT) $(CXXLINK) $(TestContainerManager_OBJECTS) $(TestContainerManager_LDADD) $(LIBS) Test_LifeCycleCORBA$(EXEEXT): $(Test_LifeCycleCORBA_OBJECTS) $(Test_LifeCycleCORBA_DEPENDENCIES) @rm -f Test_LifeCycleCORBA$(EXEEXT) $(CXXLINK) $(Test_LifeCycleCORBA_OBJECTS) $(Test_LifeCycleCORBA_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestContainerManager-TestContainerManager.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.lo: SALOME_LifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLifeCycleCORBA_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.lo -MD -MP -MF $(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.Tpo -c -o libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.lo `test -f 'SALOME_LifeCycleCORBA.cxx' || echo '$(srcdir)/'`SALOME_LifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.Tpo $(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_LifeCycleCORBA.cxx' object='libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLifeCycleCORBA_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeLifeCycleCORBA_la-SALOME_LifeCycleCORBA.lo `test -f 'SALOME_LifeCycleCORBA.cxx' || echo '$(srcdir)/'`SALOME_LifeCycleCORBA.cxx libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.lo: SALOME_FileTransferCORBA.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLifeCycleCORBA_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.lo -MD -MP -MF $(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.Tpo -c -o libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.lo `test -f 'SALOME_FileTransferCORBA.cxx' || echo '$(srcdir)/'`SALOME_FileTransferCORBA.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.Tpo $(DEPDIR)/libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_FileTransferCORBA.cxx' object='libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLifeCycleCORBA_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeLifeCycleCORBA_la-SALOME_FileTransferCORBA.lo `test -f 'SALOME_FileTransferCORBA.cxx' || echo '$(srcdir)/'`SALOME_FileTransferCORBA.cxx TestContainerManager-TestContainerManager.o: TestContainerManager.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainerManager_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestContainerManager-TestContainerManager.o -MD -MP -MF $(DEPDIR)/TestContainerManager-TestContainerManager.Tpo -c -o TestContainerManager-TestContainerManager.o `test -f 'TestContainerManager.cxx' || echo '$(srcdir)/'`TestContainerManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestContainerManager-TestContainerManager.Tpo $(DEPDIR)/TestContainerManager-TestContainerManager.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestContainerManager.cxx' object='TestContainerManager-TestContainerManager.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainerManager_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestContainerManager-TestContainerManager.o `test -f 'TestContainerManager.cxx' || echo '$(srcdir)/'`TestContainerManager.cxx TestContainerManager-TestContainerManager.obj: TestContainerManager.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainerManager_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestContainerManager-TestContainerManager.obj -MD -MP -MF $(DEPDIR)/TestContainerManager-TestContainerManager.Tpo -c -o TestContainerManager-TestContainerManager.obj `if test -f 'TestContainerManager.cxx'; then $(CYGPATH_W) 'TestContainerManager.cxx'; else $(CYGPATH_W) '$(srcdir)/TestContainerManager.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestContainerManager-TestContainerManager.Tpo $(DEPDIR)/TestContainerManager-TestContainerManager.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestContainerManager.cxx' object='TestContainerManager-TestContainerManager.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainerManager_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestContainerManager-TestContainerManager.obj `if test -f 'TestContainerManager.cxx'; then $(CYGPATH_W) 'TestContainerManager.cxx'; else $(CYGPATH_W) '$(srcdir)/TestContainerManager.cxx'; fi` Test_LifeCycleCORBA-Test_LifeCycleCORBA.o: Test_LifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_LifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Test_LifeCycleCORBA-Test_LifeCycleCORBA.o -MD -MP -MF $(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Tpo -c -o Test_LifeCycleCORBA-Test_LifeCycleCORBA.o `test -f 'Test_LifeCycleCORBA.cxx' || echo '$(srcdir)/'`Test_LifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Tpo $(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Test_LifeCycleCORBA.cxx' object='Test_LifeCycleCORBA-Test_LifeCycleCORBA.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_LifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Test_LifeCycleCORBA-Test_LifeCycleCORBA.o `test -f 'Test_LifeCycleCORBA.cxx' || echo '$(srcdir)/'`Test_LifeCycleCORBA.cxx Test_LifeCycleCORBA-Test_LifeCycleCORBA.obj: Test_LifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_LifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Test_LifeCycleCORBA-Test_LifeCycleCORBA.obj -MD -MP -MF $(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Tpo -c -o Test_LifeCycleCORBA-Test_LifeCycleCORBA.obj `if test -f 'Test_LifeCycleCORBA.cxx'; then $(CYGPATH_W) 'Test_LifeCycleCORBA.cxx'; else $(CYGPATH_W) '$(srcdir)/Test_LifeCycleCORBA.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Tpo $(DEPDIR)/Test_LifeCycleCORBA-Test_LifeCycleCORBA.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Test_LifeCycleCORBA.cxx' object='Test_LifeCycleCORBA-Test_LifeCycleCORBA.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_LifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Test_LifeCycleCORBA-Test_LifeCycleCORBA.obj `if test -f 'Test_LifeCycleCORBA.cxx'; then $(CYGPATH_W) 'Test_LifeCycleCORBA.cxx'; else $(CYGPATH_W) '$(srcdir)/Test_LifeCycleCORBA.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/LifeCycleCORBA/SALOME_FileTransferCORBA.cxx000077500000000000000000000163371177004724000244130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_FileTransferCORBA.cxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/SALOME_FileTransferCORBA.cxx,v 1.5.2.6.10.2.12.1 2012-04-12 14:05:16 vsr Exp $ // #include "SALOME_FileTransferCORBA.hxx" #include "SALOME_LifeCycleCORBA.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include /*! \class SALOME_FileTransferCORBA \brief A class to manage file transfer in SALOME (CORBA context) */ //============================================================================= /*! * Default constructor, not for use. */ //============================================================================= SALOME_FileTransferCORBA::SALOME_FileTransferCORBA() { ASSERT(0); } //============================================================================= /*! \brief Constructor to use when we get a fileRef CORBA object from a component * * \param aFileRef file reference CORBA object */ //============================================================================= SALOME_FileTransferCORBA::SALOME_FileTransferCORBA(Engines::fileRef_ptr aFileRef) { MESSAGE("SALOME_FileTransferCORBA::SALOME_FileTransferCORBA(aFileRef)"); _theFileRef = aFileRef; } //============================================================================= /*! \brief Constructor to use when we have the file name and machine from which to * copy, plus an optional Container name on the machine. * * \param refMachine the machine on which is the file to transfer * \param origFileName abolute file path on refMachine * \param containerName default container name used (FactoryServer) if empty */ //============================================================================= SALOME_FileTransferCORBA::SALOME_FileTransferCORBA(std::string refMachine, std::string origFileName, std::string containerName) { MESSAGE("SALOME_FileTransferCORBA::SALOME_FileTransferCORBA" << refMachine << " " << origFileName << " " << containerName); _refMachine = refMachine; _origFileName = origFileName; _containerName = containerName; if (_refMachine.empty() || _origFileName.empty()) { INFOS("bad parameters: machine and file name must be given"); } } //============================================================================= /*! * Destructor */ //============================================================================= SALOME_FileTransferCORBA::~SALOME_FileTransferCORBA() { MESSAGE("SALOME_FileTransferCORBA::~SALOME_FileTransferCORBA"); } //============================================================================= /*! \brief Get a local copy of the reference file * * CORBA method * \param localFile optional absolute path to store the copy * \return the file name (absolute path) of the copy, may be different from * localFile parameter if the copy was already done before the call */ //============================================================================= std::string SALOME_FileTransferCORBA::getLocalFile(std::string localFile) { MESSAGE("SALOME_FileTransferCORBA::getLocalFile " << localFile); Engines::Container_var container; if (CORBA::is_nil(_theFileRef)) { if (_refMachine.empty() || _origFileName.empty()) { INFOS("not enough parameters: machine and file name must be given"); return ""; } SALOME_LifeCycleCORBA LCC; Engines::ContainerManager_var contManager = LCC.getContainerManager(); Engines::ResourcesManager_var resManager = LCC.getResourcesManager(); Engines::MachineParameters params; LCC.preSet(params); params.container_name = _containerName.c_str(); params.hostname = _refMachine.c_str(); Engines::ContainerParameters new_params; LCC.convert(params, new_params); new_params.mode = CORBA::string_dup("findorstart"); container = contManager->GiveContainer(new_params); if (CORBA::is_nil(container)) { INFOS("machine " << _refMachine << " unreachable"); return ""; } _theFileRef = container->createFileRef(_origFileName.c_str()); if (CORBA::is_nil(_theFileRef)) { INFOS("impossible to create fileRef on " << _refMachine); return ""; } } container = _theFileRef->getContainer(); ASSERT(! CORBA::is_nil(container)); std::string myMachine = Kernel_Utils::GetHostname(); std::string localCopy = _theFileRef->getRef(myMachine.c_str()); if (localCopy.empty()) // no existing copy available { if (localFile.empty()) // no name provided for local copy { char bufName[256]; localCopy = tmpnam(bufName); localFile = bufName; SCRUTE(localFile); } FILE* fp; if ((fp = fopen(localFile.c_str(),"wb")) == NULL) { INFOS("file " << localFile << " cannot be open for writing"); return ""; } Engines::fileTransfer_var fileTransfer = container->getFileTransfer(); ASSERT(! CORBA::is_nil(fileTransfer)); CORBA::Long fileId = fileTransfer->open(_origFileName.c_str()); if (fileId > 0) { Engines::fileBlock* aBlock; int toFollow = 1; int ctr=0; while (toFollow) { ctr++; SCRUTE(ctr); aBlock = fileTransfer->getBlock(fileId); toFollow = aBlock->length(); SCRUTE(toFollow); CORBA::Octet *buf = aBlock->get_buffer(); #if defined(_DEBUG_) || defined(_DEBUG) int nbWri = fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); ASSERT(nbWri == toFollow); #else fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); #endif delete aBlock; } fclose(fp); MESSAGE("end of transfer"); fileTransfer->close(fileId); _theFileRef->addRef(myMachine.c_str(), localFile.c_str()); localCopy = localFile; } else { INFOS("open reference file for copy impossible"); return ""; } } SCRUTE(localCopy); return localCopy; } salome-kernel-6.5.0/src/LifeCycleCORBA/SALOME_FileTransferCORBA.hxx000077500000000000000000000043261177004724000244130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_FileTransferCORBA.hxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/SALOME_FileTransferCORBA.hxx,v 1.5.2.3.10.2.12.1 2012-04-12 14:05:16 vsr Exp $ // #ifndef _SALOME_FILETRANSFERCORBA_HXX_ #define _SALOME_FILETRANSFERCORBA_HXX_ #include #include #include CORBA_CLIENT_HEADER(SALOME_Component) #include #include #ifdef WIN32 # if defined LIFECYCLECORBA_EXPORTS || defined SalomeLifeCycleCORBA_EXPORTS # define LIFECYCLECORBA_EXPORT __declspec( dllexport ) # else # define LIFECYCLECORBA_EXPORT __declspec( dllimport ) # endif #else # define LIFECYCLECORBA_EXPORT #endif class LIFECYCLECORBA_EXPORT SALOME_FileTransferCORBA { public: SALOME_FileTransferCORBA(); SALOME_FileTransferCORBA(Engines::fileRef_ptr aFileRef); SALOME_FileTransferCORBA(std::string refMachine, std::string origFileName, std::string containerName=""); virtual ~SALOME_FileTransferCORBA(); std::string getLocalFile(std::string localFile = ""); protected: Engines::fileRef_var _theFileRef; std::string _refMachine; std::string _origFileName; std::string _containerName; }; #endif salome-kernel-6.5.0/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx000077500000000000000000000736421177004724000236700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME LifeCycleCORBA : implementation of containers and engines life cycle both in Python and C++ // File : SALOME_LifeCycleCORBA.cxx // Author : Paul RASCLE, EDF // Module : SALOME #include #include #include #include #include #ifndef WIN32 #include #include #endif #include "Basics_Utils.hxx" #include "utilities.h" #include #include "SALOME_LifeCycleCORBA.hxx" #include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog) #include CORBA_CLIENT_HEADER(SALOME_Session) #include CORBA_CLIENT_HEADER(DSC_Engines) #include CORBA_CLIENT_HEADER(SALOME_Registry) #include CORBA_CLIENT_HEADER(SALOMEDS) #include CORBA_CLIENT_HEADER(Logger) #include "SALOME_ContainerManager.hxx" #include "SALOME_Component_i.hxx" #include "SALOME_NamingService.hxx" #include "SALOME_FileTransferCORBA.hxx" IncompatibleComponent::IncompatibleComponent( void ): SALOME_Exception( "IncompatibleComponent" ) { } IncompatibleComponent::IncompatibleComponent(const IncompatibleComponent &ex): SALOME_Exception( ex ) { } /*! \class SALOME_LifeCycleCORBA \brief A class to manage life cycle of SALOME components. */ //============================================================================= /*! * Constructor */ //============================================================================= SALOME_LifeCycleCORBA::SALOME_LifeCycleCORBA(SALOME_NamingService *ns) { // be sure to have an instance of traceCollector, when used via SWIG // in a Python module int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); // LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); _NSnew=0; if (!ns) { _NS = new SALOME_NamingService(orb); _NSnew=_NS; } else _NS = ns; //add try catch _NS->Change_Directory("/"); // mpv 250105: current directory may be not root // (in SALOMEDS for an example) // not enough: set a current directory in naming service is not thread safe // if naming service instance is shared among several threads... // ==> allways use absolute path and dot rely on current directory! CORBA::Object_var obj = _NS->Resolve(SALOME_ContainerManager::_ContainerManagerNameInNS); ASSERT( !CORBA::is_nil(obj)); _ContManager=Engines::ContainerManager::_narrow(obj); obj = _NS->Resolve(SALOME_ResourcesManager::_ResourcesManagerNameInNS); ASSERT( !CORBA::is_nil(obj)); _ResManager=Engines::ResourcesManager::_narrow(obj); } //============================================================================= /*! * Destructor */ //============================================================================= SALOME_LifeCycleCORBA::~SALOME_LifeCycleCORBA() { if(_NSnew)delete _NSnew; } //============================================================================= /*! \brief Find an already existing and registered component instance. * * \param params machine parameters like type or name... * \param componentName the name of component class * \param studyId default = 0 : multistudy instance * \return a CORBA reference of the component instance, or _nil if not found */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA::FindComponent(const Engines::MachineParameters& params, const char *componentName, int studyId) { if (! isKnownComponentClass(componentName)) return Engines::EngineComponent::_nil(); Engines::ContainerParameters new_params; convert(params, new_params); new_params.resource_params.componentList.length(1); new_params.resource_params.componentList[0] = componentName; Engines::ResourceList_var listOfResources; try { listOfResources = _ResManager->GetFittingResources(new_params.resource_params); } catch( const SALOME::SALOME_Exception& ex ) { return Engines::EngineComponent::_nil(); } Engines::EngineComponent_var compo = _FindComponent(new_params, componentName, studyId, listOfResources); return compo._retn(); } //============================================================================= /*! \brief Load a component instance on a container defined by machine parameters * * \param params machine parameters like type or name... * \param componentName the name of component class * \param studyId default = 0 : multistudy instance * \return a CORBA reference of the component instance, or _nil if problem */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA::LoadComponent(const Engines::MachineParameters& params, const char *componentName, int studyId) { // --- Check if Component Name is known in ModuleCatalog if (! isKnownComponentClass(componentName)) return Engines::EngineComponent::_nil(); Engines::ContainerParameters new_params; convert(params, new_params); new_params.resource_params.componentList.length(1); new_params.resource_params.componentList[0] = componentName; Engines::ResourceList_var listOfResources; try { listOfResources = _ResManager->GetFittingResources(new_params.resource_params); } catch( const SALOME::SALOME_Exception& ex ) { return Engines::EngineComponent::_nil(); } new_params.resource_params.resList = listOfResources; Engines::EngineComponent_var compo = _LoadComponent(new_params, componentName, studyId); return compo._retn(); } //============================================================================= /*! \brief Find an already existing and registered component instance or load a new * component instance on a container defined by machine parameters. * * \param params machine parameters like type or name... * \param componentName the name of component class * \param studyId default = 0 : multistudy instance * \return a CORBA reference of the component instance, or _nil if problem */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA:: FindOrLoad_Component(const Engines::MachineParameters& params, const char *componentName, int studyId) { // --- Check if Component Name is known in ModuleCatalog if (! isKnownComponentClass(componentName)) return Engines::EngineComponent::_nil(); Engines::ContainerParameters new_params; convert(params, new_params); new_params.resource_params.componentList.length(1); new_params.resource_params.componentList[0] = componentName; // For Compatibility -> if hostname == localhost put name == hostname if (std::string(new_params.resource_params.hostname.in()) == "localhost") { new_params.resource_params.hostname = CORBA::string_dup(Kernel_Utils::GetHostname().c_str()); new_params.resource_params.name = CORBA::string_dup(Kernel_Utils::GetHostname().c_str()); } Engines::ResourceList_var listOfResources; try { listOfResources = _ResManager->GetFittingResources(new_params.resource_params); } catch( const SALOME::SALOME_Exception& ex ) { return Engines::EngineComponent::_nil(); } Engines::EngineComponent_var compo = _FindComponent(new_params, componentName, studyId, listOfResources); if(CORBA::is_nil(compo)) { new_params.resource_params.resList = listOfResources; compo = _LoadComponent(new_params, componentName, studyId); } return compo._retn(); } Engines::EngineComponent_ptr SALOME_LifeCycleCORBA:: FindOrLoad_Component(const Engines::ContainerParameters& params, const char *componentName, int studyId) { // --- Check if Component Name is known in ModuleCatalog if (! isKnownComponentClass(componentName)) return Engines::EngineComponent::_nil(); Engines::ContainerParameters new_params(params); new_params.resource_params.componentList.length(1); new_params.resource_params.componentList[0] = componentName; Engines::ResourceList_var listOfResources; try { listOfResources = _ResManager->GetFittingResources(new_params.resource_params); } catch( const SALOME::SALOME_Exception& ex ) { return Engines::EngineComponent::_nil(); } Engines::EngineComponent_var compo = _FindComponent(new_params, componentName, studyId, listOfResources); if(CORBA::is_nil(compo)) { new_params.resource_params.resList = listOfResources; compo = _LoadComponent(new_params, componentName, studyId); } return compo._retn(); } //============================================================================= /*! \brief Find an already existing and registered component instance or load a new * component instance on a container defined by name * * \param containerName the name of container, under one of the forms * - 1 aContainer (local container) * - 2 machine/aContainer (container on hostname = machine) * \param componentName the name of component class * \return a CORBA reference of the component instance, or _nil if problem */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA::FindOrLoad_Component(const char *containerName, const char *componentName) { MESSAGE("SALOME_LifeCycleCORBA::FindOrLoad_Component INTERACTIF " << containerName << " " << componentName ) ; // --- Check if Component Name is known in ModuleCatalog if (! isKnownComponentClass(componentName)) return Engines::EngineComponent::_nil(); // --- Check if containerName contains machine name (if yes: rg>0) char *stContainer=strdup(containerName); std::string st2Container(stContainer); int rg=st2Container.find("/"); Engines::MachineParameters_var params=new Engines::MachineParameters; preSet(params); if (rg<0) { // containerName doesn't contain "/" => Local container params->container_name=CORBA::string_dup(stContainer); params->hostname=""; } else { stContainer[rg]='\0'; params->container_name=CORBA::string_dup(stContainer+rg+1); params->hostname=CORBA::string_dup(stContainer); } params->isMPI = false; SCRUTE(params->container_name); free(stContainer); return FindOrLoad_Component(params, componentName); } //============================================================================= /*! \brief Check if the component class is known in module catalog * * \param componentName the name of component class * \return true if found, false otherwise */ //============================================================================= bool SALOME_LifeCycleCORBA::isKnownComponentClass(const char *componentName) { try { CORBA::Object_var obj = _NS->Resolve("/Kernel/ModulCatalog"); SALOME_ModuleCatalog::ModuleCatalog_var Catalog = SALOME_ModuleCatalog::ModuleCatalog::_narrow(obj) ; ASSERT(! CORBA::is_nil(Catalog)); SALOME_ModuleCatalog::Acomponent_var compoInfo = Catalog->GetComponent(componentName); if (CORBA::is_nil (compoInfo)) { MESSAGE("Catalog Error: Component not found in the catalog " << componentName); return false; } else return true; } catch (ServiceUnreachable&) { INFOS("Caught exception: Naming Service Unreachable"); } catch (...) { INFOS("Caught unknown exception."); } return false; } //============================================================================= /*! * Not so complex... useful ? */ //============================================================================= bool SALOME_LifeCycleCORBA::isMpiContainer(const Engines::ContainerParameters& params) throw(IncompatibleComponent) { if( params.isMPI ) return true; else return false; } //============================================================================= /*! \brief Initialisation of a given Engines::MachineParameters with default values. * * - container_name = "" : not relevant * - hostname = "" : not relevant * - OS = "" : not relevant * - nb_proc = 0 : not relevant * - mem_mb = 0 : not relevant * - cpu_clock = 0 : not relevant * - nb_proc_per_node = 0 : not relevant * - nb_node = 0 : not relevant * - isMPI = false : standard components */ //============================================================================= void SALOME_LifeCycleCORBA::preSet(Engines::MachineParameters& params) { params.container_name = ""; params.hostname = ""; params.OS = ""; params.mem_mb = 0; params.cpu_clock = 0; params.nb_proc_per_node = 0; params.nb_node = 0; params.isMPI = false; params.workingdir = ""; params.mode = ""; params.policy = ""; params.parallelLib = ""; params.nb_component_nodes = 0; } void SALOME_LifeCycleCORBA::preSet(Engines::ResourceParameters& params) { params.name = ""; params.hostname = ""; params.OS = ""; params.nb_proc = 0; params.mem_mb = 0; params.cpu_clock = 0; params.nb_node = 0; params.nb_proc_per_node = 0; params.policy = ""; } void SALOME_LifeCycleCORBA::preSet( Engines::ContainerParameters& params) { params.container_name = ""; params.mode = ""; params.workingdir = ""; params.nb_proc = 0; params.isMPI = false; params.parallelLib = ""; SALOME_LifeCycleCORBA::preSet(params.resource_params); } void SALOME_LifeCycleCORBA::convert(const Engines::MachineParameters& params_in, Engines::ContainerParameters& params_out) { SALOME_LifeCycleCORBA::preSet(params_out); // Container part params_out.container_name = params_in.container_name; params_out.mode = params_in.mode; params_out.workingdir = params_in.workingdir; params_out.isMPI = params_in.isMPI; params_out.parallelLib = params_in.parallelLib; // Resource part params_out.resource_params.hostname = params_in.hostname; params_out.resource_params.OS = params_in.OS; params_out.resource_params.mem_mb = params_in.mem_mb; params_out.resource_params.cpu_clock = params_in.cpu_clock; params_out.resource_params.nb_node = params_in.nb_node; params_out.resource_params.nb_proc_per_node = params_in.nb_proc_per_node; params_out.resource_params.policy = params_in.policy; params_out.resource_params.componentList = params_in.componentList; params_out.resource_params.resList.length(params_in.computerList.length()); for (CORBA::ULong i = 0; i < params_in.computerList.length(); i++) params_out.resource_params.resList[i] = params_in.computerList[i]; } //============================================================================= /*! * \return a number of processors not 0, only for MPI containers */ //============================================================================= int SALOME_LifeCycleCORBA::NbProc(const Engines::ContainerParameters& params) { if( !isMpiContainer(params) ) return 0; else if( params.nb_proc <= 0 ) return 1; else return params.nb_proc; } //============================================================================= /*! \brief Get the container manager * * \return the container Manager */ //============================================================================= Engines::ContainerManager_ptr SALOME_LifeCycleCORBA::getContainerManager() { Engines::ContainerManager_var contManager = Engines::ContainerManager::_duplicate(_ContManager); return contManager._retn(); } //============================================================================= /*! \brief Get the resources manager * * \return the container Manager */ //============================================================================= Engines::ResourcesManager_ptr SALOME_LifeCycleCORBA::getResourcesManager() { Engines::ResourcesManager_var resManager = Engines::ResourcesManager::_duplicate(_ResManager); return resManager._retn(); } //============================================================================= /*! \brief shutdown all the SALOME servers except SALOME_Session_Server, omniNames and notifd */ //============================================================================= void SALOME_LifeCycleCORBA::shutdownServers() { // get each Container from NamingService => shutdown it // (the order is inverse to the order of servers initialization) SALOME::Session_var session = SALOME::Session::_nil(); CORBA::Long pid = 0; CORBA::Object_var objS = _NS->Resolve("/Kernel/Session"); if (!CORBA::is_nil(objS)) { session = SALOME::Session::_narrow(objS); if (!CORBA::is_nil(session)) { pid = session->getPID(); } } std::string hostname = Kernel_Utils::GetHostname(); // 1) ConnectionManager try { CORBA::Object_var objCnM=_NS->Resolve("/ConnectionManager"); Engines::ConnectionManager_var connMan=Engines::ConnectionManager::_narrow(objCnM); if ( !CORBA::is_nil(connMan) && ( pid != connMan->getPID() ) ) connMan->ShutdownWithExit(); } catch(const CORBA::Exception& e) { // ignore and continue } timespec ts_req; ts_req.tv_nsec=100000000; ts_req.tv_sec=0; //Wait some time so that ConnectionManager be completely shutdown #ifndef WIN32 nanosleep(&ts_req,0); #endif // 2) SALOMEDS try { CORBA::Object_var objSDS = _NS->Resolve("/myStudyManager"); SALOMEDS::StudyManager_var studyManager = SALOMEDS::StudyManager::_narrow(objSDS) ; if ( !CORBA::is_nil(studyManager) && ( pid != studyManager->getPID() ) ) studyManager->Shutdown(); } catch(const CORBA::Exception& e) { // ignore and continue } //Wait some time so that study be completely shutdown #ifndef WIN32 nanosleep(&ts_req,0); #endif // 3) ModuleCatalog try { CORBA::Object_var objMC=_NS->Resolve("/Kernel/ModulCatalog"); SALOME_ModuleCatalog::ModuleCatalog_var catalog = SALOME_ModuleCatalog::ModuleCatalog::_narrow(objMC); if ( !CORBA::is_nil(catalog) && ( pid != catalog->getPID() ) ) catalog->shutdown(); } catch(const CORBA::Exception& e) { // ignore and continue } //Wait some time so that ModulCatalog be completely shutdown #ifndef WIN32 nanosleep(&ts_req,0); #endif // 4) SalomeLauncher try { CORBA::Object_var objSL = _NS->Resolve("/SalomeLauncher"); Engines::SalomeLauncher_var launcher = Engines::SalomeLauncher::_narrow(objSL); if (!CORBA::is_nil(launcher) && (pid != launcher->getPID())) launcher->Shutdown(); } catch(const CORBA::Exception& e) { // ignore and continue } //Wait some time so that launcher be completely shutdown #ifndef WIN32 nanosleep(&ts_req,0); #endif // 5) Registry try { CORBA::Object_var objR = _NS->Resolve("/Registry"); Registry::Components_var registry = Registry::Components::_narrow(objR); if ( !CORBA::is_nil(registry) && ( pid != registry->getPID() ) ) registry->Shutdown(); } catch(const CORBA::Exception& e) { // ignore and continue } // 6) Session if ( !CORBA::is_nil( session ) ) { try { session->Shutdown(); } catch(const CORBA::Exception& e) { // ignore and continue } } // 7) Logger int argc = 0; char *xargv = (char*)""; char **argv = &xargv; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); CORBA::Object_var objLog = CORBA::Object::_nil(); CosNaming::NamingContext_var inc; CORBA::Object_var theObj = CORBA::Object::_nil(); std::string stdname = "Logger"; CosNaming::Name name; name.length(1); name[0].id = CORBA::string_dup(stdname.c_str()); try { if(!CORBA::is_nil(orb)) theObj = orb->resolve_initial_references("NameService"); if (!CORBA::is_nil(theObj)) inc = CosNaming::NamingContext::_narrow(theObj); } catch(...) { } if(!CORBA::is_nil(inc)) { try { objLog = inc->resolve(name); SALOME_Logger::Logger_var logger = SALOME_Logger::Logger::_narrow(objLog); if ( !CORBA::is_nil(logger) ) logger->shutdown(); } catch(...) { } } } //============================================================================= /*! \brief shutdown omniNames and notifd */ //============================================================================= void SALOME_LifeCycleCORBA::killOmniNames() { std::string portNumber (::getenv ("NSPORT") ); if ( !portNumber.empty() ) { #ifdef WNT #else std::string cmd ; cmd = std::string( "ps -eo pid,command | grep -v grep | grep -E \"omniNames.*") + portNumber + std::string("\" | awk '{cmd=sprintf(\"kill -9 %s\",$1); system(cmd)}'" ); MESSAGE(cmd); try { system ( cmd.c_str() ); } catch ( ... ) { } #endif } // NPAL 18309 (Kill Notifd) if ( !portNumber.empty() ) { std::string cmd = ("from killSalomeWithPort import killNotifdAndClean; "); cmd += std::string("killNotifdAndClean(") + portNumber + "); "; cmd = std::string("python -c \"") + cmd +"\" > /dev/null 2> /dev/null"; MESSAGE(cmd); system( cmd.c_str() ); } } //============================================================================= /*! \brief Find an already existing and registered component instance. * * - build a list of machines on which an instance of the component is running, * - find the best machine among the list * * \param params machine parameters like type or name... * \param componentName the name of component class * \param studyId default = 0 : multistudy instance * \param listOfMachines list of machine address * \return a CORBA reference of the component instance, or _nil if not found */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA:: _FindComponent(const Engines::ContainerParameters& params, const char *componentName, int studyId, const Engines::ResourceList& listOfResources) { // --- build the list of machines on which the component is already running const char *containerName = params.container_name; int nbproc = NbProc(params); Engines::ResourceList_var resourcesOK = new Engines::ResourceList; unsigned int lghtOfresourcesOK = 0; resourcesOK->length(listOfResources.length()); for(unsigned int i=0; i < listOfResources.length(); i++) { const char * currentResource = listOfResources[i]; CORBA::Object_var obj = _NS->ResolveComponent(currentResource, containerName, componentName, nbproc); if (!CORBA::is_nil(obj)) resourcesOK[lghtOfresourcesOK++] = CORBA::string_dup(currentResource); } // --- find the best machine among the list if(lghtOfresourcesOK != 0) { resourcesOK->length(lghtOfresourcesOK); CORBA::String_var bestResource = _ResManager->FindFirst(resourcesOK); CORBA::Object_var obj = _NS->ResolveComponent(bestResource, containerName, componentName, nbproc); return Engines::EngineComponent::_narrow(obj); } else return Engines::EngineComponent::_nil(); } //============================================================================= /*! \brief Load a component instance. * * - Finds a container in the list of machine or start one. * - Try to load the component library in the container, * - then create an instance of the component. * * \param params machine parameters like type or name... * \param componentName the name of component class * \param studyId default = 0 : multistudy instance * \return a CORBA reference of the component instance, or _nil if problem */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA:: _LoadComponent(const Engines::ContainerParameters& params, const char *componentName, int studyId) { MESSAGE("_LoadComponent, required " << params.container_name << " " << componentName << " " << NbProc(params)); Engines::ContainerParameters local_params(params); local_params.mode = CORBA::string_dup("findorstart"); Engines::Container_var cont = _ContManager->GiveContainer(local_params); if (CORBA::is_nil(cont)) return Engines::EngineComponent::_nil(); char* reason; bool isLoadable = cont->load_component_Library(componentName,reason); if (!isLoadable) { //std::cerr << reason << std::endl; CORBA::string_free(reason); return Engines::EngineComponent::_nil(); } CORBA::string_free(reason); Engines::EngineComponent_var myInstance = cont->create_component_instance(componentName, studyId); return myInstance._retn(); } //============================================================================= /*! \brief Load a parallel component instance. * * \param params machine parameters like type or name... * \param componentName the name of component class * \param studyId default = 0 : multistudy instance * \return a CORBA reference of the parallel component instance, or _nil if problem */ //============================================================================= Engines::EngineComponent_ptr SALOME_LifeCycleCORBA::Load_ParallelComponent(const Engines::ContainerParameters& params, const char *componentName, int studyId) { MESSAGE("Entering LoadParallelComponent"); /*MESSAGE("Parameters : "); MESSAGE("Container name : " << params.container_name); MESSAGE("Number of component nodes : " << params.nb_component_nodes); MESSAGE("Component Name : " << componentName);*/ Engines::ContainerParameters parms(params); parms.resource_params.componentList.length(1); parms.resource_params.componentList[0] = componentName; parms.mode = CORBA::string_dup("findorstart"); MESSAGE("Starting Parallel Container"); Engines::Container_var cont = _ContManager->GiveContainer(parms); if (CORBA::is_nil(cont)) { INFOS("FindOrStartParallelContainer() returns a NULL container !"); return Engines::EngineComponent::_nil(); } MESSAGE("Loading component library"); char* reason; bool isLoadable = cont->load_component_Library(componentName,reason); if (!isLoadable) { INFOS(componentName <<" library is not loadable !"); //std::cerr << reason << std::endl; CORBA::string_free(reason); return Engines::EngineComponent::_nil(); } CORBA::string_free(reason); MESSAGE("Creating component instance"); // @PARALLEL@ permits to identify that the component requested // is a parallel component. std::string name = std::string(componentName); Engines::EngineComponent_var myInstance = cont->create_component_instance(name.c_str(), studyId); if (CORBA::is_nil(myInstance)) INFOS("create_component_instance returns a NULL component !"); return myInstance._retn(); } /*! \brief copy a file from a source host to a destination host * \param hostSrc the source host * \param fileSrc the file to copy from the source host to the destination host * \param hostDest the destination host * \param fileDest the destination file */ void SALOME_LifeCycleCORBA::copyFile(const char* hostSrc, const char* fileSrc, const char* hostDest, const char* fileDest) { if(strcmp(hostDest,"localhost") == 0) { //if localhost use a shortcut SALOME_FileTransferCORBA transfer(hostSrc,fileSrc); transfer.getLocalFile(fileDest); return; } Engines::ContainerManager_var contManager = getContainerManager(); Engines::ContainerParameters params; preSet(params); params.resource_params.hostname = hostDest; params.mode = CORBA::string_dup("findorstart"); Engines::Container_var containerDest = contManager->GiveContainer(params); params.resource_params.hostname = hostSrc; Engines::Container_var containerSrc = contManager->GiveContainer(params); containerDest->copyFile(containerSrc,fileSrc,fileDest); } /*! \brief get the naming service used by the life cycle * * \return the naming service */ SALOME_NamingService * SALOME_LifeCycleCORBA::namingService() { return _NS; } /*! \brief get the orb used by the life cycle * * \return the orb */ CORBA::ORB_ptr SALOME_LifeCycleCORBA::orb() { return _NS->orb(); } salome-kernel-6.5.0/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.hxx000077500000000000000000000114221177004724000236610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_LifeCycleCORBA.hxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME #ifndef _SALOME_LIFECYCLECORBA_HXX_ #define _SALOME_LIFECYCLECORBA_HXX_ #include #ifndef WIN32 #include #endif #include #include #include #include CORBA_CLIENT_HEADER(SALOME_ContainerManager) #include CORBA_CLIENT_HEADER(SALOME_Component) #include #ifdef WIN32 # if defined LIFECYCLECORBA_EXPORTS || defined SalomeLifeCycleCORBA_EXPORTS # define LIFECYCLECORBA_EXPORT __declspec( dllexport ) # else # define LIFECYCLECORBA_EXPORT __declspec( dllimport ) # endif #else # define LIFECYCLECORBA_EXPORT #endif class SALOME_NamingService; class LIFECYCLECORBA_EXPORT IncompatibleComponent : public SALOME_Exception { public : IncompatibleComponent(void); IncompatibleComponent(const IncompatibleComponent &ex); }; class LIFECYCLECORBA_EXPORT SALOME_LifeCycleCORBA { public: SALOME_LifeCycleCORBA(SALOME_NamingService *ns = 0); virtual ~SALOME_LifeCycleCORBA(); Engines::EngineComponent_ptr FindComponent(const Engines::MachineParameters& params, const char *componentName, int studyId=0); Engines::EngineComponent_ptr LoadComponent(const Engines::MachineParameters& params, const char *componentName, int studyId=0); Engines::EngineComponent_ptr FindOrLoad_Component(const Engines::MachineParameters& params, const char *componentName, int studyId =0); // SALOME 6 - Interface Engines::EngineComponent_ptr FindOrLoad_Component(const Engines::ContainerParameters& params, const char *componentName, int studyId =0); Engines::EngineComponent_ptr FindOrLoad_Component(const char *containerName, const char *componentName); // for compatibility // Parallel extension Engines::EngineComponent_ptr Load_ParallelComponent(const Engines::ContainerParameters& params, const char *componentName, int studyId); bool isKnownComponentClass(const char *componentName); bool isMpiContainer(const Engines::ContainerParameters& params) throw(IncompatibleComponent); int NbProc(const Engines::ContainerParameters& params); static void preSet(Engines::MachineParameters& outparams); static void preSet(Engines::ResourceParameters& outparams); static void preSet(Engines::ContainerParameters& outparams); Engines::ContainerManager_ptr getContainerManager(); Engines::ResourcesManager_ptr getResourcesManager(); SALOME_NamingService * namingService(); CORBA::ORB_ptr orb(); void copyFile(const char* hostSrc, const char* fileSrc, const char* hostDest, const char* fileDest); void shutdownServers(); static void killOmniNames(); // For SALOME 5.1.x // Will be deleted on SALOME 6 void convert(const Engines::MachineParameters& params_in, Engines::ContainerParameters& params_out); protected: /*! Establish if a component called "componentName" in a container called * "containerName" * exists among the list of resources in "listOfMachines". * This method uses Naming Service to find the component. */ Engines::EngineComponent_ptr _FindComponent(const Engines::ContainerParameters& params, const char *componentName, int studyId, const Engines::ResourceList& listOfResources); Engines::EngineComponent_ptr _LoadComponent(const Engines::ContainerParameters& params, const char *componentName, int studyId); SALOME_NamingService *_NS; SALOME_NamingService *_NSnew; Engines::ContainerManager_var _ContManager; Engines::ResourcesManager_var _ResManager; } ; #endif salome-kernel-6.5.0/src/LifeCycleCORBA/Test/000077500000000000000000000000001177004724000203765ustar00rootroot00000000000000salome-kernel-6.5.0/src/LifeCycleCORBA/Test/LifeCycleCORBATest.cxx000077500000000000000000000544101177004724000243770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "LifeCycleCORBATest.hxx" #include "SALOME_LifeCycleCORBA.hxx" #include "SALOME_FileTransferCORBA.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Basics_Utils.hxx" #include #include #include #include // --- uncomment to have some traces on standard error // (useful only when adding new tests...) //#define _DEVDEBUG_ #ifdef _DEVDEBUG_ #define MYDEVTRACE {std::cerr << __FILE__ << " [" << __LINE__ << "] : ";} #define DEVTRACE(msg) {MYDEVTRACE; std::cerr<deleteInstance(bp1); // --- trace on file const char *theFileName = TRACEFILE; std::string s = "file:"; s += theFileName; //s="local"; //s="with_logger"; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite std::ofstream traceFile; // traceFile.open(theFileName, std::ios::out | std::ios::trunc); traceFile.open(theFileName, std::ios::out | std::ios::app); CPPUNIT_ASSERT(traceFile); // file created empty, then closed traceFile.close(); bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); // --- Get or initialize the orb int _argc = 1; char* _argv[] = {(char*)""}; ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(_argc , _argv ) ; // --- Create a SALOME_NamingService instance _NS.init_orb(_orb) ; } // ============================================================================ /*! * - delete trace classes */ // ============================================================================ void LifeCycleCORBATest::tearDown() { LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); bp1->deleteInstance(bp1); } // ============================================================================ /*! * Check FindOrLoad_Component. * - get a local container (no hostname given), * load an engine, check that the CORBA object is not null. * - check narrow */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_LaunchContainer() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container, // load an engine, check that the CORBA object is not null std::string containerName = "myContainer"; Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo); CPPUNIT_ASSERT(!CORBA::is_nil(m1)); } // ============================================================================ /*! * Check FindOrLoad_Component. * - Call 2 times FindOrLoad_Component with the same parameters * - check if we get the same engine */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_SameInstance() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container, // load an engine, check that the CORBA object is not null std::string containerName = "myContainer"; Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo1)); Engines::EngineComponent_var mycompo2 = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo2)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::TestComponent_var m2; m2 = Engines::TestComponent::_narrow(mycompo2); CPPUNIT_ASSERT(!CORBA::is_nil(m2)); // --- check equality of instance names std::string name1 = m1->instanceName(); std::string name2 = m2->instanceName(); CPPUNIT_ASSERT_EQUAL(name1, name2); } // ============================================================================ /*! * Check FindOrLoad_Component with Python Component on C++ Container * load an engine, check that the CORBA object is not null. * - check narrow */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_PythonInCppContainer() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container, // load an engine, check that the CORBA object is not null std::string containerName = "myContainer"; Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(containerName.c_str(),"SALOME_TestComponentPy"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo1)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); CPPUNIT_ASSERT(!CORBA::is_nil(m1)); } // ============================================================================ /*! * Check FindOrLoad_Component with Python Component on C++ Container * - Call 2 times FindOrLoad_Component with the same parameters * - check if we get the same engine */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_PythonSameInstance() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container (with a name based on local hostname), // load an engine, check that the CORBA object is not null std::string containerName = "myContainer"; Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(containerName.c_str(),"SALOME_TestComponentPy"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo1)); Engines::EngineComponent_var mycompo2 = _LCC.FindOrLoad_Component(containerName.c_str(),"SALOME_TestComponentPy"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo2)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::TestComponent_var m2; m2 = Engines::TestComponent::_narrow(mycompo2); CPPUNIT_ASSERT(!CORBA::is_nil(m2)); // --- check equality of instance names std::string name1 = m1->instanceName(); std::string name2 = m2->instanceName(); CPPUNIT_ASSERT_EQUAL(name1, name2); } // ============================================================================ /*! * Check FindOrLoad_Component with a component name not in catalog. * See list of catalog given to module catalog server. * Here, we work with KERNEL_SRC/resources/KERNELCatalog.xml that contains * only KERNEL, SalomeTestComponent and SALOME_TestComponentPy */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_UnknownInCatalog() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container (with a name based on local hostname), // load an engine, check that the CORBA object is not null std::string containerName = "myContainer"; Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(containerName.c_str(),"MyNewComponent"); CPPUNIT_ASSERT(CORBA::is_nil(mycompo1)); } // ============================================================================ /*! * Check FindOrLoad_Component with hostname given * - get a local container : getHostName()/componentName, * load an engine, check that the CORBA object is not null. * - check narrow */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_LaunchContainerHostname() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container (with a name based on local hostname), // load an engine, check that the CORBA object is not null std::string containerName = Kernel_Utils::GetHostname(); containerName += "/theContainer"; DEVTRACE("containerName = " << containerName); Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo); CPPUNIT_ASSERT(!CORBA::is_nil(m1)); } // ============================================================================ /*! * Check FindOrLoad_Component with and without local hostname given. * We must get the same container, the same instance of component */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_SameContainer() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- get a local container (with a name based on local hostname), // load an engine, check that the CORBA object is not null std::string containerName = "aContainer"; Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo1)); containerName = Kernel_Utils::GetHostname(); containerName += "/aContainer"; DEVTRACE("containerName = " << containerName); Engines::EngineComponent_var mycompo2 = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo2)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::TestComponent_var m2; m2 = Engines::TestComponent::_narrow(mycompo2); CPPUNIT_ASSERT(!CORBA::is_nil(m2)); // --- check equality of instance names std::string name1 = m1->instanceName(); std::string name2 = m2->instanceName(); CPPUNIT_ASSERT_EQUAL(name1, name2); // --- check containers are the same servant (same container name+hostname) Engines::Container_var c1 = m1->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); Engines::Container_var c2 = m2->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); std::string cname1 = c1->name(); std::string cname2 = c2->name(); CPPUNIT_ASSERT_EQUAL(cname1, cname2); std::string hostname1 = c1->getHostName(); std::string hostname2 = c2->getHostName(); CPPUNIT_ASSERT_EQUAL(hostname1, hostname2); CORBA::Long pidc1 = c1->getPID(); CORBA::Long pidc2 = c2->getPID(); CPPUNIT_ASSERT_EQUAL(pidc1, pidc2); } // ============================================================================ /*! * Check FindOrLoad_Component: check behaviour when ask for an unknown computer * We must catch a Salome Exception with "unknown host" message */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_UnknownMachine() { SALOME_LifeCycleCORBA _LCC(&_NS); // --- try to get a distant container on an unknown machine (not existing) // check that the CORBA object is null std::string containerName = "aFarAwayComputer"; containerName += "/theContainer"; // CPPUNIT_ASSERT_THROW(Engines::Component_var mycompo = // _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent");,SALOME::SALOME_Exception); try { Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); } catch(const SALOME::SALOME_Exception &ex) { CPPUNIT_ASSERT(true); // std::string expectedMessage = "BAD PARAM"; // std::ostream os; // os << ex; // std::string actualMessage = os.str(); // DEVTRACE("actual Exception Message = " << actualMessage); // CPPUNIT_ASSERT(actualMessage.find(expectedMessage) != std::string::npos); } } // ============================================================================ /*! * Check FindOrLoad_Component, empty params must give an instance */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_ParamsEmpty() { SALOME_LifeCycleCORBA _LCC(&_NS); Engines::MachineParameters params; _LCC.preSet(params); Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(params,"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo); } // ============================================================================ /*! * Check FindOrLoad_Component params = local container */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_ParamsLocalContainer() { SALOME_LifeCycleCORBA _LCC(&_NS); Engines::MachineParameters params; _LCC.preSet(params); std::string hostname=Kernel_Utils::GetHostname(); params.hostname=hostname.c_str(); Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(params,"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo); // --- check that container is on local computer CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::Container_var c1 = m1->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); std::string hostname1 = c1->getHostName(); CPPUNIT_ASSERT_EQUAL(hostname1, Kernel_Utils::GetHostname()); } // ============================================================================ /*! * Check FindOrLoad_Component params = containerName */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_ParamsContainerName() { SALOME_LifeCycleCORBA _LCC(&_NS); Engines::MachineParameters params; _LCC.preSet(params); std::string containerName = "myContainer"; params.container_name = containerName.c_str(); Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(params,"SalomeTestComponent"); CPPUNIT_ASSERT(!CORBA::is_nil(mycompo)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo); // --- check that container has good name CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::Container_var c1 = m1->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); std::string hostname1 = c1->getHostName(); CPPUNIT_ASSERT_EQUAL(hostname1, Kernel_Utils::GetHostname()); std::string cname1 = c1->name(); CPPUNIT_ASSERT(cname1.find(containerName) != std::string::npos); } // ============================================================================ /*! * Check FindOrLoad_Component on remote computer */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_RemoteComputer() { SALOME_LifeCycleCORBA _LCC(&_NS); std::string remoteHost = GetRemoteHost(); std::string containerName = remoteHost; containerName += "/aContainer"; DEVTRACE("containerName = " << containerName); Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); CPPUNIT_ASSERT_MESSAGE("Test validity requires connection to remote "\ "computers from ResourcesCatalog", !CORBA::is_nil(mycompo1)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); // --- check that container is on good computer CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::Container_var c1 = m1->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); std::string hostname1 = c1->getHostName(); CPPUNIT_ASSERT_EQUAL(hostname1, remoteHost); } // ============================================================================ /*! * Check FindOrLoad_Component with params on remote computer * params empty except hostname */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_ParamsRemoteComputer() { SALOME_LifeCycleCORBA _LCC(&_NS); std::string remoteHost = GetRemoteHost(); Engines::MachineParameters params; _LCC.preSet(params); params.hostname = remoteHost.c_str(); Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(params,"SalomeTestComponent"); CPPUNIT_ASSERT_MESSAGE("Test validity requires connection to remote "\ "computers from ResourcesCatalog", !CORBA::is_nil(mycompo1)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); // --- check that container is on good computer CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::Container_var c1 = m1->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); std::string hostname1 = c1->getHostName(); CPPUNIT_ASSERT_EQUAL(hostname1, remoteHost); } // ============================================================================ /*! * Check FindOrLoad_Component with params on remote computer * params empty except hostname and container_name */ // ============================================================================ void LifeCycleCORBATest::testFindOrLoad_Component_ParamsRemoteComputer2() { SALOME_LifeCycleCORBA _LCC(&_NS); std::string remoteHost = GetRemoteHost(); Engines::MachineParameters params; _LCC.preSet(params); params.hostname = remoteHost.c_str(); params.container_name = "anotherContainer"; Engines::EngineComponent_var mycompo1 = _LCC.FindOrLoad_Component(params,"SalomeTestComponent"); CPPUNIT_ASSERT_MESSAGE("Test validity requires connection to remote "\ "computers from ResourcesCatalog", !CORBA::is_nil(mycompo1)); // --- check narrow Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo1); // --- check that container is on good computer CPPUNIT_ASSERT(!CORBA::is_nil(m1)); Engines::Container_var c1 = m1->GetContainerRef(); CPPUNIT_ASSERT(!CORBA::is_nil(c1)); std::string hostname1 = c1->getHostName(); CPPUNIT_ASSERT_EQUAL(hostname1, remoteHost); } // ============================================================================ /*! * Check SALOME_FileTransferCORBA on local machine */ // ============================================================================ void LifeCycleCORBATest::testgetLocalFile_localComputer() { SALOME_LifeCycleCORBA _LCC(&_NS); std::string origFileName = getenv("KERNEL_ROOT_DIR"); origFileName += "/lib/salome/libSalomeLifeCycleCORBA.so.0.0.0"; SALOME_FileTransferCORBA transfer( Kernel_Utils::GetHostname(), origFileName); std::string local = transfer.getLocalFile(); CPPUNIT_ASSERT(!local.empty()); CPPUNIT_ASSERT_EQUAL(local, origFileName); } // ============================================================================ /*! * Check SALOME_FileTransferCORBA on remote machine */ // ============================================================================ void LifeCycleCORBATest::testgetLocalFile_remoteComputer() { SALOME_LifeCycleCORBA _LCC(&_NS); std::string origFileName = getenv("KERNEL_ROOT_DIR"); origFileName += "/lib/salome/libSalomeContainer.so.0.0.0"; SALOME_FileTransferCORBA transfer( GetRemoteHost(), origFileName); std::string local = transfer.getLocalFile(); CPPUNIT_ASSERT(!local.empty()); std::string local2 = transfer.getLocalFile(); CPPUNIT_ASSERT(!local2.empty()); CPPUNIT_ASSERT_EQUAL(local, local2); } // ============================================================================ /*! * Check FindOrLoad_Component params = containerName */ // ============================================================================ // void // LifeCycleCORBATest::testFindOrLoad_Component_() // { // } // ============================================================================ /*! * Get a remote HostName in the Resource Catalog */ // ============================================================================ std::string LifeCycleCORBATest::GetRemoteHost() { SALOME_LifeCycleCORBA _LCC(&_NS); CORBA::Object_var obj = _NS.Resolve("/ResourcesManager"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); Engines::ResourcesManager_var resourcesManager = Engines::ResourcesManager::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(resourcesManager)); Engines::ContainerParameters params; _LCC.preSet(params); // empty params to get all the machines params.resource_params.componentList.length(1); params.resource_params.componentList[0]="SalomeTestComponent"; Engines::ResourceList_var hostList = resourcesManager->GetFittingResources(params.resource_params); CPPUNIT_ASSERT(hostList->length() > 1); std::string localHost = Kernel_Utils::GetHostname(); std::string remoteHost; for (unsigned int i=0; i < hostList->length(); i++) { const char* aMachine = hostList[i]; Engines::ResourceDefinition_var resource_definition = resourcesManager->GetResourceDefinition(aMachine); std::string machine(resource_definition->hostname.in()); if (machine != localHost) { remoteHost = machine; break; } } CPPUNIT_ASSERT(remoteHost != ""); return remoteHost; } salome-kernel-6.5.0/src/LifeCycleCORBA/Test/LifeCycleCORBATest.hxx000077500000000000000000000066411177004724000244070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _LIFECYCLECORBATEST_HXX_ #define _LIFECYCLECORBATEST_HXX_ #include #include #include CORBA_CLIENT_HEADER(SALOME_Component) #include CORBA_CLIENT_HEADER(SALOME_TestComponent) #include "SALOME_NamingService.hxx" class LifeCycleCORBATest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( LifeCycleCORBATest ); CPPUNIT_TEST( testFindOrLoad_Component_LaunchContainer ); CPPUNIT_TEST( testFindOrLoad_Component_SameInstance ); CPPUNIT_TEST( testFindOrLoad_Component_PythonInCppContainer ); CPPUNIT_TEST( testFindOrLoad_Component_PythonSameInstance ); CPPUNIT_TEST( testFindOrLoad_Component_UnknownInCatalog ); CPPUNIT_TEST( testFindOrLoad_Component_LaunchContainerHostname ); CPPUNIT_TEST( testFindOrLoad_Component_SameContainer ); CPPUNIT_TEST( testFindOrLoad_Component_UnknownMachine ); CPPUNIT_TEST( testFindOrLoad_Component_ParamsEmpty ); CPPUNIT_TEST( testFindOrLoad_Component_ParamsLocalContainer ); CPPUNIT_TEST( testFindOrLoad_Component_ParamsContainerName ); CPPUNIT_TEST( testFindOrLoad_Component_RemoteComputer ); CPPUNIT_TEST( testFindOrLoad_Component_ParamsRemoteComputer ); CPPUNIT_TEST( testFindOrLoad_Component_ParamsRemoteComputer2 ); CPPUNIT_TEST( testgetLocalFile_localComputer ); CPPUNIT_TEST( testgetLocalFile_remoteComputer ); // CPPUNIT_TEST( testFindOrLoad_Component_ ); // CPPUNIT_TEST( ); // CPPUNIT_TEST( ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testFindOrLoad_Component_LaunchContainer(); void testFindOrLoad_Component_SameInstance(); void testFindOrLoad_Component_PythonInCppContainer(); void testFindOrLoad_Component_PythonSameInstance(); void testFindOrLoad_Component_UnknownInCatalog(); void testFindOrLoad_Component_LaunchContainerHostname(); void testFindOrLoad_Component_SameContainer(); void testFindOrLoad_Component_UnknownMachine(); void testFindOrLoad_Component_ParamsEmpty(); void testFindOrLoad_Component_ParamsLocalContainer(); void testFindOrLoad_Component_ParamsContainerName(); void testFindOrLoad_Component_RemoteComputer(); void testFindOrLoad_Component_ParamsRemoteComputer(); void testFindOrLoad_Component_ParamsRemoteComputer2(); void testgetLocalFile_localComputer(); void testgetLocalFile_remoteComputer(); // void testFindOrLoad_Component_(); // void testFindOrLoad_Component_(); protected: std::string GetRemoteHost(); CORBA::ORB_var _orb; SALOME_NamingService _NS; }; #endif salome-kernel-6.5.0/src/LifeCycleCORBA/Test/Makefile.am000077500000000000000000000100171177004724000224340ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ####################################### library # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/Test/Makefile.am,v 1.5.2.1.14.3.12.1 2012-04-12 14:05:16 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= LifeCycleCORBATest.hxx # Scripts to be installed dist_salomescript_SCRIPTS = TestLifeCycleCORBA.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/NamingService -I$(srcdir)/$(RPATH)/NamingService/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/ResourcesManager \ -I$(srcdir)/$(RPATH)/LifeCycleCORBA \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ @CPPUNIT_LIBS@ \ $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(top_builddir)/idl/libSalomeIDLKernel.la @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libLifeCycleCORBATest.la libLifeCycleCORBATest_la_SOURCES = LifeCycleCORBATest.cxx libLifeCycleCORBATest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libLifeCycleCORBATest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libLifeCycleCORBATest_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestLifeCycleCORBA TestLifeCycleCORBA_SOURCES = TestLifeCycleCORBA.cxx TestLifeCycleCORBA_CPPFLAGS = $(COMMON_CPPFLAGS) TestLifeCycleCORBA_LDADD = \ libLifeCycleCORBATest.la ../libSalomeLifeCycleCORBA.la \ $(RPATH)/NamingService/Test/libNamingServiceTest.la \ $(COMMON_LIBS) salome-kernel-6.5.0/src/LifeCycleCORBA/Test/Makefile.in000077500000000000000000001150601177004724000224510ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_SCRIPTS) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestLifeCycleCORBA$(EXEEXT) subdir = src/LifeCycleCORBA/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libLifeCycleCORBATest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libLifeCycleCORBATest_la_OBJECTS = \ libLifeCycleCORBATest_la-LifeCycleCORBATest.lo libLifeCycleCORBATest_la_OBJECTS = \ $(am_libLifeCycleCORBATest_la_OBJECTS) libLifeCycleCORBATest_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libLifeCycleCORBATest_la_LDFLAGS) \ $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_TestLifeCycleCORBA_OBJECTS = \ TestLifeCycleCORBA-TestLifeCycleCORBA.$(OBJEXT) TestLifeCycleCORBA_OBJECTS = $(am_TestLifeCycleCORBA_OBJECTS) TestLifeCycleCORBA_DEPENDENCIES = libLifeCycleCORBATest.la \ ../libSalomeLifeCycleCORBA.la \ $(RPATH)/NamingService/Test/libNamingServiceTest.la \ $(am__DEPENDENCIES_1) SCRIPTS = $(dist_salomescript_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libLifeCycleCORBATest_la_SOURCES) \ $(TestLifeCycleCORBA_SOURCES) DIST_SOURCES = $(libLifeCycleCORBATest_la_SOURCES) \ $(TestLifeCycleCORBA_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules ####################################### library # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/Test/Makefile.am,v 1.5.2.1.14.3.12.1 2012-04-12 14:05:16 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = LifeCycleCORBATest.hxx # Scripts to be installed dist_salomescript_SCRIPTS = TestLifeCycleCORBA.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/NamingService -I$(srcdir)/$(RPATH)/NamingService/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/ResourcesManager \ -I$(srcdir)/$(RPATH)/LifeCycleCORBA \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ @CPPUNIT_LIBS@ \ $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(top_builddir)/idl/libSalomeIDLKernel.la @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libLifeCycleCORBATest.la libLifeCycleCORBATest_la_SOURCES = LifeCycleCORBATest.cxx libLifeCycleCORBATest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libLifeCycleCORBATest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libLifeCycleCORBATest_la_LIBADD = $(COMMON_LIBS) TestLifeCycleCORBA_SOURCES = TestLifeCycleCORBA.cxx TestLifeCycleCORBA_CPPFLAGS = $(COMMON_CPPFLAGS) TestLifeCycleCORBA_LDADD = \ libLifeCycleCORBATest.la ../libSalomeLifeCycleCORBA.la \ $(RPATH)/NamingService/Test/libNamingServiceTest.la \ $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/LifeCycleCORBA/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/LifeCycleCORBA/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libLifeCycleCORBATest.la: $(libLifeCycleCORBATest_la_OBJECTS) $(libLifeCycleCORBATest_la_DEPENDENCIES) $(libLifeCycleCORBATest_la_LINK) -rpath $(libdir) $(libLifeCycleCORBATest_la_OBJECTS) $(libLifeCycleCORBATest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestLifeCycleCORBA$(EXEEXT): $(TestLifeCycleCORBA_OBJECTS) $(TestLifeCycleCORBA_DEPENDENCIES) @rm -f TestLifeCycleCORBA$(EXEEXT) $(CXXLINK) $(TestLifeCycleCORBA_OBJECTS) $(TestLifeCycleCORBA_LDADD) $(LIBS) install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(salomescriptdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(salomescriptdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_salomescriptSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libLifeCycleCORBATest_la-LifeCycleCORBATest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libLifeCycleCORBATest_la-LifeCycleCORBATest.lo: LifeCycleCORBATest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLifeCycleCORBATest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libLifeCycleCORBATest_la-LifeCycleCORBATest.lo -MD -MP -MF $(DEPDIR)/libLifeCycleCORBATest_la-LifeCycleCORBATest.Tpo -c -o libLifeCycleCORBATest_la-LifeCycleCORBATest.lo `test -f 'LifeCycleCORBATest.cxx' || echo '$(srcdir)/'`LifeCycleCORBATest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libLifeCycleCORBATest_la-LifeCycleCORBATest.Tpo $(DEPDIR)/libLifeCycleCORBATest_la-LifeCycleCORBATest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LifeCycleCORBATest.cxx' object='libLifeCycleCORBATest_la-LifeCycleCORBATest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libLifeCycleCORBATest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libLifeCycleCORBATest_la-LifeCycleCORBATest.lo `test -f 'LifeCycleCORBATest.cxx' || echo '$(srcdir)/'`LifeCycleCORBATest.cxx TestLifeCycleCORBA-TestLifeCycleCORBA.o: TestLifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestLifeCycleCORBA-TestLifeCycleCORBA.o -MD -MP -MF $(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Tpo -c -o TestLifeCycleCORBA-TestLifeCycleCORBA.o `test -f 'TestLifeCycleCORBA.cxx' || echo '$(srcdir)/'`TestLifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Tpo $(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestLifeCycleCORBA.cxx' object='TestLifeCycleCORBA-TestLifeCycleCORBA.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestLifeCycleCORBA-TestLifeCycleCORBA.o `test -f 'TestLifeCycleCORBA.cxx' || echo '$(srcdir)/'`TestLifeCycleCORBA.cxx TestLifeCycleCORBA-TestLifeCycleCORBA.obj: TestLifeCycleCORBA.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestLifeCycleCORBA-TestLifeCycleCORBA.obj -MD -MP -MF $(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Tpo -c -o TestLifeCycleCORBA-TestLifeCycleCORBA.obj `if test -f 'TestLifeCycleCORBA.cxx'; then $(CYGPATH_W) 'TestLifeCycleCORBA.cxx'; else $(CYGPATH_W) '$(srcdir)/TestLifeCycleCORBA.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Tpo $(DEPDIR)/TestLifeCycleCORBA-TestLifeCycleCORBA.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestLifeCycleCORBA.cxx' object='TestLifeCycleCORBA-TestLifeCycleCORBA.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLifeCycleCORBA_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestLifeCycleCORBA-TestLifeCycleCORBA.obj `if test -f 'TestLifeCycleCORBA.cxx'; then $(CYGPATH_W) 'TestLifeCycleCORBA.cxx'; else $(CYGPATH_W) '$(srcdir)/TestLifeCycleCORBA.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptSCRIPTS \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptSCRIPTS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptSCRIPTS \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptSCRIPTS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/LifeCycleCORBA/Test/TestLifeCycleCORBA.cxx000077500000000000000000000031141177004724000243720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all Unit Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" #include "SALOMETraceCollectorTest.hxx" #include "UtilsTest.hxx" #include "NamingServiceTest.hxx" #include "LifeCycleCORBATest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMELocalTraceTest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMETraceCollectorTest ); CPPUNIT_TEST_SUITE_REGISTRATION( UtilsTest ); CPPUNIT_TEST_SUITE_REGISTRATION( NamingServiceTest ); CPPUNIT_TEST_SUITE_REGISTRATION( LifeCycleCORBATest ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/LifeCycleCORBA/Test/TestLifeCycleCORBA.py000077500000000000000000000047731177004724000242340ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import setenv import orbmodule import TestKiller import addToKillList # get SALOME environment : args, modules_list, modules_root_dir = setenv.get_config() setenv.set_env(args, modules_list, modules_root_dir) # set environment for trace in logger # (with file, servers may be killed before the write to the file...) #os.environ["SALOME_trace"] = "file:/tmp/traceUnitTest.log" #os.environ["SALOME_trace"] = "local" os.environ["SALOME_trace"] = "with_logger" # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # launch notify server myServer=runSalome.NotifyServer(args,modules_root_dir) myServer.run() # launch registry server myServer=runSalome.RegistryServer(args) myServer.run() clt.waitNS("/Registry") # launch module catalog server cataServer=runSalome.CatalogServer(args) cataServer.setpath(modules_list,modules_root_dir) cataServer.run() clt.waitNS("/Kernel/ModulCatalog") # launch launcher server myCmServer = runSalome.LauncherServer(args) myCmServer.setpath(modules_list,modules_root_dir) myCmServer.run() clt.waitNS("/SalomeLauncher") # execute Unit Test command = ['TestLifeCycleCORBA'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill containers created by the Container Manager import Engines launcher = clt.waitNS("/SalomeLauncher",Engines.SalomeLauncher) launcher.Shutdown() # kill Test process addToKillList.killList() TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/LifeCycleCORBA/TestContainerManager.cxx000077500000000000000000000133411177004724000242650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME TestContainer : test of container creation and its life cycle // File : TestContainer.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/TestContainerManager.cxx,v 1.3.2.5.10.3.12.1 2012-04-12 14:05:16 vsr Exp $ // #include "utilities.h" #include #ifndef WNT #include #endif #include #include "SALOME_NamingService.hxx" #include "SALOME_ContainerManager.hxx" #include "SALOME_LifeCycleCORBA.hxx" #include "NamingService_WaitForServerReadiness.hxx" #include "OpUtil.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Utils_SALOME_Exception.hxx" #include "Utils_CommException.hxx" #include "Basics_DirUtils.hxx" int main (int argc, char * argv[]) { std::map cycle; std::map first; Engines::Container_ptr cont; Engines::EngineComponent_ptr compo; bool error = false; bool bestImplemented; int status; // Initializing omniORB ORB_INIT &init = *SINGLETON_::Instance() ; CORBA::ORB_ptr orb = init( argc , argv ) ; SALOME_NamingService *_NS=new SALOME_NamingService(orb); CORBA::Object_var obj = _NS->Resolve(SALOME_ContainerManager::_ContainerManagerNameInNS); ASSERT( !CORBA::is_nil(obj)); Engines::ContainerManager_var _ContManager=Engines::ContainerManager::_narrow(obj); obj = _NS->Resolve(SALOME_ResourcesManager::_ResourcesManagerNameInNS); ASSERT( !CORBA::is_nil(obj)); Engines::ResourcesManager_var _ResManager=Engines::ResourcesManager::_narrow(obj); Engines::ContainerParameters p; p.resource_params.componentList.length(2); p.resource_params.componentList[0] = "MED"; p.resource_params.componentList[1] = "GEOM"; p.resource_params.hostname = ""; p.resource_params.OS = "LINUX"; p.resource_params.mem_mb = 1000; p.resource_params.cpu_clock = 1000; p.resource_params.nb_proc_per_node = 1; p.resource_params.nb_node = 1; p.isMPI = false; char st[10]; for(int i=0;i<10;i++){ sprintf(st,"cycl_%d",i); p.container_name = CORBA::string_dup(st); p.resource_params.policy="cycl"; cont = _ContManager->GiveContainer(p); if(CORBA::is_nil(cont)) error = true; } for(int i=0;i<10;i++){ sprintf(st,"first_%d",i); p.container_name = CORBA::string_dup(st); p.resource_params.policy="first"; cont = _ContManager->GiveContainer(p); if(CORBA::is_nil(cont)) error = true; } p.container_name = CORBA::string_dup("best"); p.resource_params.policy="best"; cont = _ContManager->GiveContainer(p); if(CORBA::is_nil(cont)) bestImplemented = false; else bestImplemented = true; SALOME_LifeCycleCORBA LCC(_NS); p.container_name = CORBA::string_dup("FactoryServer"); compo = LCC.FindOrLoad_Component(p,"SMESH"); if(CORBA::is_nil(compo)) error = true; compo = LCC.FindOrLoad_Component(p,"SMESH"); if(CORBA::is_nil(compo)) error = true; _NS->Change_Directory("/Containers"); std::vector vec = _NS->list_directory_recurs(); std::list lstCont; for(std::vector::iterator iter = vec.begin();iter!=vec.end();iter++){ CORBA::Object_var obj=_NS->Resolve((*iter).c_str()); Engines::Container_var cont=Engines::Container::_narrow(obj); if(!CORBA::is_nil(cont)){ cycle[cont->getHostName()]=0; first[cont->getHostName()]=0; lstCont.push_back((*iter)); } } for(std::list::iterator iter=lstCont.begin();iter!=lstCont.end();iter++){ CORBA::Object_var obj=_NS->Resolve((*iter).c_str()); Engines::Container_var cont=Engines::Container::_narrow(obj); if(!CORBA::is_nil(cont)){ std::string basename = Kernel_Utils::GetBaseName(cont->name()); if(basename.compare(0,4,"cycl")==0) cycle[cont->getHostName()]++; if(basename.compare(0,5,"first")==0) first[cont->getHostName()]++; } } _ContManager->ShutdownContainers(); int cmin=10; int cmax=0; int fmin=10; int fmax=0; int nbpmax; for(std::map::iterator iter=cycle.begin();iter!=cycle.end();iter++){ if(strcmp((*iter).first.c_str(),"localhost")!=0){ Engines::ResourceDefinition *p = _ResManager->GetResourceDefinition((*iter).first.c_str()); int nbproc = p->nb_node * p->nb_proc_per_node; if(cycle[(*iter).first]/nbproccmax) cmax=cycle[(*iter).first]/nbproc; if(first[(*iter).first]/nbprocfmax){ fmax=first[(*iter).first]/nbproc; nbpmax = nbproc; } } } std::string msg; if( ((cmax-cmin) <= 1) && (fmax == 10/nbpmax) && !error ){ if(bestImplemented) msg = "TEST OK"; else msg = "TEST OK but FindBest not implemented!"; status=0; } else{ msg ="TEST KO"; status=1; } std::cout << msg << std::endl; return status; } salome-kernel-6.5.0/src/LifeCycleCORBA/Test_LifeCycleCORBA.cxx000077500000000000000000000122141177004724000236130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME LifeCycleCORBA : implementation of containers and engines life cycle both in Python and C++ // File : TestLifeCycleCORBA.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA/Test_LifeCycleCORBA.cxx,v 1.7.2.1.10.3.12.1 2012-04-12 14:05:16 vsr Exp $ // #include #ifndef WIN32 #include #endif #include #include CORBA_CLIENT_HEADER(SALOME_Component) #include CORBA_CLIENT_HEADER(SALOME_TestComponent) #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" #include "SALOME_FileTransferCORBA.hxx" #include "utilities.h" #include int main (int argc, char * argv[]) { try { // --- Initialize omniORB CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); // --- Obtain a reference to the root POA CORBA::Object_var obj = orb->resolve_initial_references("RootPOA") ; PortableServer::POA_var poa = PortableServer::POA::_narrow(obj) ; // --- Naming Service and LifeCycleCORBA interfaces SALOME_NamingService _NS(orb) ; SALOME_LifeCycleCORBA _LCC(&_NS) ; // --- get a local container, // load an engine, and invoque methods on that engine std::string containerName = "myServer"; MESSAGE("FindOrLoadComponent " + containerName + "/" + "SalomeTestComponent" ); Engines::EngineComponent_var mycompo = _LCC.FindOrLoad_Component(containerName.c_str(),"SalomeTestComponent"); ASSERT(!CORBA::is_nil(mycompo)); Engines::TestComponent_var m1; m1 = Engines::TestComponent::_narrow(mycompo); ASSERT(!CORBA::is_nil(m1)); SCRUTE(m1->instanceName()); MESSAGE("Coucou " << m1->Coucou(1L)); // --- get another container, // load an engine, and invoque methods on that engine std::string containerName2 = "otherServer"; Engines::EngineComponent_var mycompo2 = _LCC.FindOrLoad_Component(containerName2.c_str(),"SALOME_TestComponentPy"); ASSERT(!CORBA::is_nil(mycompo2)); Engines::TestComponent_var m2; m2 = Engines::TestComponent::_narrow(mycompo2); ASSERT(!CORBA::is_nil(m2)); SCRUTE(m2->instanceName()); std::cout << m2->instanceName() << std::endl; MESSAGE("Coucou " << m2->Coucou(1L)); // --- get a third container, // load an engine, and invoque methods on that engine Engines::EngineComponent_var mycompo3 = _LCC.FindOrLoad_Component("totoPy","SALOME_TestComponentPy"); ASSERT(!CORBA::is_nil(mycompo3)); Engines::TestComponent_var m3 = Engines::TestComponent::_narrow(mycompo3); ASSERT(!CORBA::is_nil(m3)); std::cout << m3->instanceName() << std::endl; // --- yet another container, with hostname, // load an engine, and invoque methods on that engine std::string containerName4 = Kernel_Utils::GetHostname(); containerName4 += "/titiPy"; Engines::EngineComponent_var mycompo4 = _LCC.FindOrLoad_Component(containerName4.c_str(),"SALOME_TestComponentPy"); ASSERT(!CORBA::is_nil(mycompo4)); Engines::TestComponent_var m4 = Engines::TestComponent::_narrow(mycompo4); ASSERT(!CORBA::is_nil(m4)); std::cout << m4->instanceName() << std::endl; // --- try a local file transfer std::string origFileName = "/home/prascle/petitfichier"; SALOME_FileTransferCORBA transfer( Kernel_Utils::GetHostname(), origFileName); std::string local = transfer.getLocalFile(); SCRUTE(local); // --- try a file transfer from another computer origFileName = "/home/prascle/occ60.tgz"; SALOME_FileTransferCORBA transfer2( "cli76ce", origFileName); local = transfer2.getLocalFile(); SCRUTE(local); local = transfer2.getLocalFile(); SCRUTE(local); } catch(CORBA::SystemException& ex) { INFOS("Caught system exception COMM_FAILURE -- unable to contact the object."); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(...) { INFOS("Caught unknown exception."); } return 0; } salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/000077500000000000000000000000001177004724000203105ustar00rootroot00000000000000salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/LifeCycleCORBA.py000077500000000000000000000106021177004724000232720ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME LifeCycleCORBA : implementation of containers and engines life cycle both in Python and C++ # File : LifeCycleCORBA.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/LifeCycleCORBA.py,v 1.4.2.5.14.5.12.1 2012-04-12 14:05:16 vsr Exp $ # import Engines from libSALOME_LifeCycleCORBA import * class LifeCycleCORBA (SALOME_LifeCycleCORBA): def __init__(self, orb = None): SALOME_LifeCycleCORBA.__init__(self) def FindOrLoadComponent(self, containerName, componentName): return SALOME_LifeCycleCORBA.FindOrLoad_Component(self, containerName, componentName) class MachineParameters (Engines.MachineParameters): def __init__(self, container_name='', hostname='', componentList=[], computerList=[], OS='', mem_mb=0, cpu_clock=0, nb_proc_per_node=0, nb_node=0, isMPI=False, workingdir='', mode='start', policy='altcycl', parallelLib='', nb_component_nodes=0): Engines.MachineParameters.__init__(self,container_name, hostname, componentList, computerList, OS, mem_mb, cpu_clock, nb_proc_per_node, nb_node, isMPI, workingdir, mode, policy, parallelLib, nb_component_nodes) class ContainerParameters (Engines.ContainerParameters): def __init__(self, container_name='', mode='start', workingdir='', nb_proc=0, isMPI=False, parallelLib='',resource_params=None): if resource_params is None:resource_params=ResourceParameters() Engines.ContainerParameters.__init__(self,container_name, mode, workingdir, nb_proc, isMPI, parallelLib,resource_params) class ResourceParameters (Engines.ResourceParameters): def __init__(self, name="", hostname="", OS="", componentList=[], nb_proc=0, mem_mb=0, cpu_clock=0, nb_node=0, nb_proc_per_node=0, policy="", resList=[]): Engines.ResourceParameters.__init__(self, name, hostname, OS, componentList, nb_proc, mem_mb, cpu_clock, nb_node, nb_proc_per_node, policy, resList) class JobParameters (Engines.JobParameters): def __init__(self, job_name="", job_type="", job_file="", env_file="", in_files=[], out_files=[], work_directory="", local_directory="", result_directory="", maximum_duration="", resource_required=None, queue="", specific_parameters=[]): Engines.JobParameters.__init__(self, job_name, job_type, job_file, env_file, in_files, out_files, work_directory, local_directory, result_directory, maximum_duration, resource_required, queue, specific_parameters) class ResourceDefinition(Engines.ResourceDefinition): def __init__(self, name="", hostname="", protocol="rsh", username="", applipath="", componentList=[], mode="interactive", OS="", mem_mb=1, cpu_clock=1, nb_node=1, nb_proc_per_node=1, batch="", mpiImpl="", iprotocol="rsh"): Engines.ResourceDefinition.__init__(self, name, hostname, protocol, username, applipath, componentList, mode, OS, mem_mb, cpu_clock, nb_node, nb_proc_per_node, batch, mpiImpl, iprotocol) salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Makefile.am000077500000000000000000000065261177004724000223600ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/Makefile.am,v 1.6.2.2.14.2.12.1 2012-04-12 14:05:16 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Swig targets # =============================================================== # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm) # # Step 1: build the wrapping source files with swig # # libSALOME_LifeCycleCORBA.i -- swig --> swig_wrap.cpp # libSALOME_LifeCycleCORBA.py # # Step 2: build the dynamic library from cpp built source files and # dependant libraries. # # swig_wrap.cpp -- gcc --> swig_wrap.o |-- link --> _libSALOME_LifeCycleCORBA.la # + | # dependant libs | # # The file libSALOME_LifeCycleCORBA.py will be installed in # /lib/python/site-package/salome. # The library will be installed in the same place. # BUILT_SOURCES = swig_wrap.cpp libSALOME_LifeCycleCORBA.py SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../LifeCycleCORBA -I$(srcdir)/../Utils SWIGSOURCES = libSALOME_LifeCycleCORBA.i salomepython_PYTHON = libSALOME_LifeCycleCORBA.py salomepyexec_LTLIBRARIES = _libSALOME_LifeCycleCORBA.la _libSALOME_LifeCycleCORBA_la_SOURCES = swig_wrap.cpp _libSALOME_LifeCycleCORBA_la_CPPFLAGS =\ @PYTHON_INCLUDES@ \ -I$(srcdir) \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../LifeCycleCORBA \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ _libSALOME_LifeCycleCORBA_la_LDFLAGS = -module _libSALOME_LifeCycleCORBA_la_LIBADD = \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ @PYTHON_LIBS@ swig_wrap.cpp libSALOME_LifeCycleCORBA.py : $(SWIGSOURCES) $(SWIG) $(SWIG_FLAGS) -o swig_wrap.cpp $< CLEANFILES = swig_wrap.cpp EXTRA_DIST = $(SWIGSOURCES) # # =============================================================== # Files to be installed # =============================================================== # # Scripts to be installed. dist_salomescript_PYTHON =\ LifeCycleCORBA.py \ TestLifeCycleCORBA.py # It's not needed to specify libSALOME_LifeCycleCORBA.py. It is # automaticaly installed through the swig target salomepython_PYTHON. salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Makefile.in000077500000000000000000001034561177004724000223710ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomepython_PYTHON) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/LifeCycleCORBA_SWIG ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomepyexecdir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomepythondir)" LTLIBRARIES = $(salomepyexec_LTLIBRARIES) _libSALOME_LifeCycleCORBA_la_DEPENDENCIES = \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la am__libSALOME_LifeCycleCORBA_la_OBJECTS = \ _libSALOME_LifeCycleCORBA_la-swig_wrap.lo _libSALOME_LifeCycleCORBA_la_OBJECTS = \ $(am__libSALOME_LifeCycleCORBA_la_OBJECTS) _libSALOME_LifeCycleCORBA_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(_libSALOME_LifeCycleCORBA_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(_libSALOME_LifeCycleCORBA_la_SOURCES) DIST_SOURCES = $(_libSALOME_LifeCycleCORBA_la_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../LifeCycleCORBA -I$(srcdir)/../Utils VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/Makefile.am,v 1.6.2.2.14.2.12.1 2012-04-12 14:05:16 vsr Exp $ # # # =============================================================== # Swig targets # =============================================================== # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm) # # Step 1: build the wrapping source files with swig # # libSALOME_LifeCycleCORBA.i -- swig --> swig_wrap.cpp # libSALOME_LifeCycleCORBA.py # # Step 2: build the dynamic library from cpp built source files and # dependant libraries. # # swig_wrap.cpp -- gcc --> swig_wrap.o |-- link --> _libSALOME_LifeCycleCORBA.la # + | # dependant libs | # # The file libSALOME_LifeCycleCORBA.py will be installed in # /lib/python/site-package/salome. # The library will be installed in the same place. # BUILT_SOURCES = swig_wrap.cpp libSALOME_LifeCycleCORBA.py SWIGSOURCES = libSALOME_LifeCycleCORBA.i salomepython_PYTHON = libSALOME_LifeCycleCORBA.py salomepyexec_LTLIBRARIES = _libSALOME_LifeCycleCORBA.la _libSALOME_LifeCycleCORBA_la_SOURCES = swig_wrap.cpp _libSALOME_LifeCycleCORBA_la_CPPFLAGS = \ @PYTHON_INCLUDES@ \ -I$(srcdir) \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../LifeCycleCORBA \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ _libSALOME_LifeCycleCORBA_la_LDFLAGS = -module _libSALOME_LifeCycleCORBA_la_LIBADD = \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ @PYTHON_LIBS@ CLEANFILES = swig_wrap.cpp EXTRA_DIST = $(SWIGSOURCES) # # =============================================================== # Files to be installed # =============================================================== # # Scripts to be installed. dist_salomescript_PYTHON = \ LifeCycleCORBA.py \ TestLifeCycleCORBA.py all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/LifeCycleCORBA_SWIG/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/LifeCycleCORBA_SWIG/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-salomepyexecLTLIBRARIES: $(salomepyexec_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(salomepyexecdir)" || $(MKDIR_P) "$(DESTDIR)$(salomepyexecdir)" @list='$(salomepyexec_LTLIBRARIES)'; test -n "$(salomepyexecdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(salomepyexecdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(salomepyexecdir)"; \ } uninstall-salomepyexecLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(salomepyexec_LTLIBRARIES)'; test -n "$(salomepyexecdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(salomepyexecdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(salomepyexecdir)/$$f"; \ done clean-salomepyexecLTLIBRARIES: -test -z "$(salomepyexec_LTLIBRARIES)" || rm -f $(salomepyexec_LTLIBRARIES) @list='$(salomepyexec_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done _libSALOME_LifeCycleCORBA.la: $(_libSALOME_LifeCycleCORBA_la_OBJECTS) $(_libSALOME_LifeCycleCORBA_la_DEPENDENCIES) $(_libSALOME_LifeCycleCORBA_la_LINK) -rpath $(salomepyexecdir) $(_libSALOME_LifeCycleCORBA_la_OBJECTS) $(_libSALOME_LifeCycleCORBA_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_libSALOME_LifeCycleCORBA_la-swig_wrap.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< _libSALOME_LifeCycleCORBA_la-swig_wrap.lo: swig_wrap.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libSALOME_LifeCycleCORBA_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT _libSALOME_LifeCycleCORBA_la-swig_wrap.lo -MD -MP -MF $(DEPDIR)/_libSALOME_LifeCycleCORBA_la-swig_wrap.Tpo -c -o _libSALOME_LifeCycleCORBA_la-swig_wrap.lo `test -f 'swig_wrap.cpp' || echo '$(srcdir)/'`swig_wrap.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/_libSALOME_LifeCycleCORBA_la-swig_wrap.Tpo $(DEPDIR)/_libSALOME_LifeCycleCORBA_la-swig_wrap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='swig_wrap.cpp' object='_libSALOME_LifeCycleCORBA_la-swig_wrap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libSALOME_LifeCycleCORBA_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o _libSALOME_LifeCycleCORBA_la-swig_wrap.lo `test -f 'swig_wrap.cpp' || echo '$(srcdir)/'`swig_wrap.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomepythonPYTHON: $(salomepython_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomepythondir)" || $(MKDIR_P) "$(DESTDIR)$(salomepythondir)" @list='$(salomepython_PYTHON)'; dlist=; list2=; test -n "$(salomepythondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomepythondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomepythondir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomepythondir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomepythondir)" $$dlist; \ fi; \ else :; fi uninstall-salomepythonPYTHON: @$(NORMAL_UNINSTALL) @list='$(salomepython_PYTHON)'; test -n "$(salomepythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$fileso ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(salomepyexecdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomepythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-salomepyexecLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomepythonPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-salomepyexecLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salomescriptPYTHON \ uninstall-salomepyexecLTLIBRARIES uninstall-salomepythonPYTHON .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-salomepyexecLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_salomescriptPYTHON install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am \ install-salomepyexecLTLIBRARIES install-salomepythonPYTHON \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-dist_salomescriptPYTHON \ uninstall-salomepyexecLTLIBRARIES uninstall-salomepythonPYTHON swig_wrap.cpp libSALOME_LifeCycleCORBA.py : $(SWIGSOURCES) $(SWIG) $(SWIG_FLAGS) -o swig_wrap.cpp $< # It's not needed to specify libSALOME_LifeCycleCORBA.py. It is # automaticaly installed through the swig target salomepython_PYTHON. # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/000077500000000000000000000000001177004724000212275ustar00rootroot00000000000000salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/LifeCycleCORBA_SWIGTest.py000077500000000000000000000164511177004724000257120ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : LifeCycleCORBA_SWIGTest.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/Test/LifeCycleCORBA_SWIGTest.py,v 1.5.2.3.14.2.12.1 2012-04-12 14:05:16 vsr Exp $ # import sys import unittest from omniORB import CORBA import PYHELLO_ORB import HELLO_ORB import Utils_Identity import Engines class LifeCycleCORBA_SWIGTest(unittest.TestCase): def setUp(self): import LifeCycleCORBA self.lcc = LifeCycleCORBA.LifeCycleCORBA() pass def tearDown(self): pass def test001_FindOrLoad_Component_LaunchContainer(self): """ get a local container (no hostname given), load an engine, check that the CORBA object is not null. check narrow """ containerName = "swMyContainer" comp=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") self.assertNotEqual(comp,None) testComp=comp._narrow(Engines.TestComponent) self.assertNotEqual(testComp,None) pass def test002_FindOrLoad_Component_SameInstance(self): """ Check FindOrLoad_Component. Call 2 times FindOrLoad_Component with the same parameters, check if we get the same engine """ containerName = "swMyContainer" cp1=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") self.assertNotEqual(cp1,None) cp2=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") self.assertNotEqual(cp2,None) m1=cp1._narrow(Engines.TestComponent) self.assertNotEqual(m1,None) m2=cp2._narrow(Engines.TestComponent) self.assertNotEqual(m2,None) name1=m1._get_instanceName() name2=m2._get_instanceName() self.assertEqual(name1,name2) pass def test003_FindOrLoad_Component_PythonInCppContainer(self): """ Check FindOrLoad_Component with Python Component on C++ Container, load an engine, check that the CORBA object is not null. check narrow """ containerName = "swMyContainer" cp1=self.lcc.FindOrLoad_Component(containerName,"SALOME_TestComponentPy") self.assertNotEqual(cp1,None) m1=cp1._narrow(Engines.TestComponent) self.assertNotEqual(m1,None) pass def test004_FindOrLoad_Component_PythonSameInstance(self): """ Check FindOrLoad_Component with Python Component on C++ Container, Call 2 times FindOrLoad_Component with the same parameters, check if we get the same engine, """ containerName = "swMyContainer" cp1=self.lcc.FindOrLoad_Component(containerName,"SALOME_TestComponentPy") self.assertNotEqual(cp1,None) cp2=self.lcc.FindOrLoad_Component(containerName,"SALOME_TestComponentPy") self.assertNotEqual(cp2,None) m1=cp1._narrow(Engines.TestComponent) self.assertNotEqual(m1,None) m2=cp2._narrow(Engines.TestComponent) self.assertNotEqual(m2,None) name1=m1._get_instanceName() name2=m2._get_instanceName() self.assertEqual(name1,name2) pass def test005_FindOrLoad_Component_UnknownInCatalog(self): """ Check FindOrLoad_Component with a component name not in catalog. See list of catalog given to module catalog server. Here, we work with KERNEL_SRC/resources/KERNELCatalog.xml that contains only KERNEL, SalomeTestComponent and SALOME_TestComponentPy """ containerName = "swMyContainer" cp1=self.lcc.FindOrLoad_Component(containerName,"MyNewComponent") self.assertEqual(cp1,None) pass def test006_FindOrLoad_Component_LaunchContainerHostname(self): """ Check FindOrLoad_Component with hostname given. get a local container : getHostName()/componentName, load an engine, check that the CORBA object is not null. check narrow """ containerName = Utils_Identity.getShortHostName() containerName += "/swTheContainer" cp1=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") self.assertNotEqual(cp1,None) m1=cp1._narrow(Engines.TestComponent) self.assertNotEqual(m1,None) pass def test007_FindOrLoad_Component_SameContainer(self): """ Check FindOrLoad_Component with and without local hostname given. We must get the same container, the same instance of component """ containerName = "swAContainer" cp1=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") self.assertNotEqual(cp1,None) containerName = Utils_Identity.getShortHostName() containerName += "/swAContainer" cp2=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") self.assertNotEqual(cp2,None) m1=cp1._narrow(Engines.TestComponent) self.assertNotEqual(m1,None) m2=cp2._narrow(Engines.TestComponent) self.assertNotEqual(m2,None) name1=m1._get_instanceName() name2=m2._get_instanceName() self.assertEqual(name1,name2) c1=m1.GetContainerRef() self.assertNotEqual(c1,None) c2=m2.GetContainerRef() self.assertNotEqual(c2,None) cname1=c1._get_name() cname2=c2._get_name() self.assertEqual(cname1,cname2) hostname1=c1.getHostName() hostname2=c2.getHostName() self.assertEqual(hostname1,hostname2) pidc1=c1.getPID() pidc2=c2.getPID() self.assertEqual(pidc1,pidc2) pass def test008_FindOrLoad_Component_UnknownMachine(self): """ Check FindOrLoad_Component: check behaviour when ask for an unknown computer. We must catch a Salome Exception with "unknown host" message """ containerName = "aFarAwayContainer" containerName += "/swTheContainer" try: cp1=self.lcc.FindOrLoad_Component(containerName,"SalomeTestComponent") except RuntimeError,ex : self.assertEqual(ex.args[0],'unknown host') pass def suite(): return unittest.makeSuite(LifeCycleCORBA_SWIGTest,'test') def main(): return unittest.TextTestRunner().run(suite()) if __name__ == '__main__': unittest.TextTestRunner(verbosity=2).run(suite()) pass salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/Makefile.am000077500000000000000000000050351177004724000232710ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ####################################### # File : Makefile.am # Author : Paul RASCLE (EDF) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/Test/Makefile.am,v 1.5.2.3.18.2.12.1 2012-04-12 14:05:16 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= # Scripts to be installed dist_salomescript_PYTHON = \ LifeCycleCORBA_SWIGTest.py \ testresourcemanager.py \ testcontainermanager.py \ TestLifeCycleCORBA_SWIG.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/Makefile.in000077500000000000000000000700261177004724000233040ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = subdir = src/LifeCycleCORBA_SWIG/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) PROGRAMS = $(bin_PROGRAMS) SOURCES = DIST_SOURCES = py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules ####################################### # File : Makefile.am # Author : Paul RASCLE (EDF) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/Test/Makefile.am,v 1.5.2.3.18.2.12.1 2012-04-12 14:05:16 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = # Scripts to be installed dist_salomescript_PYTHON = \ LifeCycleCORBA_SWIGTest.py \ testresourcemanager.py \ testcontainermanager.py \ TestLifeCycleCORBA_SWIG.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/LifeCycleCORBA_SWIG/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/LifeCycleCORBA_SWIG/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-data-am install-strip .PHONY: all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-data-hook \ install-dist_salomescriptPYTHON install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/TestLifeCycleCORBA_SWIG.py000077500000000000000000000055601177004724000257110ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : TestLifeCycleCORBA_SWIG.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/LifeCycleCORBA_SWIG/Test/TestLifeCycleCORBA_SWIG.py,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:16 vsr Exp $ # import sys, os,signal,string,commands import runSalome import setenv import orbmodule import TestKiller import addToKillList # get SALOME environment : args, modules_list, modules_root_dir = setenv.get_config() setenv.set_env(args, modules_list, modules_root_dir) # set environment for trace in logger # (with file, servers may be killed before the write to the file...) #os.environ["SALOME_trace"] = "file:/tmp/traceUnitTest.log" #os.environ["SALOME_trace"] = "local" os.environ["SALOME_trace"] = "with_logger" # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # launch notify server myServer=runSalome.NotifyServer(args,modules_root_dir) myServer.run() # launch registry server myServer=runSalome.RegistryServer(args) myServer.run() clt.waitNS("/Registry") # launch module catalog server cataServer=runSalome.CatalogServer(args) cataServer.setpath(modules_list,modules_root_dir) cataServer.run() clt.waitNS("/Kernel/ModulCatalog") # launch container manager server myCmServer = runSalome.LauncherServer(args) myCmServer.setpath(modules_list,modules_root_dir) myCmServer.run() clt.waitNS("/SalomeLauncher") # execute Unit Test command = ['TestLifeCycleCORBA'] ret = os.spawnvp(os.P_WAIT, command[0], command) import LifeCycleCORBA_SWIGTest import unittest unittest.TextTestRunner(verbosity=2).run(LifeCycleCORBA_SWIGTest.suite()) # kill containers created by the Container Manager import Engines launcher = clt.waitNS("/SalomeLauncher",Engines.SalomeLauncher) launcher.Shutdown() # kill Test process addToKillList.killList() TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/testcontainermanager.py000077500000000000000000000051711177004724000260250ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import unittest import salome import Engines import LifeCycleCORBA salome.salome_init() cm= salome.lcc.getContainerManager() rm= salome.lcc.getResourcesManager() class TestContainerManager(unittest.TestCase): """ Test with catalog : """ def setUp(self): pass def test0(self): """""" rp=LifeCycleCORBA.ResourceParameters(policy="best",componentList=["PYHELLO"]) p=LifeCycleCORBA.ContainerParameters(container_name="MyContainer",mode="start",resource_params=rp) co=cm.GiveContainer( p ) self.assertEqual(co._get_name(), "/Containers/claui2c6/MyContainer") co=cm.GiveContainer( p ) self.assertEqual(co._get_name(), "/Containers/clt10br/MyContainer") def test1(self): """""" rp=LifeCycleCORBA.ResourceParameters(policy="best",componentList=["PYHELLO"]) p=LifeCycleCORBA.ContainerParameters(container_name="MyContainer",mode="get",resource_params=rp) co=cm.GiveContainer( p ) self.assertEqual(co._get_name(), "/Containers/claui2c6/MyContainer") co=cm.GiveContainer( p ) self.assertEqual(co._get_name(), "/Containers/clt10br/MyContainer") def test2(self): """""" rp=LifeCycleCORBA.ResourceParameters(policy="best",componentList=["PYHELLO"]) p=LifeCycleCORBA.ContainerParameters(container_name="MyContainer",mode="getorstart",resource_params=rp) co=cm.GiveContainer( p ) self.assertEqual(co._get_name(), "/Containers/claui2c6/MyContainer") co=cm.GiveContainer( p ) self.assertEqual(co._get_name(), "/Containers/clt10br/MyContainer") if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(TestContainerManager) unittest.TextTestRunner().run(suite) salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/Test/testresourcemanager.py000077500000000000000000000125151177004724000256720ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import unittest import salome import LifeCycleCORBA import SALOME salome.salome_init() cm= salome.lcc.getContainerManager() rm= salome.lcc.getResourcesManager() class TestResourceManager(unittest.TestCase): """ Test with CatalogResources.xml: """ def setUp(self): pass def test0(self): """host required""" params=LifeCycleCORBA.ResourceParameters(hostname="m3") machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ["m3"]) def test1(self): """OS required""" params=LifeCycleCORBA.ResourceParameters(OS="Linux") self.assertRaises(SALOME.SALOME_Exception,rm.GetFittingResources,params) def test2(self): """component add required""" params=LifeCycleCORBA.ResourceParameters(componentList=["add"]) machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ['claui2c6', 'm1', 'm2']) def test3(self): """component tutu required""" params=LifeCycleCORBA.ResourceParameters(componentList=["tutu"]) machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ['m1', 'm2', 'm3']) def test4(self): """component tata required""" params=LifeCycleCORBA.ResourceParameters(componentList=["tata"]) machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ['m1', 'm2']) def test5(self): """component titi required""" params=LifeCycleCORBA.ResourceParameters(componentList=["titi"]) machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ['m1', 'm2']) def test6(self): """component toto required""" params=LifeCycleCORBA.ResourceParameters(componentList=["toto"]) machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ['claui2c6', 'm1', 'm2']) def test7(self): """components add and toto required""" params=LifeCycleCORBA.ResourceParameters(componentList=["add","toto"]) machineList=rm.GetFittingResources(params) self.assertEqual(machineList, ['claui2c6', 'm1', 'm2']) def test8(self): """components add and toto required""" machineDef=rm.GetResourceDefinition('claui2c6') self.assertEqual(machineDef.componentList, ['toto', 'add']) def test10(self): """policy altcycl""" params=LifeCycleCORBA.ResourceParameters(componentList=["add","toto"]) machineList=rm.GetFittingResources(params) self.assertEqual(rm.Find('altcycl',machineList), "claui2c6") self.assertEqual(rm.Find('altcycl',machineList), "m1") self.assertEqual(rm.Find('altcycl',machineList), "m2") self.assertEqual(rm.Find('altcycl',machineList), "claui2c6") self.assertEqual(rm.Find('altcycl',machineList), "m1") self.assertEqual(rm.Find('altcycl',machineList), "m2") def test11(self): """policy cycl""" params=LifeCycleCORBA.ResourceParameters(componentList=["add","toto"]) machineList=rm.GetFittingResources(params) self.assertEqual(rm.Find('cycl',machineList), "claui2c6") self.assertEqual(rm.Find('cycl',machineList), "m1") self.assertEqual(rm.Find('cycl',machineList), "m2") self.assertEqual(rm.Find('cycl',machineList), "claui2c6") self.assertEqual(rm.Find('cycl',machineList), "m1") self.assertEqual(rm.Find('cycl',machineList), "m2") def test12(self): """policy first""" params=LifeCycleCORBA.ResourceParameters(componentList=["add","toto"]) machineList=rm.GetFittingResources(params) self.assertEqual(rm.Find('first',machineList), "claui2c6") self.assertEqual(rm.Find('first',machineList), "claui2c6") def test13(self): """policy best""" params=LifeCycleCORBA.ResourceParameters(componentList=["add","toto"]) machineList=rm.GetFittingResources(params) self.assertEqual(rm.Find('best',machineList), "claui2c6") self.assertEqual(rm.Find('best',machineList), "m1") self.assertEqual(rm.Find('best',machineList), "m2") self.assertEqual(rm.Find('best',machineList), "claui2c6") self.assertEqual(rm.Find('best',machineList), "m1") self.assertEqual(rm.Find('best',machineList), "m2") if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(TestResourceManager) unittest.TextTestRunner().run(suite) salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/TestLifeCycleCORBA.py000077500000000000000000000065211177004724000241370ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #from TestLifeCycleCORBA import * # import os import Engines import LifeCycleCORBA import Utils_Identity host = Utils_Identity.getShortHostName() #host = os.getenv( 'HOST' ) lcc = LifeCycleCORBA.LifeCycleCORBA() try : obj=lcc.FindOrLoad_Component("FactoryServer","SalomeTestComponent") comp=obj._narrow(Engines.TestComponent) comp.Coucou(1) param={} #param['hostname']='cli76cc' param['hostname']=host param['container_name']='FactoryServer' comp=lcc.FindOrLoad_Component(param,'SalomeTestComponent') engine=lcc.FindComponent(param,'SalomeTestComponent') engine.Coucou(1) except : print 'lcc.FindOrLoad_Component("FactoryServer","SalomeTestComponent") failed' import sys import CORBA import CosNaming orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID) obj = orb.resolve_initial_references("NameService") rootContext = obj._narrow(CosNaming.NamingContext) context_name=[] context_name.append(CosNaming.NameComponent( 'ContainerManager' , 'object' ) ) ContainerManager = rootContext.resolve( context_name ) try : myContainerparamsCPP = Engines.MachineParameters( 'myContainer' , host , 'osf' , 0 , 0 , 0 , 0 , 0 ) computerlistCPP = [host] containerCPP = ContainerManager.FindOrStartContainer( myContainerparamsCPP , computerlistCPP ) containerCPP.ping() ComponentparamsCPP={} ComponentparamsCPP['hostname']=host ComponentparamsCPP['container_name']='myContainer' compCPP=lcc.FindOrLoad_Component(ComponentparamsCPP,'SalomeTestComponent') compCPP.Coucou(1) engineCPP=lcc.FindComponent(ComponentparamsCPP,'SalomeTestComponent') engineCPP.Coucou(1) except : print 'ContainerManager.FindOrStartContainer( myContainerparams , computerlist ) C++ failed' try : myContainerparamsPy = Engines.MachineParameters( 'myContainerPy' , host , 'osf' , 0 , 0 , 0 , 0 , 0 ) computerlistPy = [host] containerPy = ContainerManager.FindOrStartContainer( myContainerparamsPy , computerlistPy ) containerPy.ping() ComponentparamsPy={} ComponentparamsPy['hostname']=host ComponentparamsPy['container_name']='myContainerPy' compPy=lcc.FindOrLoad_Component(ComponentparamsPy,'SALOME_TestComponentPy') compPy.Coucou(1) enginePy=lcc.FindComponent(ComponentparamsPy,'SALOME_TestComponentPy') enginePy.Coucou(1) except : print 'ContainerManager.FindOrStartContainer( myContainerparams , computerlist ) Python failed' salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/libSALOME_LifeCycleCORBA.i000077500000000000000000000160411177004724000246240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // ---------------------------------------------------------------------------- // %module libSALOME_LifeCycleCORBA %feature("autodoc", "1"); %include %include "std_string.i" // ---------------------------------------------------------------------------- %{ #include "utilities.h" #include "SALOME_LifeCycleCORBA.hxx" #include "SALOME_FileTransferCORBA.hxx" #include "SALOME_NamingService.hxx" #include "ServiceUnreachable.hxx" #include "Utils_SALOME_Exception.hxx" #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #endif //--- from omniORBpy.h (not present on Debian Sarge packages) struct omniORBpyAPI { PyObject* (*cxxObjRefToPyObjRef)(const CORBA::Object_ptr cxx_obj, CORBA::Boolean hold_lock); // Convert a C++ object reference to a Python object reference. // If is true, caller holds the Python interpreter lock. CORBA::Object_ptr (*pyObjRefToCxxObjRef)(PyObject* py_obj, CORBA::Boolean hold_lock); // Convert a Python object reference to a C++ object reference. // Raises BAD_PARAM if the Python object is not an object reference. // If is true, caller holds the Python interpreter lock. omniORBpyAPI(); // Constructor for the singleton. Sets up the function pointers. }; omniORBpyAPI* api; %} // ---------------------------------------------------------------------------- %init %{ // init section PyObject* omnipy = PyImport_ImportModule((char*)"_omnipy"); if (!omnipy) { PyErr_SetString(PyExc_ImportError, (char*)"Cannot import _omnipy"); return; } PyObject* pyapi = PyObject_GetAttrString(omnipy, (char*)"API"); api = (omniORBpyAPI*)PyCObject_AsVoidPtr(pyapi); Py_DECREF(pyapi); %} // ---------------------------------------------------------------------------- %typemap(out) Engines::Container_ptr, Engines::EngineComponent_ptr, Engines::fileRef_ptr, Engines::ContainerManager_ptr, Engines::ResourcesManager_ptr { MESSAGE("typemap out on CORBA object ptr"); SCRUTE($1); $result = api->cxxObjRefToPyObjRef($1, 1); SCRUTE($result); } %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) Engines::fileRef_ptr { $1=PyObject_HasAttrString($input, "__omni_obj"); } %typemap(in) Engines::fileRef_ptr aFileRef { MESSAGE("typemap in on CORBA object ptr"); try { CORBA::Object_ptr obj = api->pyObjRefToCxxObjRef($input,1); $1 = Engines::fileRef::_narrow(obj); SCRUTE($1); } catch (...) { PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } } %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) const Engines::MachineParameters & { $1 = PyDict_Check($input)? 1 : 0; } %typemap(in) const Engines::MachineParameters & { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check($input) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next($input, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } $1 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } %typemap(freearg) const Engines::MachineParameters & { MESSAGE("delete $1"); delete $1; } // ---------------------------------------------------------------------------- %include %exception { Py_BEGIN_ALLOW_THREADS try { $action } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } %include %include salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/libSALOME_LifeCycleCORBA.py000077500000000000000000000276061177004724000250350ustar00rootroot00000000000000# This file was automatically generated by SWIG (http://www.swig.org). # Version 1.3.40 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. # This file is compatible with both classic and new-style classes. from sys import version_info if version_info >= (2,6,0): def swig_import_helper(): from os.path import dirname import imp fp = None try: fp, pathname, description = imp.find_module('_libSALOME_LifeCycleCORBA', [dirname(__file__)]) except ImportError: import _libSALOME_LifeCycleCORBA return _libSALOME_LifeCycleCORBA if fp is not None: try: _mod = imp.load_module('_libSALOME_LifeCycleCORBA', fp, pathname, description) finally: fp.close() return _mod _libSALOME_LifeCycleCORBA = swig_import_helper() del swig_import_helper else: import _libSALOME_LifeCycleCORBA del version_info try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic(self,class_type,name,value,static=1): if (name == "thisown"): return self.this.own(value) if (name == "this"): if type(value).__name__ == 'SwigPyObject': self.__dict__[name] = value return method = class_type.__swig_setmethods__.get(name,None) if method: return method(self,value) if (not static) or hasattr(self,name): self.__dict__[name] = value else: raise AttributeError("You cannot add attributes to %s" % self) def _swig_setattr(self,class_type,name,value): return _swig_setattr_nondynamic(self,class_type,name,value,0) def _swig_getattr(self,class_type,name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name,None) if method: return method(self) raise AttributeError(name) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) try: _object = object _newclass = 1 except AttributeError: class _object : pass _newclass = 0 def makeText(*args): """makeText(char text, char fileName, unsigned int lineNumber) -> char""" return _libSALOME_LifeCycleCORBA.makeText(*args) class SALOME_Exception(_object): """Proxy of C++ SALOME_Exception class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, SALOME_Exception, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, SALOME_Exception, name) __repr__ = _swig_repr def __init__(self, *args): """ __init__(self, char text, char fileName = None, unsigned int lineNumber = 0) -> SALOME_Exception __init__(self, char text, char fileName = None) -> SALOME_Exception __init__(self, char text) -> SALOME_Exception __init__(self, SALOME_Exception ex) -> SALOME_Exception """ this = _libSALOME_LifeCycleCORBA.new_SALOME_Exception(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _libSALOME_LifeCycleCORBA.delete_SALOME_Exception __del__ = lambda self : None; def what(self): """what(self) -> char""" return _libSALOME_LifeCycleCORBA.SALOME_Exception_what(self) SALOME_Exception_swigregister = _libSALOME_LifeCycleCORBA.SALOME_Exception_swigregister SALOME_Exception_swigregister(SALOME_Exception) class IncompatibleComponent(SALOME_Exception): """Proxy of C++ IncompatibleComponent class""" __swig_setmethods__ = {} for _s in [SALOME_Exception]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{})) __setattr__ = lambda self, name, value: _swig_setattr(self, IncompatibleComponent, name, value) __swig_getmethods__ = {} for _s in [SALOME_Exception]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{})) __getattr__ = lambda self, name: _swig_getattr(self, IncompatibleComponent, name) __repr__ = _swig_repr def __init__(self, *args): """ __init__(self) -> IncompatibleComponent __init__(self, IncompatibleComponent ex) -> IncompatibleComponent """ this = _libSALOME_LifeCycleCORBA.new_IncompatibleComponent(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _libSALOME_LifeCycleCORBA.delete_IncompatibleComponent __del__ = lambda self : None; IncompatibleComponent_swigregister = _libSALOME_LifeCycleCORBA.IncompatibleComponent_swigregister IncompatibleComponent_swigregister(IncompatibleComponent) class SALOME_LifeCycleCORBA(_object): """Proxy of C++ SALOME_LifeCycleCORBA class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, SALOME_LifeCycleCORBA, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, SALOME_LifeCycleCORBA, name) __repr__ = _swig_repr def __init__(self, ns = None): """ __init__(self, SALOME_NamingService ns = None) -> SALOME_LifeCycleCORBA __init__(self) -> SALOME_LifeCycleCORBA """ this = _libSALOME_LifeCycleCORBA.new_SALOME_LifeCycleCORBA(ns) try: self.this.append(this) except: self.this = this __swig_destroy__ = _libSALOME_LifeCycleCORBA.delete_SALOME_LifeCycleCORBA __del__ = lambda self : None; def FindComponent(self, *args): """ FindComponent(self, Engines::MachineParameters params, char componentName, int studyId = 0) -> Engines::EngineComponent_ptr FindComponent(self, Engines::MachineParameters params, char componentName) -> Engines::EngineComponent_ptr """ return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_FindComponent(self, *args) def LoadComponent(self, *args): """ LoadComponent(self, Engines::MachineParameters params, char componentName, int studyId = 0) -> Engines::EngineComponent_ptr LoadComponent(self, Engines::MachineParameters params, char componentName) -> Engines::EngineComponent_ptr """ return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_LoadComponent(self, *args) def FindOrLoad_Component(self, *args): """ FindOrLoad_Component(self, Engines::MachineParameters params, char componentName, int studyId = 0) -> Engines::EngineComponent_ptr FindOrLoad_Component(self, Engines::MachineParameters params, char componentName) -> Engines::EngineComponent_ptr FindOrLoad_Component(self, Engines::ContainerParameters params, char componentName, int studyId = 0) -> Engines::EngineComponent_ptr FindOrLoad_Component(self, Engines::ContainerParameters params, char componentName) -> Engines::EngineComponent_ptr FindOrLoad_Component(self, char containerName, char componentName) -> Engines::EngineComponent_ptr """ return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_FindOrLoad_Component(self, *args) def Load_ParallelComponent(self, *args): """ Load_ParallelComponent(self, Engines::ContainerParameters params, char componentName, int studyId) -> Engines::EngineComponent_ptr """ return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_Load_ParallelComponent(self, *args) def isKnownComponentClass(self, *args): """isKnownComponentClass(self, char componentName) -> bool""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_isKnownComponentClass(self, *args) def isMpiContainer(self, *args): """isMpiContainer(self, Engines::ContainerParameters params) -> bool""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_isMpiContainer(self, *args) def NbProc(self, *args): """NbProc(self, Engines::ContainerParameters params) -> int""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_NbProc(self, *args) def preSet(*args): """ preSet(Engines::MachineParameters outparams) preSet(Engines::ResourceParameters outparams) preSet(Engines::ContainerParameters outparams) """ return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_preSet(*args) if _newclass:preSet = staticmethod(preSet) __swig_getmethods__["preSet"] = lambda x: preSet def getContainerManager(self): """getContainerManager(self) -> Engines::ContainerManager_ptr""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_getContainerManager(self) def getResourcesManager(self): """getResourcesManager(self) -> Engines::ResourcesManager_ptr""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_getResourcesManager(self) def namingService(self): """namingService(self) -> SALOME_NamingService""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_namingService(self) def orb(self): """orb(self) -> CORBA::ORB_ptr""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_orb(self) def copyFile(self, *args): """copyFile(self, char hostSrc, char fileSrc, char hostDest, char fileDest)""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_copyFile(self, *args) def shutdownServers(self): """shutdownServers(self)""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_shutdownServers(self) def killOmniNames(): """killOmniNames()""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_killOmniNames() if _newclass:killOmniNames = staticmethod(killOmniNames) __swig_getmethods__["killOmniNames"] = lambda x: killOmniNames def convert(self, *args): """convert(self, Engines::MachineParameters params_in, Engines::ContainerParameters params_out)""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_convert(self, *args) SALOME_LifeCycleCORBA_swigregister = _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_swigregister SALOME_LifeCycleCORBA_swigregister(SALOME_LifeCycleCORBA) def SALOME_LifeCycleCORBA_preSet(*args): """ preSet(Engines::MachineParameters outparams) preSet(Engines::ResourceParameters outparams) SALOME_LifeCycleCORBA_preSet(Engines::ContainerParameters outparams) """ return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_preSet(*args) def SALOME_LifeCycleCORBA_killOmniNames(): """SALOME_LifeCycleCORBA_killOmniNames()""" return _libSALOME_LifeCycleCORBA.SALOME_LifeCycleCORBA_killOmniNames() class SALOME_FileTransferCORBA(_object): """Proxy of C++ SALOME_FileTransferCORBA class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, SALOME_FileTransferCORBA, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, SALOME_FileTransferCORBA, name) __repr__ = _swig_repr def __init__(self, *args): """ __init__(self) -> SALOME_FileTransferCORBA __init__(self, Engines::fileRef_ptr aFileRef) -> SALOME_FileTransferCORBA __init__(self, string refMachine, string origFileName, string containerName = "") -> SALOME_FileTransferCORBA __init__(self, string refMachine, string origFileName) -> SALOME_FileTransferCORBA """ this = _libSALOME_LifeCycleCORBA.new_SALOME_FileTransferCORBA(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _libSALOME_LifeCycleCORBA.delete_SALOME_FileTransferCORBA __del__ = lambda self : None; def getLocalFile(self, localFile = ""): """ getLocalFile(self, string localFile = "") -> string getLocalFile(self) -> string """ return _libSALOME_LifeCycleCORBA.SALOME_FileTransferCORBA_getLocalFile(self, localFile) SALOME_FileTransferCORBA_swigregister = _libSALOME_LifeCycleCORBA.SALOME_FileTransferCORBA_swigregister SALOME_FileTransferCORBA_swigregister(SALOME_FileTransferCORBA) salome-kernel-6.5.0/src/LifeCycleCORBA_SWIG/swig_wrap.cpp000077500000000000000000007151701177004724000230340ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.40 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Python.h has to appear first */ #include /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return and integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCompare(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { register size_t l = 0; register size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ register size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { register int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { register size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; register const unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Compatibility macros for Python 3 */ #if PY_VERSION_HEX >= 0x03000000 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) #endif #ifndef Py_TYPE # define Py_TYPE(op) ((op)->ob_type) #endif /* SWIG APIs for compatibility of both Python 2 & 3 */ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat #else # define SWIG_Python_str_FromFormat PyString_FromFormat #endif /* Warning: This function will allocate a new string in Python 3, * so please call SWIG_Python_str_DelForPy3(x) to free the space. */ SWIGINTERN char* SWIG_Python_str_AsChar(PyObject *str) { #if PY_VERSION_HEX >= 0x03000000 char *cstr; char *newstr; Py_ssize_t len; str = PyUnicode_AsUTF8String(str); PyBytes_AsStringAndSize(str, &cstr, &len); newstr = (char *) malloc(len+1); memcpy(newstr, cstr, len+1); Py_XDECREF(str); return newstr; #else return PyString_AsString(str); #endif } #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) #else # define SWIG_Python_str_DelForPy3(x) #endif SWIGINTERN PyObject* SWIG_Python_str_FromChar(const char *c) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromString(c); #else return PyString_FromString(c); #endif } /* Add PyOS_snprintf for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) # define PyOS_snprintf _snprintf # else # define PyOS_snprintf snprintf # endif #endif /* A crude PyString_FromFormat implementation for old Pythons */ #if PY_VERSION_HEX < 0x02020000 #ifndef SWIG_PYBUFFER_SIZE # define SWIG_PYBUFFER_SIZE 1024 #endif static PyObject * PyString_FromFormat(const char *fmt, ...) { va_list ap; char buf[SWIG_PYBUFFER_SIZE * 2]; int res; va_start(ap, fmt); res = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); } #endif /* Add PyObject_Del for old Pythons */ #if PY_VERSION_HEX < 0x01060000 # define PyObject_Del(op) PyMem_DEL((op)) #endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif /* A crude PyExc_StopIteration exception for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # ifndef PyExc_StopIteration # define PyExc_StopIteration PyExc_RuntimeError # endif # ifndef PyObject_GenericGetAttr # define PyObject_GenericGetAttr 0 # endif #endif /* Py_NotImplemented is defined in 2.1 and up. */ #if PY_VERSION_HEX < 0x02010000 # ifndef Py_NotImplemented # define Py_NotImplemented PyExc_RuntimeError # endif #endif /* A crude PyString_AsStringAndSize implementation for old Pythons */ #if PY_VERSION_HEX < 0x02010000 # ifndef PyString_AsStringAndSize # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} # endif #endif /* PySequence_Size for old Pythons */ #if PY_VERSION_HEX < 0x02000000 # ifndef PySequence_Size # define PySequence_Size PySequence_Length # endif #endif /* PyBool_FromLong for old Pythons */ #if PY_VERSION_HEX < 0x02030000 static PyObject *PyBool_FromLong(long ok) { PyObject *result = ok ? Py_True : Py_False; Py_INCREF(result); return result; } #endif /* Py_ssize_t for old Pythons */ /* This code is as recommended by: */ /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); PyErr_Clear(); Py_XINCREF(type); PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ # define SWIG_PYTHON_USE_GIL # endif # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; /* ----------------------------------------------------------------------------- * Wrapper of PyInstanceMethod_New() used in Python 3 * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func) { #if PY_VERSION_HEX >= 0x03000000 return PyInstanceMethod_New(func); #else return NULL; #endif } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif /* ----------------------------------------------------------------------------- * See the LICENSE file for information on copyright, usage and redistribution * of SWIG, and the README file for authors - http://www.swig.org/release.html. * * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, (char *) msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char*) name, obj); Py_DECREF(obj); } /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { #if !defined(SWIG_PYTHON_OUTPUT_TUPLE) if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; #else PyObject* o2; PyObject* o3; if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyTuple_Check(result)) { o2 = result; result = PyTuple_New(1); PyTuple_SET_ITEM(result, 0, o2); } o3 = PyTuple_New(1); PyTuple_SET_ITEM(o3, 0, obj); o2 = result; result = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return result; #endif } /* Unpack the argument tuple */ SWIGINTERN int SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { register Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { register int i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #if PY_VERSION_HEX >= 0x02020000 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); #else #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); #endif /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* How to access Py_None */ #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # ifndef SWIG_PYTHON_NO_BUILD_NONE # ifndef SWIG_PYTHON_BUILD_NONE # define SWIG_PYTHON_BUILD_NONE # endif # endif #endif #ifdef SWIG_PYTHON_BUILD_NONE # ifdef Py_None # undef Py_None # define Py_None SWIG_Py_None() # endif SWIGRUNTIMEINLINE PyObject * _SWIG_Py_None(void) { PyObject *none = Py_BuildValue((char*)""); Py_DECREF(none); return none; } SWIGRUNTIME PyObject * SWIG_Py_None(void) { static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); return none; } #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* SwigPyClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; } SwigPyClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; return data ? data->implicitconv : 0; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject* obj) { if (!obj) { return 0; } else { SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { #if (PY_VERSION_HEX < 0x02020000) data->newraw = 0; #else data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); #endif if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); #ifdef METH_O data->delargs = !(flags & (METH_O)); #else data->delargs = 0; #endif } else { data->delargs = 0; } data->implicitconv = 0; return data; } } SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData* data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== SwigPyObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; } SwigPyObject; SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * SwigPyObject_format(const char* fmt, SwigPyObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { PyObject *ofmt = SWIG_Python_str_FromChar(fmt); if (ofmt) { #if PY_VERSION_HEX >= 0x03000000 res = PyUnicode_Format(ofmt,args); #else res = PyString_Format(ofmt,args); #endif Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v) { return SwigPyObject_format("%o",v); } SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v) { return SwigPyObject_format("%x",v); } SWIGRUNTIME PyObject * #ifdef METH_NOARGS SwigPyObject_repr(SwigPyObject *v) #else SwigPyObject_repr(SwigPyObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); PyObject *repr = SWIG_Python_str_FromFormat("", name, v); if (v->next) { #ifdef METH_NOARGS PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); #else PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args); #endif #if PY_VERSION_HEX >= 0x03000000 PyObject *joined = PyUnicode_Concat(repr, nrep); Py_DecRef(repr); Py_DecRef(nrep); repr = joined; #else PyString_ConcatAndDel(&repr,nrep); #endif } return repr; } SWIGRUNTIME int SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *str; #ifdef METH_NOARGS PyObject *repr = SwigPyObject_repr(v); #else PyObject *repr = SwigPyObject_repr(v, NULL); #endif if (repr) { str = SWIG_Python_str_AsChar(repr); fputs(str, fp); SWIG_Python_str_DelForPy3(str); Py_DECREF(repr); return 0; } else { return 1; } } SWIGRUNTIME PyObject * SwigPyObject_str(SwigPyObject *v) { char result[SWIG_BUFFER_SIZE]; return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? SWIG_Python_str_FromChar(result) : 0; } SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } /* Added for Python 3.x, would it also be useful for Python 2.x? */ SWIGRUNTIME PyObject* SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) { PyObject* res; if( op != Py_EQ && op != Py_NE ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } if( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ) res = Py_True; else res = Py_False; Py_INCREF(res); return res; } SWIGRUNTIME PyTypeObject* _PySwigObject_type(void); SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type(); return type; } SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op) { return (Py_TYPE(op) == SwigPyObject_type()) || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v) { SwigPyObject *sobj = (SwigPyObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; if (data->delargs) { /* we need to create a temporary object to carry the destroy operation */ PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* SwigPyObject_append(PyObject* v, PyObject* next) { SwigPyObject *sobj = (SwigPyObject *) v; #ifndef METH_O PyObject *tmp = 0; if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; next = tmp; #endif if (!SwigPyObject_Check(next)) { return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* #ifdef METH_NOARGS SwigPyObject_next(PyObject* v) #else SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_disown(PyObject *v) #else SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_acquire(PyObject *v) #else SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) #else if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) #endif { return NULL; } else { SwigPyObject *sobj = (SwigPyObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { #ifdef METH_NOARGS if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v); } else { SwigPyObject_disown(v); } #else if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v,args); } else { SwigPyObject_disown(v,args); } #endif } return obj; } } #ifdef METH_O static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #else static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #endif #if PY_VERSION_HEX < 0x02020000 SWIGINTERN PyObject * SwigPyObject_getattr(SwigPyObject *sobj,char *name) { return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); } #endif SWIGRUNTIME PyTypeObject* _PySwigObject_type(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods SwigPyObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ /* nb_divide removed in Python 3 */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc)0, /*nb_divide*/ #endif (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_VERSION_HEX < 0x03000000 0, /*nb_coerce*/ #endif (unaryfunc)SwigPyObject_long, /*nb_int*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_long, /*nb_long*/ #else 0, /*nb_reserved*/ #endif (unaryfunc)0, /*nb_float*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif #if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ #endif }; static PyTypeObject swigpyobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyObject", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ (printfunc)SwigPyObject_print, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else (getattrfunc)0, /* tp_getattr */ #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif (reprfunc)SwigPyObject_repr, /* tp_repr */ &SwigPyObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyObject_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ (richcmpfunc)SwigPyObject_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpyobject_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpyobject_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpyobject_type; } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own) { SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } SwigPyPacked; SWIGRUNTIME int SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char result[SWIG_BUFFER_SIZE]; fputs("pack, v->size, 0, sizeof(result))) { fputs("at ", fp); fputs(result, fp); } fputs(v->ty->name,fp); fputs(">", fp); return 0; } SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return SWIG_Python_str_FromFormat("", result, v->ty->name); } else { return SWIG_Python_str_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); } else { return SWIG_Python_str_FromChar(v->ty->name); } } SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void); SWIGRUNTIME PyTypeObject* SwigPyPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type(); return type; } SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op) { return ((op)->ob_type == _PySwigPacked_type()) || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); } SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v) { if (SwigPyPacked_Check(v)) { SwigPyPacked *sobj = (SwigPyPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject swigpypacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyPacked", /* tp_name */ sizeof(SwigPyPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ (printfunc)SwigPyPacked_print, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX>=0x03000000 0, /* tp_reserved in 3.0.1 */ #else (cmpfunc)SwigPyPacked_compare, /* tp_compare */ #endif (reprfunc)SwigPyPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpypacked_type = tmp; /* for Python 3 the ob_type already assigned in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpypacked_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpypacked_type; } SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) { SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (SwigPyPacked_Check(obj)) { SwigPyPacked *sobj = (SwigPyPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIMEINLINE PyObject * _SWIG_This(void) { return SWIG_Python_str_FromChar("this"); } SWIGRUNTIME PyObject * SWIG_This(void) { static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This(); return swig_this; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ /* TODO: I don't know how to implement the fast getset in Python 3 right now */ #if PY_VERSION_HEX>=0x03000000 #define SWIG_PYTHON_SLOW_GETSET_THIS #endif SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { if (SwigPyObject_Check(pyobj)) { return (SwigPyObject *) pyobj; } else { PyObject *obj = 0; #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !SwigPyObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' SwigPyObject from it */ return SWIG_Python_GetSwigThis(obj); } return (SwigPyObject *)obj; } } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { if (!obj) return SWIG_ERROR; if (obj == Py_None) { if (ptr) *ptr = 0; return SWIG_OK; } else { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (SwigPyObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } return SWIG_OK; } else { int res = SWIG_ERROR; if (flags & SWIG_POINTER_IMPLICIT_CONV) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } } return res; } } } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; if (ty) { swig_cast_info *tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } } else { *ptr = vptr; } return SWIG_OK; } } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, without calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) { #if (PY_VERSION_HEX >= 0x02020000) PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { #if PY_VERSION_HEX >= 0x03000000 inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); PyObject_SetAttr(inst, SWIG_This(), swig_this); Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; #else PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); #endif } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) PyObject *inst; PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); if (inst == NULL) { return NULL; } inst->in_class = (PyClassObject *)data->newargs; Py_INCREF(inst->in_class); inst->in_dict = PyDict_New(); if (inst->in_dict == NULL) { Py_DECREF(inst); return NULL; } #ifdef Py_TPFLAGS_HAVE_WEAKREFS inst->in_weakreflist = NULL; #endif #ifdef Py_TPFLAGS_GC PyObject_GC_Init(inst); #endif PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); return (PyObject *) inst; #endif #endif } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, (char*)"__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { SwigPyObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) { if (!ptr) { return SWIG_Py_Void(); } else { int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; PyObject *robj = SwigPyObject_New(ptr, type, own); SwigPyClientData *clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); if (inst) { Py_DECREF(robj); robj = inst; } } return robj; } } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ SWIGINTERN int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return SWIG_ERROR; } if (PyDict_SetItemString(dict, name, o)) return SWIG_ERROR; Py_DECREF(o); return SWIG_OK; } #endif SWIGRUNTIME void SWIG_Python_DestroyModule(void *vptr) { swig_module_info *swig_module = (swig_module_info *) vptr; swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; if (data) SwigPyClientData_Del(data); } } Py_DECREF(SWIG_This()); } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */ #if PY_VERSION_HEX >= 0x03000000 /* Add a dummy module object into sys.modules */ PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION); #else PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = SWIG_Python_str_FromChar(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { obj = PyCObject_FromVoidPtr(descriptor, NULL); PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str)); } else { PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); } SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : (char*)""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && SwigPyObject_Check(obj)) { const char *otype = (const char *) SwigPyObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); SWIG_Python_str_DelForPy3(cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); #if SWIG_POINTER_EXCEPTION if (flags) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } #endif } return result; } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_CORBA__ORB_ptr swig_types[0] #define SWIGTYPE_p_Engines__ContainerParameters swig_types[1] #define SWIGTYPE_p_Engines__MachineParameters swig_types[2] #define SWIGTYPE_p_Engines__ResourceParameters swig_types[3] #define SWIGTYPE_p_IncompatibleComponent swig_types[4] #define SWIGTYPE_p_SALOME_Exception swig_types[5] #define SWIGTYPE_p_SALOME_FileTransferCORBA swig_types[6] #define SWIGTYPE_p_SALOME_LifeCycleCORBA swig_types[7] #define SWIGTYPE_p_SALOME_NamingService swig_types[8] #define SWIGTYPE_p_char swig_types[9] #define SWIGTYPE_p_std__exception swig_types[10] static swig_type_info *swig_types[12]; static swig_module_info swig_module = {swig_types, 11, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #if (PY_VERSION_HEX <= 0x02000000) # if !defined(SWIG_PYTHON_CLASSIC) # error "This python version requires swig to be run with the '-classic' option" # endif #endif /*----------------------------------------------- @(target):= _libSALOME_LifeCycleCORBA.so ------------------------------------------------*/ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_init PyInit__libSALOME_LifeCycleCORBA #else # define SWIG_init init_libSALOME_LifeCycleCORBA #endif #define SWIG_name "_libSALOME_LifeCycleCORBA" #define SWIGVERSION 0x010340 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class SwigPtr_PyObject { protected: PyObject *_obj; public: SwigPtr_PyObject() :_obj(0) { } SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { Py_XINCREF(_obj); } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { Py_XINCREF(_obj); } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; return *this; } ~SwigPtr_PyObject() { Py_XDECREF(_obj); } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct SwigVar_PyObject : SwigPtr_PyObject { SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { } SwigVar_PyObject & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } #include #include #include "utilities.h" #include "SALOME_LifeCycleCORBA.hxx" #include "SALOME_FileTransferCORBA.hxx" #include "SALOME_NamingService.hxx" #include "ServiceUnreachable.hxx" #include "Utils_SALOME_Exception.hxx" #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #endif //--- from omniORBpy.h (not present on Debian Sarge packages) struct omniORBpyAPI { PyObject* (*cxxObjRefToPyObjRef)(const CORBA::Object_ptr cxx_obj, CORBA::Boolean hold_lock); // Convert a C++ object reference to a Python object reference. // If is true, caller holds the Python interpreter lock. CORBA::Object_ptr (*pyObjRefToCxxObjRef)(PyObject* py_obj, CORBA::Boolean hold_lock); // Convert a Python object reference to a C++ object reference. // Raises BAD_PARAM if the Python object is not an object reference. // If is true, caller holds the Python interpreter lock. omniORBpyAPI(); // Constructor for the singleton. Sets up the function pointers. }; omniORBpyAPI* api; SWIGINTERN swig_type_info* SWIG_pchar_descriptor(void) { static int init = 0; static swig_type_info* info = 0; if (!init) { info = SWIG_TypeQuery("_p_char"); init = 1; } return info; } SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 if (PyUnicode_Check(obj)) #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; #if PY_VERSION_HEX>=0x03000000 if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require a UTF-8 representation. TODO(bhy) More detailed explanation */ return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); PyBytes_AsStringAndSize(obj, &cstr, &len); if(alloc) *alloc = SWIG_NEWOBJ; #else PyString_AsStringAndSize(obj, &cstr, &len); #endif if (cptr) { if (alloc) { /* In python the user should not be able to modify the inner string representation. To warranty that, if you define SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string buffer is always returned. The default behavior is just to return the pointer value, so, be careful. */ #if defined(SWIG_PYTHON_SAFE_CSTRINGS) if (*alloc != SWIG_OLDOBJ) #else if (*alloc == SWIG_NEWOBJ) #endif { *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { #if PY_VERSION_HEX>=0x03000000 assert(0); /* Should never reach here in Python 3 */ #endif *cptr = SWIG_Python_str_AsChar(obj); } } if (psize) *psize = len + 1; #if PY_VERSION_HEX>=0x03000000 Py_XDECREF(obj); #endif return SWIG_OK; } else { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *) vptr; if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif SWIGINTERN int SWIG_AsVal_double (PyObject *obj, double *val) { int res = SWIG_TypeError; if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; } else if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; double d = PyFloat_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = d; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); } else { PyErr_Clear(); } } } #endif return res; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } SWIGINTERN int SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) { if (PyInt_Check(obj)) { long v = PyInt_AsLong(obj); if (v >= 0) { if (val) *val = v; return SWIG_OK; } else { return SWIG_OverflowError; } } else if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { if (val) *val = (unsigned long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, &v); if (SWIG_IsOK(res)) { if ((v > UINT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< unsigned int >(v); } } return res; } SWIGINTERNINLINE PyObject * SWIG_FromCharPtrAndSize(const char* carray, size_t size) { if (carray) { if (size > INT_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromStringAndSize(carray, static_cast< int >(size)); #else return PyString_FromStringAndSize(carray, static_cast< int >(size)); #endif } } else { return SWIG_Py_Void(); } } SWIGINTERNINLINE PyObject * SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; long v = PyInt_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_int (PyObject * obj, int *val) { long v; int res = SWIG_AsVal_long (obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } SWIGINTERNINLINE PyObject* SWIG_From_bool (bool value) { return PyBool_FromLong(value ? 1 : 0); } #define SWIG_From_long PyInt_FromLong SWIGINTERNINLINE PyObject * SWIG_From_int (int value) { return SWIG_From_long (value); } SWIGINTERN int SWIG_AsPtr_std_string (PyObject * obj, std::string **val) { char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ; if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) { if (buf) { if (val) *val = new std::string(buf, size - 1); if (alloc == SWIG_NEWOBJ) delete[] buf; return SWIG_NEWOBJ; } else { if (val) *val = 0; return SWIG_OLDOBJ; } } else { static int init = 0; static swig_type_info* descriptor = 0; if (!init) { descriptor = SWIG_TypeQuery("std::string" " *"); init = 1; } if (descriptor) { std::string *vptr; int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0); if (SWIG_IsOK(res) && val) *val = vptr; return res; } } return SWIG_ERROR; } SWIGINTERNINLINE PyObject * SWIG_From_std_string (const std::string& s) { if (s.size()) { return SWIG_FromCharPtrAndSize(s.data(), s.size()); } else { return SWIG_FromCharPtrAndSize(s.c_str(), 0); } } #ifdef __cplusplus extern "C" { #endif SWIGINTERN PyObject *_wrap_makeText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; unsigned int arg3 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:makeText",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "makeText" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "makeText" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "makeText" "', argument " "3"" of type '" "unsigned int""'"); } arg3 = static_cast< unsigned int >(val3); result = (char *)makeText((char const *)arg1,(char const *)arg2,arg3); resultobj = SWIG_FromCharPtr((const char *)result); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_Exception__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; unsigned int arg3 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; SALOME_Exception *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_SALOME_Exception",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SALOME_Exception" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_SALOME_Exception" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_SALOME_Exception" "', argument " "3"" of type '" "unsigned int""'"); } arg3 = static_cast< unsigned int >(val3); result = (SALOME_Exception *)new SALOME_Exception((char const *)arg1,(char const *)arg2,arg3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_Exception, SWIG_POINTER_NEW | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_Exception__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SALOME_Exception *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_SALOME_Exception",&obj0,&obj1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SALOME_Exception" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_SALOME_Exception" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); result = (SALOME_Exception *)new SALOME_Exception((char const *)arg1,(char const *)arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_Exception, SWIG_POINTER_NEW | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_Exception__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject * obj0 = 0 ; SALOME_Exception *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_SALOME_Exception",&obj0)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SALOME_Exception" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); result = (SALOME_Exception *)new SALOME_Exception((char const *)arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_Exception, SWIG_POINTER_NEW | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_Exception__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_Exception *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SALOME_Exception *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_SALOME_Exception",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_SALOME_Exception, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SALOME_Exception" "', argument " "1"" of type '" "SALOME_Exception const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_SALOME_Exception" "', argument " "1"" of type '" "SALOME_Exception const &""'"); } arg1 = reinterpret_cast< SALOME_Exception * >(argp1); result = (SALOME_Exception *)new SALOME_Exception((SALOME_Exception const &)*arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_Exception, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_Exception(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 1) { int _v; int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_SALOME_Exception, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_SALOME_Exception__SWIG_3(self, args); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_SALOME_Exception__SWIG_2(self, args); } } if (argc == 2) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_SALOME_Exception__SWIG_1(self, args); } } } if (argc == 3) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_SALOME_Exception__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_SALOME_Exception'.\n" " Possible C/C++ prototypes are:\n" " SALOME_Exception(char const *,char const *,unsigned int const)\n" " SALOME_Exception(char const *,char const *)\n" " SALOME_Exception(char const *)\n" " SALOME_Exception(SALOME_Exception const &)\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_SALOME_Exception(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_Exception *arg1 = (SALOME_Exception *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_SALOME_Exception",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_Exception, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SALOME_Exception" "', argument " "1"" of type '" "SALOME_Exception *""'"); } arg1 = reinterpret_cast< SALOME_Exception * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_Exception_what(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_Exception *arg1 = (SALOME_Exception *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_Exception_what",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_Exception, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_Exception_what" "', argument " "1"" of type '" "SALOME_Exception const *""'"); } arg1 = reinterpret_cast< SALOME_Exception * >(argp1); result = (char *)((SALOME_Exception const *)arg1)->what(); resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *SALOME_Exception_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_SALOME_Exception, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_IncompatibleComponent__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IncompatibleComponent *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_IncompatibleComponent")) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { result = (IncompatibleComponent *)new IncompatibleComponent(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IncompatibleComponent, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_IncompatibleComponent__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IncompatibleComponent *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; IncompatibleComponent *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_IncompatibleComponent",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_IncompatibleComponent, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IncompatibleComponent" "', argument " "1"" of type '" "IncompatibleComponent const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IncompatibleComponent" "', argument " "1"" of type '" "IncompatibleComponent const &""'"); } arg1 = reinterpret_cast< IncompatibleComponent * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (IncompatibleComponent *)new IncompatibleComponent((IncompatibleComponent const &)*arg1); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IncompatibleComponent, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_IncompatibleComponent(PyObject *self, PyObject *args) { int argc; PyObject *argv[2]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 1); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_IncompatibleComponent__SWIG_0(self, args); } if (argc == 1) { int _v; int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IncompatibleComponent, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IncompatibleComponent__SWIG_1(self, args); } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_IncompatibleComponent'.\n" " Possible C/C++ prototypes are:\n" " IncompatibleComponent()\n" " IncompatibleComponent(IncompatibleComponent const &)\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_IncompatibleComponent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IncompatibleComponent *arg1 = (IncompatibleComponent *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_IncompatibleComponent",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IncompatibleComponent, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IncompatibleComponent" "', argument " "1"" of type '" "IncompatibleComponent *""'"); } arg1 = reinterpret_cast< IncompatibleComponent * >(argp1); { Py_BEGIN_ALLOW_THREADS try { delete arg1; } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *IncompatibleComponent_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_IncompatibleComponent, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_SALOME_LifeCycleCORBA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_NamingService *arg1 = (SALOME_NamingService *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SALOME_LifeCycleCORBA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_SALOME_LifeCycleCORBA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_NamingService, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SALOME_LifeCycleCORBA" "', argument " "1"" of type '" "SALOME_NamingService *""'"); } arg1 = reinterpret_cast< SALOME_NamingService * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_LifeCycleCORBA *)new SALOME_LifeCycleCORBA(arg1); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_LifeCycleCORBA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_LifeCycleCORBA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_SALOME_LifeCycleCORBA")) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_LifeCycleCORBA *)new SALOME_LifeCycleCORBA(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_LifeCycleCORBA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_LifeCycleCORBA(PyObject *self, PyObject *args) { int argc; PyObject *argv[2]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 1); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_SALOME_LifeCycleCORBA__SWIG_1(self, args); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_NamingService, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_SALOME_LifeCycleCORBA__SWIG_0(self, args); } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_SALOME_LifeCycleCORBA'.\n" " Possible C/C++ prototypes are:\n" " SALOME_LifeCycleCORBA(SALOME_NamingService *)\n" " SALOME_LifeCycleCORBA()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_SALOME_LifeCycleCORBA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_SALOME_LifeCycleCORBA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SALOME_LifeCycleCORBA" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { delete arg1; } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindComponent__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOOO:SALOME_LifeCycleCORBA_FindComponent",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindComponent" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindComponent" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SALOME_LifeCycleCORBA_FindComponent" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindComponent((Engines::MachineParameters const &)*arg2,(char const *)arg3,arg4); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindComponent__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:SALOME_LifeCycleCORBA_FindComponent",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindComponent" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindComponent" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindComponent((Engines::MachineParameters const &)*arg2,(char const *)arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindComponent(PyObject *self, PyObject *args) { int argc; PyObject *argv[5]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { { _v = PyDict_Check(argv[1])? 1 : 0; } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindComponent__SWIG_1(self, args); } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { { _v = PyDict_Check(argv[1])? 1 : 0; } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[3], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindComponent__SWIG_0(self, args); } } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SALOME_LifeCycleCORBA_FindComponent'.\n" " Possible C/C++ prototypes are:\n" " FindComponent(SALOME_LifeCycleCORBA *,Engines::MachineParameters const &,char const *,int)\n" " FindComponent(SALOME_LifeCycleCORBA *,Engines::MachineParameters const &,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_LoadComponent__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOOO:SALOME_LifeCycleCORBA_LoadComponent",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_LoadComponent" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_LoadComponent" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SALOME_LifeCycleCORBA_LoadComponent" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->LoadComponent((Engines::MachineParameters const &)*arg2,(char const *)arg3,arg4); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_LoadComponent__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:SALOME_LifeCycleCORBA_LoadComponent",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_LoadComponent" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_LoadComponent" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->LoadComponent((Engines::MachineParameters const &)*arg2,(char const *)arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_LoadComponent(PyObject *self, PyObject *args) { int argc; PyObject *argv[5]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { { _v = PyDict_Check(argv[1])? 1 : 0; } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_LoadComponent__SWIG_1(self, args); } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { { _v = PyDict_Check(argv[1])? 1 : 0; } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[3], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_SALOME_LifeCycleCORBA_LoadComponent__SWIG_0(self, args); } } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SALOME_LifeCycleCORBA_LoadComponent'.\n" " Possible C/C++ prototypes are:\n" " LoadComponent(SALOME_LifeCycleCORBA *,Engines::MachineParameters const &,char const *,int)\n" " LoadComponent(SALOME_LifeCycleCORBA *,Engines::MachineParameters const &,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOOO:SALOME_LifeCycleCORBA_FindOrLoad_Component",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindOrLoad_Component((Engines::MachineParameters const &)*arg2,(char const *)arg3,arg4); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:SALOME_LifeCycleCORBA_FindOrLoad_Component",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindOrLoad_Component((Engines::MachineParameters const &)*arg2,(char const *)arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::ContainerParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOOO:SALOME_LifeCycleCORBA_FindOrLoad_Component",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Engines__ContainerParameters, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } arg2 = reinterpret_cast< Engines::ContainerParameters * >(argp2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindOrLoad_Component((Engines::ContainerParameters const &)*arg2,(char const *)arg3,arg4); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::ContainerParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:SALOME_LifeCycleCORBA_FindOrLoad_Component",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Engines__ContainerParameters, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } arg2 = reinterpret_cast< Engines::ContainerParameters * >(argp2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindOrLoad_Component((Engines::ContainerParameters const &)*arg2,(char const *)arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOO:SALOME_LifeCycleCORBA_FindOrLoad_Component",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_FindOrLoad_Component" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->FindOrLoad_Component((char const *)arg2,(char const *)arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component(PyObject *self, PyObject *args) { int argc; PyObject *argv[5]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { { _v = PyDict_Check(argv[1])? 1 : 0; } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_1(self, args); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Engines__ContainerParameters, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_3(self, args); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_4(self, args); } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { { _v = PyDict_Check(argv[1])? 1 : 0; } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[3], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_0(self, args); } } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_LifeCycleCORBA, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Engines__ContainerParameters, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[3], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component__SWIG_2(self, args); } } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SALOME_LifeCycleCORBA_FindOrLoad_Component'.\n" " Possible C/C++ prototypes are:\n" " FindOrLoad_Component(SALOME_LifeCycleCORBA *,Engines::MachineParameters const &,char const *,int)\n" " FindOrLoad_Component(SALOME_LifeCycleCORBA *,Engines::MachineParameters const &,char const *)\n" " FindOrLoad_Component(SALOME_LifeCycleCORBA *,Engines::ContainerParameters const &,char const *,int)\n" " FindOrLoad_Component(SALOME_LifeCycleCORBA *,Engines::ContainerParameters const &,char const *)\n" " FindOrLoad_Component(SALOME_LifeCycleCORBA *,char const *,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_Load_ParallelComponent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::ContainerParameters *arg2 = 0 ; char *arg3 = (char *) 0 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; Engines::EngineComponent_ptr result; if (!PyArg_ParseTuple(args,(char *)"OOOO:SALOME_LifeCycleCORBA_Load_ParallelComponent",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_Load_ParallelComponent" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Engines__ContainerParameters, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_Load_ParallelComponent" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_Load_ParallelComponent" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } arg2 = reinterpret_cast< Engines::ContainerParameters * >(argp2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_Load_ParallelComponent" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SALOME_LifeCycleCORBA_Load_ParallelComponent" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->Load_ParallelComponent((Engines::ContainerParameters const &)*arg2,(char const *)arg3,arg4); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_isKnownComponentClass(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; bool result; if (!PyArg_ParseTuple(args,(char *)"OO:SALOME_LifeCycleCORBA_isKnownComponentClass",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_isKnownComponentClass" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_isKnownComponentClass" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { Py_BEGIN_ALLOW_THREADS try { result = (bool)(arg1)->isKnownComponentClass((char const *)arg2); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_bool(static_cast< bool >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_isMpiContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::ContainerParameters *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; bool result; if (!PyArg_ParseTuple(args,(char *)"OO:SALOME_LifeCycleCORBA_isMpiContainer",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_isMpiContainer" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Engines__ContainerParameters, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_isMpiContainer" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_isMpiContainer" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } arg2 = reinterpret_cast< Engines::ContainerParameters * >(argp2); { Py_BEGIN_ALLOW_THREADS try { try { result = (bool)(arg1)->isMpiContainer((Engines::ContainerParameters const &)*arg2); } catch(IncompatibleComponent &_e) { SWIG_Python_Raise(SWIG_NewPointerObj((new IncompatibleComponent(static_cast< const IncompatibleComponent& >(_e))),SWIGTYPE_p_IncompatibleComponent,SWIG_POINTER_OWN), "IncompatibleComponent", SWIGTYPE_p_IncompatibleComponent); SWIG_fail; } } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_NbProc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::ContainerParameters *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:SALOME_LifeCycleCORBA_NbProc",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_NbProc" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Engines__ContainerParameters, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_NbProc" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_NbProc" "', argument " "2"" of type '" "Engines::ContainerParameters const &""'"); } arg2 = reinterpret_cast< Engines::ContainerParameters * >(argp2); { Py_BEGIN_ALLOW_THREADS try { result = (int)(arg1)->NbProc((Engines::ContainerParameters const &)*arg2); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_preSet__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Engines::MachineParameters *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_preSet",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Engines__MachineParameters, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_preSet" "', argument " "1"" of type '" "Engines::MachineParameters &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_preSet" "', argument " "1"" of type '" "Engines::MachineParameters &""'"); } arg1 = reinterpret_cast< Engines::MachineParameters * >(argp1); { Py_BEGIN_ALLOW_THREADS try { SALOME_LifeCycleCORBA::preSet(*arg1); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_preSet__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Engines::ResourceParameters *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_preSet",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Engines__ResourceParameters, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_preSet" "', argument " "1"" of type '" "Engines::ResourceParameters &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_preSet" "', argument " "1"" of type '" "Engines::ResourceParameters &""'"); } arg1 = reinterpret_cast< Engines::ResourceParameters * >(argp1); { Py_BEGIN_ALLOW_THREADS try { SALOME_LifeCycleCORBA::preSet(*arg1); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_preSet__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Engines::ContainerParameters *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_preSet",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Engines__ContainerParameters, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_preSet" "', argument " "1"" of type '" "Engines::ContainerParameters &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_preSet" "', argument " "1"" of type '" "Engines::ContainerParameters &""'"); } arg1 = reinterpret_cast< Engines::ContainerParameters * >(argp1); { Py_BEGIN_ALLOW_THREADS try { SALOME_LifeCycleCORBA::preSet(*arg1); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_preSet(PyObject *self, PyObject *args) { int argc; PyObject *argv[2]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 1); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Engines__MachineParameters, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_preSet__SWIG_0(self, args); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Engines__ResourceParameters, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_preSet__SWIG_1(self, args); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Engines__ContainerParameters, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_LifeCycleCORBA_preSet__SWIG_2(self, args); } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SALOME_LifeCycleCORBA_preSet'.\n" " Possible C/C++ prototypes are:\n" " preSet(Engines::MachineParameters &)\n" " preSet(Engines::ResourceParameters &)\n" " SALOME_LifeCycleCORBA::preSet(Engines::ContainerParameters &)\n"); return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_getContainerManager(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; Engines::ContainerManager_ptr result; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_getContainerManager",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_getContainerManager" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->getContainerManager(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_getResourcesManager(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; Engines::ResourcesManager_ptr result; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_getResourcesManager",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_getResourcesManager" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->getResourcesManager(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } { MESSAGE("typemap out on CORBA object ptr"); SCRUTE(result); resultobj = api->cxxObjRefToPyObjRef(result, 1); SCRUTE(resultobj); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_namingService(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; SALOME_NamingService *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_namingService",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_namingService" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_NamingService *)(arg1)->namingService(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_NamingService, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_orb(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; CORBA::ORB_ptr result; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_orb",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_orb" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->orb(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj((new CORBA::ORB_ptr(static_cast< const CORBA::ORB_ptr& >(result))), SWIGTYPE_p_CORBA__ORB_ptr, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_copyFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:SALOME_LifeCycleCORBA_copyFile",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_copyFile" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SALOME_LifeCycleCORBA_copyFile" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_copyFile" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SALOME_LifeCycleCORBA_copyFile" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "SALOME_LifeCycleCORBA_copyFile" "', argument " "5"" of type '" "char const *""'"); } arg5 = reinterpret_cast< char * >(buf5); { Py_BEGIN_ALLOW_THREADS try { (arg1)->copyFile((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_shutdownServers(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_LifeCycleCORBA_shutdownServers",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_shutdownServers" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { (arg1)->shutdownServers(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_killOmniNames(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; if (!PyArg_ParseTuple(args,(char *)":SALOME_LifeCycleCORBA_killOmniNames")) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { SALOME_LifeCycleCORBA::killOmniNames(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_LifeCycleCORBA_convert(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_LifeCycleCORBA *arg1 = (SALOME_LifeCycleCORBA *) 0 ; Engines::MachineParameters *arg2 = 0 ; Engines::ContainerParameters *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:SALOME_LifeCycleCORBA_convert",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_LifeCycleCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_LifeCycleCORBA_convert" "', argument " "1"" of type '" "SALOME_LifeCycleCORBA *""'"); } arg1 = reinterpret_cast< SALOME_LifeCycleCORBA * >(argp1); { //printf("typemap in on Engines::MachineParameters\n"); MESSAGE("typemap in on Engines::MachineParameters"); if (PyDict_Check(obj1) == 1) { Engines::MachineParameters *param = new Engines::MachineParameters ; SALOME_LifeCycleCORBA::preSet(*param); PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(obj1, &pos, &key, &value)) { char* keystr = PyString_AsString(key); if (strcmp(keystr,"container_name")==0) { param->container_name = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"hostname")==0) { param->hostname = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"OS")==0) { param->OS = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"mem_mb")==0) { param->mem_mb = PyLong_AsLong(value); } else if (strcmp(keystr,"cpu_clock")==0) { param->cpu_clock = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_proc_per_node")==0) { param->nb_proc_per_node = PyLong_AsLong(value); } else if (strcmp(keystr,"nb_node")==0) { param->nb_node = PyLong_AsLong(value); } else if (strcmp(keystr,"isMPI")==0) { param->isMPI = PyLong_AsLong(value); } else if (strcmp(keystr,"workingdir")==0) param->workingdir = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"mode")==0) param->mode = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"policy")==0) param->policy = CORBA::string_dup(PyString_AsString(value)); else if (strcmp(keystr,"parallelLib")==0) { param->parallelLib = CORBA::string_dup(PyString_AsString(value)); } else if (strcmp(keystr,"nb_component_nodes")==0) { param->nb_component_nodes = PyLong_AsLong(value); } } arg2 = param; } else { MESSAGE("Not a dictionnary"); PyErr_SetString(PyExc_TypeError,"Must Be a Python Dictionnary"); return NULL; } } res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Engines__ContainerParameters, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SALOME_LifeCycleCORBA_convert" "', argument " "3"" of type '" "Engines::ContainerParameters &""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SALOME_LifeCycleCORBA_convert" "', argument " "3"" of type '" "Engines::ContainerParameters &""'"); } arg3 = reinterpret_cast< Engines::ContainerParameters * >(argp3); { Py_BEGIN_ALLOW_THREADS try { (arg1)->convert((Engines::MachineParameters const &)*arg2,*arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); { MESSAGE("delete arg2"); delete arg2; } return resultobj; fail: { MESSAGE("delete arg2"); delete arg2; } return NULL; } SWIGINTERN PyObject *SALOME_LifeCycleCORBA_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_SALOME_LifeCycleCORBA, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_SALOME_FileTransferCORBA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_FileTransferCORBA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_SALOME_FileTransferCORBA")) SWIG_fail; { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_FileTransferCORBA *)new SALOME_FileTransferCORBA(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_FileTransferCORBA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_FileTransferCORBA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Engines::fileRef_ptr arg1 ; PyObject * obj0 = 0 ; SALOME_FileTransferCORBA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_SALOME_FileTransferCORBA",&obj0)) SWIG_fail; { MESSAGE("typemap in on CORBA object ptr"); try { CORBA::Object_ptr obj = api->pyObjRefToCxxObjRef(obj0,1); arg1 = Engines::fileRef::_narrow(obj); SCRUTE(arg1); } catch (...) { PyErr_SetString(PyExc_RuntimeError, "not a valid CORBA object ptr"); } } { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_FileTransferCORBA *)new SALOME_FileTransferCORBA(arg1); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_FileTransferCORBA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_FileTransferCORBA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::string arg1 ; std::string arg2 ; std::string arg3 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; SALOME_FileTransferCORBA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_SALOME_FileTransferCORBA",&obj0,&obj1,&obj2)) SWIG_fail; { std::string *ptr = (std::string *)0; int res = SWIG_AsPtr_std_string(obj0, &ptr); if (!SWIG_IsOK(res) || !ptr) { SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_SALOME_FileTransferCORBA" "', argument " "1"" of type '" "std::string""'"); } arg1 = *ptr; if (SWIG_IsNewObj(res)) delete ptr; } { std::string *ptr = (std::string *)0; int res = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res) || !ptr) { SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_SALOME_FileTransferCORBA" "', argument " "2"" of type '" "std::string""'"); } arg2 = *ptr; if (SWIG_IsNewObj(res)) delete ptr; } { std::string *ptr = (std::string *)0; int res = SWIG_AsPtr_std_string(obj2, &ptr); if (!SWIG_IsOK(res) || !ptr) { SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_SALOME_FileTransferCORBA" "', argument " "3"" of type '" "std::string""'"); } arg3 = *ptr; if (SWIG_IsNewObj(res)) delete ptr; } { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_FileTransferCORBA *)new SALOME_FileTransferCORBA(arg1,arg2,arg3); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_FileTransferCORBA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_FileTransferCORBA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::string arg1 ; std::string arg2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SALOME_FileTransferCORBA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_SALOME_FileTransferCORBA",&obj0,&obj1)) SWIG_fail; { std::string *ptr = (std::string *)0; int res = SWIG_AsPtr_std_string(obj0, &ptr); if (!SWIG_IsOK(res) || !ptr) { SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_SALOME_FileTransferCORBA" "', argument " "1"" of type '" "std::string""'"); } arg1 = *ptr; if (SWIG_IsNewObj(res)) delete ptr; } { std::string *ptr = (std::string *)0; int res = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res) || !ptr) { SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_SALOME_FileTransferCORBA" "', argument " "2"" of type '" "std::string""'"); } arg2 = *ptr; if (SWIG_IsNewObj(res)) delete ptr; } { Py_BEGIN_ALLOW_THREADS try { result = (SALOME_FileTransferCORBA *)new SALOME_FileTransferCORBA(arg1,arg2); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SALOME_FileTransferCORBA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_SALOME_FileTransferCORBA(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_SALOME_FileTransferCORBA__SWIG_0(self, args); } if (argc == 1) { int _v; { _v=PyObject_HasAttrString(argv[0], "__omni_obj"); } if (_v) { return _wrap_new_SALOME_FileTransferCORBA__SWIG_1(self, args); } } if (argc == 2) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_SALOME_FileTransferCORBA__SWIG_3(self, args); } } } if (argc == 3) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_SALOME_FileTransferCORBA__SWIG_2(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_SALOME_FileTransferCORBA'.\n" " Possible C/C++ prototypes are:\n" " SALOME_FileTransferCORBA()\n" " SALOME_FileTransferCORBA(Engines::fileRef_ptr)\n" " SALOME_FileTransferCORBA(std::string,std::string,std::string)\n" " SALOME_FileTransferCORBA(std::string,std::string)\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_SALOME_FileTransferCORBA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_FileTransferCORBA *arg1 = (SALOME_FileTransferCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_SALOME_FileTransferCORBA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_FileTransferCORBA, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SALOME_FileTransferCORBA" "', argument " "1"" of type '" "SALOME_FileTransferCORBA *""'"); } arg1 = reinterpret_cast< SALOME_FileTransferCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { delete arg1; } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_FileTransferCORBA_getLocalFile__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_FileTransferCORBA *arg1 = (SALOME_FileTransferCORBA *) 0 ; std::string arg2 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; std::string result; if (!PyArg_ParseTuple(args,(char *)"OO:SALOME_FileTransferCORBA_getLocalFile",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_FileTransferCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_FileTransferCORBA_getLocalFile" "', argument " "1"" of type '" "SALOME_FileTransferCORBA *""'"); } arg1 = reinterpret_cast< SALOME_FileTransferCORBA * >(argp1); { std::string *ptr = (std::string *)0; int res = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res) || !ptr) { SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "SALOME_FileTransferCORBA_getLocalFile" "', argument " "2"" of type '" "std::string""'"); } arg2 = *ptr; if (SWIG_IsNewObj(res)) delete ptr; } { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->getLocalFile(arg2); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_FileTransferCORBA_getLocalFile__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; SALOME_FileTransferCORBA *arg1 = (SALOME_FileTransferCORBA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; std::string result; if (!PyArg_ParseTuple(args,(char *)"O:SALOME_FileTransferCORBA_getLocalFile",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SALOME_FileTransferCORBA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SALOME_FileTransferCORBA_getLocalFile" "', argument " "1"" of type '" "SALOME_FileTransferCORBA *""'"); } arg1 = reinterpret_cast< SALOME_FileTransferCORBA * >(argp1); { Py_BEGIN_ALLOW_THREADS try { result = (arg1)->getLocalFile(); } catch (ServiceUnreachable) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,"Naming Service Unreacheable"); return NULL; } catch (SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.what()); return NULL; } catch (SALOME::SALOME_Exception &e) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError,e.details.text); return NULL; } catch (...) { Py_BLOCK_THREADS PyErr_SetString(PyExc_RuntimeError, "unknown exception"); return NULL; } Py_END_ALLOW_THREADS } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SALOME_FileTransferCORBA_getLocalFile(PyObject *self, PyObject *args) { int argc; PyObject *argv[3]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 2); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_FileTransferCORBA, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_FileTransferCORBA_getLocalFile__SWIG_1(self, args); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SALOME_FileTransferCORBA, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_SALOME_FileTransferCORBA_getLocalFile__SWIG_0(self, args); } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SALOME_FileTransferCORBA_getLocalFile'.\n" " Possible C/C++ prototypes are:\n" " getLocalFile(SALOME_FileTransferCORBA *,std::string)\n" " getLocalFile(SALOME_FileTransferCORBA *)\n"); return NULL; } SWIGINTERN PyObject *SALOME_FileTransferCORBA_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_SALOME_FileTransferCORBA, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } static PyMethodDef SwigMethods[] = { { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, { (char *)"makeText", _wrap_makeText, METH_VARARGS, (char *)"makeText(char text, char fileName, unsigned int lineNumber) -> char"}, { (char *)"new_SALOME_Exception", _wrap_new_SALOME_Exception, METH_VARARGS, (char *)"\n" "SALOME_Exception(char text, char fileName = None, unsigned int lineNumber = 0)\n" "SALOME_Exception(char text, char fileName = None)\n" "SALOME_Exception(char text)\n" "new_SALOME_Exception(SALOME_Exception ex) -> SALOME_Exception\n" ""}, { (char *)"delete_SALOME_Exception", _wrap_delete_SALOME_Exception, METH_VARARGS, (char *)"delete_SALOME_Exception(SALOME_Exception self)"}, { (char *)"SALOME_Exception_what", _wrap_SALOME_Exception_what, METH_VARARGS, (char *)"SALOME_Exception_what(SALOME_Exception self) -> char"}, { (char *)"SALOME_Exception_swigregister", SALOME_Exception_swigregister, METH_VARARGS, NULL}, { (char *)"new_IncompatibleComponent", _wrap_new_IncompatibleComponent, METH_VARARGS, (char *)"\n" "IncompatibleComponent()\n" "new_IncompatibleComponent(IncompatibleComponent ex) -> IncompatibleComponent\n" ""}, { (char *)"delete_IncompatibleComponent", _wrap_delete_IncompatibleComponent, METH_VARARGS, (char *)"delete_IncompatibleComponent(IncompatibleComponent self)"}, { (char *)"IncompatibleComponent_swigregister", IncompatibleComponent_swigregister, METH_VARARGS, NULL}, { (char *)"new_SALOME_LifeCycleCORBA", _wrap_new_SALOME_LifeCycleCORBA, METH_VARARGS, (char *)"\n" "SALOME_LifeCycleCORBA(SALOME_NamingService ns = None)\n" "new_SALOME_LifeCycleCORBA() -> SALOME_LifeCycleCORBA\n" ""}, { (char *)"delete_SALOME_LifeCycleCORBA", _wrap_delete_SALOME_LifeCycleCORBA, METH_VARARGS, (char *)"delete_SALOME_LifeCycleCORBA(SALOME_LifeCycleCORBA self)"}, { (char *)"SALOME_LifeCycleCORBA_FindComponent", _wrap_SALOME_LifeCycleCORBA_FindComponent, METH_VARARGS, (char *)"\n" "FindComponent(Engines::MachineParameters params, char componentName, \n" " int studyId = 0) -> Engines::EngineComponent_ptr\n" "SALOME_LifeCycleCORBA_FindComponent(SALOME_LifeCycleCORBA self, Engines::MachineParameters params, \n" " char componentName) -> Engines::EngineComponent_ptr\n" ""}, { (char *)"SALOME_LifeCycleCORBA_LoadComponent", _wrap_SALOME_LifeCycleCORBA_LoadComponent, METH_VARARGS, (char *)"\n" "LoadComponent(Engines::MachineParameters params, char componentName, \n" " int studyId = 0) -> Engines::EngineComponent_ptr\n" "SALOME_LifeCycleCORBA_LoadComponent(SALOME_LifeCycleCORBA self, Engines::MachineParameters params, \n" " char componentName) -> Engines::EngineComponent_ptr\n" ""}, { (char *)"SALOME_LifeCycleCORBA_FindOrLoad_Component", _wrap_SALOME_LifeCycleCORBA_FindOrLoad_Component, METH_VARARGS, (char *)"\n" "FindOrLoad_Component(Engines::MachineParameters params, char componentName, \n" " int studyId = 0) -> Engines::EngineComponent_ptr\n" "FindOrLoad_Component(Engines::MachineParameters params, char componentName) -> Engines::EngineComponent_ptr\n" "FindOrLoad_Component(Engines::ContainerParameters params, char componentName, \n" " int studyId = 0) -> Engines::EngineComponent_ptr\n" "FindOrLoad_Component(Engines::ContainerParameters params, char componentName) -> Engines::EngineComponent_ptr\n" "SALOME_LifeCycleCORBA_FindOrLoad_Component(SALOME_LifeCycleCORBA self, char containerName, char componentName) -> Engines::EngineComponent_ptr\n" ""}, { (char *)"SALOME_LifeCycleCORBA_Load_ParallelComponent", _wrap_SALOME_LifeCycleCORBA_Load_ParallelComponent, METH_VARARGS, (char *)"\n" "SALOME_LifeCycleCORBA_Load_ParallelComponent(SALOME_LifeCycleCORBA self, Engines::ContainerParameters params, \n" " char componentName, int studyId) -> Engines::EngineComponent_ptr\n" ""}, { (char *)"SALOME_LifeCycleCORBA_isKnownComponentClass", _wrap_SALOME_LifeCycleCORBA_isKnownComponentClass, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_isKnownComponentClass(SALOME_LifeCycleCORBA self, char componentName) -> bool"}, { (char *)"SALOME_LifeCycleCORBA_isMpiContainer", _wrap_SALOME_LifeCycleCORBA_isMpiContainer, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_isMpiContainer(SALOME_LifeCycleCORBA self, Engines::ContainerParameters params) -> bool"}, { (char *)"SALOME_LifeCycleCORBA_NbProc", _wrap_SALOME_LifeCycleCORBA_NbProc, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_NbProc(SALOME_LifeCycleCORBA self, Engines::ContainerParameters params) -> int"}, { (char *)"SALOME_LifeCycleCORBA_preSet", _wrap_SALOME_LifeCycleCORBA_preSet, METH_VARARGS, (char *)"\n" "preSet(Engines::MachineParameters outparams)\n" "preSet(Engines::ResourceParameters outparams)\n" "SALOME_LifeCycleCORBA_preSet(Engines::ContainerParameters outparams)\n" ""}, { (char *)"SALOME_LifeCycleCORBA_getContainerManager", _wrap_SALOME_LifeCycleCORBA_getContainerManager, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_getContainerManager(SALOME_LifeCycleCORBA self) -> Engines::ContainerManager_ptr"}, { (char *)"SALOME_LifeCycleCORBA_getResourcesManager", _wrap_SALOME_LifeCycleCORBA_getResourcesManager, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_getResourcesManager(SALOME_LifeCycleCORBA self) -> Engines::ResourcesManager_ptr"}, { (char *)"SALOME_LifeCycleCORBA_namingService", _wrap_SALOME_LifeCycleCORBA_namingService, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_namingService(SALOME_LifeCycleCORBA self) -> SALOME_NamingService"}, { (char *)"SALOME_LifeCycleCORBA_orb", _wrap_SALOME_LifeCycleCORBA_orb, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_orb(SALOME_LifeCycleCORBA self) -> CORBA::ORB_ptr"}, { (char *)"SALOME_LifeCycleCORBA_copyFile", _wrap_SALOME_LifeCycleCORBA_copyFile, METH_VARARGS, (char *)"\n" "SALOME_LifeCycleCORBA_copyFile(SALOME_LifeCycleCORBA self, char hostSrc, char fileSrc, \n" " char hostDest, char fileDest)\n" ""}, { (char *)"SALOME_LifeCycleCORBA_shutdownServers", _wrap_SALOME_LifeCycleCORBA_shutdownServers, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_shutdownServers(SALOME_LifeCycleCORBA self)"}, { (char *)"SALOME_LifeCycleCORBA_killOmniNames", _wrap_SALOME_LifeCycleCORBA_killOmniNames, METH_VARARGS, (char *)"SALOME_LifeCycleCORBA_killOmniNames()"}, { (char *)"SALOME_LifeCycleCORBA_convert", _wrap_SALOME_LifeCycleCORBA_convert, METH_VARARGS, (char *)"\n" "SALOME_LifeCycleCORBA_convert(SALOME_LifeCycleCORBA self, Engines::MachineParameters params_in, \n" " Engines::ContainerParameters params_out)\n" ""}, { (char *)"SALOME_LifeCycleCORBA_swigregister", SALOME_LifeCycleCORBA_swigregister, METH_VARARGS, NULL}, { (char *)"new_SALOME_FileTransferCORBA", _wrap_new_SALOME_FileTransferCORBA, METH_VARARGS, (char *)"\n" "SALOME_FileTransferCORBA()\n" "SALOME_FileTransferCORBA(Engines::fileRef_ptr aFileRef)\n" "SALOME_FileTransferCORBA(string refMachine, string origFileName, string containerName = \"\")\n" "new_SALOME_FileTransferCORBA(string refMachine, string origFileName) -> SALOME_FileTransferCORBA\n" ""}, { (char *)"delete_SALOME_FileTransferCORBA", _wrap_delete_SALOME_FileTransferCORBA, METH_VARARGS, (char *)"delete_SALOME_FileTransferCORBA(SALOME_FileTransferCORBA self)"}, { (char *)"SALOME_FileTransferCORBA_getLocalFile", _wrap_SALOME_FileTransferCORBA_getLocalFile, METH_VARARGS, (char *)"\n" "getLocalFile(string localFile = \"\") -> string\n" "SALOME_FileTransferCORBA_getLocalFile(SALOME_FileTransferCORBA self) -> string\n" ""}, { (char *)"SALOME_FileTransferCORBA_swigregister", SALOME_FileTransferCORBA_swigregister, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static void *_p_IncompatibleComponentTo_p_SALOME_Exception(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((SALOME_Exception *) ((IncompatibleComponent *) x)); } static void *_p_IncompatibleComponentTo_p_std__exception(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((std::exception *) (SALOME_Exception *) ((IncompatibleComponent *) x)); } static void *_p_SALOME_ExceptionTo_p_std__exception(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((std::exception *) ((SALOME_Exception *) x)); } static swig_type_info _swigt__p_CORBA__ORB_ptr = {"_p_CORBA__ORB_ptr", "CORBA::ORB_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Engines__ContainerParameters = {"_p_Engines__ContainerParameters", "Engines::ContainerParameters *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Engines__MachineParameters = {"_p_Engines__MachineParameters", "Engines::MachineParameters *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Engines__ResourceParameters = {"_p_Engines__ResourceParameters", "Engines::ResourceParameters *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IncompatibleComponent = {"_p_IncompatibleComponent", "IncompatibleComponent *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SALOME_Exception = {"_p_SALOME_Exception", "SALOME_Exception *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SALOME_FileTransferCORBA = {"_p_SALOME_FileTransferCORBA", "SALOME_FileTransferCORBA *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SALOME_LifeCycleCORBA = {"_p_SALOME_LifeCycleCORBA", "SALOME_LifeCycleCORBA *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SALOME_NamingService = {"_p_SALOME_NamingService", "SALOME_NamingService *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__exception = {"_p_std__exception", "std::exception *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_CORBA__ORB_ptr, &_swigt__p_Engines__ContainerParameters, &_swigt__p_Engines__MachineParameters, &_swigt__p_Engines__ResourceParameters, &_swigt__p_IncompatibleComponent, &_swigt__p_SALOME_Exception, &_swigt__p_SALOME_FileTransferCORBA, &_swigt__p_SALOME_LifeCycleCORBA, &_swigt__p_SALOME_NamingService, &_swigt__p_char, &_swigt__p_std__exception, }; static swig_cast_info _swigc__p_CORBA__ORB_ptr[] = { {&_swigt__p_CORBA__ORB_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Engines__ContainerParameters[] = { {&_swigt__p_Engines__ContainerParameters, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Engines__MachineParameters[] = { {&_swigt__p_Engines__MachineParameters, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Engines__ResourceParameters[] = { {&_swigt__p_Engines__ResourceParameters, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IncompatibleComponent[] = { {&_swigt__p_IncompatibleComponent, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SALOME_Exception[] = { {&_swigt__p_IncompatibleComponent, _p_IncompatibleComponentTo_p_SALOME_Exception, 0, 0}, {&_swigt__p_SALOME_Exception, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SALOME_FileTransferCORBA[] = { {&_swigt__p_SALOME_FileTransferCORBA, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SALOME_LifeCycleCORBA[] = { {&_swigt__p_SALOME_LifeCycleCORBA, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SALOME_NamingService[] = { {&_swigt__p_SALOME_NamingService, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__exception[] = { {&_swigt__p_IncompatibleComponent, _p_IncompatibleComponentTo_p_std__exception, 0, 0}, {&_swigt__p_std__exception, 0, 0, 0}, {&_swigt__p_SALOME_Exception, _p_SALOME_ExceptionTo_p_std__exception, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_CORBA__ORB_ptr, _swigc__p_Engines__ContainerParameters, _swigc__p_Engines__MachineParameters, _swigc__p_Engines__ResourceParameters, _swigc__p_IncompatibleComponent, _swigc__p_SALOME_Exception, _swigc__p_SALOME_FileTransferCORBA, _swigc__p_SALOME_LifeCycleCORBA, _swigc__p_SALOME_NamingService, _swigc__p_char, _swigc__p_std__exception, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned staticly to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int found, init; clientdata = clientdata; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ found=0; iter=module_head; do { if (iter==&swig_module) { found=1; break; } iter=iter->next; } while (iter!= module_head); /* if the is found in the list, then all is done and we may leave */ if (found) return; /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpeters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %d\n", swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_InternFromString(""); #else return PyString_FromString(""); #endif } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { #if PY_VERSION_HEX >= 0x03000000 PyObject *str = PyUnicode_InternFromString("("); PyObject *tail; PyObject *joined; swig_globalvar *var; for (var = v->vars; var; var=var->next) { tail = PyUnicode_FromString(var->name); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; if (var->next) { tail = PyUnicode_InternFromString(", "); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; } } tail = PyUnicode_InternFromString(")"); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; #else PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); #endif return str; } SWIGINTERN int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *tmp; PyObject *str = swig_varlink_str(v); fprintf(fp,"Swig global variables "); fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str)); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(str); return 0; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* Number of items in variable part (ob_size) */ #endif (char *)"swigvarlink", /* Type name (tp_name) */ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ 0, /* Itemsize (tp_itemsize) */ (destructor) swig_varlink_dealloc, /* Deallocator (tp_dealloc) */ (printfunc) swig_varlink_print, /* Print (tp_print) */ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc) swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; varlink_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 varlink_type.ob_type = &PyType_Type; #endif type_init = 1; } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { strncpy(gv->name,name,size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *_SWIG_globals = 0; if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); return _SWIG_globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT #if PY_VERSION_HEX >= 0x03000000 PyObject* #else void #endif SWIG_init(void) { PyObject *m, *d; #if PY_VERSION_HEX >= 0x03000000 static struct PyModuleDef SWIG_module = { PyModuleDef_HEAD_INIT, (char *) SWIG_name, NULL, -1, SwigMethods, NULL, NULL, NULL, NULL }; #endif /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); #if PY_VERSION_HEX >= 0x03000000 m = PyModule_Create(&SWIG_module); #else m = Py_InitModule((char *) SWIG_name, SwigMethods); #endif d = PyModule_GetDict(m); SWIG_InitializeModule(0); SWIG_InstallConstants(d,swig_const_table); // init section PyObject* omnipy = PyImport_ImportModule((char*)"_omnipy"); if (!omnipy) { PyErr_SetString(PyExc_ImportError, (char*)"Cannot import _omnipy"); return; } PyObject* pyapi = PyObject_GetAttrString(omnipy, (char*)"API"); api = (omniORBpyAPI*)PyCObject_AsVoidPtr(pyapi); Py_DECREF(pyapi); #if PY_VERSION_HEX >= 0x03000000 return m; #else return; #endif } salome-kernel-6.5.0/src/Logger/000077500000000000000000000000001177004724000162705ustar00rootroot00000000000000salome-kernel-6.5.0/src/Logger/Makefile.am000077500000000000000000000045161177004724000203350ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Logger : CORBA server managing trace output # File : Makefile.am # Author : Guillaume BOULANT, CSSI # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Logger/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:16 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # header files salomeinclude_HEADERS = \ SALOME_Trace.hxx # # This makefile defines a executable target (SALOME_Logger_Server) and # a library target (libSalomeLoggerServer.la). The executable depends # on the library. # # Program files bin_PROGRAMS = SALOME_Logger_Server SALOME_Logger_Server_SOURCES = \ SALOME_Logger_Server_main.cxx \ SALOME_Logger_Server.hxx SALOME_Logger_Server_LDADD = libSalomeLoggerServer.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ SALOME_Logger_Server_CPPFLAGS =\ -I$(top_builddir)/idl \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Basics \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # Libraries targets lib_LTLIBRARIES = libSalomeLoggerServer.la libSalomeLoggerServer_la_SOURCES =\ SALOME_Trace.cxx \ SALOME_Logger_Server.cxx libSalomeLoggerServer_la_CPPFLAGS =\ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeLoggerServer_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeLoggerServer_la_LIBADD = \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ # Scripts target dist_salomescript_PYTHON = SALOME_Trace.py salome-kernel-6.5.0/src/Logger/Makefile.in000077500000000000000000001146521177004724000203510ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOME_Logger_Server$(EXEEXT) subdir = src/Logger ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeLoggerServer_la_DEPENDENCIES = \ $(top_builddir)/idl/libSalomeIDLKernel.la am_libSalomeLoggerServer_la_OBJECTS = \ libSalomeLoggerServer_la-SALOME_Trace.lo \ libSalomeLoggerServer_la-SALOME_Logger_Server.lo libSalomeLoggerServer_la_OBJECTS = \ $(am_libSalomeLoggerServer_la_OBJECTS) libSalomeLoggerServer_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libSalomeLoggerServer_la_LDFLAGS) \ $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_SALOME_Logger_Server_OBJECTS = \ SALOME_Logger_Server-SALOME_Logger_Server_main.$(OBJEXT) SALOME_Logger_Server_OBJECTS = $(am_SALOME_Logger_Server_OBJECTS) SALOME_Logger_Server_DEPENDENCIES = libSalomeLoggerServer.la \ $(top_builddir)/idl/libSalomeIDLKernel.la DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeLoggerServer_la_SOURCES) \ $(SALOME_Logger_Server_SOURCES) DIST_SOURCES = $(libSalomeLoggerServer_la_SOURCES) \ $(SALOME_Logger_Server_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME Logger : CORBA server managing trace output # File : Makefile.am # Author : Guillaume BOULANT, CSSI # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Logger/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:16 vsr Exp $ # # header files salomeinclude_HEADERS = \ SALOME_Trace.hxx SALOME_Logger_Server_SOURCES = \ SALOME_Logger_Server_main.cxx \ SALOME_Logger_Server.hxx SALOME_Logger_Server_LDADD = libSalomeLoggerServer.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ SALOME_Logger_Server_CPPFLAGS = \ -I$(top_builddir)/idl \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Basics \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # Libraries targets lib_LTLIBRARIES = libSalomeLoggerServer.la libSalomeLoggerServer_la_SOURCES = \ SALOME_Trace.cxx \ SALOME_Logger_Server.cxx libSalomeLoggerServer_la_CPPFLAGS = \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeLoggerServer_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeLoggerServer_la_LIBADD = \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ # Scripts target dist_salomescript_PYTHON = SALOME_Trace.py all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Logger/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Logger/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeLoggerServer.la: $(libSalomeLoggerServer_la_OBJECTS) $(libSalomeLoggerServer_la_DEPENDENCIES) $(libSalomeLoggerServer_la_LINK) -rpath $(libdir) $(libSalomeLoggerServer_la_OBJECTS) $(libSalomeLoggerServer_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_Logger_Server$(EXEEXT): $(SALOME_Logger_Server_OBJECTS) $(SALOME_Logger_Server_DEPENDENCIES) @rm -f SALOME_Logger_Server$(EXEEXT) $(CXXLINK) $(SALOME_Logger_Server_OBJECTS) $(SALOME_Logger_Server_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeLoggerServer_la-SALOME_Logger_Server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeLoggerServer_la-SALOME_Trace.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeLoggerServer_la-SALOME_Trace.lo: SALOME_Trace.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLoggerServer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeLoggerServer_la-SALOME_Trace.lo -MD -MP -MF $(DEPDIR)/libSalomeLoggerServer_la-SALOME_Trace.Tpo -c -o libSalomeLoggerServer_la-SALOME_Trace.lo `test -f 'SALOME_Trace.cxx' || echo '$(srcdir)/'`SALOME_Trace.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeLoggerServer_la-SALOME_Trace.Tpo $(DEPDIR)/libSalomeLoggerServer_la-SALOME_Trace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Trace.cxx' object='libSalomeLoggerServer_la-SALOME_Trace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLoggerServer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeLoggerServer_la-SALOME_Trace.lo `test -f 'SALOME_Trace.cxx' || echo '$(srcdir)/'`SALOME_Trace.cxx libSalomeLoggerServer_la-SALOME_Logger_Server.lo: SALOME_Logger_Server.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLoggerServer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeLoggerServer_la-SALOME_Logger_Server.lo -MD -MP -MF $(DEPDIR)/libSalomeLoggerServer_la-SALOME_Logger_Server.Tpo -c -o libSalomeLoggerServer_la-SALOME_Logger_Server.lo `test -f 'SALOME_Logger_Server.cxx' || echo '$(srcdir)/'`SALOME_Logger_Server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeLoggerServer_la-SALOME_Logger_Server.Tpo $(DEPDIR)/libSalomeLoggerServer_la-SALOME_Logger_Server.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Logger_Server.cxx' object='libSalomeLoggerServer_la-SALOME_Logger_Server.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeLoggerServer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeLoggerServer_la-SALOME_Logger_Server.lo `test -f 'SALOME_Logger_Server.cxx' || echo '$(srcdir)/'`SALOME_Logger_Server.cxx SALOME_Logger_Server-SALOME_Logger_Server_main.o: SALOME_Logger_Server_main.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Logger_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Logger_Server-SALOME_Logger_Server_main.o -MD -MP -MF $(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Tpo -c -o SALOME_Logger_Server-SALOME_Logger_Server_main.o `test -f 'SALOME_Logger_Server_main.cxx' || echo '$(srcdir)/'`SALOME_Logger_Server_main.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Tpo $(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Logger_Server_main.cxx' object='SALOME_Logger_Server-SALOME_Logger_Server_main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Logger_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Logger_Server-SALOME_Logger_Server_main.o `test -f 'SALOME_Logger_Server_main.cxx' || echo '$(srcdir)/'`SALOME_Logger_Server_main.cxx SALOME_Logger_Server-SALOME_Logger_Server_main.obj: SALOME_Logger_Server_main.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Logger_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Logger_Server-SALOME_Logger_Server_main.obj -MD -MP -MF $(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Tpo -c -o SALOME_Logger_Server-SALOME_Logger_Server_main.obj `if test -f 'SALOME_Logger_Server_main.cxx'; then $(CYGPATH_W) 'SALOME_Logger_Server_main.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Logger_Server_main.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Tpo $(DEPDIR)/SALOME_Logger_Server-SALOME_Logger_Server_main.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Logger_Server_main.cxx' object='SALOME_Logger_Server-SALOME_Logger_Server_main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Logger_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Logger_Server-SALOME_Logger_Server_main.obj `if test -f 'SALOME_Logger_Server_main.cxx'; then $(CYGPATH_W) 'SALOME_Logger_Server_main.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Logger_Server_main.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Logger/SALOME_Logger_Server.cxx000077500000000000000000000041771177004724000226350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Logger : CORBA server managing trace output // File : SALOME_Logger_Server.cxx // Author : Vasily Rusyaev // Module : SALOME // #include #include "SALOME_Logger_Server.hxx" #include #include #ifndef WIN32 # include #endif #ifdef WIN32 #include #endif omni_mutex Logger::myLock; ///////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Logger::Logger() { m_putIntoFile = false; } Logger::Logger(const char *filename) { // m_outputFile.open( filename, ios::out | ios::trunc , filebuf::openprot); m_outputFile.open( filename, std::ios::out | std::ios::trunc); if (m_outputFile.is_open()) m_putIntoFile = true; else m_putIntoFile = false; } Logger::~Logger() { if (m_putIntoFile) m_outputFile.close(); } void Logger::putMessage(const char* message) { myLock.lock(); if (m_putIntoFile) m_outputFile << message << std::flush; else std::cout << message; myLock.unlock(); } void Logger::ping() { //cout<<" Logger::ping() pid "<< getpid()< #include #ifdef WIN32 #include #endif #include #include "Logger.hh" #ifdef WIN32 # if defined LOGGER_EXPORTS || defined SalomeLoggerServer_EXPORTS # define LOGGER_EXPORT __declspec( dllexport ) # else # define LOGGER_EXPORT __declspec( dllimport ) # endif #else # define LOGGER_EXPORT #endif #ifdef WNT #pragma warning(disable:4275) // Disable warning interface non dll #endif class LOGGER_EXPORT Logger : public POA_SALOME_Logger::Logger { public: //constructor w/o parameters //all messages will be put into terminal via cout Logger(); //constructor with parameter, filename is output file //all messages will be put into special file passed as parameter Logger(const char *filename); virtual ~Logger(); //put message into one special place for all servers void putMessage(const char* message); void ping(); void SetOrb( CORBA::ORB_ptr orb ) { _orb = CORBA::ORB::_duplicate(orb); return; } void shutdown() { if(!CORBA::is_nil(_orb)) _orb->shutdown(0); }; private: //if m_putIntoFile is true all messages will be put into special //otherwise all messages will be put into terminal via cout bool m_putIntoFile; //ofstream class specialized for disk file output std::ofstream m_outputFile; //synchronisation object static omni_mutex myLock; CORBA::ORB_ptr _orb; }; #endif // !defined(SALOME_Logger_Server_include) salome-kernel-6.5.0/src/Logger/SALOME_Logger_Server_main.cxx000077500000000000000000000120131177004724000236250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Logger : CORBA server managing trace output // File : SALOME_Logger_Server.cxx // Author : Vasily Rusyaev // Module : SALOME // #include #include "SALOME_Logger_Server.hxx" #include #include #include #ifndef WIN32 # include #else # include "utilities.h" // for compilation type "timespec" #endif int main(int argc, char **argv) { if (argc > 2) { std::cout << "usage: SALOME_Logger_Server [output_file]" << std::endl; exit(1); } try { //Initialize the ORB const long TIMESleep = 250000000; const int NumberOfTries = 40; int i; timespec ts_req = {0, TIMESleep}; timespec ts_rem = {0, 0}; CosNaming::NamingContext_var inc; SALOME_Logger::Logger_var myLoggerRef; CORBA::Object_var theObj; Logger* myLogger; CORBA::Object_var obj; PortableServer::POA_var poa; PortableServer::POAManager_var pman; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv) ; for (i = 1; i <= NumberOfTries; i++) { #ifndef WIN32 if (i != 1) nanosleep(&ts_req, &ts_rem); #else if (i != 1) Sleep(TIMESleep / 1000000); #endif try { obj = orb->resolve_initial_references("RootPOA") ; if(!CORBA::is_nil(obj)) poa = PortableServer::POA::_narrow(obj) ; pman = poa->the_POAManager(); // NB. You can activate the POA before or after // activating objects in that POA. // This activates the object in the root POA (by default), and // returns a reference to it. //NB. You can't use SALOME_NamingService class because it uses MESSAGE macro //Otherwise, you will get segmentation fault. //Get initial naming context if(!CORBA::is_nil(orb)) theObj = orb->resolve_initial_references("NameService"); //Narrow to NamingContext if (!CORBA::is_nil(theObj)) inc = CosNaming::NamingContext::_narrow(theObj); } catch(CORBA::COMM_FAILURE&) { //cout<<"Logger Server: CORBA::COMM_FAILURE: Unable to contact the Naming Service"<SetOrb(orb); myLoggerRef = myLogger->_this(); CosNaming::Name name; name.length(1); name[0].id = CORBA::string_dup("Logger"); inc->bind(name,myLoggerRef); myLogger->_remove_ref(); pman->activate(); orb->run() ; orb->destroy() ; } catch(CORBA::COMM_FAILURE&) { std::cerr << "Caught system exception COMM_FAILURE -- unable to contact the " << "object." << std::endl; } catch(CORBA::SystemException&) { std::cerr << "Caught CORBA::SystemException." << std::endl; } catch(CORBA::Exception&) { std::cerr << "Caught CORBA::Exception." << std::endl; } catch(omniORB::fatalException& fe) { std::cerr << "Caught omniORB::fatalException:" << std::endl; std::cerr << " file: " << fe.file() << std::endl; std::cerr << " line: " << fe.line() << std::endl; std::cerr << " mesg: " << fe.errmsg() << std::endl; } catch(...) { std::cerr << "Caught unknown exception." << std::endl; } return 0; } salome-kernel-6.5.0/src/Logger/SALOME_Trace.cxx000077500000000000000000000110321177004724000211120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Logger : CORBA server managing trace output // File : SALOME_Logger.cxx // Author : Vasily Rusyaev // Module : SALOME // #include "SALOME_Trace.hxx" #include #include //#include #include #include #ifdef WIN32 #include #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// SALOME_Trace::SALOME_Trace() { isInitialized = 0; } SALOME_Trace::~SALOME_Trace() { } SALOME_Trace& SALOME_Trace::Instance() { static SALOME_Trace instance; return instance; } int SALOME_Trace::Initialize(CORBA::ORB_ptr theOrb) { //get reference on object reference from NS //and initialize m_pInterfaceLogger if (isInitialized && !CORBA::is_nil(m_pInterfaceLogger)) return 1; const long TIMESleep = 250000000; const int NumberOfTries = 40; int i; timespec ts_req = {0, TIMESleep}; timespec ts_rem = {0, 0}; CosNaming::NamingContext_var inc; CORBA::Object_var theObj; CORBA::Object_var obj; // searchin for naming service for 0.25*40=10 seconds for (i = 1; i <= NumberOfTries; i++) { #ifndef WIN32 if (i != 1) nanosleep(&ts_req,&ts_rem); #else if (i != 1) Sleep(TIMESleep / 1000000); #endif try{ if(CORBA::is_nil(obj)) obj = theOrb->resolve_initial_references("RootPOA"); if(CORBA::is_nil(theObj)) theObj = theOrb->resolve_initial_references("NameService"); if (!CORBA::is_nil(theObj)) inc = CosNaming::NamingContext::_narrow(theObj); if (!CORBA::is_nil(inc)) break; } catch( CORBA::SystemException& ) { } catch (...) { } } if (CORBA::is_nil(inc)) { std::cout<<"SALOME_Trace can not find NameService"<resolve(name); if (!CORBA::is_nil(obj)) m_pInterfaceLogger = SALOME_Logger::Logger::_narrow(obj); } catch(CosNaming::NamingContext::NotFound) { } catch(...) { } if (!CORBA::is_nil(m_pInterfaceLogger)) { //cout<<"SALOME_Trace : Logger Server was found"<ping(); break; } } if (CORBA::is_nil(m_pInterfaceLogger)) { std::cout<<"SALOME_Trace can not find Logger"<freeze(false); //rdbuf()->sync(); // problem with gcc3.2 seekp(0); if (CORBA::is_nil(m_pInterfaceLogger)) std::cout << LogMsg; else m_pInterfaceLogger-> putMessage (LogMsg) ; } salome-kernel-6.5.0/src/Logger/SALOME_Trace.hxx000077500000000000000000000056221177004724000211270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Logger : CORBA server managing trace output // File : SALOME_Trace.cxx // Author : Vasily Rusyaev // Module : SALOME // #if !defined(AFX_LOGGER_H__96F2A3AB_F6F8_11D6_BFA6_000476A0958C__INCLUDED_) #define AFX_LOGGER_H__96F2A3AB_F6F8_11D6_BFA6_000476A0958C__INCLUDED_ #include #include #include "Logger.hh" //these declarations for files don't using OCC includes (for example HDF) # ifdef WIN32 # ifndef Standard_EXPORT # define Standard_EXPORT __declspec( dllexport ) // For global variables : # define Standard_EXPORTEXTERN __declspec( dllexport ) extern # define Standard_EXPORTEXTERNC extern "C" __declspec( dllexport ) # endif /* Standard_EXPORT */ # ifndef Standard_IMPORT # define Standard_IMPORT __declspec( dllimport ) extern # define Standard_IMPORTC extern "C" __declspec( dllimport ) # endif /* Standard_IMPORT */ # else /* WIN32 */ # ifndef Standard_EXPORT # define Standard_EXPORT // For global variables : # define Standard_EXPORTEXTERN extern # define Standard_EXPORTEXTERNC extern "C" # endif /* Standard_EXPORT */ # ifndef Standard_IMPORT # define Standard_IMPORT extern # define Standard_IMPORTC extern "C" # endif /* Standard_IMPORT */ # endif /* WIN32 */ class SALOME_Trace : public std::ostringstream { public: virtual ~SALOME_Trace(); static Standard_EXPORT SALOME_Trace& Instance(); // initializes Logger (if USE_LOGGER variable is set) and returns true, in case success int Initialize(CORBA::ORB_ptr theOrb); Standard_EXPORT void putMessage(std::ostream& msg); protected: //disable creation of instances. It's necessary to use static SALOME_Logger& Instance() SALOME_Trace(); SALOME_Logger::Logger_var m_pInterfaceLogger;// object reference on Logger server. int isInitialized; }; #define GLogger SALOME_Trace::Instance() #endif // !defined(AFX_LOGGER_H__96F2A3AB_F6F8_11D6_BFA6_000476A0958C__INCLUDED_) salome-kernel-6.5.0/src/Logger/SALOME_Trace.py000077500000000000000000000055111177004724000207450ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Logger : CORBA server managing trace output # File : SALOME_Trace.py # Module : SALOME # import sys import CosNaming from omniORB import CORBA import SALOME_Logger import time import os trace="local" if (os.environ.has_key("SALOME_trace")): if (os.environ["SALOME_trace"] == "with_logger"): trace="logger" class SALOME_Trace : def __init__(self): self.m_pInterfaceLogger = None if trace=="logger": ok = 0 steps = 40 while steps > 0 and ok == 0: try: orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID) theObj = orb.resolve_initial_references("NameService") inc = theObj._narrow(CosNaming.NamingContext) name = [CosNaming.NameComponent("Logger","")] obj = inc.resolve(name); self.m_pInterfaceLogger = obj._narrow(SALOME_Logger.Logger) if not self.m_pInterfaceLogger is None: ok = 1 except CosNaming.NamingContext.NotFound, e : if steps == 1: print "Caught exception: Naming Service can't found Logger" except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): if steps == 1: print "Caught CORBA::SystemException CommFailure" except CORBA.SystemException, e: if steps == 1: print "Caught CORBA::SystemException." except CORBA.Exception, e: if steps == 1: print "Caught CORBA::Exception." except Exception, e: if steps == 1: print "Caught unknown exception." time.sleep(0.25) steps = steps - 1 def putMessage ( self, LogMsg ) : if (CORBA.is_nil(self.m_pInterfaceLogger)): print LogMsg; else: self.m_pInterfaceLogger.putMessage (LogMsg) salome-kernel-6.5.0/src/Logger/Test/000077500000000000000000000000001177004724000172075ustar00rootroot00000000000000salome-kernel-6.5.0/src/Logger/Test/Makefile.am000077500000000000000000000027241177004724000212530ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Logger: CORBA Logger Server # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Logger/Test/Makefile.am,v 1.5.2.1.20.2.12.1 2012-04-12 14:05:17 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # Executable scripts to be installed dist_salomescript_PYTHON = TestKiller.py salome-kernel-6.5.0/src/Logger/Test/Makefile.in000077500000000000000000000544721177004724000212730ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/Logger/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomescriptdir)" py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # Logger: CORBA Logger Server # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Logger/Test/Makefile.am,v 1.5.2.1.20.2.12.1 2012-04-12 14:05:17 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # Executable scripts to be installed dist_salomescript_PYTHON = TestKiller.py all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Logger/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Logger/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: for dir in "$(DESTDIR)$(salomescriptdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salomescriptPYTHON .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am \ uninstall-dist_salomescriptPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Logger/Test/TestKiller.py000077500000000000000000000041341177004724000216500ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands def killNamingService(): """ kills omniORB4 Naming Service on local machine. Selects process corresponding to the port used in $OMNIORB_CONFIG file. Works only with a single line $OMNIORB_CONFIG like InitRef = NameService=corbaname::: """ fic=os.environ['OMNIORB_CONFIG'] f=open(fic,'r') line=f.readline() f.close() port=string.split(line,':')[-1][0:4] command='ps -eo pid,command | grep "omniNames -start '+str(port)+'"' pid=string.split(commands.getoutput(command))[0] os.kill(int(pid),signal.SIGKILL) def killProcess(process_id): """ kills process on local machine, given a dictionary of running process generated by runSalome.Server() class and derived, (method run). kills also local Naming server. """ for pid, cmd in process_id.items(): print "stop process %s : %s"% (pid, cmd[0]) try: os.kill(int(pid),signal.SIGKILL) except: print " ---- process %s : %s inexistant"% (pid, cmd[0]) pass del process_id[pid] pass killNamingService() salome-kernel-6.5.0/src/MPIContainer/000077500000000000000000000000001177004724000173415ustar00rootroot00000000000000salome-kernel-6.5.0/src/MPIContainer/MPIContainer_i.cxx000077500000000000000000000473071177004724000227030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : MPIContainer_i.cxx // Module : SALOME #include #include #include #include "Basics_Utils.hxx" #include "SALOME_Component_i.hxx" #include "MPIContainer_i.hxx" #include "SALOME_NamingService.hxx" #include "Utils_SINGLETON.hxx" #include "OpUtil.hxx" #include "utilities.h" #include #include #include // must be before Python.h ! #include #include "Container_init_python.hxx" // L'appel au registry SALOME ne se fait que pour le process 0 Engines_MPIContainer_i::Engines_MPIContainer_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char * containerName, int argc, char *argv[]) : Engines_Container_i(orb,poa,containerName,argc,argv,false) { _id = _poa->activate_object(this); CORBA::Object_var obj=_poa->id_to_reference(*_id); Engines::Container_var pCont = Engines::Container::_narrow(obj); _remove_ref(); if(_numproc==0){ _NS = new SALOME_NamingService(); _NS->init_orb( CORBA::ORB::_duplicate(_orb) ) ; std::string hostname = Kernel_Utils::GetHostname(); _containerName = _NS->BuildContainerNameForNS(containerName,hostname.c_str()); SCRUTE(_containerName); _NS->Register(pCont, _containerName.c_str()); } // Root recupere les ior des container des autre process Engines::MPIObject_var pobj = POA_Engines::MPIContainer::_this(); BCastIOR(_orb,pobj,true); } Engines_MPIContainer_i::Engines_MPIContainer_i() : Engines_Container_i() { } Engines_MPIContainer_i::~Engines_MPIContainer_i(void) { MESSAGE("[" << _numproc << "] Engines_MPIContainer_i::~Engines_MPIContainer_i()"); } // Load component void Engines_MPIContainer_i::Shutdown() { int ip; MESSAGE("[" << _numproc << "] shutdown of MPI Corba Server"); if( _numproc == 0 ){ _NS->Destroy_FullDirectory(_containerName.c_str()); _NS->Destroy_Name(_containerName.c_str()); for(ip= 1;ip<_nbproc;ip++) (Engines::MPIContainer::_narrow((*_tior)[ip]))->Shutdown(); } std::map::iterator itm; for (itm = _listInstances_map.begin(); itm != _listInstances_map.end(); itm++) { try { itm->second->destroy(); } catch(const CORBA::Exception& e) { // ignore this entry and continue } catch(...) { // ignore this entry and continue } } _orb->shutdown(0); } // Load a component library bool Engines_MPIContainer_i::load_component_Library(const char* componentName, CORBA::String_out reason) { reason=CORBA::string_dup(""); pthread_t *th; if(_numproc == 0){ th = new pthread_t[_nbproc]; for(int ip=1;ip<_nbproc;ip++){ thread_st *st = new thread_st; st->ip = ip; st->tior = _tior; st->compoName = componentName; pthread_create(&(th[ip]),NULL,th_loadcomponentlibrary,(void*)st); } } bool ret = Lload_component_Library(componentName); if(_numproc == 0){ for(int ip=1;ip<_nbproc;ip++) pthread_join(th[ip],NULL); delete th; } return ret; } bool Engines_MPIContainer_i::Lload_component_Library(const char* componentName) { std::string aCompName = componentName; // --- try dlopen C++ component std::string impl_name = std::string ("lib") + aCompName + std::string("Engine.so"); _numInstanceMutex.lock(); // lock to be alone // (see decInstanceCnt, finalize_removal)) if (_toRemove_map[impl_name]) _toRemove_map.erase(impl_name); if (_library_map[impl_name]) { MESSAGE("[" << _numproc << "] Library " << impl_name << " already loaded"); _numInstanceMutex.unlock(); return true; } void* handle; handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ; if ( handle ) { _library_map[impl_name] = handle; _numInstanceMutex.unlock(); MESSAGE("[" << _numproc << "] Library " << impl_name << " loaded"); return true; } else { MESSAGE("[" << _numproc << "] Can't load shared library : " << impl_name); MESSAGE("[" << _numproc << "] error dlopen: " << dlerror()); } _numInstanceMutex.unlock(); // --- try import Python component INFOS("[" << _numproc << "] try import Python component "<ip = ip; st->tior = _tior; st->compoName = componentName; st->studyId = studyId; pthread_create(&(th[ip]),NULL,th_createcomponentinstance,(void*)st); } } Engines::EngineComponent_ptr cptr = Lcreate_component_instance(componentName,studyId); if(_numproc == 0){ for(int ip=1;ip<_nbproc;ip++) pthread_join(th[ip],NULL); delete th; } return cptr; } Engines::EngineComponent_ptr Engines_MPIContainer_i::Lcreate_component_instance( const char* genericRegisterName, CORBA::Long studyId) { if (studyId < 0) { INFOS("studyId must be > 0 for mono study instance, =0 for multiStudy"); return Engines::EngineComponent::_nil() ; } Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; Engines::MPIObject_var pobj; std::string aCompName = genericRegisterName; if (_library_map[aCompName]) { // Python component if (_isSupervContainer) { INFOS("Supervision Container does not support Python Component Engines"); return Engines::EngineComponent::_nil(); } _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; std::string instanceName = aCompName + "_inst_" + aNumI ; std::string component_registerName = _containerName + "/" + instanceName; Py_ACQUIRE_NEW_THREAD; PyObject *mainmod = PyImport_AddModule((char*)"__main__"); PyObject *globals = PyModule_GetDict(mainmod); PyObject *pyCont = PyDict_GetItemString(globals, "pyCont"); PyObject *result = PyObject_CallMethod(pyCont, (char*)"create_component_instance", (char*)"ssl", aCompName.c_str(), instanceName.c_str(), studyId); const char *ior; const char *error; PyArg_ParseTuple(result,"ss", &ior, &error); std::string iors = ior; SCRUTE(iors); Py_RELEASE_NEW_THREAD; CORBA::Object_var obj = _orb->string_to_object(iors.c_str()); iobject = Engines::EngineComponent::_narrow( obj ) ; pobj = Engines::MPIObject::_narrow(obj) ; if( _numproc == 0 ) _NS->Register(iobject, component_registerName.c_str()) ; // Root recupere les ior des composants des autre process BCastIOR(_orb,pobj,false); return iobject._retn(); } //--- try C++ std::string impl_name = std::string ("lib") + genericRegisterName +std::string("Engine.so"); if (_library_map.count(impl_name) != 0) // C++ component { void* handle = _library_map[impl_name]; iobject = createMPIInstance(genericRegisterName, handle, studyId); return iobject._retn(); } return Engines::EngineComponent::_nil() ; } Engines::EngineComponent_ptr Engines_MPIContainer_i::createMPIInstance(std::string genericRegisterName, void *handle, int studyId) { Engines::EngineComponent_var iobject; Engines::MPIObject_var pobj; // --- find the factory std::string aGenRegisterName = genericRegisterName; std::string factory_name = aGenRegisterName + std::string("Engine_factory"); typedef PortableServer::ObjectId * (*MPIFACTORY_FUNCTION) (CORBA::ORB_ptr, PortableServer::POA_ptr, PortableServer::ObjectId *, const char *, const char *) ; dlerror(); MPIFACTORY_FUNCTION MPIComponent_factory = (MPIFACTORY_FUNCTION) dlsym(handle, factory_name.c_str()); if ( !MPIComponent_factory ) { INFOS( "[" << _numproc << "] Can't resolve symbol: " + factory_name ); SCRUTE( dlerror() ); pobj = Engines::MPIObject::_nil(); BCastIOR(_orb,pobj,false); return Engines::EngineComponent::_nil(); } // --- create instance iobject = Engines::EngineComponent::_nil() ; try { _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; std::string instanceName = aGenRegisterName + "_inst_" + aNumI ; std::string component_registerName = _containerName + "/" + instanceName; // --- Instanciate required CORBA object PortableServer::ObjectId *id ; //not owner, do not delete (nore use var) id = (MPIComponent_factory) ( _orb, _poa, _id, instanceName.c_str(), aGenRegisterName.c_str() ) ; // --- get reference & servant from id CORBA::Object_var obj = _poa->id_to_reference(*id); iobject = Engines::EngineComponent::_narrow( obj ) ; pobj = Engines::MPIObject::_narrow(obj) ; Engines_Component_i *servant = dynamic_cast(_poa->reference_to_servant(iobject)); ASSERT(servant); //SCRUTE(servant->pd_refCount); servant->_remove_ref(); // compensate previous id_to_reference //SCRUTE(servant->pd_refCount); _listInstances_map[instanceName] = iobject; _cntInstances_map[aGenRegisterName] += 1; //SCRUTE(servant->pd_refCount); #ifndef _DEBUG_ servant->setStudyId(studyId); #else bool ret_studyId = servant->setStudyId(studyId); ASSERT(ret_studyId); #endif // --- register the engine under the name // containerName(.dir)/instanceName(.object) if( _numproc == 0 ){ _NS->Register( iobject , component_registerName.c_str() ) ; MESSAGE( component_registerName.c_str() << " bound" ) ; } // Root recupere les ior des composants des autre process BCastIOR(_orb,pobj,false); } catch(const std::exception &ex){ INFOS( ex.what() ) ; return Engines::EngineComponent::_nil(); } return iobject._retn(); } // Load component Engines::EngineComponent_ptr Engines_MPIContainer_i::load_impl(const char* nameToRegister, const char* componentName) { pthread_t *th; if(_numproc == 0){ th = new pthread_t[_nbproc]; for(int ip=1;ip<_nbproc;ip++){ thread_st *st = new thread_st; st->ip = ip; st->tior = _tior; st->nameToRegister = nameToRegister; st->compoName = componentName; pthread_create(&(th[ip]),NULL,th_loadimpl,(void*)st); } } Engines::EngineComponent_ptr cptr = Lload_impl(nameToRegister,componentName); if(_numproc == 0){ for(int ip=1;ip<_nbproc;ip++) pthread_join(th[ip],NULL); delete th; } return cptr; } // Load component Engines::EngineComponent_ptr Engines_MPIContainer_i::Lload_impl( const char* nameToRegister, const char* componentName) { Engines::EngineComponent_var iobject; Engines::MPIObject_var pobj; char cproc[4]; sprintf(cproc,"_%d",_numproc); BEGIN_OF("[" << _numproc << "] MPIContainer_i::Lload_impl"); _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; char _aNumI[12]; sprintf(_aNumI,"%d",_numInstance) ; std::string _impl_name = componentName; std::string _nameToRegister = nameToRegister; std::string instanceName = _nameToRegister + "_inst_" + _aNumI + cproc; MESSAGE("[" << _numproc << "] instanceName=" << instanceName); std::string absolute_impl_name(_impl_name); MESSAGE("[" << _numproc << "] absolute_impl_name=" << absolute_impl_name); void * handle = dlopen(absolute_impl_name.c_str(), RTLD_LAZY); if(!handle){ INFOS("[" << _numproc << "] Can't load shared library : " << absolute_impl_name); INFOS("[" << _numproc << "] error dlopen: " << dlerror()); return Engines::EngineComponent::_nil() ; } std::string factory_name = _nameToRegister + std::string("Engine_factory"); MESSAGE("[" << _numproc << "] factory_name=" << factory_name) ; dlerror(); PortableServer::ObjectId * (*MPIComponent_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){ // Try to load a sequential component MESSAGE("[" << _numproc << "] Try to load a sequential component"); _numInstanceMutex.unlock() ; iobject = Engines_Container_i::load_impl(nameToRegister,componentName); if( CORBA::is_nil(iobject) ) return Engines::EngineComponent::_duplicate(iobject); } else{ // Instanciation du composant parallele MESSAGE("[" << _numproc << "] Try to load a parallel component"); PortableServer::ObjectId * id = (MPIComponent_factory) (_orb, _poa, _id, instanceName.c_str(), _nameToRegister.c_str()); // get reference from id CORBA::Object_var o = _poa->id_to_reference(*id); pobj = Engines::MPIObject::_narrow(o) ; iobject = Engines::EngineComponent::_narrow(o) ; } if( _numproc == 0 ){ // utiliser + tard le registry ici : // register the engine under the name containerName.dir/nameToRegister.object std::string component_registerName = _containerName + "/" + _nameToRegister; _NS->Register(iobject, component_registerName.c_str()) ; } _numInstanceMutex.unlock() ; // Root recupere les ior des composants des autre process BCastIOR(_orb,pobj,false); END_OF("[" <<_numproc << "] MPIContainer_i::Lload_impl"); return Engines::EngineComponent::_duplicate(iobject); } void Engines_MPIContainer_i::remove_impl(Engines::EngineComponent_ptr component_i) { Engines::MPIObject_ptr pcptr; Engines::MPIObject_ptr spcptr; pthread_t *th; if(_numproc == 0){ pcptr = (Engines::MPIObject_ptr)component_i; th = new pthread_t[_nbproc]; for(int ip=1;ip<_nbproc;ip++){ thread_st *st = new thread_st; st->ip = ip; st->tior = _tior; spcptr = Engines::MPIObject::_narrow((*(pcptr->tior()))[ip]); st->cptr = (Engines::EngineComponent_ptr)spcptr; pthread_create(&(th[ip]),NULL,th_removeimpl,(void*)st); } } ASSERT(! CORBA::is_nil(component_i)); std::string instanceName = component_i->instanceName() ; MESSAGE("[" << _numproc << "] unload component " << instanceName); _numInstanceMutex.lock() ; // lock on the remove on handle_map _listInstances_map.erase(instanceName); _numInstanceMutex.unlock() ; component_i->destroy() ; if(_numproc == 0) _NS->Destroy_Name(instanceName.c_str()); if(_numproc == 0){ for(int ip=1;ip<_nbproc;ip++) pthread_join(th[ip],NULL); delete th; } } void Engines_MPIContainer_i::finalize_removal() { pthread_t *th; if(_numproc == 0){ th = new pthread_t[_nbproc]; for(int ip=1;ip<_nbproc;ip++){ thread_st *st = new thread_st; st->ip = ip; st->tior = _tior; pthread_create(&(th[ip]),NULL,th_finalizeremoval,(void*)st); } } _numInstanceMutex.lock(); // lock to be alone // (see decInstanceCnt, load_component_Library) std::map::iterator ith; for (ith = _toRemove_map.begin(); ith != _toRemove_map.end(); ith++) { void *handle = (*ith).second; std::string impl_name= (*ith).first; if (handle) { SCRUTE(handle); SCRUTE(impl_name); // dlclose(handle); // SALOME unstable after ... // _library_map.erase(impl_name); } } _toRemove_map.clear(); _numInstanceMutex.unlock(); if(_numproc == 0){ for(int ip=1;ip<_nbproc;ip++) pthread_join(th[ip],NULL); delete th; } } void *th_loadcomponentlibrary(void *s) { thread_st *st = (thread_st*)s; char* reason; (Engines::MPIContainer::_narrow((*(st->tior))[st->ip]))->load_component_Library(st->compoName.c_str(),reason); CORBA::string_free(reason); return NULL; } void *th_createcomponentinstance(void *s) { thread_st *st = (thread_st*)s; (Engines::MPIContainer::_narrow((*(st->tior))[st->ip]))->create_component_instance(st->compoName.c_str(),st->studyId); return NULL; } void *th_loadimpl(void *s) { thread_st *st = (thread_st*)s; (Engines::MPIContainer::_narrow((*(st->tior))[st->ip]))->load_impl(st->nameToRegister.c_str(),st->compoName.c_str()); return NULL; } void *th_removeimpl(void *s) { thread_st *st = (thread_st*)s; (Engines::MPIContainer::_narrow((*(st->tior))[st->ip]))->remove_impl(st->cptr); return NULL; } void *th_finalizeremoval(void *s) { thread_st *st = (thread_st*)s; (Engines::MPIContainer::_narrow((*(st->tior))[st->ip]))->finalize_removal(); return NULL; } salome-kernel-6.5.0/src/MPIContainer/MPIContainer_i.hxx000077500000000000000000000070321177004724000226770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : MPIContainer_i.hxx // Module : SALOME #ifndef _SALOME_PCONTAINER_ #define _SALOME_PCONTAINER_ #include #include CORBA_SERVER_HEADER(SALOME_MPIContainer) #include "SALOME_Container_i.hxx" #include "MPIObject_i.hxx" void * th_loadcomponentlibrary(void *st); void * th_createcomponentinstance(void *st); void * th_loadimpl(void *st); void * th_removeimpl(void *st); void * th_finalizeremoval(void *st); typedef struct { int ip; Engines::IORTab* tior; std::string compoName; std::string nameToRegister; long studyId; Engines::EngineComponent_ptr cptr; } thread_st; class Engines_MPIContainer_i : public POA_Engines::MPIContainer, public Engines_Container_i, public MPIObject_i { public: // Constructor Engines_MPIContainer_i( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char * containerName, int argc, char *argv[]); Engines_MPIContainer_i(); // Destructor ~Engines_MPIContainer_i(); // shutdown corba server void Shutdown(); // Load a component library // synchronous version for process 0 bool load_component_Library(const char* componentName, CORBA::String_out reason); // Create an instance of component // synchronous version for process 0 virtual Engines::EngineComponent_ptr create_component_instance_env( const char* componentName, CORBA::Long studyId, // 0 for multiStudy const Engines::FieldsDict& env, CORBA::String_out reason); // Load a component in current MPI container // synchronous version for process 0 Engines::EngineComponent_ptr load_impl(const char* nameToRegister, const char* componentName); // Unload a component from current MPI container // synchronous version for process 0 void remove_impl(Engines::EngineComponent_ptr component_i); // synchronous version for process 0 void finalize_removal(); private: bool Lload_component_Library(const char* componentName); Engines::EngineComponent_ptr Lcreate_component_instance( const char* componentName, CORBA::Long studyId); // 0 for multiStudy Engines::EngineComponent_ptr Lload_impl(const char* nameToRegister, const char* componentName); Engines::EngineComponent_ptr createMPIInstance(std::string genericRegisterName, void *handle, int studyId); }; #endif salome-kernel-6.5.0/src/MPIContainer/MPIObject_i.cxx000077500000000000000000000177601177004724000221670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME MPIContainer : implemenation of container based on MPI libraries // File : MPIObject_i.cxx // Module : SALOME // #include "MPIObject_i.hxx" #include "utilities.h" #include "Utils_SALOME_Exception.hxx" #define TIMEOUT 5 MPIObject_i::MPIObject_i() { MPI_Comm_size( MPI_COMM_WORLD, &_nbproc ); MPI_Comm_rank( MPI_COMM_WORLD, &_numproc ); _tior=NULL; } MPIObject_i::~MPIObject_i() { if(_tior) delete _tior; } Engines::IORTab* MPIObject_i::tior() { Engines::IORTab_var tior = new Engines::IORTab; tior->length(_tior->length()); for(unsigned int ip=0;iplength();ip++) tior[ip] = (*_tior)[ip]; return tior._retn(); }; void MPIObject_i::tior(const Engines::IORTab& ior) { _tior = new Engines::IORTab; _tior->length(ior.length()); for(unsigned int ip=0;iplength(_nbproc); iort[0] = pobj; // Process 0 recupere les ior de l'object sur les autres process for(ip=1;ip<_nbproc;ip++) { err = MPI_Recv(&n,1,MPI_INT,ip,ip,MPI_COMM_WORLD,&status); if(err) { msg << "[" << _numproc << "] MPI_RECV error"; throw SALOME_Exception(msg.str().c_str()); } // Allocation de la chaine de longueur n ior = new char[n]; err = MPI_Recv(ior,n,MPI_CHAR,ip,2*ip,MPI_COMM_WORLD,&status); if(err) { msg << "[" << _numproc << "] MPI_RECV error"; throw SALOME_Exception(msg.str().c_str()); } iort[ip] = orb->string_to_object(ior); delete [] ior; if(CORBA::is_nil(iort[ip])) { msg << "[" << ip << "] MPI Component not loaded"; throw SALOME_Exception(msg.str().c_str()); } } // On donne le tableau des ior a l'objet Corba du process 0 if( amiCont ) tior(*(iort._retn())); else pobj->tior(*(iort._retn())); } else { // Conversion IOR vers string ior = orb->object_to_string(pobj); n = strlen(ior) + 1; // On envoie l'IOR au process 0 err = MPI_Send(&n,1,MPI_INT,0,_numproc,MPI_COMM_WORLD); if(err) { msg << "[" << _numproc << "] MPI_SEND error"; throw SALOME_Exception(msg.str().c_str()); } err = MPI_Send(ior,n,MPI_CHAR,0,2*_numproc,MPI_COMM_WORLD); if(err) { msg << "[" << _numproc << "] MPI_SEND error"; throw SALOME_Exception(msg.str().c_str()); } CORBA::string_free(ior); } } #ifdef HAVE_MPI2 void MPIObject_i::remoteMPI2Connect(std::string service) { int i; char port_name[MPI_MAX_PORT_NAME]; char port_name_clt[MPI_MAX_PORT_NAME]; std::ostringstream msg; if( service.size() == 0 ) { msg << "[" << _numproc << "] You have to give a service name !"; throw SALOME_Exception(msg.str().c_str()); } if( _srv.find(service) != _srv.end() ) { msg << "[" << _numproc << "] service " << service << " already exist !"; throw SALOME_Exception(msg.str().c_str()); } _srv[service] = false; MPI_Barrier(MPI_COMM_WORLD); MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN); if( _numproc == 0 ) { /* rank 0 try to be a server. If service is already published, try to be a cient */ MPI_Open_port(MPI_INFO_NULL, port_name); if ( MPI_Lookup_name((char*)service.c_str(), MPI_INFO_NULL, port_name_clt) == MPI_SUCCESS ) { MESSAGE("[" << _numproc << "] I get the connection with " << service << " at " << port_name_clt << std::endl); MPI_Close_port( port_name ); } else if ( MPI_Publish_name((char*)service.c_str(), MPI_INFO_NULL, port_name) == MPI_SUCCESS ) { _srv[service] = true; _port_name[service] = port_name; MESSAGE("[" << _numproc << "] service " << service << " available at " << port_name << std::endl); } else if ( MPI_Lookup_name((char*)service.c_str(), MPI_INFO_NULL, port_name_clt) == MPI_SUCCESS ) { MESSAGE("[" << _numproc << "] I get the connection with " << service << " at " << port_name_clt << std::endl); MPI_Close_port( port_name ); } else { msg << "[" << _numproc << "] Error on connection with " << service << " at " << port_name_clt; throw SALOME_Exception(msg.str().c_str()); } } else { i=0; /* Waiting rank 0 publish name and try to be a client */ while ( i != TIMEOUT ) { sleep(1); if ( MPI_Lookup_name((char*)service.c_str(), MPI_INFO_NULL, port_name_clt) == MPI_SUCCESS ) { MESSAGE("[" << _numproc << "] I get the connection with " << service << " at " << port_name_clt << std::endl); break; } i++; } if(i==TIMEOUT) { msg << "[" << _numproc << "] Error on connection with " << service << " at " << port_name_clt; throw SALOME_Exception(msg.str().c_str()); } } MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL); /* If rank 0 is server, all processes call MPI_Comm_accept */ /* If rank 0 is not server, all processes call MPI_Comm_connect */ int srv = (int)_srv[service]; MPI_Bcast(&srv,1,MPI_INT,0,MPI_COMM_WORLD); _srv[service] = (bool)srv; if ( _srv[service] ) MPI_Comm_accept( port_name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &(_icom[service]) ); else MPI_Comm_connect(port_name_clt, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &(_icom[service]) ); /* create global communicator: servers have low index in global communicator*/ MPI_Intercomm_merge(_icom[service],!_srv[service],&(_gcom[service])); /* only rank 0 can be server for unpublish name */ if(_numproc != 0) _srv[service] = false; } void MPIObject_i::remoteMPI2Disconnect(std::string service) { std::ostringstream msg; if( service.size() == 0 ) { msg << "[" << _numproc << "] You have to give a service name !"; throw SALOME_Exception(msg.str().c_str()); } if( _srv.find(service) == _srv.end() ) { msg << "[" << _numproc << "] service " << service << " don't exist !"; throw SALOME_Exception(msg.str().c_str()); } MPI_Comm_disconnect( &(_gcom[service]) ); if ( _srv[service] ) { char port_name[MPI_MAX_PORT_NAME]; strcpy(port_name,_port_name[service].c_str()); MPI_Unpublish_name((char*)service.c_str(), MPI_INFO_NULL, port_name); MESSAGE("[" << _numproc << "] " << service << ": close port " << _port_name[service] << std::endl); MPI_Close_port( port_name ); _port_name.erase(service); } _gcom.erase(service); _icom.erase(service); _srv.erase(service); } #endif salome-kernel-6.5.0/src/MPIContainer/MPIObject_i.hxx000077500000000000000000000041211177004724000221570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME MPIContainer : implemenation of container based on MPI libraries // File : MPIObject_i.hxx // Module : SALOME // #ifndef _SALOME_POBJECT_I_H_ #define _SALOME_POBJECT_I_H_ #include #include #include #include #include CORBA_SERVER_HEADER(SALOME_MPIObject) class MPIObject_i: public virtual POA_Engines::MPIObject { public: MPIObject_i(); ~MPIObject_i(); Engines::IORTab* tior(); void tior(const Engines::IORTab& ior); protected: // Numero du processus int _numproc; // Nombre de processus int _nbproc; // IOR des objets paralleles sur tous les process mpi Engines::IORTab* _tior; // Echange des IOR de l'objet entre process void BCastIOR(CORBA::ORB_ptr orb,Engines::MPIObject_ptr pobj,bool amiCont); #ifdef HAVE_MPI2 // MPI2 connection void remoteMPI2Connect(std::string service); // MPI2 disconnection void remoteMPI2Disconnect(std::string service); #endif protected: std::map _gcom; private: std::map _icom; std::map _srv; std::map _port_name; } ; #endif salome-kernel-6.5.0/src/MPIContainer/Makefile.am000077500000000000000000000077401177004724000214100ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME MPIContainer : implemenation of container based on MPI libraries # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/MPIContainer/Makefile.am,v 1.5.2.1.14.5.12.1 2012-04-12 14:05:17 vsr Exp $ # =============================================================== # _CS_gbo Caution !! This package may not work. I didn't test it # because no mpi soft is installed on my computer. To be checked. # =============================================================== # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ MPIObject_i.hxx \ MPIContainer_i.hxx # These files are executable scripts dist_salomescript_SCRIPTS = \ launch_testMPI2.csh # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. # _CS_gbo See wether it can be shared by all packages in a common include!! COMMON_CPPFLAGS=\ @PYTHON_INCLUDES@ \ @MPI_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../Container \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../Container/libSalomeContainer.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeMPIContainer.la libSalomeMPIContainer_la_SOURCES = MPIObject_i.cxx MPIContainer_i.cxx libSalomeMPIContainer_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeMPIContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeMPIContainer_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = SALOME_MPIContainer testMPI2 SALOME_MPIContainer_SOURCES = SALOME_MPIContainer.cxx SALOME_MPIContainer_LDADD = libSalomeMPIContainer.la $(COMMON_LIBS) @PYTHON_LIBS@ @MPI_LIBS@ SALOME_MPIContainer_CPPFLAGS = $(COMMON_CPPFLAGS) testMPI2_SOURCES = testMPI2.cxx testMPI2_LDADD = @MPI_LIBS@ testMPI2_CPPFLAGS = @MPI_INCLUDES@ salome-kernel-6.5.0/src/MPIContainer/Makefile.in000077500000000000000000001232171177004724000214170ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_SCRIPTS) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOME_MPIContainer$(EXEEXT) testMPI2$(EXEEXT) subdir = src/MPIContainer ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../Container/libSalomeContainer.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSalomeMPIContainer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSalomeMPIContainer_la_OBJECTS = \ libSalomeMPIContainer_la-MPIObject_i.lo \ libSalomeMPIContainer_la-MPIContainer_i.lo libSalomeMPIContainer_la_OBJECTS = \ $(am_libSalomeMPIContainer_la_OBJECTS) libSalomeMPIContainer_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libSalomeMPIContainer_la_LDFLAGS) \ $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_SALOME_MPIContainer_OBJECTS = \ SALOME_MPIContainer-SALOME_MPIContainer.$(OBJEXT) SALOME_MPIContainer_OBJECTS = $(am_SALOME_MPIContainer_OBJECTS) SALOME_MPIContainer_DEPENDENCIES = libSalomeMPIContainer.la \ $(am__DEPENDENCIES_1) am_testMPI2_OBJECTS = testMPI2-testMPI2.$(OBJEXT) testMPI2_OBJECTS = $(am_testMPI2_OBJECTS) testMPI2_DEPENDENCIES = SCRIPTS = $(dist_salomescript_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeMPIContainer_la_SOURCES) \ $(SALOME_MPIContainer_SOURCES) $(testMPI2_SOURCES) DIST_SOURCES = $(libSalomeMPIContainer_la_SOURCES) \ $(SALOME_MPIContainer_SOURCES) $(testMPI2_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME MPIContainer : implemenation of container based on MPI libraries # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/MPIContainer/Makefile.am,v 1.5.2.1.14.5.12.1 2012-04-12 14:05:17 vsr Exp $ # =============================================================== # _CS_gbo Caution !! This package may not work. I didn't test it # because no mpi soft is installed on my computer. To be checked. # =============================================================== # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ MPIObject_i.hxx \ MPIContainer_i.hxx # These files are executable scripts dist_salomescript_SCRIPTS = \ launch_testMPI2.csh # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. # _CS_gbo See wether it can be shared by all packages in a common include!! COMMON_CPPFLAGS = \ @PYTHON_INCLUDES@ \ @MPI_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../Container \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../Container/libSalomeContainer.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeMPIContainer.la libSalomeMPIContainer_la_SOURCES = MPIObject_i.cxx MPIContainer_i.cxx libSalomeMPIContainer_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeMPIContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeMPIContainer_la_LIBADD = $(COMMON_LIBS) SALOME_MPIContainer_SOURCES = SALOME_MPIContainer.cxx SALOME_MPIContainer_LDADD = libSalomeMPIContainer.la $(COMMON_LIBS) @PYTHON_LIBS@ @MPI_LIBS@ SALOME_MPIContainer_CPPFLAGS = $(COMMON_CPPFLAGS) testMPI2_SOURCES = testMPI2.cxx testMPI2_LDADD = @MPI_LIBS@ testMPI2_CPPFLAGS = @MPI_INCLUDES@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/MPIContainer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/MPIContainer/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeMPIContainer.la: $(libSalomeMPIContainer_la_OBJECTS) $(libSalomeMPIContainer_la_DEPENDENCIES) $(libSalomeMPIContainer_la_LINK) -rpath $(libdir) $(libSalomeMPIContainer_la_OBJECTS) $(libSalomeMPIContainer_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_MPIContainer$(EXEEXT): $(SALOME_MPIContainer_OBJECTS) $(SALOME_MPIContainer_DEPENDENCIES) @rm -f SALOME_MPIContainer$(EXEEXT) $(CXXLINK) $(SALOME_MPIContainer_OBJECTS) $(SALOME_MPIContainer_LDADD) $(LIBS) testMPI2$(EXEEXT): $(testMPI2_OBJECTS) $(testMPI2_DEPENDENCIES) @rm -f testMPI2$(EXEEXT) $(CXXLINK) $(testMPI2_OBJECTS) $(testMPI2_LDADD) $(LIBS) install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(salomescriptdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(salomescriptdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_salomescriptSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_SCRIPTS)'; test -n "$(salomescriptdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeMPIContainer_la-MPIContainer_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeMPIContainer_la-MPIObject_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testMPI2-testMPI2.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeMPIContainer_la-MPIObject_i.lo: MPIObject_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeMPIContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeMPIContainer_la-MPIObject_i.lo -MD -MP -MF $(DEPDIR)/libSalomeMPIContainer_la-MPIObject_i.Tpo -c -o libSalomeMPIContainer_la-MPIObject_i.lo `test -f 'MPIObject_i.cxx' || echo '$(srcdir)/'`MPIObject_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeMPIContainer_la-MPIObject_i.Tpo $(DEPDIR)/libSalomeMPIContainer_la-MPIObject_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MPIObject_i.cxx' object='libSalomeMPIContainer_la-MPIObject_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeMPIContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeMPIContainer_la-MPIObject_i.lo `test -f 'MPIObject_i.cxx' || echo '$(srcdir)/'`MPIObject_i.cxx libSalomeMPIContainer_la-MPIContainer_i.lo: MPIContainer_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeMPIContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeMPIContainer_la-MPIContainer_i.lo -MD -MP -MF $(DEPDIR)/libSalomeMPIContainer_la-MPIContainer_i.Tpo -c -o libSalomeMPIContainer_la-MPIContainer_i.lo `test -f 'MPIContainer_i.cxx' || echo '$(srcdir)/'`MPIContainer_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeMPIContainer_la-MPIContainer_i.Tpo $(DEPDIR)/libSalomeMPIContainer_la-MPIContainer_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MPIContainer_i.cxx' object='libSalomeMPIContainer_la-MPIContainer_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeMPIContainer_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeMPIContainer_la-MPIContainer_i.lo `test -f 'MPIContainer_i.cxx' || echo '$(srcdir)/'`MPIContainer_i.cxx SALOME_MPIContainer-SALOME_MPIContainer.o: SALOME_MPIContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_MPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_MPIContainer-SALOME_MPIContainer.o -MD -MP -MF $(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Tpo -c -o SALOME_MPIContainer-SALOME_MPIContainer.o `test -f 'SALOME_MPIContainer.cxx' || echo '$(srcdir)/'`SALOME_MPIContainer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Tpo $(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_MPIContainer.cxx' object='SALOME_MPIContainer-SALOME_MPIContainer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_MPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_MPIContainer-SALOME_MPIContainer.o `test -f 'SALOME_MPIContainer.cxx' || echo '$(srcdir)/'`SALOME_MPIContainer.cxx SALOME_MPIContainer-SALOME_MPIContainer.obj: SALOME_MPIContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_MPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_MPIContainer-SALOME_MPIContainer.obj -MD -MP -MF $(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Tpo -c -o SALOME_MPIContainer-SALOME_MPIContainer.obj `if test -f 'SALOME_MPIContainer.cxx'; then $(CYGPATH_W) 'SALOME_MPIContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_MPIContainer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Tpo $(DEPDIR)/SALOME_MPIContainer-SALOME_MPIContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_MPIContainer.cxx' object='SALOME_MPIContainer-SALOME_MPIContainer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_MPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_MPIContainer-SALOME_MPIContainer.obj `if test -f 'SALOME_MPIContainer.cxx'; then $(CYGPATH_W) 'SALOME_MPIContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_MPIContainer.cxx'; fi` testMPI2-testMPI2.o: testMPI2.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testMPI2_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testMPI2-testMPI2.o -MD -MP -MF $(DEPDIR)/testMPI2-testMPI2.Tpo -c -o testMPI2-testMPI2.o `test -f 'testMPI2.cxx' || echo '$(srcdir)/'`testMPI2.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/testMPI2-testMPI2.Tpo $(DEPDIR)/testMPI2-testMPI2.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='testMPI2.cxx' object='testMPI2-testMPI2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testMPI2_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testMPI2-testMPI2.o `test -f 'testMPI2.cxx' || echo '$(srcdir)/'`testMPI2.cxx testMPI2-testMPI2.obj: testMPI2.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testMPI2_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testMPI2-testMPI2.obj -MD -MP -MF $(DEPDIR)/testMPI2-testMPI2.Tpo -c -o testMPI2-testMPI2.obj `if test -f 'testMPI2.cxx'; then $(CYGPATH_W) 'testMPI2.cxx'; else $(CYGPATH_W) '$(srcdir)/testMPI2.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/testMPI2-testMPI2.Tpo $(DEPDIR)/testMPI2-testMPI2.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='testMPI2.cxx' object='testMPI2-testMPI2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testMPI2_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testMPI2-testMPI2.obj `if test -f 'testMPI2.cxx'; then $(CYGPATH_W) 'testMPI2.cxx'; else $(CYGPATH_W) '$(srcdir)/testMPI2.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptSCRIPTS \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptSCRIPTS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptSCRIPTS \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptSCRIPTS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/MPIContainer/SALOME_MPIContainer.cxx000077500000000000000000000051421177004724000234220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include #include #include "MPIContainer_i.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "utilities.h" int main(int argc, char* argv[]) { int nbproc, numproc; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&nbproc); MPI_Comm_rank(MPI_COMM_WORLD,&numproc); // Initialise the ORB. ORB_INIT &init = *SINGLETON_::Instance() ; CORBA::ORB_var &orb = init( argc , argv ) ; // SALOMETraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); BEGIN_OF("[" << numproc << "] " << argv[0]) try { // 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(); char *containerName = (char *)""; if (argc >1) { containerName = argv[1] ; } MESSAGE("[" << numproc << "] MPIContainer: load MPIContainer servant"); new Engines_MPIContainer_i(orb,root_poa, containerName,argc,argv); pman->activate(); orb->run(); } 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."); } MPI_Finalize(); END_OF("[" << numproc << "] " << argv[0]); exit(0); } salome-kernel-6.5.0/src/MPIContainer/launch_testMPI2.csh000077500000000000000000000016441177004724000230110ustar00rootroot00000000000000#! /bin/csh -f # debug mode display informations about communication if $1 == "--debug" then set debug="-debug" else set debug="" endif # get pid of ompi-server setenv OMPI_URI_FILE ${HOME}/.urifile_$$ set lpid1=`pidof ompi-server` ompi-server -r ${OMPI_URI_FILE} set lpid2=`pidof ompi-server` foreach i ($lpid2) set flag=0 foreach j ($lpid1) if ($i == $j) then set flag=1 endif end if ($flag == 0) then set pid=$i endif end sleep 2 # launch two instances of executable to create communication between both mpirun -np 2 -ompi-server file:${OMPI_URI_FILE} ${KERNEL_ROOT_DIR}/bin/salome/testMPI2 -vsize 32 $debug & mpirun -np 3 -ompi-server file:${OMPI_URI_FILE} ${KERNEL_ROOT_DIR}/bin/salome/testMPI2 -vsize 32 $debug set res=$status sleep 1 # kill ompi-server kill -9 $pid # delete uri file rm -f ${OMPI_URI_FILE} # give result of test if $res == 0 then echo "OK" else echo "KO" endif exit $res salome-kernel-6.5.0/src/MPIContainer/testMPI2.cxx000077500000000000000000000125741177004724000215100ustar00rootroot00000000000000#include #include #include #include #define TIMEOUT 20 #define EPSILON 0.00000001 int main(int argc, char**argv) { int *indg; double *vector, sum=0., norm, etalon; int rank, size, grank, gsize, rsize; int vsize=20, lvsize, rlvsize; int i, k1, k2, imin, imax, nb; int srv=0; MPI_Comm com, icom; MPI_Status status; char port_name [MPI_MAX_PORT_NAME]; char port_name_clt [MPI_MAX_PORT_NAME]; std::string service = "SERVICE"; bool debug=false; #ifndef WITHOPENMPI std::cout << "This test only works with openmpi implementation" << std::endl; exit(1); #endif for(i=1;i/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/ModuleCatalog/000077500000000000000000000000001177004724000175715ustar00rootroot00000000000000salome-kernel-6.5.0/src/ModuleCatalog/Makefile.am000077500000000000000000000072751177004724000216430ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:17 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header an scripts to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_ModuleCatalog_impl.hxx \ SALOME_ModuleCatalog_Acomponent_impl.hxx \ PathPrefix.hxx \ SALOME_ModuleCatalog_Parser.hxx \ SALOME_ModuleCatalog_Parser_IO.hxx \ SALOME_ModuleCatalog_Handler.hxx \ SALOME_ModuleCatalog.hxx # Scripts to be installed dist_salomescript_PYTHON = TestModuleCatalog.py # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeCatalog.la # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @LIBXML_INCLUDES@ \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @LIBXML_LIBS@ libSalomeCatalog_la_SOURCES =\ SALOME_ModuleCatalog_Handler.cxx \ SALOME_ModuleCatalog_Parser_IO.cxx \ SALOME_ModuleCatalog_impl.cxx \ SALOME_ModuleCatalog_Acomponent_impl.cxx libSalomeCatalog_la_CPPFLAGS =\ $(COMMON_CPPFLAGS) libSalomeCatalog_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeCatalog_la_LIBADD =\ $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = SALOME_ModuleCatalog_Server SALOME_ModuleCatalog_Client # SALOME_ModuleCatalog_Server SALOME_ModuleCatalog_Server_SOURCES = SALOME_ModuleCatalog_Server.cxx SALOME_ModuleCatalog_Server_CPPFLAGS =\ $(COMMON_CPPFLAGS) SALOME_ModuleCatalog_Server_LDADD =\ libSalomeCatalog.la ${COMMON_LIBS} \ @CORBA_LIBS@ # SALOME_ModuleCatalog_Client SALOME_ModuleCatalog_Client_SOURCES = SALOME_ModuleCatalog_Client.cxx SALOME_ModuleCatalog_Client_CPPFLAGS =\ $(COMMON_CPPFLAGS) SALOME_ModuleCatalog_Client_LDADD =\ libSalomeCatalog.la ${COMMON_LIBS} \ @CORBA_LIBS@ salome-kernel-6.5.0/src/ModuleCatalog/Makefile.in000077500000000000000000001350421177004724000216460ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOME_ModuleCatalog_Server$(EXEEXT) \ SALOME_ModuleCatalog_Client$(EXEEXT) subdir = src/ModuleCatalog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSalomeCatalog_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSalomeCatalog_la_OBJECTS = \ libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.lo \ libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.lo \ libSalomeCatalog_la-SALOME_ModuleCatalog_impl.lo \ libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.lo libSalomeCatalog_la_OBJECTS = $(am_libSalomeCatalog_la_OBJECTS) libSalomeCatalog_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeCatalog_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_SALOME_ModuleCatalog_Client_OBJECTS = SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.$(OBJEXT) SALOME_ModuleCatalog_Client_OBJECTS = \ $(am_SALOME_ModuleCatalog_Client_OBJECTS) SALOME_ModuleCatalog_Client_DEPENDENCIES = libSalomeCatalog.la \ $(am__DEPENDENCIES_1) am_SALOME_ModuleCatalog_Server_OBJECTS = SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.$(OBJEXT) SALOME_ModuleCatalog_Server_OBJECTS = \ $(am_SALOME_ModuleCatalog_Server_OBJECTS) SALOME_ModuleCatalog_Server_DEPENDENCIES = libSalomeCatalog.la \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeCatalog_la_SOURCES) \ $(SALOME_ModuleCatalog_Client_SOURCES) \ $(SALOME_ModuleCatalog_Server_SOURCES) DIST_SOURCES = $(libSalomeCatalog_la_SOURCES) \ $(SALOME_ModuleCatalog_Client_SOURCES) \ $(SALOME_ModuleCatalog_Server_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:17 vsr Exp $ # # # =============================================================== # Header an scripts to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_ModuleCatalog_impl.hxx \ SALOME_ModuleCatalog_Acomponent_impl.hxx \ PathPrefix.hxx \ SALOME_ModuleCatalog_Parser.hxx \ SALOME_ModuleCatalog_Parser_IO.hxx \ SALOME_ModuleCatalog_Handler.hxx \ SALOME_ModuleCatalog.hxx # Scripts to be installed dist_salomescript_PYTHON = TestModuleCatalog.py # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeCatalog.la # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @LIBXML_INCLUDES@ \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @LIBXML_LIBS@ libSalomeCatalog_la_SOURCES = \ SALOME_ModuleCatalog_Handler.cxx \ SALOME_ModuleCatalog_Parser_IO.cxx \ SALOME_ModuleCatalog_impl.cxx \ SALOME_ModuleCatalog_Acomponent_impl.cxx libSalomeCatalog_la_CPPFLAGS = \ $(COMMON_CPPFLAGS) libSalomeCatalog_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeCatalog_la_LIBADD = \ $(COMMON_LIBS) # SALOME_ModuleCatalog_Server SALOME_ModuleCatalog_Server_SOURCES = SALOME_ModuleCatalog_Server.cxx SALOME_ModuleCatalog_Server_CPPFLAGS = \ $(COMMON_CPPFLAGS) SALOME_ModuleCatalog_Server_LDADD = \ libSalomeCatalog.la ${COMMON_LIBS} \ @CORBA_LIBS@ # SALOME_ModuleCatalog_Client SALOME_ModuleCatalog_Client_SOURCES = SALOME_ModuleCatalog_Client.cxx SALOME_ModuleCatalog_Client_CPPFLAGS = \ $(COMMON_CPPFLAGS) SALOME_ModuleCatalog_Client_LDADD = \ libSalomeCatalog.la ${COMMON_LIBS} \ @CORBA_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ModuleCatalog/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/ModuleCatalog/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeCatalog.la: $(libSalomeCatalog_la_OBJECTS) $(libSalomeCatalog_la_DEPENDENCIES) $(libSalomeCatalog_la_LINK) -rpath $(libdir) $(libSalomeCatalog_la_OBJECTS) $(libSalomeCatalog_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_ModuleCatalog_Client$(EXEEXT): $(SALOME_ModuleCatalog_Client_OBJECTS) $(SALOME_ModuleCatalog_Client_DEPENDENCIES) @rm -f SALOME_ModuleCatalog_Client$(EXEEXT) $(CXXLINK) $(SALOME_ModuleCatalog_Client_OBJECTS) $(SALOME_ModuleCatalog_Client_LDADD) $(LIBS) SALOME_ModuleCatalog_Server$(EXEEXT): $(SALOME_ModuleCatalog_Server_OBJECTS) $(SALOME_ModuleCatalog_Server_DEPENDENCIES) @rm -f SALOME_ModuleCatalog_Server$(EXEEXT) $(CXXLINK) $(SALOME_ModuleCatalog_Server_OBJECTS) $(SALOME_ModuleCatalog_Server_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_impl.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.lo: SALOME_ModuleCatalog_Handler.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.lo -MD -MP -MF $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.Tpo -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.lo `test -f 'SALOME_ModuleCatalog_Handler.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Handler.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.Tpo $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Handler.cxx' object='libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_Handler.lo `test -f 'SALOME_ModuleCatalog_Handler.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Handler.cxx libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.lo: SALOME_ModuleCatalog_Parser_IO.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.lo -MD -MP -MF $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.Tpo -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.lo `test -f 'SALOME_ModuleCatalog_Parser_IO.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Parser_IO.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.Tpo $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Parser_IO.cxx' object='libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_Parser_IO.lo `test -f 'SALOME_ModuleCatalog_Parser_IO.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Parser_IO.cxx libSalomeCatalog_la-SALOME_ModuleCatalog_impl.lo: SALOME_ModuleCatalog_impl.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCatalog_la-SALOME_ModuleCatalog_impl.lo -MD -MP -MF $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_impl.Tpo -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_impl.lo `test -f 'SALOME_ModuleCatalog_impl.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_impl.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_impl.Tpo $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_impl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_impl.cxx' object='libSalomeCatalog_la-SALOME_ModuleCatalog_impl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_impl.lo `test -f 'SALOME_ModuleCatalog_impl.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_impl.cxx libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.lo: SALOME_ModuleCatalog_Acomponent_impl.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.lo -MD -MP -MF $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.Tpo -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.lo `test -f 'SALOME_ModuleCatalog_Acomponent_impl.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Acomponent_impl.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.Tpo $(DEPDIR)/libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Acomponent_impl.cxx' object='libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeCatalog_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeCatalog_la-SALOME_ModuleCatalog_Acomponent_impl.lo `test -f 'SALOME_ModuleCatalog_Acomponent_impl.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Acomponent_impl.cxx SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.o: SALOME_ModuleCatalog_Client.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.o -MD -MP -MF $(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Tpo -c -o SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.o `test -f 'SALOME_ModuleCatalog_Client.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Tpo $(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Client.cxx' object='SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.o `test -f 'SALOME_ModuleCatalog_Client.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Client.cxx SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.obj: SALOME_ModuleCatalog_Client.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.obj -MD -MP -MF $(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Tpo -c -o SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.obj `if test -f 'SALOME_ModuleCatalog_Client.cxx'; then $(CYGPATH_W) 'SALOME_ModuleCatalog_Client.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ModuleCatalog_Client.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Tpo $(DEPDIR)/SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Client.cxx' object='SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ModuleCatalog_Client-SALOME_ModuleCatalog_Client.obj `if test -f 'SALOME_ModuleCatalog_Client.cxx'; then $(CYGPATH_W) 'SALOME_ModuleCatalog_Client.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ModuleCatalog_Client.cxx'; fi` SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.o: SALOME_ModuleCatalog_Server.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.o -MD -MP -MF $(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Tpo -c -o SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.o `test -f 'SALOME_ModuleCatalog_Server.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Tpo $(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Server.cxx' object='SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.o `test -f 'SALOME_ModuleCatalog_Server.cxx' || echo '$(srcdir)/'`SALOME_ModuleCatalog_Server.cxx SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.obj: SALOME_ModuleCatalog_Server.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.obj -MD -MP -MF $(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Tpo -c -o SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.obj `if test -f 'SALOME_ModuleCatalog_Server.cxx'; then $(CYGPATH_W) 'SALOME_ModuleCatalog_Server.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ModuleCatalog_Server.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Tpo $(DEPDIR)/SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ModuleCatalog_Server.cxx' object='SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_ModuleCatalog_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ModuleCatalog_Server-SALOME_ModuleCatalog_Server.obj `if test -f 'SALOME_ModuleCatalog_Server.cxx'; then $(CYGPATH_W) 'SALOME_ModuleCatalog_Server.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ModuleCatalog_Server.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/ModuleCatalog/PathPrefix.hxx000077500000000000000000000027671177004724000224130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : PathPrefix.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/PathPrefix.hxx,v 1.5.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #ifndef PATH_PREFIX_H #define PATH_PREFIX_H #include #include struct PathPrefix { string path ; vector listOfComputer ; } ; typedef vector ListOfPathPrefix ; #endif // PATH_PREFIX_H salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog.hxx000077500000000000000000000025651177004724000241150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ModuleCatalog.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOME_ModuleCatalog_HXX_ #define _SALOME_ModuleCatalog_HXX_ #ifdef WIN32 # if defined MODULECATALOG_EXPORTS || defined SalomeCatalog_EXPORTS # define MODULECATALOG_EXPORT __declspec( dllexport ) # else # define MODULECATALOG_EXPORT __declspec( dllimport ) # endif #else #define MODULECATALOG_EXPORT #endif #endif salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.cxx000077500000000000000000000451211177004724000273070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Acomponent_impl.cxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.cxx,v 1.11.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #include "SALOME_ModuleCatalog_Acomponent_impl.hxx" #include "Utils_ExceptHandlers.hxx" UNEXPECT_CATCH(MC_NotFound, SALOME_ModuleCatalog::NotFound); #include "utilities.h" #ifdef _DEBUG_ static int MYDEBUG = 0; #else static int MYDEBUG = 0; #endif //---------------------------------------------------------------------- // Function : SALOME_ModuleCatalog_AcomponentImpl // Purpose : Constructor // Affect the component name, type,icone, a bool to define // if it's multistudy or not. // Affect too the constraint and the interfaces of the component // and the pathes prefixes for all computers //---------------------------------------------------------------------- SALOME_ModuleCatalog_AcomponentImpl::SALOME_ModuleCatalog_AcomponentImpl (SALOME_ModuleCatalog::ComponentDef &C) : _Component(C) { if(MYDEBUG) BEGIN_OF("SALOME_ModuleCatalog_AcomponentImpl"); if(MYDEBUG) END_OF("SALOME_ModuleCatalog_AcomponentImpl"); } //---------------------------------------------------------------------- // Function : ~SALOME_ModuleCatalog_AcomponentImpl // Purpose : Destructor //---------------------------------------------------------------------- SALOME_ModuleCatalog_AcomponentImpl::~SALOME_ModuleCatalog_AcomponentImpl() { if(MYDEBUG) BEGIN_OF("~SALOME_ModuleCatalog_AcomponentImpl"); if(MYDEBUG) END_OF("~SALOME_ModuleCatalog_AcomponentImpl"); } //---------------------------------------------------------------------- // Function : GetInterfaceList // Purpose : get a list of the interfaces name of a component //---------------------------------------------------------------------- SALOME_ModuleCatalog::ListOfInterfaces* SALOME_ModuleCatalog_AcomponentImpl::GetInterfaceList() { if(MYDEBUG) BEGIN_OF("GetInterfaceList"); SALOME_ModuleCatalog::ListOfInterfaces_var _list = new SALOME_ModuleCatalog::ListOfInterfaces; // All the interfaces are defined in _list_interfaces affected at the // component creation unsigned int _length_interfaces = _Component.interfaces.length(); _list->length(_length_interfaces); // Parse all the interfaces to get their name for (unsigned int ind = 0; ind < _length_interfaces; ind++) { _list[ind] = CORBA::string_dup(_Component.interfaces[ind].interfacename); if(MYDEBUG) MESSAGE("The component " << _Component.name << " contains " << _list[ind] << " as interface"); } if(MYDEBUG) END_OF("GetInterfaceList"); return _list._retn(); } //---------------------------------------------------------------------- // Function : GetInterface // Purpose : get one interface of a component //---------------------------------------------------------------------- SALOME_ModuleCatalog::DefinitionInterface* SALOME_ModuleCatalog_AcomponentImpl::GetInterface(const char* interfacename) throw(SALOME_ModuleCatalog::NotFound) { if(MYDEBUG) BEGIN_OF("GetInterface"); if(MYDEBUG) SCRUTE(interfacename); SALOME_ModuleCatalog::DefinitionInterface *_interface = new SALOME_ModuleCatalog::DefinitionInterface; bool _find = false ; // looking for the specified interface for (unsigned int ind = 0; ind < _Component.interfaces.length(); ind++) { SALOME_ModuleCatalog::DefinitionInterface &I = _Component.interfaces[ind]; if (strcmp(interfacename, I.interfacename) == 0) { // wanted interface _find = true ; duplicate(*_interface, I); } } if(MYDEBUG) SCRUTE(_find); if (!_find) { // The interface was not found, the exception should be thrown std::string message = "The interface"; message += interfacename; message += " of the component "; message += _Component.name; message += " was not found"; if(MYDEBUG) MESSAGE(message); throw SALOME_ModuleCatalog::NotFound(message.c_str()); } if(MYDEBUG) END_OF("GetInterface"); return _interface; } //---------------------------------------------------------------------- // Function : GetServiceList // Purpose : get a list of the services name of an interface // of a component //---------------------------------------------------------------------- SALOME_ModuleCatalog::ListOfServices* SALOME_ModuleCatalog_AcomponentImpl::GetServiceList(const char* interfacename) throw(SALOME_ModuleCatalog::NotFound) { if(MYDEBUG) BEGIN_OF("GetServiceList"); if(MYDEBUG) SCRUTE(interfacename); SALOME_ModuleCatalog::ListOfServices_var _list = new SALOME_ModuleCatalog::ListOfServices; // Variables initialisation bool _find = false ; // looking for the specified interface for (unsigned int ind = 0; ind < _Component.interfaces.length(); ind++) { SALOME_ModuleCatalog::DefinitionInterface & I = _Component.interfaces[ind]; if (strcmp(interfacename, I.interfacename) == 0) { _find = true ; // wanted interface // Get the list of services name for this interface unsigned int _length_services = I.interfaceservicelist.length(); _list->length(_length_services); for (unsigned int ind1 = 0; ind1 < _length_services ; ind1++) { _list[ind1] = CORBA::string_dup(I.interfaceservicelist[ind1].ServiceName); if(MYDEBUG) MESSAGE("The interface " << interfacename << " of the component " << _Component.name << " contains " << _list[ind1] << " as a service") } } } if (!_find) { // The interface was not found, the exception should be thrown std::string message = "The interface"; message += interfacename; message += " of the component "; message += _Component.name; message += " was not found"; if(MYDEBUG) MESSAGE(message); throw SALOME_ModuleCatalog::NotFound(message.c_str()); } if(MYDEBUG) END_OF("GetServiceList"); return _list._retn(); } //---------------------------------------------------------------------- // Function : GetService // Purpose : get one service of an interface of a component //---------------------------------------------------------------------- SALOME_ModuleCatalog::Service* SALOME_ModuleCatalog_AcomponentImpl::GetService(const char* interfacename, const char* servicename) throw(SALOME_ModuleCatalog::NotFound) { if(MYDEBUG) BEGIN_OF("GetService"); if(MYDEBUG) SCRUTE(interfacename); if(MYDEBUG) SCRUTE(servicename); Unexpect aCatch( MC_NotFound ); SALOME_ModuleCatalog::Service *service = new SALOME_ModuleCatalog::Service; // Variables initialization bool _find = false ; // looking for the specified interface for (unsigned int ind = 0; ind < _Component.interfaces.length(); ind++) { if(MYDEBUG) SCRUTE(ind); if(MYDEBUG) SCRUTE(_Component.interfaces[ind].interfacename); SALOME_ModuleCatalog::DefinitionInterface &I = _Component.interfaces[ind]; if (strcmp(interfacename, I.interfacename) == 0) { // wanted interface // looking for the specified service for (unsigned int ind1 = 0; ind1 < I.interfaceservicelist.length() ; ind1++) { SALOME_ModuleCatalog::Service &S = I.interfaceservicelist[ind1]; if(MYDEBUG) SCRUTE(ind1); if(MYDEBUG) SCRUTE(S.ServiceName); if (strcmp(servicename, S.ServiceName) == 0) { // Wanted Service // Affect the service to be returned _find = true ; duplicate(*service, S); } } } } if(MYDEBUG) SCRUTE(_find); if (!_find) { // The interface was not found, the exception should be thrown std::string message = "The service"; message += servicename; message += " of the interface "; message += interfacename; message += " of the component "; message += _Component.name; message += " was not found"; if(MYDEBUG) MESSAGE(message); throw SALOME_ModuleCatalog::NotFound(message.c_str()); } if(MYDEBUG) END_OF("GetService"); return service; } //---------------------------------------------------------------------- // Function : GetDefaultService // Purpose : get the default service of the interface //---------------------------------------------------------------------- SALOME_ModuleCatalog::Service* SALOME_ModuleCatalog_AcomponentImpl::GetDefaultService(const char* interfacename) throw(SALOME_ModuleCatalog::NotFound) { if(MYDEBUG) BEGIN_OF("GetDefaultService"); if(MYDEBUG) SCRUTE(interfacename); Unexpect aCatch( MC_NotFound ); SALOME_ModuleCatalog::Service *_service = new SALOME_ModuleCatalog::Service; // Variables initialisation bool _find = false ; // looking for the specified interface for (unsigned int ind = 0; ind < _Component.interfaces.length(); ind++) { if (strcmp(interfacename, _Component.interfaces[ind].interfacename) == 0) { // wanted interface // looking for the defautl service of the wanted interface for (unsigned int ind1 = 0; ind1 < _Component.interfaces[ind].interfaceservicelist.length() ; ind1++) { if (_Component.interfaces[ind].interfaceservicelist[ind1].Servicebydefault) { // Default Service // affect the service to be returned _find = true ; duplicate(*_service, _Component.interfaces[ind].interfaceservicelist[ind1]); } } } } if (!_find) { // The service was not found, the exception should be thrown std::string message = "The default service of the interface "; message += interfacename; message += " of the component "; message += _Component.name; message += " was not found"; if(MYDEBUG) MESSAGE(message); throw SALOME_ModuleCatalog::NotFound(message.c_str()); } if(MYDEBUG) END_OF("GetDefaultService"); return _service; } //---------------------------------------------------------------------- // Function : GetPathPrefix // Purpose : get the PathPrefix of a computer //---------------------------------------------------------------------- char* SALOME_ModuleCatalog_AcomponentImpl::GetPathPrefix(const char* machinename) throw(SALOME_ModuleCatalog::NotFound) { if(MYDEBUG) BEGIN_OF("GetPathPrefix"); if(MYDEBUG) SCRUTE(machinename); Unexpect aCatch( MC_NotFound ); // Variables initialisation char* _path = NULL; bool _find = false ; // Parse all the path prefixes // looking for the wanted computer for (unsigned int ind = 0 ; ind < _Component.paths.length() ; ind++) { if (strcmp(machinename, _Component.paths[ind].machine) == 0) { _find = true ; // Wanted computer // affect the path to be returned const char* _temp = _Component.paths[ind].path ; _path = new char[strlen(_temp)+1]; strcpy(_path,_temp); } } if(MYDEBUG) SCRUTE(_find); if (!_find) { // The computer was not found, the exception should be thrown std::string message = "The computer "; message += machinename; message += " was not found in the catalog associated to the component "; message += _Component.name; if(MYDEBUG) MESSAGE(message); throw SALOME_ModuleCatalog::NotFound(message.c_str()); } if(MYDEBUG) END_OF("GetPathPrefix"); return _path; } //---------------------------------------------------------------------- // Function : constraint // Purpose : obtain the constraint affected to a component //---------------------------------------------------------------------- char* SALOME_ModuleCatalog_AcomponentImpl::constraint() { return CORBA::string_dup(_Component.constraint); } //---------------------------------------------------------------------- // Function : componentname // Purpose : obtain the componentname //---------------------------------------------------------------------- char* SALOME_ModuleCatalog_AcomponentImpl::componentname() { return CORBA::string_dup(_Component.name); } //---------------------------------------------------------------------- // Function : componentusername // Purpose : obtain the componentusername //---------------------------------------------------------------------- char* SALOME_ModuleCatalog_AcomponentImpl::componentusername() { return CORBA::string_dup(_Component.username); } //---------------------------------------------------------------------- // Function : multistudy // Purpose : define if a component can be multistudy or not //---------------------------------------------------------------------- CORBA::Boolean SALOME_ModuleCatalog_AcomponentImpl::multistudy() { return _Component.multistudy ; } //---------------------------------------------------------------------- // Function : implementation type // Purpose : return the implementation type : C++ (dyn lib), Python (module) or executable //---------------------------------------------------------------------- SALOME_ModuleCatalog::ImplType SALOME_ModuleCatalog_AcomponentImpl::implementation_type() { return _Component.implementationType ; } //---------------------------------------------------------------------- // Function : implementation name // Purpose : return the implementation name to exec if the default one is not convenient //---------------------------------------------------------------------- char* SALOME_ModuleCatalog_AcomponentImpl::implementation_name() { return _Component.implname ; } //---------------------------------------------------------------------- // Function : component_type // Purpose : define the type of the component //---------------------------------------------------------------------- SALOME_ModuleCatalog::ComponentType SALOME_ModuleCatalog_AcomponentImpl::component_type() { return _Component.type; } //---------------------------------------------------------------------- // Function : icone // Purpose : obtain the icone affected to a component (for IAPP) //---------------------------------------------------------------------- char* SALOME_ModuleCatalog_AcomponentImpl::component_icone() { return CORBA::string_dup(_Component.icon); } void SALOME_ModuleCatalog_AcomponentImpl::duplicate (SALOME_ModuleCatalog::ServicesParameter & P_out, const SALOME_ModuleCatalog::ServicesParameter &P_in) { // duplicate parameter name P_out.Parametername = CORBA::string_dup(P_in.Parametername); // duplicate parameter type P_out.Parametertype = CORBA::string_dup(P_in.Parametertype); } void SALOME_ModuleCatalog_AcomponentImpl::duplicate (SALOME_ModuleCatalog::ServicesDataStreamParameter & P_out, const SALOME_ModuleCatalog::ServicesDataStreamParameter &P_in) { // duplicate parameter name P_out.Parametername = CORBA::string_dup(P_in.Parametername); // duplicate parameter type P_out.Parametertype = P_in.Parametertype; // duplicate parameter dependency P_out.Parameterdependency = P_in.Parameterdependency; } void SALOME_ModuleCatalog_AcomponentImpl::duplicate (SALOME_ModuleCatalog::Service & S_out, const SALOME_ModuleCatalog::Service &S_in) { // type of node S_out.TypeOfNode = S_in.TypeOfNode; // duplicate service name S_out.ServiceName = CORBA::string_dup(S_in.ServiceName); // duplicate service by default S_out.Servicebydefault = S_in.Servicebydefault; unsigned int _length; // duplicate in Parameters _length = S_in.ServiceinParameter.length(); S_out.ServiceinParameter.length(_length); for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++) duplicate(S_out.ServiceinParameter[ind2], S_in.ServiceinParameter[ind2]); // duplicate out Parameters _length = S_in.ServiceoutParameter.length(); S_out.ServiceoutParameter.length(_length); for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++) duplicate(S_out.ServiceoutParameter[ind2], S_in.ServiceoutParameter[ind2]); // duplicate in DataStreamParameters _length = S_in.ServiceinDataStreamParameter.length(); S_out.ServiceinDataStreamParameter.length(_length); for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++) duplicate(S_out.ServiceinDataStreamParameter[ind2], S_in.ServiceinDataStreamParameter[ind2]); // duplicate out DataStreamParameters _length = S_in.ServiceoutDataStreamParameter.length(); if(MYDEBUG) SCRUTE(_length); S_out.ServiceoutDataStreamParameter.length(_length); for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++) duplicate(S_out.ServiceoutDataStreamParameter[ind2], S_in.ServiceoutDataStreamParameter[ind2]); } void SALOME_ModuleCatalog_AcomponentImpl::duplicate (SALOME_ModuleCatalog::DefinitionInterface & I_out, const SALOME_ModuleCatalog::DefinitionInterface & I_in) { //duplicate interface name I_out.interfacename = CORBA::string_dup(I_in.interfacename); // duplicate service list unsigned int _length = I_in.interfaceservicelist.length(); if(MYDEBUG) SCRUTE(_length); I_out.interfaceservicelist.length(_length); for (unsigned int ind1 = 0; ind1 < _length ; ind1 ++) duplicate(I_out.interfaceservicelist[ind1], I_in.interfaceservicelist[ind1]); } salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.hxx000077500000000000000000000151271177004724000273170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Acomponent_impl.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.hxx,v 1.10.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #ifndef ACOMPONENT_IMPL_H #define ACOMPONENT_IMPL_H #include "SALOME_ModuleCatalog.hxx" #include "SALOME_ModuleCatalog_Parser.hxx" #include #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog) #ifdef WNT #pragma warning(disable:4275) // Disable warning interface non dll #pragma warning(disable:4290) // Warning Exception ... #endif class MODULECATALOG_EXPORT SALOME_ModuleCatalog_AcomponentImpl: public POA_SALOME_ModuleCatalog::Acomponent { public: //! standard constructor SALOME_ModuleCatalog_AcomponentImpl(SALOME_ModuleCatalog::ComponentDef &C); //! standard destructor virtual ~SALOME_ModuleCatalog_AcomponentImpl(); //! method to get a list of the interfaces name of a component /*! \return a list of the interfaces of a component */ virtual SALOME_ModuleCatalog::ListOfInterfaces* GetInterfaceList() ; //! method to get one interface of a component /*! If the specified interface doesn't exist, the Notfound exception is thrown \param interface name const car* arguments \return the wanted interface */ virtual SALOME_ModuleCatalog::DefinitionInterface* GetInterface(const char* interfacename) throw(SALOME_ModuleCatalog::NotFound); //! method to get a list of the services name of an interface of a component /*!If the specified interface doesn't exist, the Notfound exception is thrown \param interfacename const char* arguments \return a list of the services of the wanted interface */ virtual SALOME_ModuleCatalog::ListOfServices* GetServiceList(const char* interfacename) throw(SALOME_ModuleCatalog::NotFound); //! method to get one service of an interface of a component /*! If the wanted service or the specified interface don't exist, * the Notfound exception is thrown \param interfacename const char* arguments \param servicename const char* arguments \return the wanted service */ virtual SALOME_ModuleCatalog::Service* GetService(const char* interfacename, const char* servicename) throw(SALOME_ModuleCatalog::NotFound); //! method to get the default service of an interface of a component /*! If the specified interface doesn't exist, the Notfound exception is thrown \param interfacename const char* arguments \return the default service of the interface */ virtual SALOME_ModuleCatalog::Service* GetDefaultService(const char* interfacename) throw(SALOME_ModuleCatalog::NotFound); //! method to get the PathPrefix of a computer /*! If the wanted computer doesn't exist, the Notfound exception is thrown \param machinename const char* arguments \return the prefix path */ virtual char* GetPathPrefix(const char* machinename) throw(SALOME_ModuleCatalog::NotFound); //! method to obtain the constraint affected to a component /*! to be resolved by LifeCycle for the computer choice \return the constraint */ virtual char* constraint() ; //! method to obtain the componentname /*! \return the component name */ virtual char* componentname(); //! method to obtain the componentusername /*! \return the component user name */ virtual char* componentusername(); //! method to define if a component can be multistudy or not /*! \return true if the component supports multistudy */ virtual CORBA::Boolean multistudy(); //! method to define the type of the component /*! \return the component type */ virtual SALOME_ModuleCatalog::ComponentType component_type() ; //! method to obtain the component icone (for IAPP) /*! \return the component icon */ virtual char* component_icone(); //! method to define if a component is implemented in a dyn lib a python module or an executable /*! \return an enum SO or PY or EXE or CEXE */ virtual SALOME_ModuleCatalog::ImplType implementation_type(); //! method to obtain the implementation name of the component if the default one is not convenient /*! \return the implementation name to exec */ virtual char* implementation_name(); private : SALOME_ModuleCatalog::ComponentDef _Component; //! method to duplicate an interface /*! \param service SALOME_ModuleCatalog::DefinitionInterface arguments \return the interface */ void duplicate(SALOME_ModuleCatalog::DefinitionInterface &I_out, const SALOME_ModuleCatalog::DefinitionInterface &I_in); //! method to duplicate a service /*! \param service SALOME_ModuleCatalog::Service arguments \return the service */ void duplicate(SALOME_ModuleCatalog::Service & S_out, const SALOME_ModuleCatalog::Service &S_in); //! method to duplicate a parameter /*! \param parameter SALOME_ModuleCatalog::ServicesParameter arguments \return the parameter */ void duplicate(SALOME_ModuleCatalog::ServicesParameter & P_out, const SALOME_ModuleCatalog::ServicesParameter & P_in); //! method to duplicate a parameter /*! \param parameter SALOME_ModuleCatalog::ServicesDataStreamParameter arguments \return the parameter */ void duplicate(SALOME_ModuleCatalog::ServicesDataStreamParameter & P_out, const SALOME_ModuleCatalog::ServicesDataStreamParameter &P_in); }; #endif // ACOMPONENT_IMPL_H salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Client.cxx000077500000000000000000000202211177004724000253730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Client.cxx // Module : SALOME // /* $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Client.cxx,v 1.8.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ */ #include #include "SALOME_NamingService.hxx" #include "SALOME_ModuleCatalog.hh" #include #include "utilities.h" void PrintService(SALOME_ModuleCatalog::Acomponent_ptr C, const std::string & InterfaceName, const std::string & ServiceName); void PrintInterface(SALOME_ModuleCatalog::Acomponent_ptr C, const std::string & InterfaceName); void PrintComponent(SALOME_ModuleCatalog::Acomponent_ptr C); int main(int argc,char **argv) { CORBA::ORB_var orb; CosNaming::NamingContext_var _rootContext; CORBA::Object_var objVar, objVarN; try { // initialize the ORB orb = CORBA::ORB_init (argc, argv); // Get CORBA reference of the catalog SALOME_NamingService NS(orb); CORBA::Object_var objVarN = NS.Resolve("/Kernel/ModulCatalog"); SALOME_ModuleCatalog::ModuleCatalog_var Catalogue = SALOME_ModuleCatalog::ModuleCatalog::_narrow(objVarN); MESSAGE("Distant catalog of component found") // Get component list SALOME_ModuleCatalog::ListOfComponents_var list_composants = Catalogue->GetComponentList(); // Typed component list MESSAGE("Get Typed Component list (GEOM Type)"); SALOME_ModuleCatalog::ListOfComponents_var list_typed_composants = Catalogue->GetTypedComponentList(SALOME_ModuleCatalog::GEOM); for (unsigned int ind = 0; ind < list_typed_composants->length();ind++) MESSAGE("Component GEOM list : " << list_typed_composants[ind]); MESSAGE("Get Typed Component list (SUPERV Type)"); list_typed_composants = Catalogue->GetTypedComponentList(SALOME_ModuleCatalog::SUPERV); for (unsigned int ind = 0; ind < list_typed_composants->length();ind++) MESSAGE("Component SUPERV list : " << list_typed_composants[ind]); // Get list of couple (component name, component icone) SALOME_ModuleCatalog::ListOfIAPP_Affich_var list_composants_icone = Catalogue->GetComponentIconeList(); for (unsigned int ind = 0; ind < list_composants_icone->length();ind++) { MESSAGE("Component name: " << list_composants_icone[ind].modulename); MESSAGE("Component icone: " << list_composants_icone[ind].moduleicone); } // obtain a component (specified as parameter of the client) SALOME_ModuleCatalog::Acomponent_ptr Geom = Catalogue->GetComponent("Geometry"); if (CORBA::is_nil (Geom)) { INFOS("Catalog Error : Component Geometry not found in the catalog") exit (-1); } PrintComponent(Geom); // Obtain another component SALOME_ModuleCatalog::Acomponent_ptr Superv = Catalogue->GetComponent("Supervision"); if (CORBA::is_nil (Superv)) { INFOS("Catalog Error : Component Supervision not found in the catalog") exit (-1); } PrintComponent(Superv); // obtain prefix path for a computer char* path; path =Superv->GetPathPrefix("omote"); MESSAGE("Path prefix pour omote : " << path); // obtain prefix path for a computer path =Geom->GetPathPrefix("eri"); MESSAGE("Path prefix pour eri : " << path); } catch(SALOME_ModuleCatalog::NotFound &ex){ INFOS("SALOME_ModuleCatalog::NotFound") std::cerr << ex.what << std::endl; } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException.") } catch (CosNaming::NamingContext::CannotProceed &) { INFOS("CosNaming::NamingContext::CannotProceed") } catch (CosNaming::NamingContext::NotFound &) { INFOS("CosNaming::NamingContext::NotFound") } catch (CosNaming::NamingContext::InvalidName &) { INFOS("CosNaming::NamingContext::InvalidName") } catch (CosNaming::NamingContext::AlreadyBound &) { INFOS("CosNaming::NamingContext::AlreadyBound") } catch (CosNaming::NamingContext::NotEmpty &) { INFOS("CosNaming::NamingContext::NotEmpty") } catch(CORBA::Exception &) { INFOS("Caught CORBA::Exception.") } return 0; } void PrintComponent(SALOME_ModuleCatalog::Acomponent_ptr C) { MESSAGE("Name : " << C->componentname()); MESSAGE("Type : " << C->component_type() << " multistudy : " << C->multistudy()); MESSAGE("Constraint : " << C->constraint()); MESSAGE("Icon : " << C->component_icone()); // obtain interfaces list of the component SALOME_ModuleCatalog::ListOfInterfaces_var _list = C->GetInterfaceList(); for (unsigned int i = 0; i < _list->length();i++) { const char * s = _list[i]; PrintInterface(C, s); } } void PrintInterface(SALOME_ModuleCatalog::Acomponent_ptr C, const std::string & InterfaceName) { unsigned int i, n; SALOME_ModuleCatalog::DefinitionInterface_var _interf = C->GetInterface(InterfaceName.c_str()); MESSAGE ("Interface : " << _interf->interfacename); SALOME_ModuleCatalog::ListOfInterfaceService S = _interf->interfaceservicelist; n = S.length(); for (i = 0; i < n; i++) { const char * _S = S[i].ServiceName; PrintService(C, InterfaceName, _S); } } void PrintService(SALOME_ModuleCatalog::Acomponent_ptr C, const std::string & InterfaceName, const std::string & ServiceName) { int i, n; SALOME_ModuleCatalog::Service_var Service = (ServiceName.compare("") == 0) ? C->GetDefaultService(InterfaceName.c_str()) : C->GetService(InterfaceName.c_str(), ServiceName.c_str()); MESSAGE("Service : " << Service->ServiceName); MESSAGE("In Parameter(s):"); n = Service->ServiceinParameter.length(); for (i = 0; iServiceinParameter[i].Parametername); MESSAGE(" Type : " << Service->ServiceinParameter[i].Parametertype); } MESSAGE("Out Parameter(s):"); n = Service->ServiceoutParameter.length(); for (i = 0; iServiceoutParameter[i].Parametername); MESSAGE(" Type : " << Service->ServiceoutParameter[i].Parametertype); } MESSAGE("In DataStreamParameter(s):"); n = Service->ServiceinDataStreamParameter.length(); for (i = 0; iServiceinDataStreamParameter[i].Parametername); MESSAGE(" Type : " << Service->ServiceinDataStreamParameter[i].Parametertype); MESSAGE(" Dependency : " << Service->ServiceinDataStreamParameter[i].Parametertype); } MESSAGE("Out DataStreamParameter(s):"); n = Service->ServiceoutDataStreamParameter.length(); for (i = 0; iServiceoutDataStreamParameter[i].Parametername); MESSAGE(" Type : " << Service->ServiceoutDataStreamParameter[i].Parametertype); MESSAGE(" Dependency : " << Service->ServiceoutDataStreamParameter[i].Parametertype); } } salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Handler.cxx000077500000000000000000001027461177004724000255470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Handler.cxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Handler.cxx,v 1.12.32.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #define WRITE_CATA_COMPONENT #include "SALOME_ModuleCatalog_Handler.hxx" #include "SALOME_ModuleCatalog_Parser_IO.hxx" #include "utilities.h" #include #ifdef _DEBUG_ static int MYDEBUG = 0; #else static int MYDEBUG = 0; #endif //---------------------------------------------------------------------- // Function : SALOME_ModuleCatalog_Handler // Purpose : Constructor //---------------------------------------------------------------------- SALOME_ModuleCatalog_Handler::SALOME_ModuleCatalog_Handler(ParserPathPrefixes& pathList, ParserComponents& moduleList, ParserTypes& typeMap, TypeList& typeList):_typeMap(typeMap),_typeList(typeList), _pathList(pathList),_moduleList(moduleList) { if(MYDEBUG) BEGIN_OF("SALOME_ModuleCatalog_Handler"); // XML Tags initialisation // Used in the function endElement test_path_prefix_name = "path-prefix-name"; test_computer_name = "computer-name" ; test_computer_list = "computer-list" ; test_path_prefix = "path-prefix" ; test_path_prefix_list = "path-prefix-list" ; test_component_name = "component-name"; test_component_username = "component-username"; test_component_type = "component-type" ; test_component_multistudy = "component-multistudy"; test_component_icon = "component-icone" ; test_component_impltype = "component-impltype"; test_component_implname = "component-implname"; test_component_version = "component-version"; test_component_comment = "component-comment"; test_interface_name = "component-interface-name" ; test_service_name = "service-name"; test_defaultservice = "service-by-default"; test_typeofnode = "type-of-node"; test_inParameter_type = "inParameter-type"; test_inParameter_name = "inParameter-name"; test_inParameter = "inParameter"; test_inParameter_list = "inParameter-list"; test_outParameter_type = "outParameter-type"; test_outParameter_name = "outParameter-name"; test_outParameter = "outParameter"; test_outParameter_list = "outParameter-list"; test_inDataStreamParameter_type = "inParameter-type"; test_inDataStreamParameter_name = "inParameter-name"; test_inDataStreamParameter_dependency = "inParameter-dependency"; test_inDataStreamParameter = "inParameter"; test_inDataStreamParameter_list = "DataStream-list"; test_outDataStreamParameter_type = "outParameter-type"; test_outDataStreamParameter_name = "outParameter-name"; test_outDataStreamParameter_dependency = "outParameter-dependency"; test_outDataStreamParameter = "outParameter"; test_outDataStreamParameter_list = "DataStream-list"; test_service = "component-service"; test_service_list = "component-service-list"; test_interface_list = "component-interface-list"; test_constraint = "constraint"; test_component_list = "component-list"; test_component="component"; if(MYDEBUG) END_OF("SALOME_ModuleCatalog_Handler"); } //---------------------------------------------------------------------- // Function : ~SALOME_ModuleCatalog_Handler // Purpose : Destructor //---------------------------------------------------------------------- SALOME_ModuleCatalog_Handler::~SALOME_ModuleCatalog_Handler() { if(MYDEBUG) BEGIN_OF("~SALOME_ModuleCatalog_Handler()") if(MYDEBUG) END_OF("~SALOME_ModuleCatalog_Handler()") } //============================================================================= /*! * Processes XML document and fills the list of modules */ //============================================================================= void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc) { if(MYDEBUG) MESSAGE("Begin parse document"); // Empty the private elements _pathList.resize(0); _pathPrefix.listOfComputer.resize(0); _serviceList.resize(0); _interfaceList.resize(0); _moduleList.resize(0); _inDataStreamParamList.resize(0); _outDataStreamParamList.resize(0); _inParamList.resize(0); _outParamList.resize(0); // Get the document root node xmlNodePtr aCurNode = xmlDocGetRootElement(theDoc); aCurNode = aCurNode->xmlChildrenNode; // Processing the document nodes while(aCurNode != NULL) { // Part 1: Process path prefix list (tag test_path_prefix_list) if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_path_prefix_list) ) { xmlNodePtr aCurSubNode = aCurNode->xmlChildrenNode; while(aCurSubNode != NULL) { // Forming a PathPrefix structure (tag test_path_prefix) if ( xmlStrcmp(aCurSubNode->name, (const xmlChar*)test_path_prefix) ) { aCurSubNode = aCurSubNode->next; continue; } xmlNodePtr aCurSubSubNode = aCurSubNode->xmlChildrenNode; while(aCurSubSubNode != NULL) { // Tag test_path_prefix_name if ( !xmlStrcmp(aCurSubSubNode->name, (const xmlChar*)test_path_prefix_name) ) { xmlChar* aPath = xmlNodeGetContent(aCurSubSubNode); if (aPath != NULL) { _pathPrefix.path = (const char*)aPath; xmlFree(aPath); } } // Tag test_computer_list if ( !xmlStrcmp(aCurSubSubNode->name, (const xmlChar*)test_computer_list) ) { xmlNodePtr aComputerNode = aCurSubSubNode->xmlChildrenNode; while (aComputerNode != NULL) { // Tag test_computer_name if ( !xmlStrcmp(aComputerNode->name, (const xmlChar*) test_computer_name) ) { xmlChar* aCompName = xmlNodeGetContent(aComputerNode); if (aCompName != NULL) { _pathPrefix.listOfComputer.push_back((const char*)aCompName); xmlFree(aCompName); } } aComputerNode = aComputerNode->next; } } aCurSubSubNode = aCurSubSubNode->next; } _pathList.push_back(_pathPrefix); _pathPrefix.listOfComputer.resize(0); aCurSubNode = aCurSubNode->next; } } //Part 2: Process list of types if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)"type-list") ) { xmlNodePtr aTypeNode = aCurNode->xmlChildrenNode; while (aTypeNode != NULL) { // match "type" if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"type" )) { // Here is a basic type description ParserType aType; xmlChar * name=xmlGetProp(aTypeNode,(const xmlChar*)"name"); if(name) { aType.name = (const char*)name; xmlFree(name); } xmlChar *kind=xmlGetProp(aTypeNode,(const xmlChar*)"kind"); if(kind) { aType.kind = (const char*)kind; xmlFree(kind); } if(aType.kind == "double" || aType.kind == "int" || aType.kind == "bool" || aType.kind == "string") { if ( _typeMap.find(aType.name) == _typeMap.end() ) { MESSAGE("Registered basic type: " << aType.name << " " << aType.kind ); _typeMap[aType.name]=aType; _typeList.push_back(aType); } else std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored." << std::endl; } else std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") has incorrect kind, it will be ignored." << std::endl; } else if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"sequence" )) { // Here is a sequence type description ParserSequence aType; xmlChar * name=xmlGetProp(aTypeNode,(const xmlChar*)"name"); if(name) { aType.name = (const char*)name; xmlFree(name); } xmlChar *content=xmlGetProp(aTypeNode,(const xmlChar*)"content"); if(content) { aType.content = (const char*)content; xmlFree(content); } if ( _typeMap.find(aType.content) != _typeMap.end() ) { if ( _typeMap.find(aType.name) == _typeMap.end() ) { MESSAGE("Registered sequence type: " << aType.name << " " << aType.content ); _typeMap[aType.name]=aType; _typeList.push_back(aType); } else std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored." << std::endl; } else { std::cerr << "Warning: this sequence type (" << aType.name << "," << aType.content << ") has unknown content type, it will be ignored." << std::endl; } } else if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"objref" )) { // Here is an objref type description ParserObjref aType; int error=0; xmlChar * name=xmlGetProp(aTypeNode,(const xmlChar*)"name"); if(name) { aType.name = (const char*)name; xmlFree(name); } xmlChar *id=xmlGetProp(aTypeNode,(const xmlChar*)"id"); if(id) { aType.id = (const char*)id; xmlFree(id); } xmlNodePtr aTypeSubNode = aTypeNode->xmlChildrenNode; while (aTypeSubNode != NULL) { if ( !xmlStrcmp(aTypeSubNode->name, (const xmlChar*)"base" )) { //a base type xmlChar* content = xmlNodeGetContent(aTypeSubNode); if(content) { std::string base=(const char*)content; xmlFree(content); if ( _typeMap.find(base) != _typeMap.end() && _typeMap[base].kind == "objref") { aType.bases.push_back(base); } else { std::cerr << "Warning: this objref type (" << aType.name << ") has unknown base type (" << base << "), it will be ignored." << std::endl; error=1; break; } } } aTypeSubNode = aTypeSubNode->next; } if(!error) { if ( _typeMap.find(aType.name) == _typeMap.end() ) { MESSAGE("Registered objref type: " << aType.name << " " << aType.id ); _typeMap[aType.name]=aType; _typeList.push_back(aType); } else std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored." << std::endl; } } else if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"struct" )) { // Here is a struct type description ParserStruct aType; int error=0; xmlChar * name=xmlGetProp(aTypeNode,(const xmlChar*)"name"); if(name) { aType.name = (const char*)name; xmlFree(name); } xmlChar *id=xmlGetProp(aTypeNode,(const xmlChar*)"id"); if(id) { aType.id = (const char*)id; xmlFree(id); } xmlNodePtr aTypeSubNode = aTypeNode->xmlChildrenNode; while (aTypeSubNode != NULL) { if ( !xmlStrcmp(aTypeSubNode->name, (const xmlChar*)"member" )) { std::pair member; xmlChar * m_name=xmlGetProp(aTypeSubNode,(const xmlChar*)"name"); if(m_name) { member.first=(const char*)m_name; xmlFree(m_name); } xmlChar * m_type=xmlGetProp(aTypeSubNode,(const xmlChar*)"type"); if(m_type) { member.second=(const char*)m_type; xmlFree(m_type); } if ( _typeMap.find(member.second) != _typeMap.end() ) { aType.members.push_back(member); } else { std::cerr << "Warning: this struct type (" << aType.name << ") has unknown member type (" << member.first << "," << member.second << "), it will be ignored." << std::endl; error=1; break; } } aTypeSubNode = aTypeSubNode->next; } if(!error) { if ( _typeMap.find(aType.name) == _typeMap.end() ) { MESSAGE("Registered struct type: " << aType.name << " " << aType.id ); _typeMap[aType.name]=aType; _typeList.push_back(aType); } else std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored." << std::endl; } } // end of struct aTypeNode = aTypeNode->next; } } //Part 3: Process list of components (tag test_component_list) if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_component_list) ) { xmlNodePtr aComponentNode = aCurNode->xmlChildrenNode; while (aComponentNode != NULL) { // Do not process tags differ from test_component here if ( xmlStrcmp(aComponentNode->name, (const xmlChar*)test_component) ) { aComponentNode = aComponentNode->next; continue; } // Component identification // Empty temporary structures _aModule.name = ""; _aModule.constraint = ""; _aModule.icon=""; _aModule.interfaces.resize(0); _aModule.implementationType =""; _aModule.implementationName =""; xmlNodePtr aComponentSubNode = aComponentNode->xmlChildrenNode; while(aComponentSubNode != NULL) { xmlChar* aNodeContent = xmlNodeGetContent(aComponentSubNode); if (aNodeContent == NULL) { aComponentSubNode = aComponentSubNode->next; continue; } std::string aContent = (const char*)aNodeContent; // Tag test_component_name if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_name) ) _aModule.name = aContent; // Tag test_component_username if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_username) ) _aModule.username = aContent; // Tag test_component_type if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_type) ) { std::string aType = aContent; if ((aType.compare("MESH") == 0) || (aType.compare("Mesh") == 0) || (aType.compare("mesh") == 0)) _aModule.type = MESH ; else if((aType.compare("MED") == 0) || (aType.compare("Med") == 0) || (aType.compare("med") == 0)) _aModule.type = Med ; else if((aType.compare("GEOM") == 0) || (aType.compare("Geom") == 0) || (aType.compare("geom") == 0)) _aModule.type = GEOM ; else if((aType.compare("SOLVER") == 0) || (aType.compare("Solver") == 0) || (aType.compare("solver") == 0)) _aModule.type = SOLVER ; else if((aType.compare("SUPERV") == 0) || (aType.compare("Superv") == 0) || (aType.compare("Supervision") == 0) || (aType.compare("superv") == 0)) _aModule.type = SUPERV ; else if((aType.compare("DATA") == 0) || (aType.compare("Data") == 0) || (aType.compare("data") == 0)) _aModule.type = DATA ; else if((aType.compare("VISU") == 0) || (aType.compare("Visu") == 0) || (aType.compare("visu") == 0)) _aModule.type = VISU ; else if((aType.compare("OTHER") == 0) || (aType.compare("Other") == 0) || (aType.compare("other") == 0)) _aModule.type = OTHER ; else // If it'not in all theses cases, the type is affected to OTHER _aModule.type = OTHER ; } // Tag test_component_multistudy if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_multistudy) ) _aModule.multistudy = atoi( aContent.c_str() ) != 0; // Tag test_component_impltype if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_impltype) ) _aModule.implementationType = aContent; // Tag test_component_implname if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_implname) ) _aModule.implementationName = aContent; // Tag test_component_icon if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_icon) ) _aModule.icon = aContent; // Tag test_component_version if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_version) ) _aModule.version = aContent; // Tag test_component_comment if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_component_comment) ) _aModule.comment = aContent; // Tag test_constraint if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_constraint) ) _aModule.constraint = aContent; xmlFree(aNodeContent); // Process tag test_interface_list: if ( !xmlStrcmp(aComponentSubNode->name, (const xmlChar*)test_interface_list) ) { // Form an interface list for the component xmlNodePtr aSubNode = aComponentSubNode->xmlChildrenNode; while(aSubNode != NULL) { // Tag test_interface_name if ( !xmlStrcmp(aSubNode->name, (const xmlChar*)test_interface_name) ) { xmlChar* anInterfaceName = xmlNodeGetContent(aSubNode); if (anInterfaceName != NULL) { _aInterface.name = (const char*)anInterfaceName; xmlFree(anInterfaceName); } } // Tag test_service_list if ( !xmlStrcmp(aSubNode->name, (const xmlChar*)test_service_list) ) { // Form a service list for the interface xmlNodePtr aCompServiceNode = aSubNode->xmlChildrenNode; while(aCompServiceNode != NULL) { // Tag test_service if ( !xmlStrcmp(aCompServiceNode->name, (const xmlChar*)"component-service") ) { xmlNodePtr aCompServiceSubNode = aCompServiceNode->xmlChildrenNode; while(aCompServiceSubNode != NULL) { xmlChar* aCompServiceData = xmlNodeGetContent(aCompServiceSubNode); if ( aCompServiceData != NULL) { // Tag test_service_name if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_service_name) ) _aService.name = (const char*)aCompServiceData; // Tag test_defaultservice if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_defaultservice) ) _aService.byDefault = atoi((const char*)aCompServiceData) !=0 ; // Tag test_typeofnode if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_typeofnode) ) _aService.typeOfNode = atoi((const char*)aCompServiceData) !=0 ; xmlFree(aCompServiceData); } // Tag test_inParameter_list if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_inParameter_list) ) { xmlNodePtr aParamNode = aCompServiceSubNode->xmlChildrenNode; while (aParamNode != NULL) { // Tag test_inParameter if (xmlStrcmp(aParamNode->name, (const xmlChar*)test_inParameter)) { aParamNode = aParamNode->next; continue; } xmlNodePtr aParamItemNode = aParamNode->xmlChildrenNode; while (aParamItemNode != NULL) { xmlChar* aParamData = xmlNodeGetContent(aParamItemNode); if (aParamData != NULL) { // Tag test_inParameter_name if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_inParameter_name) ) _inParam.name = (const char*)aParamData; // Tag test_inParameter_type if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_inParameter_type) ) _inParam.type = (const char*)aParamData; xmlFree(aParamData); } aParamItemNode = aParamItemNode->next; } _inParamList.push_back(_inParam) ; // Empty temporary structures _inParam.type = ""; _inParam.name = ""; aParamNode = aParamNode->next; } _aService.inParameters = _inParamList; _inParamList.resize(0); } // Tag test_outParameter_list if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_outParameter_list) ) { xmlNodePtr aParamNode = aCompServiceSubNode->xmlChildrenNode; while (aParamNode != NULL) { // Tag test_outParameter if (xmlStrcmp(aParamNode->name, (const xmlChar*)test_outParameter)) { aParamNode = aParamNode->next; continue; } xmlNodePtr aParamItemNode = aParamNode->xmlChildrenNode; while (aParamItemNode != NULL) { xmlChar* anOutParamData = xmlNodeGetContent(aParamItemNode); if (anOutParamData != NULL) { // Tag test_outParameter_name if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_outParameter_name) ) _outParam.name = (const char*)anOutParamData; // Tag test_outParameter_type if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_outParameter_type) ) _outParam.type = (const char*)anOutParamData; xmlFree(anOutParamData); } aParamItemNode = aParamItemNode->next; } _outParamList.push_back(_outParam) ; // Empty temporary structures _outParam.type = ""; _outParam.name = ""; aParamNode = aParamNode->next; } _aService.outParameters = _outParamList; _outParamList.resize(0); } //@ Tag test_inDataStreamParameter_list if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_inDataStreamParameter_list) ) { xmlNodePtr aParamNode = aCompServiceSubNode->xmlChildrenNode; while (aParamNode != NULL) { // Tag test_inDataStreamParameter if (xmlStrcmp(aParamNode->name, (const xmlChar*)test_inDataStreamParameter)) { aParamNode = aParamNode->next; continue; } xmlNodePtr aParamItemNode = aParamNode->xmlChildrenNode; while (aParamItemNode != NULL) { xmlChar* inDataStreamParamData = xmlNodeGetContent(aParamItemNode); if (inDataStreamParamData != NULL) { // Tag test_inDataStreamParameter_name if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_inDataStreamParameter_name) ) _inDataStreamParam.name = (const char*)inDataStreamParamData; // Tag test_inDataStreamParameter_type if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_inDataStreamParameter_type) ) _inDataStreamParam.type = (const char*)inDataStreamParamData; // Tag test_inDataStreamParameter_dependency if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_inDataStreamParameter_dependency) ) _inDataStreamParam.dependency = (const char*)inDataStreamParamData; xmlFree(inDataStreamParamData); } aParamItemNode = aParamItemNode->next; } _inDataStreamParamList.push_back(_inDataStreamParam) ; // Empty temporary structures _inDataStreamParam.type = ""; _inDataStreamParam.name = ""; _inDataStreamParam.dependency = ""; aParamNode = aParamNode->next; } _aService.inDataStreamParameters = _inDataStreamParamList; _inDataStreamParamList.resize(0); } // Tag test_outDataStreamParameter_list if ( !xmlStrcmp(aCompServiceSubNode->name, (const xmlChar*)test_outDataStreamParameter_list) ) { xmlNodePtr aParamNode = aCompServiceSubNode->xmlChildrenNode; while (aParamNode != NULL) { // Tag test_outDataStreamParameter if (xmlStrcmp(aParamNode->name, (const xmlChar*)test_outDataStreamParameter)) { aParamNode = aParamNode->next; continue; } xmlNodePtr aParamItemNode = aParamNode->xmlChildrenNode; while (aParamItemNode != NULL) { xmlChar* outDataStreamParamData = xmlNodeGetContent(aParamItemNode); if (outDataStreamParamData != NULL) { // Tag test_outDataStreamParameter_name if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_outDataStreamParameter_name) ) _outDataStreamParam.name = (const char*)outDataStreamParamData; // Tag test_outDataStreamParameter_type if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_outDataStreamParameter_type) ) _outDataStreamParam.type = (const char*)outDataStreamParamData; // Tag test_outDataStreamParameter_dependency if ( !xmlStrcmp(aParamItemNode->name, (const xmlChar*)test_outDataStreamParameter_dependency) ) _outDataStreamParam.dependency = (const char*)outDataStreamParamData; xmlFree(outDataStreamParamData); } aParamItemNode = aParamItemNode->next; } _outDataStreamParamList.push_back(_outDataStreamParam) ; // Empty temporary structures _outDataStreamParam.type = ""; _outDataStreamParam.name = ""; _outDataStreamParam.dependency = ""; aParamNode = aParamNode->next; } _aService.outDataStreamParameters = _outDataStreamParamList; _outDataStreamParamList.resize(0); } aCompServiceSubNode = aCompServiceSubNode->next; } // Put formed service into the list _serviceList.push_back(_aService); // Empty temporary structures _aService.name = ""; _aService.typeOfNode = 1; _aService.inParameters.resize(0); _aService.outParameters.resize(0); _aService.inDataStreamParameters.resize(0); _aService.outDataStreamParameters.resize(0); } aCompServiceNode = aCompServiceNode->next; } _aInterface.services = _serviceList ; // Empty temporary structures _serviceList.resize(0); _interfaceList.push_back(_aInterface); _aInterface.name =""; _aInterface.services.resize(0); } aSubNode = aSubNode->next; } _aModule.interfaces = _interfaceList ; _interfaceList.resize(0); } aComponentSubNode = aComponentSubNode->next; } _moduleList.push_back(_aModule); aComponentNode = aComponentNode->next; } } aCurNode = aCurNode->next; } } salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Handler.hxx000077500000000000000000000104751177004724000255510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Handler.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Handler.hxx,v 1.11.32.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #ifndef SALOME_CATALOG_HANDLER_H #define SALOME_CATALOG_HANDLER_H #include "SALOME_ModuleCatalog.hxx" #include "SALOME_ModuleCatalog_Parser.hxx" #include #include #include #include #ifdef WNT #pragma warning(disable:4251) // Warning DLL Interface ... #endif class MODULECATALOG_EXPORT SALOME_ModuleCatalog_Handler { public: //! standard constructor SALOME_ModuleCatalog_Handler(ParserPathPrefixes& pathList,ParserComponents& moduleList,ParserTypes& typeMap,TypeList& typeList); //! standard destructor virtual ~SALOME_ModuleCatalog_Handler(); void ProcessXmlDocument(xmlDocPtr theDoc); private: const char *test_path_prefix_name ; const char *test_computer_name ; const char *test_computer_list ; const char *test_path_prefix ; const char *test_path_prefix_list; const char *test_component_name; const char *test_component_username; const char *test_component_type ; const char *test_component_multistudy ; const char *test_component_icon ; const char *test_component_impltype; const char *test_component_implname; const char *test_component_version; const char *test_component_comment; const char *test_interface_name; const char *test_service_name; const char *test_defaultservice; const char *test_typeofnode; const char *test_inParameter_type; const char *test_inParameter_name; const char *test_inParameter; const char *test_inParameter_list; const char *test_outParameter_type; const char *test_outParameter_name; const char *test_outParameter; const char *test_outParameter_list; const char *test_inDataStreamParameter_type; const char *test_inDataStreamParameter_name; const char *test_inDataStreamParameter_dependency; const char *test_inDataStreamParameter; const char *test_inDataStreamParameter_list; const char *test_outDataStreamParameter_type; const char *test_outDataStreamParameter_name; const char *test_outDataStreamParameter_dependency; const char *test_outDataStreamParameter; const char *test_outDataStreamParameter_list; const char *test_service; const char *test_service_list; const char *test_interface_list; const char *test_constraint; const char *test_component_list; const char *test_component; ParserPathPrefix _pathPrefix; ParserComponent _aModule; ParserPathPrefixes& _pathList; ParserComponents& _moduleList; ParserInterfaces _interfaceList; ParserInterface _aInterface; ParserServices _serviceList; ParserService _aService; ParserParameters _inParamList; ParserParameter _inParam; ParserParameters _outParamList; ParserParameter _outParam; ParserDataStreamParameters _inDataStreamParamList; ParserDataStreamParameter _inDataStreamParam; ParserDataStreamParameters _outDataStreamParamList; ParserDataStreamParameter _outDataStreamParam; ParserTypes& _typeMap; TypeList& _typeList; ParserSequences _sequenceMap; ParserObjrefs _objrefMap; ParserStructs _structMap; }; #endif // SALOME_CATALOG_HANDLER_H salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Parser.hxx000077500000000000000000000075161177004724000254320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Parser.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Parser.hxx,v 1.9.32.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #ifndef SALOME_CATALOG_PARSER_H #define SALOME_CATALOG_PARSER_H #include #include #include // Type Definitions struct ParserPathPrefix { std::string path; std::vector listOfComputer ; }; typedef std::vector ParserPathPrefixes ; enum ParserComponentType {GEOM, MESH, Med, SOLVER, DATA, VISU, SUPERV, OTHER} ; struct ParserParameter { std::string type; std::string name; } ; struct ParserDataStreamParameter { std::string type; std::string name; std::string dependency; } ; typedef std::vector ParserParameters; typedef std::vector ParserDataStreamParameters; struct ParserService { ParserService() { typeOfNode = 1; byDefault = 1; } std::string name; ParserParameters inParameters; ParserParameters outParameters; ParserDataStreamParameters inDataStreamParameters; ParserDataStreamParameters outDataStreamParameters; bool byDefault; bool typeOfNode; } ; typedef std::vector ParserServices ; struct ParserInterface { std::string name ; ParserServices services ; } ; typedef std::vector ParserInterfaces; struct ParserComponent { std::string name; std::string username; ParserComponentType type; bool multistudy; std::string icon; std::string constraint; ParserInterfaces interfaces; ParserPathPrefixes prefixes; std::string implementationType; std::string implementationName; std::string version; std::string comment; }; typedef std::vector ParserComponents ; struct ParserType { std::string name; std::string kind; std::string id; std::string content; std::vector bases; std::vector< std::pair > members; }; typedef std::map ParserTypes ; typedef std::map RefTypes ; typedef std::vector TypeList ; struct ParserSequence:public ParserType { ParserSequence(){kind="sequence";} }; typedef std::map ParserSequences ; struct ParserObjref:public ParserType { ParserObjref(){kind="objref";} }; typedef std::map ParserObjrefs ; struct ParserStruct:public ParserType { ParserStruct(){kind="struct";} }; typedef std::map ParserStructs ; #endif // SALOME_CATALOG_PARSER_H salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Parser_IO.cxx000077500000000000000000000105311177004724000260030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Parser_IO.cxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Parser_IO.cxx,v 1.6.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #include "SALOME_ModuleCatalog_Parser_IO.hxx" #include #include #include "utilities.h" std::ostream & operator<< (std::ostream & f, const ParserParameter & P) { f << " name : " << P.name << std::endl; f << " type : " << P.type << std::endl; return f; } std::ostream & operator<< (std::ostream & f, const ParserDataStreamParameter & P) { f << " name : " << P.name << std::endl; f << " type : " << P.type << std::endl; f << " dependency : " << P.dependency << std::endl; return f; } std::ostream & operator<< (std::ostream & f, const ParserService & S) { int i, n; f << " name : " << S.name << std::endl; f << " default : " << (S.byDefault ? "yes" : "no") << std::endl; n = S.inParameters.size(); f << " in parameters : " << n << std::endl; for (i=0; i std::ostream & operator<< (std::ostream & f, const ParserParameter & P); std::ostream & operator<< (std::ostream & f, const ParserDataStreamParameter & P); std::ostream & operator<< (std::ostream & f, const ParserService & S); std::ostream & operator<< (std::ostream & f, const ParserInterface & I); std::ostream & operator<< (std::ostream & f, const ParserComponent & C); std::ostream & operator<< (std::ostream & f, const ParserComponentType & T); #endif salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_Server.cxx000077500000000000000000000134041177004724000254300ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_Server.cxx // Module : SALOME // /* $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Server.cxx,v 1.15.2.2.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ */ #include #include "SALOME_NamingService.hxx" #include "SALOME_ModuleCatalog_impl.hxx" #include "utilities.h" #include "Utils_SINGLETON.hxx" #ifdef CHECKTIME #include #endif int main(int argc,char **argv) { // initialize the ORB CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); try { CosNaming::NamingContext_var _rootContext, catalogContext; // initialize POA // long TIMESleep = 500000000; int NumberOfTries = 40; #ifndef WIN32 int a; #endif timespec ts_req; ts_req.tv_nsec=TIMESleep; ts_req.tv_sec=0; timespec ts_rem; ts_rem.tv_nsec=0; ts_rem.tv_sec=0; CosNaming::NamingContext_var inc; PortableServer::POA_var poa; CORBA::Object_var theObj; CORBA::Object_var obj; CORBA::Object_var object; int MODULE_CATALOG=0; const char * Env = getenv("USE_LOGGER"); int EnvL =0; if ((Env!=NULL) && (strlen(Env))) EnvL=1; CosNaming::Name name; name.length(1); name[0].id=CORBA::string_dup("Logger"); PortableServer::POAManager_var mgr; for (int i = 1; i<=NumberOfTries; i++) { if (i!=1) #ifndef WIN32 a=nanosleep(&ts_req,&ts_rem); #else Sleep(TIMESleep/1000000); #endif try { obj = orb->resolve_initial_references("RootPOA"); if(!CORBA::is_nil(obj)) poa = PortableServer::POA::_narrow(obj); if(!CORBA::is_nil(poa)) mgr = poa->the_POAManager(); if(!CORBA::is_nil(orb)) theObj = orb->resolve_initial_references("NameService"); } catch( CORBA::SystemException& ) { INFOS( "Module Catalog Server: CORBA::SystemException: Unable to contact the Naming Service" ); } if (!CORBA::is_nil(theObj)) { inc = CosNaming::NamingContext::_narrow(theObj); if(!CORBA::is_nil(inc)) { INFOS( "Module Catalog Server: Naming Service was found" ); if(EnvL==1) { CORBA::ORB_var orb1 = CORBA::ORB_init(argc,argv) ; SALOME_NamingService &NS = *SINGLETON_::Instance() ; NS.init_orb( orb1 ) ; for(int j=1; j<=NumberOfTries; j++) { if (j!=1) #ifndef WIN32 a=nanosleep(&ts_req, &ts_rem); #else Sleep(TIMESleep/1000000); #endif try{ object = inc->resolve(name);} catch(CosNaming::NamingContext::NotFound) { INFOS( "Logger Server wasn't found" ); } catch(...) { INFOS( "Module Catalog Server: Unknown exception" ) ; } if (!CORBA::is_nil(object)) { INFOS( "Module Catalog Server: Logger Server was found" ); MODULE_CATALOG=1; break; } } } } } if ((MODULE_CATALOG==1)||((EnvL==0)&&(!CORBA::is_nil(inc)))) break; } // Active catalog SALOME_ModuleCatalogImpl* Catalogue_i=new SALOME_ModuleCatalogImpl(argc, argv, orb); PortableServer::ObjectId_var cataid = poa->activate_object (Catalogue_i); //activate POA manager mgr->activate(); CORBA::Object_var myCata = Catalogue_i->_this(); Catalogue_i->_remove_ref(); // initialise Naming Service SALOME_NamingService _NS(orb); // register Catalog in Naming Service _NS.Register(myCata ,"/Kernel/ModulCatalog"); MESSAGE("Running CatalogServer."); #ifdef CHECKTIME Utils_Timer timer; timer.Start(); timer.Stop(); timer.ShowAbsolute(); #endif orb->run(); orb->destroy(); // mgr->deactivate(true,true); // poa->destroy(1,1); } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException.") } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception.") } END_OF( argv[0] ); return 0; } salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_impl.cxx000077500000000000000000001036751177004724000251350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_impl.cxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_impl.cxx,v 1.13.2.2.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #include "SALOME_ModuleCatalog_impl.hxx" #include "SALOME_ModuleCatalog_Acomponent_impl.hxx" #include #include #include #include "utilities.h" #ifdef WIN32 # include #endif #ifdef _DEBUG_ static int MYDEBUG = 0; #else static int MYDEBUG = 0; #endif static const char* SEPARATOR = "::"; static const char* OLD_SEPARATOR = ":"; std::list splitStringToList(const std::string& theString, const std::string& theSeparator) { std::list aList; int sepLen = theSeparator.length(); int startPos = 0, sepPos = theString.find(theSeparator, startPos); while (1) { std::string anItem ; if(sepPos != std::string::npos) anItem = theString.substr(startPos, sepPos - startPos); else anItem = theString.substr(startPos); if (anItem.length() > 0) aList.push_back(anItem); if(sepPos == std::string::npos) break; startPos = sepPos + sepLen; sepPos = theString.find(theSeparator, startPos); } return aList; } //---------------------------------------------------------------------- // Function : SALOME_ModuleCatalogImpl // Purpose : Constructor //---------------------------------------------------------------------- SALOME_ModuleCatalogImpl::SALOME_ModuleCatalogImpl(int argc, char** argv, CORBA::ORB_ptr orb) : _orb(orb) { if(MYDEBUG) MESSAGE("Catalog creation"); /* Init libxml */ xmlInitParser(); // Conversion rules for component types ComponentTypeConvert[GEOM] = SALOME_ModuleCatalog::GEOM; ComponentTypeConvert[MESH] = SALOME_ModuleCatalog::MESH; ComponentTypeConvert[Med] = SALOME_ModuleCatalog::Med; ComponentTypeConvert[SOLVER] = SALOME_ModuleCatalog::SOLVER; ComponentTypeConvert[DATA] = SALOME_ModuleCatalog::DATA; ComponentTypeConvert[VISU] = SALOME_ModuleCatalog::VISU; ComponentTypeConvert[SUPERV] = SALOME_ModuleCatalog::SUPERV; ComponentTypeConvert[OTHER] = SALOME_ModuleCatalog::OTHER; // Conversion rules for datastream parameters dependency DataStreamDepConvert["UNDEFINED"] = SALOME_ModuleCatalog::DATASTREAM_UNDEFINED; DataStreamDepConvert["T"] = SALOME_ModuleCatalog::DATASTREAM_TEMPORAL; DataStreamDepConvert["I"] = SALOME_ModuleCatalog::DATASTREAM_ITERATIVE; // Empty used variables _general_module_list.resize(0); _general_path_list.resize(0); _personal_module_list.resize(0); _personal_path_list.resize(0); // Parse the arguments given at server run if (!_parseArguments(argc, argv,&_general_path,&_personal_path)) if(MYDEBUG) MESSAGE( "Error while argument parsing" ); // Test existency of files if (_general_path == NULL) { if(MYDEBUG) MESSAGE( "Error the general catalog should be indicated" ); } else { // Affect the _general_module_list and _general_path_list members // with the common catalog std::list dirList; #ifdef WIN32 dirList = splitStringToList(_general_path, SEPARATOR); #else //check for new format bool isNew = (std::string( _general_path ).find(SEPARATOR) != std::string::npos); if ( isNew ) { //using new format dirList = splitStringToList(_general_path, SEPARATOR); } else { //support old format dirList = splitStringToList(_general_path, OLD_SEPARATOR); } #endif for (std::list::iterator iter = dirList.begin(); iter != dirList.end(); iter++) { std::string aPath = (*iter); //remove inverted commas from filename while (aPath.find('\"') != std::string::npos) aPath.erase(aPath.find('\"'), 1); _parse_xml_file(aPath.c_str(), _general_module_list, _general_path_list, _typeMap, _typeList); } // Verification of _general_path_list content if (!_verify_path_prefix(_general_path_list)) { if(MYDEBUG) MESSAGE( "Error while parsing the general path list, " "differents paths are associated to the same computer," "the first one will be choosen"); } else { if(MYDEBUG) MESSAGE("General path list OK"); } if (_personal_path != NULL) { // Initialize the _personal_module_list and // _personal_path_list members with the personal catalog files _parse_xml_file(_personal_path, _personal_module_list, _personal_path_list, _typeMap, _typeList); // Verification of _general_path_list content if(!_verify_path_prefix(_personal_path_list)){ if(MYDEBUG) MESSAGE("Error while parsing the personal path list, " "differents paths are associated to the same computer, " "the first one will be choosen" ); }else { if(MYDEBUG) MESSAGE("Personal path list OK"); } }else if(MYDEBUG) MESSAGE("No personal catalog indicated or error while " "opening the personal catalog"); } } //---------------------------------------------------------------------- // Function : ~SALOME_ModuleCatalogImpl // Purpose : Destructor //---------------------------------------------------------------------- SALOME_ModuleCatalogImpl::~SALOME_ModuleCatalogImpl() { if(MYDEBUG) MESSAGE("Catalog Destruction"); } //! Get the list of all types of the catalog /*! * \return the list of types */ SALOME_ModuleCatalog::ListOfTypeDefinition* SALOME_ModuleCatalogImpl::GetTypes() { SALOME_ModuleCatalog::ListOfTypeDefinition_var type_list = new SALOME_ModuleCatalog::ListOfTypeDefinition(); type_list->length(_typeList.size()); for (unsigned int ind = 0 ; ind < _typeList.size() ; ind++) { //no real need to call string_dup, omniorb calls it on operator= (const char *) but it is safer type_list[ind].name=CORBA::string_dup(_typeList[ind].name.c_str()); type_list[ind].kind=SALOME_ModuleCatalog::NONE; if(_typeList[ind].kind=="double") type_list[ind].kind=SALOME_ModuleCatalog::Dble; else if(_typeList[ind].kind=="int") type_list[ind].kind=SALOME_ModuleCatalog::Int; else if(_typeList[ind].kind=="bool") type_list[ind].kind=SALOME_ModuleCatalog::Bool; else if(_typeList[ind].kind=="string") type_list[ind].kind=SALOME_ModuleCatalog::Str; else if(_typeList[ind].kind=="objref") { type_list[ind].kind=SALOME_ModuleCatalog::Objref; type_list[ind].id=CORBA::string_dup(_typeList[ind].id.c_str()); //bases type_list[ind].bases.length(_typeList[ind].bases.size()); std::vector::const_iterator miter; miter=_typeList[ind].bases.begin(); int n_memb=0; while(miter != _typeList[ind].bases.end()) { type_list[ind].bases[n_memb]=CORBA::string_dup(miter->c_str()); miter++; n_memb++; } } else if(_typeList[ind].kind=="sequence") { type_list[ind].kind=SALOME_ModuleCatalog::Seq; type_list[ind].content=CORBA::string_dup(_typeList[ind].content.c_str()); } else if(_typeList[ind].kind=="array") { type_list[ind].kind=SALOME_ModuleCatalog::Array; type_list[ind].content=CORBA::string_dup(_typeList[ind].content.c_str()); } else if(_typeList[ind].kind=="struct") { type_list[ind].kind=SALOME_ModuleCatalog::Struc; //members type_list[ind].members.length(_typeList[ind].members.size()); std::vector< std::pair >::const_iterator miter; miter=_typeList[ind].members.begin(); int n_memb=0; while(miter != _typeList[ind].members.end()) { type_list[ind].members[n_memb].name=CORBA::string_dup(miter->first.c_str()); type_list[ind].members[n_memb].type=CORBA::string_dup(miter->second.c_str()); n_memb++; miter++; } } } return type_list._retn(); } //---------------------------------------------------------------------- // Function : GetComputerList // Purpose : get a computer list //---------------------------------------------------------------------- SALOME_ModuleCatalog::ListOfComputers* SALOME_ModuleCatalogImpl::GetComputerList() { SALOME_ModuleCatalog::ListOfComputers_var _list_computers = new SALOME_ModuleCatalog::ListOfComputers; return _list_computers._retn(); } //---------------------------------------------------------------------- // Function : GetPathPrefix // Purpose : get the PathPrefix of a computer //---------------------------------------------------------------------- char * SALOME_ModuleCatalogImpl::GetPathPrefix(const char* machinename) { if(MYDEBUG) MESSAGE("Begin of GetPathPrefix"); // Variables initialisation char* _path = NULL; bool _find = false ; // Parse all the path prefixes // looking for the wanted computer for (unsigned int ind = 0 ; ind < _personal_path_list.size() ; ind++) { for (unsigned int ind1 = 0 ; ind1 < _personal_path_list[ind].listOfComputer.size() ; ind1++) { if (strcmp(machinename, _personal_path_list[ind].listOfComputer[ind1].c_str()) == 0) { _find = true ; // Wanted computer // affect the path to be returned const char* _temp = _personal_path_list[ind].path.c_str() ; _path = new char[strlen(_temp)+1]; strcpy(_path,_temp); } } } if (!_find) { for (unsigned int ind = 0 ; ind < _general_path_list.size() ; ind++) { for (unsigned int ind1 = 0 ; ind1 < _general_path_list[ind].listOfComputer.size() ; ind1++) { if (strcmp(machinename, _general_path_list[ind].listOfComputer[ind1].c_str()) == 0) { _find = true ; // Wanted computer // affect the path to be returned const char* _temp = _general_path_list[ind].path.c_str() ; _path = new char[strlen(_temp)+1]; strcpy(_path,_temp); } } } } return _path; } //---------------------------------------------------------------------- // Function : GetComponentList // Purpose : get a component list // If a component is defined in the personal catalog and // in the general catalog (same name), the component defined // in the personal catalog is used //---------------------------------------------------------------------- SALOME_ModuleCatalog::ListOfComponents* SALOME_ModuleCatalogImpl::GetComponentList() { if(MYDEBUG) MESSAGE("Begin of GetComponentList"); SALOME_ModuleCatalog::ListOfComponents_var _list_components = new SALOME_ModuleCatalog::ListOfComponents; _list_components->length(_personal_module_list.size()); // All the components defined in the personal catalog are taken for(unsigned int ind=0; ind < _personal_module_list.size();ind++){ _list_components[ind]=(_personal_module_list[ind].name).c_str(); if(MYDEBUG) SCRUTE(_list_components[ind]) ; } int indice = _personal_module_list.size() ; bool _find = false; // The components in the general catalog are taken only if they're // not defined in the personal catalog for(unsigned int ind=0; ind < _general_module_list.size();ind++){ _find = false; for(unsigned int ind1=0; ind1 < _personal_module_list.size();ind1++){ // searching if the component is already defined in // the personal catalog if ((_general_module_list[ind].name.compare(_personal_module_list[ind1].name)) == 0) _find = true; } if(!_find){ if(MYDEBUG) MESSAGE("A new component " << _general_module_list[ind].name << " has to be to added in the list"); _list_components->length(indice+1); // The component is not already defined => has to be taken _list_components[indice]=(_general_module_list[ind].name).c_str(); if(MYDEBUG) SCRUTE(_list_components[indice]) ; indice++; }else{ if(MYDEBUG) MESSAGE("The component " <<_general_module_list[ind].name << " was already defined in the personal catalog") ; } } if(MYDEBUG) MESSAGE ( "End of GetComponentList" ); return _list_components._retn(); } //---------------------------------------------------------------------- // Function : GetComponentIconeList // Purpose : get a component list of component name and component icone // If a component is defined in the personal catalog and // in the general catalog (same name), the component defined // in the personal catalog is used //---------------------------------------------------------------------- SALOME_ModuleCatalog::ListOfIAPP_Affich* SALOME_ModuleCatalogImpl::GetComponentIconeList() { if(MYDEBUG) MESSAGE("Begin of GetComponentIconeList"); SALOME_ModuleCatalog::ListOfIAPP_Affich_var _list_components_icone = new SALOME_ModuleCatalog::ListOfIAPP_Affich; _list_components_icone->length(_personal_module_list.size()); // All the components defined in the personal catalog are taken for(unsigned int ind=0; ind < _personal_module_list.size();ind++){ _list_components_icone[ind].modulename=(_personal_module_list[ind].name).c_str(); _list_components_icone[ind].moduleusername=(_personal_module_list[ind].username).c_str(); _list_components_icone[ind].moduleicone=(_personal_module_list[ind].icon).c_str(); _list_components_icone[ind].moduleversion=(_personal_module_list[ind].version).c_str(); _list_components_icone[ind].modulecomment=(_personal_module_list[ind].comment).c_str(); //if(MYDEBUG) SCRUTE(_list_components_icone[ind].modulename); //if(MYDEBUG) SCRUTE(_list_components_icone[ind].moduleicone); } int indice = _personal_module_list.size() ; bool _find = false; // The components in the general catalog are taken only if they're // not defined in the personal catalog for(unsigned int ind=0; ind < _general_module_list.size();ind++){ _find = false; for(unsigned int ind1=0; ind1 < _personal_module_list.size();ind1++){ // searching if the component is aleready defined in // the personal catalog if((_general_module_list[ind].name.compare(_personal_module_list[ind1].name)) == 0) _find = true; } if(!_find){ // if(MYDEBUG) MESSAGE("A new component " << _general_module_list[ind].name << " has to be to added in the list"); _list_components_icone->length(indice+1); // The component is not already defined => has to be taken _list_components_icone[indice].modulename=_general_module_list[ind].name.c_str(); _list_components_icone[indice].moduleusername=_general_module_list[ind].username.c_str(); _list_components_icone[indice].moduleicone=_general_module_list[ind].icon.c_str(); _list_components_icone[indice].moduleversion=_general_module_list[ind].version.c_str(); _list_components_icone[indice].modulecomment=_general_module_list[ind].comment.c_str(); //if(MYDEBUG) SCRUTE(_list_components_icone[indice].modulename) ; //if(MYDEBUG) SCRUTE(_list_components_icone[indice].moduleicone); indice++; } // else //if(MYDEBUG) MESSAGE("The component " <<_general_module_list[ind].name << " was already defined in the personal catalog"); } return _list_components_icone._retn() ; } //---------------------------------------------------------------------- // Function : GetTypedComponentList // Purpose : get a component list of a wanted type // If a component is defined in the personal catalog and // in the general catalog (same name), the component defined // in the personal catalog is used //---------------------------------------------------------------------- SALOME_ModuleCatalog::ListOfComponents* SALOME_ModuleCatalogImpl::GetTypedComponentList(SALOME_ModuleCatalog::ComponentType component_type) { if(MYDEBUG) MESSAGE("Begin of GetTypedComponentList"); SALOME_ModuleCatalog::ListOfComponents_var _list_typed_component = new SALOME_ModuleCatalog::ListOfComponents; int _j = 0; _list_typed_component->length(0); // Transform SALOME_ModuleCatalog::ComponentType in ParserComponentType ParserComponentType _temp_component_type; switch(component_type){ case SALOME_ModuleCatalog::GEOM: _temp_component_type = GEOM ; break; case SALOME_ModuleCatalog::MESH: _temp_component_type = MESH; break; case SALOME_ModuleCatalog::Med: _temp_component_type = Med; break; case SALOME_ModuleCatalog::SOLVER: _temp_component_type = SOLVER; break; case SALOME_ModuleCatalog::DATA: _temp_component_type = DATA; break; case SALOME_ModuleCatalog::VISU: _temp_component_type = VISU; break; case SALOME_ModuleCatalog::SUPERV: _temp_component_type = SUPERV; break; case SALOME_ModuleCatalog::OTHER: _temp_component_type = OTHER; break; } // All the components in the personal catalog are taken for (unsigned int ind=0; ind < _personal_module_list.size();ind++) { if (_personal_module_list[ind].type == _temp_component_type) { _list_typed_component->length(_j + 1); _list_typed_component[_j] = _personal_module_list[ind].name.c_str(); //if(MYDEBUG) SCRUTE(_list_typed_component[_j]); _j++; } } int indice = _list_typed_component->length() ; bool _find = false; // The components in the general catalog are taken only if they're // not defined in the personal catalog for (unsigned int ind=0; ind < _general_module_list.size();ind++) { _find = false; if(_general_module_list[ind].type == _temp_component_type) { for (unsigned int ind1=0; ind1 < _personal_module_list.size();ind1++) { // searching if the component is aleready defined in // the personal catalog if ((_general_module_list[ind].name.compare(_personal_module_list[ind1].name)) == 0) _find = true; } if (!_find) { //if(MYDEBUG) MESSAGE("A new component " << _general_module_list[ind].name << " has to be to added in the list"); _list_typed_component->length(indice+1); // The component is not already defined => has to be taken _list_typed_component[indice]=(_general_module_list[ind].name).c_str(); //if(MYDEBUG) SCRUTE(_list_typed_component[indice]) ; indice++; } //else //if(MYDEBUG) MESSAGE("The component " <<_general_module_list[ind].name << " was already defined in the personal catalog") ; } } return _list_typed_component._retn(); } //---------------------------------------------------------------------- // Function : GetComponent // Purpose : get a component // If a component is defined in the personal catalog and // in the general catalog (same name), the component defined // in the personal catalog is used //---------------------------------------------------------------------- SALOME_ModuleCatalog::Acomponent_ptr SALOME_ModuleCatalogImpl::GetComponent(const char* name) { // Looking for component named "componentname" in the personal catalog // If found, get name, interfaces and constraint // If not found, looking for component named "componentname" in // the general catalog // If found, get name, interfaces and constraint // If not found, NULL pointer is returned std::string s(name); ParserComponent *C_parser = NULL; //ParserPathPrefixes *pp = NULL; SALOME_ModuleCatalog::Acomponent_ptr compo = SALOME_ModuleCatalog::Acomponent::_nil(); C_parser = findComponent(s); if (C_parser) { // DebugParserComponent(*C_parser); SALOME_ModuleCatalog::ComponentDef C_corba; duplicate(C_corba, *C_parser); SALOME_ModuleCatalog_AcomponentImpl * aComponentImpl = new SALOME_ModuleCatalog_AcomponentImpl(C_corba); compo = aComponentImpl->_this(); } else { // Not found in the personal catalog and in the general catalog // return NULL object if(MYDEBUG) MESSAGE("Component with name " << name << " not found in catalog"); } return compo; } SALOME_ModuleCatalog::ComponentDef * SALOME_ModuleCatalogImpl::GetComponentInfo(const char *name) { std::string s(name); ParserComponent * C_parser = findComponent(s); if (C_parser) { SALOME_ModuleCatalog::ComponentDef * C_corba = new SALOME_ModuleCatalog::ComponentDef; duplicate(*C_corba, *C_parser); return C_corba; } return NULL; } CORBA::Long SALOME_ModuleCatalogImpl::getPID() { return #ifndef WIN32 (CORBA::Long)getpid(); #else (CORBA::Long)_getpid(); #endif } void SALOME_ModuleCatalogImpl::ShutdownWithExit() { exit( EXIT_SUCCESS ); } ParserComponent * SALOME_ModuleCatalogImpl::findComponent(const std::string & name) { ParserComponent * C_parser = NULL; if (!C_parser) for (unsigned int ind=0; ind < _personal_module_list.size();ind++) { if (name.compare(_personal_module_list[ind].name) == 0) { if(MYDEBUG) MESSAGE("Component named " << name << " found in the personal catalog"); C_parser = &(_personal_module_list[ind]); break; } } if (!C_parser) for (unsigned int ind=0; ind < _general_module_list.size();ind++) { if (name.compare(_general_module_list[ind].name) == 0) { // if(MYDEBUG) MESSAGE("Component named " << name // << " found in the general catalog"); C_parser = &(_general_module_list[ind]); break; } } return C_parser; } //---------------------------------------------------------------------- // Function : _parse_xml_file // Purpose : parse one module catalog //---------------------------------------------------------------------- void SALOME_ModuleCatalogImpl::_parse_xml_file(const char* file, ParserComponents& modulelist, ParserPathPrefixes& pathList, ParserTypes& typeMap, TypeList& typeList) { if(MYDEBUG) BEGIN_OF("_parse_xml_file"); if(MYDEBUG) SCRUTE(file); //Local path and module list for the file to parse ParserPathPrefixes _pathList; ParserComponents _moduleList; SALOME_ModuleCatalog_Handler* handler = new SALOME_ModuleCatalog_Handler(_pathList,_moduleList,typeMap,typeList); FILE* aFile = fopen(file, "r"); if (aFile != NULL) { xmlDocPtr aDoc = xmlReadFile(file, NULL, 0); if (aDoc != NULL) handler->ProcessXmlDocument(aDoc); else MESSAGE("ModuleCatalog: could not parse file "<::const_iterator it_dep; // duplicate parameter name P_corba.Parametername = CORBA::string_dup(P_parser.name.c_str()); // duplicate parameter type // doesn't work ??? // it_type = DataStreamTypeConvert.find(P_parser.type); // P_corba.Parametertype // = (it_type == DataStreamTypeConvert.end()) // ? it_type->second : SALOME_ModuleCatalog::DATASTREAM_UNKNOWN; P_corba.Parametertype = CORBA::string_dup(P_parser.type.c_str()); // duplicate parameter dependency if(MYDEBUG) SCRUTE(P_parser.dependency); P_corba.Parameterdependency = SALOME_ModuleCatalog::DATASTREAM_UNDEFINED; for (it_dep = DataStreamDepConvert.begin(); it_dep != DataStreamDepConvert.end(); it_dep++) if (P_parser.dependency.compare(it_dep->first) == 0) { P_corba.Parameterdependency = it_dep->second; break; } if(MYDEBUG) SCRUTE(P_corba.Parameterdependency); } //---------------------------------------------------------------------- // Function : duplicate // Purpose : create the path prefix structures from the catalog parsing //---------------------------------------------------------------------- void SALOME_ModuleCatalogImpl::duplicate(ParserPathPrefixes &L_out, const ParserPathPrefixes &L_in) { L_out = L_in; } //---------------------------------------------------------------------- // Function : _verify_path_prefix // Purpose : verify the path prefix structures from the catalog parsing // Verify that there only one path prefix associated to a // particular computer //---------------------------------------------------------------------- bool SALOME_ModuleCatalogImpl::_verify_path_prefix(ParserPathPrefixes & pathList) { bool _return_value = true; std::vector _machine_list; // Fill a list of all computers indicated in the path list for (unsigned int ind = 0; ind < pathList.size(); ind++) { for (unsigned int ind1 = 0 ; ind1 < pathList[ind].listOfComputer.size(); ind1++) { _machine_list.push_back(pathList[ind].listOfComputer[ind1]); } } // Parse if a computer name is twice in the list of computers for (unsigned int ind = 0; ind < _machine_list.size(); ind++) { for (unsigned int ind1 = ind+1 ; ind1 < _machine_list.size(); ind1++) { if(_machine_list[ind].compare(_machine_list[ind1]) == 0) { if(MYDEBUG) MESSAGE( "The computer " << _machine_list[ind] << " is indicated more than once in the path list"); _return_value = false; } } } return _return_value; } //---------------------------------------------------------------------- // Function : _parseArguments // Purpose : parse arguments to get general and personal catalog files //---------------------------------------------------------------------- bool SALOME_ModuleCatalogImpl::_parseArguments(int argc, char **argv, char **_general, char** _personal) { bool _return_value = true; *_general = NULL; *_personal = NULL ; for (int ind = 0; ind < argc ; ind++) { if (strcmp(argv[ind],"-help") == 0) { INFOS( "Usage: " << argv[0] << " -common 'path to general catalog' " " -personal 'path to personal catalog' " " -ORBInitRef NameService=corbaname::localhost"); _return_value = false ; } if (strcmp(argv[ind],"-common") == 0) { if (ind + 1 < argc) { // General catalog file *_general = argv[ind + 1] ; } } else if (strcmp(argv[ind],"-personal") == 0) { if (ind + 1 < argc) { // Personal catalog file *_personal = argv[ind + 1] ; } } } return _return_value; } salome-kernel-6.5.0/src/ModuleCatalog/SALOME_ModuleCatalog_impl.hxx000077500000000000000000000171231177004724000251320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules // File : SALOME_ModuleCatalog_impl.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_impl.hxx,v 1.8.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $ // #ifndef MODULECATALOG_IMPL_H #define MODULECATALOG_IMPL_H #include "SALOME_ModuleCatalog.hxx" #include #include #include "SALOME_ModuleCatalog_Handler.hxx" #include #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog) #ifdef WNT #pragma warning(disable:4275) // Disable warning interface non dll #pragma warning(disable:4290) // Warning Exception ... #endif class MODULECATALOG_EXPORT SALOME_ModuleCatalogImpl: public POA_SALOME_ModuleCatalog::ModuleCatalog { public: //! standard constructor SALOME_ModuleCatalogImpl(int artgc, char** argv, CORBA::ORB_ptr orb = NULL); //! standard destructor virtual ~SALOME_ModuleCatalogImpl(); //! method to get a component list /*! \return a component list */ virtual SALOME_ModuleCatalog::ListOfComputers* GetComputerList(); //! method to get the list of all types of the catalog /*! * \return the types list */ virtual SALOME_ModuleCatalog::ListOfTypeDefinition* GetTypes(); //! method to get the PathPrefix of a computer /*! If the wanted computer doesn't exist, the Notfound exception is thrown \param machinename const char* arguments \return the prefix path */ virtual char* GetPathPrefix(const char* machinename); //! method to read a XML file and import new components into the component list /*! If the XML file doesn't exist or is not readable, the Notfound exception is thrown \param const char* xmlFileName */ virtual void ImportXmlCatalogFile(const char* xmlFileName); //! method to get a component list /*! \return a component list */ virtual SALOME_ModuleCatalog::ListOfComponents* GetComponentList(); //! method to get a component list of component name and component icone /*! \return a list of couple (component name, component icone) */ virtual SALOME_ModuleCatalog::ListOfIAPP_Affich* GetComponentIconeList(); //! method to get a component list of a wanted type /*! \return a component list */ virtual SALOME_ModuleCatalog::ListOfComponents* GetTypedComponentList(SALOME_ModuleCatalog::ComponentType component_type); //! method to get a component /*! \param componentname const char* arguments \return the wanted component */ virtual SALOME_ModuleCatalog::Acomponent_ptr GetComponent(const char* componentname); //! method to get a component description /*! \param componentname const char* arguments \return the wanted component description */ virtual SALOME_ModuleCatalog::ComponentDef * GetComponentInfo(const char *name); void ping(){}; CORBA::Long getPID(); void ShutdownWithExit(); void shutdown() { if(!CORBA::is_nil(_orb)) _orb->shutdown(0); }; private: //! method to parse one module catalog /*! \param file const char* arguments \param modulelist ParserComponents arguments \param pathlist ParserPathPrefixes arguments \param typeMap ParserTypes arguments */ virtual void _parse_xml_file(const char* file, ParserComponents & modulelist, ParserPathPrefixes & pathlist, ParserTypes& typeMap, TypeList& typeList); //! method to find component in the parser list /*! \param name string argument \return pointer on a component, NULL if not found */ ParserComponent *findComponent(const std::string & name); //! method to create a CORBA component description from parser /*! \param C_corba Component argument \param C_parser const ParserComponent argument */ void duplicate(SALOME_ModuleCatalog::ComponentDef & C_corba, const ParserComponent & C_parser); //! method to create a CORBA interface description from parser /*! \param I_corba DefinitionInterface argument \param I_parser const ParserInterface argument */ void duplicate(SALOME_ModuleCatalog::DefinitionInterface & I_corba, const ParserInterface & I_parser); //! method to create a CORBA service description from parser /*! \param S_corba Service argument \param S_parser const ParserService argument */ void duplicate(SALOME_ModuleCatalog::Service & S_corba, const ParserService & service); //! method to create a CORBA parameter description from parser /*! \param P_corba ServicesParameter argument \param P_parser const ParserParameter argument */ void duplicate(SALOME_ModuleCatalog::ServicesParameter & P_corba, const ParserParameter & P_parser); //! method to create a CORBA datastream parameter description from parser /*! \param P_corba ServicesDataStreamParameter argument \param P_parser const ParserDataStreamParameter argument */ void duplicate(SALOME_ModuleCatalog::ServicesDataStreamParameter & P_corba, const ParserDataStreamParameter & P_parser); //! method to create the path prefix structures from the catalog parsing /*! \param pathes ParserPathPrefixes arguments \return the pathes */ void duplicate(ParserPathPrefixes & p_out, const ParserPathPrefixes & P_in); //! method to verify path prefix content /*! \param pathlist ListOfParserPathPrefix arguments \return true if verfication is OK */ virtual bool _verify_path_prefix(ParserPathPrefixes & pathlist); //! method to parse arguments to get general and personal catalog files /*! \param argc int arguments \param argv char** arguments \param _general char** arguments \return true if parsing is OK */ virtual bool _parseArguments(int argc, char **argv, char **_general, char** _personal); // Theses variables will contain the path to the general and personal catalogs char* _general_path; char* _personal_path; // These variables will contain the informations on the general common catalog ParserComponents _general_module_list ; ParserPathPrefixes _general_path_list ; ParserTypes _typeMap; TypeList _typeList; // These variables will contain the informations on the personal catalog ParserComponents _personal_module_list ; ParserPathPrefixes _personal_path_list ; std::map DataStreamDepConvert; std::map ComponentTypeConvert; CORBA::ORB_ptr _orb; }; #endif // MODULECATALOG_IMPL_H salome-kernel-6.5.0/src/ModuleCatalog/TestModuleCatalog.py000077500000000000000000000071221177004724000235300ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import batchmode_salome import SALOME_ModuleCatalog print print "======================================================================" print " XML Catalog file generation from idl file" print "======================================================================" import os os.system('runIDLparser -Wbcatalog=x \ ${KERNEL_ROOT_DIR}/idl/salome/SALOME_TestModuleCatalog.idl') print "======================================================================" print " Get Catalog " print "======================================================================" obj = batchmode_salome.naming_service.Resolve('Kernel/ModulCatalog') catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog) catalog.GetComponentList() print print "======================================================================" print " Import xml file " print "======================================================================" catalog.ImportXmlCatalogFile("x.xml") name = "AddComponent" print print "======================================================================" print " Dump component <", name, "> " print "======================================================================" C = catalog.GetComponent(name) print "name : ", C._get_componentname() print "username : ", C._get_componentusername() print "type : ", C._get_component_type() print "constraint : ", C._get_constraint() print "icon : ", C._get_component_icone() for iL in C.GetInterfaceList(): I = C.GetInterface(iL) print "interface : ", I.interfacename for S in I.interfaceservicelist: print " service : ", S.ServiceName print " ", len(S.ServiceinParameter), "in params : " for iP in S.ServiceinParameter: print ' ' + iP.Parametername + '(' + iP.Parametertype + ')' pass print " ", len(S.ServiceoutParameter), "out params : " for iP in S.ServiceoutParameter: print ' ' + iP.Parametername + '(' + iP.Parametertype + ')' pass print " ", len(S.ServiceinDataStreamParameter), "in datastream params : " for iP in S.ServiceinDataStreamParameter: print ' ' + iP.Parametername + '(' + str(iP.Parametertype) + ', ' + \ str(iP.Parameterdependency) + ')' pass print " ", len(S.ServiceoutDataStreamParameter), "out datastream params : " for iP in S.ServiceoutDataStreamParameter: print ' ' + iP.Parametername + '(' + str(iP.Parametertype) + ', ' + \ str(iP.Parameterdependency) + ')' pass pass pass salome-kernel-6.5.0/src/ModuleGenerator/000077500000000000000000000000001177004724000201455ustar00rootroot00000000000000salome-kernel-6.5.0/src/ModuleGenerator/IDLparser.py000077500000000000000000000674321177004724000223630ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : IDLparser.py # Module : SALOME import string, sys, fpformat, re, os import xml.sax import pdb from xml.sax.handler import * from omniidl import idlast, idltype, idlvisitor, idlutil, output # parameters not found in IDL file, user's specified in optional parameters common_data={"AUTHOR" : "", "ICON" : "", "VERSION" : "", "COMP_TYPE" : "", "COMP_NAME" : "", "COMP_UNAME" : "", "COMP_MULT" : "", "COMP_IMPL" : "" } nb_components = 0 #-------------------------------------------------- # extract value of from list # it's proposed that the matching item # looks like =, for example, # catalog=/tmp/myxml.xml #-------------------------------------------------- def getParamValue( param_name, default_value, args ): pattern="^"+param_name+"=" res = default_value #initial value for opt in args: s = re.compile(pattern).search(opt) if s: res = opt[s.end():] break #found return res #-------------------------------------------------- # print error message #-------------------------------------------------- def error (message): print "ERROR : ", message #-------------------------------------------------- # base class implementing tree #-------------------------------------------------- class Tree: def __init__(self, name = '', content = '', key = None): self.name = name self.content = content self.key = key self.parent = None self.childs = [] self.comments = [] self.attrs={} def addChild(self, tree): if tree is not None: self.childs.append(tree) tree.parent = self return tree def addNamedChild(self, name, content = ''): return self.addChild(Tree(name, content)) def replaceChild(self, tree): if tree is not None: pos = 0 for i in self.childs: if (i.name == tree.name) & ((i.key is None) | (i.key == tree.key)): self.childs.pop(pos) self.childs.insert(pos, tree) return tree pos += 1 return self.addChild(tree) def insertFirstChild(self, tree): if tree is not None: self.childs.insert(0, tree) return tree def insertFirstNamedChild(self, name, content = ''): return self.insertFirstChild(Tree(name, content)) def output_xml(self, f, depth=0): d = depth if self.name != '': s = string.ljust('', 4*depth) s += '<' + self.name for k,v in self.attrs.items(): s += ' ' + k + '="' + v + '"' s += '>' if self.content != '': s += self.content else: if len(self.childs) > 0: s += '\n' f.write(s) d += 1 for i in self.childs: i.output_xml(f, d) if self.name != '': s = '\n' if len(self.childs) > 0 : s = string.ljust('', 4*depth) + s f.write(s) def Dump(self, levels=-1, depth=0): #Dumps the tree contents if levels == 0: return s = string.ljust('', 4*depth) print s, self, self.content for i in self.childs: i.Dump(levels-1, depth+1) def parents(self): #Returns list of the parents l = [] p = self.parent while p: l.append(p) l.append(p.name) p = p.parent return l def getChild(self, name, content=None): # return child node with a given name # if content == None, don't compare contents for i in self.childs: if (i.name == name): if (content is None) | (i.content == content): return i return None def getNode(self, name, content='', depth=-1): # recursive search of a node with a given name # content == None, don't compare content if (self.name == name): if (content is None) | (self.content == content): return self if (depth != 0): for i in self.childs: n = i.getNode(name, content, depth-1) if n: return n return None def __repr__(self): s = '<' if self.name != '': s += self.name else: s += 'None' s += '>' return s def merge(self, t): pass def mergeChilds(self, t, list): L_ext = t.getChild(list) L_int = self.getChild(list) L_merge = Tree(list) for i_ext in L_ext.childs: k_ext = i_ext.key if k_ext is None: continue present = 0 for i_int in L_int.childs: k_int = i_int.key if k_int is None: continue if (k_int == k_ext): present = 1 break; if present : i_int.merge(i_ext) L_merge.addChild(i_int) else: L_merge.addChild(i_ext) self.replaceChild(L_merge) def setAttrib(self, name,value): self.attrs[name]=value #-------------------------------------------------- # implements parameter tree #-------------------------------------------------- class parameter(Tree): def __init__(self, name=None, mode = 'in', type='', comment='unknown'): Tree.__init__(self, mode + 'Parameter', key=name) self.mode = mode if name is None: return self.addNamedChild(mode + 'Parameter-name', name) self.addNamedChild(mode + 'Parameter-type', type) self.addNamedChild(mode + 'Parameter-comment', comment) def merge(self, P): self.mode = P.mode self.replaceChild(P.getChild(P.mode + 'Parameter-name')) self.replaceChild(P.getChild(P.mode + 'Parameter-type')) C = P.getChild(P.mode + 'Parameter-comment') if C.content != 'unkonwn': self.replaceChild(C) #-------------------------------------------------- # implements dataStreamParameter tree #-------------------------------------------------- class dataStreamParameter(parameter): def __init__(self, name=None, mode='in', type='', dependency='', comment='unknown'): parameter.__init__(self, name, mode, type, comment) if name is None: return self.addNamedChild(mode + 'Parameter-dependency', dependency) self.mode = mode def merge(self, P): parameter.merge(self, P) self.replaceChild(P.getChild(mode + 'Parameter-dependency')) def parseComment(comment): spaces = '[\t\n ]*' word = spaces + '([a-zA-Z][a-zA-Z0-9_]*)' + spaces result = [] type = None key = None ## match : // followed by a 'DataStreamPorts' string, ## the service name, and a list of ports pattern = '// *DataStreamPorts{,1}' + word m = re.match(pattern, comment) ## if there is a match, parse remaining part of comment if m: ## service type = 'DataStreamPorts' key = m.group(1) sPorts = comment[m.end():] pattern = word + '\('+word+','+word +','+word+'\)' \ + spaces + ',{,1}' + spaces while len(sPorts) > 0: ## process next DataStreamPort ## match a definition like xx(a,b,c) with a possible trailing , ## returns a tuple (xx, a, b, c) and ## the remaining part of input string m = re.match(pattern, sPorts) if m is None: raise LookupError, \ 'format error in DataStreamPort definition : '+sPorts sPorts = sPorts[m.end():] result.append(m.groups()) return type, key, result; #-------------------------------------------------- # implements service tree #-------------------------------------------------- class Service(Tree): def __init__(self, name=None, comment = 'unknown'): Tree.__init__(self, 'component-service', key=name) if name is None: return self.addNamedChild('service-name', name) self.addNamedChild('service-author',common_data["AUTHOR"]) self.addNamedChild('service-version',common_data["VERSION"]) self.addNamedChild('service-comment', comment) self.addNamedChild('service-by-default', "0") self.addNamedChild('inParameter-list') self.addNamedChild('outParameter-list') self.addNamedChild('DataStream-list') def createInParameter(self, name, type): L = self.getChild('inParameter-list') p = parameter(name, 'in', type) L.replaceChild(p) return p def createOutParameter(self, name, type): L = self.getChild('outParameter-list') p = parameter(name, 'out', type) L.replaceChild(p) return p def createDataStreamParameter(self, p): L = self.getChild('DataStream-list') p = dataStreamParameter(p[0], p[2], p[1], p[3]) L.replaceChild(p) return p def merge(self, S): self.replaceChild(S.getChild('service-author')) self.replaceChild(S.getChild('service-version')) self.replaceChild(S.getChild('service-by-default')) C = S.getChild('service-comment') if C.content != 'unkonwn': self.replaceChild(C) for L in ['inParameter-list', 'outParameter-list', 'DataStream-list']: self.mergeChilds(S, L) #-------------------------------------------------- # implements interface tree #-------------------------------------------------- class Interface(Tree): def __init__(self, name=None, comment='unknown'): Tree.__init__(self, key=name) if name is None: return self.addNamedChild('component-interface-name', name) self.addNamedChild('component-interface-comment', comment); self.addNamedChild('component-service-list') def createService(self, name): L = self.getChild('component-service-list') if L is None: error ("Interface.createService() : 'component-service-list' is not found") return None s = Service(name) L.addChild(s) return s def findService(self, key): L = self.getChild('component-service-list') for S in L.childs: if S.key == key: return S return None def merge(self, I): C = S.getChild('component-interface-comment') if C.content != 'unkonwn': self.replaceChild(C) self.mergeChilds(I, 'component-service-list') def processDataStreams(self): for sComment in self.comments: type, key, result = parseComment(sComment) if type == 'DataStreamPorts': Service = self.findService(key) if Service is None: raise LookupError, \ 'service ' + key + \ ' not found in interface : ' + self.key for p in result: ## process next DataStreamPort Service.createDataStreamParameter(p) #-------------------------------------------------- # implements Component tree #-------------------------------------------------- class Component(Tree): def __init__(self, name=None): Tree.__init__(self, 'component', key=name) if name is None: return # ASV : fix for bug PAL8922 (Component name indicated by user in GUI is not taken into account if common_data["COMP_NAME"] != '': self.addNamedChild('component-name', common_data["COMP_NAME"]) else: self.addNamedChild('component-name', name) # ASV : if user name is NOT set, then use component-name instead. Else - default. if common_data["COMP_UNAME"] != '': self.addNamedChild('component-username', common_data["COMP_UNAME"]) else: if common_data["COMP_NAME"] != '': self.addNamedChild('component-username', common_data["COMP_NAME"] ) else: self.addNamedChild('component-username', name) self.addNamedChild('component-type', common_data["COMP_TYPE"]) self.addNamedChild('component-author', common_data["AUTHOR"]) self.addNamedChild('component-version', common_data["VERSION"]) self.addNamedChild('component-comment', 'unknown') self.addNamedChild('component-multistudy', common_data["COMP_MULT"]) self.addNamedChild('component-impltype', common_data["COMP_IMPL"]) self.addNamedChild('component-icone', common_data["ICON"]) self.addNamedChild('constraint') self.addNamedChild('component-interface-list') def createInterface(self, name): L = self.getChild('component-interface-list') if L is None: error("createInterface: No component-interface-list is found") return None i = Interface(name) L.addChild(i) return i def merge(self, C): for i in ['component-username', 'component-author', 'component-type', 'component-icone', 'component-version', 'component-multistudy', 'component-impltype', 'constraint']: ext = C.getChild(i) int = self.getChild(i) if int is None: int = ext elif ext is not None and len(ext.content): int.content = ext.content Cc = C.getChild('component-comment') if Cc.content != 'unkonwn': self.replaceChild(Cc) self.mergeChilds(C, 'component-interface-list') #-------------------------------------------------- # implements document tree #-------------------------------------------------- class Catalog(ContentHandler, Tree): def __init__(self, filename = None): Tree.__init__(self) self.buffer = '' self.list = [] if (filename): parser = xml.sax.make_parser() parser.setContentHandler(self) parser.parse(filename) else: t = self.addNamedChild('begin-catalog') t.addNamedChild('type-list') t.addNamedChild('component-list') n = self.getChild('begin-catalog') if n is None: error("Catalog.__init__ : No 'begin-catalog' is found!") return if n.getChild('path-prefix-list') is None: n.insertFirstNamedChild('path-prefix-list') if n.getChild('type-list') is None: p=n.childs.index(n.getChild('path-prefix-list')) n.childs.insert(p+1,Tree('type-list')) if n.getChild('component-list') is None: n.addNamedChild('component-list') def removeComponent(self, name): complist = self.getNode('component-list') idx = 0 if complist is None: print "Catalog.removeComponent() : 'component-list' is not found" return for comp in complist.childs: cname = comp.getChild('component-name') if cname is not None: if cname.content == name: complist.childs.pop(idx) print "Component " + name + " is removed" idx += 1 def startDocument(self): self.list.append(self) def startElement(self, name, attrs): p = self.list[len(self.list)-1] if name == 'component': e = p.addChild(Component()) elif name == 'component-interface-name': e = p.addNamedChild(name) elif name == 'component-service': e = p.addChild(Service()) elif name == 'inParameter': e = p.addChild(parameter(mode='in')) elif name == 'outParameter': e = p.addChild(parameter(mode='out')) elif name == 'sequence': e = p.addChild(SeqType(attrs["name"],attrs["content"])) elif name == 'objref': e = p.addChild(ObjType(attrs["name"])) elif name == 'struct': e = p.addChild(StructType(attrs["name"])) elif name == 'type': e = p.addChild(Type(attrs["name"],attrs["kind"])) elif name == 'member': e = p.addChild(Member(attrs["name"],attrs["type"])) else: e = p.addNamedChild(name) self.list.append(e) self.buffer = '' def endElement(self, name): self.buffer = string.join(string.split(self.buffer), ' ') p = self.list[len(self.list)-1] p.content = self.buffer if name == 'component': p.key = p.getChild('component-name').content self.buffer = '' e = self.list.pop() def characters(self, ch): self.buffer += ch def mergeComponent(self, comp): L_int = self.getNode('component-list') if L_int is None: error("Catalog.mergeComponent : 'component-list' is not found") return i_ext = comp present = 0 n_ext = i_ext.key for i_int in L_int.childs: if (i_int.key == n_ext): present = 1 break; if present == 0: print ' add component', i_ext.getChild('component-name').content L_int.addChild(i_ext) else: print ' replace component', i_ext.getChild('component-name').content i_int.merge(i_ext) def mergeType(self, type): L_int = self.getNode('type-list') if L_int is None: error("Catalog.mergeType : 'type-list' is not found") return for t in L_int.childs: if t.attrs["name"] == type.attrs["name"]: t.merge(type) return L_int.addChild(type) class Member(Tree): def __init__(self, name,type): Tree.__init__(self, 'member') self.setAttrib("name",name) self.setAttrib("type",type) class Type(Tree): def __init__(self, name,kind): Tree.__init__(self, 'type') self.setAttrib("name",name) self.setAttrib("kind",kind) def merge(self,t): self.setAttrib("kind",t.attrs["kind"]) class SeqType(Tree): def __init__(self, name,content): Tree.__init__(self, 'sequence') self.setAttrib("name",name) self.setAttrib("content",content) def merge(self,t): self.setAttrib("content",t.attrs["content"]) class StructType(Tree): def __init__(self, name): Tree.__init__(self, 'struct') self.setAttrib("name",name) def merge(self,t): #remove childs and replace by t childs self.childs=[] for c in t.childs: self.childs.append(c) class ObjType(Tree): def __init__(self, name): Tree.__init__(self, 'objref') self.setAttrib("name",name) def merge(self,t): RepoId=t.attrs.get("id") if RepoId: self.setAttrib("id",RepoId) #remove childs and replace by t childs self.childs=[] for c in t.childs: self.childs.append(c) # IDL file reader ttsMap = { idltype.tk_void: "void", idltype.tk_short: "short", idltype.tk_long: "long", idltype.tk_ushort: "unsigned short", idltype.tk_ulong: "unsigned long", idltype.tk_float: "float", idltype.tk_double: "double", idltype.tk_boolean: "boolean", idltype.tk_char: "char", idltype.tk_octet: "octet", idltype.tk_any: "any", idltype.tk_TypeCode: "CORBA::TypeCode", idltype.tk_Principal: "CORBA::Principal", idltype.tk_longlong: "long long", idltype.tk_ulonglong: "unsigned long long", idltype.tk_longdouble: "long double", idltype.tk_wchar: "wchar" } #-------------------------------------------------- # class ModuleCatalogVisitor #-------------------------------------------------- class ModuleCatalogVisitor (idlvisitor.AstVisitor): def __init__(self, catalog): self.catalog = catalog self.EngineType = 0 self.currentScope=None def visitAST(self, node): for n in node.declarations(): if n.mainFile(): n.accept(self) def visitModule(self, node): self.currentScope=node for n in node.definitions(): n.accept(self) def visitInterface(self, node): if node.mainFile(): self.EngineType = 0 for i in node.inherits(): s = i.scopedName(); if s[0] == "Engines": if s[1] == "EngineComponent": self.EngineType = 1; break if s[1] == "Superv_Component": self.EngineType = 2; break if self.EngineType: #This interface is a SALOME component Comp = Component(node.identifier()) self.currentInterface = Comp.createInterface(node.identifier()) for c in node.callables(): if isinstance(c, idlast.Operation): c.accept(self) for c in node.declarations(): if isinstance(c, idlast.Struct): c.accept(self) for i in node.comments(): self.currentInterface.comments.append(str(i)) if self.EngineType == 2: self.currentInterface.processDataStreams() global nb_components nb_components = nb_components + 1 self.catalog.mergeComponent(Comp) else: #This interface is not a component : use it as a DataType t=ObjType("/".join(node.scopedName())) for i in node.inherits(): t.addNamedChild("base","/".join(i.scopedName())) self.catalog.mergeType(t) self.EngineType = 0 def visitOperation(self, node): self.currentService = self.currentInterface.createService \ (node.identifier()) node.returnType().accept(self) if (self.currentType != "void"): self.currentService.createOutParameter \ ("return", self.currentType) for c in node.parameters(): c.accept(self) for i in node.comments(): self.currentInterface.comments.append(str(i)) def visitDeclaredType(self, type): name=type.name() scoped_name="/".join(type.scopedName()) self.currentType = scoped_name def visitBaseType(self, type): self.currentType = ttsMap[type.kind()] def visitStringType(self, type): self.currentType = "string" def visitParameter(self, node): node.paramType().accept(self) if node.is_in(): self.currentService.createInParameter \ (node.identifier(), self.currentType) if node.is_out(): self.currentService.createOutParameter \ (node.identifier(), self.currentType) def visitSequenceType(self,type): type.seqType().accept(self) if type.bound() == 0: self.contentType=self.currentType self.currentType = "sequence" else: self.currentType = None def visitTypedef(self, node): if node.constrType(): node.aliasType().decl().accept(self) node.aliasType().accept(self) type = self.currentType if not type: return decll = [] for d in node.declarators(): d.accept(self) if self.__result_declarator: decll.append(self.__result_declarator) if type == "sequence": #it's a sequence type for name in decll: scoped_name="/".join(self.currentScope.scopedName()+[name]) self.catalog.mergeType(SeqType(scoped_name,self.contentType)) #else: #it's an alias # for name in decll: # scoped_name="/".join(self.currentScope.scopedName()+[name]) # self.catalog.mergeType(Type(scoped_name,type)) def visitStruct(self, node): t=StructType("/".join(node.scopedName())) for m in node.members(): if m.constrType(): m.memberType().decl().accept(self) m.memberType().accept(self) type = self.currentType for d in m.declarators(): d.accept(self) t.addChild(Member(self.__result_declarator,type)) self.catalog.mergeType(t) def visitDeclarator(self, node): if node.sizes(): self.__result_declarator =None else: self.__result_declarator =node.identifier() #-------------------------------------------------- # parse idl and store xml file #-------------------------------------------------- def run(tree, args): CatalogFileName=getParamValue("catalog", "CatalogModulePersonnel.xml", args) if re.compile(".*?.xml$").match(CatalogFileName, 1) is None: CatalogFileName = CatalogFileName + '.xml' #========= Read parameters ====================== common_data["ICON"] = getParamValue("icon", "", args) common_data["AUTHOR"] = getParamValue("author", os.getenv("USER"), args) common_data["VERSION"] = getParamValue("version", "1", args) common_data["COMP_NAME"] = getParamValue("name", "", args) common_data["COMP_UNAME"] = getParamValue("username", "", args) common_data["COMP_TYPE"] = getParamValue("type", "OTHER", args) common_data["COMP_MULT"] = getParamValue("multistudy", "1", args) common_data["COMP_IMPL"] = getParamValue("impltype", "1", args) print common_data remove_comp = getParamValue("remove", "", args) #================================================== if (os.path.exists(CatalogFileName)): print "Importing", CatalogFileName C = Catalog(CatalogFileName) else: print "Creating ",CatalogFileName C = Catalog() print "Reading idl file" visitor = ModuleCatalogVisitor(C) tree.accept(visitor) ## C.Dump() if remove_comp : C.removeComponent(remove_comp) if (os.path.exists(CatalogFileName)): print "Updating", CatalogFileName CatalogFileName_old = CatalogFileName + '_old' os.rename(CatalogFileName, CatalogFileName_old) else: CatalogFileName_old = "" print "Writing", CatalogFileName CatalogFileName_new = CatalogFileName + '_new' f=open(CatalogFileName_new, 'w') f.write("\n\n") C.output_xml(f) f.close() os.rename(CatalogFileName_new, CatalogFileName) if ((CatalogFileName_old != "") & os.path.exists(CatalogFileName_old)): os.unlink(CatalogFileName_old) print if __name__ == "__main__": print print "Usage : omniidl -bIDLparser [-I]* -Wbcatalog=[,icon=][,version=][,author=][,name=][,username=][,multistudy=][,impltype=] " print salome-kernel-6.5.0/src/ModuleGenerator/Makefile.am000077500000000000000000000026201177004724000222040ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleGenerator/Makefile.am,v 1.5.2.2.20.2.12.1 2012-04-12 14:05:17 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am dist_salomescript_PYTHON = IDLparser.py EXTRA_DIST = tests install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done salome-kernel-6.5.0/src/ModuleGenerator/Makefile.in000077500000000000000000000550251177004724000222240ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = README $(dist_salomescript_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/testIDLparser.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/ModuleGenerator ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = testIDLparser CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomescriptdir)" py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleGenerator/Makefile.am,v 1.5.2.2.20.2.12.1 2012-04-12 14:05:17 vsr Exp $ # dist_salomescript_PYTHON = IDLparser.py EXTRA_DIST = tests all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ModuleGenerator/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/ModuleGenerator/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): testIDLparser: $(top_builddir)/config.status $(srcdir)/testIDLparser.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: for dir in "$(DESTDIR)$(salomescriptdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salomescriptPYTHON .MAKE: install-am install-data-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook \ install-dist_salomescriptPYTHON install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_salomescriptPYTHON install-data-hook: @for f in $(dist_salomescript_PYTHON) ; do \ chmod -f a+x $(DESTDIR)$(salomescriptdir)/$$f ; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/ModuleGenerator/README000077500000000000000000000066361177004724000210430ustar00rootroot00000000000000Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com ______________________________________________________________________ Outil de generation du catalogue de module a partir des fichiers idl corba. version 0.1 (12/4/2002) Marc Tajchman (CEA) ______________________________________________________________________ Etat : Version initiale ______________________________________________________________________ A faire : Tests supplementaires pour l'ajout et le remplacement de composants Implementation du retrait de composant Gestion des champs du catalogue de modules non presents dans les fichiers idl Autres generations (wrappers divers ...) ______________________________________________________________________ Utilisation : Une seule commande dans tous les cas de figure : runIDLparser -Wbcatalog=my_catalog.xml (appel de runIDLparser pour interpreter et mettre a jour le catalogue de module my_catalog.xml) ______________________________________________________________________ Tests d'utilisation : Pour lancer les tests, utiliser le script 'testIDLparser' depuis le repertoire /SALOME/src/ModuleGenerator : sh testIDLparser ou vaut 1, 1b, 2, 3, 4, 5 _________________________________________ 1. Creation d'un nouveau catalogue de composants my_catalog.xml a partir d'un fichier idl Le fichier idl contient un seul composant Salome. _________________________________________ 1b. Creation d'un nouveau catalogue de composants my_catalog.xml a partir d'un fichier idl Le fichier idl contient un composant et une interface CORBA qui n'est pas un composant Salome (i.e. ne derive pas de Engines::EngineComponent). _________________________________________ 2. Un meme fichier idl est lu deux fois _________________________________________ 3. Deux fichiers idl differents sont lus, puis le premier est relu _________________________________________ 4. Deux fichiers idl contenant deux versions differentes du meme composant sont lus. Teste aussi la 'persistance' des champs 'commentaires' _________________________________________ 5. Test global sur les idl de Salome Les scripts de test se trouvent dans le repertoire /src/ModuleGenerator/tests Les fichiers idl servant aux tests se trouvent dans les repertoires /idl /src/ModuleGenerator/tests salome-kernel-6.5.0/src/ModuleGenerator/testIDLparser.in000077500000000000000000000021651177004724000232310ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ROOT_SRCDIR=@ROOT_SRCDIR@ export ROOT_SRCDIR ROOT_BUILDDIR=@ROOT_BUILDDIR@ export ROOT_BUILDDIR SRCDIR=${ROOT_SRCDIR}/src/ModuleGenerator export SRCDIR ${SRCDIR}/tests/test$1.sh salome-kernel-6.5.0/src/ModuleGenerator/tests/000077500000000000000000000000001177004724000213075ustar00rootroot00000000000000salome-kernel-6.5.0/src/ModuleGenerator/tests/AddComponent.idl000077500000000000000000000050121177004724000243550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : AddComponent.idl // Author : Jean Rahuel #ifndef _ADDCOMPONENT_IDL #define _ADDCOMPONENT_IDL #include "SALOME_Component.idl" module SuperVisionTest { interface Adder ; interface AddComponent : Engines::EngineComponent { double Add( in double x , in double y , out double z ) ; double AddWithoutSleep( in double x , in double y , out double z ) ; void Setx( in double x ) ; void Sety( in double y ) ; double Addxy() ; double AddyTox( in double y ) ; long Sigma( in long n ) ; double LastResult() ; Adder Addition() ; boolean AdditionObjRef1( out Adder anAdder ) ; void AdditionObjRef2( out boolean FuncValue , out Adder anAdder ) ; boolean AdditionObjRefs( in AddComponent AddComponent1 , in AddComponent Adder2 , in AddComponent Adder3 , out AddComponent RetAddComponent1 , out AddComponent RetAdder2 , out AddComponent RetAdder3 ) ; }; interface Adder : Engines::EngineComponent { double Add( in double x , in double y , out double z ) ; double AddWithoutSleep( in double x , in double y , out double z ) ; double AddAndCompare( in double x , in double y , in Adder anOtherAdder, out double z ) ; void SetLastResult( in double z ) ; void LastResult( out double z ) ; Engines::EngineComponent LccAddComponent( in string aContainer , in string aComponentName ) ; }; } ; #endif salome-kernel-6.5.0/src/ModuleGenerator/tests/SubComponent.idl000077500000000000000000000023651177004724000244260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SubComponent.idl // Author : Jean Rahuel #ifndef _SUBCOMPONENT_IDL #define _SUBCOMPONENT_IDL #include "SALOME_Component.idl" module SuperVisionTest { interface SubComponent : Engines::EngineComponent { void Sub( in double x , in double y , out double z ) ; } ; }; #endif salome-kernel-6.5.0/src/ModuleGenerator/tests/Truc2Component.idl000077500000000000000000000024301177004724000246650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : AddComponent.idl // Author : // Module : SALOME // #ifndef _ADDCOMPONENT_IDL #define _ADDCOMPONENT_IDL #include "SALOME_Component.idl" interface AddComponent : Engines::Component { double Add( in double x , in double y , out double z ) ; double XXX( in double x , out double y , out double z ) ; }; #endif salome-kernel-6.5.0/src/ModuleGenerator/tests/TrucComponent.idl000077500000000000000000000024641177004724000246120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : AddComponent.idl // Author : // Module : SALOME // #ifndef _ADDCOMPONENT_IDL #define _ADDCOMPONENT_IDL #include "SALOME_Component.idl" interface AddComponent { double Add( in double x , in double y , out double z ) ; }; interface TrucComponent : Engines::Component { double Add( in double x , in double y , out double z ) ; }; #endif salome-kernel-6.5.0/src/ModuleGenerator/tests/test1.sh000077500000000000000000000024201177004724000227040ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : test1.sh # Module : SALOME # echo "test1: creation d'un nouveau catalogue avec un composant unique dans un fichier idl " \rm -f my_catalog.xml* sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/AddComponent.idl salome-kernel-6.5.0/src/ModuleGenerator/tests/test1b.sh000077500000000000000000000024411177004724000230510ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : test1b.sh # Module : SALOME # echo "test1b: test derivation Engine::Component " \rm -f my_catalog.xml* echo " --> creation d'un nouveau catalogue avec un composant " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/TrucComponent.idl salome-kernel-6.5.0/src/ModuleGenerator/tests/test2.sh000077500000000000000000000034601177004724000227120ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : test2.sh # Module : SALOME # echo "test2: ajout dans un catalogue existant d'un nouveau composant d'un fichier idl + remplacement d'un composant par une nouvelle version " \rm -f my_catalog.xml* echo " --> creation d'un nouveau catalogue avec un composant " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/AddComponent.idl echo " --> ajout d'un nouveau composant dans le catalogue " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/SubComponent.idl echo " --> remplacement du premier composant dans le catalogue " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/AddComponent.idl salome-kernel-6.5.0/src/ModuleGenerator/tests/test3.sh000077500000000000000000000030541177004724000227120ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : test3.sh # Module : SALOME # echo "test3: remplacement dans un catalogue existant d'un composant existant (meme idl) " \rm -f my_catalog.xml* echo " --> creation d'un nouveau catalogue avec un composant " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/AddComponent.idl echo " --> remplacement du composant dans le catalogue (meme idl) " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/AddComponent.idl salome-kernel-6.5.0/src/ModuleGenerator/tests/test4.sh000077500000000000000000000036021177004724000227120ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : test4.sh # Module : SALOME # echo "test4: remplacement dans un catalogue existant d'un composant existant (l'idl du composant a ete modifie) " \rm -f my_catalog.xml* echo " --> creation d'un nouveau catalogue avec un composant " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/AddComponent.idl mv my_catalog.xml C1 sed -e 's/arameter-comment>aaa C2 sed -e 's/service-comment>bbb C1 sed -e 's/interface-comment>ccc C2 sed -e 's/component-comment>ddd C1 mv C1 my_catalog.xml \rm -f C2 echo " --> remplacement du composant dans le catalogue (autre idl) " sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml \ ${SRCDIR}/tests/Truc2Component.idl salome-kernel-6.5.0/src/ModuleGenerator/tests/test5.sh000077500000000000000000000025021177004724000227110ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : test5.sh # Module : SALOME # echo "test5: creation d'un catalogue avec tous les idl de Salome (au 29/3/2002) " \rm -f my_catalog.xml* for i in ${ROOT_SRCDIR}/idl/*.idl do echo echo " processing " `basename $i` echo sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \ -I${ROOT_SRCDIR}/idl \ -Wbcatalog=my_catalog.xml $i done salome-kernel-6.5.0/src/NOTIFICATION_SWIG/000077500000000000000000000000001177004724000175705ustar00rootroot00000000000000salome-kernel-6.5.0/src/NOTIFICATION_SWIG/Makefile.am000077500000000000000000000045621177004724000216360ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME NOTIFICATION_SWIG : wrapping of Notification sevices in order to be available in Python # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NOTIFICATION_SWIG/Makefile.am,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:17 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Swig targets # =============================================================== # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm) # see also LifeCycleCORBA_SWIG # BUILT_SOURCES = swig_wrap.cpp libNOTIFICATION.py SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Notification SWIGSOURCES = NOTIFICATION.i salomepython_PYTHON = libNOTIFICATION.py salomepyexec_LTLIBRARIES = _libNOTIFICATION.la _libNOTIFICATION_la_SOURCES = swig_wrap.cpp \ NOTIFICATION_Swig.cxx NOTIFICATION_Swig.hxx SALOME_NOTIFICATION_SWIG.hxx _libNOTIFICATION_la_CPPFLAGS =\ @PYTHON_INCLUDES@ -DHAVE_CONFIG_H \ -I$(srcdir) \ -I$(srcdir)/../Notification \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ _libNOTIFICATION_la_LDFLAGS = -module _libNOTIFICATION_la_LIBADD = @PYTHON_LIBS@ ../Notification/libSalomeNotification.la swig_wrap.cpp libNOTIFICATION.py : $(SWIGSOURCES) $(SWIG) $(SWIG_FLAGS) -o swig_wrap.cpp $< CLEANFILES = swig_wrap.cpp EXTRA_DIST = $(SWIGSOURCES) salome-kernel-6.5.0/src/NOTIFICATION_SWIG/Makefile.in000077500000000000000000001031761177004724000216500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomepython_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/NOTIFICATION_SWIG ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(salomepyexecdir)" \ "$(DESTDIR)$(salomepythondir)" LTLIBRARIES = $(salomepyexec_LTLIBRARIES) _libNOTIFICATION_la_DEPENDENCIES = \ ../Notification/libSalomeNotification.la am__libNOTIFICATION_la_OBJECTS = _libNOTIFICATION_la-swig_wrap.lo \ _libNOTIFICATION_la-NOTIFICATION_Swig.lo _libNOTIFICATION_la_OBJECTS = $(am__libNOTIFICATION_la_OBJECTS) _libNOTIFICATION_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(_libNOTIFICATION_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(_libNOTIFICATION_la_SOURCES) DIST_SOURCES = $(_libNOTIFICATION_la_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Notification VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME NOTIFICATION_SWIG : wrapping of Notification sevices in order to be available in Python # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NOTIFICATION_SWIG/Makefile.am,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:17 vsr Exp $ # # # =============================================================== # Swig targets # =============================================================== # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm) # see also LifeCycleCORBA_SWIG # BUILT_SOURCES = swig_wrap.cpp libNOTIFICATION.py SWIGSOURCES = NOTIFICATION.i salomepython_PYTHON = libNOTIFICATION.py salomepyexec_LTLIBRARIES = _libNOTIFICATION.la _libNOTIFICATION_la_SOURCES = swig_wrap.cpp \ NOTIFICATION_Swig.cxx NOTIFICATION_Swig.hxx SALOME_NOTIFICATION_SWIG.hxx _libNOTIFICATION_la_CPPFLAGS = \ @PYTHON_INCLUDES@ -DHAVE_CONFIG_H \ -I$(srcdir) \ -I$(srcdir)/../Notification \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ _libNOTIFICATION_la_LDFLAGS = -module _libNOTIFICATION_la_LIBADD = @PYTHON_LIBS@ ../Notification/libSalomeNotification.la CLEANFILES = swig_wrap.cpp EXTRA_DIST = $(SWIGSOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .cpp .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/NOTIFICATION_SWIG/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/NOTIFICATION_SWIG/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-salomepyexecLTLIBRARIES: $(salomepyexec_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(salomepyexecdir)" || $(MKDIR_P) "$(DESTDIR)$(salomepyexecdir)" @list='$(salomepyexec_LTLIBRARIES)'; test -n "$(salomepyexecdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(salomepyexecdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(salomepyexecdir)"; \ } uninstall-salomepyexecLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(salomepyexec_LTLIBRARIES)'; test -n "$(salomepyexecdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(salomepyexecdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(salomepyexecdir)/$$f"; \ done clean-salomepyexecLTLIBRARIES: -test -z "$(salomepyexec_LTLIBRARIES)" || rm -f $(salomepyexec_LTLIBRARIES) @list='$(salomepyexec_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done _libNOTIFICATION.la: $(_libNOTIFICATION_la_OBJECTS) $(_libNOTIFICATION_la_DEPENDENCIES) $(_libNOTIFICATION_la_LINK) -rpath $(salomepyexecdir) $(_libNOTIFICATION_la_OBJECTS) $(_libNOTIFICATION_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_libNOTIFICATION_la-NOTIFICATION_Swig.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_libNOTIFICATION_la-swig_wrap.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< _libNOTIFICATION_la-swig_wrap.lo: swig_wrap.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libNOTIFICATION_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT _libNOTIFICATION_la-swig_wrap.lo -MD -MP -MF $(DEPDIR)/_libNOTIFICATION_la-swig_wrap.Tpo -c -o _libNOTIFICATION_la-swig_wrap.lo `test -f 'swig_wrap.cpp' || echo '$(srcdir)/'`swig_wrap.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/_libNOTIFICATION_la-swig_wrap.Tpo $(DEPDIR)/_libNOTIFICATION_la-swig_wrap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='swig_wrap.cpp' object='_libNOTIFICATION_la-swig_wrap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libNOTIFICATION_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o _libNOTIFICATION_la-swig_wrap.lo `test -f 'swig_wrap.cpp' || echo '$(srcdir)/'`swig_wrap.cpp _libNOTIFICATION_la-NOTIFICATION_Swig.lo: NOTIFICATION_Swig.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libNOTIFICATION_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT _libNOTIFICATION_la-NOTIFICATION_Swig.lo -MD -MP -MF $(DEPDIR)/_libNOTIFICATION_la-NOTIFICATION_Swig.Tpo -c -o _libNOTIFICATION_la-NOTIFICATION_Swig.lo `test -f 'NOTIFICATION_Swig.cxx' || echo '$(srcdir)/'`NOTIFICATION_Swig.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/_libNOTIFICATION_la-NOTIFICATION_Swig.Tpo $(DEPDIR)/_libNOTIFICATION_la-NOTIFICATION_Swig.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NOTIFICATION_Swig.cxx' object='_libNOTIFICATION_la-NOTIFICATION_Swig.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_libNOTIFICATION_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o _libNOTIFICATION_la-NOTIFICATION_Swig.lo `test -f 'NOTIFICATION_Swig.cxx' || echo '$(srcdir)/'`NOTIFICATION_Swig.cxx .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomepythonPYTHON: $(salomepython_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomepythondir)" || $(MKDIR_P) "$(DESTDIR)$(salomepythondir)" @list='$(salomepython_PYTHON)'; dlist=; list2=; test -n "$(salomepythondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomepythondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomepythondir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomepythondir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomepythondir)" $$dlist; \ fi; \ else :; fi uninstall-salomepythonPYTHON: @$(NORMAL_UNINSTALL) @list='$(salomepython_PYTHON)'; test -n "$(salomepythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomepythondir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomepythondir)" && rm -f $$fileso ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(salomepyexecdir)" "$(DESTDIR)$(salomepythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-salomepyexecLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomepythonPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-salomepyexecLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-salomepyexecLTLIBRARIES \ uninstall-salomepythonPYTHON .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-salomepyexecLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-salomepyexecLTLIBRARIES install-salomepythonPYTHON \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-salomepyexecLTLIBRARIES uninstall-salomepythonPYTHON swig_wrap.cpp libNOTIFICATION.py : $(SWIGSOURCES) $(SWIG) $(SWIG_FLAGS) -o swig_wrap.cpp $< # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/NOTIFICATION_SWIG/NOTIFICATION.i000077500000000000000000000025621177004724000216400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NOTIFICATION_SWIG : wrapping of Notification sevices in order to be available in Python // File : NOTIFICATION.i // Author : Francis KLOSS // Module : SALOME // %module libNOTIFICATION %feature("autodoc", "1"); %{ //#define __declspec(a) #include "NOTIFICATION_Swig.hxx" %} %include SALOME_NOTIFICATION.hxx %include SALOME_NOTIFICATION_SWIG.hxx %include NOTIFICATION.hxx %include NOTIFICATION_Swig.hxx salome-kernel-6.5.0/src/NOTIFICATION_SWIG/NOTIFICATION_Swig.cxx000077500000000000000000000041671177004724000232060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NOTIFICATION_SWIG : wrapping of Notification sevices in order to be available in Python // File : NOTIFICATION_Swig.cxx // Author : Francis KLOSS // Module : SALOME // #include "NOTIFICATION_Swig.hxx" // Swig notification supplier // -------------------------- NOTIFICATION_Supplier_Swig::NOTIFICATION_Supplier_Swig(const char* instanceName, bool notif) { _supplier = new NOTIFICATION_Supplier(instanceName, notif); } NOTIFICATION_Supplier_Swig::~NOTIFICATION_Supplier_Swig() { delete _supplier; } void NOTIFICATION_Supplier_Swig::Send(const char* graph, const char* node, const char* type, const char* message) { _supplier->Send(graph, node, type, message); } // Swig notification consumer // -------------------------- NOTIFICATION_Consumer_Swig::NOTIFICATION_Consumer_Swig() { _consumer = new NOTIFICATION_Consumer(); } NOTIFICATION_Consumer_Swig::~NOTIFICATION_Consumer_Swig() { delete _consumer; } bool NOTIFICATION_Consumer_Swig::Receive(char** graph, char** node, char** type, char** message, char** sender, long* counter, char** date, long* stamp) { return(_consumer->Receive(graph, node, type, message, sender, counter, date, stamp)); } salome-kernel-6.5.0/src/NOTIFICATION_SWIG/NOTIFICATION_Swig.hxx000077500000000000000000000036251177004724000232110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NOTIFICATION_SWIG : wrapping of Notification sevices in order to be available in Python // File : NOTIFICATION_Swig.hxx // Author : Francis KLOSS // Module : SALOME // #ifndef _NOTIFICATION_SWIG_HXX_ #define _NOTIFICATION_SWIG_HXX_ #include "NOTIFICATION.hxx" #include "SALOME_NOTIFICATION_SWIG.hxx" class NOTIFICATION_SWIG_EXPORT NOTIFICATION_Supplier_Swig { public: NOTIFICATION_Supplier_Swig(const char* instanceName, bool notif); ~NOTIFICATION_Supplier_Swig(); void Send(const char* graph, const char* node, const char* type, const char* message); private: NOTIFICATION_Supplier* _supplier; }; class NOTIFICATION_SWIG_EXPORT NOTIFICATION_Consumer_Swig { public: NOTIFICATION_Consumer_Swig(); ~NOTIFICATION_Consumer_Swig(); bool Receive(char** graph, char** node, char** type, char** message, char** sender, long* counter, char** date, long* stamp); private: NOTIFICATION_Consumer* _consumer; }; #endif salome-kernel-6.5.0/src/NOTIFICATION_SWIG/SALOME_NOTIFICATION_SWIG.hxx000077500000000000000000000026121177004724000241040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_NOTIFICATION_SWIG.hxx // Author : Oleg UVAROV // Module : SALOME // #ifndef _SALOME_NOTIFICATION_SWIG_HXX_ #define _SALOME_NOTIFICATION_SWIG_HXX_ #ifdef WIN32 # if defined NOTIFICATION_SWIG_EXPORTS || defined _libNOTIFICATION_EXPORTS # define NOTIFICATION_SWIG_EXPORT __declspec( dllexport ) # else # define NOTIFICATION_SWIG_EXPORT __declspec( dllimport ) # endif #else # define NOTIFICATION_SWIG_EXPORT #endif #endif salome-kernel-6.5.0/src/NOTIFICATION_SWIG/libNOTIFICATION.py000077500000000000000000000115361177004724000225300ustar00rootroot00000000000000# This file was automatically generated by SWIG (http://www.swig.org). # Version 1.3.40 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. # This file is compatible with both classic and new-style classes. from sys import version_info if version_info >= (2,6,0): def swig_import_helper(): from os.path import dirname import imp fp = None try: fp, pathname, description = imp.find_module('_libNOTIFICATION', [dirname(__file__)]) except ImportError: import _libNOTIFICATION return _libNOTIFICATION if fp is not None: try: _mod = imp.load_module('_libNOTIFICATION', fp, pathname, description) finally: fp.close() return _mod _libNOTIFICATION = swig_import_helper() del swig_import_helper else: import _libNOTIFICATION del version_info try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic(self,class_type,name,value,static=1): if (name == "thisown"): return self.this.own(value) if (name == "this"): if type(value).__name__ == 'SwigPyObject': self.__dict__[name] = value return method = class_type.__swig_setmethods__.get(name,None) if method: return method(self,value) if (not static) or hasattr(self,name): self.__dict__[name] = value else: raise AttributeError("You cannot add attributes to %s" % self) def _swig_setattr(self,class_type,name,value): return _swig_setattr_nondynamic(self,class_type,name,value,0) def _swig_getattr(self,class_type,name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name,None) if method: return method(self) raise AttributeError(name) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) try: _object = object _newclass = 1 except AttributeError: class _object : pass _newclass = 0 NOTIF_WARNING = _libNOTIFICATION.NOTIF_WARNING NOTIF_STEP = _libNOTIFICATION.NOTIF_STEP NOTIF_TRACE = _libNOTIFICATION.NOTIF_TRACE NOTIF_VERBOSE = _libNOTIFICATION.NOTIF_VERBOSE NOTIFICATION_ChannelName = _libNOTIFICATION.NOTIFICATION_ChannelName def NOTIFICATION_date(): """NOTIFICATION_date() -> char""" return _libNOTIFICATION.NOTIFICATION_date() def NOTIFICATION_channel(): """NOTIFICATION_channel() -> CosNA_EventChannel_ptr""" return _libNOTIFICATION.NOTIFICATION_channel() class NOTIFICATION_Supplier_Swig(_object): """Proxy of C++ NOTIFICATION_Supplier_Swig class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, NOTIFICATION_Supplier_Swig, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, NOTIFICATION_Supplier_Swig, name) __repr__ = _swig_repr def __init__(self, *args): """__init__(self, char instanceName, bool notif) -> NOTIFICATION_Supplier_Swig""" this = _libNOTIFICATION.new_NOTIFICATION_Supplier_Swig(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _libNOTIFICATION.delete_NOTIFICATION_Supplier_Swig __del__ = lambda self : None; def Send(self, *args): """Send(self, char graph, char node, char type, char message)""" return _libNOTIFICATION.NOTIFICATION_Supplier_Swig_Send(self, *args) NOTIFICATION_Supplier_Swig_swigregister = _libNOTIFICATION.NOTIFICATION_Supplier_Swig_swigregister NOTIFICATION_Supplier_Swig_swigregister(NOTIFICATION_Supplier_Swig) class NOTIFICATION_Consumer_Swig(_object): """Proxy of C++ NOTIFICATION_Consumer_Swig class""" __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, NOTIFICATION_Consumer_Swig, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, NOTIFICATION_Consumer_Swig, name) __repr__ = _swig_repr def __init__(self): """__init__(self) -> NOTIFICATION_Consumer_Swig""" this = _libNOTIFICATION.new_NOTIFICATION_Consumer_Swig() try: self.this.append(this) except: self.this = this __swig_destroy__ = _libNOTIFICATION.delete_NOTIFICATION_Consumer_Swig __del__ = lambda self : None; def Receive(self, *args): """ Receive(self, char graph, char node, char type, char message, char sender, long counter, char date, long stamp) -> bool """ return _libNOTIFICATION.NOTIFICATION_Consumer_Swig_Receive(self, *args) NOTIFICATION_Consumer_Swig_swigregister = _libNOTIFICATION.NOTIFICATION_Consumer_Swig_swigregister NOTIFICATION_Consumer_Swig_swigregister(NOTIFICATION_Consumer_Swig) salome-kernel-6.5.0/src/NOTIFICATION_SWIG/swig_wrap.cpp000077500000000000000000003520011177004724000223020ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.40 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Python.h has to appear first */ #include /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return and integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCompare(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { register size_t l = 0; register size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ register size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { register int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { register size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; register const unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Compatibility macros for Python 3 */ #if PY_VERSION_HEX >= 0x03000000 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) #endif #ifndef Py_TYPE # define Py_TYPE(op) ((op)->ob_type) #endif /* SWIG APIs for compatibility of both Python 2 & 3 */ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat #else # define SWIG_Python_str_FromFormat PyString_FromFormat #endif /* Warning: This function will allocate a new string in Python 3, * so please call SWIG_Python_str_DelForPy3(x) to free the space. */ SWIGINTERN char* SWIG_Python_str_AsChar(PyObject *str) { #if PY_VERSION_HEX >= 0x03000000 char *cstr; char *newstr; Py_ssize_t len; str = PyUnicode_AsUTF8String(str); PyBytes_AsStringAndSize(str, &cstr, &len); newstr = (char *) malloc(len+1); memcpy(newstr, cstr, len+1); Py_XDECREF(str); return newstr; #else return PyString_AsString(str); #endif } #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) #else # define SWIG_Python_str_DelForPy3(x) #endif SWIGINTERN PyObject* SWIG_Python_str_FromChar(const char *c) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromString(c); #else return PyString_FromString(c); #endif } /* Add PyOS_snprintf for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) # define PyOS_snprintf _snprintf # else # define PyOS_snprintf snprintf # endif #endif /* A crude PyString_FromFormat implementation for old Pythons */ #if PY_VERSION_HEX < 0x02020000 #ifndef SWIG_PYBUFFER_SIZE # define SWIG_PYBUFFER_SIZE 1024 #endif static PyObject * PyString_FromFormat(const char *fmt, ...) { va_list ap; char buf[SWIG_PYBUFFER_SIZE * 2]; int res; va_start(ap, fmt); res = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); } #endif /* Add PyObject_Del for old Pythons */ #if PY_VERSION_HEX < 0x01060000 # define PyObject_Del(op) PyMem_DEL((op)) #endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif /* A crude PyExc_StopIteration exception for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # ifndef PyExc_StopIteration # define PyExc_StopIteration PyExc_RuntimeError # endif # ifndef PyObject_GenericGetAttr # define PyObject_GenericGetAttr 0 # endif #endif /* Py_NotImplemented is defined in 2.1 and up. */ #if PY_VERSION_HEX < 0x02010000 # ifndef Py_NotImplemented # define Py_NotImplemented PyExc_RuntimeError # endif #endif /* A crude PyString_AsStringAndSize implementation for old Pythons */ #if PY_VERSION_HEX < 0x02010000 # ifndef PyString_AsStringAndSize # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} # endif #endif /* PySequence_Size for old Pythons */ #if PY_VERSION_HEX < 0x02000000 # ifndef PySequence_Size # define PySequence_Size PySequence_Length # endif #endif /* PyBool_FromLong for old Pythons */ #if PY_VERSION_HEX < 0x02030000 static PyObject *PyBool_FromLong(long ok) { PyObject *result = ok ? Py_True : Py_False; Py_INCREF(result); return result; } #endif /* Py_ssize_t for old Pythons */ /* This code is as recommended by: */ /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); PyErr_Clear(); Py_XINCREF(type); PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ # define SWIG_PYTHON_USE_GIL # endif # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; /* ----------------------------------------------------------------------------- * Wrapper of PyInstanceMethod_New() used in Python 3 * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func) { #if PY_VERSION_HEX >= 0x03000000 return PyInstanceMethod_New(func); #else return NULL; #endif } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif /* ----------------------------------------------------------------------------- * See the LICENSE file for information on copyright, usage and redistribution * of SWIG, and the README file for authors - http://www.swig.org/release.html. * * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, (char *) msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char*) name, obj); Py_DECREF(obj); } /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { #if !defined(SWIG_PYTHON_OUTPUT_TUPLE) if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; #else PyObject* o2; PyObject* o3; if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyTuple_Check(result)) { o2 = result; result = PyTuple_New(1); PyTuple_SET_ITEM(result, 0, o2); } o3 = PyTuple_New(1); PyTuple_SET_ITEM(o3, 0, obj); o2 = result; result = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return result; #endif } /* Unpack the argument tuple */ SWIGINTERN int SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { register Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { register int i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #if PY_VERSION_HEX >= 0x02020000 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); #else #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); #endif /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* How to access Py_None */ #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # ifndef SWIG_PYTHON_NO_BUILD_NONE # ifndef SWIG_PYTHON_BUILD_NONE # define SWIG_PYTHON_BUILD_NONE # endif # endif #endif #ifdef SWIG_PYTHON_BUILD_NONE # ifdef Py_None # undef Py_None # define Py_None SWIG_Py_None() # endif SWIGRUNTIMEINLINE PyObject * _SWIG_Py_None(void) { PyObject *none = Py_BuildValue((char*)""); Py_DECREF(none); return none; } SWIGRUNTIME PyObject * SWIG_Py_None(void) { static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); return none; } #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* SwigPyClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; } SwigPyClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; return data ? data->implicitconv : 0; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject* obj) { if (!obj) { return 0; } else { SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { #if (PY_VERSION_HEX < 0x02020000) data->newraw = 0; #else data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); #endif if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); #ifdef METH_O data->delargs = !(flags & (METH_O)); #else data->delargs = 0; #endif } else { data->delargs = 0; } data->implicitconv = 0; return data; } } SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData* data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== SwigPyObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; } SwigPyObject; SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * SwigPyObject_format(const char* fmt, SwigPyObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { PyObject *ofmt = SWIG_Python_str_FromChar(fmt); if (ofmt) { #if PY_VERSION_HEX >= 0x03000000 res = PyUnicode_Format(ofmt,args); #else res = PyString_Format(ofmt,args); #endif Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v) { return SwigPyObject_format("%o",v); } SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v) { return SwigPyObject_format("%x",v); } SWIGRUNTIME PyObject * #ifdef METH_NOARGS SwigPyObject_repr(SwigPyObject *v) #else SwigPyObject_repr(SwigPyObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); PyObject *repr = SWIG_Python_str_FromFormat("", name, v); if (v->next) { #ifdef METH_NOARGS PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); #else PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args); #endif #if PY_VERSION_HEX >= 0x03000000 PyObject *joined = PyUnicode_Concat(repr, nrep); Py_DecRef(repr); Py_DecRef(nrep); repr = joined; #else PyString_ConcatAndDel(&repr,nrep); #endif } return repr; } SWIGRUNTIME int SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *str; #ifdef METH_NOARGS PyObject *repr = SwigPyObject_repr(v); #else PyObject *repr = SwigPyObject_repr(v, NULL); #endif if (repr) { str = SWIG_Python_str_AsChar(repr); fputs(str, fp); SWIG_Python_str_DelForPy3(str); Py_DECREF(repr); return 0; } else { return 1; } } SWIGRUNTIME PyObject * SwigPyObject_str(SwigPyObject *v) { char result[SWIG_BUFFER_SIZE]; return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? SWIG_Python_str_FromChar(result) : 0; } SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } /* Added for Python 3.x, would it also be useful for Python 2.x? */ SWIGRUNTIME PyObject* SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) { PyObject* res; if( op != Py_EQ && op != Py_NE ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } if( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ) res = Py_True; else res = Py_False; Py_INCREF(res); return res; } SWIGRUNTIME PyTypeObject* _PySwigObject_type(void); SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type(); return type; } SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op) { return (Py_TYPE(op) == SwigPyObject_type()) || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v) { SwigPyObject *sobj = (SwigPyObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; if (data->delargs) { /* we need to create a temporary object to carry the destroy operation */ PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* SwigPyObject_append(PyObject* v, PyObject* next) { SwigPyObject *sobj = (SwigPyObject *) v; #ifndef METH_O PyObject *tmp = 0; if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; next = tmp; #endif if (!SwigPyObject_Check(next)) { return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* #ifdef METH_NOARGS SwigPyObject_next(PyObject* v) #else SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_disown(PyObject *v) #else SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* #ifdef METH_NOARGS SwigPyObject_acquire(PyObject *v) #else SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) #else if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) #endif { return NULL; } else { SwigPyObject *sobj = (SwigPyObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { #ifdef METH_NOARGS if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v); } else { SwigPyObject_disown(v); } #else if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v,args); } else { SwigPyObject_disown(v,args); } #endif } return obj; } } #ifdef METH_O static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #else static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #endif #if PY_VERSION_HEX < 0x02020000 SWIGINTERN PyObject * SwigPyObject_getattr(SwigPyObject *sobj,char *name) { return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); } #endif SWIGRUNTIME PyTypeObject* _PySwigObject_type(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods SwigPyObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ /* nb_divide removed in Python 3 */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc)0, /*nb_divide*/ #endif (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_VERSION_HEX < 0x03000000 0, /*nb_coerce*/ #endif (unaryfunc)SwigPyObject_long, /*nb_int*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_long, /*nb_long*/ #else 0, /*nb_reserved*/ #endif (unaryfunc)0, /*nb_float*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif #if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ #endif }; static PyTypeObject swigpyobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyObject", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ (printfunc)SwigPyObject_print, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else (getattrfunc)0, /* tp_getattr */ #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif (reprfunc)SwigPyObject_repr, /* tp_repr */ &SwigPyObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyObject_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ (richcmpfunc)SwigPyObject_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpyobject_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpyobject_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpyobject_type; } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own) { SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } SwigPyPacked; SWIGRUNTIME int SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char result[SWIG_BUFFER_SIZE]; fputs("pack, v->size, 0, sizeof(result))) { fputs("at ", fp); fputs(result, fp); } fputs(v->ty->name,fp); fputs(">", fp); return 0; } SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return SWIG_Python_str_FromFormat("", result, v->ty->name); } else { return SWIG_Python_str_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); } else { return SWIG_Python_str_FromChar(v->ty->name); } } SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void); SWIGRUNTIME PyTypeObject* SwigPyPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type(); return type; } SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op) { return ((op)->ob_type == _PySwigPacked_type()) || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); } SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v) { if (SwigPyPacked_Check(v)) { SwigPyPacked *sobj = (SwigPyPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject swigpypacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif (char *)"SwigPyPacked", /* tp_name */ sizeof(SwigPyPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ (printfunc)SwigPyPacked_print, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX>=0x03000000 0, /* tp_reserved in 3.0.1 */ #else (cmpfunc)SwigPyPacked_compare, /* tp_compare */ #endif (reprfunc)SwigPyPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; swigpypacked_type = tmp; /* for Python 3 the ob_type already assigned in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 swigpypacked_type.ob_type = &PyType_Type; #endif type_init = 1; } return &swigpypacked_type; } SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) { SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (SwigPyPacked_Check(obj)) { SwigPyPacked *sobj = (SwigPyPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIMEINLINE PyObject * _SWIG_This(void) { return SWIG_Python_str_FromChar("this"); } SWIGRUNTIME PyObject * SWIG_This(void) { static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This(); return swig_this; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ /* TODO: I don't know how to implement the fast getset in Python 3 right now */ #if PY_VERSION_HEX>=0x03000000 #define SWIG_PYTHON_SLOW_GETSET_THIS #endif SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { if (SwigPyObject_Check(pyobj)) { return (SwigPyObject *) pyobj; } else { PyObject *obj = 0; #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !SwigPyObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' SwigPyObject from it */ return SWIG_Python_GetSwigThis(obj); } return (SwigPyObject *)obj; } } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { if (!obj) return SWIG_ERROR; if (obj == Py_None) { if (ptr) *ptr = 0; return SWIG_OK; } else { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (SwigPyObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } return SWIG_OK; } else { int res = SWIG_ERROR; if (flags & SWIG_POINTER_IMPLICIT_CONV) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } } return res; } } } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; if (ty) { swig_cast_info *tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } } else { *ptr = vptr; } return SWIG_OK; } } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, without calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) { #if (PY_VERSION_HEX >= 0x02020000) PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { #if PY_VERSION_HEX >= 0x03000000 inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); PyObject_SetAttr(inst, SWIG_This(), swig_this); Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; #else PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); #endif } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) PyObject *inst; PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); if (inst == NULL) { return NULL; } inst->in_class = (PyClassObject *)data->newargs; Py_INCREF(inst->in_class); inst->in_dict = PyDict_New(); if (inst->in_dict == NULL) { Py_DECREF(inst); return NULL; } #ifdef Py_TPFLAGS_HAVE_WEAKREFS inst->in_weakreflist = NULL; #endif #ifdef Py_TPFLAGS_GC PyObject_GC_Init(inst); #endif PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); return (PyObject *) inst; #endif #endif } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, (char*)"__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { SwigPyObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) { if (!ptr) { return SWIG_Py_Void(); } else { int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; PyObject *robj = SwigPyObject_New(ptr, type, own); SwigPyClientData *clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); if (inst) { Py_DECREF(robj); robj = inst; } } return robj; } } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ SWIGINTERN int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return SWIG_ERROR; } if (PyDict_SetItemString(dict, name, o)) return SWIG_ERROR; Py_DECREF(o); return SWIG_OK; } #endif SWIGRUNTIME void SWIG_Python_DestroyModule(void *vptr) { swig_module_info *swig_module = (swig_module_info *) vptr; swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; if (data) SwigPyClientData_Del(data); } } Py_DECREF(SWIG_This()); } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */ #if PY_VERSION_HEX >= 0x03000000 /* Add a dummy module object into sys.modules */ PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION); #else PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = SWIG_Python_str_FromChar(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { obj = PyCObject_FromVoidPtr(descriptor, NULL); PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { char *tmp; PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str)); } else { PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); } SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : (char*)""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && SwigPyObject_Check(obj)) { const char *otype = (const char *) SwigPyObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); SWIG_Python_str_DelForPy3(cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); #if SWIG_POINTER_EXCEPTION if (flags) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } #endif } return result; } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_CosNA_EventChannel_ptr swig_types[0] #define SWIGTYPE_p_NOTIFICATION_Consumer_Swig swig_types[1] #define SWIGTYPE_p_NOTIFICATION_Supplier_Swig swig_types[2] #define SWIGTYPE_p_char swig_types[3] #define SWIGTYPE_p_long swig_types[4] #define SWIGTYPE_p_p_char swig_types[5] static swig_type_info *swig_types[7]; static swig_module_info swig_module = {swig_types, 6, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #if (PY_VERSION_HEX <= 0x02000000) # if !defined(SWIG_PYTHON_CLASSIC) # error "This python version requires swig to be run with the '-classic' option" # endif #endif /*----------------------------------------------- @(target):= _libNOTIFICATION.so ------------------------------------------------*/ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_init PyInit__libNOTIFICATION #else # define SWIG_init init_libNOTIFICATION #endif #define SWIG_name "_libNOTIFICATION" #define SWIGVERSION 0x010340 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class SwigPtr_PyObject { protected: PyObject *_obj; public: SwigPtr_PyObject() :_obj(0) { } SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { Py_XINCREF(_obj); } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { Py_XINCREF(_obj); } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; return *this; } ~SwigPtr_PyObject() { Py_XDECREF(_obj); } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct SwigVar_PyObject : SwigPtr_PyObject { SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { } SwigVar_PyObject & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } //#define __declspec(a) #include "NOTIFICATION_Swig.hxx" SWIGINTERN swig_type_info* SWIG_pchar_descriptor(void) { static int init = 0; static swig_type_info* info = 0; if (!init) { info = SWIG_TypeQuery("_p_char"); init = 1; } return info; } SWIGINTERNINLINE PyObject * SWIG_FromCharPtrAndSize(const char* carray, size_t size) { if (carray) { if (size > INT_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromStringAndSize(carray, static_cast< int >(size)); #else return PyString_FromStringAndSize(carray, static_cast< int >(size)); #endif } } else { return SWIG_Py_Void(); } } SWIGINTERNINLINE PyObject * SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 if (PyUnicode_Check(obj)) #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; #if PY_VERSION_HEX>=0x03000000 if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require a UTF-8 representation. TODO(bhy) More detailed explanation */ return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); PyBytes_AsStringAndSize(obj, &cstr, &len); if(alloc) *alloc = SWIG_NEWOBJ; #else PyString_AsStringAndSize(obj, &cstr, &len); #endif if (cptr) { if (alloc) { /* In python the user should not be able to modify the inner string representation. To warranty that, if you define SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string buffer is always returned. The default behavior is just to return the pointer value, so, be careful. */ #if defined(SWIG_PYTHON_SAFE_CSTRINGS) if (*alloc != SWIG_OLDOBJ) #else if (*alloc == SWIG_NEWOBJ) #endif { *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { #if PY_VERSION_HEX>=0x03000000 assert(0); /* Should never reach here in Python 3 */ #endif *cptr = SWIG_Python_str_AsChar(obj); } } if (psize) *psize = len + 1; #if PY_VERSION_HEX>=0x03000000 Py_XDECREF(obj); #endif return SWIG_OK; } else { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *) vptr; if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_double (PyObject *obj, double *val) { int res = SWIG_TypeError; if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; } else if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; double d = PyFloat_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = d; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); } else { PyErr_Clear(); } } } #endif return res; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; long v = PyInt_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_bool (PyObject *obj, bool *val) { int r = PyObject_IsTrue(obj); if (r == -1) return SWIG_ERROR; if (val) *val = r ? true : false; return SWIG_OK; } SWIGINTERNINLINE PyObject* SWIG_From_bool (bool value) { return PyBool_FromLong(value ? 1 : 0); } #ifdef __cplusplus extern "C" { #endif SWIGINTERN PyObject *_wrap_NOTIFICATION_date(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":NOTIFICATION_date")) SWIG_fail; result = (char *)NOTIFICATION_date(); resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_NOTIFICATION_channel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; CosNA_EventChannel_ptr result; if (!PyArg_ParseTuple(args,(char *)":NOTIFICATION_channel")) SWIG_fail; result = NOTIFICATION_channel(); resultobj = SWIG_NewPointerObj((new CosNA_EventChannel_ptr(static_cast< const CosNA_EventChannel_ptr& >(result))), SWIGTYPE_p_CosNA_EventChannel_ptr, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_NOTIFICATION_Supplier_Swig(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; bool arg2 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; bool val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; NOTIFICATION_Supplier_Swig *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_NOTIFICATION_Supplier_Swig",&obj0,&obj1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_NOTIFICATION_Supplier_Swig" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); ecode2 = SWIG_AsVal_bool(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_NOTIFICATION_Supplier_Swig" "', argument " "2"" of type '" "bool""'"); } arg2 = static_cast< bool >(val2); result = (NOTIFICATION_Supplier_Swig *)new NOTIFICATION_Supplier_Swig((char const *)arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NOTIFICATION_Supplier_Swig, SWIG_POINTER_NEW | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_delete_NOTIFICATION_Supplier_Swig(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; NOTIFICATION_Supplier_Swig *arg1 = (NOTIFICATION_Supplier_Swig *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_NOTIFICATION_Supplier_Swig",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NOTIFICATION_Supplier_Swig, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_NOTIFICATION_Supplier_Swig" "', argument " "1"" of type '" "NOTIFICATION_Supplier_Swig *""'"); } arg1 = reinterpret_cast< NOTIFICATION_Supplier_Swig * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_NOTIFICATION_Supplier_Swig_Send(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; NOTIFICATION_Supplier_Swig *arg1 = (NOTIFICATION_Supplier_Swig *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:NOTIFICATION_Supplier_Swig_Send",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NOTIFICATION_Supplier_Swig, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NOTIFICATION_Supplier_Swig_Send" "', argument " "1"" of type '" "NOTIFICATION_Supplier_Swig *""'"); } arg1 = reinterpret_cast< NOTIFICATION_Supplier_Swig * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NOTIFICATION_Supplier_Swig_Send" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "NOTIFICATION_Supplier_Swig_Send" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "NOTIFICATION_Supplier_Swig_Send" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "NOTIFICATION_Supplier_Swig_Send" "', argument " "5"" of type '" "char const *""'"); } arg5 = reinterpret_cast< char * >(buf5); (arg1)->Send((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5); resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return NULL; } SWIGINTERN PyObject *NOTIFICATION_Supplier_Swig_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_NOTIFICATION_Supplier_Swig, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_NOTIFICATION_Consumer_Swig(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; NOTIFICATION_Consumer_Swig *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_NOTIFICATION_Consumer_Swig")) SWIG_fail; result = (NOTIFICATION_Consumer_Swig *)new NOTIFICATION_Consumer_Swig(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NOTIFICATION_Consumer_Swig, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_NOTIFICATION_Consumer_Swig(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; NOTIFICATION_Consumer_Swig *arg1 = (NOTIFICATION_Consumer_Swig *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_NOTIFICATION_Consumer_Swig",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NOTIFICATION_Consumer_Swig, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_NOTIFICATION_Consumer_Swig" "', argument " "1"" of type '" "NOTIFICATION_Consumer_Swig *""'"); } arg1 = reinterpret_cast< NOTIFICATION_Consumer_Swig * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_NOTIFICATION_Consumer_Swig_Receive(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; NOTIFICATION_Consumer_Swig *arg1 = (NOTIFICATION_Consumer_Swig *) 0 ; char **arg2 = (char **) 0 ; char **arg3 = (char **) 0 ; char **arg4 = (char **) 0 ; char **arg5 = (char **) 0 ; char **arg6 = (char **) 0 ; long *arg7 = (long *) 0 ; char **arg8 = (char **) 0 ; long *arg9 = (long *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; void *argp5 = 0 ; int res5 = 0 ; void *argp6 = 0 ; int res6 = 0 ; void *argp7 = 0 ; int res7 = 0 ; void *argp8 = 0 ; int res8 = 0 ; void *argp9 = 0 ; int res9 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; PyObject * obj8 = 0 ; bool result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:NOTIFICATION_Consumer_Swig_Receive",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NOTIFICATION_Consumer_Swig, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "1"" of type '" "NOTIFICATION_Consumer_Swig *""'"); } arg1 = reinterpret_cast< NOTIFICATION_Consumer_Swig * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "2"" of type '" "char **""'"); } arg2 = reinterpret_cast< char ** >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "3"" of type '" "char **""'"); } arg3 = reinterpret_cast< char ** >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "4"" of type '" "char **""'"); } arg4 = reinterpret_cast< char ** >(argp4); res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "5"" of type '" "char **""'"); } arg5 = reinterpret_cast< char ** >(argp5); res6 = SWIG_ConvertPtr(obj5, &argp6,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "6"" of type '" "char **""'"); } arg6 = reinterpret_cast< char ** >(argp6); res7 = SWIG_ConvertPtr(obj6, &argp7,SWIGTYPE_p_long, 0 | 0 ); if (!SWIG_IsOK(res7)) { SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "7"" of type '" "long *""'"); } arg7 = reinterpret_cast< long * >(argp7); res8 = SWIG_ConvertPtr(obj7, &argp8,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res8)) { SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "8"" of type '" "char **""'"); } arg8 = reinterpret_cast< char ** >(argp8); res9 = SWIG_ConvertPtr(obj8, &argp9,SWIGTYPE_p_long, 0 | 0 ); if (!SWIG_IsOK(res9)) { SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "NOTIFICATION_Consumer_Swig_Receive" "', argument " "9"" of type '" "long *""'"); } arg9 = reinterpret_cast< long * >(argp9); result = (bool)(arg1)->Receive(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *NOTIFICATION_Consumer_Swig_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_NOTIFICATION_Consumer_Swig, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } static PyMethodDef SwigMethods[] = { { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, { (char *)"NOTIFICATION_date", _wrap_NOTIFICATION_date, METH_VARARGS, (char *)"NOTIFICATION_date() -> char"}, { (char *)"NOTIFICATION_channel", _wrap_NOTIFICATION_channel, METH_VARARGS, (char *)"NOTIFICATION_channel() -> CosNA_EventChannel_ptr"}, { (char *)"new_NOTIFICATION_Supplier_Swig", _wrap_new_NOTIFICATION_Supplier_Swig, METH_VARARGS, (char *)"new_NOTIFICATION_Supplier_Swig(char instanceName, bool notif) -> NOTIFICATION_Supplier_Swig"}, { (char *)"delete_NOTIFICATION_Supplier_Swig", _wrap_delete_NOTIFICATION_Supplier_Swig, METH_VARARGS, (char *)"delete_NOTIFICATION_Supplier_Swig(NOTIFICATION_Supplier_Swig self)"}, { (char *)"NOTIFICATION_Supplier_Swig_Send", _wrap_NOTIFICATION_Supplier_Swig_Send, METH_VARARGS, (char *)"\n" "NOTIFICATION_Supplier_Swig_Send(NOTIFICATION_Supplier_Swig self, char graph, char node, \n" " char type, char message)\n" ""}, { (char *)"NOTIFICATION_Supplier_Swig_swigregister", NOTIFICATION_Supplier_Swig_swigregister, METH_VARARGS, NULL}, { (char *)"new_NOTIFICATION_Consumer_Swig", _wrap_new_NOTIFICATION_Consumer_Swig, METH_VARARGS, (char *)"new_NOTIFICATION_Consumer_Swig() -> NOTIFICATION_Consumer_Swig"}, { (char *)"delete_NOTIFICATION_Consumer_Swig", _wrap_delete_NOTIFICATION_Consumer_Swig, METH_VARARGS, (char *)"delete_NOTIFICATION_Consumer_Swig(NOTIFICATION_Consumer_Swig self)"}, { (char *)"NOTIFICATION_Consumer_Swig_Receive", _wrap_NOTIFICATION_Consumer_Swig_Receive, METH_VARARGS, (char *)"\n" "NOTIFICATION_Consumer_Swig_Receive(NOTIFICATION_Consumer_Swig self, char graph, char node, \n" " char type, char message, char sender, long counter, \n" " char date, long stamp) -> bool\n" ""}, { (char *)"NOTIFICATION_Consumer_Swig_swigregister", NOTIFICATION_Consumer_Swig_swigregister, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_CosNA_EventChannel_ptr = {"_p_CosNA_EventChannel_ptr", "CosNA_EventChannel_ptr *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_NOTIFICATION_Consumer_Swig = {"_p_NOTIFICATION_Consumer_Swig", "NOTIFICATION_Consumer_Swig *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_NOTIFICATION_Supplier_Swig = {"_p_NOTIFICATION_Supplier_Swig", "NOTIFICATION_Supplier_Swig *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_long = {"_p_long", "long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_CosNA_EventChannel_ptr, &_swigt__p_NOTIFICATION_Consumer_Swig, &_swigt__p_NOTIFICATION_Supplier_Swig, &_swigt__p_char, &_swigt__p_long, &_swigt__p_p_char, }; static swig_cast_info _swigc__p_CosNA_EventChannel_ptr[] = { {&_swigt__p_CosNA_EventChannel_ptr, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_NOTIFICATION_Consumer_Swig[] = { {&_swigt__p_NOTIFICATION_Consumer_Swig, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_NOTIFICATION_Supplier_Swig[] = { {&_swigt__p_NOTIFICATION_Supplier_Swig, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long[] = { {&_swigt__p_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_CosNA_EventChannel_ptr, _swigc__p_NOTIFICATION_Consumer_Swig, _swigc__p_NOTIFICATION_Supplier_Swig, _swigc__p_char, _swigc__p_long, _swigc__p_p_char, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned staticly to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int found, init; clientdata = clientdata; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ found=0; iter=module_head; do { if (iter==&swig_module) { found=1; break; } iter=iter->next; } while (iter!= module_head); /* if the is found in the list, then all is done and we may leave */ if (found) return; /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpeters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %d\n", swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_InternFromString(""); #else return PyString_FromString(""); #endif } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { #if PY_VERSION_HEX >= 0x03000000 PyObject *str = PyUnicode_InternFromString("("); PyObject *tail; PyObject *joined; swig_globalvar *var; for (var = v->vars; var; var=var->next) { tail = PyUnicode_FromString(var->name); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; if (var->next) { tail = PyUnicode_InternFromString(", "); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; } } tail = PyUnicode_InternFromString(")"); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; #else PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); #endif return str; } SWIGINTERN int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char *tmp; PyObject *str = swig_varlink_str(v); fprintf(fp,"Swig global variables "); fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str)); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(str); return 0; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(NULL) 0, /* Number of items in variable part (ob_size) */ #endif (char *)"swigvarlink", /* Type name (tp_name) */ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ 0, /* Itemsize (tp_itemsize) */ (destructor) swig_varlink_dealloc, /* Deallocator (tp_dealloc) */ (printfunc) swig_varlink_print, /* Print (tp_print) */ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc) swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; varlink_type = tmp; /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */ #if PY_VERSION_HEX < 0x03000000 varlink_type.ob_type = &PyType_Type; #endif type_init = 1; } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { strncpy(gv->name,name,size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *_SWIG_globals = 0; if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); return _SWIG_globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT #if PY_VERSION_HEX >= 0x03000000 PyObject* #else void #endif SWIG_init(void) { PyObject *m, *d; #if PY_VERSION_HEX >= 0x03000000 static struct PyModuleDef SWIG_module = { PyModuleDef_HEAD_INIT, (char *) SWIG_name, NULL, -1, SwigMethods, NULL, NULL, NULL, NULL }; #endif /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); #if PY_VERSION_HEX >= 0x03000000 m = PyModule_Create(&SWIG_module); #else m = Py_InitModule((char *) SWIG_name, SwigMethods); #endif d = PyModule_GetDict(m); SWIG_InitializeModule(0); SWIG_InstallConstants(d,swig_const_table); SWIG_Python_SetConstant(d, "NOTIF_WARNING",SWIG_FromCharPtr("Warning")); SWIG_Python_SetConstant(d, "NOTIF_STEP",SWIG_FromCharPtr("Step")); SWIG_Python_SetConstant(d, "NOTIF_TRACE",SWIG_FromCharPtr("Trace")); SWIG_Python_SetConstant(d, "NOTIF_VERBOSE",SWIG_FromCharPtr("Verbose")); SWIG_Python_SetConstant(d, "NOTIFICATION_ChannelName",SWIG_FromCharPtr("EventChannel")); #if PY_VERSION_HEX >= 0x03000000 return m; #else return; #endif } salome-kernel-6.5.0/src/NamingService/000077500000000000000000000000001177004724000176035ustar00rootroot00000000000000salome-kernel-6.5.0/src/NamingService/Makefile.am000077500000000000000000000037161177004724000216510ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME NamingService : wrapping NamingService services # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:18 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # header files salomeinclude_HEADERS =\ SALOME_NamingService.hxx \ ServiceUnreachable.hxx \ NamingService_WaitForServerReadiness.hxx \ SALOME_NamingService_defs.hxx # Scripts to be exported dist_salomescript_PYTHON =\ SALOME_NamingServicePy.py # Libraries targets lib_LTLIBRARIES = libSalomeNS.la libSalomeNS_la_SOURCES =\ SALOME_NamingService.cxx \ ServiceUnreachable.cxx \ NamingService_WaitForServerReadiness.cxx libSalomeNS_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeNS_la_CPPFLAGS = \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Basics \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeNS_la_LIBADD = ../Utils/libOpUtil.la salome-kernel-6.5.0/src/NamingService/Makefile.in000077500000000000000000001035561177004724000216650ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/NamingService ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeNS_la_DEPENDENCIES = ../Utils/libOpUtil.la am_libSalomeNS_la_OBJECTS = libSalomeNS_la-SALOME_NamingService.lo \ libSalomeNS_la-ServiceUnreachable.lo \ libSalomeNS_la-NamingService_WaitForServerReadiness.lo libSalomeNS_la_OBJECTS = $(am_libSalomeNS_la_OBJECTS) libSalomeNS_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeNS_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeNS_la_SOURCES) DIST_SOURCES = $(libSalomeNS_la_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME NamingService : wrapping NamingService services # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:18 vsr Exp $ # # header files salomeinclude_HEADERS = \ SALOME_NamingService.hxx \ ServiceUnreachable.hxx \ NamingService_WaitForServerReadiness.hxx \ SALOME_NamingService_defs.hxx # Scripts to be exported dist_salomescript_PYTHON = \ SALOME_NamingServicePy.py # Libraries targets lib_LTLIBRARIES = libSalomeNS.la libSalomeNS_la_SOURCES = \ SALOME_NamingService.cxx \ ServiceUnreachable.cxx \ NamingService_WaitForServerReadiness.cxx libSalomeNS_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeNS_la_CPPFLAGS = \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Basics \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeNS_la_LIBADD = ../Utils/libOpUtil.la all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/NamingService/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/NamingService/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeNS.la: $(libSalomeNS_la_OBJECTS) $(libSalomeNS_la_DEPENDENCIES) $(libSalomeNS_la_LINK) -rpath $(libdir) $(libSalomeNS_la_OBJECTS) $(libSalomeNS_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeNS_la-NamingService_WaitForServerReadiness.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeNS_la-SALOME_NamingService.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeNS_la-ServiceUnreachable.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeNS_la-SALOME_NamingService.lo: SALOME_NamingService.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeNS_la-SALOME_NamingService.lo -MD -MP -MF $(DEPDIR)/libSalomeNS_la-SALOME_NamingService.Tpo -c -o libSalomeNS_la-SALOME_NamingService.lo `test -f 'SALOME_NamingService.cxx' || echo '$(srcdir)/'`SALOME_NamingService.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeNS_la-SALOME_NamingService.Tpo $(DEPDIR)/libSalomeNS_la-SALOME_NamingService.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_NamingService.cxx' object='libSalomeNS_la-SALOME_NamingService.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeNS_la-SALOME_NamingService.lo `test -f 'SALOME_NamingService.cxx' || echo '$(srcdir)/'`SALOME_NamingService.cxx libSalomeNS_la-ServiceUnreachable.lo: ServiceUnreachable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeNS_la-ServiceUnreachable.lo -MD -MP -MF $(DEPDIR)/libSalomeNS_la-ServiceUnreachable.Tpo -c -o libSalomeNS_la-ServiceUnreachable.lo `test -f 'ServiceUnreachable.cxx' || echo '$(srcdir)/'`ServiceUnreachable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeNS_la-ServiceUnreachable.Tpo $(DEPDIR)/libSalomeNS_la-ServiceUnreachable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ServiceUnreachable.cxx' object='libSalomeNS_la-ServiceUnreachable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeNS_la-ServiceUnreachable.lo `test -f 'ServiceUnreachable.cxx' || echo '$(srcdir)/'`ServiceUnreachable.cxx libSalomeNS_la-NamingService_WaitForServerReadiness.lo: NamingService_WaitForServerReadiness.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeNS_la-NamingService_WaitForServerReadiness.lo -MD -MP -MF $(DEPDIR)/libSalomeNS_la-NamingService_WaitForServerReadiness.Tpo -c -o libSalomeNS_la-NamingService_WaitForServerReadiness.lo `test -f 'NamingService_WaitForServerReadiness.cxx' || echo '$(srcdir)/'`NamingService_WaitForServerReadiness.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeNS_la-NamingService_WaitForServerReadiness.Tpo $(DEPDIR)/libSalomeNS_la-NamingService_WaitForServerReadiness.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NamingService_WaitForServerReadiness.cxx' object='libSalomeNS_la-NamingService_WaitForServerReadiness.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeNS_la-NamingService_WaitForServerReadiness.lo `test -f 'NamingService_WaitForServerReadiness.cxx' || echo '$(srcdir)/'`NamingService_WaitForServerReadiness.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_salomescriptPYTHON install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/NamingService/NamingService_WaitForServerReadiness.cxx000077500000000000000000000070111177004724000275430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : NamingService_WaitForServerReadiness.cxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/NamingService_WaitForServerReadiness.cxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:18 vsr Exp $ // #include "NamingService_WaitForServerReadiness.hxx" #include "utilities.h" #include #include // ============================================================================ /*! * Wait until a server is registered in naming service. * \param serverName name of the server to find. * \param NS SALOME_NamingService object * Wait until the given server is ready i.e. is name is found in namingService. * Try 40 times, with 500 ms sleep between each try. * If Logger is used for traces, it must be ready before this call, because * SALOME_NamingService client uses SALOME traces. So, Logger readiness must be * checked in Launch script before execution of WaitForServerReadiness. */ // ============================================================================ void NamingService_WaitForServerReadiness(SALOME_NamingService* NS, std::string serverName) { long TIMESleep = 500000000; // 500 ms. int NumberOfTries = 40; // total wait = 20 s. int found = 0; timespec ts_req; ts_req.tv_nsec=TIMESleep; ts_req.tv_sec=0; timespec ts_rem; ts_rem.tv_nsec=0; ts_rem.tv_sec=0; ASSERT(NS); for (int itry=0; itry < NumberOfTries; itry++) { try { if (serverName.length() == 0) { CORBA::String_var dummyadr = NS->getIORaddr(); // to wait for naming service found = 1; break; // naming service found } else { CORBA::Object_var obj = NS->Resolve(serverName.c_str()); if (! CORBA::is_nil(obj)) { found =1; break; // server found, no more try to do } MESSAGE("Server "<< serverName <<" not yet ready, waiting..."); #ifndef WIN32 nanosleep(&ts_req,&ts_rem); // wait before retry #else Sleep(TIMESleep/1000000); #endif } } catch( ServiceUnreachable& ) { MESSAGE("CORBA::COMM_FAILURE: Naming Service not yet ready, waiting..."); #ifndef WIN32 nanosleep(&ts_req,&ts_rem); // wait before retry #else Sleep(TIMESleep/1000000); #endif } } if (!found) { INFOS("Server "<< serverName <<" not found, abort..."); exit(EXIT_FAILURE); } } salome-kernel-6.5.0/src/NamingService/NamingService_WaitForServerReadiness.hxx000077500000000000000000000030311177004724000275460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : NamingService_WaitForServerReadiness.hxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/NamingService_WaitForServerReadiness.hxx,v 1.6.2.1.10.2.12.1 2012-04-12 14:05:18 vsr Exp $ // #ifndef _NAMINGSERVICE_WAITFORSERVERREADINESS_HXX_ #define _NAMINGSERVICE_WAITFORSERVERREADINESS_HXX_ #include "SALOME_NamingService.hxx" #include void NAMINGSERVICE_EXPORT NamingService_WaitForServerReadiness(SALOME_NamingService* NS, std::string serverName); #endif salome-kernel-6.5.0/src/NamingService/SALOME_NamingService.cxx000077500000000000000000001663701177004724000241410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NamingService : wrapping NamingService services // File : SALOME_NamingService.cxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/SALOME_NamingService.cxx,v 1.16.2.7.10.3.12.1 2012-04-12 14:05:18 vsr Exp $ // #include "SALOME_NamingService.hxx" #include "ServiceUnreachable.hxx" #include "utilities.h" #include #include #include #include #ifdef WNT #define strdup _strdup #endif /*! \class SALOME_NamingService \brief A class to manage the SALOME naming service */ // ============================================================================ /*! \brief Default Constructor without ORB reference. * * After Default Constructor, one needs to initialize ORB. * \sa init_orb(CORBA::ORB_ptr orb), SALOME_NamingService(CORBA::ORB_ptr orb) */ // ============================================================================ SALOME_NamingService::SALOME_NamingService() { MESSAGE("SALOME_NamingService default constructor"); _orb = CORBA::ORB::_nil(); _root_context = CosNaming::NamingContext::_nil(); } // ============================================================================ /*! \brief Standard Constructor, with ORB reference. * * Initializes the naming service root context * \param orb CORBA::ORB_ptr arguments */ // ============================================================================ SALOME_NamingService::SALOME_NamingService(CORBA::ORB_ptr orb) { MESSAGE("SALOME_NamingService creation"); _orb = CORBA::ORB::_duplicate(orb); _initialize_root_context(); } // ============================================================================ /*! \brief Standard destructor. * * The standard destructor does nothing special. */ // ============================================================================ SALOME_NamingService::~SALOME_NamingService() { // Problem MESSAGE with singleton: late destruction, // after trace system destruction ? //MESSAGE("SALOME_NamingService destruction"); } // ============================================================================ /*! \brief initializes ORB reference and naming service root context. * * Initializes ORB reference and naming service root context. * For use after default constructor. * If param orb is null, the orb is initialized * \param orb CORBA::ORB_ptr arguments */ // ============================================================================ void SALOME_NamingService::init_orb(CORBA::ORB_ptr orb) { MESSAGE("SALOME_NamingService initialisation"); Utils_Locker lock (&_myMutex); if(orb) _orb = CORBA::ORB::_duplicate(orb); else { int argc=0; _orb = CORBA::ORB_init(argc, 0); // Here we make the assumption that the orb has already been initialized } _initialize_root_context(); } // ============================================================================ /*! \brief Registers a CORBA object reference under a path. * * Registers a CORBA object reference under a path. If the path ends with '/', * only a directory is created. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \param ObjRef CORBA object reference to associate to the path. To create * only a directory, give nil pointer. * \param Path A relative or absolute pathname to store the object reference. * If the pathname begins with a '/', pathname is taken * as an absolute pathname. Else, pathname is taken as a relative * path, to current context. Prefer absolute pathname, relative * pathname are not safe, when SALOME_NamingService object is * shared or use in multithreaded context. * If the path ends with '/', only a directory is created. * \sa Change_Directory(const char* Path), * Create_Directory(const char* Path) * CORBA::Object_ptr Resolve(const char* Path) */ // ============================================================================ void SALOME_NamingService::Register(CORBA::Object_ptr ObjRef, const char* Path) throw(ServiceUnreachable) { MESSAGE("BEGIN OF Register: " << Path); Utils_Locker lock (&_myMutex); // --- _current_context is replaced to the _root_context // if the Path begins whith '/' if (Path[0] == '/'){ _current_context = _root_context; } // --- the resolution of the directory path has to be done // to place the current_context to the correct node CosNaming::Name context_name; std::vector splitPath; int dimension_resultat = _createContextNameDir(Path, context_name, splitPath, true); CORBA::Boolean not_exist = false; if (dimension_resultat > 0){ // A directory is treated (not only an object name) // test if the directory where ObjRef should be recorded already exists // If not, create the new context try{ CORBA::Object_var obj = _current_context->resolve(context_name); _current_context = CosNaming::NamingContext::_narrow(obj); } catch (CosNaming::NamingContext::NotFound &){ // --- failed to resolve, therefore assume cold start not_exist = true; } catch (CosNaming::NamingContext::InvalidName &){ INFOS("Register() : CosNaming::NamingContext::InvalidName"); } catch (CosNaming::NamingContext::CannotProceed &){ INFOS("Register() : CosNaming::NamingContext::CannotProceed"); } catch (CORBA::SystemException&){ INFOS("Register() : CORBA::SystemException: " << "unable to contact the naming service"); throw ServiceUnreachable(); } if (not_exist){ try{ context_name.length(1); for (int i = 0 ; i < dimension_resultat ;i++){ context_name[0].id = CORBA::string_dup(splitPath[i].c_str()); context_name[0].kind = CORBA::string_dup("dir"); // SCRUTE(_context_name[0].id); // --- check if the path is created try{ // --- if the context is already created, nothing to do CORBA::Object_var obj = _current_context->resolve(context_name); _current_context = CosNaming::NamingContext::_narrow(obj); } catch (CosNaming::NamingContext::NotFound &){ try{ // --- the context must be created CosNaming::NamingContext_var temp_context = _current_context->bind_new_context(context_name); _current_context = temp_context; } catch (CosNaming::NamingContext::AlreadyBound&){ CORBA::Object_var obj = _current_context->resolve(context_name); _current_context = CosNaming::NamingContext::_narrow(obj); } } } } catch (CosNaming::NamingContext::AlreadyBound&){ INFOS("Register() : CosNaming::NamingContext::AlreadyBound"); } catch (CosNaming::NamingContext::NotFound& ex){ CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) INFOS("Register() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found"); if (ex.why == CosNaming::NamingContext::not_context) INFOS("Register() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context"); if (ex.why == CosNaming::NamingContext::not_object) INFOS("Register() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object"); } catch (CosNaming::NamingContext::CannotProceed&){ INFOS("Register(): CosNaming::NamingContext::CannotProceed"); } catch (CosNaming::NamingContext::InvalidName&){ INFOS("Register(): CosNaming::NamingContext::InvalidName"); } catch (CORBA::SystemException&){ INFOS("Register():CORBA::SystemException: " << "unable to contact the naming service"); throw ServiceUnreachable(); } } } // --- The current directory is now the directory where the object should // be recorded int sizePath = splitPath.size(); if (sizePath > dimension_resultat){ ASSERT(sizePath == dimension_resultat+1); context_name.length(1); try{ // --- the last element is an object and not a directory context_name[0].id = CORBA::string_dup(splitPath[dimension_resultat].c_str()); context_name[0].kind = CORBA::string_dup("object"); //SCRUTE(context_name[0].id); _current_context->bind(context_name, ObjRef); } catch (CosNaming::NamingContext::NotFound& ex){ CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) INFOS("Register() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found"); if (ex.why == CosNaming::NamingContext::not_context) INFOS("Register() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context"); if (ex.why == CosNaming::NamingContext::not_object) INFOS("Register() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object"); } catch (CosNaming::NamingContext::CannotProceed&){ INFOS("Register(): CosNaming::NamingContext::CannotProceed"); } catch (CosNaming::NamingContext::InvalidName&){ INFOS("Register(): CosNaming::NamingContext::InvalidName"); } catch (CosNaming::NamingContext::AlreadyBound&){ INFOS("Register(): CosNaming::NamingContext::AlreadyBound, " << "object will be rebind"); _current_context->rebind(context_name, ObjRef); } catch (CORBA::SystemException&){ INFOS("!!!Register(): CORBA::SystemException: " << "unable to contact the naming service"); throw ServiceUnreachable(); } } } // ============================================================================ /*! \brief get the CORBA object reference associated to a name. * * get the CORBA object reference associated to a complete name with a path. * If the NamingService is out, the exception ServiceUnreachable is thrown * \param Path pathname. If the pathname begins with a '/', pathname is taken * as an absolute pathname. Else, pathname is taken as a relative * path, to current context. Prefer absolute pathname, relative * pathname are not safe, when SALOME_NamingService object is * shared or use in multithreaded context. * \return the object reference if it exists under the pathname, * or nil reference in other cases. * \sa Register(CORBA::Object_ptr ObjRef, const char* Path), * Change_Directory(const char* Path) */ // ============================================================================ CORBA::Object_ptr SALOME_NamingService::Resolve(const char* Path) throw(ServiceUnreachable) { // MESSAGE("BEGIN OF Resolve: " << Path); Utils_Locker lock (&_myMutex); // --- _current_context is replaced to the _root_context // if the Path begins whith '/' if (Path[0] == '/') { _current_context = _root_context; } // --- the resolution of the directory path has to be done // to place the current_context to the correct node CosNaming::Name context_name; std::vector splitPath; _createContextNameDir(Path, context_name, splitPath, false); ASSERT(!CORBA::is_nil(_current_context)); CORBA::Object_var obj = CORBA::Object::_nil(); try { obj = _current_context->resolve(context_name); } catch (CosNaming::NamingContext::NotFound& ex) { CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) MESSAGE("Resolve() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found"); if (ex.why == CosNaming::NamingContext::not_context) INFOS("Resolve() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context"); if (ex.why == CosNaming::NamingContext::not_object) INFOS("Resolve() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object"); } catch (CosNaming::NamingContext::CannotProceed&) { INFOS("Resolve(): CosNaming::NamingContext::CannotProceed"); } catch (CosNaming::NamingContext::InvalidName&) { INFOS("Resolve(): CosNaming::NamingContext::InvalidName"); } catch (CORBA::SystemException&) { INFOS("Resolve():CORBA::SystemException : unable to contact" << "the naming service"); throw ServiceUnreachable(); } return obj._retn(); } // ============================================================================ /*! \brief get the CORBA object reference associated to an uncomplete name. * * get the CORBA object reference associated to an uncomplete name with a * path. Look for the first occurence of name*. * If the NamingService is out, the exception ServiceUnreachable is thrown * \param Path pathname under the form "/path/name" (Absolute reference !) * search the fist reference like "/path(.dir)/name*(.kind)" * \return the object reference if found, or nil reference. * \sa Resolve(const char* Path) */ // ============================================================================ CORBA::Object_ptr SALOME_NamingService::ResolveFirst(const char* Path) throw(ServiceUnreachable) { // MESSAGE("ResolveFirst"); Utils_Locker lock (&_myMutex); // SCRUTE(Path); std::string thePath = Path; std::string basePath = ""; std::string name = thePath; std::string::size_type idx = thePath.rfind('/'); if (idx != std::string::npos) // at least one '/' found { basePath = thePath.substr(0, idx); name = thePath.substr(idx + 1); // SCRUTE(basePath); } // SCRUTE(name); CORBA::Object_var obj = CORBA::Object::_nil(); bool isOk = false; if (basePath.empty()) isOk =true; else isOk = Change_Directory(basePath.c_str()); if (isOk) { std::vector listElem = list_directory(); std::vector::iterator its = listElem.begin(); while (its != listElem.end()) { MESSAGE(*its); if ((*its).find(name) == 0) { return Resolve((*its).c_str()); } its++; } } return obj._retn(); } // ============================================================================ /*! \brief find a component instance from hostname, containername, * componentName and number of processors. * * find a component instance from hostname, containername, componentName and * number of processors. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \param hostname name of the machine on which the component is searched. * \param containerName name of the container in which the component is instanciated. * \param componentName name of the component we are looking for an existing instance. * \param nbproc in case of multi processor machine, container name is * suffixed with _nbproc. * \return the object reference */ // ============================================================================ CORBA::Object_ptr SALOME_NamingService::ResolveComponent(const char* hostname, const char* containerName, const char* componentName, const int nbproc) throw(ServiceUnreachable) { // MESSAGE("ResolveComponent"); Utils_Locker lock (&_myMutex); std::string name = "/Containers/"; name += hostname; if ( strlen(containerName) != 0 ) { name += "/"; if ( nbproc >= 1 ) { char *newContainerName = new char[strlen(containerName) + 8]; sprintf(newContainerName, "%s_%d", containerName, nbproc); name += newContainerName; delete [] newContainerName; } else name += containerName; name += "/"; name += componentName; return ResolveFirst(name.c_str()); } else { SCRUTE(name); std::string basename = name; if (Change_Directory(basename.c_str())) { std::vector contList = list_subdirs(); for (unsigned int ind = 0; ind < contList.size(); ind++) { name = contList[ind].c_str(); if ( nbproc >= 1 ) { char *str_nbproc = new char[8]; sprintf(str_nbproc, "_%d", nbproc); if( strstr(name.c_str(),str_nbproc) == NULL) continue; // check only containers with _%d in name delete [] str_nbproc; } name += "/"; name += componentName; SCRUTE(name); CORBA::Object_ptr obj = ResolveFirst(name.c_str()); if ( !CORBA::is_nil(obj) ) return obj; else Change_Directory(basename.c_str()); } } return CORBA::Object::_nil(); } } // ============================================================================ /*! \brief provide a default container name if empty. * * the given container name is returned unchanged, unless it is empty. * \param containerName * \return container name, where empty input is replaced by "FactoryServer", * without the path. * \sa BuildContainerNameForNS(const char *containerName, const char *hostname) */ // ============================================================================ std::string SALOME_NamingService::ContainerName(const char *containerName) { std::string ret; if (strlen(containerName) == 0) ret = "FactoryServer"; else ret = containerName; return ret; } // ============================================================================ /*! \brief build a container name, given a MachineParameters struct. * * Build a container name with a MachineParameters struct. In case of multi * processor machine, container name is suffixed with _nbproc. nproc equals * (number of nodes)*(number of processor per nodes). * \param params struct from which we get container name (may be * empty), number of nodes and number of processor * per node. * \return a container name without the path. * \sa BuildContainerNameForNS(const Engines::MachineParameters& params, * const char *hostname) */ // ============================================================================ std::string SALOME_NamingService::ContainerName(const Engines::MachineParameters& params) { int nbproc; if ( !params.isMPI ) nbproc = 0; else if ( (params.nb_node <= 0) && (params.nb_proc_per_node <= 0) ) nbproc = 1; else if ( params.nb_node == 0 ) nbproc = params.nb_proc_per_node; else if ( params.nb_proc_per_node == 0 ) nbproc = params.nb_node; else nbproc = params.nb_node * params.nb_proc_per_node; std::string ret = ContainerName(params.container_name); if ( nbproc >= 1 ) { char *suffix = new char[8]; sprintf(suffix, "_%d", nbproc); ret += suffix; } return ret; } std::string SALOME_NamingService::ContainerName(const Engines::ContainerParameters& params) { int nbproc; if ( !params.isMPI ) nbproc = 0; else if ( params.nb_proc <= 0 ) nbproc = 1; else nbproc = params.nb_proc; std::string ret = ContainerName(params.container_name); if ( nbproc >= 1 ) { char *suffix = new char[8]; sprintf(suffix, "_%d", nbproc); ret += suffix; } return ret; } // ============================================================================ /*! \brief build a string representing a container in Naming Service. * * Build a string representing the absolute pathname of a container in * SALOME_NamingService. This form gives a suffixed containerName in case of * multi processor machine. * \param containerName name of the container in which the component is instanciated. * \param hostname name of the host of the container, without domain names. * \return the path under the form /Containers/hostname/containerName * \sa ContainerName(const Engines::MachineParameters& params) */ // ============================================================================ std::string SALOME_NamingService::BuildContainerNameForNS(const char *containerName, const char *hostname) { std::string ret = "/Containers/"; ret += hostname; ret += "/"; ret += ContainerName(containerName); return ret; } // ============================================================================ /*! \brief build a string representing a container in Naming Service. * * Build a string representing the absolute pathname of a container in * SALOME_NamingService. * \param params used as it is, or replaced by FactoryServer if empty. * \param hostname name of the host of the container, without domain names. * \return the path under the form /Containers/hostname/containerName * \sa ContainerName(const char *containerName) */ // ============================================================================ std::string SALOME_NamingService:: BuildContainerNameForNS(const Engines::MachineParameters& params, const char *hostname) { std::string ret = "/Containers/"; ret += hostname; ret += "/"; ret += ContainerName(params); return ret; } std::string SALOME_NamingService:: BuildContainerNameForNS(const Engines::ContainerParameters& params, const char *hostname) { std::string ret = "/Containers/"; ret += hostname; ret += "/"; ret += ContainerName(params); return ret; } // ============================================================================ /*! \brief search a name in current directory. * * Search a name in the current directory. after call, the current directory * is changed to the directory containing the last occurence of name found. * If no occurence found (see return value), current directory remains * unchanged. * * \param name the name to search. * \return number of occurences found. * \sa Change_Directory(const char* Path) */ // ============================================================================ int SALOME_NamingService::Find(const char* name) throw(ServiceUnreachable) { MESSAGE("BEGIN OF Find " << name); Utils_Locker lock (&_myMutex); CORBA::Long occurence_number = 0 ; try { _Find(name, occurence_number); } catch (CORBA::SystemException&) { INFOS("!!!Find() : CORBA::SystemException : unable to contact" << " the naming service"); throw ServiceUnreachable(); } return occurence_number; } // ============================================================================ /*! \brief Creates a directory (context_name) * * Creates a directory (context_name) relative to the current directory * (current context) or relative to the root directory (root context), if * the path given begins with a '/'. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \param Path A relative or absolute pathname to store the object reference. * If the pathname begins with a '/', pathname is taken * as an absolute pathname. Else, pathname is taken as a relative * path, to current context. Prefer absolute pathname, relative * pathname are not safe, when SALOME_NamingService object is * shared or use in multithreaded context. * \return true if successfull * (creation not strictly garanteed if true, because Register may * catch some specific unlikely exception without throw anything * --- to be corrected ---) * \sa RegisterCORBA::Object_ptr ObjRef, const char* Path) */ // ============================================================================ bool SALOME_NamingService::Create_Directory(const char* Path) throw(ServiceUnreachable) { MESSAGE("BEGIN OF Create_Directory"); Utils_Locker lock (&_myMutex); std::string path(Path); // --- if path empty, nothing to create, no context change if (path.empty()) return false; // --- if path ='/', nothing to create, only change to root_context if (path == "/") { MESSAGE("Create Directory '/', just change to root_context"); _current_context = _root_context; return true; } // --- path must end with '/' if (path[path.length()-1] != '/') path += '/'; Register(CORBA::Object::_nil(), path.c_str()); return true; } // ============================================================================ /*! \brief change current directory to the given path * * change the current directory to the given path in parameter. * Warning: avoid use when the SALOME_NamingService instance is shared by * several threads (current context may be modified by another thread). * If the path is empty, nothing done return OK. * If Path ="/", the current directory changes to the root directory. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \param Path the new current directory * \return true if the change succeeded */ // ============================================================================ bool SALOME_NamingService::Change_Directory(const char* Path) throw(ServiceUnreachable) { // MESSAGE("BEGIN OF Change_Directory " << Path); Utils_Locker lock (&_myMutex); std::string path(Path); // --- if path empty, nothing to do if (path.empty()) return true; // --- if path ='/', nothing to resolve, only change to root_context if (path == "/") { // MESSAGE("Change_Directory is called to go to the root_context"); _current_context = _root_context; return true; } CosNaming::NamingContext_var current_context = _current_context; bool changeOK = false; // --- replace _current_context with _root_context if Path begins whith '/' if (path[0] == '/') current_context = _root_context; // --- need to resolve directory path ASSERT(!CORBA::is_nil(current_context)); if (path[path.length()-1] != '/') path += '/'; // SCRUTE(path); CosNaming::Name context_name; std::vector splitPath; _createContextNameDir(path.c_str(), context_name, splitPath, true); // --- Context creation try { CORBA::Object_var obj = current_context->resolve(context_name); current_context = CosNaming::NamingContext::_narrow(obj); ASSERT(!CORBA::is_nil(current_context)); _current_context = current_context; changeOK = true; } catch (CosNaming::NamingContext::NotFound& ex) { CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) MESSAGE( "Change_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found"); if (ex.why == CosNaming::NamingContext::not_context) INFOS("Change_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context" ); if (ex.why == CosNaming::NamingContext::not_object) INFOS( "Change_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object" ); } catch (CosNaming::NamingContext::CannotProceed&) { INFOS("Change_Directory(): CosNaming::NamingContext::CannotProceed"); } catch (CosNaming::NamingContext::InvalidName&) { INFOS("Change_Directory(): CosNaming::NamingContext::InvalidName"); } catch (CORBA::SystemException&) { INFOS("Change_Directory():CORBA::SystemException : unable to contact" << "the naming service"); throw ServiceUnreachable(); } return changeOK; } // ============================================================================ /*! \brief get the current directory path * * Get the current directory path. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \return the path of the current_context * \sa _current_directory */ // ============================================================================ char* SALOME_NamingService::Current_Directory() throw(ServiceUnreachable) { MESSAGE("BEGIN OF Current_Directory"); Utils_Locker lock (&_myMutex); CosNaming::NamingContext_var ref_context = _current_context; std::vector splitPath; splitPath.resize(0); int lengthPath = 0; bool notFound = true ; // --- start search from root context _current_context = _root_context ; try { _current_directory(splitPath, lengthPath, ref_context, notFound ); } catch (CORBA::SystemException&) { INFOS("Current_Directory(): CORBA::SystemException: unable to contact" << " the naming service" ) throw ServiceUnreachable(); } std::string path; lengthPath = splitPath.size(); for (int k = 0 ; k < lengthPath ;k++) { path += "/"; path += splitPath[k]; } SCRUTE(path) _current_context = ref_context ; return strdup(path.c_str()); } // ============================================================================ /*! \brief list recursively all objects in the current context * * List and print via trace all directories and objects in the current * context. Trace must be activated: compile option _DEBUG_ * If the NamingService is out, the exception ServiceUnreachable is thrown */ // ============================================================================ void SALOME_NamingService::list() throw(ServiceUnreachable) { MESSAGE("Begin of list"); Utils_Locker lock (&_myMutex) ; CosNaming::BindingList_var binding_list; CosNaming::BindingIterator_var binding_iterator; CosNaming::Binding_var binding ; unsigned long nb = 0 ; // --- only for the BindingIterator use, // to access the bindings CosNaming::NamingContext_var ref_context = _current_context; _current_context->list(nb, binding_list, binding_iterator) ; if (! CORBA::is_nil(binding_iterator)) { while (binding_iterator->next_one(binding)) { CosNaming::Name bindingName = binding->binding_name; if (binding->binding_type == CosNaming::ncontext) { MESSAGE( "Context : " << bindingName[0].id ); try { Change_Directory(bindingName[0].id); } catch (ServiceUnreachable&) { INFOS( "list(): ServiceUnreachable" ) throw ServiceUnreachable(); } list(); _current_context = ref_context ; } else if (binding->binding_type == CosNaming::nobject) { MESSAGE( "Object : " << bindingName[0].id ); } } binding_iterator->destroy(); } } // ============================================================================ /*! \brief list all the objects in the current directory. * * get a list of all the objects in the current directory, without recursion * on the subdirectories. Only the objects are listed, not the directories. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \return list of strings with objects found. * \sa vector list_directory_recurs() */ // ============================================================================ std::vector SALOME_NamingService::list_directory() throw(ServiceUnreachable) { // MESSAGE("list_directory"); std::vector dirList ; dirList.resize(0); CosNaming::BindingList_var binding_list; CosNaming::BindingIterator_var binding_iterator; CosNaming::Binding_var binding ; unsigned long nb = 0 ; // --- only for the BindingIterator use, // to access the bindings CosNaming::NamingContext_var ref_context = _current_context; _current_context->list(nb, binding_list, binding_iterator); if (binding_iterator->_is_nil()) return dirList; while (binding_iterator->next_one(binding)) { CosNaming::Name bindingName = binding->binding_name; if (binding->binding_type == CosNaming::nobject) { // remove memory leak // dirList.push_back(CORBA::string_dup(bindingName[0].id)); dirList.push_back(std::string(bindingName[0].id)); } } // for (unsigned int ind = 0; ind < dirList.size(); ind++) // MESSAGE("list_directory : Object : " << dirList[ind]); binding_iterator->destroy(); return dirList; } // ============================================================================ /*! \brief list all the subdirectories in the current directory. * * get a list of all the subdirectories in the current directory, * without recursion on the subdirectories. * Only the subdirectories are listed, not the objects. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \return list of strings with directories found. * \sa vector list_directory() */ // ============================================================================ std::vector SALOME_NamingService::list_subdirs() throw(ServiceUnreachable) { MESSAGE("list_subdirs"); std::vector dirList ; dirList.resize(0); CosNaming::BindingList_var binding_list; CosNaming::BindingIterator_var binding_iterator; CosNaming::Binding_var binding ; unsigned long nb = 0 ; // --- only for the BindingIterator use, // to access the bindings CosNaming::NamingContext_var ref_context = _current_context; _current_context->list(nb, binding_list, binding_iterator) ; if (binding_iterator->_is_nil()) return dirList; while (binding_iterator->next_one(binding)) { CosNaming::Name bindingName = binding->binding_name; if (binding->binding_type == CosNaming::ncontext) { dirList.push_back(bindingName[0].id.in()); } } for (unsigned int ind = 0; ind < dirList.size(); ind++) MESSAGE("list_directory : Object : " << dirList[ind]); binding_iterator->destroy(); return dirList; } // ============================================================================ /*! \brief list all the objects in the current directory and subdirectories. * * get a list of all the objects in the current directory, with recursion * on the subdirectories. Only the objects are listed, not the directories. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \return list of strings with objects found. * \sa vector list_directory() */ // ============================================================================ std::vector SALOME_NamingService::list_directory_recurs() throw(ServiceUnreachable) { MESSAGE("list_directory_recurs"); Utils_Locker lock (&_myMutex); std::vector dirList ; char* currentDir = Current_Directory(); _list_directory_recurs(dirList, "", currentDir); free(currentDir); return dirList; } // ============================================================================ /*! \brief destroy an entry in naming service. * * Destroy an association Path - Object Reference. * If the NamingService is out, the exception ServiceUnreachable is thrown * \param Path object path */ // ============================================================================ void SALOME_NamingService::Destroy_Name(const char* Path) throw(ServiceUnreachable) { MESSAGE("BEGIN OF Destroy_Name " << Path); Utils_Locker lock (&_myMutex); std::string path(Path); // --- if path empty, nothing to do if (path.empty()) return; // --- if path = '/' not applicable, nothing to do if (path == "/") return; // --- if path begins with '/', set current directory to root context if (path[0] == '/') _current_context = _root_context; // --- context of the directory containing the object CosNaming::Name context_name; std::vector splitPath; int dimension_resultat = _createContextNameDir(path.c_str(), context_name, splitPath, true); bool exist = false; if (dimension_resultat > 0) { // --- path contains a directory, not only an object name // switch to the new directory (or return if directory not found) try { CORBA::Object_var obj = _current_context->resolve(context_name); _current_context = CosNaming::NamingContext::_narrow(obj); exist = true; } catch (CosNaming::NamingContext::NotFound &ex) { // --- failed to resolve exist = false; CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) INFOS( "Destroy_Name(): " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found" ); if (ex.why == CosNaming::NamingContext::not_context) INFOS( "Destroy_Name() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context" ); if (ex.why == CosNaming::NamingContext::not_object) INFOS( "Destroy_Name() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object" ); } catch (CosNaming::NamingContext::InvalidName &) { INFOS("Destroy_Name: CosNaming::NamingContext::InvalidName"); } catch (CosNaming::NamingContext::CannotProceed &) { INFOS("Destroy_Name: CosNaming::NamingContext::CannotProceed"); } catch (CORBA::SystemException&) { INFOS("Destroy_Name : CORBA::SystemException: " << "unable to contact the naming service"); throw ServiceUnreachable(); } if (! exist) return; } ASSERT(!CORBA::is_nil(_current_context)); // --- The current directory is now the directory where the object should // be destroyed int sizePath = splitPath.size(); if (sizePath > dimension_resultat) { ASSERT(sizePath == dimension_resultat+1); context_name.length(1); try { // --- the last element is an object and not a directory context_name[0].id = CORBA::string_dup(splitPath[dimension_resultat].c_str()); context_name[0].kind = CORBA::string_dup("object"); SCRUTE(context_name[0].id); _current_context->unbind(context_name); MESSAGE("The object " << context_name[0].id << " has been deleted"); } catch (CosNaming::NamingContext::NotFound& ex) { CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) INFOS( "Destroy_Name() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found" ); if (ex.why == CosNaming::NamingContext::not_context) INFOS( "Destroy_Name() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context" ); if (ex.why == CosNaming::NamingContext::not_object) INFOS( "Destroy_Name() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object" ); } catch (CosNaming::NamingContext::CannotProceed&) { INFOS( "Destroy_Name(): CosNaming::NamingContext::CannotProceed"); } catch (CosNaming::NamingContext::InvalidName&) { INFOS( "Destroy_Name(): CosNaming::NamingContext::InvalidName"); } catch (CORBA::SystemException&) { INFOS( "Destroy_Name(): CORBA::SystemException: unable to contact" << " the naming service"); throw ServiceUnreachable(); } } } // ============================================================================ /*! \brief Destroy an empty directory * * Destroy an empty directory in Naming Service. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \param Path directory path */ // ============================================================================ void SALOME_NamingService::Destroy_Directory(const char* Path) throw(ServiceUnreachable) { MESSAGE("BEGIN OF Destroy_Directory " << Path); Utils_Locker lock (&_myMutex); std::string path(Path); // --- if path empty, nothing to do if (path.empty()) return; // --- if path begins with '/', set current directory to root context if (path[0] == '/') _current_context = _root_context; CosNaming::NamingContext_var ref_context = _current_context; // --- path must ends with '/' for a directory if (path[path.size() -1] != '/') path += '/'; // --- context of the directory CosNaming::Name context_name; std::vector splitPath; int dimension_resultat = _createContextNameDir(path.c_str(), context_name, splitPath, true); bool exist = false; if (dimension_resultat > 0) { // --- path contains a directory, not only an object name // switch to the new directory (or return if directory not found) try { CORBA::Object_var obj = _current_context->resolve(context_name); _current_context = CosNaming::NamingContext::_narrow(obj); exist = true; } catch (CosNaming::NamingContext::NotFound &ex) { // --- failed to resolve exist = false; CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) INFOS( "Destroy_Directory(): " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found" ); if (ex.why == CosNaming::NamingContext::not_context) INFOS( "Destroy_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context" ); if (ex.why == CosNaming::NamingContext::not_object) INFOS( "Destroy_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object" ); } catch (CosNaming::NamingContext::InvalidName &) { INFOS("Destroy_Directory: CosNaming::NamingContext::InvalidName"); } catch (CosNaming::NamingContext::CannotProceed &) { INFOS("Destroy_Directory: CosNaming::NamingContext::CannotProceed"); } catch (CORBA::SystemException&) { INFOS("Destroy_Directory : CORBA::SystemException: " << "unable to contact the naming service"); throw ServiceUnreachable(); } if (! exist) return; } ASSERT(!CORBA::is_nil(_current_context)); // --- Context Destruction bool isContextDestroyed = false; try { _current_context->destroy(); MESSAGE( "The context " << path << " has been deleted" ); isContextDestroyed = true; } catch (CosNaming::NamingContext::NotEmpty&) { INFOS( "Destroy_Directory(): CosNaming::NamingContext::NoEmpty " << path << " is not empty" ); } catch (CORBA::SystemException&) { INFOS( "Destroy_Directory():CORBA::SystemException : " << "unable to contact the naming service"); throw ServiceUnreachable(); } // --- go to the reference directory _current_context = ref_context ; ASSERT(!CORBA::is_nil(_current_context)); if (isContextDestroyed) { try { _current_context->unbind(context_name); MESSAGE( "The bind to the context " << context_name[0].id << " has been deleted" ); } catch (CosNaming::NamingContext::NotFound& ex) { CosNaming::Name n = ex.rest_of_name; if (ex.why == CosNaming::NamingContext::missing_node) INFOS( "Destroy_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") not found" ); if (ex.why == CosNaming::NamingContext::not_context) INFOS( "Destroy_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not a context" ); if (ex.why == CosNaming::NamingContext::not_object) INFOS( "Destroy_Directory() : " << (char *) n[0].id << " (" << (char *) n[0].kind << ") is not an object" ); } catch (CosNaming::NamingContext::CannotProceed&) { INFOS("Destroy_Directory: CosNaming::NamingContext::CannotProceed"); } catch (CosNaming::NamingContext::InvalidName&) { INFOS("Destroy_Directory: CosNaming::NamingContext::InvalidName"); } catch (CORBA::SystemException&) { INFOS("Destroy_Directory:CORBA::SystemException : unable to contact" << " the naming service"); throw ServiceUnreachable(); } } } // ============================================================================ /*! \brief Destroy a directory with its contents. * * Destroy the objects associations in a directory, and the directory itself, * if there is no subdirectories. * If the NamingService is out, the exception ServiceUnreachable is thrown. * \param Path the directory path. */ // ============================================================================ void SALOME_NamingService::Destroy_FullDirectory(const char* Path) throw(ServiceUnreachable) { MESSAGE("begin of Destroy_FullDirectory " << Path); if( Change_Directory(Path) ) { std::vector contList = list_directory(); for (unsigned int ind = 0; ind < contList.size(); ind++) Destroy_Name(contList[ind].c_str()); Destroy_Directory(Path); } } // ============================================================================ /*! \brief initialize root context (root directory) * * the root context initialisation must be done when the SALOME_NamingService * instance is created and before any othe call. See constructors. */ // ============================================================================ void SALOME_NamingService::_initialize_root_context() { //MESSAGE("Get the root context"); try { CORBA::Object_var obj = _orb->resolve_initial_references("NameService"); _root_context = CosNaming::NamingContext::_narrow(obj); _current_context = _root_context ; ASSERT(!CORBA::is_nil(_root_context)); } catch (CORBA::SystemException&) { INFOS("CORBA::SystemException: unable to contact the naming service"); throw ServiceUnreachable(); } catch (...) { INFOS("Unknown Exception: unable to contact the naming service"); throw ServiceUnreachable(); } } // ============================================================================ /*! \brief transform a string path in CosNaming structure. * * Transform a path given as a string in a CosNaming structure. * \param path a relative or absolute path, with or without an object. * An absolute path begins with '/'. * A path without an object ends with '/'. * \param context_name CosNaming structure to put the path. * \param splitPath a vector of string with subdirectories and final * object, if any. * \param onlyDir if true, final object (if any) is ommited * in context_name. * if false, final object (if any) is included in * context_name. * \return dimension of context_name */ // ============================================================================ int SALOME_NamingService::_createContextNameDir(std::string path, CosNaming::Name& context_name, std::vector& splitPath, bool onlyDir) { if (path.empty()) return 0; std::string::size_type begIdx, endIdx; const std::string delims("/"); splitPath.resize(0); bool endWithDelim = false; begIdx = path.find_first_not_of(delims); while (begIdx != std::string::npos) { endIdx = path.find_first_of(delims, begIdx); if (endIdx == path.length()-1) endWithDelim = true; if (endIdx == std::string::npos) endIdx = path.length(); int lsub = endIdx - begIdx; if (lsub >= 1) splitPath.push_back(path.substr(begIdx, lsub)); begIdx = path.find_first_not_of(delims, endIdx); } int dim; if (onlyDir) // only directory part { dim = splitPath.size()-1; // omit final object if (endWithDelim) // unless the path ends with a delimiter dim++; endWithDelim = true; } else dim = splitPath.size(); // directories and final object context_name.length(dim); for (int i=0; ilist(nb, binding_list, binding_iterator) ; if (! CORBA::is_nil(binding_iterator)) { while (binding_iterator->next_one(binding)) { CosNaming::Name bindingName = binding->binding_name; if (binding->binding_type == CosNaming::ncontext) { // --- We work on a directory, // the search should be done in this directory Change_Directory(bindingName[0].id); _Find(name, occurence_number); // --- We'll go back to the initial context _current_context = ref_context ; } else if (binding->binding_type == CosNaming::nobject) { // --- We work on an object... if (!strcmp( bindingName[0].id, name)) { //MESSAGE("One occurence was found"); occurence_number++; // --- We keep in memory the directory where // one occurence was found found_context = _current_context ; } } } binding_iterator->destroy(); } // --- We go to the last directory where an occurence was found _current_context = found_context; SCRUTE(occurence_number); } // ============================================================================ /*! \brief find the current directory path. * * Parse the naming service tree to find the current context and give the * associated directory path (relative to root context). * \param splitPath * \param lengthResult * \param contextToFind * \param notFound */ // ============================================================================ void SALOME_NamingService:: _current_directory(std::vector& splitPath, int& lengthResult, CosNaming::NamingContext_var contextToFind, bool& notFound) { MESSAGE("BEGIN OF _current_Directory"); CosNaming::BindingList_var binding_list; CosNaming::BindingIterator_var binding_iterator; CosNaming::Binding_var binding; unsigned long nb = 0 ; // --- only for the BindingIterator use, // to access the bindings CosNaming::NamingContext_var ref_context = _current_context; CosNaming::NamingContext_var temp_context = _current_context; _current_context->list(nb, binding_list, binding_iterator); if ( !binding_iterator->_is_nil() ) { while ((binding_iterator->next_one(binding)) && notFound) { CosNaming::Name bindingName = binding->binding_name; if (binding->binding_type == CosNaming::ncontext) { // --- directory, search in it const char* bindingNameid=bindingName[0].id; splitPath.push_back(bindingNameid); lengthResult++; CORBA::Object_var obj = _current_context->resolve(bindingName); temp_context = CosNaming::NamingContext::_narrow(obj); if (temp_context->_is_equivalent(contextToFind)) { MESSAGE("The context is found, we stop the search"); notFound = false; SCRUTE(notFound); } if (notFound) { SCRUTE(bindingName[0].id); Change_Directory(bindingName[0].id); _current_directory(splitPath, lengthResult, contextToFind, notFound); if (notFound) { // --- go back to the initial context _current_context = ref_context; MESSAGE("Just before the delete of " << splitPath[lengthResult-1]); splitPath.pop_back(); lengthResult--; } } } } binding_iterator->destroy(); } // --- return to the last directory where an occurence was found _current_context = ref_context ; } // ============================================================================ /*! \brief list recursively all objects in the given directory and subdirs. * * get a list of all the objects in the current directory, with recursion * on the subdirectories. Only the objects are listed, not the directories. * If the NamingService is out, the exception ServiceUnreachable is thrown. * _current_context must refer to absCurDirectory. * * \param myList The list that will be filled. * \param relativeSubDir The directory relative to absCurDirectory in which * the objects are found. * \param absCurDirectory The current directory, absolute path */ // ============================================================================ void SALOME_NamingService::_list_directory_recurs(std::vector& myList, std::string relativeSubDir, std::string absCurDirectory) { CosNaming::BindingList_var binding_list; CosNaming::BindingIterator_var binding_iterator; CosNaming::Binding_var binding ; unsigned long nb = 0 ; // --- only for thethe use of BindingIterator // to access the bindings std::string absDir; CosNaming::NamingContext_var ref_context = _current_context; if (! relativeSubDir.empty()) { Change_Directory(relativeSubDir.c_str()); absDir = absCurDirectory + "/" + relativeSubDir; } else absDir = absCurDirectory; SCRUTE(absDir); _current_context->list(nb, binding_list, binding_iterator) ; if (! CORBA::is_nil(binding_iterator)) { while (binding_iterator->next_one(binding)) { CosNaming::Name bindingName = binding->binding_name; if (binding->binding_type == CosNaming::ncontext) { std::string relativeSdir(bindingName[0].id); _list_directory_recurs(myList, relativeSdir, absDir); } else if (binding->binding_type == CosNaming::nobject) { std::string objName(bindingName[0].id); std::string elt = absDir + "/" + objName; SCRUTE(elt); myList.push_back(elt); } } binding_iterator->destroy(); } if (! relativeSubDir.empty()) { _current_context = ref_context; } } // ============================================================================ /*! \brief return a stringified reference of root context * * \return a stringified reference of root context */ // ============================================================================ char * SALOME_NamingService::getIORaddr() { return _orb->object_to_string(_root_context); } /*! \brief get the orb used by the naming service * * \return the orb */ CORBA::ORB_ptr SALOME_NamingService::orb() { return _orb; } salome-kernel-6.5.0/src/NamingService/SALOME_NamingService.hxx000077500000000000000000000112401177004724000241270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NamingService : wrapping NamingService services // File : SALOME_NamingService.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/SALOME_NamingService.hxx,v 1.11.2.4.10.2.12.1 2012-04-12 14:05:18 vsr Exp $ // #ifndef SALOME_NAMINGSERVICE_H #define SALOME_NAMINGSERVICE_H #include #include CORBA_CLIENT_HEADER(SALOME_ContainerManager) #include CORBA_CLIENT_HEADER(SALOME_Component) #include #include #include "utilities.h" #include "Utils_Mutex.hxx" #include "ServiceUnreachable.hxx" #include "SALOME_NamingService_defs.hxx" #ifdef WNT #pragma warning(disable:4290) // Warning Exception ... #endif class NAMINGSERVICE_EXPORT SALOME_NamingService { public: SALOME_NamingService(); SALOME_NamingService(CORBA::ORB_ptr orb); virtual ~SALOME_NamingService(); void init_orb(CORBA::ORB_ptr orb=0); void Register(CORBA::Object_ptr ObjRef, const char* Path) throw(ServiceUnreachable); CORBA::Object_ptr Resolve(const char* Path) throw( ServiceUnreachable); CORBA::Object_ptr ResolveFirst(const char* Path) throw( ServiceUnreachable); CORBA::Object_ptr ResolveComponent(const char* hostname, const char* containerName, const char* componentName, const int nbproc=0) throw(ServiceUnreachable); std::string ContainerName(const char *ContainerName); std::string ContainerName(const Engines::ContainerParameters& params); std::string BuildContainerNameForNS(const char *ContainerName, const char *hostname); std::string BuildContainerNameForNS(const Engines::ContainerParameters& params, const char *hostname); // Will Be deleted on SALOME 6 std::string ContainerName(const Engines::MachineParameters& params); std::string BuildContainerNameForNS(const Engines::MachineParameters& params, const char *hostname); int Find(const char* name) throw(ServiceUnreachable); bool Create_Directory(const char* Path) throw(ServiceUnreachable); bool Change_Directory(const char* Path) throw(ServiceUnreachable); char* Current_Directory() throw(ServiceUnreachable); void list() throw(ServiceUnreachable); std::vector list_directory() throw(ServiceUnreachable); std::vector list_subdirs() throw(ServiceUnreachable); std::vector list_directory_recurs() throw(ServiceUnreachable); void Destroy_Name(const char* Path) throw(ServiceUnreachable); virtual void Destroy_Directory(const char* Path) throw(ServiceUnreachable); virtual void Destroy_FullDirectory(const char* Path) throw(ServiceUnreachable); char* getIORaddr(); CORBA::ORB_ptr orb(); protected: Utils_Mutex _myMutex; CORBA::ORB_var _orb; CosNaming::NamingContext_var _root_context, _current_context; void _initialize_root_context(); int _createContextNameDir(std::string path, CosNaming::Name& context_name, std::vector& splitPath, bool onlyDir); void _Find(const char* name, CORBA::Long& occurence_number); void _current_directory(std::vector& splitPath, int& lengthResult, CosNaming::NamingContext_var contextToFind, bool& notFound); void _list_directory_recurs(std::vector& myList, std::string relativeSubDir, std::string absCurDirectory); }; #endif // SALOME_NAMINGSERVICE_H salome-kernel-6.5.0/src/NamingService/SALOME_NamingServicePy.py000077500000000000000000000256471177004724000243010ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME NamingService : wrapping NamingService services # File : SALOME_NamingServicePy.py # Author : Estelle Deville, CEA # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/SALOME_NamingServicePy.py,v 1.11.2.3.14.2.12.1 2012-04-12 14:05:18 vsr Exp $ ## @package SALOME_NamingServicePy # \brief Module to manage SALOME naming service from python # import sys import time from omniORB import CORBA import CosNaming import string from string import * from SALOME_utilities import * #============================================================================= class SALOME_NamingServicePy_i(object): """ A class to manage SALOME naming service from python code """ _orb = None _root_context=None _current_context=None _obj=None #------------------------------------------------------------------------- def __init__(self, orb=None): """ Standard Constructor, with ORB reference. Initializes the naming service root context """ #MESSAGE ( "SALOME_NamingServicePy_i::__init__" ) if orb is None: orb=CORBA.ORB_init([''], CORBA.ORB_ID) self._orb = orb # initialize root context and current context ok = 0 steps = 240 while steps > 0 and ok == 0: try: obj =self._orb.resolve_initial_references("NameService") self._root_context =obj._narrow(CosNaming.NamingContext) self._current_context = self._root_context if self._root_context is None : #MESSAGE ( "Name Service Reference is invalid" ) #sys.exit(1) MESSAGE(" Name service not found") else: ok = 1 except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): MESSAGE(" Name service not found") time.sleep(0.25) steps = steps - 1 if steps == 0 and self._root_context is None: MESSAGE ( "Name Service Reference is invalid" ) sys.exit(1) #------------------------------------------------------------------------- def Register(self,ObjRef, Path): """ ns.Register(object,pathname ) register a CORBA object under a pathname """ MESSAGE ( "SALOME_NamingServicePy_i::Register" ) _not_exist = 0 path_list = list(Path) if path_list[0]=='/': self._current_context = self._root_context #delete first '/' before split Path=Path[1:] result_resolve_path = string.split(Path,'/') if len(result_resolve_path)>1: # A directory is treated (not only an object name) # We had to test if the directory where ObjRef should be recorded # is already done # If not, the new context has to be created _context_name = [] for i in range(len(result_resolve_path)-1): _context_name.append(CosNaming.NameComponent(result_resolve_path[i],"dir")) try: obj = self._current_context.resolve(_context_name) self._current_context = obj._narrow(CosNaming.NamingContext) except CosNaming.NamingContext.NotFound, ex: _not_exist = 1 except CosNaming.NamingContext.InvalidName, ex: MESSAGE ( "Register : CosNaming.NamingContext.InvalidName" ) except CosNaming.NamingContext.CannotProceed, ex: MESSAGE ( "Register : CosNaming.NamingContext.CannotProceed" ) except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): MESSAGE ( "Register : CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE" ) if _not_exist: # at least one context of the complete path is not created, we had # to create it or them _context_name = [] for i in range(len(result_resolve_path)-1): _context_name = [CosNaming.NameComponent(result_resolve_path[i],"dir")] try: obj = self._current_context.resolve(_context_name) self._current_context = obj._narrow(CosNaming.NamingContext) except CosNaming.NamingContext.NotFound, ex: #This context is not created. It will be done self._current_context = self._current_context.bind_new_context(_context_name) #The current directory is now the directory where the object should #be recorded _context_name = [CosNaming.NameComponent(result_resolve_path[len(result_resolve_path)-1],"object")] try: self._current_context.bind(_context_name,ObjRef) except CosNaming.NamingContext.NotFound, ex: MESSAGE ( "Register : CosNaming.NamingContext.NotFound" ) except CosNaming.NamingContext.InvalidName, ex: MESSAGE ( "Register : CosNaming.NamingContext.InvalidName" ) except CosNaming.NamingContext.CannotProceed, ex: MESSAGE ( "Register : CosNaming.NamingContext.CannotProceed" ) except CosNaming.NamingContext.AlreadyBound, ex: MESSAGE ( "Register : CosNaming.NamingContext.AlreadyBound, object will be rebind" ) self._current_context.rebind(_context_name,ObjRef) except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): MESSAGE ( "Register : CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE" ) #------------------------------------------------------------------------- def Resolve(self, Path): """ ns.Resolve(pathname) -> object find a CORBA object (ior) by its pathname """ #MESSAGE ( "SALOME_NamingServicePy_i::Resolve" ) path_list = list(Path) if path_list[0]=='/': self._current_context = self._root_context #delete first '/' before split Path=Path[1:] result_resolve_path = string.split(Path,'/') _context_name=[] for i in range(len(result_resolve_path)-1): _context_name.append(CosNaming.NameComponent(result_resolve_path[i],"dir")) _context_name.append(CosNaming.NameComponent(result_resolve_path[len(result_resolve_path)-1],"object")) try: self._obj = self._current_context.resolve(_context_name) except CosNaming.NamingContext.NotFound, ex: MESSAGE ( "Resolve : CosNaming.NamingContext.NotFound" ) self._obj = None except CosNaming.NamingContext.InvalidName, ex: MESSAGE ( "Resolve : CosNaming.NamingContext.InvalidName" ) self._obj = None except CosNaming.NamingContext.CannotProceed, ex: MESSAGE ( "Resolve : CosNaming.NamingContext.CannotProceed" ) self._obj = None except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): MESSAGE ( "Resolve : CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE" ) self._obj = None return self._obj #------------------------------------------------------------------------- def Create_Directory(self,ObjRef, Path): """ ns.Create_Directory(ObjRef, Path) create a sub directory """ MESSAGE ( "SALOME_NamingServicePy_i::Create_Directory" ) _not_exist = 0 path_list = list(Path) if path_list[0]=='/': self._current_context = self._root_context #delete first '/' before split Path=Path[1:] result_resolve_path = string.split(Path,'/') _context_name = [] for i in range(len(result_resolve_path)): _context_name[CosNaming.NameComponent(result_resolve_path[i],"dir")] try: obj = self._current_context.resolve(_context_name) self._current_context = obj._narrow(CosNaming.NamingContext) except CosNaming.NamingContext.NotFound, ex: self._current_context = self._current_context.bind_new_context(_context_name) except CosNaming.NamingContext.InvalidName, ex: MESSAGE ( "Create_Directory : CosNaming.NamingContext.InvalidName" ) except CosNaming.NamingContext.CannotProceed, ex: MESSAGE ( "Create_Directory : CosNaming.NamingContext.CannotProceed" ) except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): MESSAGE ( "Create_Directory : CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE" ) def Destroy_Name(self,Path): """ ns.Destroy_Name(Path) remove a name in naming service """ resolve_path=string.split(Path,'/') if resolve_path[0] == '': del resolve_path[0] dir_path=resolve_path[:-1] context_name=[] for e in dir_path: context_name.append(CosNaming.NameComponent(e,"dir")) context_name.append(CosNaming.NameComponent(resolve_path[-1],"object")) try: self._root_context.unbind(context_name) except CosNaming.NamingContext.NotFound, ex: return except CORBA.Exception,ex: return def Destroy_FullDirectory(self,Path): """ ns.Destroy_FullDirectory(Path) remove recursively a directory """ context_name=[] for e in string.split(Path,'/'): if e == '':continue context_name.append(CosNaming.NameComponent(e,"dir")) try: context=self._root_context.resolve(context_name) except CosNaming.NamingContext.NotFound, ex: return except CORBA.Exception,ex: return bl,bi=context.list(0) if bi is not None: ok,b=bi.next_one() while(ok): for s in b.binding_name : if s.kind == "object": context.unbind([s]) elif s.kind == "dir": context.unbind([s]) ok,b=bi.next_one() context.destroy() self._root_context.unbind(context_name) salome-kernel-6.5.0/src/NamingService/SALOME_NamingService_defs.hxx000077500000000000000000000027521177004724000251400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NamingService : wrapping NamingService services // File : SALOME_NamingService_defs.hxx // Author : Alexander A. BORODIN // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/SALOME_NamingService_defs.hxx,v 1.2.2.1.22.2.12.1 2012-04-12 14:05:18 vsr Exp $ // #ifndef SALOME_NAMINGSERVICE_DEFS_HXX #define SALOME_NAMINGSERVICE_DEFS_HXX #ifdef WIN32 # if defined NAMINGSERVICE_EXPORTS || defined SalomeNS_EXPORTS # define NAMINGSERVICE_EXPORT __declspec( dllexport ) # else # define NAMINGSERVICE_EXPORT __declspec( dllimport ) # endif #else # define NAMINGSERVICE_EXPORT #endif #endif //SALOME_NAMINGSERVICE_DEFS_HXX salome-kernel-6.5.0/src/NamingService/ServiceUnreachable.cxx000077500000000000000000000024741177004724000240730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NamingService : wrapping NamingService services // File : ServiceUnreachable.cxx // Module : SALOME // #include "ServiceUnreachable.hxx" ServiceUnreachable::ServiceUnreachable( void ): SALOME_Exception( "ServiceUnreachable" ) { ; } ServiceUnreachable::ServiceUnreachable( const ServiceUnreachable &ex ): SALOME_Exception( ex ) { ; } salome-kernel-6.5.0/src/NamingService/ServiceUnreachable.hxx000077500000000000000000000032521177004724000240730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME NamingService : wrapping NamingService services // File : ServiceUnreachable.hxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/ServiceUnreachable.hxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:18 vsr Exp $ // #if !defined ( SERVICEUNREACHABLE_H ) #define SERVICEUNREACHABLE_H #include "SALOME_NamingService_defs.hxx" #include "Utils_SALOME_Exception.hxx" //! exception class for NamingService : ServiceUnreachable class NAMINGSERVICE_EXPORT ServiceUnreachable : public SALOME_Exception { public : ServiceUnreachable( void ); ServiceUnreachable( const ServiceUnreachable &ex ); } ; #endif /* #if ( !defined SERVICEUNREACHABLE_H ) */ salome-kernel-6.5.0/src/NamingService/Test/000077500000000000000000000000001177004724000205225ustar00rootroot00000000000000salome-kernel-6.5.0/src/NamingService/Test/Makefile.am000077500000000000000000000070411177004724000225630ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume BOULANT (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/Test/Makefile.am,v 1.5.2.3.14.3.12.1 2012-04-12 14:05:18 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= NamingServiceTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestNamingService.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @CPPUNIT_INCLUDES@ -I$(srcdir)/$(RPATH)/NamingService \ -I$(srcdir)/$(RPATH)/Basics \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace \ -I$(srcdir)/$(RPATH)/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ @CPPUNIT_LIBS@ \ ../libSalomeNS.la @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libNamingServiceTest.la libNamingServiceTest_la_SOURCES = NamingServiceTest.cxx libNamingServiceTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libNamingServiceTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libNamingServiceTest_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestNamingService TestNamingService_SOURCES = TestNamingService.cxx TestNamingService_CPPFLAGS = \ $(COMMON_CPPFLAGS) \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/Basics/Test TestNamingService_LDADD = \ libNamingServiceTest.la ../libSalomeNS.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/Utils/Test/libUtilsTest.la $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la $(COMMON_LIBS) salome-kernel-6.5.0/src/NamingService/Test/Makefile.in000077500000000000000000001135341177004724000226010ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestNamingService$(EXEEXT) subdir = src/NamingService/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ../libSalomeNS.la libNamingServiceTest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libNamingServiceTest_la_OBJECTS = \ libNamingServiceTest_la-NamingServiceTest.lo libNamingServiceTest_la_OBJECTS = \ $(am_libNamingServiceTest_la_OBJECTS) libNamingServiceTest_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libNamingServiceTest_la_LDFLAGS) $(LDFLAGS) -o \ $@ PROGRAMS = $(bin_PROGRAMS) am_TestNamingService_OBJECTS = \ TestNamingService-TestNamingService.$(OBJEXT) TestNamingService_OBJECTS = $(am_TestNamingService_OBJECTS) TestNamingService_DEPENDENCIES = libNamingServiceTest.la \ ../libSalomeNS.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la $(RPATH)/Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libNamingServiceTest_la_SOURCES) \ $(TestNamingService_SOURCES) DIST_SOURCES = $(libNamingServiceTest_la_SOURCES) \ $(TestNamingService_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume BOULANT (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/NamingService/Test/Makefile.am,v 1.5.2.3.14.3.12.1 2012-04-12 14:05:18 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = NamingServiceTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestNamingService.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @CPPUNIT_INCLUDES@ -I$(srcdir)/$(RPATH)/NamingService \ -I$(srcdir)/$(RPATH)/Basics \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace \ -I$(srcdir)/$(RPATH)/Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ @CPPUNIT_LIBS@ \ ../libSalomeNS.la @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libNamingServiceTest.la libNamingServiceTest_la_SOURCES = NamingServiceTest.cxx libNamingServiceTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libNamingServiceTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libNamingServiceTest_la_LIBADD = $(COMMON_LIBS) TestNamingService_SOURCES = TestNamingService.cxx TestNamingService_CPPFLAGS = \ $(COMMON_CPPFLAGS) \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/Basics/Test TestNamingService_LDADD = \ libNamingServiceTest.la ../libSalomeNS.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/Utils/Test/libUtilsTest.la $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/NamingService/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/NamingService/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libNamingServiceTest.la: $(libNamingServiceTest_la_OBJECTS) $(libNamingServiceTest_la_DEPENDENCIES) $(libNamingServiceTest_la_LINK) -rpath $(libdir) $(libNamingServiceTest_la_OBJECTS) $(libNamingServiceTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestNamingService$(EXEEXT): $(TestNamingService_OBJECTS) $(TestNamingService_DEPENDENCIES) @rm -f TestNamingService$(EXEEXT) $(CXXLINK) $(TestNamingService_OBJECTS) $(TestNamingService_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestNamingService-TestNamingService.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libNamingServiceTest_la-NamingServiceTest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libNamingServiceTest_la-NamingServiceTest.lo: NamingServiceTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libNamingServiceTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libNamingServiceTest_la-NamingServiceTest.lo -MD -MP -MF $(DEPDIR)/libNamingServiceTest_la-NamingServiceTest.Tpo -c -o libNamingServiceTest_la-NamingServiceTest.lo `test -f 'NamingServiceTest.cxx' || echo '$(srcdir)/'`NamingServiceTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libNamingServiceTest_la-NamingServiceTest.Tpo $(DEPDIR)/libNamingServiceTest_la-NamingServiceTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NamingServiceTest.cxx' object='libNamingServiceTest_la-NamingServiceTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libNamingServiceTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libNamingServiceTest_la-NamingServiceTest.lo `test -f 'NamingServiceTest.cxx' || echo '$(srcdir)/'`NamingServiceTest.cxx TestNamingService-TestNamingService.o: TestNamingService.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestNamingService_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestNamingService-TestNamingService.o -MD -MP -MF $(DEPDIR)/TestNamingService-TestNamingService.Tpo -c -o TestNamingService-TestNamingService.o `test -f 'TestNamingService.cxx' || echo '$(srcdir)/'`TestNamingService.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestNamingService-TestNamingService.Tpo $(DEPDIR)/TestNamingService-TestNamingService.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestNamingService.cxx' object='TestNamingService-TestNamingService.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestNamingService_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestNamingService-TestNamingService.o `test -f 'TestNamingService.cxx' || echo '$(srcdir)/'`TestNamingService.cxx TestNamingService-TestNamingService.obj: TestNamingService.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestNamingService_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestNamingService-TestNamingService.obj -MD -MP -MF $(DEPDIR)/TestNamingService-TestNamingService.Tpo -c -o TestNamingService-TestNamingService.obj `if test -f 'TestNamingService.cxx'; then $(CYGPATH_W) 'TestNamingService.cxx'; else $(CYGPATH_W) '$(srcdir)/TestNamingService.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestNamingService-TestNamingService.Tpo $(DEPDIR)/TestNamingService-TestNamingService.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestNamingService.cxx' object='TestNamingService-TestNamingService.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestNamingService_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestNamingService-TestNamingService.obj `if test -f 'TestNamingService.cxx'; then $(CYGPATH_W) 'TestNamingService.cxx'; else $(CYGPATH_W) '$(srcdir)/TestNamingService.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/NamingService/Test/NamingServiceTest.cxx000077500000000000000000001135161177004724000246520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "NamingServiceTest.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include #include #include #include #include // --- uncomment to have some traces on standard error // (useful only when adding new tests...) //#define _DEVDEBUG_ #ifdef _DEVDEBUG_ #define MYDEVTRACE {std::cerr << __FILE__ << " [" << __LINE__ << "] : ";} #define DEVTRACE(msg) {MYDEVTRACE; std::cerr<_this(); anEcho->_remove_ref(); return anEchoRef._retn(); } // ============================================================================ /*! * Set Trace mecanism * - delete preexisting trace classes if any * - set trace on file * Get or initialize the orb * Create a SALOME_NamingService instance */ // ============================================================================ void NamingServiceTest::setUp() { LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); bp1->deleteInstance(bp1); // --- trace on file const char *theFileName = TRACEFILE; std::string s = "file:"; s += theFileName; //s="local"; //s="with_logger"; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite std::ofstream traceFile; // traceFile.open(theFileName, ios::out | ios::trunc); traceFile.open(theFileName, std::ios::out | std::ios::app); CPPUNIT_ASSERT(traceFile); // file created empty, then closed traceFile.close(); bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); // --- Get or initialize the orb int _argc = 1; char* _argv[] = {(char*)""}; ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(_argc , _argv ) ; // --- Create a SALOME_NamingService instance _NS.init_orb(_orb) ; // --- Create an NSTEST::factory CORBA::Object_var obj = _orb->resolve_initial_references("RootPOA"); ASSERT(!CORBA::is_nil(obj)); _root_poa = PortableServer::POA::_narrow(obj); _pman = _root_poa->the_POAManager(); _myFactory = new NSTEST_aFactory_i(); _myFactoryId = _root_poa->activate_object(_myFactory); _factoryRef = _myFactory->_this(); _pman->activate(); _myFactory->_remove_ref(); } // ============================================================================ /*! * - delete trace classes */ // ============================================================================ void NamingServiceTest::tearDown() { LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); bp1->deleteInstance(bp1); } // ============================================================================ /*! * Test default constructor: must be followed by a call to init_orb(ORB) */ // ============================================================================ void NamingServiceTest::testConstructorDefault() { SALOME_NamingService NS; //CPPUNIT_ASSERT_THROW(NS.getIORaddr(),CORBA::Exception); NS.init_orb(_orb); CORBA::String_var root = NS.getIORaddr(); CORBA::Object_var obj = _orb->string_to_object(root); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); CosNaming::NamingContext_var rootContext = CosNaming::NamingContext::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(rootContext)); } // ============================================================================ /*! * Test constructor with ORB parameter */ // ============================================================================ void NamingServiceTest::testConstructorOrb() { SALOME_NamingService NS(_orb); CORBA::String_var root = NS.getIORaddr(); CORBA::Object_var obj = _orb->string_to_object(root); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); CosNaming::NamingContext_var rootContext = CosNaming::NamingContext::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(rootContext)); } // ============================================================================ /*! * Test Register and resolve of a single CORBA object with absolute pathname, * without subdirectories */ // ============================================================================ void NamingServiceTest::testRegisterResolveAbsNoPath() { _NS.Register(_factoryRef,"/nstest_factory"); CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); } // ============================================================================ /*! * Test Register and resolve of a single CORBA object with relative pathname, * without subdirectories */ // ============================================================================ void NamingServiceTest::testRegisterResolveRelativeNoPath() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); _NS.Create_Directory("/myContext"); _NS.Change_Directory("/myContext"); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef,"echo_0"); obj = _NS.Resolve("echo_0"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef2 = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef2)); CPPUNIT_ASSERT(anEchoRef->getId() == anEchoRef2->getId()); obj = _NS.Resolve("/myContext/echo_0"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef3 = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef3)); CPPUNIT_ASSERT(anEchoRef->getId() == anEchoRef3->getId()); } // ============================================================================ /*! * Test Register and resolve of a single CORBA object with absolute pathname, * in a subdirectory */ // ============================================================================ void NamingServiceTest::testRegisterResolveAbsWithPath() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef,"/nstest/echo_0"); obj = _NS.Resolve("/nstest/echo_0"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRefa = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRefa)); CPPUNIT_ASSERT(anEchoRef->getId() == anEchoRefa->getId()); NSTEST::echo_var anEchoRef1 = myFactory->createInstance(); _NS.Register(anEchoRef1,"/nstest2/rep2/rep3/echo_1"); CPPUNIT_ASSERT(anEchoRef->getId() != anEchoRef1->getId()); obj = _NS.Resolve("/nstest2/rep2/rep3/echo_1"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef1a = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef1a)); CPPUNIT_ASSERT(anEchoRef1->getId() == anEchoRef1a->getId()); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2,"/nstest2/1/2/3/4/echo_1"); obj = _NS.Resolve("/nstest2/1/2/3/4/echo_1"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef2a = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef2a)); CPPUNIT_ASSERT(anEchoRef2->getId() == anEchoRef2a->getId()); } // ============================================================================ /*! * Test Register and resolve of a single CORBA object with relative pathname, * in a subdirectory. * Relative Path is changed to the created subdirectory when Register() */ // ============================================================================ void NamingServiceTest::testRegisterResolveRelativeWithPath() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); _NS.Create_Directory("/myContext"); _NS.Change_Directory("/myContext"); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef,"subdir/echo_0"); obj = _NS.Resolve("echo_0"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef2 = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef2)); obj = _NS.Resolve("/myContext/subdir/echo_0"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef3 = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef3)); CPPUNIT_ASSERT(anEchoRef->getId() == anEchoRef3->getId()); _NS.Change_Directory("/myContext"); obj = _NS.Resolve("subdir/echo_0"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef4 = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef4)); CPPUNIT_ASSERT(anEchoRef->getId() == anEchoRef4->getId()); } // ============================================================================ /*! * Test resolve with a name not known */ // ============================================================================ void NamingServiceTest::testResolveBadName() { CORBA::Object_var obj = _NS.Resolve("/notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.Resolve("/nstest/notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.Resolve("/unknownPath/notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.Resolve("/anUnknown/ComplicatedPath/notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test resolve with a name not known, with a relative path */ // ============================================================================ void NamingServiceTest::testResolveBadNameRelative() { _NS.Create_Directory("/myContext"); _NS.Change_Directory("/myContext"); CORBA::Object_var obj = _NS.Resolve("notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.Resolve("unknownPath/notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.Resolve("anUnknown/ComplicatedPath/notRegisteredName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test register and resolve multiple objects, test resolveFirst. * Register a few objects in /nstestfirst/echo_n where n is the object id. * Resolve all the objects. * ResolveFirst /nstestfirst/echo must give /nstestfirst/echo_i, corresponding * to the first object. */ // ============================================================================ #define NB_OBJS 10 void NamingServiceTest::testResolveFirst() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); int ref[NB_OBJS]; for (int i=0; icreateInstance(); ref[i] = anEchoRef->getId(); std::string name = "/nstestfirst/echo_"; char anum[10]; sprintf(anum,"%d",ref[i]); name += anum; _NS.Register(anEchoRef,name.c_str()); } for (int i=0; igetId() == ref[i]); } std::string name = "/nstestfirst/echo"; obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef)); CPPUNIT_ASSERT(anEchoRef->getId() == ref[0]); } // ============================================================================ /*! * Test register and resolve multiple objects, test resolveFirst, relative path * Register a few objects in /nstestfirstrel/echo_n where n is the object id. * Resolve all the objects. * ResolveFirst echo with a relative path /nstestfirstrel must give * /nstestfirst/echo_i, corresponding to the first object. */ // ============================================================================ void NamingServiceTest::testResolveFirstRelative() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); int ref[NB_OBJS]; for (int i=0; icreateInstance(); ref[i] = anEchoRef->getId(); std::string name = "/nstestfirstrel/echo_"; char anum[10]; sprintf(anum,"%d",ref[i]); name += anum; _NS.Register(anEchoRef,name.c_str()); } for (int i=0; igetId() == ref[i]); } _NS.Change_Directory("/nstestfirstrel"); std::string name = "echo"; obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); } // ============================================================================ /*! * Test resolveFirst with unknown name */ // ============================================================================ void NamingServiceTest::testResolveFirstUnknown() { std::string name = "/notYeyRegistered"; CORBA::Object_var obj= _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); name = "/nstestfirst/notYeyRegistered"; obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); name = "/rrr/sss/ttt/notYeyRegistered"; obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test resolveFirst with unknown name, relative Path */ // ============================================================================ void NamingServiceTest::testResolveFirstUnknownRelative() { _NS.Create_Directory("/myContext"); _NS.Change_Directory("/myContext"); std::string name = "RelnotYeyRegistered"; CORBA::Object_var obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); name = "Relnstestfirst/notYeyRegistered"; obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); name = "Relrrr/sss/ttt/notYeyRegistered"; obj = _NS.ResolveFirst(name.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test ResolveComponent works as specified */ // ============================================================================ void NamingServiceTest::testResolveComponentOK() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); obj = _NS.ResolveComponent("theHostName", "theContainerName", "theComponentName"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRefa = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRefa)); CPPUNIT_ASSERT(anEchoRefa->getId() == anEchoRef->getId()); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2, "/Containers/theHostName/theContainerName_2/theComponentName"); obj = _NS.ResolveComponent("theHostName", "theContainerName", "theComponentName", 2); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRefb = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRefb)); CPPUNIT_ASSERT(anEchoRefb->getId() == anEchoRef2->getId()); } // ============================================================================ /*! * Test ResolveComponent gives nil pointer if hostname is not given (empty) */ // ============================================================================ void NamingServiceTest::testResolveComponentEmptyHostname() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); obj = _NS.ResolveComponent("", "theContainerName", "theComponentName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test ResolveComponent gives nil pointer if hostname is unknown */ // ============================================================================ void NamingServiceTest::testResolveComponentUnknownHostname() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); obj = _NS.ResolveComponent("anUnknownHostName", "theContainerName", "theComponentName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test ResolveComponent when containerName is empty. * check bad hostname gives nil pointer. * If componentName registered on a container from hostname, a component * reference is found (the first one). * Else give nil pointer. */ // ============================================================================ void NamingServiceTest::testResolveComponentEmptyContainerName() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2, "/Containers/theHostName/aContainerName/aComponentName"); NSTEST::echo_var anEchoRef3 = myFactory->createInstance(); _NS.Register(anEchoRef3, "/Containers/theHostName/otherContainerName/theComponentName"); obj = _NS.ResolveComponent("anUnknownHostName", "", "theComponentName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.ResolveComponent("theHostName", "", "theComponentName"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRefa = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRefa)); CPPUNIT_ASSERT(anEchoRefa->getId() == anEchoRef->getId()); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testResolveComponentUnknownContainerName() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2, "/Containers/theHostName/aContainerName/aComponentName"); NSTEST::echo_var anEchoRef3 = myFactory->createInstance(); _NS.Register(anEchoRef3, "/Containers/theHostName/otherContainerName/theComponentName"); obj = _NS.ResolveComponent("theHostName", "anUnknownContainerName", "theComponentName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testResolveComponentEmptyComponentName() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2, "/Containers/theHostName/EmptyContainerName/"); obj = _NS.ResolveComponent("theHostName", "EmptyContainerName", ""); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testResolveComponentUnknownComponentName() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); obj = _NS.ResolveComponent("theHostName", "theContainerName", "anUnknownComponentName"); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test with a false number nbproc. * A positive number not corresponding to a registered component gives nil ref. * A negative number is not taken into account and may give a non nil ref. */ // ============================================================================ void NamingServiceTest::testResolveComponentFalseNbproc() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); obj = _NS.ResolveComponent("theHostName", "theContainerName", "theComponentName", 25); CPPUNIT_ASSERT(CORBA::is_nil(obj)); obj = _NS.ResolveComponent("theHostName", "theContainerName", "theComponentName", -25); CPPUNIT_ASSERT(! CORBA::is_nil(obj)); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testContainerName() { std::string ref0 = "FactoryServer"; std::string ret = _NS.ContainerName(""); CPPUNIT_ASSERT(ret == ref0); ref0 = "MyContainerName"; ret = _NS.ContainerName(ref0.c_str()); CPPUNIT_ASSERT(ret == ref0); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testContainerNameParams() { Engines::MachineParameters params; params.container_name = ""; params.hostname = ""; params.OS = ""; params.mem_mb = 0; params.cpu_clock = 0; params.nb_proc_per_node = 0; params.nb_node = 0; params.isMPI = false; std::string ref0 = "FactoryServer"; std::string ret = _NS.ContainerName(params); CPPUNIT_ASSERT(ret == ref0); ref0 = "MyContainerName"; params.container_name = ref0.c_str(); ret = _NS.ContainerName(params); CPPUNIT_ASSERT(ret == ref0); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testBuildContainerNameForNS() { std::string ref0 = "/Containers/theHostName/theContainerName"; std::string ret = _NS.BuildContainerNameForNS("theContainerName","theHostName"); CPPUNIT_ASSERT(ret == ref0); ref0 = "/Containers/theHostName/FactoryServer"; ret = _NS.BuildContainerNameForNS("","theHostName"); CPPUNIT_ASSERT(ret == ref0); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testBuildContainerNameForNSParams() { Engines::MachineParameters params; params.container_name = ""; params.hostname = ""; params.OS = ""; params.mem_mb = 0; params.cpu_clock = 0; params.nb_proc_per_node = 0; params.nb_node = 0; params.isMPI = false; params.container_name = "theContainerName"; std::string ref0 = "/Containers/theHostName/theContainerName"; std::string ret = _NS.BuildContainerNameForNS(params,"theHostName"); CPPUNIT_ASSERT(ret == ref0); params.container_name = ""; ref0 = "/Containers/theHostName/FactoryServer"; ret = _NS.BuildContainerNameForNS(params,"theHostName"); CPPUNIT_ASSERT(ret == ref0); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testFind() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2, "/Containers/theHostName/aContainerName/aComponentName"); NSTEST::echo_var anEchoRef3 = myFactory->createInstance(); _NS.Register(anEchoRef3, "/Containers/theHostName/otherContainerName/theComponentName"); NSTEST::echo_var anEchoRef4 = myFactory->createInstance(); _NS.Register(anEchoRef4, "/Containers/anHostName/oneContainerName/theComponentName"); _NS.Change_Directory("/Containers"); int occ= _NS.Find("theComponentName"); CPPUNIT_ASSERT(occ >= 3); // see previous tests _NS.Change_Directory("/Containers"); occ= _NS.Find("aComponentName"); CPPUNIT_ASSERT(occ == 1); _NS.Change_Directory("/Containers"); occ= _NS.Find("UnknownCompnentName"); CPPUNIT_ASSERT(occ == 0); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testCreateDirectory() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); bool ret = _NS.Create_Directory("/aaa/bbb/ccc/ddd/eee"); CPPUNIT_ASSERT(ret); _NS.Change_Directory("/aaa/bbb/ccc/ddd/eee"); NSTEST::echo_var anEchoRef = myFactory->createInstance(); int val = anEchoRef->getId(); std::string name = "echo_"; char anum[10]; sprintf(anum,"%d",val); name += anum; _NS.Register(anEchoRef,name.c_str()); std::string dirname = "/aaa/bbb/ccc/ddd/eee/"; dirname += name; obj = _NS.Resolve(dirname.c_str()); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRef2 = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRef2)); CPPUNIT_ASSERT(anEchoRef->getId() == anEchoRef2->getId()); ret = _NS.Create_Directory("/aaa/bbb/ccc/ddd/eee"); CPPUNIT_ASSERT(ret); _NS.Change_Directory("/aaa/bbb"); ret = _NS.Create_Directory("cccccc/dddddd/eeeeee"); _NS.Register(anEchoRef,"echo_abcde"); CPPUNIT_ASSERT(ret); _NS.Change_Directory("/aaa/bbb/cccccc/dddddd/eeeeee"); obj = _NS.Resolve("echo_abcde"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testChangeDirectory() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, "/Containers/theHostName/theContainerName/theComponentName"); NSTEST::echo_var anEchoRef2 = myFactory->createInstance(); _NS.Register(anEchoRef2, "/Containers/theHostName/aContainerName/aComponentName"); NSTEST::echo_var anEchoRef3 = myFactory->createInstance(); _NS.Register(anEchoRef3, "/Containers/theHostName/otherContainerName/theComponentName"); NSTEST::echo_var anEchoRef4 = myFactory->createInstance(); _NS.Register(anEchoRef4, "/Containers/anHostName/oneContainerName/theComponentName"); _NS.Change_Directory("/Containers/theHostName/otherContainerName"); obj = _NS.Resolve("theComponentName"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::echo_var anEchoRefa = NSTEST::echo::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(anEchoRefa)); CPPUNIT_ASSERT(anEchoRefa->getId() == anEchoRef3->getId()); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testCurrentDirectory() { std::string path = "/aaa/bbb/ccc/ddd/eee"; bool ret = _NS.Create_Directory(path.c_str()); CPPUNIT_ASSERT(ret); _NS.Change_Directory(path.c_str()); char* acurdir = _NS.Current_Directory(); std::string curdir = acurdir; free(acurdir); CPPUNIT_ASSERT(curdir == path); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testList() { _NS.Change_Directory("/Containers/theHostName/theContainerName"); _NS.list(); _NS.Change_Directory("/Containers"); _NS.list(); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testListDirectory() { _NS.Change_Directory("/Containers/theHostName/theContainerName"); _NS.list_directory(); _NS.Change_Directory("/Containers"); _NS.list_directory(); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testListDirectoryRecurs() { _NS.Change_Directory("/Containers/theHostName/theContainerName"); _NS.list_directory_recurs(); _NS.Change_Directory("/Containers"); _NS.list_directory_recurs(); _NS.Change_Directory("/"); _NS.list_directory_recurs(); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testListSubdirs() { _NS.Change_Directory("/Containers/theHostName/theContainerName"); _NS.list_subdirs(); _NS.Change_Directory("/Containers"); _NS.list_subdirs(); _NS.Change_Directory("/"); _NS.list_subdirs(); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testDestroyName() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); std::string path = "/Containers/theHostName/theContainerName/theComponentName"; NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, path.c_str()); obj=_NS.Resolve(path.c_str()); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); _NS.Destroy_Name(path.c_str()); obj=_NS.Resolve(path.c_str()); CPPUNIT_ASSERT(CORBA::is_nil(obj)); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testDestroyDirectory() { CORBA::Object_var obj = _NS.Resolve("/nstest_factory"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); NSTEST::aFactory_var myFactory = NSTEST::aFactory::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(myFactory)); std::string path = "/Containers/theHostName/theContainerName/theComponentName"; NSTEST::echo_var anEchoRef = myFactory->createInstance(); _NS.Register(anEchoRef, path.c_str()); _NS.Destroy_Directory("/Containers/theHostName/theContainerName"); obj=_NS.Resolve(path.c_str()); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); // directory not empty: not destroyed _NS.Destroy_Name(path.c_str()); _NS.Destroy_Directory("/Containers/theHostName/theContainerName"); _NS.Change_Directory("/Containers/theHostName"); _NS.list_subdirs(); } // ============================================================================ /*! * DestroyFullDirectory is not recursive * Need Housekeeping of /Containers for further tests ! */ // ============================================================================ void NamingServiceTest::_destroyDirectoryRecurs(std::string path) { std::string current = path; SCRUTE(path); if (_NS.Change_Directory(path.c_str())) { std::vector subdirs = _NS.list_subdirs(); for (int i=0; i subdirs = _NS.list_subdirs(); CPPUNIT_ASSERT(subdirs.size() >0); _NS.list_directory_recurs(); std::string path = "/Containers"; _destroyDirectoryRecurs(path); CPPUNIT_ASSERT( ! _NS.Change_Directory("/Containers")); _NS.Change_Directory("/"); _NS.list_subdirs(); _NS.list_directory_recurs(); } // ============================================================================ /*! * Test */ // ============================================================================ void NamingServiceTest::testGetIorAddr() { CORBA::String_var root = _NS.getIORaddr(); CORBA::Object_var obj = _orb->string_to_object(root); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); } // ============================================================================ /*! * Test */ // ============================================================================ // void // NamingServiceTest::() // { // CPPUNIT_ASSERT(0); // } salome-kernel-6.5.0/src/NamingService/Test/NamingServiceTest.hxx000077500000000000000000000120061177004724000246470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _NAMINGSERVICETEST_HXX_ #define _NAMINGSERVICETEST_HXX_ #include #include "SALOME_NamingService.hxx" #include #include CORBA_SERVER_HEADER(nstest) class NSTEST_echo_i : public virtual POA_NSTEST::echo, public virtual PortableServer::ServantBase { public: NSTEST_echo_i(); NSTEST_echo_i(CORBA::Long num); ~NSTEST_echo_i(); CORBA::Long getId(); private: int _num; }; class NSTEST_aFactory_i : public virtual POA_NSTEST::aFactory, public virtual PortableServer::ServantBase { public: NSTEST_aFactory_i(); ~NSTEST_aFactory_i(); NSTEST::echo_ptr createInstance(); private: int _num; }; class NamingServiceTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( NamingServiceTest ); CPPUNIT_TEST( testConstructorDefault ); CPPUNIT_TEST( testConstructorOrb ); CPPUNIT_TEST( testRegisterResolveAbsNoPath ); CPPUNIT_TEST( testRegisterResolveRelativeNoPath ); CPPUNIT_TEST( testRegisterResolveAbsWithPath ); CPPUNIT_TEST( testRegisterResolveRelativeWithPath ); CPPUNIT_TEST( testResolveBadName ); CPPUNIT_TEST( testResolveBadNameRelative ); CPPUNIT_TEST( testResolveFirst ); CPPUNIT_TEST( testResolveFirstRelative ); CPPUNIT_TEST( testResolveFirstUnknown ); CPPUNIT_TEST( testResolveFirstUnknownRelative ); CPPUNIT_TEST( testResolveComponentOK ); CPPUNIT_TEST( testResolveComponentEmptyHostname ); CPPUNIT_TEST( testResolveComponentUnknownHostname ); CPPUNIT_TEST( testResolveComponentEmptyContainerName ); CPPUNIT_TEST( testResolveComponentUnknownContainerName ); CPPUNIT_TEST( testResolveComponentEmptyComponentName ); CPPUNIT_TEST( testResolveComponentUnknownComponentName ); CPPUNIT_TEST( testResolveComponentFalseNbproc ); CPPUNIT_TEST( testContainerName ); CPPUNIT_TEST( testContainerNameParams ); CPPUNIT_TEST( testBuildContainerNameForNS ); CPPUNIT_TEST( testBuildContainerNameForNSParams ); CPPUNIT_TEST( testFind ); CPPUNIT_TEST( testCreateDirectory ); CPPUNIT_TEST( testChangeDirectory ); CPPUNIT_TEST( testCurrentDirectory ); CPPUNIT_TEST( testList ); CPPUNIT_TEST( testListDirectory ); CPPUNIT_TEST( testListDirectoryRecurs ); CPPUNIT_TEST( testListSubdirs ); CPPUNIT_TEST( testDestroyName ); CPPUNIT_TEST( testDestroyDirectory ); CPPUNIT_TEST( testDestroyFullDirectory ); CPPUNIT_TEST( testGetIorAddr ); // CPPUNIT_TEST( ); // CPPUNIT_TEST( ); // CPPUNIT_TEST( ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testConstructorDefault(); void testConstructorOrb(); void testRegisterResolveAbsNoPath(); void testRegisterResolveRelativeNoPath(); void testRegisterResolveAbsWithPath(); void testRegisterResolveRelativeWithPath(); void testResolveBadName(); void testResolveBadNameRelative(); void testResolveFirst(); void testResolveFirstRelative(); void testResolveFirstUnknown(); void testResolveFirstUnknownRelative(); void testResolveComponentOK(); void testResolveComponentEmptyHostname(); void testResolveComponentUnknownHostname(); void testResolveComponentEmptyContainerName(); void testResolveComponentUnknownContainerName(); void testResolveComponentEmptyComponentName(); void testResolveComponentUnknownComponentName(); void testResolveComponentFalseNbproc(); void testContainerName(); void testContainerNameParams(); void testBuildContainerNameForNS(); void testBuildContainerNameForNSParams(); void testFind(); void testCreateDirectory(); void testChangeDirectory(); void testCurrentDirectory(); void testList(); void testListDirectory(); void testListDirectoryRecurs(); void testListSubdirs(); void testDestroyName(); void testDestroyDirectory(); void testDestroyFullDirectory(); void testGetIorAddr(); protected: void _destroyDirectoryRecurs(std::string path); CORBA::ORB_var _orb; SALOME_NamingService _NS; PortableServer::POA_var _root_poa; PortableServer::POAManager_var _pman; PortableServer::ObjectId_var _myFactoryId; NSTEST_aFactory_i * _myFactory; CORBA::Object_var _factoryRef; }; #endif salome-kernel-6.5.0/src/NamingService/Test/TestNamingService.cxx000077500000000000000000000027631177004724000246530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all Unit Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" #include "SALOMETraceCollectorTest.hxx" #include "UtilsTest.hxx" #include "NamingServiceTest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMELocalTraceTest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMETraceCollectorTest ); CPPUNIT_TEST_SUITE_REGISTRATION( UtilsTest ); CPPUNIT_TEST_SUITE_REGISTRATION( NamingServiceTest ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/NamingService/Test/TestNamingService.py000077500000000000000000000035571177004724000245030ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import setenv import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = setenv.get_config() setenv.set_env(args, modules_list, modules_root_dir) # set environment for trace in logger # (with file, servers may be killed before the write to the file...) #os.environ["SALOME_trace"] = "file:/tmp/traceUnitTest.log" #os.environ["SALOME_trace"] = "local" os.environ["SALOME_trace"] = "with_logger" # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # execute Unit Test command = ['TestNamingService'] valgrind = ['valgrind','--leak-check=full'] #command=valgrind+command #to check memory leaks ret = os.spawnvp(os.P_WAIT, command[0], command) # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/Notification/000077500000000000000000000000001177004724000174775ustar00rootroot00000000000000salome-kernel-6.5.0/src/Notification/CosNotifyShorthands.h000077500000000000000000000406271177004724000236370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : CosNotifyShorthands.h // Module : SALOME // #ifndef _COS_NOTIFY_H_ #define _COS_NOTIFY_H_ #include #ifndef COS_USES_BOA #include #include #include #include #include #else #include #include #include #include #include #endif #define CosN CosNotification #define CosNC CosNotifyComm #define CosNA CosNotifyChannelAdmin #define CosNF CosNotifyFilter // XXX TODO: need typedefs and defines for // XXX compilers that do not support M::x syntax typedef CosN::AdminProperties CosN_AdminProperties; typedef CosN::AdminPropertiesAdmin CosN_AdminPropertiesAdmin; #define CosN_AnyOrder CosN::AnyOrder #define CosN_BAD_PROPERTY CosN::BAD_PROPERTY #define CosN_BAD_TYPE CosN::BAD_TYPE #define CosN_BAD_VALUE CosN::BAD_VALUE #define CosN_BestEffort CosN::BestEffort #define CosN_ConnectionReliability CosN::ConnectionReliability #define CosN_DeadlineOrder CosN::DeadlineOrder #define CosN_DefaultPriority CosN::DefaultPriority #define CosN_DiscardPolicy CosN::DiscardPolicy typedef CosN::EventBatch CosN_EventBatch; #define CosN_EventReliability CosN::EventReliability typedef CosN::EventType CosN_EventType; typedef CosN::EventTypeSeq CosN_EventTypeSeq; #define CosN_FifoOrder CosN::FifoOrder #define CosN_HighestPriority CosN::HighestPriority #define CosN_LifoOrder CosN::LifoOrder #define CosN_LowestPriority CosN::LowestPriority #define CosN_MaxEventsPerConsumer CosN::MaxEventsPerConsumer #define CosN_MaximumBatchSize CosN::MaximumBatchSize #define CosN_NamedPropertyRangeSeq CosN::NamedPropertyRangeSeq #define CosN_OrderPolicy CosN::OrderPolicy #define CosN_PacingInterval CosN::PacingInterval #define CosN_Persistent CosN::Persistent #define CosN_Priority CosN::Priority #define CosN_PriorityOrder CosN::PriorityOrder typedef CosN::Property CosN_Property; typedef CosN::PropertyError CosN_PropertyError; typedef CosN::PropertyErrorSeq CosN_PropertyErrorSeq; typedef CosN::PropertyRange CosN_PropertyRange; typedef CosN::PropertySeq CosN_PropertySeq; typedef CosN::QoSAdmin CosN_QoSAdmin; typedef CosN::QoSError_code CosN_QoSError_code; typedef CosN::QoSProperties CosN_QoSProperties; #define CosN_RejectNewEvents CosN::RejectNewEvents #define CosN_StartTimeSupported CosN::StartTimeSupported #define CosN_StopTimeSupported CosN::StopTimeSupported typedef CosN::StructuredEvent CosN_StructuredEvent; #define CosN_Timeout CosN::Timeout #define CosN_UNAVAILABLE_PROPERTY CosN::UNAVAILABLE_PROPERTY #define CosN_UNAVAILABLE_VALUE CosN::UNAVAILABLE_VALUE #define CosN_UNSUPPORTED_PROPERTY CosN::UNSUPPORTED_PROPERTY #define CosN_UNSUPPORTED_VALUE CosN::UNSUPPORTED_VALUE typedef CosN::UnsupportedAdmin CosN_UnsupportedAdmin; typedef CosN::UnsupportedQoS CosN_UnsupportedQoS; #define CosNA_ALL_NOW_UPDATES_OFF CosNA::ALL_NOW_UPDATES_OFF #define CosNA_ALL_NOW_UPDATES_ON CosNA::ALL_NOW_UPDATES_ON #define CosNA_AND_OP CosNA::AND_OP #define CosNA_ANY_EVENT CosNA::ANY_EVENT typedef CosNA::AdminID CosNA_AdminID; typedef CosNA::AdminIDSeq CosNA_AdminIDSeq; typedef CosNA::AdminLimit CosNA_AdminLimit; typedef CosNA::AdminLimitExceeded CosNA_AdminLimitExceeded; typedef CosNA::AdminNotFound CosNA_AdminNotFound; typedef CosNA::ChannelID CosNA_ChannelID; typedef CosNA::ChannelIDSeq CosNA_ChannelIDSeq; typedef CosNA::ChannelNotFound CosNA_ChannelNotFound; typedef CosNA::ClientType CosNA_ClientType; typedef CosNA::ConnectionAlreadyActive CosNA_ConnectionAlreadyActive; typedef CosNA::ConnectionAlreadyInactive CosNA_ConnectionAlreadyInactive; typedef CosNA::ConsumerAdmin CosNA_ConsumerAdmin; typedef CosNA::ConsumerAdmin_ptr CosNA_ConsumerAdmin_ptr; typedef CosNA::ConsumerAdmin_var CosNA_ConsumerAdmin_var; typedef CosNA::EventChannel CosNA_EventChannel; typedef CosNA::EventChannelFactory CosNA_EventChannelFactory; typedef CosNA::EventChannelFactory_ptr CosNA_EventChannelFactory_ptr; typedef CosNA::EventChannelFactory_var CosNA_EventChannelFactory_var; typedef CosNA::EventChannel_ptr CosNA_EventChannel_ptr; typedef CosNA::EventChannel_var CosNA_EventChannel_var; typedef CosNA::InterFilterGroupOperator CosNA_InterFilterGroupOperator; #define CosNA_NONE_NOW_UPDATES_OFF CosNA::NONE_NOW_UPDATES_OFF #define CosNA_NONE_NOW_UPDATES_ON CosNA::NONE_NOW_UPDATES_ON typedef CosNA::NotConnected CosNA_NotConnected; #define CosNA_OR_OP CosNA::OR_OP typedef CosNA::ObtainInfoMode CosNA_ObtainInfoMode; #define CosNA_PULL_ANY CosNA::PULL_ANY #define CosNA_PULL_SEQUENCE CosNA::PULL_SEQUENCE #define CosNA_PULL_STRUCTURED CosNA::PULL_STRUCTURED #define CosNA_PUSH_ANY CosNA::PUSH_ANY #define CosNA_PUSH_SEQUENCE CosNA::PUSH_SEQUENCE #define CosNA_PUSH_STRUCTURED CosNA::PUSH_STRUCTURED #define CosNA_PUSH_TYPED CosNA::PUSH_TYPED #define CosNA_PULL_TYPED CosNA::PULL_TYPED typedef CosNA::ProxyConsumer CosNA_ProxyConsumer; typedef CosNA::ProxyConsumer_ptr CosNA_ProxyConsumer_ptr; typedef CosNA::ProxyConsumer_var CosNA_ProxyConsumer_var; typedef CosNA::ProxyID CosNA_ProxyID; typedef CosNA::ProxyIDSeq CosNA_ProxyIDSeq; typedef CosNA::ProxyNotFound CosNA_ProxyNotFound; typedef CosNA::ProxyPullConsumer CosNA_ProxyPullConsumer; typedef CosNA::ProxyPullConsumer_ptr CosNA_ProxyPullConsumer_ptr; typedef CosNA::ProxyPullConsumer_var CosNA_ProxyPullConsumer_var; typedef CosNA::ProxyPullSupplier CosNA_ProxyPullSupplier; typedef CosNA::ProxyPullSupplier_ptr CosNA_ProxyPullSupplier_ptr; typedef CosNA::ProxyPullSupplier_var CosNA_ProxyPullSupplier_var; typedef CosNA::ProxyPushConsumer CosNA_ProxyPushConsumer; typedef CosNA::ProxyPushConsumer_ptr CosNA_ProxyPushConsumer_ptr; typedef CosNA::ProxyPushConsumer_var CosNA_ProxyPushConsumer_var; typedef CosNA::ProxyPushSupplier CosNA_ProxyPushSupplier; typedef CosNA::ProxyPushSupplier_ptr CosNA_ProxyPushSupplier_ptr; typedef CosNA::ProxyPushSupplier_var CosNA_ProxyPushSupplier_var; typedef CosNA::ProxySupplier CosNA_ProxySupplier; typedef CosNA::ProxySupplier_ptr CosNA_ProxySupplier_ptr; typedef CosNA::ProxySupplier_var CosNA_ProxySupplier_var; typedef CosNA::ProxyType CosNA_ProxyType; #define CosNA_SEQUENCE_EVENT CosNA::SEQUENCE_EVENT #define CosNA_STRUCTURED_EVENT CosNA::STRUCTURED_EVENT typedef CosNA::SequenceProxyPullConsumer CosNA_SequenceProxyPullConsumer; typedef CosNA::SequenceProxyPullConsumer_ptr CosNA_SequenceProxyPullConsumer_ptr; typedef CosNA::SequenceProxyPullConsumer_var CosNA_SequenceProxyPullConsumer_var; typedef CosNA::SequenceProxyPullSupplier CosNA_SequenceProxyPullSupplier; typedef CosNA::SequenceProxyPullSupplier_ptr CosNA_SequenceProxyPullSupplier_ptr; typedef CosNA::SequenceProxyPullSupplier_var CosNA_SequenceProxyPullSupplier_var; typedef CosNA::SequenceProxyPushConsumer CosNA_SequenceProxyPushConsumer; typedef CosNA::SequenceProxyPushConsumer_ptr CosNA_SequenceProxyPushConsumer_ptr; typedef CosNA::SequenceProxyPushConsumer_var CosNA_SequenceProxyPushConsumer_var; typedef CosNA::SequenceProxyPushSupplier CosNA_SequenceProxyPushSupplier; typedef CosNA::SequenceProxyPushSupplier_ptr CosNA_SequenceProxyPushSupplier_ptr; typedef CosNA::SequenceProxyPushSupplier_var CosNA_SequenceProxyPushSupplier_var; typedef CosNA::StructuredProxyPullConsumer CosNA_StructuredProxyPullConsumer; typedef CosNA::StructuredProxyPullConsumer_ptr CosNA_StructuredProxyPullConsumer_ptr; typedef CosNA::StructuredProxyPullConsumer_var CosNA_StructuredProxyPullConsumer_var; typedef CosNA::StructuredProxyPullSupplier CosNA_StructuredProxyPullSupplier; typedef CosNA::StructuredProxyPullSupplier_ptr CosNA_StructuredProxyPullSupplier_ptr; typedef CosNA::StructuredProxyPullSupplier_var CosNA_StructuredProxyPullSupplier_var; typedef CosNA::StructuredProxyPushConsumer CosNA_StructuredProxyPushConsumer; typedef CosNA::StructuredProxyPushConsumer_ptr CosNA_StructuredProxyPushConsumer_ptr; typedef CosNA::StructuredProxyPushConsumer_var CosNA_StructuredProxyPushConsumer_var; typedef CosNA::StructuredProxyPushSupplier CosNA_StructuredProxyPushSupplier; typedef CosNA::StructuredProxyPushSupplier_ptr CosNA_StructuredProxyPushSupplier_ptr; typedef CosNA::StructuredProxyPushSupplier_var CosNA_StructuredProxyPushSupplier_var; typedef CosNA::SupplierAdmin CosNA_SupplierAdmin; typedef CosNA::SupplierAdmin_ptr CosNA_SupplierAdmin_ptr; typedef CosNA::SupplierAdmin_var CosNA_SupplierAdmin_var; typedef CosNC::InvalidEventType CosNC_InvalidEventType; typedef CosNC::NotifyPublish CosNC_NotifyPublish; typedef CosNC::NotifyPublish_ptr CosNC_NotifyPublish_ptr; typedef CosNC::NotifyPublish_var CosNC_NotifyPublish_var; typedef CosNC::NotifySubscribe CosNC_NotifySubscribe; typedef CosNC::NotifySubscribe_ptr CosNC_NotifySubscribe_ptr; typedef CosNC::NotifySubscribe_var CosNC_NotifySubscribe_var; typedef CosNC::PullConsumer CosNC_PullConsumer; typedef CosNC::PullConsumer_ptr CosNC_PullConsumer_ptr; typedef CosNC::PullConsumer_var CosNC_PullConsumer_var; typedef CosNC::PullSupplier CosNC_PullSupplier; typedef CosNC::PullSupplier_ptr CosNC_PullSupplier_ptr; typedef CosNC::PullSupplier_var CosNC_PullSupplier_var; typedef CosNC::PushConsumer CosNC_PushConsumer; typedef CosNC::PushConsumer_ptr CosNC_PushConsumer_ptr; typedef CosNC::PushConsumer_var CosNC_PushConsumer_var; typedef CosNC::PushSupplier CosNC_PushSupplier; typedef CosNC::PushSupplier_ptr CosNC_PushSupplier_ptr; typedef CosNC::PushSupplier_var CosNC_PushSupplier_var; typedef CosNC::SequencePullConsumer CosNC_SequencePullConsumer; typedef CosNC::SequencePullConsumer_ptr CosNC_SequencePullConsumer_ptr; typedef CosNC::SequencePullConsumer_var CosNC_SequencePullConsumer_var; typedef CosNC::SequencePullSupplier CosNC_SequencePullSupplier; typedef CosNC::SequencePullSupplier_ptr CosNC_SequencePullSupplier_ptr; typedef CosNC::SequencePullSupplier_var CosNC_SequencePullSupplier_var; typedef CosNC::SequencePushConsumer CosNC_SequencePushConsumer; typedef CosNC::SequencePushConsumer_ptr CosNC_SequencePushConsumer_ptr; typedef CosNC::SequencePushConsumer_var CosNC_SequencePushConsumer_var; typedef CosNC::SequencePushSupplier CosNC_SequencePushSupplier; typedef CosNC::SequencePushSupplier_ptr CosNC_SequencePushSupplier_ptr; typedef CosNC::SequencePushSupplier_var CosNC_SequencePushSupplier_var; typedef CosNC::StructuredPullConsumer CosNC_StructuredPullConsumer; typedef CosNC::StructuredPullConsumer_ptr CosNC_StructuredPullConsumer_ptr; typedef CosNC::StructuredPullConsumer_var CosNC_StructuredPullConsumer_var; typedef CosNC::StructuredPullSupplier CosNC_StructuredPullSupplier; typedef CosNC::StructuredPullSupplier_ptr CosNC_StructuredPullSupplier_ptr; typedef CosNC::StructuredPullSupplier_var CosNC_StructuredPullSupplier_var; typedef CosNC::StructuredPushConsumer CosNC_StructuredPushConsumer; typedef CosNC::StructuredPushConsumer_ptr CosNC_StructuredPushConsumer_ptr; typedef CosNC::StructuredPushConsumer_var CosNC_StructuredPushConsumer_var; typedef CosNC::StructuredPushSupplier CosNC_StructuredPushSupplier; typedef CosNC::StructuredPushSupplier_ptr CosNC_StructuredPushSupplier_ptr; typedef CosNC::StructuredPushSupplier_var CosNC_StructuredPushSupplier_var; typedef CosNF::CallbackID CosNF_CallbackID; typedef CosNF::CallbackIDSeq CosNF_CallbackIDSeq; typedef CosNF::ConstraintExp CosNF_ConstraintExp; typedef CosNF::ConstraintExpSeq CosNF_ConstraintExpSeq; typedef CosNF::ConstraintID CosNF_ConstraintID; typedef CosNF::ConstraintIDSeq CosNF_ConstraintIDSeq; typedef CosNF::ConstraintInfoSeq CosNF_ConstraintInfoSeq; typedef CosNF::ConstraintInfoSeq_var CosNF_ConstraintInfoSeq_var; typedef CosNF::ConstraintNotFound CosNF_ConstraintNotFound; typedef CosNF::Filter CosNF_Filter; typedef CosNF::FilterAdmin CosNF_FilterAdmin; typedef CosNF::FilterAdmin_ptr CosNF_FilterAdmin_ptr; typedef CosNF::FilterFactory CosNF_FilterFactory; typedef CosNF::FilterFactory_ptr CosNF_FilterFactory_ptr; typedef CosNF::FilterFactory_var CosNF_FilterFactory_var; typedef CosNF::FilterID CosNF_FilterID; typedef CosNF::FilterIDSeq CosNF_FilterIDSeq; typedef CosNF::FilterNotFound CosNF_FilterNotFound; typedef CosNF::Filter_ptr CosNF_Filter_ptr; typedef CosNF::Filter_var CosNF_Filter_var; typedef CosNF::InvalidConstraint CosNF_InvalidConstraint; typedef CosNF::InvalidGrammar CosNF_InvalidGrammar; typedef CosNF::MappingConstraintInfoSeq CosNF_MappingConstraintInfoSeq; typedef CosNF::MappingConstraintPairSeq CosNF_MappingConstraintPairSeq; typedef CosNF::MappingFilter CosNF_MappingFilter; typedef CosNF::MappingFilter_ptr CosNF_MappingFilter_ptr; typedef CosNF::MappingFilter_var CosNF_MappingFilter_var; #endif salome-kernel-6.5.0/src/Notification/Makefile.am000077500000000000000000000045441177004724000215450ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Notification : wrapping of Notification service services # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Notification/Makefile.am,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:18 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ NOTIFICATION.hxx \ NOTIFICATION_Supplier.hxx \ NOTIFICATION_Consumer.hxx \ CosNotifyShorthands.h \ SALOME_NOTIFICATION.hxx # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeNotification.la libSalomeNotification_la_SOURCES =\ NOTIFICATION.cxx \ NOTIFICATION_Supplier.cxx \ NOTIFICATION_Consumer.cxx libSalomeNotification_la_CPPFLAGS =\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeNotification_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeNotification_la_LIBADD =\ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ @CORBA_LIBS@ #LDFLAGS+= -lOpUtil -lSALOMELocalTrace #OMNIORB_IDLCXXFLAGS+= -Wbtp salome-kernel-6.5.0/src/Notification/Makefile.in000077500000000000000000001010631177004724000215500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/Notification ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeNotification_la_DEPENDENCIES = ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la am_libSalomeNotification_la_OBJECTS = \ libSalomeNotification_la-NOTIFICATION.lo \ libSalomeNotification_la-NOTIFICATION_Supplier.lo \ libSalomeNotification_la-NOTIFICATION_Consumer.lo libSalomeNotification_la_OBJECTS = \ $(am_libSalomeNotification_la_OBJECTS) libSalomeNotification_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libSalomeNotification_la_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeNotification_la_SOURCES) DIST_SOURCES = $(libSalomeNotification_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME Notification : wrapping of Notification service services # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Notification/Makefile.am,v 1.5.2.1.14.2.12.1 2012-04-12 14:05:18 vsr Exp $ # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ NOTIFICATION.hxx \ NOTIFICATION_Supplier.hxx \ NOTIFICATION_Consumer.hxx \ CosNotifyShorthands.h \ SALOME_NOTIFICATION.hxx # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeNotification.la libSalomeNotification_la_SOURCES = \ NOTIFICATION.cxx \ NOTIFICATION_Supplier.cxx \ NOTIFICATION_Consumer.cxx libSalomeNotification_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libSalomeNotification_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeNotification_la_LIBADD = \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ @CORBA_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Notification/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Notification/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeNotification.la: $(libSalomeNotification_la_OBJECTS) $(libSalomeNotification_la_DEPENDENCIES) $(libSalomeNotification_la_LINK) -rpath $(libdir) $(libSalomeNotification_la_OBJECTS) $(libSalomeNotification_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeNotification_la-NOTIFICATION.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Consumer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Supplier.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeNotification_la-NOTIFICATION.lo: NOTIFICATION.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNotification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeNotification_la-NOTIFICATION.lo -MD -MP -MF $(DEPDIR)/libSalomeNotification_la-NOTIFICATION.Tpo -c -o libSalomeNotification_la-NOTIFICATION.lo `test -f 'NOTIFICATION.cxx' || echo '$(srcdir)/'`NOTIFICATION.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeNotification_la-NOTIFICATION.Tpo $(DEPDIR)/libSalomeNotification_la-NOTIFICATION.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NOTIFICATION.cxx' object='libSalomeNotification_la-NOTIFICATION.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNotification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeNotification_la-NOTIFICATION.lo `test -f 'NOTIFICATION.cxx' || echo '$(srcdir)/'`NOTIFICATION.cxx libSalomeNotification_la-NOTIFICATION_Supplier.lo: NOTIFICATION_Supplier.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNotification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeNotification_la-NOTIFICATION_Supplier.lo -MD -MP -MF $(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Supplier.Tpo -c -o libSalomeNotification_la-NOTIFICATION_Supplier.lo `test -f 'NOTIFICATION_Supplier.cxx' || echo '$(srcdir)/'`NOTIFICATION_Supplier.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Supplier.Tpo $(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Supplier.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NOTIFICATION_Supplier.cxx' object='libSalomeNotification_la-NOTIFICATION_Supplier.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNotification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeNotification_la-NOTIFICATION_Supplier.lo `test -f 'NOTIFICATION_Supplier.cxx' || echo '$(srcdir)/'`NOTIFICATION_Supplier.cxx libSalomeNotification_la-NOTIFICATION_Consumer.lo: NOTIFICATION_Consumer.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNotification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeNotification_la-NOTIFICATION_Consumer.lo -MD -MP -MF $(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Consumer.Tpo -c -o libSalomeNotification_la-NOTIFICATION_Consumer.lo `test -f 'NOTIFICATION_Consumer.cxx' || echo '$(srcdir)/'`NOTIFICATION_Consumer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Consumer.Tpo $(DEPDIR)/libSalomeNotification_la-NOTIFICATION_Consumer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NOTIFICATION_Consumer.cxx' object='libSalomeNotification_la-NOTIFICATION_Consumer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeNotification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeNotification_la-NOTIFICATION_Consumer.lo `test -f 'NOTIFICATION_Consumer.cxx' || echo '$(srcdir)/'`NOTIFICATION_Consumer.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS #LDFLAGS+= -lOpUtil -lSALOMELocalTrace #OMNIORB_IDLCXXFLAGS+= -Wbtp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Notification/NOTIFICATION.cxx000077500000000000000000000074441177004724000221250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : NOTIFICATION.cxx // Author : Laurent DADA / Francis KLOSS // Module : SALOME // #include "NOTIFICATION.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" CosNA_EventChannel_ptr NOTIFICATION_channel() { ORB_INIT& init = *SINGLETON_::Instance(); ASSERT(SINGLETON_::IsAlreadyExisting()); CORBA::ORB_ptr orb = init(0, 0); CosNA_EventChannel_ptr channel = CosNA_EventChannel::_nil(); CosNaming::NamingContext_var name_context; CosNaming::Name name; CORBA::Object_var name_service; try { name_service = orb->resolve_initial_references("NameService"); name_context = CosNaming::NamingContext::_narrow(name_service); if (CORBA::is_nil(name_context)) { MESSAGE("NOTIFICATION Error : failed to obtain context for NameService"); return(channel); }; } catch(CORBA::ORB::InvalidName& ) { MESSAGE("NOTIFICATION Error : service required is invalid [does not exist]"); return(channel); } catch (CORBA::SystemException& ) { MESSAGE("NOTIFICATION Error : caught system exception COMM_FAILURE"); return(channel); } catch (...) { MESSAGE("NOTIFICATION Error : caught exception while resolving the naming service"); return(channel); } name.length(1); name[0].id = CORBA::string_dup((const char*)NOTIFICATION_ChannelName); name[0].kind = CORBA::string_dup((const char*)NOTIFICATION_ChannelName); try { CORBA::Object_var channel_ref = name_context->resolve(name); channel = CosNA_EventChannel::_narrow(channel_ref); if (CORBA::is_nil(channel)) { MESSAGE("NOTIFICATION Error : failed to narrow object found in naming service"); }; } catch(CORBA::ORB::InvalidName& ) { MESSAGE("NOTIFICATION Error : invalid name"); } catch (CORBA::SystemException& ) { MESSAGE("NOTIFICATION Error : caught system exception COMM_FAILURE while resolving event channel name"); } catch (...) { MESSAGE("NOTIFICATION Error : caught exception while resolving event channel name"); } return(channel); } #include #include static char JourSemaine[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu" , "Fri", "Sat"}; static char Mois[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; static char NOTIFICATION_DATE[50]; char* NOTIFICATION_date() { time_t aTime; time(&aTime); struct tm* temps = localtime(&aTime); sprintf(NOTIFICATION_DATE, "%4d %3d %3s %2d %3s %02d:%02d:%02d", 1900+temps->tm_year, temps->tm_mon+1, Mois[temps->tm_mon], temps->tm_mday, JourSemaine[temps->tm_wday], temps->tm_hour, temps->tm_min, temps->tm_sec); return(NOTIFICATION_DATE); } salome-kernel-6.5.0/src/Notification/NOTIFICATION.hxx000077500000000000000000000032241177004724000221220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : NOTIFICATION.hxx // Author : Laurent DADA / Francis KLOSS // Module : SALOME // #ifndef NOTIFICATION_HXX #define NOTIFICATION_HXX #include "SALOME_NOTIFICATION.hxx" #define NOTIF_WARNING "Warning" #define NOTIF_STEP "Step" #define NOTIF_TRACE "Trace" #define NOTIF_VERBOSE "Verbose" #define NOTIFICATION_ChannelName "EventChannel" #include "utilities.h" // kloss #include #include "CosNotifyShorthands.h" #include "NOTIFICATION_Supplier.hxx" #include "NOTIFICATION_Consumer.hxx" NOTIFICATION_EXPORT char* NOTIFICATION_date(); NOTIFICATION_EXPORT CosNA_EventChannel_ptr NOTIFICATION_channel(); #endif salome-kernel-6.5.0/src/Notification/NOTIFICATION_Consumer.cxx000077500000000000000000000121521177004724000237700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : NOTIFICATION_Consumer.cxx // Author : Laurent DADA / Francis KLOSS // Module : SALOME // #include "NOTIFICATION.hxx" NOTIFICATION_Consumer::NOTIFICATION_Consumer(): proxy_supplier(0), _ok(false) { CosNA_EventChannel_ptr channel = NOTIFICATION_channel(); if (CORBA::is_nil(channel)) { MESSAGE("NOTIFICATION Error : failed to get channel for consumer"); } else { CosNA_ConsumerAdmin_ptr consumerAdmin = channel->default_consumer_admin(); CosNA_ProxyID proxyId; CosNotifyChannelAdmin::ProxySupplier_ptr supplier = consumerAdmin->obtain_notification_pull_supplier(CosNA_STRUCTURED_EVENT, proxyId); if (CORBA::is_nil(supplier)) { MESSAGE("NOTIFICATION Error : failed to get proxy pull supplier"); } else { proxy_supplier = CosNA_StructuredProxyPullSupplier::_narrow(supplier); if (CORBA::is_nil(proxy_supplier)) { MESSAGE("NOTIFICATION Error : failed to _narrow proxy pull supplier"); } else { try { proxy_supplier->connect_structured_pull_consumer(_this()); _ok = true; MESSAGE("NOTIFICATION Info : successfully connection for pull consumer notification"); } catch (CORBA::BAD_PARAM&) { MESSAGE("NOTIFICATION Error : pull consumer BAD_PARAM exception while connecting"); } catch (CosEventChannelAdmin::AlreadyConnected&) { MESSAGE("NOTIFICATION Error : pull consumer already connected"); } catch (...) { MESSAGE("NOTIFICATION Error : pull consumer failed to connect"); } }; }; }; } NOTIFICATION_Consumer::~NOTIFICATION_Consumer() { if (_ok) { _ok = false; CosNA_StructuredProxyPullSupplier_var proxy = proxy_supplier; proxy_supplier = CosNA_StructuredProxyPullSupplier::_nil(); try { if (!CORBA::is_nil(proxy)) { proxy->disconnect_structured_pull_supplier(); }; } catch(...) { MESSAGE("NOTIFICATION Error : while disconnecting proxy pull supplier"); } }; } bool NOTIFICATION_Consumer::Receive(char** graph, char** node, char** type, char** message, char** sender, long* counter, char** date, long* stamp) { bool status = false; CORBA::Boolean has_event; CosN_StructuredEvent* event; if (_ok) { try { event = proxy_supplier->try_pull_structured_event(has_event); status = has_event; } catch (...) { MESSAGE("NOTIFICATION Error : while calling try_pull_structured_event"); }; if (status) { //omniORB 4.1.x requiries using only CORBA types instead C types const char* Asender; const char* Agraph; const char* Atype; CORBA::ULong Acounter; CORBA::ULong Astamp; const char* Adate; const char* Anode; const char* Amessage; event->filterable_data[0].value >>= Asender; event->filterable_data[1].value >>= Agraph; event->filterable_data[2].value >>= Atype; event->filterable_data[3].value >>= Acounter; event->filterable_data[4].value >>= Adate; event->filterable_data[5].value >>= Anode; event->filterable_data[6].value >>= Astamp; event->remainder_of_body >>= Amessage; *graph = CORBA::string_dup(Agraph); *node = CORBA::string_dup(Anode); *type = CORBA::string_dup(Atype); *message = CORBA::string_dup(Amessage); *sender = CORBA::string_dup(Asender); *counter = (long)Acounter; *date = CORBA::string_dup(Adate); *stamp = (long)Astamp; }; }; return(status); } void NOTIFICATION_Consumer::disconnect_structured_pull_consumer() { } void NOTIFICATION_Consumer::offer_change(const CosN_EventTypeSeq& added, const CosN_EventTypeSeq& deled) { } salome-kernel-6.5.0/src/Notification/NOTIFICATION_Consumer.hxx000077500000000000000000000033741177004724000240030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : NOTIFICATION_Consumer.hxx // Author : Laurent DADA / Francis KLOSS // Module : SALOME // #ifndef NOTIFICATION_Consumer_HXX #define NOTIFICATION_Consumer_HXX #include "SALOME_NOTIFICATION.hxx" class NOTIFICATION_EXPORT NOTIFICATION_Consumer: public POA_CosNotifyComm::StructuredPullConsumer { public: NOTIFICATION_Consumer(); virtual ~NOTIFICATION_Consumer(); bool Receive(char** graph, char** node, char** type, char** message, char** sender, long* counter, char** date, long* stamp); private: void disconnect_structured_pull_consumer(); void offer_change(const CosN_EventTypeSeq& added, const CosN_EventTypeSeq& deled); bool _ok; CosNA_StructuredProxyPullSupplier_var proxy_supplier; }; #endif salome-kernel-6.5.0/src/Notification/NOTIFICATION_Supplier.cxx000077500000000000000000000125361177004724000240060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : NOTIFICATION_Supplier.cxx // Author : Laurent DADA / Francis KLOSS // Module : SALOME // #include "NOTIFICATION.hxx" long NOTIFICATION_Supplier::_stamp = 0; NOTIFICATION_Supplier::NOTIFICATION_Supplier(const char* instanceName, bool notif): _sender(instanceName), _counter(0), proxy_consumer(0), _ok(false) { if (notif) { CosNA_EventChannel_ptr channel = NOTIFICATION_channel(); if (CORBA::is_nil(channel)) { MESSAGE("NOTIFICATION Error : failed to get channel for supplier"); } else { CosNA_SupplierAdmin_var supplierAdmin = channel->default_supplier_admin(); CosNA_ProxyID proxyId; CosNotifyChannelAdmin::ProxyConsumer_ptr consumer = supplierAdmin->obtain_notification_push_consumer(CosNA_STRUCTURED_EVENT, proxyId); if (CORBA::is_nil(consumer)) { MESSAGE("NOTIFICATION Error : failed to get proxy push consumer"); } else { proxy_consumer = CosNA_StructuredProxyPushConsumer::_narrow(consumer); if ( CORBA::is_nil(proxy_consumer)) { MESSAGE("NOTIFICATION Error : failed to _narrow proxy push consumer"); } else { try { proxy_consumer->connect_structured_push_supplier(_this()); _ok = true; MESSAGE("NOTIFICATION Info : successfully connection for push supplier notification"); } catch (CORBA::BAD_PARAM&) { MESSAGE("NOTIFICATION Error : push supplier BAD_PARAM Exception while connecting"); } catch (CosEventChannelAdmin::AlreadyConnected&) { MESSAGE("NOTIFICATION Error : push supplier already connected"); } catch (...) { MESSAGE("NOTIFICATION Error : push supplier failed to connect"); } }; }; }; }; } NOTIFICATION_Supplier::~NOTIFICATION_Supplier() { if (_ok) { _ok = false; CosNA_StructuredProxyPushConsumer_var proxy = proxy_consumer; proxy_consumer = CosNA_StructuredProxyPushConsumer::_nil(); try { if (!CORBA::is_nil(proxy)) { proxy->disconnect_structured_push_consumer(); }; } catch(...) { MESSAGE("NOTIFICATION Error : while disconnecting proxy push consumer"); } }; } void NOTIFICATION_Supplier::Send(const char* graph, const char* node, const char* type, const char* message) { if (_ok) { _stamp++; _counter++; CosN_StructuredEvent* event = new CosN_StructuredEvent; event->header.fixed_header.event_type.domain_name = CORBA::string_dup("SALOME"); event->header.fixed_header.event_type.type_name = CORBA::string_dup("ComponentMessage"); event->header.variable_header.length(0); event->filterable_data.length(7); event->filterable_data[0].name = CORBA::string_dup("SenderName"); event->filterable_data[0].value <<= _sender; event->filterable_data[1].name = CORBA::string_dup("DestinationGroup"); event->filterable_data[1].value <<= graph; event->filterable_data[2].name = CORBA::string_dup("EventType"); event->filterable_data[2].value <<= type; event->filterable_data[3].name = CORBA::string_dup("EventNumber"); event->filterable_data[3].value <<= (CORBA::ULong)_counter; event->filterable_data[4].name = CORBA::string_dup("SendingDate"); event->filterable_data[4].value <<= (const char*)NOTIFICATION_date(); event->filterable_data[5].name = CORBA::string_dup("DepartGroup"); event->filterable_data[5].value <<= node; event->filterable_data[6].name = CORBA::string_dup("Stamp"); event->filterable_data[6].value <<= (CORBA::ULong)_stamp; event->remainder_of_body <<= message; try { proxy_consumer->push_structured_event(*event); } catch (...) { MESSAGE("NOTIFICATION Error : can't send a message with the component instance : " << _sender); } }; } void NOTIFICATION_Supplier::disconnect_structured_push_supplier() { } void NOTIFICATION_Supplier::subscription_change(const CosN_EventTypeSeq& added, const CosN_EventTypeSeq& deled) { } salome-kernel-6.5.0/src/Notification/NOTIFICATION_Supplier.hxx000077500000000000000000000036341177004724000240120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Notification : wrapping of Notification service services // File : NOTIFICATION_Supplier.hxx // Author : Laurent DADA / Francis KLOSS // Module : SALOME // #ifndef NOTIFICATION_Supplier_HXX #define NOTIFICATION_Supplier_HXX #include "SALOME_NOTIFICATION.hxx" #ifdef WNT #pragma warning(disable:4275) // Disable warning interface non dll #endif class NOTIFICATION_EXPORT NOTIFICATION_Supplier: public POA_CosNotifyComm::StructuredPushSupplier { public: NOTIFICATION_Supplier(const char* instanceName, bool notif); virtual ~NOTIFICATION_Supplier(); void Send(const char* graph, const char* node, const char* type, const char* message); private: void disconnect_structured_push_supplier(); void subscription_change(const CosN_EventTypeSeq& added, const CosN_EventTypeSeq& deled); bool _ok; const char* _sender; long _counter; CosNA_StructuredProxyPushConsumer_var proxy_consumer; static long _stamp; }; #endif salome-kernel-6.5.0/src/Notification/SALOME_NOTIFICATION.hxx000077500000000000000000000025621177004724000231660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_NOTIFICATION.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOME_NOTIFICATION_HXX_ #define _SALOME_NOTIFICATION_HXX_ #ifdef WIN32 # if defined NOTIFICATION_EXPORTS || defined SalomeNotification_EXPORTS # define NOTIFICATION_EXPORT __declspec( dllexport ) # else # define NOTIFICATION_EXPORT __declspec( dllimport ) # endif #else # define NOTIFICATION_EXPORT #endif #endif salome-kernel-6.5.0/src/ParallelContainer/000077500000000000000000000000001177004724000204505ustar00rootroot00000000000000salome-kernel-6.5.0/src/ParallelContainer/Makefile.am000077500000000000000000000121061177004724000225070ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOME_ParallelComponent_i.hxx \ SALOME_ParallelContainer_i.hxx \ SALOME_ParallelContainerProxy_i.hxx \ SALOME_ParallelGlobalProcessVar_i.hxx \ Parallel_Salome_file_i.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/Registry \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/GenericObj \ -I$(srcdir)/../HDFPersist \ -I$(top_builddir)/idl \ -I$(top_srcdir)/src/SALOMETraceCollector \ @PYTHON_INCLUDES@ \ @CORBA_CXXFLAGS@ \ @CORBA_INCLUDES@ \ @MPI_INCLUDES@ \ @PACO_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/HDFPersist/libSalomeHDFPersist.la \ $(top_builddir)/idl/libSalomeParallelIDLKernel.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ \ @PACO_LIBS@ \ $(PYTHON_LIBS) # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeParallelContainer.la libSalomeParallelContainer_la_SOURCES = SALOME_ParallelComponent_i.cxx \ SALOME_ParallelContainer_i.cxx \ SALOME_ParallelContainerProxy_i.cxx \ Parallel_Salome_file_i.cxx \ SALOME_ParallelGlobalProcessVar_i.cxx libSalomeParallelContainer_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeParallelContainer_la_LIBADD = $(COMMON_LIBS) @MPI_LIBS@ libSalomeParallelContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 # # =============================================================== # Executables targets # =============================================================== # if MPI_IS_OK bin_mpi_programs = SALOME_ParallelContainerProxyMpi \ SALOME_ParallelContainerNodeMpi endif bin_PROGRAMS = SALOME_ParallelContainerProxyDummy \ SALOME_ParallelContainerNodeDummy \ $(bin_mpi_programs) SALOME_ParallelContainerProxyDummy_SOURCES = SALOME_ParallelContainerProxyDummy.cxx SALOME_ParallelContainerProxyDummy_CXXFLAGS = $(COMMON_CPPFLAGS) SALOME_ParallelContainerProxyDummy_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_omnithread \ $(COMMON_LIBS) SALOME_ParallelContainerNodeDummy_SOURCES = SALOME_ParallelContainerNodeDummy.cxx SALOME_ParallelContainerNodeDummy_CXXFLAGS = $(COMMON_CPPFLAGS) SALOME_ParallelContainerNodeDummy_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_omnithread \ $(COMMON_LIBS) SALOME_ParallelContainerProxyMpi_SOURCES = SALOME_ParallelContainerProxyMpi.cxx SALOME_ParallelContainerProxyMpi_CXXFLAGS = $(COMMON_CPPFLAGS) @MPI_INCLUDES@ SALOME_ParallelContainerProxyMpi_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_mpi -lPaCO_omnithread \ @MPI_LIBS@ \ $(COMMON_LIBS) SALOME_ParallelContainerNodeMpi_SOURCES = SALOME_ParallelContainerNodeMpi.cxx SALOME_ParallelContainerNodeMpi_CXXFLAGS = $(COMMON_CPPFLAGS) @MPI_INCLUDES@ SALOME_ParallelContainerNodeMpi_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_mpi -lPaCO_omnithread \ @MPI_LIBS@\ $(COMMON_LIBS) salome-kernel-6.5.0/src/ParallelContainer/Makefile.in000077500000000000000000001634551177004724000225360ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOME_ParallelContainerProxyDummy$(EXEEXT) \ SALOME_ParallelContainerNodeDummy$(EXEEXT) $(am__EXEEXT_1) subdir = src/ParallelContainer ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = am__DEPENDENCIES_2 = \ $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/HDFPersist/libSalomeHDFPersist.la \ $(top_builddir)/idl/libSalomeParallelIDLKernel.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ $(am__DEPENDENCIES_1) libSalomeParallelContainer_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_libSalomeParallelContainer_la_OBJECTS = \ libSalomeParallelContainer_la-SALOME_ParallelComponent_i.lo \ libSalomeParallelContainer_la-SALOME_ParallelContainer_i.lo \ libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.lo \ libSalomeParallelContainer_la-Parallel_Salome_file_i.lo \ libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.lo libSalomeParallelContainer_la_OBJECTS = \ $(am_libSalomeParallelContainer_la_OBJECTS) libSalomeParallelContainer_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeParallelContainer_la_LDFLAGS) $(LDFLAGS) -o $@ @MPI_IS_OK_TRUE@am__EXEEXT_1 = \ @MPI_IS_OK_TRUE@ SALOME_ParallelContainerProxyMpi$(EXEEXT) \ @MPI_IS_OK_TRUE@ SALOME_ParallelContainerNodeMpi$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_SALOME_ParallelContainerNodeDummy_OBJECTS = SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.$(OBJEXT) SALOME_ParallelContainerNodeDummy_OBJECTS = \ $(am_SALOME_ParallelContainerNodeDummy_OBJECTS) SALOME_ParallelContainerNodeDummy_DEPENDENCIES = \ libSalomeParallelContainer.la $(am__DEPENDENCIES_2) SALOME_ParallelContainerNodeDummy_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(SALOME_ParallelContainerNodeDummy_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_SALOME_ParallelContainerNodeMpi_OBJECTS = SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.$(OBJEXT) SALOME_ParallelContainerNodeMpi_OBJECTS = \ $(am_SALOME_ParallelContainerNodeMpi_OBJECTS) SALOME_ParallelContainerNodeMpi_DEPENDENCIES = \ libSalomeParallelContainer.la $(am__DEPENDENCIES_2) SALOME_ParallelContainerNodeMpi_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(SALOME_ParallelContainerNodeMpi_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_SALOME_ParallelContainerProxyDummy_OBJECTS = SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.$(OBJEXT) SALOME_ParallelContainerProxyDummy_OBJECTS = \ $(am_SALOME_ParallelContainerProxyDummy_OBJECTS) SALOME_ParallelContainerProxyDummy_DEPENDENCIES = \ libSalomeParallelContainer.la $(am__DEPENDENCIES_2) SALOME_ParallelContainerProxyDummy_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(SALOME_ParallelContainerProxyDummy_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_SALOME_ParallelContainerProxyMpi_OBJECTS = SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.$(OBJEXT) SALOME_ParallelContainerProxyMpi_OBJECTS = \ $(am_SALOME_ParallelContainerProxyMpi_OBJECTS) SALOME_ParallelContainerProxyMpi_DEPENDENCIES = \ libSalomeParallelContainer.la $(am__DEPENDENCIES_2) SALOME_ParallelContainerProxyMpi_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(SALOME_ParallelContainerProxyMpi_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeParallelContainer_la_SOURCES) \ $(SALOME_ParallelContainerNodeDummy_SOURCES) \ $(SALOME_ParallelContainerNodeMpi_SOURCES) \ $(SALOME_ParallelContainerProxyDummy_SOURCES) \ $(SALOME_ParallelContainerProxyMpi_SOURCES) DIST_SOURCES = $(libSalomeParallelContainer_la_SOURCES) \ $(SALOME_ParallelContainerNodeDummy_SOURCES) \ $(SALOME_ParallelContainerNodeMpi_SOURCES) \ $(SALOME_ParallelContainerProxyDummy_SOURCES) \ $(SALOME_ParallelContainerProxyMpi_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : André RIBES (EDF) # Module : KERNEL # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOME_ParallelComponent_i.hxx \ SALOME_ParallelContainer_i.hxx \ SALOME_ParallelContainerProxy_i.hxx \ SALOME_ParallelGlobalProcessVar_i.hxx \ Parallel_Salome_file_i.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = -I$(top_srcdir)/src/Container \ -I$(top_srcdir)/src/Notification \ -I$(top_srcdir)/src/SALOMELocalTrace \ -I$(top_srcdir)/src/Basics \ -I$(top_srcdir)/src/NamingService \ -I$(top_srcdir)/src/Registry \ -I$(top_srcdir)/src/Utils \ -I$(top_srcdir)/src/GenericObj \ -I$(srcdir)/../HDFPersist \ -I$(top_builddir)/idl \ -I$(top_srcdir)/src/SALOMETraceCollector \ @PYTHON_INCLUDES@ \ @CORBA_CXXFLAGS@ \ @CORBA_INCLUDES@ \ @MPI_INCLUDES@ \ @PACO_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/src/Container/libSalomeContainer.la \ $(top_builddir)/src/NamingService/libSalomeNS.la \ $(top_builddir)/src/SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/src/Basics/libSALOMEBasics.la \ $(top_builddir)/src/HDFPersist/libSalomeHDFPersist.la \ $(top_builddir)/idl/libSalomeParallelIDLKernel.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ \ @PACO_LIBS@ \ $(PYTHON_LIBS) # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeParallelContainer.la libSalomeParallelContainer_la_SOURCES = SALOME_ParallelComponent_i.cxx \ SALOME_ParallelContainer_i.cxx \ SALOME_ParallelContainerProxy_i.cxx \ Parallel_Salome_file_i.cxx \ SALOME_ParallelGlobalProcessVar_i.cxx libSalomeParallelContainer_la_CXXFLAGS = $(COMMON_CPPFLAGS) libSalomeParallelContainer_la_LIBADD = $(COMMON_LIBS) @MPI_LIBS@ libSalomeParallelContainer_la_LDFLAGS = -no-undefined -version-info=0:0:0 # # =============================================================== # Executables targets # =============================================================== # @MPI_IS_OK_TRUE@bin_mpi_programs = SALOME_ParallelContainerProxyMpi \ @MPI_IS_OK_TRUE@ SALOME_ParallelContainerNodeMpi SALOME_ParallelContainerProxyDummy_SOURCES = SALOME_ParallelContainerProxyDummy.cxx SALOME_ParallelContainerProxyDummy_CXXFLAGS = $(COMMON_CPPFLAGS) SALOME_ParallelContainerProxyDummy_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_omnithread \ $(COMMON_LIBS) SALOME_ParallelContainerNodeDummy_SOURCES = SALOME_ParallelContainerNodeDummy.cxx SALOME_ParallelContainerNodeDummy_CXXFLAGS = $(COMMON_CPPFLAGS) SALOME_ParallelContainerNodeDummy_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_omnithread \ $(COMMON_LIBS) SALOME_ParallelContainerProxyMpi_SOURCES = SALOME_ParallelContainerProxyMpi.cxx SALOME_ParallelContainerProxyMpi_CXXFLAGS = $(COMMON_CPPFLAGS) @MPI_INCLUDES@ SALOME_ParallelContainerProxyMpi_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_mpi -lPaCO_omnithread \ @MPI_LIBS@ \ $(COMMON_LIBS) SALOME_ParallelContainerNodeMpi_SOURCES = SALOME_ParallelContainerNodeMpi.cxx SALOME_ParallelContainerNodeMpi_CXXFLAGS = $(COMMON_CPPFLAGS) @MPI_INCLUDES@ SALOME_ParallelContainerNodeMpi_LDADD = libSalomeParallelContainer.la \ -L@PACOPATH@/lib -lPaCO_dummy -lPaCO_mpi -lPaCO_omnithread \ @MPI_LIBS@\ $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ParallelContainer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/ParallelContainer/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeParallelContainer.la: $(libSalomeParallelContainer_la_OBJECTS) $(libSalomeParallelContainer_la_DEPENDENCIES) $(libSalomeParallelContainer_la_LINK) -rpath $(libdir) $(libSalomeParallelContainer_la_OBJECTS) $(libSalomeParallelContainer_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_ParallelContainerNodeDummy$(EXEEXT): $(SALOME_ParallelContainerNodeDummy_OBJECTS) $(SALOME_ParallelContainerNodeDummy_DEPENDENCIES) @rm -f SALOME_ParallelContainerNodeDummy$(EXEEXT) $(SALOME_ParallelContainerNodeDummy_LINK) $(SALOME_ParallelContainerNodeDummy_OBJECTS) $(SALOME_ParallelContainerNodeDummy_LDADD) $(LIBS) SALOME_ParallelContainerNodeMpi$(EXEEXT): $(SALOME_ParallelContainerNodeMpi_OBJECTS) $(SALOME_ParallelContainerNodeMpi_DEPENDENCIES) @rm -f SALOME_ParallelContainerNodeMpi$(EXEEXT) $(SALOME_ParallelContainerNodeMpi_LINK) $(SALOME_ParallelContainerNodeMpi_OBJECTS) $(SALOME_ParallelContainerNodeMpi_LDADD) $(LIBS) SALOME_ParallelContainerProxyDummy$(EXEEXT): $(SALOME_ParallelContainerProxyDummy_OBJECTS) $(SALOME_ParallelContainerProxyDummy_DEPENDENCIES) @rm -f SALOME_ParallelContainerProxyDummy$(EXEEXT) $(SALOME_ParallelContainerProxyDummy_LINK) $(SALOME_ParallelContainerProxyDummy_OBJECTS) $(SALOME_ParallelContainerProxyDummy_LDADD) $(LIBS) SALOME_ParallelContainerProxyMpi$(EXEEXT): $(SALOME_ParallelContainerProxyMpi_OBJECTS) $(SALOME_ParallelContainerProxyMpi_DEPENDENCIES) @rm -f SALOME_ParallelContainerProxyMpi$(EXEEXT) $(SALOME_ParallelContainerProxyMpi_LINK) $(SALOME_ParallelContainerProxyMpi_OBJECTS) $(SALOME_ParallelContainerProxyMpi_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelContainer_la-Parallel_Salome_file_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelComponent_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainer_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeParallelContainer_la-SALOME_ParallelComponent_i.lo: SALOME_ParallelComponent_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelContainer_la-SALOME_ParallelComponent_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelComponent_i.Tpo -c -o libSalomeParallelContainer_la-SALOME_ParallelComponent_i.lo `test -f 'SALOME_ParallelComponent_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelComponent_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelComponent_i.Tpo $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelComponent_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelComponent_i.cxx' object='libSalomeParallelContainer_la-SALOME_ParallelComponent_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelContainer_la-SALOME_ParallelComponent_i.lo `test -f 'SALOME_ParallelComponent_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelComponent_i.cxx libSalomeParallelContainer_la-SALOME_ParallelContainer_i.lo: SALOME_ParallelContainer_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelContainer_la-SALOME_ParallelContainer_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainer_i.Tpo -c -o libSalomeParallelContainer_la-SALOME_ParallelContainer_i.lo `test -f 'SALOME_ParallelContainer_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainer_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainer_i.Tpo $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainer_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainer_i.cxx' object='libSalomeParallelContainer_la-SALOME_ParallelContainer_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelContainer_la-SALOME_ParallelContainer_i.lo `test -f 'SALOME_ParallelContainer_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainer_i.cxx libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.lo: SALOME_ParallelContainerProxy_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.Tpo -c -o libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.lo `test -f 'SALOME_ParallelContainerProxy_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerProxy_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.Tpo $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerProxy_i.cxx' object='libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelContainer_la-SALOME_ParallelContainerProxy_i.lo `test -f 'SALOME_ParallelContainerProxy_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerProxy_i.cxx libSalomeParallelContainer_la-Parallel_Salome_file_i.lo: Parallel_Salome_file_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelContainer_la-Parallel_Salome_file_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelContainer_la-Parallel_Salome_file_i.Tpo -c -o libSalomeParallelContainer_la-Parallel_Salome_file_i.lo `test -f 'Parallel_Salome_file_i.cxx' || echo '$(srcdir)/'`Parallel_Salome_file_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelContainer_la-Parallel_Salome_file_i.Tpo $(DEPDIR)/libSalomeParallelContainer_la-Parallel_Salome_file_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Parallel_Salome_file_i.cxx' object='libSalomeParallelContainer_la-Parallel_Salome_file_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelContainer_la-Parallel_Salome_file_i.lo `test -f 'Parallel_Salome_file_i.cxx' || echo '$(srcdir)/'`Parallel_Salome_file_i.cxx libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.lo: SALOME_ParallelGlobalProcessVar_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -MT libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.lo -MD -MP -MF $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.Tpo -c -o libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.lo `test -f 'SALOME_ParallelGlobalProcessVar_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelGlobalProcessVar_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.Tpo $(DEPDIR)/libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelGlobalProcessVar_i.cxx' object='libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSalomeParallelContainer_la_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeParallelContainer_la-SALOME_ParallelGlobalProcessVar_i.lo `test -f 'SALOME_ParallelGlobalProcessVar_i.cxx' || echo '$(srcdir)/'`SALOME_ParallelGlobalProcessVar_i.cxx SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.o: SALOME_ParallelContainerNodeDummy.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeDummy_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.o -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Tpo -c -o SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.o `test -f 'SALOME_ParallelContainerNodeDummy.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerNodeDummy.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Tpo $(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerNodeDummy.cxx' object='SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeDummy_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.o `test -f 'SALOME_ParallelContainerNodeDummy.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerNodeDummy.cxx SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.obj: SALOME_ParallelContainerNodeDummy.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeDummy_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.obj -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Tpo -c -o SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.obj `if test -f 'SALOME_ParallelContainerNodeDummy.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerNodeDummy.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerNodeDummy.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Tpo $(DEPDIR)/SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerNodeDummy.cxx' object='SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeDummy_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerNodeDummy-SALOME_ParallelContainerNodeDummy.obj `if test -f 'SALOME_ParallelContainerNodeDummy.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerNodeDummy.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerNodeDummy.cxx'; fi` SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.o: SALOME_ParallelContainerNodeMpi.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeMpi_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.o -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Tpo -c -o SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.o `test -f 'SALOME_ParallelContainerNodeMpi.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerNodeMpi.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Tpo $(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerNodeMpi.cxx' object='SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeMpi_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.o `test -f 'SALOME_ParallelContainerNodeMpi.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerNodeMpi.cxx SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.obj: SALOME_ParallelContainerNodeMpi.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeMpi_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.obj -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Tpo -c -o SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.obj `if test -f 'SALOME_ParallelContainerNodeMpi.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerNodeMpi.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerNodeMpi.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Tpo $(DEPDIR)/SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerNodeMpi.cxx' object='SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerNodeMpi_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerNodeMpi-SALOME_ParallelContainerNodeMpi.obj `if test -f 'SALOME_ParallelContainerNodeMpi.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerNodeMpi.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerNodeMpi.cxx'; fi` SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.o: SALOME_ParallelContainerProxyDummy.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyDummy_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.o -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Tpo -c -o SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.o `test -f 'SALOME_ParallelContainerProxyDummy.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerProxyDummy.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Tpo $(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerProxyDummy.cxx' object='SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyDummy_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.o `test -f 'SALOME_ParallelContainerProxyDummy.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerProxyDummy.cxx SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.obj: SALOME_ParallelContainerProxyDummy.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyDummy_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.obj -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Tpo -c -o SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.obj `if test -f 'SALOME_ParallelContainerProxyDummy.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerProxyDummy.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerProxyDummy.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Tpo $(DEPDIR)/SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerProxyDummy.cxx' object='SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyDummy_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerProxyDummy-SALOME_ParallelContainerProxyDummy.obj `if test -f 'SALOME_ParallelContainerProxyDummy.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerProxyDummy.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerProxyDummy.cxx'; fi` SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.o: SALOME_ParallelContainerProxyMpi.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyMpi_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.o -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Tpo -c -o SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.o `test -f 'SALOME_ParallelContainerProxyMpi.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerProxyMpi.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Tpo $(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerProxyMpi.cxx' object='SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyMpi_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.o `test -f 'SALOME_ParallelContainerProxyMpi.cxx' || echo '$(srcdir)/'`SALOME_ParallelContainerProxyMpi.cxx SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.obj: SALOME_ParallelContainerProxyMpi.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyMpi_CXXFLAGS) $(CXXFLAGS) -MT SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.obj -MD -MP -MF $(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Tpo -c -o SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.obj `if test -f 'SALOME_ParallelContainerProxyMpi.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerProxyMpi.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerProxyMpi.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Tpo $(DEPDIR)/SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ParallelContainerProxyMpi.cxx' object='SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SALOME_ParallelContainerProxyMpi_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_ParallelContainerProxyMpi-SALOME_ParallelContainerProxyMpi.obj `if test -f 'SALOME_ParallelContainerProxyMpi.cxx'; then $(CYGPATH_W) 'SALOME_ParallelContainerProxyMpi.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_ParallelContainerProxyMpi.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/ParallelContainer/Parallel_Salome_file_i.cxx000077500000000000000000000274401177004724000255510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Parallel_Salome_file_i.cxx // Author : André RIBES, EDF // Module : SALOME // $Header: // #include "Parallel_Salome_file_i.hxx" #include "utilities.h" Parallel_Salome_file_i::Parallel_Salome_file_i(CORBA::ORB_ptr orb, const char * ior, int rank) : InterfaceParallel_impl(orb,ior,rank), Engines::Salome_file_serv(orb,ior,rank), Engines::Salome_file_base_serv(orb,ior,rank), Engines::fileTransfer_serv(orb,ior,rank), Engines::Parallel_Salome_file_serv(orb,ior,rank), Engines::fileTransfer_base_serv(orb,ior,rank), SALOME::GenericObj_serv(orb,ior,rank), SALOME::GenericObj_base_serv(orb,ior,rank), Engines::Parallel_Salome_file_base_serv(orb,ior,rank) { CORBA::Object_ptr obj = _orb->string_to_object(ior); proxy = Engines::Parallel_Salome_file::_narrow(obj); parallel_file = NULL; } Parallel_Salome_file_i::~Parallel_Salome_file_i() {} void Parallel_Salome_file_i::load(const char* hdf5_file) { MESSAGE("Parallel_Salome_file_i::load : NOT YET IMPLEMENTED"); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "Parallel_Salome_file_i::load : NOT YET IMPLEMENTED"; throw SALOME::SALOME_Exception(es); } void Parallel_Salome_file_i::save(const char* hdf5_file) { MESSAGE("Parallel_Salome_file_i::save : NOT YET IMPLEMENTED"); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "Parallel_Salome_file_i::save : NOT YET IMPLEMENTED"; throw SALOME::SALOME_Exception(es); } void Parallel_Salome_file_i::save_all(const char* hdf5_file) { MESSAGE("Parallel_Salome_file_i::save_all : NOT YET IMPLEMENTED"); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "Parallel_Salome_file_i::save_all : NOT YET IMPLEMENTED"; throw SALOME::SALOME_Exception(es); } void Parallel_Salome_file_i::connect(Engines::Salome_file_ptr source_Salome_file) { // only one file managed case Salome_file_i::connect(source_Salome_file); // Test if the file is managed in an another node // If yes, node is updated _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); for(;begin!=end;begin++) { std::string file_name = begin->first; if (_fileManaged[file_name].node > 0 && getMyRank() == 0) { if (parallel_file == NULL) parallel_file = Engines::PaCO_Parallel_Salome_file::PaCO_narrow(proxy, _orb); parallel_file->connect(source_Salome_file, _fileManaged[file_name].node); } } } void Parallel_Salome_file_i::connectDistributedFile(const char * file_name, Engines::Salome_file_ptr source_Salome_file) { Salome_file_i::connectDistributedFile(file_name, source_Salome_file); // Test if the file is managed in an another node // If yes, node is updated std::string fname(file_name); if (_fileManaged[fname].node > 0 && getMyRank() == 0) { if (parallel_file == NULL) parallel_file = Engines::PaCO_Parallel_Salome_file::PaCO_narrow(proxy, _orb); parallel_file->connectDistributedFile(file_name, source_Salome_file, _fileManaged[fname].node); } } void Parallel_Salome_file_i::setDistributedSourceFile(const char* file_name, const char * source_file_name) { Salome_file_i::setDistributedSourceFile(file_name, source_file_name); // Test if the file is managed in an another node // If yes, node is updated std::string fname(file_name); if (_fileManaged[fname].node > 0 && getMyRank() == 0) { if (parallel_file == NULL) parallel_file = Engines::PaCO_Parallel_Salome_file::PaCO_narrow(proxy, _orb); parallel_file->setDistributedSourceFile(file_name, source_file_name, _fileManaged[fname].node); } } void Parallel_Salome_file_i::recvFiles() { if (parallel_file == NULL) parallel_file = Engines::PaCO_Parallel_Salome_file::PaCO_narrow(proxy, _orb); std::string files_not_ok(""); int total = getTotalNode(); for (int i =0; irecvFiles_node(i); } catch (SALOME::SALOME_Exception & ex) { files_not_ok = files_not_ok + std::string(ex.details.text.in()); } } if (files_not_ok != "") { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = "files not ready : " + files_not_ok; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } else { // We change the state of the Salome_file _state.files_ok = true; } } void Parallel_Salome_file_i::recvFiles_node() { std::string files_not_ok(""); _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); for(;begin!=end;begin++) { bool result = true; Engines::file file_infos = begin->second; if (file_infos.node == getMyRank()) { // Test if the file is local or distributed if (std::string(file_infos.type.in()) == "local") { if (std::string(file_infos.status.in()) == "not_ok") result = checkLocalFile(file_infos.file_name.in()); } else { if (std::string(file_infos.status.in()) == "not_ok") { // 2 cases : // Source file is a Salome_file // Source file is a Parallel_Salome_file PaCO::InterfaceManager_var interface_manager = PaCO::InterfaceManager::_narrow(_fileDistributedSource[file_infos.file_name.in()]); if (CORBA::is_nil(interface_manager)) result = getDistributedFile(file_infos.file_name.in()); else result = getParallelDistributedFile(file_infos.file_name.in()); } } // if the result is false // we add this file to files_not_ok if (!result) { files_not_ok.append(" "); files_not_ok.append(file_infos.file_name.in()); } } } if (files_not_ok != "") { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; std::string text = files_not_ok; es.text = CORBA::string_dup(text.c_str()); throw SALOME::SALOME_Exception(es); } } bool Parallel_Salome_file_i::getParallelDistributedFile(std::string file_name) { bool result = true; const char * source_file_name = _fileManaged[file_name].source_file_name.in(); int fileId; FILE* fp; std::string comp_file_name(_fileManaged[file_name].path.in()); comp_file_name.append("/"); comp_file_name.append(_fileManaged[file_name].file_name.in()); // Test if the process can write on disk if ((fp = fopen(comp_file_name.c_str(),"wb")) == NULL) { INFOS("file " << comp_file_name << " cannot be open for writing"); _fileManaged[file_name].status = CORBA::string_dup("not_ok"); result = false; return result; } Engines::PaCO_Parallel_Salome_file * parallel_source_file = Engines::PaCO_Parallel_Salome_file::PaCO_narrow(_fileDistributedSource[file_name], _orb); int node = parallel_source_file->getFileNode(source_file_name); try { fileId = parallel_source_file->open(source_file_name, node); } catch (...) { _fileManaged[file_name].status = CORBA::string_dup("not_ok"); fclose(fp); result = false; return result; } if (fileId > 0) { Engines::fileBlock* aBlock; int toFollow = 1; int ctr=0; MESSAGE("begin of transfer of " << comp_file_name); while (toFollow) { ctr++; aBlock = parallel_source_file->getBlock(fileId, node); toFollow = aBlock->length(); CORBA::Octet *buf = aBlock->get_buffer(); int nbWri = fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); delete aBlock; ASSERT(nbWri == toFollow); } fclose(fp); MESSAGE("end of transfer of " << comp_file_name); parallel_source_file->close(fileId, node); } else { INFOS("open reference file for copy impossible"); result = false; fclose(fp); _fileManaged[file_name].status = CORBA::string_dup("not_ok"); return result; } _fileManaged[file_name].status = CORBA::string_dup("ok"); return result; } void Parallel_Salome_file_i::setContainer(Engines::Container_ptr container) { _container = Engines::Container::_duplicate(container); // Update All the files managed by the node _t_fileManaged::iterator begin = _fileManaged.begin(); _t_fileManaged::iterator end = _fileManaged.end(); for(;begin!=end;begin++) { begin->second.container = Engines::Container::_duplicate(container); } } void Parallel_Salome_file_i::setFileNode(const char* file_name, CORBA::Long node) { // Test if this file is managed std::string fname(file_name); _t_fileManaged::iterator it = _fileManaged.find(fname); if (it == _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "file is not managed"; throw SALOME::SALOME_Exception(es); } // Update file infos into this node (node 0) // and into the node that actually managed it _fileManaged[fname].node = node; if (node > 0) { if (parallel_file == NULL) parallel_file = Engines::PaCO_Parallel_Salome_file::PaCO_narrow(proxy, _orb); Engines::Container_ptr cont = parallel_file->updateFile(_fileManaged[fname], node); parallel_file->connectDistributedFile(fname.c_str(), _fileDistributedSource[fname], node); // Update file infos with the new reference of the container _fileManaged[fname].container = Engines::Container::_duplicate(cont); } } Engines::Container_ptr Parallel_Salome_file_i::updateFile(const Engines::file& file) { // Copy file Engines::file new_file_infos(file); // Adding it to node list new_file_infos.container = Engines::Container::_duplicate(_container); std::string fname(new_file_infos.file_name.in()); _fileManaged[fname] = new_file_infos; // Return the new reference of the container associated to the file return Engines::Container::_duplicate(_container); } CORBA::Long Parallel_Salome_file_i::getFileNode(const char* file_name) { // Test if this file is managed std::string fname(file_name); if (fname == "") { // We enter in the simple case where the user // has not used setDistributedSourceFile. // In this case we try to see if the Salome_file if (_fileManaged.size() == 1) { // only one file managed _t_fileManaged::iterator it = _fileManaged.begin(); fname = it->first; } else { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "Error : there is more than one file that is managed"; throw SALOME::SALOME_Exception(es); } } _t_fileManaged::iterator it = _fileManaged.find(fname); if (it == _fileManaged.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "file is not managed"; throw SALOME::SALOME_Exception(es); } return _fileManaged[fname].node; } salome-kernel-6.5.0/src/ParallelContainer/Parallel_Salome_file_i.hxx000077500000000000000000000055131177004724000255530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Parallel_Salome_file_i.hxx // Author : André RIBES, EDF // Module : SALOME // $Header: // #ifndef _PARALLEL_SALOME_FILE_I_HXX_ #define _PARALLEL_SALOME_FILE_I_HXX_ #include #include #include #include #include "SALOME_PACOExtensionPaCO_Engines_Parallel_Salome_file_server.hxx" #include "Salome_file_i.hxx" class CONTAINER_EXPORT Parallel_Salome_file_i: public virtual Salome_file_i, public virtual Engines::Parallel_Salome_file_serv { public: Parallel_Salome_file_i(CORBA::ORB_ptr orb, const char * ior, int rank); virtual ~Parallel_Salome_file_i(); virtual void setFileNode(const char* file_name, CORBA::Long node); virtual CORBA::Long getFileNode(const char* file_name); virtual Engines::Container_ptr updateFile(const Engines::file& file); // New implementation for these methods // For the parallel cases virtual void load(const char* hdf5_file); virtual void save(const char* hdf5_file); virtual void save_all(const char* hdf5_file); virtual void connect(Engines::Salome_file_ptr source_Salome_file); virtual void connectDistributedFile(const char * file_name, Engines::Salome_file_ptr source_Salome_file); virtual void setDistributedSourceFile(const char* file_name, const char * source_file_name); virtual void recvFiles(); virtual void recvFiles_node(); virtual void setContainer(Engines::Container_ptr container); //virtual void removeFile(const char* file_name); //virtual void removeFiles(); // Local C++ methods virtual bool getParallelDistributedFile(std::string file_name); private : Engines::Parallel_Salome_file_var proxy; Engines::PaCO_Parallel_Salome_file * parallel_file; }; #endif salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelComponent_i.cxx000077500000000000000000001174111177004724000261730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME_ParallelComponent : implementation of container and engine for Parallel Kernel // File : SALOME_ParallelComponent_i.cxx // Author : André RIBES, EDF // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // #include "SALOME_ParallelComponent_i.hxx" #include "SALOME_ParallelContainer_i.hxx" #include "OpUtil.hxx" #include #ifndef WIN32 #include #endif #include #include "utilities.h" #include "Basics_Utils.hxx" #ifndef WIN32 #include #include #include #else #include int SIGUSR11 = 1000; #endif #include #include extern bool _Sleeping ; static Engines_Parallel_Component_i * theEngines_Component ; bool Engines_Parallel_Component_i::_isMultiStudy = true; bool Engines_Parallel_Component_i::_isMultiInstance = false; //============================================================================= /*! * Standard Constructor for generic Component, used in derived class * Connection to Registry and Notification * \param orb Object Request broker given by Container * \parap poa Portable Object Adapter from Container (normally root_poa) * \param contId container CORBA id inside the server * \param instanceName unique instance name for this object (see Container_i) * \param interfaceName component class name * \param notif use of notification */ //============================================================================= Engines_Parallel_Component_i::Engines_Parallel_Component_i(CORBA::ORB_ptr orb, char * ior, int rank, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif, bool regist) : InterfaceParallel_impl(orb,ior,rank), Engines::EngineComponent_serv(orb,ior,rank), Engines::EngineComponent_base_serv(orb,ior,rank), Engines::Parallel_Component_serv(orb,ior,rank), Engines::Parallel_Component_base_serv(orb,ior,rank), _instanceName(instanceName), _interfaceName(interfaceName), _id(NULL), _myConnexionToRegistry(0), _ThreadId(0) , _ThreadCpuUsed(0) , _Executed(false) , _graphName("") , _nodeName(""), _studyId(-1), _destroyed(false), _CanceledThread(false) { MESSAGE("Parallel Component constructor with instanceName "<< _instanceName); //SCRUTE(pd_refCount); _orb = CORBA::ORB::_duplicate(orb); _poa = PortableServer::POA::_duplicate(poa); _contId = contId ; CORBA::Object_var o = _poa->id_to_reference(*contId); // container ior... if (regist) { CORBA::String_var the_ior = _orb->object_to_string(o); _myConnexionToRegistry = new RegistryConnexion(0, 0, the_ior,"theSession", _instanceName.c_str()); } _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif); deploy_mutex = new pthread_mutex_t(); pthread_mutex_init(deploy_mutex, NULL); _proxy = NULL; //SCRUTE(pd_refCount); } //============================================================================= /*! * Destructor: call Container for decrement of instances count. * When instances count falls to 0, the container tries to remove the * component library (dlclose) */ //============================================================================= Engines_Parallel_Component_i::~Engines_Parallel_Component_i() { MESSAGE("Parallel Component destructor"); Engines_Parallel_Container_i::decInstanceCnt(_interfaceName); if(_myConnexionToRegistry)delete _myConnexionToRegistry; if(_notifSupplier)delete _notifSupplier; if (_id) delete(_id); pthread_mutex_destroy(deploy_mutex); delete deploy_mutex; if (_proxy) delete _proxy; } //============================================================================= /*! * CORBA method: return name of the instance, unique in this Container */ //============================================================================= char* Engines_Parallel_Component_i::instanceName() { return CORBA::string_dup(_instanceName.c_str()) ; } //============================================================================= /*! * CORBA method: return name of the component class */ //============================================================================= char* Engines_Parallel_Component_i::interfaceName() { return CORBA::string_dup(_interfaceName.c_str()) ; } //============================================================================= /*! * CORBA method: Get study Id * \return -1: not initialised (Internal Error) * 0: multistudy component instance * >0: study id associated to this instance */ //============================================================================= CORBA::Long Engines_Parallel_Component_i::getStudyId() { return _studyId; } //============================================================================= /*! * CORBA method: Test if instance is alive and responds */ //============================================================================= void Engines_Parallel_Component_i::ping() { #ifndef WIN32 MESSAGE("Engines_Parallel_Component_i::ping() pid "<< getpid() << " threadid " << pthread_self()); #else MESSAGE("Engines_Parallel_Component_i::ping() pid "<< _getpid()<< " threadid " << pthread_self().p ); #endif } //============================================================================= /*! * CORBA method: Deactivate this instance. CORBA object is deactivated (do not * respond any more to CORBA calls), the connection to Regsitry is removed * (Registry informed of deactivation), internal server reference counter on * the derived servant class is decremented, to allow destruction of the class * (delete) by POA, when there are no more references. * -- TO BE USED BY CONTAINER ONLY (Container housekeeping) -- */ //============================================================================= void Engines_Parallel_Component_i::destroy() { MESSAGE("Engines_Parallel_Component_i::destroy()"); MESSAGE("Object Instance will be deleted when Shutdown of the container will be called"); if (!_destroyed) { _remove_ref(); _destroyed = true; } } //============================================================================= /*! * CORBA method: return CORBA reference of the Container * */ //============================================================================= Engines::Container_ptr Engines_Parallel_Component_i::GetContainerRef() { MESSAGE("Engines_Parallel_Component_i::GetContainerRef"); CORBA::Object_var o = _poa->id_to_reference(*_contId) ; return Engines::Container::_narrow(o); } //============================================================================= /*! * CORBA method: * Gives a sequence of (key=string,value=any) to the component. * Base class component stores the sequence in a map. * The map is cleared before. * This map is for use by derived classes. * \param dico sequence of (key=string,value=any) */ //============================================================================= void Engines_Parallel_Component_i::setProperties(const Engines::FieldsDict& dico) { _fieldsDict.clear(); for (CORBA::ULong i=0; ilength(_fieldsDict.size()); std::map::iterator it; CORBA::ULong i = 0; for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++, i++) { std::string cle((*it).first); copie[i].key = CORBA::string_dup(cle.c_str()); copie[i].value = _fieldsDict[cle]; } return copie._retn(); } //============================================================================= /*! * CORBA method: used by Supervision to give names to this instance */ //============================================================================= void Engines_Parallel_Component_i::Names( const char * graphName , const char * nodeName ) { _graphName = graphName; _nodeName = nodeName; MESSAGE("Engines_Parallel_Component_i::Names( '" << _graphName << "' , '" << _nodeName << "' )"); } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Parallel_Component_i::Kill_impl() { // MESSAGE("Engines_Parallel_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 ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) { RetVal = Killer( _ThreadId , SIGUSR2 ) ; _ThreadId = (pthread_t ) -1 ; } #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) { RetVal = Killer( *_ThreadId , 0 ) ; _ThreadId = (pthread_t* ) 0 ; } #endif return RetVal ; } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Parallel_Component_i::Stop_impl() { #ifndef WIN32 MESSAGE("Engines_Parallel_Component_i::Stop_i() pthread_t "<< pthread_self() << " pid " << getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id << dec << " _ThreadId " << _ThreadId ); #else MESSAGE("Engines_Parallel_Component_i::Stop_i() pthread_t "<< pthread_self().p << " pid " << _getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id << dec << " _ThreadId " << _ThreadId ); #endif bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) { RetVal = Killer( _ThreadId , 0 ) ; _ThreadId = (pthread_t ) -1 ; } #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) { RetVal = Killer( *_ThreadId , 0 ) ; _ThreadId = (pthread_t* ) 0 ; } #endif return RetVal ; } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Parallel_Component_i::Suspend_impl() { #ifndef WIN32 MESSAGE("Engines_Parallel_Component_i::Suspend_i() pthread_t "<< pthread_self() << " pid " << getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id << dec << " _ThreadId " << _ThreadId ); #else MESSAGE("Engines_Parallel_Component_i::Suspend_i() pthread_t "<< pthread_self().p << " pid " << _getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id << dec << " _ThreadId " << _ThreadId ); #endif bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) #endif { if ( _Sleeping ) { return false ; } else { #ifndef WIN32 RetVal = Killer( _ThreadId ,SIGINT ) ; #else RetVal = Killer( *_ThreadId ,SIGINT ) ; #endif //if ( RetVal ) _Sleeping = true; } } return RetVal ; } //============================================================================= /*! * CORBA method: used in Supervision */ //============================================================================= bool Engines_Parallel_Component_i::Resume_impl() { #ifndef WIN32 MESSAGE("Engines_Parallel_Component_i::Resume_i() pthread_t "<< pthread_self() << " pid " << getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id << dec << " _ThreadId " << _ThreadId ); #else MESSAGE("Engines_Parallel_Component_i::Resume_i() pthread_t "<< pthread_self().p << " pid " << _getpid() << " instanceName " << _instanceName.c_str() << " interface " << _interfaceName.c_str() << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id << dec << " _ThreadId " << _ThreadId ); #endif bool RetVal = false ; #ifndef WIN32 if ( _ThreadId > 0 && pthread_self() != _ThreadId ) #else if ( _ThreadId > 0 && pthread_self().p != _ThreadId->p ) #endif { if ( _Sleeping ) { _Sleeping = false ; RetVal = true ; } else { RetVal = false ; } } return RetVal ; } //============================================================================= /*! * CORBA method: */ //============================================================================= CORBA::Long Engines_Parallel_Component_i::CpuUsed_impl() { long cpu = 0 ; if ( _ThreadId || _Executed ) { if ( _ThreadId > 0 ) { #ifndef WIN32 if ( pthread_self() != _ThreadId ) #else if ( pthread_self().p != _ThreadId->p ) #endif { if ( _Sleeping ) { } else { // Get Cpu in the appropriate thread with that object !... theEngines_Component = this ; #ifndef WIN32 Killer( _ThreadId ,SIGUSR1 ) ; #else Killer( *_ThreadId ,SIGUSR11 ) ; #endif } cpu = _ThreadCpuUsed ; } else { _ThreadCpuUsed = CpuUsed() ; cpu = _ThreadCpuUsed ; // std::cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed_impl " // << _serviceName << " " << cpu << std::endl ; } } else { cpu = _ThreadCpuUsed ; // std::cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed_impl " // << _serviceName << " " << cpu<< std::endl ; } } else { // std::cout<< pthread_self()<<"Engines_Parallel_Component_i::CpuUsed_impl _ThreadId " // <<_ThreadId <<" "<<_serviceName<<" _StartUsed "<<_StartUsed<(_poa->id_to_servant(*_contId)) ; } //============================================================================= /*! * C++ method: set study Id * \param studyId 0 if instance is not associated to a study, * >0 otherwise (== study id) * \return true if the set of study Id is OK * must be set once by Container, at instance creation, * and cannot be changed after. */ //============================================================================= CORBA::Boolean Engines_Parallel_Component_i::setStudyId(CORBA::Long studyId) { ASSERT( studyId >= 0); CORBA::Boolean ret = false; if (_studyId < 0) // --- not yet initialized { _studyId = studyId; ret = true; } else if ( _studyId == studyId) ret = true; return ret; } //============================================================================= /*! * C++ method: return CORBA instance id, the id is set in derived class * constructor, when instance is activated. */ //============================================================================= PortableServer::ObjectId * Engines_Parallel_Component_i::getId() { // MESSAGE("PortableServer::ObjectId * Engines_Parallel_Component_i::getId()"); return _id ; } //============================================================================= /*! * C++ method: used by derived classes for supervision */ //============================================================================= void Engines_Parallel_Component_i::beginService(const char *serviceName) { #ifndef WIN32 MESSAGE(pthread_self() << "Send BeginService notification for " <p = pthread_self().p ; _ThreadId->x = pthread_self().x ; #endif _StartUsed = 0 ; _StartUsed = CpuUsed_impl() ; _ThreadCpuUsed = 0 ; _Executed = true ; _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(pthread_self() << " Return from BeginService for " << serviceName // << " ThreadId " << _ThreadId << " StartUsed " << _StartUsed // << " _graphName " << _graphName << " _nodeName " << _nodeName ); // --- for supervisor : all strings given with setProperties // are set in environment bool overwrite = true; std::map::iterator it; for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++) { std::string cle((*it).first); if ((*it).second.type()->kind() == CORBA::tk_string) { const char* value; (*it).second >>= value; // ---todo: replace __GNUC__ test by an autoconf macro AC_CHECK_FUNC. #if defined __GNUC__ //int ret = setenv(cle.c_str(), value, overwrite); setenv(cle.c_str(), value, overwrite); #else //CCRT porting : setenv not defined in stdlib.h std::string s(cle); s+='='; s+=value; // char* cast because 1st arg of linux putenv function // is not a const char* ! //int ret=putenv((char *)s.c_str()); putenv((char *)s.c_str()); //End of CCRT porting #endif MESSAGE("--- setenv: "<SetCurCpu(); } //============================================================================= /*! * C++ method: */ //============================================================================= void Engines_Parallel_Component_i::SetCurCpu() { _ThreadCpuUsed = CpuUsed() ; // MESSAGE(pthread_self() << // " Engines_Parallel_Component_i::SetCurCpu() _ThreadCpuUsed " << _ThreadCpuUsed) ; } //============================================================================= /*! * C++ method: */ //============================================================================= long Engines_Parallel_Component_i::CpuUsed() { long cpu = 0 ; #ifndef WIN32 struct rusage usage ; if ( _ThreadId || _Executed ) { if ( getrusage( RUSAGE_SELF , &usage ) == -1 ) { perror("Engines_Parallel_Component_i::CpuUsed") ; return 0 ; } cpu = usage.ru_utime.tv_sec - _StartUsed ; // std::cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed " << " " // << _serviceName << usage.ru_utime.tv_sec << " - " << _StartUsed // << " = " << cpu << std::endl ; } else { // std::cout << pthread_self() << "Engines_Parallel_Component_i::CpuUsed _ThreadId " // << _ThreadId << " " << _serviceName<< " _StartUsed " // << _StartUsed << std::endl ; } #else // NOT implementet yet #endif return cpu ; } void CallCancelThread() { if ( theEngines_Component ) theEngines_Component->CancelThread() ; } //============================================================================= /*! * C++ method: */ //============================================================================= void Engines_Parallel_Component_i::CancelThread() { _CanceledThread = true; } //============================================================================= /*! * C++ method: Send message to event channel */ //============================================================================= void Engines_Parallel_Component_i::sendMessage(const char *event_type, const char *message) { _notifSupplier->Send(graphName(), nodeName(), event_type, message); } //============================================================================= /*! * C++ method: return standard library name built on component name */ //============================================================================= std::string Engines_Parallel_Component_i::GetDynLibraryName(const char *componentName) { std::string ret="lib"; ret+=componentName; ret+="Engine.so"; return ret; } //============================================================================= /*! * C++ method: DumpPython default implementation */ //============================================================================= Engines::TMPFile* Engines_Parallel_Component_i::DumpPython(CORBA::Object_ptr theStudy, CORBA::Boolean isPublished, CORBA::Boolean isMultiFile, CORBA::Boolean& isValidScript) { const char* aScript = isMultiFile ? "def RebuildData(theStudy): pass" : ""; char* aBuffer = new char[strlen(aScript)+1]; strcpy(aBuffer, aScript); CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer; int aBufferSize = strlen(aBuffer)+1; Engines::TMPFile_var aStreamFile = new Engines::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1); isValidScript = true; return aStreamFile._retn(); } Engines::Salome_file_ptr Engines_Parallel_Component_i::setInputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we add it. _Service_file_map_it = _Input_Service_file_map.find(service_name); if (_Service_file_map_it == _Input_Service_file_map.end()) { _t_Salome_file_map * _map = new _t_Salome_file_map(); _Input_Service_file_map[service_name] = _map; _t_Proxy_Salome_file_map * _proxy_map = new _t_Proxy_Salome_file_map(); _Proxy_Input_Service_file_map[service_name] = _proxy_map; _t_IOR_Proxy_Salome_file_map * _IOR_proxy_map = new _t_IOR_Proxy_Salome_file_map(); _IOR_Proxy_Input_Service_file_map[service_name] = _IOR_proxy_map; } _t_Salome_file_map * _map = _Input_Service_file_map[service_name]; _t_Proxy_Salome_file_map * _proxy_map = _Proxy_Input_Service_file_map[service_name]; _t_IOR_Proxy_Salome_file_map * _IOR_proxy_map = _IOR_Proxy_Input_Service_file_map[service_name]; pthread_mutex_lock(deploy_mutex); std::string proxy_ior; // Try to find the Salome_file ... _Salome_file_map_it = _map->find(Salome_file_name); if (_Salome_file_map_it == _map->end()) { // We create a new PaCO++ object. // He has the same configuration than // his component // Firstly, we have to create the proxy object // of the Salome_file and transmit his // reference to the other nodes. Engines::Parallel_Salome_file_proxy_impl * proxy = NULL; if (getMyRank() == 0) { proxy = new Engines::Parallel_Salome_file_proxy_impl(CORBA::ORB::_duplicate(_orb), new paco_omni_fabrique()); proxy->copyGlobalContext(this); PaCO::PacoTopology_t serveur_topo; serveur_topo.total = getTotalNode(); proxy->setTopology(serveur_topo); // We register the CORBA objet into the POA CORBA::Object_ptr proxy_ref = proxy->_this(); // We send the reference to all the nodes... Engines::Parallel_Component_var component_proxy = Engines::Parallel_Component::_narrow(InterfaceParallel_impl::_proxy); component_proxy->send_parallel_proxy_object(proxy_ref); // Adding proxy into the map (*_proxy_map)[Salome_file_name] = proxy; } else { this->wait_parallel_object_proxy(); } proxy_ior = this->get_parallel_proxy_object(); (*_IOR_proxy_map)[Salome_file_name] = proxy_ior; // We register each node of the parallel Salome_file object // into the proxy. for (int i = 0; i < getTotalNode(); i++) { if (i == getMyRank()) { Parallel_Salome_file_i * servant = new Parallel_Salome_file_i(CORBA::ORB::_duplicate(_orb), proxy_ior.c_str(), i); servant->copyGlobalContext(this); // We register the CORBA objet into the POA servant->POA_PaCO::InterfaceParallel::_this(); // Register the servant servant->deploy(); // Adding servant to the map (*_map)[Salome_file_name] = servant; } _my_com->paco_barrier(); // start parallel object if (getMyRank() == 0) { proxy->start(); _my_com->paco_barrier(); } else _my_com->paco_barrier(); } // Parallel_Salome_file is created and deployed delete _proxy; _proxy = NULL; } pthread_mutex_unlock(deploy_mutex); proxy_ior = (*_IOR_proxy_map)[Salome_file_name]; CORBA::Object_ptr proxy_ref = _orb->string_to_object(proxy_ior.c_str()); return Engines::Salome_file::_narrow(proxy_ref); } Engines::Salome_file_ptr Engines_Parallel_Component_i::setOutputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we add it. _Service_file_map_it = _Output_Service_file_map.find(service_name); if (_Service_file_map_it == _Output_Service_file_map.end()) { _t_Salome_file_map * _map = new _t_Salome_file_map(); _Output_Service_file_map[service_name] = _map; _t_Proxy_Salome_file_map * _proxy_map = new _t_Proxy_Salome_file_map(); _Proxy_Output_Service_file_map[service_name] = _proxy_map; _t_IOR_Proxy_Salome_file_map * _IOR_proxy_map = new _t_IOR_Proxy_Salome_file_map(); _IOR_Proxy_Output_Service_file_map[service_name] = _IOR_proxy_map; } _t_Salome_file_map * _map = _Output_Service_file_map[service_name]; _t_Proxy_Salome_file_map * _proxy_map = _Proxy_Output_Service_file_map[service_name]; _t_IOR_Proxy_Salome_file_map * _IOR_proxy_map = _IOR_Proxy_Output_Service_file_map[service_name]; pthread_mutex_lock(deploy_mutex); std::string proxy_ior; // Try to find the Salome_file ... _Salome_file_map_it = _map->find(Salome_file_name); Engines::Parallel_Salome_file_proxy_impl * proxy; if (_Salome_file_map_it == _map->end()) { // We create a new PaCO++ object. // He has the same configuration than // his component // Firstly, we have to create the proxy object // of the Salome_file and transmit his // reference to the other nodes. if (getMyRank() == 0) { proxy = new Engines::Parallel_Salome_file_proxy_impl(CORBA::ORB::_duplicate(_orb), new paco_omni_fabrique()); proxy->copyGlobalContext(this); PaCO::PacoTopology_t serveur_topo; serveur_topo.total = getTotalNode(); proxy->setTopology(serveur_topo); // We register the CORBA objet into the POA CORBA::Object_ptr proxy_ref = proxy->_this(); // We send the reference to all the nodes... Engines::Parallel_Component_var component_proxy = Engines::Parallel_Component::_narrow(InterfaceParallel_impl::_proxy); component_proxy->send_parallel_proxy_object(proxy_ref); // Adding proxy into the map (*_proxy_map)[Salome_file_name] = proxy; } else { this->wait_parallel_object_proxy(); } proxy_ior = this->get_parallel_proxy_object(); (*_IOR_proxy_map)[Salome_file_name] = proxy_ior; // We register each node of the parallel Salome_file object // into the proxy. for (int i = 0; i < getTotalNode(); i++) { if (i == getMyRank()) { Parallel_Salome_file_i * servant = new Parallel_Salome_file_i(CORBA::ORB::_duplicate(_orb), proxy_ior.c_str(), i); servant->copyGlobalContext(this); // We register the CORBA objet into the POA servant->POA_PaCO::InterfaceParallel::_this(); // Register the servant servant->deploy(); // Adding servant to the map (*_map)[Salome_file_name] = servant; } _my_com->paco_barrier(); // start parallel object if (getMyRank() == 0) { proxy->start(); _my_com->paco_barrier(); } else _my_com->paco_barrier(); } // Parallel_Salome_file is created and deployed delete _proxy; _proxy = NULL; } pthread_mutex_unlock(deploy_mutex); proxy_ior = (*_IOR_proxy_map)[Salome_file_name]; CORBA::Object_ptr proxy_ref = _orb->string_to_object(proxy_ior.c_str()); return Engines::Salome_file::_narrow(proxy_ref); } Engines::Salome_file_ptr Engines_Parallel_Component_i::getInputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we throw an exception. _Proxy_Service_file_map_it = _Proxy_Input_Service_file_map.find(service_name); if (_Proxy_Service_file_map_it == _Proxy_Input_Service_file_map.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have salome files"; throw SALOME::SALOME_Exception(es); } _t_Proxy_Salome_file_map * _map = _Proxy_Input_Service_file_map[service_name]; // Try to find the Salome_file ... _Proxy_Salome_file_map_it = _map->find(Salome_file_name); if (_Proxy_Salome_file_map_it == _map->end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have this Salome_file"; throw SALOME::SALOME_Exception(es); } // Client get the proxy object Engines::Parallel_Salome_file_proxy_impl * Sfile = (*_map)[Salome_file_name]; return Sfile->_this(); } Engines::Salome_file_ptr Engines_Parallel_Component_i::getOutputFileToService(const char* service_name, const char* Salome_file_name) { // Try to find the service, if it doesn't exist, we throw an exception. _Proxy_Service_file_map_it = _Proxy_Output_Service_file_map.find(service_name); if (_Proxy_Service_file_map_it == _Proxy_Output_Service_file_map.end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have salome files"; throw SALOME::SALOME_Exception(es); } _t_Proxy_Salome_file_map * _map = _Proxy_Output_Service_file_map[service_name]; // Try to find the Salome_file ... _Proxy_Salome_file_map_it = _map->find(Salome_file_name); if (_Proxy_Salome_file_map_it == _map->end()) { SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "service doesn't have this Salome_file"; throw SALOME::SALOME_Exception(es); } // Client get the proxy object Engines::Parallel_Salome_file_proxy_impl * Sfile = (*_map)[Salome_file_name]; return Sfile->_this(); } void Engines_Parallel_Component_i::checkInputFilesToService(const char* service_name) { // Try to find the service, if it doesn't exist, nothing to do. _Proxy_Service_file_map_it = _Proxy_Input_Service_file_map.find(service_name); if (_Proxy_Service_file_map_it != _Proxy_Input_Service_file_map.end()) { _t_Proxy_Salome_file_map * _proxy_map = _Proxy_Input_Service_file_map[service_name]; _t_Proxy_Salome_file_map::iterator begin = _proxy_map->begin(); _t_Proxy_Salome_file_map::iterator end = _proxy_map->end(); for(;begin!=end;begin++) { Engines::Parallel_Salome_file_proxy_impl * file = begin->second; std::string file_port_name = begin->first; configureSalome_file(service_name, file_port_name, file); file->recvFiles(); } } } void Engines_Parallel_Component_i::checkOutputFilesToService(const char* service_name) { // Try to find the service, if it doesn't exist, nothing to do. _Proxy_Service_file_map_it = _Proxy_Output_Service_file_map.find(service_name); if (_Proxy_Service_file_map_it != _Proxy_Output_Service_file_map.end()) { _t_Proxy_Salome_file_map * _map = _Proxy_Output_Service_file_map[service_name]; _t_Proxy_Salome_file_map::iterator begin = _map->begin(); _t_Proxy_Salome_file_map::iterator end = _map->end(); for(;begin!=end;begin++) { Engines::Parallel_Salome_file_proxy_impl * file = begin->second; std::string file_port_name = begin->first; configureSalome_file(service_name, file_port_name, file); file->recvFiles(); } } } //============================================================================= /*! * C++ method: Used by the Parallel Component to deploy a Parallel Salome_file */ //============================================================================= void Engines_Parallel_Component_i::send_parallel_proxy_object(CORBA::Object_ptr proxy_ref) { _proxy = _orb->object_to_string(proxy_ref); } //============================================================================= /*! * C++ method: Used by the Parallel Component to deploy a Parallel Salome_file */ //============================================================================= void Engines_Parallel_Component_i::wait_parallel_object_proxy() { char * proxy = NULL; proxy = get_parallel_proxy_object(); while(proxy == NULL) { sleep(1); proxy = get_parallel_proxy_object(); } } //============================================================================= /*! * C++ method: Used by the Parallel Component to deploy a Parallel Salome_file */ //============================================================================= char * Engines_Parallel_Component_i::get_parallel_proxy_object() { return _proxy; } //============================================================================= /*! * C++ method: used to configure the Salome_file into the runtime. * \param service_name name of the service that use this Salome_file * \param file_port_name name of the Salome_file * \param file Parallel Salome_file C++ object */ //============================================================================= void Engines_Parallel_Component_i::configureSalome_file(std::string service_name, std::string file_port_name, Engines::Parallel_Salome_file_proxy_impl * file) { // By default this method does nothing } salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelComponent_i.hxx000077500000000000000000000165721177004724000262060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME_ParallelComponent : implementation of container and engine for Parallel Kernel // File : SALOME_ParallelComponent_i.hxx // Author : André RIBES, EDF // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // #ifndef _SALOME_PARALLEL_COMPONENT_I_HXX_ #define _SALOME_PARALLEL_COMPONENT_I_HXX_ #include #include #include #ifndef WIN32 #include #endif #include #include #include #include #include "SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.hxx" #include "NOTIFICATION.hxx" #include "RegistryConnexion.hxx" #include "Parallel_Salome_file_i.hxx" class Engines_Parallel_Container_i; #ifdef WIN32 # if defined CONTAINER_EXPORTS || defined SalomeParallelContainer_EXPORTS # define CONTAINER_EXPORT __declspec( dllexport ) # else # define CONTAINER_EXPORT __declspec( dllimport ) # endif #else # define CONTAINER_EXPORT #endif class CONTAINER_EXPORT Engines_Parallel_Component_i: public virtual Engines::Parallel_Component_serv, public virtual PortableServer::RefCountServantBase { public: Engines_Parallel_Component_i(CORBA::ORB_ptr orb, char * ior, int rank, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool notif = false, bool regist = true); virtual ~Engines_Parallel_Component_i(); // --- CORBA methods char* instanceName(); char* interfaceName(); void ping(); void destroy(); CORBA::Long getStudyId(); Engines::Container_ptr GetContainerRef(); void setProperties(const Engines::FieldsDict& dico); Engines::FieldsDict* getProperties(); void Names( const char * graphName , const char * nodeName ) ; bool Kill_impl(); bool Stop_impl(); bool Suspend_impl(); bool Resume_impl(); CORBA::Long CpuUsed_impl() ; virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy, CORBA::Boolean isPublished, CORBA::Boolean isMultiFile, CORBA::Boolean& isValidScript); // CORBA operations for Salome_file virtual Engines::Salome_file_ptr getInputFileToService(const char* service_name, const char* Salome_file_name); virtual Engines::Salome_file_ptr getOutputFileToService(const char* service_name, const char* Salome_file_name); virtual void checkInputFilesToService(const char* service_name); virtual Engines::Salome_file_ptr setInputFileToService(const char* service_name, const char* Salome_file_name); virtual void checkOutputFilesToService(const char* service_name); virtual Engines::Salome_file_ptr setOutputFileToService(const char* service_name, const char* Salome_file_name); void send_parallel_proxy_object(CORBA::Object_ptr proxy_ref); // Object information virtual bool hasObjectInfo() { return false; } virtual char* getObjectInfo(CORBA::Long studyId, const char* entry) { return ""; } // --- local C++ methods PortableServer::ObjectId * getId(); Engines_Parallel_Container_i *GetContainerPtr(); bool setStudyId(CORBA::Long studyId); static bool isMultiStudy(); static bool isMultiInstance(); static std::string GetDynLibraryName(const char *componentName); void beginService(const char *serviceName); void endService(const char *serviceName); void sendMessage(const char *event_type, const char *message); char * graphName() ; char * nodeName() ; bool Killer( pthread_t ThreadId , int signum ); void SetCurCpu() ; long CpuUsed() ; void CancelThread(); void wait_parallel_object_proxy(); char * get_parallel_proxy_object(); virtual void configureSalome_file(std::string service_name, std::string file_port_name, Engines::Parallel_Salome_file_proxy_impl * file); protected: int _studyId; // -1: not initialised; 0: multiStudy; >0: study static bool _isMultiStudy; static bool _isMultiInstance; std::string _instanceName ; std::string _interfaceName ; CORBA::ORB_var _orb; PortableServer::POA_var _poa; PortableServer::ObjectId * _id; PortableServer::ObjectId * _contId; Engines_Parallel_Component_i * _thisObj ; RegistryConnexion *_myConnexionToRegistry; NOTIFICATION_Supplier* _notifSupplier; std::map_fieldsDict; // Map Salome_file_name to Parallel_Salome_file* typedef std::map _t_Salome_file_map; typedef std::map _t_Proxy_Salome_file_map; typedef std::map _t_IOR_Proxy_Salome_file_map; // Map Service_name to _Salome_file_map typedef std::map _t_Service_file_map; typedef std::map _t_Proxy_Service_file_map; typedef std::map _t_IOR_Proxy_Service_file_map; _t_Service_file_map _Input_Service_file_map; _t_Service_file_map _Output_Service_file_map; _t_Service_file_map::iterator _Service_file_map_it; _t_Salome_file_map::iterator _Salome_file_map_it; _t_Proxy_Service_file_map _Proxy_Input_Service_file_map; _t_Proxy_Service_file_map _Proxy_Output_Service_file_map; _t_Proxy_Service_file_map::iterator _Proxy_Service_file_map_it; _t_Proxy_Salome_file_map::iterator _Proxy_Salome_file_map_it; _t_IOR_Proxy_Service_file_map _IOR_Proxy_Input_Service_file_map; _t_IOR_Proxy_Service_file_map _IOR_Proxy_Output_Service_file_map; _t_IOR_Proxy_Service_file_map::iterator _IOR_Proxy_Service_file_map_it; _t_IOR_Proxy_Salome_file_map::iterator _IOR_Proxy_Salome_file_map_it; std::string _serviceName ; std::string _graphName ; std::string _nodeName ; pthread_mutex_t * deploy_mutex; char * _proxy; private: #ifndef WIN32 pthread_t _ThreadId ; #else pthread_t* _ThreadId ; #endif long _StartUsed ; long _ThreadCpuUsed ; bool _Executed ; bool _CanceledThread ; bool _destroyed; }; #endif salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelContainerNodeDummy.cxx000077500000000000000000000147531177004724000274720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ParallelContainerNodeDummy : launcher of a PaCO++ object // File : SALOME_ParallelContainerNodeDummy.cxx // Author : André Ribes, EDF // Module : SALOME PARALLEL // #include #include #include #ifndef WIN32 #include #else #include #endif #include "SALOME_ParallelContainer_i.hxx" #include #include #include "SALOME_NamingService.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "SALOMETraceCollector.hxx" #include "OpUtil.hxx" #include "Container_init_python.hxx" #ifdef _DEBUG_ #include void handler(int t) { std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "SIGSEGV in :" << getpid() << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; while (1) {} } #endif typedef void (*sighandler_t)(int); sighandler_t setsig(int sig, sighandler_t handler) { struct sigaction context, ocontext; context.sa_handler = handler; sigemptyset(&context.sa_mask); context.sa_flags = 0; if (sigaction(sig, &context, &ocontext) == -1) return SIG_ERR; return ocontext.sa_handler; } void AttachDebugger() { if(getenv ("DEBUGGER")) { std::stringstream exec; exec << "$DEBUGGER SALOME_ParallelContainerNodeDummy " << getpid() << "&"; std::cerr << exec.str() << std::endl; system(exec.str().c_str()); while(1); } } void Handler(int theSigId) { std::cerr << "SIGSEGV: " << std::endl; AttachDebugger(); //to exit or not to exit exit(1); } void terminateHandler(void) { std::cerr << "Terminate: not managed exception !" << std::endl; AttachDebugger(); } void unexpectedHandler(void) { std::cerr << "Unexpected: unexpected exception !" << std::endl; AttachDebugger(); } int main(int argc, char* argv[]) { INFOS("Launching a parallel container node"); if(getenv ("DEBUGGER")) { setsig(SIGSEGV,&Handler); set_terminate(&terminateHandler); set_unexpected(&unexpectedHandler); } // Initialise the ORB. CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); KERNEL_PYTHON::init_python(argc,argv); std::string containerName(""); if(argc > 1) { containerName = argv[1]; } std::string proxy_hostname(""); if(argc > 3) { proxy_hostname = argv[3]; } int myid = 0; if(argc > 4) sscanf(argv[4],"%d",&myid); try { CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); PortableServer::POAManager_var pman = root_poa->the_POAManager(); #ifndef WIN32 // add this container to the kill list char aCommand[100]; sprintf(aCommand, "addToKillList.py %d SALOME_ParallelContainerNode", getpid()); system(aCommand); #endif SALOME_NamingService * ns = new SALOME_NamingService(orb); // Get the proxy std::string proxyNameInNS = ns->BuildContainerNameForNS(containerName.c_str(), proxy_hostname.c_str()); obj = ns->Resolve(proxyNameInNS.c_str()); char * proxy_ior = orb->object_to_string(obj); // Creating a node std::string node_name = containerName + "Node"; Engines_Parallel_Container_i * servant = new Engines_Parallel_Container_i(CORBA::ORB::_duplicate(orb), proxy_ior, myid, root_poa, node_name); // PaCO++ init paco_fabrique_manager * pfm = paco_getFabriqueManager(); pfm->register_com("dummy", new paco_dummy_fabrique()); pfm->register_thread("omni", new paco_omni_fabrique()); servant->setLibCom("dummy", servant); servant->setLibThread("omni"); // Activation obj = servant->_this(); // In the NamingService string hostname = Kernel_Utils::GetHostname(); char buffer [5]; snprintf(buffer, 5, "%d", myid); node_name = node_name + buffer; string _containerName = ns->BuildContainerNameForNS((char*) node_name.c_str(), hostname.c_str()); std::cerr << "---------" << _containerName << "----------" << std::endl; ns->Register(obj, _containerName.c_str()); pman->activate(); orb->run(); PyGILState_Ensure(); //Delete python container that destroy orb from python (pyCont._orb.destroy()) Py_Finalize(); CORBA::string_free(proxy_ior); delete ns; } catch (PaCO::PACO_Exception& e) { INFOS("Caught PaCO::PACO_Exception"); std::cerr << e << std::endl; } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException."); } catch(PortableServer::POA::ServantAlreadyActive&) { INFOS("Caught CORBA::ServantAlreadyActiveException"); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(omniORB::fatalException& fe) { INFOS("Caught omniORB::fatalException:"); INFOS(" file: " << fe.file()); INFOS(" line: " << fe.line()); INFOS(" mesg: " << fe.errmsg()); } catch(std::exception& exc) { INFOS("Caught std::exception - "< #include #include #ifndef WIN32 #include #else #include #endif #include "SALOME_ParallelContainer_i.hxx" // PaCO++ include #include #include #include #include "SALOME_NamingService.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "SALOMETraceCollector.hxx" #include "OpUtil.hxx" #include "Container_init_python.hxx" #ifdef _DEBUG_ #include void handler(int t) { std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "SIGSEGV in :" << getpid() << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; while (1) {} } #endif typedef void (*sighandler_t)(int); sighandler_t setsig(int sig, sighandler_t handler) { struct sigaction context, ocontext; context.sa_handler = handler; sigemptyset(&context.sa_mask); context.sa_flags = 0; if (sigaction(sig, &context, &ocontext) == -1) return SIG_ERR; return ocontext.sa_handler; } void AttachDebugger() { if(getenv ("DEBUGGER")) { std::stringstream exec; exec << "$DEBUGGER SALOME_ParallelContainerNodeMpi " << getpid() << "&"; std::cerr << exec.str() << std::endl; system(exec.str().c_str()); while(1); } } void Handler(int theSigId) { std::cerr << "SIGSEGV: " << std::endl; AttachDebugger(); //to exit or not to exit exit(1); } void terminateHandler(void) { std::cerr << "Terminate: not managed exception !" << std::endl; AttachDebugger(); } void unexpectedHandler(void) { std::cerr << "Unexpected: unexpected exception !" << std::endl; AttachDebugger(); } int main(int argc, char* argv[]) { INFOS("Launching a parallel Mpi container node"); // MPI Init int provided; int myid; MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE ,&provided); MPI_Comm_rank(MPI_COMM_WORLD,&myid); #ifdef _DEBUG_ if(getenv ("DEBUGGER")) { std::cerr << "Unexpected: unexpected exception !" << std::endl; setsig(SIGSEGV,&Handler); set_terminate(&terminateHandler); //set_terminate(__gnu_cxx::__verbose_terminate_handler); set_unexpected(&unexpectedHandler); } #endif std::cerr << "Level MPI_THREAD_SINGLE : " << MPI_THREAD_SINGLE << std::endl; std::cerr << "Level MPI_THREAD_SERIALIZED : " << MPI_THREAD_SERIALIZED << std::endl; std::cerr << "Level MPI_THREAD_FUNNELED : " << MPI_THREAD_FUNNELED << std::endl; std::cerr << "Level MPI_THREAD_MULTIPLE : " << MPI_THREAD_MULTIPLE << std::endl; std::cerr << "Level provided : " << provided << std::endl; // Initialise the ORB. CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); KERNEL_PYTHON::init_python(argc,argv); // Code pour choisir le reseau infiniband ..... /* std::string hostname_temp = GetHostname(); hostent * t = gethostbyname(hostname_temp.c_str()); std::cerr << " AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA " << t->h_addr << " " << hostname_temp << std::endl; std::cerr << t->h_addr << std::endl; in_addr * address=(in_addr * ) t->h_addr; std::cerr << inet_ntoa(* address) << std::endl; std::string ip = inet_ntoa(* address); std::cerr << " AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA " << std::endl; std::string com = "giop:tcp:" + ip + ":"; const char* options[][2] = { { "endPoint", com.c_str() }, { 0, 0 } }; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB4", options); */ std::string containerName(""); containerName = argv[1]; std::string proxy_hostname(""); if(argc > 3) { proxy_hostname = argv[3]; } try { CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); PortableServer::POAManager_var pman = root_poa->the_POAManager(); #ifndef WIN32 // add this container to the kill list char aCommand[100]; sprintf(aCommand, "addToKillList.py %d SALOME_ParallelContainerNodeMpi", getpid()); system(aCommand); #endif SALOME_NamingService * ns = new SALOME_NamingService(CORBA::ORB::_duplicate(orb)); // On récupère le proxy std::string proxyNameInNS = ns->BuildContainerNameForNS(containerName.c_str(), proxy_hostname.c_str()); obj = ns->Resolve(proxyNameInNS.c_str()); char * proxy_ior = orb->object_to_string(obj); // Node creation std::string node_name = containerName + "Node"; Engines_Parallel_Container_i * servant = new Engines_Parallel_Container_i(CORBA::ORB::_duplicate(orb), proxy_ior, myid, root_poa, node_name); // PaCO++ init paco_fabrique_manager * pfm = paco_getFabriqueManager(); pfm->register_com("mpi", new paco_mpi_fabrique()); pfm->register_thread("omni", new paco_omni_fabrique()); servant->setLibCom("mpi", MPI_COMM_WORLD); servant->setLibThread("omni"); // Activation obj = servant->_this(); // In the NamingService std::string hostname = Kernel_Utils::GetHostname(); int myid; MPI_Comm_rank(MPI_COMM_WORLD, &myid); char buffer [5]; snprintf(buffer, 5, "%d", myid); node_name = node_name + buffer; // We register nodes in two different parts // In the real machine name and in the proxy machine std::string _containerName = ns->BuildContainerNameForNS(node_name.c_str(), hostname.c_str()); std::string _proxymachine_containerName = ns->BuildContainerNameForNS(node_name.c_str(), proxy_hostname.c_str()); std::cerr << "Register container node : " << _containerName << std::endl; std::cerr << "Register container node : " << _proxymachine_containerName << std::endl; ns->Register(obj, _containerName.c_str()); ns->Register(obj, _proxymachine_containerName.c_str()); pman->activate(); orb->run(); PyGILState_Ensure(); //Delete python container that destroy orb from python (pyCont._orb.destroy()) Py_Finalize(); MPI_Finalize(); CORBA::string_free(proxy_ior); delete ns; } catch (PaCO::PACO_Exception& e) { INFOS("Caught PaCO::PACO_Exception"); std::cerr << e << std::endl; } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException."); } catch(PortableServer::POA::ServantAlreadyActive&) { INFOS("Caught CORBA::ServantAlreadyActiveException"); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(std::exception& exc) { INFOS("Caught std::exception - "< #include #include #ifndef WIN32 #include #else #include #endif // PaCO++ include //#include "SALOME_ComponentPaCO_Engines_Container_server.h" #include "SALOME_ParallelContainerProxy_i.hxx" #include #include #include "SALOME_NamingService.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "SALOMETraceCollector.hxx" #include "OpUtil.hxx" #include "Container_init_python.hxx" #ifdef DEBUG_PARALLEL #include void handler(int t) { std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "SIGSEGV in :" << getpid() << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; while (1) {} } #endif int main(int argc, char* argv[]) { INFOS("Launching a parallel proxy container"); #ifdef DEBUG_PARALLEL signal(SIGSEGV, handler); #endif // Initialise the ORB. CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); KERNEL_PYTHON::init_python(argc,argv); std::string containerName(""); if(argc > 1) { containerName = argv[1]; } int nbnodes = 1; if(argc > 4) sscanf(argv[4],"%d",&nbnodes); try { CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); ASSERT(!CORBA::is_nil(obj)); PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); PortableServer::POAManager_var pman = root_poa->the_POAManager(); #ifndef WIN32 // add this container to the kill list char aCommand[100]; sprintf(aCommand, "addToKillList.py %d SALOME_ParallelContainerProxyDummy", getpid()); system(aCommand); #endif SALOME_NamingService * ns = new SALOME_NamingService(orb); // PaCO++ code paco_fabrique_manager* pfm = paco_getFabriqueManager(); pfm->register_com("dummy", new paco_dummy_fabrique()); pfm->register_thread("omnithread", new paco_omni_fabrique()); Container_proxy_impl_final * proxy = new Container_proxy_impl_final(orb, pfm->get_thread("omnithread"), root_poa, containerName); proxy->setLibCom("dummy", proxy); proxy->setLibThread("omnithread"); // Topo of the parallel object PaCO::PacoTopology_t serveur_topo; serveur_topo.total = nbnodes; proxy->setTopology(serveur_topo); //PortableServer::ObjectId_var _id = root_poa->activate_object(proxy); //obj = root_poa->id_to_reference(_id); obj = proxy->_this(); // In the NamingService std::string hostname = Kernel_Utils::GetHostname(); Engines::Container_var pCont = Engines::Container::_narrow(obj); string _containerName = ns->BuildContainerNameForNS(containerName.c_str(), hostname.c_str()); std::cerr << "---------" << _containerName << "----------" << std::endl; ns->Register(pCont, _containerName.c_str()); pman->activate(); orb->run(); PyGILState_Ensure(); //Delete python container that destroy orb from python (pyCont._orb.destroy()) Py_Finalize(); delete ns; } catch (PaCO::PACO_Exception& e) { INFOS("Caught PaCO::PACO_Exception"); std::cerr << e << std::endl; } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException."); } catch(PortableServer::POA::ServantAlreadyActive&) { INFOS("Caught CORBA::ServantAlreadyActiveException"); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(std::exception& exc) { INFOS("Caught std::exception - "< #include #include #ifndef WIN32 #include #else #include #endif //#include "SALOME_ComponentPaCO_Engines_Container_server.h" #include "SALOME_ParallelContainerProxy_i.hxx" #include #include #include #include "SALOME_NamingService.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "SALOMETraceCollector.hxx" #include "OpUtil.hxx" #include "Container_init_python.hxx" #ifdef _DEBUG_ #include typedef void (*sighandler_t)(int); sighandler_t setsig(int sig, sighandler_t handler) { struct sigaction context, ocontext; context.sa_handler = handler; sigemptyset(&context.sa_mask); context.sa_flags = 0; if (sigaction(sig, &context, &ocontext) == -1) return SIG_ERR; return ocontext.sa_handler; } void AttachDebugger() { if(getenv ("DEBUGGER")) { std::stringstream exec; exec << "$DEBUGGER SALOME_ParallelContainerProxyMpi " << getpid() << "&"; std::cerr << exec.str() << std::endl; system(exec.str().c_str()); while(1); } } void Handler(int theSigId) { std::cerr << "SIGSEGV: " << std::endl; AttachDebugger(); //to exit or not to exit exit(1); } void terminateHandler(void) { std::cerr << "Terminate: not managed exception !" << std::endl; AttachDebugger(); } void unexpectedHandler(void) { std::cerr << "Unexpected: unexpected exception !" << std::endl; AttachDebugger(); } void handler(int t) { std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "SIGSEGV in :" << getpid() << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; std::cerr << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl; while (1) {} } #endif int main(int argc, char* argv[]) { INFOS("Launching a parallel Mpi proxy container"); #ifdef _DEBUG_ signal(SIGSEGV, handler); #endif // MPI Init int provided; MPI_Init_thread(&argc, &argv, MPI_THREAD_SERIALIZED ,&provided); CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); KERNEL_PYTHON::init_python(argc,argv); #ifdef _DEBUG_ if(getenv ("DEBUGGER")) { std::cerr << "Unexpected: unexpected exception !" << std::endl; setsig(SIGSEGV,&Handler); //set_terminate(&terminateHandler); set_terminate(__gnu_cxx::__verbose_terminate_handler); set_unexpected(&unexpectedHandler); } #endif std::string containerName(""); containerName = argv[1]; int nb_nodes; sscanf(argv[2],"%d",&nb_nodes); try { CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); ASSERT(!CORBA::is_nil(obj)); PortableServer::POA_var root_poa = PortableServer::POA::_narrow(obj); PortableServer::POAManager_var pman = root_poa->the_POAManager(); #ifndef WIN32 // add this container to the kill list char aCommand[100]; sprintf(aCommand, "addToKillList.py %d SALOME_ParallelContainerProxyMpi", getpid()); system(aCommand); #endif SALOME_NamingService * ns = new SALOME_NamingService(CORBA::ORB::_duplicate(orb)); // PaCO++ code paco_fabrique_manager* pfm = paco_getFabriqueManager(); pfm->register_com("dummy", new paco_dummy_fabrique()); pfm->register_thread("omnithread", new paco_omni_fabrique()); Container_proxy_impl_final * proxy = new Container_proxy_impl_final(orb, pfm->get_thread("omnithread"), root_poa, containerName); // PaCO++ code proxy->setLibCom("dummy", proxy); proxy->setLibThread("omnithread"); PaCO::PacoTopology_t serveur_topo; serveur_topo.total = nb_nodes; proxy->setTopology(serveur_topo); // Activation //PortableServer::ObjectId_var _id = root_poa->activate_object(proxy); //obj = root_poa->id_to_reference(_id); obj = proxy->_this(); // in the NamingService std::string hostname = Kernel_Utils::GetHostname(); Engines::Container_var pCont = Engines::Container::_narrow(obj); std::string _containerName = ns->BuildContainerNameForNS(containerName.c_str(), hostname.c_str()); std::cerr << "---------" << _containerName << "----------" << std::endl; ns->Register(pCont, _containerName.c_str()); pman->activate(); orb->run(); PyGILState_Ensure(); //Delete python container that destroy orb from python (pyCont._orb.destroy()) Py_Finalize(); MPI_Finalize(); delete ns; } catch (PaCO::PACO_Exception& e) { INFOS("Caught PaCO::PACO_Exception"); std::cerr << e << std::endl; } catch(CORBA::SystemException&) { INFOS("Caught CORBA::SystemException."); } catch(PortableServer::POA::ServantAlreadyActive&) { INFOS("Caught CORBA::ServantAlreadyActiveException"); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(std::exception& exc) { INFOS("Caught std::exception - "<BuildContainerNameForNS(containerName.c_str(), _hostname.c_str()); _poa = PortableServer::POA::_duplicate(poa); _fab_thread = fab_thread; // Add CORBA object to the poa _id = _poa->activate_object(this); this->_remove_ref(); // Init SALOME Naming Service _NS = new SALOME_NamingService(); _NS->init_orb(_orb); // Init Python container part CORBA::Object_var container_node = _poa->id_to_reference(*_id); CORBA::String_var sior = _orb->object_to_string(container_node); std::string myCommand="pyCont = SALOME_Container.SALOME_Container_i('"; myCommand += _containerName + "','"; myCommand += sior; myCommand += "')\n"; Py_ACQUIRE_NEW_THREAD; PyRun_SimpleString("import SALOME_Container\n"); PyRun_SimpleString((char*)myCommand.c_str()); Py_RELEASE_NEW_THREAD; } Container_proxy_impl_final:: ~Container_proxy_impl_final() { if (_id) delete _id; if (_NS) delete _NS; // _fab_thread not deleted beacause fab_thread is managed // by paco_fabrique_manager } void Container_proxy_impl_final::Shutdown() { // We Start by destroying all the parallel object std::list::iterator itm; for (itm = _par_obj_inst_list.begin(); itm != _par_obj_inst_list.end(); itm++) { try { ((*itm).proxy_corba_ref)->destroy(); } catch(const CORBA::Exception& e) { // ignore this entry and continue } catch(...) { // ignore this entry and continue } // Destroy proxy object... parallel object nodes are // destroyed into the Shutdown of each container nodes _poa->deactivate_object(*((*itm).proxy_id)); if ((*itm).proxy_id) delete (*itm).proxy_id; if ((*itm).proxy_regist) delete (*itm).proxy_regist; } // We call shutdown in each node for (CORBA::ULong i = 0; i < _infos.nodes.length(); i++) { MESSAGE("Shutdown work node : " << i); CORBA::Object_var object = _orb->string_to_object(_infos.nodes[i]); Engines::Container_var node = Engines::Container::_narrow(object); if (!CORBA::is_nil(node)) { try { node->Shutdown(); MESSAGE("Shutdown done node : " << i); } catch (...) { INFOS("Exception catch during Shutdown of node : " << i); } } else { INFOS("Cannot shutdown node " << i << " ref is nil !"); } } INFOS("Shutdown Parallel Proxy"); _NS->Destroy_FullDirectory(_containerName.c_str()); _NS->Destroy_Name(_containerName.c_str()); if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } // On intercepte cette méthode pour pouvoir ensuite // déterminer si on doit créer une instance sequentielle // ou parallèle d'un composant dans la méthode create_component_instance CORBA::Boolean Container_proxy_impl_final::load_component_Library(const char* componentName, CORBA::String_out reason) { MESSAGE("Begin of load_component_Library on proxy : " << componentName); reason=CORBA::string_dup(""); std::string aCompName = componentName; CORBA::Boolean ret = true; if (_libtype_map.count(aCompName) == 0) { _numInstanceMutex.lock(); // lock to be alone // Default lib is seq _libtype_map[aCompName] = "seq"; // --- try dlopen C++ component // If is not a C++ or failed then is maybe // a seq component... MESSAGE("Try to load C++ component"); #ifndef WIN32 std::string impl_name = string ("lib") + aCompName + string("Engine.so"); #else std::string impl_name = aCompName + string("Engine.dll"); #endif void* handle; #ifndef WIN32 handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ; #else handle = dlopen( impl_name.c_str() , 0 ) ; #endif if ( handle ) { _library_map[impl_name] = handle; MESSAGE("Library " << impl_name << " loaded"); //Test if lib could contain a parallel component std::string paco_test_fct_signature = aCompName + std::string("_isAPACO_Component"); INFOS("SIG is : " << paco_test_fct_signature); PACO_TEST_FUNCTION paco_test_fct = NULL; #ifndef WIN32 paco_test_fct = (PACO_TEST_FUNCTION)dlsym(handle, paco_test_fct_signature.c_str()); #else paco_test_fct = (PACO_TEST_FUNCTION)GetProcAddress((HINSTANCE)handle, paco_test_fct_signature.c_str()); #endif if (paco_test_fct) { // PaCO Component found MESSAGE("PACO LIB FOUND"); _libtype_map[aCompName] = "par"; } else { MESSAGE("SEQ LIB FOUND"); #ifndef WIN32 MESSAGE("dlerror() result is : " << dlerror()); #endif } } else { MESSAGE("Error in importing Cpp component : " << impl_name); #ifndef WIN32 MESSAGE("dlerror() result is : " << dlerror()); #endif MESSAGE("Try to import Python component "<string_to_object(_infos.nodes[i]); Engines::Container_var node = Engines::Container::_narrow(object); if (!CORBA::is_nil(node)) { char* reason; try { node->load_component_Library(componentName,reason); MESSAGE("Call load_component_Library done node : " << i); CORBA::string_free(reason); } catch (...) { INFOS("Exception catch during load_component_Library of node : " << i); CORBA::string_free(reason); ret = false; } } else { INFOS("Cannot call load_component_Library node " << i << " ref is nil !"); ret = false; } } } // If ret is false -> lib is not loaded ! if (!ret) { INFOS("Cannot call load_component_Library " << aCompName); _libtype_map.erase(aCompName); } return ret; } Engines::EngineComponent_ptr Container_proxy_impl_final::create_component_instance(const char* componentName, ::CORBA::Long studyId) { Engines::FieldsDict_var env = new Engines::FieldsDict; char* reason; Engines::EngineComponent_ptr compo = create_component_instance_env(componentName, studyId, env, reason); CORBA::string_free(reason); return compo; } // Il y a deux cas : // Composant sequentiel -> on le créer sur le noeud 0 (on pourrait faire une répartition de charge) // Composant parallèle -> création du proxy ici puis appel de la création de chaque objet participant // au composant parallèle Engines::EngineComponent_ptr Container_proxy_impl_final::create_component_instance_env(const char* componentName, ::CORBA::Long studyId, const Engines::FieldsDict& env, CORBA::String_out reason) { reason=CORBA::string_dup(""); std::string aCompName = componentName; if (_libtype_map.count(aCompName) == 0) { // Component is not loaded ! INFOS("Proxy: component is not loaded ! : " << aCompName); return Engines::EngineComponent::_nil(); } // If it is a sequential component if (_libtype_map[aCompName] == "seq") { _numInstanceMutex.lock(); // lock on the instance number _numInstance++; _numInstanceMutex.unlock(); Engines::PACO_Container_proxy_impl::updateInstanceNumber(); return Engines::Container_proxy_impl::create_component_instance(componentName, studyId); } // Parallel Component ! Engines::EngineComponent_var component_proxy = Engines::EngineComponent::_nil(); // On commence par créer le proxy #ifndef WIN32 std::string impl_name = string ("lib") + aCompName + string("Engine.so"); #else std::string impl_name = aCompName + string("Engine.dll"); #endif void* handle = _library_map[impl_name]; std::string factory_name = aCompName + std::string("EngineProxy_factory"); MESSAGE("Creating component proxy : " << factory_name); FACTORY_FUNCTION component_proxy_factory = (FACTORY_FUNCTION) dlsym(handle, factory_name.c_str()); if (!component_proxy_factory) { INFOS("Can't resolve symbol: " + factory_name); #ifndef WIN32 INFOS("dlerror() result is : " << dlerror()); #endif return Engines::EngineComponent::_nil() ; } try { _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; string instanceName = aCompName + "_inst_" + aNumI ; string component_registerName = _containerName + "/" + instanceName; // --- Instanciate required CORBA object Container_proxy_impl_final::proxy_object * proxy = new Container_proxy_impl_final::proxy_object(); proxy->proxy_id = (component_proxy_factory) (_orb, _fab_thread, _poa, _id, &(proxy->proxy_regist), instanceName.c_str(), _parallel_object_topology.total); // --- get reference & servant from id CORBA::Object_var obj = _poa->id_to_reference(*(proxy->proxy_id)); component_proxy = Engines::EngineComponent::_narrow(obj); proxy->proxy_corba_ref = component_proxy; if (!CORBA::is_nil(component_proxy)) { _cntInstances_map[impl_name] += 1; _par_obj_inst_list.push_back(*proxy); delete proxy; // --- register the engine under the name // containerName(.dir)/instanceName(.object) _NS->Register(component_proxy , component_registerName.c_str()) ; MESSAGE(component_registerName.c_str() << " bound" ) ; } else { INFOS("The factory returns a nil object !"); return Engines::EngineComponent::_nil(); } } catch (...) { INFOS( "Exception catched in Proxy creation" ); return Engines::EngineComponent::_nil(); } // Create on each node a work node for (CORBA::ULong i = 0; i < _infos.nodes.length(); i++) { MESSAGE("Call create_paco_component_node_instance on work node : " << i); CORBA::Object_var object = _orb->string_to_object(_infos.nodes[i]); Engines::PACO_Container_var node = Engines::PACO_Container::_narrow(object); if (!CORBA::is_nil(node)) { try { node->create_paco_component_node_instance(componentName, _containerName.c_str(), studyId); MESSAGE("Call create_paco_component_node_instance done on node : " << i); } catch (SALOME::SALOME_Exception & ex) { INFOS("SALOME_EXCEPTION : " << ex.details.text); return Engines::EngineComponent::_nil(); } catch (...) { INFOS("Unknown Exception catch during create_paco_component_node_instance on node : " << i); return Engines::EngineComponent::_nil(); } } else { INFOS("Cannot call create_paco_component_node_instance on node " << i << " ref is nil !"); return Engines::EngineComponent::_nil(); } } // Start Parallel object PaCO::InterfaceManager_var paco_proxy = PaCO::InterfaceManager::_narrow(component_proxy); paco_proxy->start(); return component_proxy; } salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelContainerProxy_i.hxx000077500000000000000000000100441177004724000272140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ParallelContainerProxy_i.hxx // Author : André RIBES, EDF #ifndef _SALOME_PARALLEL_CONTAINER_PROXY_I_HXX_ #define _SALOME_PARALLEL_CONTAINER_PROXY_I_HXX_ #include "utilities.h" #include "Basics_Utils.hxx" #include "SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.hxx" #include "SALOME_ParallelGlobalProcessVar_i.hxx" #include "SALOME_NamingService.hxx" #include "RegistryConnexion.hxx" #include #include #include #include #include "Container_init_python.hxx" class Container_proxy_impl_final : virtual public Engines::PACO_Container_proxy_impl, virtual public ParallelGlobalProcessVar_i { public: Container_proxy_impl_final(CORBA::ORB_ptr orb, paco_fabrique_thread * fab_thread, PortableServer::POA_ptr poa, std::string containerName, bool is_a_return_proxy = false); virtual ~Container_proxy_impl_final(); virtual void Shutdown(); virtual ::CORBA::Boolean load_component_Library(const char* componentName,CORBA::String_out reason); virtual Engines::EngineComponent_ptr create_component_instance (const char* componentName, ::CORBA::Long studyId); virtual Engines::EngineComponent_ptr create_component_instance_env (const char* componentName, CORBA::Long studyId, // 0 for multiStudy const Engines::FieldsDict& env, CORBA::String_out reason); private: std::map _libtype_map; // libname -> libtype (seq ou par) struct proxy_object { Engines::EngineComponent_var proxy_corba_ref; PortableServer::ObjectId * proxy_id; RegistryConnexion * proxy_regist; }; // Cette liste contient les references vers les différentes // instances d'objets parallèles. std::list _par_obj_inst_list; // Fonction de test pour savoir si les objets de la bib sont // parallèles ou sequentiels typedef void (*PACO_TEST_FUNCTION) (); typedef PortableServer::ObjectId * (*FACTORY_FUNCTION) (CORBA::ORB_ptr, paco_fabrique_thread *, PortableServer::POA_ptr, PortableServer::ObjectId *, RegistryConnexion **, const char *, int); int _numInstance; std::string _hostname; std::string _containerName; PortableServer::POA_var _poa; PortableServer::ObjectId * _id; SALOME_NamingService *_NS; paco_fabrique_thread * _fab_thread; }; #endif salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelContainer_i.cxx000077500000000000000000001237211177004724000261540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ParallelContainer_i.cxx // Author : André RIBES, EDF #include "SALOME_ParallelContainer_i.hxx" #include "SALOME_Component_i.hxx" #include "SALOME_FileRef_i.hxx" #include "SALOME_FileTransfer_i.hxx" #include "SALOME_NamingService.hxx" #include "OpUtil.hxx" #include "utilities.h" #include "Basics_Utils.hxx" #include #include #ifndef WIN32 #include #include #include #else #include #include #include int SIGUSR1 = 1000; #endif #include #include #include "Container_init_python.hxx" bool _Sleeping = false ; extern "C" {void ActSigIntHandler() ; } #ifndef WIN32 extern "C" {void SigIntHandler(int, siginfo_t *, void *) ; } #else extern "C" {void SigIntHandler( int ) ; } #endif /*! \class Engines_Parallel_Container_i * \brief C++ implementation of Engines::Container interface for parallel * container implemented with PaCO++ */ //============================================================================= /*! * Construtor */ //============================================================================= Engines_Parallel_Container_i::Engines_Parallel_Container_i (CORBA::ORB_ptr orb, char * ior, int rank, PortableServer::POA_ptr poa, std::string containerName, bool isServantAloneInProcess) : InterfaceParallel_impl(orb,ior,rank), Engines::PACO_Container_serv(orb,ior,rank), Engines::PACO_Container_base_serv(orb,ior,rank), Engines::Container_serv(orb,ior,rank), Engines::Container_base_serv(orb,ior,rank), _numInstance(0),_isServantAloneInProcess(isServantAloneInProcess) { // Members init _pid = getpid(); _hostname = Kernel_Utils::GetHostname(); _orb = CORBA::ORB::_duplicate(orb); _poa = PortableServer::POA::_duplicate(poa); // Add CORBA object to the poa _id = _poa->activate_object(this); this->_remove_ref(); CORBA::Object_var container_node = _poa->id_to_reference(*_id); // Adding this servant to SALOME _NS = new SALOME_NamingService(); _NS->init_orb(_orb); _containerName = _NS->BuildContainerNameForNS(containerName.c_str(), _hostname.c_str()); // Ajout du numero de noeud char node_number[12]; sprintf(node_number, "%d", getMyRank()); _containerName = _containerName + node_number; // Init Python container part CORBA::String_var sior = _orb->object_to_string(container_node); std::string myCommand="pyCont = SALOME_Container.SALOME_Container_i('"; myCommand += _containerName + "','"; myCommand += sior; myCommand += "')\n"; Py_ACQUIRE_NEW_THREAD; PyRun_SimpleString("import SALOME_Container\n"); PyRun_SimpleString((char*)myCommand.c_str()); Py_RELEASE_NEW_THREAD; // Init FileTransfer service fileTransfer_i* aFileTransfer = new fileTransfer_i(); _fileTransfer = aFileTransfer->_this(); aFileTransfer->_remove_ref(); // Some signal handlers ActSigIntHandler(); } //============================================================================= /*! * Destructor */ //============================================================================= Engines_Parallel_Container_i::~Engines_Parallel_Container_i() { MESSAGE("Container_i::~Container_i()"); if (_id) delete _id; if(_NS) delete _NS; } //============================================================================= //! Get container name /*! * CORBA attribute: Container name (see constructor) */ //============================================================================= char* Engines_Parallel_Container_i::name() { return CORBA::string_dup(_containerName.c_str()) ; } //============================================================================= //! Get container working directory /*! * CORBA attribute: Container working directory */ //============================================================================= char* Engines_Parallel_Container_i::workingdir() { char wd[256]; getcwd (wd,256); return CORBA::string_dup(wd) ; } //============================================================================= //! Get container log file name /*! * CORBA attribute: Container log file name */ //============================================================================= char* Engines_Parallel_Container_i::logfilename() { return CORBA::string_dup(_logfilename.c_str()) ; } //! Set container log file name void Engines_Parallel_Container_i::logfilename(const char* name) { _logfilename=name; } //============================================================================= //! Get container host name /*! * CORBA method: Get the hostName of the Container (without domain extensions) */ //============================================================================= char* Engines_Parallel_Container_i::getHostName() { MESSAGE("Warning: getHostName of a parallel container returns the hostname of the first servant node"); return CORBA::string_dup(_hostname.c_str()) ; } //============================================================================= //! Get container PID /*! * CORBA method: Get the PID (process identification) of the Container */ //============================================================================= CORBA::Long Engines_Parallel_Container_i::getPID() { MESSAGE("Warning: getPID of a parallel container returns the PID of the first servant node"); return _pid; } //============================================================================= //! Ping the servant to check it is still alive /*! * CORBA method: check if servant is still alive */ //============================================================================= void Engines_Parallel_Container_i::ping() { MESSAGE("Engines_Parallel_Container_i::ping() my pid is "<< _pid); } //============================================================================= //! Shutdown the container /*! * CORBA method, oneway: Server shutdown. * - Container name removed from naming service, * - servant deactivation, * - orb shutdown if no other servants in the process */ //============================================================================= void Engines_Parallel_Container_i::Shutdown() { MESSAGE("Engines_Parallel_Container_i::Shutdown()"); /* For each seq component contained in this container * tell it to self-destroy */ std::map::iterator itm; for (itm = _listInstances_map.begin(); itm != _listInstances_map.end(); itm++) { try { itm->second->destroy(); } catch(const CORBA::Exception& e) { // ignore this entry and continue } catch(...) { // ignore this entry and continue } } // Destroy each parallel component node... std::map::iterator i; for (i = _par_obj_inst_map.begin(); i != _par_obj_inst_map.end(); i++) _poa->deactivate_object(*(i->second)); _NS->Destroy_FullDirectory(_containerName.c_str()); _NS->Destroy_Name(_containerName.c_str()); if(_isServantAloneInProcess) { MESSAGE("Effective Shutdown of container Begins..."); if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } } //============================================================================= //! load a new component class /*! * CORBA method: load a new component class (Python or C++ implementation) * \param componentName like COMPONENT * try to make a Python import of COMPONENT, * then a lib open of libCOMPONENTEngine.so * \return true if dlopen successfull or already done, false otherwise */ //============================================================================= bool Engines_Parallel_Container_i::load_component_Library(const char* componentName, CORBA::String_out reason) { reason=CORBA::string_dup(""); MESSAGE("Begin of load_component_Library : " << componentName) bool ret = false; std::string aCompName = componentName; #ifndef WIN32 std::string impl_name = string ("lib") + aCompName + string("Engine.so"); #else std::string impl_name = aCompName + string("Engine.dll"); #endif _numInstanceMutex.lock(); // lock to be alone // Check if already loaded or imported in the container if (_toRemove_map.count(impl_name) != 0) _toRemove_map.erase(impl_name); if (_library_map.count(impl_name) != 0) { MESSAGE("Library " << impl_name << " already loaded"); ret = true; } if (_library_map.count(aCompName) != 0) { MESSAGE("Python component already imported"); ret = true; } // --- try dlopen C++ component if (!ret) { MESSAGE("Try to load C++ component"); void* handle; #ifndef WIN32 handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ; #else handle = dlopen( impl_name.c_str() , 0 ) ; #endif if ( handle ) { _library_map[impl_name] = handle; MESSAGE("Library " << impl_name << " loaded"); ret = true; } else { std::cerr << "Can't load shared library : " << impl_name << std::endl; std::cerr << "error of dlopen: " << dlerror() << std::endl; } } // --- try import Python component if (!ret) { MESSAGE("Try to import Python component "<0) otherwise * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::create_component_instance(const char*genericRegisterName, CORBA::Long studyId) { Engines::FieldsDict_var env = new Engines::FieldsDict; char* reason; Engines::EngineComponent_ptr compo = create_component_instance_env(genericRegisterName,studyId,env, reason); CORBA::string_free(reason); return compo; } //============================================================================= //! Create a new component instance /*! * CORBA method: Creates a new servant instance of a component. * The servant registers itself to naming service and Registry. * \param genericRegisterName Name of the component instance to register * in Registry & Name Service (without _inst_n suffix) * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \param env dict of environment variables * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::create_component_instance_env(const char*genericRegisterName, CORBA::Long studyId, const Engines::FieldsDict& env, CORBA::String_out reason) { MESSAGE("Begin of create_component_instance in node : " << getMyRank()); reason=CORBA::string_dup(""); if (studyId < 0) { INFOS("studyId must be > 0 for mono study instance, =0 for multiStudy"); return Engines::EngineComponent::_nil() ; } std::string aCompName = genericRegisterName; #ifndef WIN32 std::string impl_name = string ("lib") + aCompName +string("Engine.so"); #else std::string impl_name = aCompName +string("Engine.dll"); #endif _numInstanceMutex.lock(); _numInstance++; // Test if the component lib is loaded std::string type_of_lib("Not Loaded"); void* handle = _library_map[impl_name]; if (handle) type_of_lib = "cpp"; if (_library_map.count(aCompName) != 0 and !handle) type_of_lib = "python"; if (type_of_lib == "Not Loaded") { std::cerr << "Component library is not loaded or imported ! lib was : " << aCompName << std::endl; _numInstanceMutex.unlock(); return Engines::EngineComponent::_nil(); } Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil(); if (type_of_lib == "cpp") iobject = createCPPInstance(aCompName, handle, studyId); else iobject = createPythonInstance(aCompName, studyId); _numInstanceMutex.unlock(); return iobject._retn(); } //============================================================================= //! Find an existing (in the container) component instance /*! * CORBA method: Finds a servant instance of a component * \param registeredName Name of the component in Registry or Name Service, * without instance suffix number * \param studyId 0 if instance is not associated to a study, * >0 otherwise (== study id) * \return the first instance found with same studyId */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::find_component_instance( const char* registeredName, CORBA::Long studyId) { Engines::EngineComponent_var anEngine = Engines::EngineComponent::_nil(); std::map::iterator itm =_listInstances_map.begin(); while (itm != _listInstances_map.end()) { std::string instance = (*itm).first; SCRUTE(instance); if (instance.find(registeredName) == 0) { anEngine = (*itm).second; if (studyId == anEngine->getStudyId()) { return anEngine._retn(); } } itm++; } return anEngine._retn(); } //============================================================================= //! Find or create a new component instance /*! * CORBA method: find or create an instance of the component (servant), * load a new component class (dynamic library) if required, * ---- FOR COMPATIBILITY WITH 2.2 ---- * ---- USE ONLY FOR MULTISTUDY INSTANCES ! -------- * The servant registers itself to naming service and Registry. * \param genericRegisterName Name of the component to register * in Registry & Name Service * \param componentName Name of the constructed library of the component * \return a loaded component */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::load_impl( const char* genericRegisterName, const char* componentName ) { Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil(); char* reason; if (load_component_Library(genericRegisterName,reason)) iobject = find_or_create_instance(genericRegisterName); CORBA::string_free(reason); return iobject._retn(); } //============================================================================= //! Remove the component instance from container /*! * CORBA method: Stops the component servant, and deletes all related objects * \param component_i Component to be removed */ //============================================================================= void Engines_Parallel_Container_i::remove_impl(Engines::EngineComponent_ptr component_i) { ASSERT(!CORBA::is_nil(component_i)); std::string instanceName = component_i->instanceName(); _numInstanceMutex.lock() ; // lock to be alone (stl container write) // Test if the component is in this container std::map::iterator itm; itm = _listInstances_map.find(instanceName); if (itm != _listInstances_map.end()) { MESSAGE("Unloading component " << instanceName); _listInstances_map.erase(instanceName); component_i->destroy() ; _NS->Destroy_Name(instanceName.c_str()); } else std::cerr << "WARNING !!!! component instance was not in this container !!!" << std::endl; _numInstanceMutex.unlock() ; } //============================================================================= //! Unload component libraries from the container /*! * CORBA method: Discharges unused libraries from the container. */ //============================================================================= void Engines_Parallel_Container_i::finalize_removal() { MESSAGE("Finalize removal : dlclose"); MESSAGE("WARNING FINALIZE DOES CURRENTLY NOTHING !!!"); // (see decInstanceCnt, load_component_Library) //std::map::iterator ith; //for (ith = _toRemove_map.begin(); ith != _toRemove_map.end(); ith++) //{ // void *handle = (*ith).second; // std::string impl_name= (*ith).first; // if (handle) // { // SCRUTE(handle); // SCRUTE(impl_name); // dlclose(handle); // SALOME unstable after ... // _library_map.erase(impl_name); // } //} _numInstanceMutex.lock(); // lock to be alone _toRemove_map.clear(); _numInstanceMutex.unlock(); } //============================================================================= //! Kill the container /*! * CORBA method: Kill the container process with exit(0). * To remove : never returns ! */ //============================================================================= bool Engines_Parallel_Container_i::Kill_impl() { MESSAGE("Engines_Parallel_Container_i::Kill() my pid is "<< _pid << " my containerName is " << _containerName.c_str() << " my machineName is " << _hostname.c_str()); INFOS("==============================================================="); INFOS("= REMOVE calls to Kill_impl in C++ container ="); INFOS("==============================================================="); //exit( 0 ) ; ASSERT(0); return false; } //============================================================================= //! Get or create a file reference object associated to a local file (to transfer it) /*! * CORBA method: get or create a fileRef object associated to a local file * (a file on the computer on which runs the container server), which stores * a list of (machine, localFileName) corresponding to copies already done. * * \param origFileName absolute path for a local file to copy on other * computers * \return a fileRef object associated to the file. */ //============================================================================= Engines::fileRef_ptr Engines_Parallel_Container_i::createFileRef(const char* origFileName) { std::string origName(origFileName); Engines::fileRef_var theFileRef = Engines::fileRef::_nil(); if (origName[0] != '/') { INFOS("path of file to copy must be an absolute path begining with '/'"); return Engines::fileRef::_nil(); } if (CORBA::is_nil(_fileRef_map[origName])) { CORBA::Object_var obj=_poa->id_to_reference(*_id); Engines::Container_var pCont = Engines::Container::_narrow(obj); fileRef_i* aFileRef = new fileRef_i(pCont, origFileName); theFileRef = Engines::fileRef::_narrow(aFileRef->_this()); _numInstanceMutex.lock() ; // lock to be alone (stl container write) _fileRef_map[origName] = theFileRef; _numInstanceMutex.unlock() ; } theFileRef = Engines::fileRef::_duplicate(_fileRef_map[origName]); ASSERT(! CORBA::is_nil(theFileRef)); return theFileRef._retn(); } //============================================================================= /*! * CORBA method: * \return a reference to the fileTransfer object */ //============================================================================= Engines::fileTransfer_ptr Engines_Parallel_Container_i::getFileTransfer() { Engines::fileTransfer_var aFileTransfer = Engines::fileTransfer::_duplicate(_fileTransfer); return aFileTransfer._retn(); } Engines::Salome_file_ptr Engines_Parallel_Container_i::createSalome_file(const char* origFileName) { string origName(origFileName); if (CORBA::is_nil(_Salome_file_map[origName])) { Salome_file_i* aSalome_file = new Salome_file_i(); try { aSalome_file->setLocalFile(origFileName); aSalome_file->recvFiles(); } catch (const SALOME::SALOME_Exception& e) { return Engines::Salome_file::_nil(); } Engines::Salome_file_var theSalome_file = Engines::Salome_file::_nil(); theSalome_file = Engines::Salome_file::_narrow(aSalome_file->_this()); _numInstanceMutex.lock() ; // lock to be alone (stl container write) _Salome_file_map[origName] = theSalome_file; _numInstanceMutex.unlock() ; } Engines::Salome_file_ptr theSalome_file = Engines::Salome_file::_duplicate(_Salome_file_map[origName]); ASSERT(!CORBA::is_nil(theSalome_file)); return theSalome_file; } //============================================================================= //! Finds an already existing component instance or create a new instance /*! * C++ method: Finds an already existing servant instance of a component, or * create an instance. * ---- USE ONLY FOR MULTISTUDY INSTANCES ! -------- * \param genericRegisterName Name of the component instance to register * in Registry & Name Service, * (without _inst_n suffix, like "COMPONENT") * \return a loaded component * * example with names: * aGenRegisterName = COMPONENT (= first argument) * impl_name = libCOMPONENTEngine.so (= second argument) * _containerName = /Containers/cli76ce/FactoryServer * factoryName = COMPONENTEngine_factory * component_registerBase = /Containers/cli76ce/FactoryServer/COMPONENT * * instanceName = COMPONENT_inst_1 * component_registerName = /Containers/cli76ce/FactoryServer/COMPONENT_inst_1 */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::find_or_create_instance(std::string genericRegisterName) { Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil(); try { std::string aGenRegisterName = genericRegisterName; // --- find a registered instance in naming service, or create std::string component_registerBase = _containerName + "/" + aGenRegisterName; CORBA::Object_var obj = _NS->ResolveFirst(component_registerBase.c_str()); if (CORBA::is_nil( obj )) { iobject = create_component_instance(genericRegisterName.c_str(), 0); // force multiStudy instance here ! } else { iobject = Engines::EngineComponent::_narrow(obj) ; Engines_Component_i *servant = dynamic_cast(_poa->reference_to_servant(iobject)); ASSERT(servant) int studyId = servant->getStudyId(); ASSERT (studyId >= 0); if (studyId != 0) // monoStudy instance: NOK { iobject = Engines::EngineComponent::_nil(); INFOS("load_impl & find_component_instance methods " << "NOT SUITABLE for mono study components"); } } } catch (...) { INFOS( "Container_i::load_impl catched" ) ; } return iobject._retn(); } //============================================================================= //! Create a new Python component instance /*! * C++ method: create a servant instance of a component. * \param genericRegisterName Name of the component instance to register * in Registry & Name Service, * (without _inst_n suffix, like "COMPONENT") * \param handle loaded library handle * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \return a loaded component * * example with names: * aGenRegisterName = COMPONENT (= first argument) * _containerName = /Containers/cli76ce/FactoryServer * factoryName = COMPONENTEngine_factory * component_registerBase = /Containers/cli76ce/FactoryServer/COMPONENT * instanceName = COMPONENT_inst_1 * component_registerName = /Containers/cli76ce/FactoryServer/COMPONENT_inst_1 */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::createPythonInstance(std::string genericRegisterName, int studyId) { Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil(); int numInstance = _numInstance; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; std::string instanceName = genericRegisterName + "_inst_" + aNumI ; std::string component_registerName = _containerName + "/" + instanceName; Py_ACQUIRE_NEW_THREAD; PyObject *mainmod = PyImport_AddModule("__main__"); PyObject *globals = PyModule_GetDict(mainmod); PyObject *pyCont = PyDict_GetItemString(globals, "pyCont"); PyObject *result = PyObject_CallMethod(pyCont, (char*)"create_component_instance", (char*)"ssl", genericRegisterName.c_str(), instanceName.c_str(), studyId); const char *ior; const char *error; PyArg_ParseTuple(result,"ss", &ior, &error); string iors = ior; Py_DECREF(result); Py_RELEASE_NEW_THREAD; if( iors!="" ) { CORBA::Object_var obj = _orb->string_to_object(iors.c_str()); iobject = Engines::EngineComponent::_narrow(obj); _listInstances_map[instanceName] = iobject; } else std::cerr << "createPythonInstance ior is empty ! Error in creation" << std::endl; return iobject._retn(); } //============================================================================= //! Create a new CPP component instance /*! * C++ method: create a servant instance of a component. * \param genericRegisterName Name of the component instance to register * in Registry & Name Service, * (without _inst_n suffix, like "COMPONENT") * \param handle loaded library handle * \param studyId 0 for multiStudy instance, * study Id (>0) otherwise * \return a loaded component * * example with names: * aGenRegisterName = COMPONENT (= first argument) * _containerName = /Containers/cli76ce/FactoryServer * factoryName = COMPONENTEngine_factory * component_registerBase = /Containers/cli76ce/FactoryServer/COMPONENT * instanceName = COMPONENT_inst_1 * component_registerName = /Containers/cli76ce/FactoryServer/COMPONENT_inst_1 */ //============================================================================= Engines::EngineComponent_ptr Engines_Parallel_Container_i::createCPPInstance(std::string genericRegisterName, void *handle, int studyId) { MESSAGE("Entering Engines_Parallel_Container_i::createCPPInstance"); // --- find the factory std::string aGenRegisterName = genericRegisterName; std::string factory_name = aGenRegisterName + string("Engine_factory"); typedef PortableServer::ObjectId * (*FACTORY_FUNCTION_2) (CORBA::ORB_ptr, PortableServer::POA_ptr, PortableServer::ObjectId *, const char *, const char *) ; FACTORY_FUNCTION_2 Component_factory = NULL; #ifndef WIN32 Component_factory = (FACTORY_FUNCTION_2)dlsym( handle, factory_name.c_str() ); #else Component_factory = (FACTORY_FUNCTION_2)GetProcAddress( (HINSTANCE)handle, factory_name.c_str() ); #endif if (!Component_factory) { INFOS("Can't resolve symbol: " + factory_name); #ifndef WIN32 INFOS("dlerror() result is : " << dlerror()); #endif return Engines::EngineComponent::_nil() ; } // --- create instance Engines::EngineComponent_var iobject = Engines::EngineComponent::_nil() ; try { int numInstance = _numInstance; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ); std::string instanceName = aGenRegisterName + "_inst_" + aNumI; std::string component_registerName = _containerName + "/" + instanceName; // --- Instanciate required CORBA object PortableServer::ObjectId *id; //not owner, do not delete (nore use var) id = (Component_factory) ( _orb, _poa, _id, instanceName.c_str(), aGenRegisterName.c_str() ); if (id == NULL) { INFOS("Factory function returns NULL !"); return iobject._retn(); } // --- get reference & servant from id CORBA::Object_var obj = _poa->id_to_reference(*id); iobject = Engines::EngineComponent::_narrow(obj); Engines_Component_i *servant = dynamic_cast(_poa->reference_to_servant(iobject)); ASSERT(servant); servant->_remove_ref(); // compensate previous id_to_reference _listInstances_map[instanceName] = iobject; _cntInstances_map[aGenRegisterName] += 1; #if defined(_DEBUG_) || defined(_DEBUG) bool ret_studyId = servant->setStudyId(studyId); ASSERT(ret_studyId); #else servant->setStudyId(studyId); #endif // --- register the engine under the name // containerName(.dir)/instanceName(.object) _NS->Register(iobject , component_registerName.c_str()); MESSAGE( component_registerName.c_str() << " bound" ); } catch (...) { INFOS( "Container_i::createInstance exception catched" ); } return iobject._retn(); } void Engines_Parallel_Container_i::create_paco_component_node_instance(const char* componentName, const char* proxy_containerName, CORBA::Long studyId) { // Init de la méthode char * proxy_ior; Engines::EngineComponent_PaCO_var work_node; std::string aCompName = componentName; std::string _proxy_containerName = proxy_containerName; #ifndef WIN32 string impl_name = string ("lib") + aCompName +string("Engine.so"); #else string impl_name = aCompName +string("Engine.dll"); #endif void* handle = _library_map[impl_name]; _numInstanceMutex.lock() ; // lock on the instance number _numInstance++ ; int numInstance = _numInstance ; _numInstanceMutex.unlock() ; char aNumI[12]; sprintf( aNumI , "%d" , numInstance ) ; string instanceName = aCompName + "_inst_" + aNumI ; // Step 1 : Get proxy ! string component_registerName = _proxy_containerName + "/" + instanceName; CORBA::Object_var temp = _NS->Resolve(component_registerName.c_str()); Engines::EngineComponent_var obj_proxy = Engines::EngineComponent::_narrow(temp); if (CORBA::is_nil(obj_proxy)) { INFOS("Proxy reference from NamingService is nil !"); INFOS("Proxy name was : " << component_registerName); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "Proxy reference from NamingService is nil !"; throw SALOME::SALOME_Exception(es); } proxy_ior = _orb->object_to_string(obj_proxy); // Get factory string factory_name = aCompName + string("Engine_factory"); FACTORY_FUNCTION Component_factory = (FACTORY_FUNCTION) dlsym(handle, factory_name.c_str()); if (!Component_factory) { INFOS("Can't resolve symbol : " + factory_name); #ifndef WIN32 INFOS("dlerror() result is : " << dlerror()); #endif std::string ex_text = "Can't resolve symbol : " + factory_name; SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = CORBA::string_dup(ex_text.c_str()); throw SALOME::SALOME_Exception(es); } try { char aNumI2[12]; sprintf(aNumI2 , "%d" , getMyRank()) ; std::string instanceName = aCompName + "_inst_" + aNumI + "_work_node_" + aNumI2; std::string component_registerName = _containerName + "/" + instanceName; // --- Instanciate work node PortableServer::ObjectId *id ; //not owner, do not delete (nore use var) id = (Component_factory) (_orb, proxy_ior, getMyRank(), _poa, _id, instanceName.c_str(), componentName); CORBA::string_free(proxy_ior); // --- get reference & servant from id CORBA::Object_var obj = _poa->id_to_reference(*id); work_node = Engines::EngineComponent_PaCO::_narrow(obj) ; if (CORBA::is_nil(work_node)) { INFOS("work_node reference from factory is nil !"); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "work_node reference from factory is nil !"; throw SALOME::SALOME_Exception(es); } work_node->deploy(); _NS->Register(work_node, component_registerName.c_str()); _par_obj_inst_map[instanceName] = id; MESSAGE(component_registerName.c_str() << " bound" ); } catch (...) { INFOS("Container_i::create_paco_component_node_instance exception catched"); SALOME::ExceptionStruct es; es.type = SALOME::INTERNAL_ERROR; es.text = "Container_i::create_paco_component_node_instance exception catched"; throw SALOME::SALOME_Exception(es); } } //============================================================================= //! Decrement component instance reference count /*! * */ //============================================================================= void Engines_Parallel_Container_i::decInstanceCnt(std::string genericRegisterName) { if(_cntInstances_map.count(genericRegisterName) !=0 ) { std::string aGenRegisterName =genericRegisterName; MESSAGE("Engines_Parallel_Container_i::decInstanceCnt " << aGenRegisterName); ASSERT(_cntInstances_map[aGenRegisterName] > 0); _numInstanceMutex.lock(); // lock to be alone // (see finalize_removal, load_component_Library) _cntInstances_map[aGenRegisterName] -= 1; SCRUTE(_cntInstances_map[aGenRegisterName]); if (_cntInstances_map[aGenRegisterName] == 0) { std::string impl_name = Engines_Component_i::GetDynLibraryName(aGenRegisterName.c_str()); SCRUTE(impl_name); void* handle = _library_map[impl_name]; ASSERT(handle); _toRemove_map[impl_name] = handle; } _numInstanceMutex.unlock(); } } //============================================================================= //! Indicate if container is a python one /*! * Retrieves only with container naming convention if it is a python container */ //============================================================================= bool Engines_Parallel_Container_i::isPythonContainer(const char* ContainerName) { bool ret=false; return ret; } // Cette méthode permet de tenir à jour le compteur des // instances pour le container parallèle. // En effet losrque l'on charge un composant séquentielle seul // le compteur du noeud 0 est augmenté, il faut donc tenir les autres // noeuds à jour. void Engines_Parallel_Container_i::updateInstanceNumber() { if (getMyRank() != 0) { _numInstanceMutex.lock(); _numInstance++; _numInstanceMutex.unlock(); } } /*! \brief copy a file from a remote host (container) to the local host * \param container the remote container * \param remoteFile the file to copy locally from the remote host into localFile * \param localFile the local file */ void Engines_Parallel_Container_i::copyFile(Engines::Container_ptr container, const char* remoteFile, const char* localFile) { Engines::fileTransfer_var fileTransfer = container->getFileTransfer(); FILE* fp; if ((fp = fopen(localFile,"wb")) == NULL) { INFOS("file " << localFile << " cannot be open for writing"); return; } CORBA::Long fileId = fileTransfer->open(remoteFile); if (fileId > 0) { Engines::fileBlock* aBlock; int toFollow = 1; int ctr=0; while (toFollow) { ctr++; SCRUTE(ctr); aBlock = fileTransfer->getBlock(fileId); toFollow = aBlock->length(); SCRUTE(toFollow); CORBA::Octet *buf = aBlock->get_buffer(); fwrite(buf, sizeof(CORBA::Octet), toFollow, fp); delete aBlock; } fclose(fp); MESSAGE("end of transfer"); fileTransfer->close(fileId); } else { INFOS("open reference file for copy impossible"); } } /*! \brief create a PyNode object to execute remote python code * \param nodeName the name of the node * \param code the python code to load * \return the PyNode */ Engines::PyNode_ptr Engines_Parallel_Container_i::createPyNode(const char* nodeName, const char* code) { INFOS("Python component not yet implemented"); Engines::PyNode_var node= Engines::PyNode::_nil(); return node._retn(); } Engines::PyScriptNode_ptr Engines_Parallel_Container_i::createPyScriptNode(const char* nodeName, const char* cod) { INFOS("Python script node not yet implemented"); Engines::PyScriptNode_var node= Engines::PyScriptNode::_nil(); return node._retn(); } //============================================================================= /*! * */ //============================================================================= void ActSigIntHandler() { #ifndef WIN32 struct sigaction SigIntAct ; SigIntAct.sa_sigaction = &SigIntHandler ; SigIntAct.sa_flags = SA_SIGINFO ; #endif // DEBUG 03.02.2005 : the first parameter of sigaction is not a mask of signals // (SIGINT | SIGUSR1) : // it must be only one signal ===> one call for SIGINT // and an other one for SIGUSR1 #ifndef WIN32 if ( sigaction( SIGINT , &SigIntAct, NULL ) ) { perror("SALOME_Container main ") ; exit(0) ; } if ( sigaction( SIGUSR1 , &SigIntAct, NULL ) ) { perror("SALOME_Container main ") ; exit(0) ; } if ( sigaction( SIGUSR2 , &SigIntAct, NULL ) ) { perror("SALOME_Container main ") ; exit(0) ; } //PAL9042 JR : during the execution of a Signal Handler (and of methods called through Signal Handlers) // use of streams (and so on) should never be used because : // streams of C++ are naturally thread-safe and use pthread_mutex_lock ===> // A stream operation may be interrupted by a signal and if the Handler use stream we // may have a "Dead-Lock" ===HangUp //==INFOS is commented // INFOS(pthread_self() << "SigIntHandler activated") ; #else signal( SIGINT, SigIntHandler ); signal( SIGUSR1, SigIntHandler ); #endif } void SetCpuUsed(); void CallCancelThread(); #ifndef WIN32 void SigIntHandler(int what , siginfo_t * siginfo , void * toto ) { //PAL9042 JR : during the execution of a Signal Handler (and of methods called through Signal Handlers) // use of streams (and so on) should never be used because : // streams of C++ are naturally thread-safe and use pthread_mutex_lock ===> // A stream operation may be interrupted by a signal and if the Handler use stream we // may have a "Dead-Lock" ===HangUp //==MESSAGE is commented // MESSAGE(pthread_self() << "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 ; // MESSAGE("SigIntHandler END sleeping.") ; return ; } else { ActSigIntHandler() ; if ( siginfo->si_signo == SIGUSR1 ) { SetCpuUsed() ; } else if ( siginfo->si_signo == SIGUSR2 ) { CallCancelThread() ; } else { _Sleeping = true ; // MESSAGE("SigIntHandler BEGIN sleeping.") ; int count = 0 ; while( _Sleeping ) { sleep( 1 ) ; count += 1 ; } // MESSAGE("SigIntHandler LEAVE sleeping after " << count << " s.") ; } return ; } } #else // Case WIN32 void SigIntHandler( int what ) { MESSAGE( pthread_self() << "SigIntHandler what " << what << endl ); if ( _Sleeping ) { _Sleeping = false ; MESSAGE("SigIntHandler END sleeping.") ; return ; } else { ActSigIntHandler() ; if ( what == SIGUSR1 ) { SetCpuUsed() ; } else { _Sleeping = true ; MESSAGE("SigIntHandler BEGIN sleeping.") ; int count = 0 ; while( _Sleeping ) { Sleep( 1000 ) ; count += 1 ; } MESSAGE("SigIntHandler LEAVE sleeping after " << count << " s.") ; } return ; } } #endif salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelContainer_i.hxx000077500000000000000000000140121177004724000261510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_ParallelContainer_i.hxx // Author : André RIBES, EDF #ifndef _SALOME_PARALLEL_CONTAINER_I_HXX_ #define _SALOME_PARALLEL_CONTAINER_I_HXX_ #include #include "SALOME_PACOExtensionPaCO_Engines_PACO_Container_server.hxx" #include "SALOME_ParallelGlobalProcessVar_i.hxx" #include #include #include #ifndef WIN32 #include #endif #include #include #include #include class SALOME_NamingService; #ifdef WIN32 # if defined CONTAINER_EXPORTS || defined SalomeParallelContainer_EXPORTS # define CONTAINER_EXPORT __declspec( dllexport ) # else # define CONTAINER_EXPORT __declspec( dllimport ) # endif #else # define CONTAINER_EXPORT #endif class CONTAINER_EXPORT Engines_Parallel_Container_i: virtual public Engines::PACO_Container_serv, virtual public ParallelGlobalProcessVar_i, virtual public PortableServer::RefCountServantBase { public: Engines_Parallel_Container_i(CORBA::ORB_ptr orb, char * ior, int rank, PortableServer::POA_ptr poa, std::string containerName , bool isServantAloneInProcess = true); virtual ~Engines_Parallel_Container_i(); // --- CORBA methods virtual bool load_component_Library(const char* componentName, CORBA::String_out reason); virtual Engines::EngineComponent_ptr create_component_instance( const char* componentName, CORBA::Long studyId); // 0 for multiStudy virtual Engines::EngineComponent_ptr create_component_instance_env( const char* componentName, CORBA::Long studyId, // 0 for multiStudy const Engines::FieldsDict& env, CORBA::String_out reason); Engines::EngineComponent_ptr find_component_instance( const char* registeredName, CORBA::Long studyId); // 0 for multiStudy Engines::EngineComponent_ptr load_impl(const char* nameToRegister, const char* componentName); void create_paco_component_node_instance(const char* componentName, const char* proxy_containerName, CORBA::Long studyId); // 0 for multiStudy void updateInstanceNumber(); void remove_impl(Engines::EngineComponent_ptr component_i); void finalize_removal(); virtual void ping(); char* name(); char* workingdir(); char* logfilename(); void logfilename(const char* name); virtual void Shutdown(); char* getHostName(); CORBA::Long getPID(); //! Kill current container bool Kill_impl() ; // --- local C++ methods Engines::EngineComponent_ptr find_or_create_instance(std::string genericRegisterName); Engines::EngineComponent_ptr createCPPInstance(std::string genericRegisterName, void *handle, int studyId); Engines::EngineComponent_ptr createPythonInstance(std::string genericRegisterName, int studyId); static bool isPythonContainer(const char* ContainerName); static void decInstanceCnt(std::string genericRegisterName); // --- needed for parallel components, Numerical Platon void set_id(PortableServer::ObjectId * id) { _id = id;} Engines::fileRef_ptr createFileRef(const char* origFileName); Engines::fileTransfer_ptr getFileTransfer(); virtual Engines::Salome_file_ptr createSalome_file(const char* origFileName); void copyFile(Engines::Container_ptr container, const char* remoteFile, const char* localFile); Engines::PyNode_ptr createPyNode(const char* nodeName, const char* code); Engines::PyScriptNode_ptr createPyScriptNode(const char* nodeName, const char* code); protected: SALOME_NamingService *_NS; std::string _hostname; std::string _library_path; std::string _containerName; std::string _logfilename; CORBA::ORB_var _orb; PortableServer::POA_var _poa; PortableServer::ObjectId * _id; int _numInstance; CORBA::Long _pid; bool _isServantAloneInProcess; Engines::fileTransfer_var _fileTransfer; typedef std::map _listInstances_map_t; typedef std::map _fileRef_map_t; typedef std::map _Salome_file_map_t; _listInstances_map_t _listInstances_map; _fileRef_map_t _fileRef_map; _Salome_file_map_t _Salome_file_map; // Cette map contient les references vers les différentes // instances d'objets parallèles. std::map _par_obj_inst_map; typedef PortableServer::ObjectId * (*FACTORY_FUNCTION) (CORBA::ORB_ptr, char *, int, PortableServer::POA_ptr, PortableServer::ObjectId *, const char *, const char *); }; #endif salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelGlobalProcessVar_i.cxx000077500000000000000000000032521177004724000274360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME_ParallelContainer : implementation of container and engine for ParallelKernel // File : SALOME_ParallelContainer_i.cxx // Author : André RIBES, EDF // #include "SALOME_ParallelGlobalProcessVar_i.hxx" // Ces variables globales de classes permettent de ne charger // qu'une seule fois une bibliothèque dynamique. std::map ParallelGlobalProcessVar_i::_cntInstances_map; std::map ParallelGlobalProcessVar_i::_library_map; std::map ParallelGlobalProcessVar_i::_toRemove_map; omni_mutex ParallelGlobalProcessVar_i::_numInstanceMutex ; ParallelGlobalProcessVar_i::ParallelGlobalProcessVar_i() {} ParallelGlobalProcessVar_i::~ParallelGlobalProcessVar_i() {} salome-kernel-6.5.0/src/ParallelContainer/SALOME_ParallelGlobalProcessVar_i.hxx000077500000000000000000000037241177004724000274470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME_ParallelContainer : implementation of container and engine for Parallel Kernel // File : SALOME_ParallelContainer_i.hxx // Author : André RIBES, EDF // #ifndef _SALOME_PARALLEL_GLOBALPROCESSVAR_I_HXX_ #define _SALOME_PARALLEL_GLOBALPROCESSVAR_I_HXX_ #ifdef WIN32 # ifdef CONTAINER_EXPORTS # define CONTAINER_EXPORT __declspec( dllexport ) # else # define CONTAINER_EXPORT __declspec( dllimport ) # endif #else # define CONTAINER_EXPORT #endif #include #include #include #include class CONTAINER_EXPORT ParallelGlobalProcessVar_i { public: ParallelGlobalProcessVar_i(); virtual ~ParallelGlobalProcessVar_i(); protected: // Voir commentaire dans le fichier .cxx static std::map _cntInstances_map; static std::map _library_map; // library names, loaded static std::map _toRemove_map;// library names to remove static omni_mutex _numInstanceMutex ; // lib and instance protection }; #endif salome-kernel-6.5.0/src/Registry/000077500000000000000000000000001177004724000166615ustar00rootroot00000000000000salome-kernel-6.5.0/src/Registry/Makefile.am000077500000000000000000000047451177004724000207320ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Registry : Registry server implementation # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/Makefile.am,v 1.5.2.1.14.3.12.1 2012-04-12 14:05:19 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # header files salomeinclude_HEADERS =\ RegistryConnexion.hxx \ RegistryService.hxx \ SALOME_Registry.hxx # Libraries targets lib_LTLIBRARIES = libRegistry.la libRegistry_la_SOURCES =\ RegistryConnexion.cxx \ RegistryService.cxx libRegistry_la_LDFLAGS = -no-undefined -version-info=0:0:0 libRegistry_la_CPPFLAGS =\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libRegistry_la_LIBADD =\ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # Executables targets bin_PROGRAMS = SALOME_Registry_Server SALOME_Registry_Server_SOURCES = SALOME_Registry_Server.cxx SALOME_Registry_Server_LDADD =\ $(top_builddir)/idl/libSalomeIDLKernel.la \ libRegistry.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ @CORBA_LIBS@ SALOME_Registry_Server_CPPFLAGS =\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ salome-kernel-6.5.0/src/Registry/Makefile.in000077500000000000000000001102051177004724000207300ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOME_Registry_Server$(EXEEXT) subdir = src/Registry ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libRegistry_la_DEPENDENCIES = ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la am_libRegistry_la_OBJECTS = libRegistry_la-RegistryConnexion.lo \ libRegistry_la-RegistryService.lo libRegistry_la_OBJECTS = $(am_libRegistry_la_OBJECTS) libRegistry_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libRegistry_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_SALOME_Registry_Server_OBJECTS = \ SALOME_Registry_Server-SALOME_Registry_Server.$(OBJEXT) SALOME_Registry_Server_OBJECTS = $(am_SALOME_Registry_Server_OBJECTS) SALOME_Registry_Server_DEPENDENCIES = \ $(top_builddir)/idl/libSalomeIDLKernel.la libRegistry.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libRegistry_la_SOURCES) $(SALOME_Registry_Server_SOURCES) DIST_SOURCES = $(libRegistry_la_SOURCES) \ $(SALOME_Registry_Server_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME Registry : Registry server implementation # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/Makefile.am,v 1.5.2.1.14.3.12.1 2012-04-12 14:05:19 vsr Exp $ # # header files salomeinclude_HEADERS = \ RegistryConnexion.hxx \ RegistryService.hxx \ SALOME_Registry.hxx # Libraries targets lib_LTLIBRARIES = libRegistry.la libRegistry_la_SOURCES = \ RegistryConnexion.cxx \ RegistryService.cxx libRegistry_la_LDFLAGS = -no-undefined -version-info=0:0:0 libRegistry_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libRegistry_la_LIBADD = \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la SALOME_Registry_Server_SOURCES = SALOME_Registry_Server.cxx SALOME_Registry_Server_LDADD = \ $(top_builddir)/idl/libSalomeIDLKernel.la \ libRegistry.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ @CORBA_LIBS@ SALOME_Registry_Server_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Registry/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Registry/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libRegistry.la: $(libRegistry_la_OBJECTS) $(libRegistry_la_DEPENDENCIES) $(libRegistry_la_LINK) -rpath $(libdir) $(libRegistry_la_OBJECTS) $(libRegistry_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOME_Registry_Server$(EXEEXT): $(SALOME_Registry_Server_OBJECTS) $(SALOME_Registry_Server_DEPENDENCIES) @rm -f SALOME_Registry_Server$(EXEEXT) $(CXXLINK) $(SALOME_Registry_Server_OBJECTS) $(SALOME_Registry_Server_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libRegistry_la-RegistryConnexion.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libRegistry_la-RegistryService.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libRegistry_la-RegistryConnexion.lo: RegistryConnexion.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libRegistry_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libRegistry_la-RegistryConnexion.lo -MD -MP -MF $(DEPDIR)/libRegistry_la-RegistryConnexion.Tpo -c -o libRegistry_la-RegistryConnexion.lo `test -f 'RegistryConnexion.cxx' || echo '$(srcdir)/'`RegistryConnexion.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libRegistry_la-RegistryConnexion.Tpo $(DEPDIR)/libRegistry_la-RegistryConnexion.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RegistryConnexion.cxx' object='libRegistry_la-RegistryConnexion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libRegistry_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libRegistry_la-RegistryConnexion.lo `test -f 'RegistryConnexion.cxx' || echo '$(srcdir)/'`RegistryConnexion.cxx libRegistry_la-RegistryService.lo: RegistryService.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libRegistry_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libRegistry_la-RegistryService.lo -MD -MP -MF $(DEPDIR)/libRegistry_la-RegistryService.Tpo -c -o libRegistry_la-RegistryService.lo `test -f 'RegistryService.cxx' || echo '$(srcdir)/'`RegistryService.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libRegistry_la-RegistryService.Tpo $(DEPDIR)/libRegistry_la-RegistryService.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RegistryService.cxx' object='libRegistry_la-RegistryService.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libRegistry_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libRegistry_la-RegistryService.lo `test -f 'RegistryService.cxx' || echo '$(srcdir)/'`RegistryService.cxx SALOME_Registry_Server-SALOME_Registry_Server.o: SALOME_Registry_Server.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Registry_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Registry_Server-SALOME_Registry_Server.o -MD -MP -MF $(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Tpo -c -o SALOME_Registry_Server-SALOME_Registry_Server.o `test -f 'SALOME_Registry_Server.cxx' || echo '$(srcdir)/'`SALOME_Registry_Server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Tpo $(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Registry_Server.cxx' object='SALOME_Registry_Server-SALOME_Registry_Server.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Registry_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Registry_Server-SALOME_Registry_Server.o `test -f 'SALOME_Registry_Server.cxx' || echo '$(srcdir)/'`SALOME_Registry_Server.cxx SALOME_Registry_Server-SALOME_Registry_Server.obj: SALOME_Registry_Server.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Registry_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOME_Registry_Server-SALOME_Registry_Server.obj -MD -MP -MF $(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Tpo -c -o SALOME_Registry_Server-SALOME_Registry_Server.obj `if test -f 'SALOME_Registry_Server.cxx'; then $(CYGPATH_W) 'SALOME_Registry_Server.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Registry_Server.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Tpo $(DEPDIR)/SALOME_Registry_Server-SALOME_Registry_Server.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_Registry_Server.cxx' object='SALOME_Registry_Server-SALOME_Registry_Server.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOME_Registry_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOME_Registry_Server-SALOME_Registry_Server.obj `if test -f 'SALOME_Registry_Server.cxx'; then $(CYGPATH_W) 'SALOME_Registry_Server.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOME_Registry_Server.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Registry/RegistryConnexion.cxx000077500000000000000000000123371177004724000231070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Registry : Registry server implementation // File : RegistryConnexion.cxx // Author : Pascale NOYRET - Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/RegistryConnexion.cxx,v 1.8.2.1.14.2.12.1 2012-04-12 14:05:19 vsr Exp $ // # include "Utils_ORB_INIT.hxx" # include "RegistryConnexion.hxx" # include "SALOME_NamingService.hxx" # include "Utils_Identity.hxx" # include "Utils_SINGLETON.hxx" # include "Utils_CommException.hxx" # include "OpUtil.hxx" # include "utilities.h" extern "C" { # include } Registry::Components_var Connexion( int argc , char **argv , const char *ptrSessionName ) throw( CommException ) { Registry::Components_var varComponents = 0 ; ASSERT(ptrSessionName) ; ASSERT(strlen(ptrSessionName)>0) ; const char *registryName = "Registry" ; try { ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()) ; CORBA::ORB_var &orb = init( argc , argv ) ; SALOME_NamingService &naming = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()) ; naming.init_orb( orb ) ; // Recuperation de la reference de l'objet CORBA::Object_var object = naming.Resolve( registryName ) ; if(CORBA::is_nil(object)) throw CommException( "unable to find the RegistryService" ) ; // Specialisation de l'objet generique varComponents = Registry::Components::_narrow( object ) ; ASSERT(! CORBA::is_nil(varComponents)) ; } catch( ... ) { throw CommException ( "NamingService Connexion Error" ) ; } return varComponents ; } RegistryConnexion::RegistryConnexion( int argc , char **argv , const char *ior , const char *ptrSessionName, const char *componentName ): \ _Ior(duplicate(ior)), _VarComponents( Connexion(argc,argv,ptrSessionName) ), _SessionName(ptrSessionName),_Name(""), _Id(0) { this->add( componentName ) ; } RegistryConnexion::RegistryConnexion( void ): _Ior(0), _VarComponents( 0 ), _Name(""), _Id(0) { INTERRUPTION(EXIT_FAILURE) ; } RegistryConnexion::~RegistryConnexion() { BEGIN_OF("RegistryConnexion::~RegistryConnexion()" ) ; if( _Id != 0 ) { ASSERT(_SessionName!="" ) ; ASSERT(_Name!="" ) ; _VarComponents->remove( _Id ) ; } _Id = 0 ; delete [] (char*) _Ior; _Ior = 0; _SessionName = ""; _Name = "" ; END_OF("RegistryConnexion::~RegistryConnexion()" ) ; } void RegistryConnexion::add( const char *aName ) { ASSERT(_SessionName!="" ) ; ASSERT(_Name=="" ) ; ASSERT(_Id==0 ) ; ASSERT(aName) ; SCRUTE(aName) ; ASSERT(strlen( aName )>0) ; const Identity lesInfos( aName ) ; Registry::Infos infos ; infos.name = CORBA::string_dup( lesInfos.name() ) ; infos.pid = lesInfos.pid() ; infos.machine = CORBA::string_dup( lesInfos.host_char() ) ; infos.adip = CORBA::string_dup( lesInfos.adip() ) ; infos.uid = (long)lesInfos.uid() ; infos.pwname = CORBA::string_dup( lesInfos.pwname() ) ; infos.tc_start = lesInfos.start() ; infos.tc_hello = 0 ; infos.tc_end = 0 ; infos.difftime = 0 ; infos.cdir = CORBA::string_dup( lesInfos.rep() ) ; infos.status = -1 ; infos.ior = CORBA::string_dup(_Ior); ASSERT(!CORBA::is_nil(this->_VarComponents)) ; CORBA::ULong id = _VarComponents->add( infos ) ; SCRUTE(aName) ; SCRUTE(id) ; ASSERT(id) ; _Id = id ; _Name = aName ; return ; } void RegistryConnexion::remove( void ) { ASSERT(_Id>0) ; ASSERT(!CORBA::is_nil(this->_VarComponents)) ; _VarComponents->remove( _Id ) ; _Name = "" ; _Id = 0 ; return ; } salome-kernel-6.5.0/src/Registry/RegistryConnexion.hxx000077500000000000000000000044541177004724000231150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Registry : Registry server implementation // File : RegistryConnexion.hxx // Author : Pascale NOYRET - Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/RegistryConnexion.hxx,v 1.8.2.1.10.2.12.1 2012-04-12 14:05:19 vsr Exp $ // /* RegistryConnexion should be used by an engine to add or to remove a component. */ # if !defined( __RegistryConnexion_HXX__ ) # define __RegistryConnexion_HXX__ #include "SALOME_Registry.hxx" #include #include CORBA_CLIENT_HEADER(SALOME_Registry) #include class REGISTRY_EXPORT RegistryConnexion { protected : const char* _Ior ; // engine ior Registry::Components_var _VarComponents ; // RegistryService reference std::string _SessionName ; std::string _Name ; // code name int _Id ; // code identity returned by RegistryService void add( const char *aName ); void remove( void ); RegistryConnexion( void ); public : RegistryConnexion( int argc , char **argv , const char *ior , const char *ptrSessionName, const char *componentName ); ~RegistryConnexion(); } ; # endif /* # if !defined( __RegistryConnexion_H__ ) */ salome-kernel-6.5.0/src/Registry/RegistryService.cxx000077500000000000000000000201461177004724000225440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Registry : Registry server implementation // File : RegistryService.cxx // Author : Pascale NOYRET - Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/RegistryService.cxx,v 1.9.2.1.14.2.12.1 2012-04-12 14:05:19 vsr Exp $ // # include "RegistryService.hxx" # include "OpUtil.hxx" # include "utilities.h" extern "C" { # include } #ifndef WIN32 #include #else #include #define getpid _getpid #endif /* ------------------------------*/ /* Constructors and Destructors */ /* ------------------------------*/ RegistryService::RegistryService( void ) : _SessionName(0), _Compteur(0) { MESSAGE("RegistryService::RegistryService()") ; _orb = CORBA::ORB::_nil(); } RegistryService::~RegistryService() { BEGIN_OF("RegistryService::~RegistryService()") ; std::map::iterator im; for (im=_reg.begin();im!=_reg.end(); im++) { MESSAGE("Delete _reg item " << im->second->_name) ; delete im->second; } for (im=_fin.begin();im!=_fin.end(); im++) { MESSAGE("Delete _fin item " << im->second->_name) ; delete im->second; } _Compteur = -1 ; if ( _SessionName ) { delete [] (char*)_SessionName ; _SessionName = 0 ; } END_OF("RegistryService::~RegistryService()") ; } /* ------------------------------*/ /* IDL contracts */ /* ------------------------------*/ CORBA::ULong RegistryService::size ( void ) { ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; return _reg.size() ; } CORBA::ULong RegistryService::add( const Registry::Infos & infos ) { BEGIN_OF("RegistryService::add") ; ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; client_infos *ptr_Component = new client_infos( infos ) ; ASSERT(ptr_Component) ; SCRUTE(ptr_Component->_name) ; _Compteur++; _reg[_Compteur]=ptr_Component; END_OF("RegistryService::add") ; return (CORBA::ULong)_Compteur ; } void RegistryService::remove( CORBA::ULong id) { BEGIN_OF("RegistryService::remove") ; SCRUTE(id) ; ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; ASSERT(_reg.find(id)!=_reg.end()) _reg[id]->_status=TERMINATED; _reg[id]->_ts_end = time(NULL) ; _fin[id]=_reg[id]; _reg.erase(id); SCRUTE(_reg.size()) ; SCRUTE(_fin.size()) ; END_OF("RegistryService::remove") ; return ; } void RegistryService::hello( CORBA::ULong id ) { BEGIN_OF("RegistryService::hello") ; SCRUTE(id) ; ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; ASSERT(_reg.find(id)!=_reg.end()) _reg[id]->_ts_hello = time(NULL) ; END_OF("RegistryService::hello") ; return ; } void RegistryService::end( void ) { ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; BEGIN_OF( "RegistryService::end( void )" ) ; exit( EXIT_SUCCESS ) ; } Registry::AllInfos* RegistryService::getall( void ) { ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; return RegistryService::makeseq(_reg) ; } Registry::AllInfos* RegistryService::history( void ) { ASSERT(_SessionName) ; ASSERT(strlen(_SessionName)>0) ; return RegistryService::makeseq(_fin) ; } Registry::AllInfos* RegistryService::makeseq(std::map &mymap ) { int i=0 ; Registry::AllInfos *all = new Registry::AllInfos ; ASSERT(all) ; const int RegLength = mymap.size(); all->length(RegLength); std::map::iterator im; for (im=mymap.begin();im!=mymap.end(); im++) { Registry::Infos &infos = (*all)[i] ; const client_infos &lesInfos = *(*im).second ; infos.name = CORBA::string_dup( lesInfos._name ) ; infos.pid = lesInfos._pid ; infos.pwname = lesInfos._pwname ; infos.machine = CORBA::string_dup( lesInfos._machine ) ; infos.adip = CORBA::string_dup( lesInfos._adip ) ; infos.uid = lesInfos._uid ; infos.tc_start = lesInfos._ts_start + lesInfos._difftime ; infos.tc_hello = lesInfos._ts_hello + lesInfos._difftime ; infos.tc_end = lesInfos._ts_end + lesInfos._difftime ; infos.difftime = lesInfos._difftime ; infos.cdir = CORBA::string_dup( lesInfos._cdir ) ; infos.status = lesInfos._status ; i++; } return all ; } /* ------------------------------*/ /* Others */ /* ------------------------------*/ RegistryService::client_infos::client_infos( const Registry::Infos &infos ):\ _ior(duplicate(infos.ior)),\ _name(duplicate(infos.name)),\ _pid(infos.pid),\ _machine(duplicate(infos.machine)),\ _adip(duplicate(infos.adip)),\ _uid(infos.uid),\ _pwname(duplicate(infos.pwname)),\ _ts_start(time(NULL)),\ _difftime(infos.tc_start - _ts_start),\ _cdir(duplicate(infos.cdir)),\ _ts_hello(_ts_start),\ _ts_end(0),\ _status(RUNNING) { } RegistryService::client_infos::~client_infos() { delete [] (char*)_ior ; (char*&)_ior = NULL ; delete [] (char*)_name ; (char*&)_name = NULL ; delete [] (char*)_machine ; (char*&)_machine = NULL ; delete [] (char*)_pwname ; (char*&)_pwname = NULL ; delete [] (char*)_adip ; (char*&)_adip = NULL ; delete [] (char*)_cdir ; (char*&)_cdir = NULL ; } void RegistryService::SessionName( const char *sessionName ) { ASSERT(sessionName) ; ASSERT(strlen(sessionName)>0) ; _SessionName = duplicate(sessionName) ; return ; } void RegistryService::ping() { #ifndef WIN32 MESSAGE(" RegistryService::ping() pid "<< getpid()); #else MESSAGE(" RegistryService::ping() pid "<< _getpid()); #endif } CORBA::Long RegistryService::getPID() { return (CORBA::Long)getpid(); } salome-kernel-6.5.0/src/Registry/RegistryService.hxx000077500000000000000000000073321177004724000225530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Registry : Registry server implementation // File : RegistryService.hxx // Author : Pascale NOYRET - Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/RegistryService.hxx,v 1.9.2.1.10.2.12.1 2012-04-12 14:05:19 vsr Exp $ // # ifndef __RegistryService_h__ # define __RegistryService_h__ #include "SALOME_Registry.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Registry) # include #ifdef WNT #pragma warning(disable:4275) // Disable warning interface non dll #pragma warning(disable:4251) // Warning DLL Interface ... #endif class REGISTRY_EXPORT RegistryService : public POA_Registry::Components //, public PortableServer::RefCountServantBase { public : enum Status { UNDEF=-1 , TERMINATED=0 , RUNNING=1 } ; class client_infos { protected : const char* const _ior; const char* const _name; const long _pid ; const char* const _machine; const char* const _adip; const long _uid; const char* const _pwname; const long _ts_start ; const long _difftime; const char* const _cdir ; long _ts_hello ; long _ts_end ; Status _status; public : friend class RegistryService ; client_infos( const Registry::Infos &infos ); ~client_infos(); }; public : RegistryService(void); virtual ~RegistryService(void); void ping(); CORBA::Long getPID(); virtual CORBA::ULong add (const Registry::Infos & infos); virtual CORBA::ULong size ( void ); #ifndef WIN32 virtual void remove( const CORBA::ULong id ); virtual void hello( const CORBA::ULong id ); #else virtual void remove( CORBA::ULong id ); virtual void hello( CORBA::ULong id ); #endif virtual void end(void); virtual Registry::AllInfos *getall(void); virtual Registry::AllInfos *history(void); void SessionName( const char *sessionName ) ; void SetOrb( CORBA::ORB_ptr orb ) { _orb = CORBA::ORB::_duplicate(orb); return; } void Shutdown() { if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } protected : CORBA::ORB_var _orb; const char *_SessionName ; int _Compteur ; std::map _reg ; std::map _fin ; Registry::AllInfos* makeseq(std::map &mymap ); } ; # endif salome-kernel-6.5.0/src/Registry/SALOME_Registry.hxx000077500000000000000000000025151177004724000222700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Registry.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOME_Registry_HXX_ #define _SALOME_Registry_HXX_ #ifdef WIN32 # if defined REGISTRY_EXPORTS || defined Registry_EXPORTS # define REGISTRY_EXPORT __declspec( dllexport ) # else # define REGISTRY_EXPORT __declspec( dllimport ) # endif #else # define REGISTRY_EXPORT #endif #endif salome-kernel-6.5.0/src/Registry/SALOME_Registry_Server.cxx000077500000000000000000000154541177004724000236170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Registry : Registry server implementation // File : SALOME_Registry_Server.cxx // Author : Pascale NOYRET - Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Registry/SALOME_Registry_Server.cxx,v 1.14.2.1.10.2.12.1 2012-04-12 14:05:19 vsr Exp $ // #include #include #include extern "C" { # include } #include "utilities.h" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Utils_SALOME_Exception.hxx" #include "Utils_CommException.hxx" #include "ServiceUnreachable.hxx" #include "SALOME_NamingService.hxx" #include "RegistryService.hxx" #ifdef CHECKTIME #include #endif int main( int argc , char **argv ) { ORB_INIT &init = *SINGLETON_::Instance() ; CORBA::ORB_var &orb = init( argc , argv ) ; // LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); BEGIN_OF( argv[0] ) INFOS_COMPILATION SCRUTE(argc) if( argc<3 ) { MESSAGE("you must provide the Salome session name when you call SALOME_Registry_Server") ; throw CommException("you must provide the Salome session name when you call SALOME_Registry_Server") ; } const char *ptrSessionName=0 ; int k=0 ; for ( k=1 ; k0) ; const char *registryName = "Registry" ; long TIMESleep = 250000000; int NumberOfTries = 40; #ifndef WIN32 int a; #endif timespec ts_req; ts_req.tv_nsec=TIMESleep; ts_req.tv_sec=0; timespec ts_rem; ts_rem.tv_nsec=0; ts_rem.tv_sec=0; CosNaming::NamingContext_var inc; PortableServer::POA_var poa; CORBA::Object_var theObj; CORBA::Object_var obj; CORBA::Object_var object; SALOME_NamingService &naming = *SINGLETON_::Instance() ; Registry::Components_var varComponents; int REGISTRY=0; const char * Env = getenv("USE_LOGGER"); int EnvL =0; if ((Env!=NULL) && (strlen(Env))) EnvL=1; CosNaming::Name name; name.length(1); name[0].id=CORBA::string_dup("Logger"); PortableServer::POAManager_var manager; for (int i = 1; i<=NumberOfTries; i++) { if (i!=1) #ifndef WIN32 a=nanosleep(&ts_req,&ts_rem); #else Sleep(TIMESleep/1000000); #endif try { obj = orb->resolve_initial_references("RootPOA"); if(!CORBA::is_nil(obj)) poa = PortableServer::POA::_narrow(obj); if(!CORBA::is_nil(poa)) manager = poa->the_POAManager(); if(!CORBA::is_nil(orb)) theObj = orb->resolve_initial_references("NameService"); if (!CORBA::is_nil(theObj)) inc = CosNaming::NamingContext::_narrow(theObj); } catch( CORBA::SystemException& ) { MESSAGE( "Registry Server: CORBA::SystemException: Unable to contact the Naming Service" ); } if(!CORBA::is_nil(inc)) { MESSAGE( "Registry Server: Naming Service was found" ); if(EnvL==1) { for(int j=1; j<=NumberOfTries; j++) { if (j!=1) #ifndef WIN32 a=nanosleep(&ts_req, &ts_rem); #else Sleep(TIMESleep/1000000); #endif try { object = inc->resolve(name); } catch(CosNaming::NamingContext::NotFound) { MESSAGE( "Registry Server: Logger Server wasn't found" ); } catch(...) { MESSAGE( "Registry Server: Unknown exception" ); } if (!CORBA::is_nil(object)) { MESSAGE( "Module Catalog Server: Logger Server was found" ); REGISTRY=1; break; } } } } if ((REGISTRY==1)||((EnvL==0)&&(!CORBA::is_nil(inc)))) break; } try { naming.init_orb( orb ) ; RegistryService *ptrRegistry = SINGLETON_::Instance() ; ptrRegistry->SessionName( ptrSessionName ) ; ptrRegistry->SetOrb(orb); varComponents = ptrRegistry->_this() ; ptrRegistry->_remove_ref(); //let poa manage registryservice deletion // The RegistryService must not already exist. try { CORBA::Object_var pipo = naming.Resolve( registryName ) ; if (CORBA::is_nil(pipo) ) throw ServiceUnreachable() ; MESSAGE("RegistryService servant already existing" ) ; exit( EXIT_FAILURE ) ; } catch( const ServiceUnreachable & ) { } catch( const CORBA::Exception & ) { } std::string absoluteName = std::string("/") + registryName; naming.Register( varComponents , absoluteName.c_str() ) ; MESSAGE("Wait client requests") ; try { // Activation du POA MESSAGE("POA activation") ; manager->activate() ; // Lancement de l'ORB MESSAGE("ORB launching") ; #ifdef CHECKTIME Utils_Timer timer; timer.Start(); timer.Stop(); MESSAGE("SALOME_Registry_Server.cxx - orb->run()"); timer.ShowAbsolute(); #endif orb->run() ; } catch( const CORBA::Exception & ) { MESSAGE("System error") ; return EXIT_FAILURE ; } } catch( const SALOME_Exception &ex ) { MESSAGE( "Communication Error : " << ex.what() ) return EXIT_FAILURE ; } END_OF( argv[0] ) ; // delete myThreadTrace; return 0 ; } salome-kernel-6.5.0/src/ResourcesManager/000077500000000000000000000000001177004724000203165ustar00rootroot00000000000000salome-kernel-6.5.0/src/ResourcesManager/Makefile.am000077500000000000000000000066041177004724000223630ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME ResourcesManager # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ResourcesManager/Makefile.am,v 1.5.2.3.14.4.2.1 2012-04-12 14:05:19 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_ResourcesCatalog_Parser.hxx \ SALOME_ResourcesManager.hxx \ SALOME_ResourcesCatalog_Handler.hxx \ SALOME_LoadRateManager.hxx \ ResourcesManager.hxx \ ResourcesManager_Defs.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @LIBXML_INCLUDES@ \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @LIBXML_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # if WITHONLYLAUNCHER lib_LTLIBRARIES = libResourcesManager.la else lib_LTLIBRARIES = libResourcesManager.la libSalomeResourcesManager.la endif libSalomeResourcesManager_la_SOURCES =\ SALOME_ResourcesManager.cxx libSalomeResourcesManager_la_CPPFLAGS =\ $(COMMON_CPPFLAGS) libSalomeResourcesManager_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeResourcesManager_la_LIBADD =\ $(COMMON_LIBS) libResourcesManager.la libResourcesManager_la_SOURCES =\ SALOME_ResourcesCatalog_Parser.cxx \ SALOME_ResourcesCatalog_Handler.cxx \ SALOME_LoadRateManager.cxx \ ResourcesManager.cxx libResourcesManager_la_CPPFLAGS =\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ @LIBXML_INCLUDES@ libResourcesManager_la_LDFLAGS = -no-undefined -version-info=0:0:0 libResourcesManager_la_LIBADD =\ ../Basics/libSALOMEBasics.la \ ../Utils/libOpUtil.la \ @LIBXML_LIBS@ salome-kernel-6.5.0/src/ResourcesManager/Makefile.in000077500000000000000000001140651177004724000223750ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/ResourcesManager ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libResourcesManager_la_DEPENDENCIES = ../Basics/libSALOMEBasics.la \ ../Utils/libOpUtil.la am_libResourcesManager_la_OBJECTS = \ libResourcesManager_la-SALOME_ResourcesCatalog_Parser.lo \ libResourcesManager_la-SALOME_ResourcesCatalog_Handler.lo \ libResourcesManager_la-SALOME_LoadRateManager.lo \ libResourcesManager_la-ResourcesManager.lo libResourcesManager_la_OBJECTS = $(am_libResourcesManager_la_OBJECTS) libResourcesManager_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libResourcesManager_la_LDFLAGS) $(LDFLAGS) -o $@ @WITHONLYLAUNCHER_FALSE@am_libResourcesManager_la_rpath = -rpath \ @WITHONLYLAUNCHER_FALSE@ $(libdir) @WITHONLYLAUNCHER_TRUE@am_libResourcesManager_la_rpath = -rpath \ @WITHONLYLAUNCHER_TRUE@ $(libdir) am__DEPENDENCIES_1 = ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSalomeResourcesManager_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ libResourcesManager.la am_libSalomeResourcesManager_la_OBJECTS = \ libSalomeResourcesManager_la-SALOME_ResourcesManager.lo libSalomeResourcesManager_la_OBJECTS = \ $(am_libSalomeResourcesManager_la_OBJECTS) libSalomeResourcesManager_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeResourcesManager_la_LDFLAGS) $(LDFLAGS) -o $@ @WITHONLYLAUNCHER_FALSE@am_libSalomeResourcesManager_la_rpath = \ @WITHONLYLAUNCHER_FALSE@ -rpath $(libdir) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libResourcesManager_la_SOURCES) \ $(libSalomeResourcesManager_la_SOURCES) DIST_SOURCES = $(libResourcesManager_la_SOURCES) \ $(libSalomeResourcesManager_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME ResourcesManager # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ResourcesManager/Makefile.am,v 1.5.2.3.14.4.2.1 2012-04-12 14:05:19 vsr Exp $ # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOME_ResourcesCatalog_Parser.hxx \ SALOME_ResourcesManager.hxx \ SALOME_ResourcesCatalog_Handler.hxx \ SALOME_LoadRateManager.hxx \ ResourcesManager.hxx \ ResourcesManager_Defs.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(top_builddir)/idl \ @LIBXML_INCLUDES@ \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../Basics/libSALOMEBasics.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @LIBXML_LIBS@ @WITHONLYLAUNCHER_FALSE@lib_LTLIBRARIES = libResourcesManager.la libSalomeResourcesManager.la # # =============================================================== # Libraries targets # =============================================================== # @WITHONLYLAUNCHER_TRUE@lib_LTLIBRARIES = libResourcesManager.la libSalomeResourcesManager_la_SOURCES = \ SALOME_ResourcesManager.cxx libSalomeResourcesManager_la_CPPFLAGS = \ $(COMMON_CPPFLAGS) libSalomeResourcesManager_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeResourcesManager_la_LIBADD = \ $(COMMON_LIBS) libResourcesManager.la libResourcesManager_la_SOURCES = \ SALOME_ResourcesCatalog_Parser.cxx \ SALOME_ResourcesCatalog_Handler.cxx \ SALOME_LoadRateManager.cxx \ ResourcesManager.cxx libResourcesManager_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ @LIBXML_INCLUDES@ libResourcesManager_la_LDFLAGS = -no-undefined -version-info=0:0:0 libResourcesManager_la_LIBADD = \ ../Basics/libSALOMEBasics.la \ ../Utils/libOpUtil.la \ @LIBXML_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ResourcesManager/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/ResourcesManager/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libResourcesManager.la: $(libResourcesManager_la_OBJECTS) $(libResourcesManager_la_DEPENDENCIES) $(libResourcesManager_la_LINK) $(am_libResourcesManager_la_rpath) $(libResourcesManager_la_OBJECTS) $(libResourcesManager_la_LIBADD) $(LIBS) libSalomeResourcesManager.la: $(libSalomeResourcesManager_la_OBJECTS) $(libSalomeResourcesManager_la_DEPENDENCIES) $(libSalomeResourcesManager_la_LINK) $(am_libSalomeResourcesManager_la_rpath) $(libSalomeResourcesManager_la_OBJECTS) $(libSalomeResourcesManager_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libResourcesManager_la-ResourcesManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libResourcesManager_la-SALOME_LoadRateManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Handler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeResourcesManager_la-SALOME_ResourcesManager.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libResourcesManager_la-SALOME_ResourcesCatalog_Parser.lo: SALOME_ResourcesCatalog_Parser.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libResourcesManager_la-SALOME_ResourcesCatalog_Parser.lo -MD -MP -MF $(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Parser.Tpo -c -o libResourcesManager_la-SALOME_ResourcesCatalog_Parser.lo `test -f 'SALOME_ResourcesCatalog_Parser.cxx' || echo '$(srcdir)/'`SALOME_ResourcesCatalog_Parser.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Parser.Tpo $(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Parser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ResourcesCatalog_Parser.cxx' object='libResourcesManager_la-SALOME_ResourcesCatalog_Parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libResourcesManager_la-SALOME_ResourcesCatalog_Parser.lo `test -f 'SALOME_ResourcesCatalog_Parser.cxx' || echo '$(srcdir)/'`SALOME_ResourcesCatalog_Parser.cxx libResourcesManager_la-SALOME_ResourcesCatalog_Handler.lo: SALOME_ResourcesCatalog_Handler.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libResourcesManager_la-SALOME_ResourcesCatalog_Handler.lo -MD -MP -MF $(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Handler.Tpo -c -o libResourcesManager_la-SALOME_ResourcesCatalog_Handler.lo `test -f 'SALOME_ResourcesCatalog_Handler.cxx' || echo '$(srcdir)/'`SALOME_ResourcesCatalog_Handler.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Handler.Tpo $(DEPDIR)/libResourcesManager_la-SALOME_ResourcesCatalog_Handler.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ResourcesCatalog_Handler.cxx' object='libResourcesManager_la-SALOME_ResourcesCatalog_Handler.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libResourcesManager_la-SALOME_ResourcesCatalog_Handler.lo `test -f 'SALOME_ResourcesCatalog_Handler.cxx' || echo '$(srcdir)/'`SALOME_ResourcesCatalog_Handler.cxx libResourcesManager_la-SALOME_LoadRateManager.lo: SALOME_LoadRateManager.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libResourcesManager_la-SALOME_LoadRateManager.lo -MD -MP -MF $(DEPDIR)/libResourcesManager_la-SALOME_LoadRateManager.Tpo -c -o libResourcesManager_la-SALOME_LoadRateManager.lo `test -f 'SALOME_LoadRateManager.cxx' || echo '$(srcdir)/'`SALOME_LoadRateManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libResourcesManager_la-SALOME_LoadRateManager.Tpo $(DEPDIR)/libResourcesManager_la-SALOME_LoadRateManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_LoadRateManager.cxx' object='libResourcesManager_la-SALOME_LoadRateManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libResourcesManager_la-SALOME_LoadRateManager.lo `test -f 'SALOME_LoadRateManager.cxx' || echo '$(srcdir)/'`SALOME_LoadRateManager.cxx libResourcesManager_la-ResourcesManager.lo: ResourcesManager.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libResourcesManager_la-ResourcesManager.lo -MD -MP -MF $(DEPDIR)/libResourcesManager_la-ResourcesManager.Tpo -c -o libResourcesManager_la-ResourcesManager.lo `test -f 'ResourcesManager.cxx' || echo '$(srcdir)/'`ResourcesManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libResourcesManager_la-ResourcesManager.Tpo $(DEPDIR)/libResourcesManager_la-ResourcesManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResourcesManager.cxx' object='libResourcesManager_la-ResourcesManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libResourcesManager_la-ResourcesManager.lo `test -f 'ResourcesManager.cxx' || echo '$(srcdir)/'`ResourcesManager.cxx libSalomeResourcesManager_la-SALOME_ResourcesManager.lo: SALOME_ResourcesManager.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeResourcesManager_la-SALOME_ResourcesManager.lo -MD -MP -MF $(DEPDIR)/libSalomeResourcesManager_la-SALOME_ResourcesManager.Tpo -c -o libSalomeResourcesManager_la-SALOME_ResourcesManager.lo `test -f 'SALOME_ResourcesManager.cxx' || echo '$(srcdir)/'`SALOME_ResourcesManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeResourcesManager_la-SALOME_ResourcesManager.Tpo $(DEPDIR)/libSalomeResourcesManager_la-SALOME_ResourcesManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_ResourcesManager.cxx' object='libSalomeResourcesManager_la-SALOME_ResourcesManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeResourcesManager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeResourcesManager_la-SALOME_ResourcesManager.lo `test -f 'SALOME_ResourcesManager.cxx' || echo '$(srcdir)/'`SALOME_ResourcesManager.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/ResourcesManager/ResourcesManager.cxx000077500000000000000000000423221177004724000243150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "ResourcesManager.hxx" #include #include #include #include #include #include #include #include #include #ifdef WNT #else #include #endif #include #include #define MAX_SIZE_FOR_HOSTNAME 256; static LoadRateManagerFirst first; static LoadRateManagerCycl cycl; static LoadRateManagerAltCycl altcycl; //============================================================================= /*! * just for test */ //============================================================================= ResourcesManager_cpp:: ResourcesManager_cpp(const char *xmlFilePath) { _path_resources.push_back(xmlFilePath); #if defined(_DEBUG_) || defined(_DEBUG) std::cerr << "ResourcesManager_cpp constructor" << std::endl; #endif _resourceManagerMap["first"]=&first; _resourceManagerMap["cycl"]=&cycl; _resourceManagerMap["altcycl"]=&altcycl; _resourceManagerMap["best"]=&altcycl; _resourceManagerMap[""]=&altcycl; } //============================================================================= /*! * Standard constructor, parse resource file. * - if ${APPLI} exists in environment, * look for ${HOME}/${APPLI}/CatalogResources.xml * - else look for default: * ${KERNEL_ROOT_DIR}/share/salome/resources/kernel/CatalogResources.xml * - parse XML resource file. */ //============================================================================= ResourcesManager_cpp::ResourcesManager_cpp() throw(ResourcesException) { RES_MESSAGE("ResourcesManager_cpp constructor"); _resourceManagerMap["first"]=&first; _resourceManagerMap["cycl"]=&cycl; _resourceManagerMap["altcycl"]=&altcycl; _resourceManagerMap["best"]=&altcycl; _resourceManagerMap[""]=&altcycl; bool default_catalog_resource = true; if (getenv("USER_CATALOG_RESOURCES_FILE") != 0) { default_catalog_resource = false; std::string user_file(""); user_file = getenv("USER_CATALOG_RESOURCES_FILE"); std::ifstream ifile(user_file.c_str(), std::ifstream::in ); if (ifile) { // The file exists, and is open for input _path_resources.push_back(user_file); } else { default_catalog_resource = false; RES_INFOS("Warning: USER_CATALOG_RESOURCES_FILE is set and file cannot be found.") RES_INFOS("Warning: That's why we try to create a new one.") std::ofstream user_catalog_file; user_catalog_file.open(user_file.c_str()); if (user_catalog_file.fail()) { RES_INFOS("Error: cannot write in the user catalog resouces files"); RES_INFOS("Error: using default CatalogResources.xml file"); default_catalog_resource = true; } else { user_catalog_file << "" << std::endl; user_catalog_file << "" << std::endl; user_catalog_file << "" << std::endl; user_catalog_file << " " << std::endl; user_catalog_file << "" << std::endl; user_catalog_file.close(); } } } if (default_catalog_resource) { std::string default_file(""); if (getenv("APPLI") != 0) { default_file += getenv("HOME"); default_file += "/"; default_file += getenv("APPLI"); default_file += "/CatalogResources.xml"; _path_resources.push_back(default_file); } else { if(!getenv("KERNEL_ROOT_DIR")) throw ResourcesException("you must define KERNEL_ROOT_DIR environment variable!! -> cannot load a CatalogResources.xml"); default_file = getenv("KERNEL_ROOT_DIR"); default_file += "/share/salome/resources/kernel/CatalogResources.xml"; _path_resources.push_back(default_file); } } _lasttime=0; ParseXmlFiles(); RES_MESSAGE("ResourcesManager_cpp constructor end"); } //============================================================================= /*! * Standard Destructor */ //============================================================================= ResourcesManager_cpp::~ResourcesManager_cpp() { RES_MESSAGE("ResourcesManager_cpp destructor"); } //============================================================================= //! get the list of resource names fitting constraints given by params /*! * Steps: * 1: Restrict list with resourceList if defined * 2: If name is defined -> check resource list * 3: If not 2:, if hostname is defined -> check resource list * 4: If not 3:, sort resource with nb_proc, etc... * 5: In all cases remove resource that does not correspond with OS * 6: And remove resource with componentList - if list is empty ignored it... */ //============================================================================= std::vector ResourcesManager_cpp::GetFittingResources(const resourceParams& params) throw(ResourcesException) { RES_MESSAGE("[GetFittingResources] on computer " << Kernel_Utils::GetHostname().c_str()); RES_MESSAGE("[GetFittingResources] with resource name: " << params.name); RES_MESSAGE("[GetFittingResources] with hostname: "<< params.hostname); // Result std::vector vec; // Parse Again CalatogResource File ParseXmlFiles(); // Steps: // 1: If name is defined -> check resource list // 2: Restrict list with resourceList if defined // 3: If not 2:, if hostname is defined -> check resource list // 4: If not 3:, sort resource with nb_proc, etc... // 5: In all cases remove resource that does not correspond with OS // 6: And remove resource with componentList - if list is empty ignored it... // Step 1 if (params.name != "") { RES_MESSAGE("[GetFittingResources] name parameter found !"); if (_resourcesList.find(params.name) != _resourcesList.end()) { vec.push_back(params.name); return vec; } else RES_MESSAGE("[GetFittingResources] resource name was not found on resource list ! name requested was " << params.name); std::string error("[GetFittingResources] resource name was not found on resource list ! name requested was " + params.name); throw ResourcesException(error); } MapOfParserResourcesType local_resourcesList = _resourcesList; // Step 2 if (params.resourceList.size() > 0) { RES_MESSAGE("[GetFittingResources] Restricted resource list found !"); local_resourcesList.clear(); std::vector::size_type sz = params.resourceList.size(); for (unsigned int i=0; i < sz; i++) { if (_resourcesList.find(params.resourceList[i]) != _resourcesList.end()) local_resourcesList[params.resourceList[i]] = _resourcesList[params.resourceList[i]]; } } // Step 3 if (params.hostname != "") { RES_MESSAGE("[GetFittingResources] Entering in hostname case !"); std::string hostname = params.hostname; if (hostname == "localhost") hostname = Kernel_Utils::GetHostname().c_str(); std::map::const_iterator iter = _resourcesList.begin(); for (; iter != _resourcesList.end(); iter++) { if ((*iter).second.HostName == hostname) vec.push_back((*iter).first); } } // Step 4 else { // --- Search for available resources sorted by priority MapOfParserResourcesType_it i = local_resourcesList.begin(); for (; i != local_resourcesList.end(); ++i) vec.push_back(i->first); // --- set wanted parameters ResourceDataToSort::_nbOfProcWanted = params.nb_proc; ResourceDataToSort::_nbOfNodesWanted = params.nb_node; ResourceDataToSort::_nbOfProcPerNodeWanted = params.nb_proc_per_node; ResourceDataToSort::_CPUFreqMHzWanted = params.cpu_clock; ResourceDataToSort::_memInMBWanted = params.mem_mb; // --- end of set // Sort std::list li; std::vector::iterator iter = vec.begin(); for (; iter != vec.end(); iter++) li.push_back(local_resourcesList[(*iter)].DataForSort); li.sort(); vec.clear(); for (std::list::iterator iter2 = li.begin(); iter2 != li.end(); iter2++) vec.push_back((*iter2)._Name); } // Step 5 SelectOnlyResourcesWithOS(vec, params.OS.c_str()); // Step 6 std::vector vec_save(vec); KeepOnlyResourcesWithComponent(vec, params.componentList); if (vec.size() == 0) vec = vec_save; // End // Send an exception if return list is empty... if (vec.size() == 0) { std::string error("[GetFittingResources] ResourcesManager doesn't find any resource that fits to your parameters"); throw ResourcesException(error); } return vec; } //============================================================================= /*! * add an entry in the ressources catalog xml file. */ //============================================================================= void ResourcesManager_cpp::AddResourceInCatalog(const ParserResourcesType & new_resource) throw(ResourcesException) { // TODO - Add minimal check _resourcesList[new_resource.Name] = new_resource; } //============================================================================= /*! * Deletes a resource from the catalog */ //============================================================================= void ResourcesManager_cpp::DeleteResourceInCatalog(const char * name) { MapOfParserResourcesType_it it = _resourcesList.find(name); if (it != _resourcesList.end()) _resourcesList.erase(name); else RES_INFOS("You try to delete a resource that does not exist... : " << name); } //============================================================================= /*! * write the current data in memory in file. */ //============================================================================= void ResourcesManager_cpp::WriteInXmlFile(std::string xml_file) { RES_MESSAGE("WriteInXmlFile : start"); if (xml_file == "") { _path_resources_it = _path_resources.begin(); xml_file = *_path_resources_it; } const char* aFilePath = xml_file.c_str(); FILE* aFile = fopen(aFilePath, "w"); if (aFile == NULL) { std::cerr << "Error opening file in WriteInXmlFile : " << xml_file << std::endl; return; } xmlDocPtr aDoc = xmlNewDoc(BAD_CAST "1.0"); xmlNewDocComment(aDoc, BAD_CAST "ResourcesCatalog"); SALOME_ResourcesCatalog_Handler* handler = new SALOME_ResourcesCatalog_Handler(_resourcesList); handler->PrepareDocToXmlFile(aDoc); delete handler; int isOk = xmlSaveFormatFile(aFilePath, aDoc, 1); if (!isOk) std::cerr << "Error while XML file saving : " << xml_file << std::endl; // Free the document xmlFreeDoc(aDoc); fclose(aFile); RES_MESSAGE("WriteInXmlFile : WRITING DONE!"); } //============================================================================= /*! * parse the data type catalog */ //============================================================================= const MapOfParserResourcesType& ResourcesManager_cpp::ParseXmlFiles() { // Parse file only if its modification time is greater than lasttime (last registered modification time) bool to_parse = false; for(_path_resources_it = _path_resources.begin(); _path_resources_it != _path_resources.end(); ++_path_resources_it) { struct stat statinfo; int result = stat((*_path_resources_it).c_str(), &statinfo); if (result < 0) { std::cerr << "Error in method stat for file : " << (*_path_resources_it).c_str() << " no new xml file is parsed" << std::endl; return _resourcesList; } if(statinfo.st_mtime > _lasttime) { to_parse = true; _lasttime = statinfo.st_mtime; } } if (to_parse) { _resourcesList.clear(); // On parse tous les fichiers for(_path_resources_it = _path_resources.begin(); _path_resources_it != _path_resources.end(); ++_path_resources_it) { MapOfParserResourcesType _resourcesList_tmp; MapOfParserResourcesType _resourcesBatchList_tmp; SALOME_ResourcesCatalog_Handler* handler = new SALOME_ResourcesCatalog_Handler(_resourcesList_tmp); const char* aFilePath = (*_path_resources_it).c_str(); FILE* aFile = fopen(aFilePath, "r"); if (aFile != NULL) { xmlDocPtr aDoc = xmlReadFile(aFilePath, NULL, 0); if (aDoc != NULL) { handler->ProcessXmlDocument(aDoc); // adding new resources to the file for (MapOfParserResourcesType_it i = _resourcesList_tmp.begin(); i != _resourcesList_tmp.end(); ++i) { MapOfParserResourcesType_it j = _resourcesList.find(i->first); if (j == _resourcesList.end()) { _resourcesList[i->first] = i->second; } else { std::cerr << "ParseXmlFiles Warning, two resources with the same name were found, taking the first declaration : " << i->first << std::endl; } } } else std::cerr << "ResourcesManager_cpp: could not parse file " << aFilePath << std::endl; // Free the document xmlFreeDoc(aDoc); fclose(aFile); } else std::cerr << "ResourcesManager_cpp: file " << aFilePath << " is not readable." << std::endl; delete handler; } } return _resourcesList; } //============================================================================= /*! * consult the content of the list */ //============================================================================= const MapOfParserResourcesType& ResourcesManager_cpp::GetList() const { return _resourcesList; } std::string ResourcesManager_cpp::Find(const std::string& policy, const std::vector& listOfResources) { if(_resourceManagerMap.count(policy)==0) return _resourceManagerMap[""]->Find(listOfResources, _resourcesList); return _resourceManagerMap[policy]->Find(listOfResources, _resourcesList); } //============================================================================= /*! * Gives a sublist of resources with matching OS. * If parameter OS is empty, gives the complete list of resources */ //============================================================================= void ResourcesManager_cpp::SelectOnlyResourcesWithOS(std::vector& resources, std::string OS) { if (OS != "") { // a computer list is given : take only resources with OS on those computers std::vector vec_tmp = resources; resources.clear(); std::vector::iterator iter = vec_tmp.begin(); for (; iter != vec_tmp.end(); iter++) { MapOfParserResourcesType::const_iterator it = _resourcesList.find(*iter); if(it != _resourcesList.end()) if ( (*it).second.OS == OS) resources.push_back(*iter); } } } //============================================================================= /*! * Gives a sublist of machines on which the component is known. */ //============================================================================= void ResourcesManager_cpp::KeepOnlyResourcesWithComponent(std::vector& resources, const std::vector& componentList) { std::vector kept_resources; std::vector::iterator iter = resources.begin(); for (; iter != resources.end(); iter++) { const std::vector& mapOfComponentsOfCurrentHost = _resourcesList[*iter].ComponentsList; bool erasedHost = false; if( mapOfComponentsOfCurrentHost.size() > 0 ) { for(unsigned int i=0; i::const_iterator itt = find(mapOfComponentsOfCurrentHost.begin(), mapOfComponentsOfCurrentHost.end(), componentList[i]); if (itt == mapOfComponentsOfCurrentHost.end()) { erasedHost = true; break; } } } if(!erasedHost) kept_resources.push_back(*iter); } resources=kept_resources; } ParserResourcesType ResourcesManager_cpp::GetResourcesDescr(const std::string & name) { if (_resourcesList.find(name) != _resourcesList.end()) return _resourcesList[name]; else { std::string error("[GetResourcesDescr] Resource does not exist: "); error += name; throw ResourcesException(error); } } salome-kernel-6.5.0/src/ResourcesManager/ResourcesManager.hxx000077500000000000000000000073201177004724000243210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __RESOURCESMANAGER_HXX__ #define __RESOURCESMANAGER_HXX__ #include "ResourcesManager_Defs.hxx" #include #include #include #include #include "SALOME_ResourcesCatalog_Parser.hxx" #include "SALOME_ResourcesCatalog_Handler.hxx" #include "SALOME_LoadRateManager.hxx" #include #include #ifdef WNT #else #include #endif #ifdef WNT #pragma warning(disable:4251) // Warning DLL Interface ... #pragma warning(disable:4290) // Warning Exception ... #endif // --- WARNING --- // The call of BuildTempFileToLaunchRemoteContainer and RmTmpFile must be done // in a critical section to be sure to be clean. // Only one thread should use the SALOME_ResourcesManager class in a SALOME // session. struct resourceParams { std::string name; std::string hostname; std::string OS; long nb_proc; long nb_node; long nb_proc_per_node; long cpu_clock; long mem_mb; std::vector componentList; std::vector resourceList; }; class RESOURCESMANAGER_EXPORT ResourcesException { public: const std::string msg; ResourcesException(const std::string m) : msg(m) {} }; class RESOURCESMANAGER_EXPORT ResourcesManager_cpp { public: ResourcesManager_cpp(const char *xmlFilePath); ResourcesManager_cpp() throw(ResourcesException); ~ResourcesManager_cpp(); std::vector GetFittingResources(const resourceParams& params) throw(ResourcesException); std::string Find(const std::string& policy, const std::vector& listOfResources); void AddResourceInCatalog (const ParserResourcesType & new_resource) throw(ResourcesException); void DeleteResourceInCatalog(const char * name); void WriteInXmlFile(std::string xml_file); const MapOfParserResourcesType& ParseXmlFiles(); const MapOfParserResourcesType& GetList() const; ParserResourcesType GetResourcesDescr(const std::string & name); protected: void SelectOnlyResourcesWithOS(std::vector& resources, std::string OS); void KeepOnlyResourcesWithComponent(std::vector& resources, const std::vector& componentList); //! will contain the path to the ressources catalog std::list _path_resources; std::list::iterator _path_resources_it; //! will contain the informations on the data type catalog(after parsing) MapOfParserResourcesType _resourcesList; //! a map that contains all the available load rate managers (the key is the name) std::map _resourceManagerMap; //! contain the time where resourcesList was created time_t _lasttime; }; #endif // __RESOURCESMANAGER_HXX__ salome-kernel-6.5.0/src/ResourcesManager/ResourcesManager_Defs.hxx000077500000000000000000000034061177004724000252630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __RESOURCESMANAGER_DEFS_HXX__ #define __RESOURCESMANAGER_DEFS_HXX__ #ifdef WIN32 # if defined RESOURCESMANAGER_EXPORTS || defined ResourcesManager_EXPORTS # define RESOURCESMANAGER_EXPORT __declspec( dllexport ) # else # define RESOURCESMANAGER_EXPORT __declspec( dllimport ) # endif #else # define RESOURCESMANAGER_EXPORT #endif // MESSAGES #define RES_MESS_INIT(deb) std::cerr << deb #define RES_MESS_BEGIN(deb) RES_MESS_INIT(deb)<<__FILE__ <<" ["<<__LINE__<<"] : " #define RES_MESS_END std::endl; #define RES_INFOS(msg) {RES_MESS_BEGIN("- Trace ") << msg << RES_MESS_END} #if defined(_DEBUG_) || defined(_DEBUG) #define RES_MESSAGE(msg) {RES_MESS_BEGIN("- Trace ") << msg << RES_MESS_END} #else /* ifdef _DEBUG_*/ #define RES_MESSAGE(msg) {} #endif /* ifdef _DEBUG_*/ #endif // __RESOURCESMANAGER_DEFS_HXX__ salome-kernel-6.5.0/src/ResourcesManager/SALOME_LoadRateManager.cxx000077500000000000000000000055221177004724000250770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_LoadRateManager.hxx" #include #include std::string LoadRateManagerFirst::Find(const std::vector& hosts, MapOfParserResourcesType& resList) { if (hosts.size() == 0) return std::string(""); return std::string(hosts[0]); } std::string LoadRateManagerCycl::Find(const std::vector& hosts, MapOfParserResourcesType& resList) { static int imachine = 0; static int iproc = 0; // if empty list return empty string if (hosts.size() == 0) return std::string(""); else{ ParserResourcesType resource = resList[std::string(hosts[imachine])]; int nbproc = resource.DataForSort._nbOfProcPerNode * resource.DataForSort._nbOfNodes; if( nbproc <= 0) nbproc = 1; if( iproc < nbproc ){ iproc++; return std::string(hosts[imachine]); } else{ iproc = 1; imachine++; if(imachine >= (int)hosts.size()) imachine = 0; return std::string(hosts[imachine]); } } } std::string LoadRateManagerAltCycl::Find(const std::vector& hosts, MapOfParserResourcesType& resList) { if (hosts.size() == 0) return std::string(""); std::string selected=hosts[0]; int uses=0; if(_numberOfUses.count(selected) != 0) uses=_numberOfUses[selected]; else uses=0; for (std::vector::const_iterator iter = hosts.begin(); iter != hosts.end(); iter++) { std::string machine=*iter; if(_numberOfUses.count(machine) == 0) _numberOfUses[machine]=0; if(_numberOfUses[machine] < uses) { selected=machine; uses=_numberOfUses[machine]; } } _numberOfUses[selected]=_numberOfUses[selected]+1; //std::cerr << "selected: " << selected << " " << _numberOfUses[selected] << std::endl; return selected; } salome-kernel-6.5.0/src/ResourcesManager/SALOME_LoadRateManager.hxx000077500000000000000000000041011177004724000250740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_LOADRATEMANAGER_HXX__ #define __SALOME_LOADRATEMANAGER_HXX__ #include "ResourcesManager_Defs.hxx" #include #include #include "SALOME_ResourcesCatalog_Parser.hxx" class RESOURCESMANAGER_EXPORT LoadRateManager { public: virtual std::string Find(const std::vector& hosts, MapOfParserResourcesType& resList){return "";}; }; class RESOURCESMANAGER_EXPORT LoadRateManagerFirst:public LoadRateManager { public: virtual std::string Find(const std::vector& hosts, MapOfParserResourcesType& resList); }; class RESOURCESMANAGER_EXPORT LoadRateManagerCycl :public LoadRateManager { public: virtual std::string Find(const std::vector& hosts, MapOfParserResourcesType& resList); }; class RESOURCESMANAGER_EXPORT LoadRateManagerAltCycl :public LoadRateManager { public: virtual std::string Find(const std::vector& hosts, MapOfParserResourcesType& resList); protected: std::map _numberOfUses; }; #endif salome-kernel-6.5.0/src/ResourcesManager/SALOME_ResourcesCatalog_Handler.cxx000077500000000000000000000711521177004724000270150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl) // File : SALOME_ResourcesCatalog_Handler.cxx // Author : Estelle Deville // Module : SALOME //$Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ResourcesManager/SALOME_ResourcesCatalog_Handler.cxx,v 1.8.2.9.6.9.2.1 2012-04-12 14:05:20 vsr Exp $ // #include "SALOME_ResourcesCatalog_Handler.hxx" #include "Basics_Utils.hxx" #include "Utils_SALOME_Exception.hxx" #include #include #include //============================================================================= /*! * Constructor * \param listOfResources: map of ParserResourcesType to fill when parsing */ //============================================================================= SALOME_ResourcesCatalog_Handler:: SALOME_ResourcesCatalog_Handler(MapOfParserResourcesType& resources_list): _resources_list(resources_list) { //XML tags initialisation test_machine = "machine"; test_cluster = "cluster"; test_name = "name"; test_hostname = "hostname"; test_protocol = "protocol"; test_cluster_internal_protocol = "iprotocol"; test_mode = "mode"; test_batch = "batch"; test_mpi = "mpi"; test_user_name = "userName"; test_appli_path = "appliPath"; test_modules = "modules"; test_module_name = "moduleName"; test_components = "component"; test_component_name = "name"; test_os = "OS"; test_mem_in_mb = "memInMB"; test_cpu_freq_mhz = "CPUFreqMHz"; test_nb_of_nodes = "nbOfNodes"; test_nb_of_proc = "nbOfProc"; test_nb_of_proc_per_node = "nbOfProcPerNode"; test_batch_queue = "batchQueue"; test_user_commands = "userCommands"; test_use = "use"; test_members = "members"; test_is_cluster_head = "isClusterHead"; test_working_directory = "workingDirectory"; } //============================================================================= /*! * Destructor */ //============================================================================= SALOME_ResourcesCatalog_Handler::~SALOME_ResourcesCatalog_Handler() { // cout << "SALOME_ResourcesCatalog_Handler destruction") << endl; } //============================================================================= /*! * Retrieves DS after the file parse. */ //============================================================================= const MapOfParserResourcesType& SALOME_ResourcesCatalog_Handler::GetResourcesAfterParsing() const { return _resources_list; } //============================================================================= /*! * Processes XML document and fills the list of resources */ //============================================================================= void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc) { // Empty private elements _resources_list.clear(); //default resources _resource.Clear(); _resource.HostName = Kernel_Utils::GetHostname(); _resource.Name = Kernel_Utils::GetHostname(); _resource.DataForSort._Name = Kernel_Utils::GetHostname(); _resources_list[Kernel_Utils::GetHostname()] = _resource; // Get the document root node xmlNodePtr aCurNode = xmlDocGetRootElement(theDoc); aCurNode = aCurNode->xmlChildrenNode; // Processing the document nodes while(aCurNode != NULL) { // Cas d'une machine ou d'une machine batch if (!xmlStrcmp(aCurNode->name,(const xmlChar*)test_machine)) { _resource.Clear(); bool Ok = ProcessMachine(aCurNode, _resource); if (Ok) { // Adding a resource if(_resource.HostName == "localhost") { _resource.HostName = Kernel_Utils::GetHostname(); } std::map::const_iterator iter = _resources_list.find(_resource.Name); if (iter != _resources_list.end()) RES_INFOS("Warning resource " << _resource.Name << " already added, keep last resource found !"); _resources_list[_resource.Name] = _resource; } } // Cas de la déclaration d'un cluster if (!xmlStrcmp(aCurNode->name,(const xmlChar*)test_cluster)) { _resource.Clear(); if(ProcessCluster(aCurNode, _resource)) { std::map::const_iterator iter = _resources_list.find(_resource.Name); if (iter != _resources_list.end()) RES_INFOS("Warning resource " << _resource.Name << " already added, keep last resource found !"); _resources_list[_resource.Name] = _resource; } } aCurNode = aCurNode->next; } #ifdef _DEBUG_ for (std::map::const_iterator iter = _resources_list.begin(); iter != _resources_list.end(); iter++) { std::cerr << "************************************************" << std::endl; std::cerr << "Resource " << (*iter).first << " found:" << std::endl; std::cerr << " Name: " << (*iter).second.Name << std::endl; std::cerr << " Hostname: " << (*iter).second.HostName << std::endl; std::cerr << " Username: " << (*iter).second.UserName << std::endl; std::cerr << " Appli path: " <<(*iter).second.AppliPath << std::endl; std::cerr << " OS: " << (*iter).second.OS << std::endl; std::cerr << " Protocol: " << (*iter).second.PrintAccessProtocolType() << std::endl; std::cerr << " Internal Protocol: " <<(*iter).second.PrintClusterInternalProtocol() << std::endl; std::cerr << " Mode: " << (*iter).second.PrintAccessModeType() << std::endl; std::cerr << " Batch Type: " << (*iter).second.PrintBatchType() << std::endl; std::cerr << " MPI Impl: " << (*iter).second.PrintMpiImplType() << std::endl; std::cerr << "************************************************" << std::endl; } #endif } bool SALOME_ResourcesCatalog_Handler::ProcessCluster(xmlNodePtr cluster_descr, ParserResourcesType & resource) { // Ajout d'un cluster // hostname, use et nbOfProc sont obligatoires if (xmlHasProp(cluster_descr, (const xmlChar*)test_hostname)) { xmlChar* hostname = xmlGetProp(cluster_descr, (const xmlChar*)test_hostname); resource.HostName = (const char*)hostname; xmlFree(hostname); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! found a cluster without a hostname" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! this cluster will not be added" << std::endl; return false; } if (xmlHasProp(cluster_descr, (const xmlChar*)test_name)) { xmlChar* name = xmlGetProp(cluster_descr, (const xmlChar*)test_name); resource.Name = (const char*)name; resource.DataForSort._Name = (const char*)name; xmlFree(name); } else { resource.Name = resource.HostName; resource.DataForSort._Name = resource.HostName; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! No Name found use Hostname for resource: " << _resource.Name << std::endl; } if (xmlHasProp(cluster_descr, (const xmlChar*)test_use)) { xmlChar* use = xmlGetProp(cluster_descr, (const xmlChar*)test_use); resource.use = (const char*)use; xmlFree(use); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! found a cluster without a use" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! this cluster will not be added" << std::endl; return false; } if (xmlHasProp(cluster_descr, (const xmlChar*)test_nb_of_proc)) { xmlChar* nb_of_proc = xmlGetProp(cluster_descr, (const xmlChar*)test_nb_of_proc); resource.nbOfProc = atoi((const char*)nb_of_proc); xmlFree(nb_of_proc); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! found a cluster without a nbOfProc" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! this cluster will not be added" << std::endl; return false; } if (xmlHasProp(cluster_descr, (const xmlChar*)test_mpi)) { xmlChar* mpi = xmlGetProp(cluster_descr, (const xmlChar*)test_mpi); std::string anMpi = (const char*)mpi; xmlFree(mpi); if (anMpi == "lam") resource.mpi = lam; else if (anMpi == "mpich1") resource.mpi = mpich1; else if (anMpi == "mpich2") resource.mpi = mpich2; else if (anMpi == "openmpi") resource.mpi = openmpi; else if (anMpi == "slurmmpi") resource.mpi = slurmmpi; else if (anMpi == "prun") resource.mpi = prun; else resource.mpi = nompi; } // Parsing des membres du cluster xmlNodePtr aCurSubNode = cluster_descr->xmlChildrenNode; while(aCurSubNode != NULL) { if (!xmlStrcmp(aCurSubNode->name, (const xmlChar*)test_members)) { xmlNodePtr members = aCurSubNode->xmlChildrenNode; while (members != NULL) { // Process members if (!xmlStrcmp(members->name, (const xmlChar*)test_machine)) { ParserResourcesClusterMembersType new_member; if (ProcessMember(members, new_member)) resource.ClusterMembersList.push_back(new_member); } members = members->next; } } aCurSubNode = aCurSubNode->next; } // Test: Il faut au moins un membre pour que le cluster soit correct ! if (resource.ClusterMembersList.empty()) { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! found a cluster without a member" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessCluster : !!! Warning !!! this cluster will not be added" << std::endl; return false; } return true; } bool SALOME_ResourcesCatalog_Handler::ProcessMember(xmlNodePtr member_descr, ParserResourcesClusterMembersType & resource) { if (xmlHasProp(member_descr, (const xmlChar*)test_hostname)) { xmlChar* hostname = xmlGetProp(member_descr, (const xmlChar*)test_hostname); resource.HostName = (const char*)hostname; xmlFree(hostname); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a hostname" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(member_descr, (const xmlChar*)test_protocol)) { xmlChar* protocol= xmlGetProp(member_descr, (const xmlChar*)test_protocol); try { resource.Protocol = ParserResourcesType::stringToProtocol((const char *)protocol); } catch (SALOME_Exception e) { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine with a bad protocol" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } xmlFree(protocol); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a protocol" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(member_descr, (const xmlChar*)test_cluster_internal_protocol)) { xmlChar* iprotocol= xmlGetProp(member_descr, (const xmlChar*)test_cluster_internal_protocol); try { resource.ClusterInternalProtocol = ParserResourcesType::stringToProtocol((const char *)iprotocol); } catch (SALOME_Exception e) { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine with a bad protocol" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } xmlFree(iprotocol); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a protocol" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(member_descr, (const xmlChar*)test_user_name)) { xmlChar* user_name= xmlGetProp(member_descr, (const xmlChar*)test_user_name); resource.UserName = (const char*)user_name; xmlFree(user_name); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a user name" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(member_descr, (const xmlChar*)test_nb_of_nodes)) { xmlChar* nb_of_nodes = xmlGetProp(member_descr, (const xmlChar*)test_nb_of_nodes); resource.DataForSort._nbOfNodes = atoi((const char*)nb_of_nodes); xmlFree(nb_of_nodes); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a nbOfNodes" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(member_descr, (const xmlChar*)test_nb_of_proc_per_node)) { xmlChar* nb_of_proc_per_node = xmlGetProp(member_descr, (const xmlChar*)test_nb_of_proc_per_node); resource.DataForSort._nbOfProcPerNode = atoi((const char*)nb_of_proc_per_node); xmlFree(nb_of_proc_per_node); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a nbOfProcPerNode" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(member_descr, (const xmlChar*)test_appli_path)) { xmlChar* appli_path = xmlGetProp(member_descr, (const xmlChar*)test_appli_path); resource.AppliPath = (const char*)appli_path; xmlFree(appli_path); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning found a machine without a AppliPath" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMember : Warning this machine will not be added" << std::endl; return false; } return true; } bool SALOME_ResourcesCatalog_Handler::ProcessMachine(xmlNodePtr machine_descr, ParserResourcesType & resource) { if (xmlHasProp(machine_descr, (const xmlChar*)test_hostname)) { xmlChar* hostname = xmlGetProp(machine_descr, (const xmlChar*)test_hostname); resource.HostName = (const char*)hostname; xmlFree(hostname); } else { std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMachine : Warning found a machine without a hostname" << std::endl; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMachine : Warning this machine will not be added" << std::endl; return false; } if (xmlHasProp(machine_descr, (const xmlChar*)test_name)) { xmlChar* name = xmlGetProp(machine_descr, (const xmlChar*)test_name); resource.Name = (const char*)name; resource.DataForSort._Name = (const char*)name; xmlFree(name); } else { resource.Name = resource.HostName; resource.DataForSort._Name = resource.HostName; std::cerr << "SALOME_ResourcesCatalog_Handler::ProcessMachine : !!! Warning !!! No Name found use Hostname for resource: " << _resource.Name << std::endl; } if (xmlHasProp(machine_descr, (const xmlChar*)test_batch_queue)) { xmlChar* batch_queue = xmlGetProp(machine_descr, (const xmlChar*)test_batch_queue); resource.batchQueue = (const char*)batch_queue; xmlFree(batch_queue); } else resource.batchQueue = ""; if (xmlHasProp(machine_descr, (const xmlChar*)test_user_commands)) { xmlChar* user_commands= xmlGetProp(machine_descr, (const xmlChar*)test_user_commands); resource.userCommands = (const char*)user_commands; xmlFree(user_commands); } else resource.userCommands = ""; if (xmlHasProp(machine_descr, (const xmlChar*)test_protocol)) { xmlChar* protocol= xmlGetProp(machine_descr, (const xmlChar*)test_protocol); try { resource.Protocol = ParserResourcesType::stringToProtocol((const char *)protocol); } catch (SALOME_Exception e) { // If it'not in all theses cases, the protocol is affected to rsh resource.Protocol = rsh; } xmlFree(protocol); } else resource.Protocol = rsh; if (xmlHasProp(machine_descr, (const xmlChar*)test_cluster_internal_protocol)) { xmlChar* iprotocol= xmlGetProp(machine_descr, (const xmlChar*)test_cluster_internal_protocol); try { resource.ClusterInternalProtocol = ParserResourcesType::stringToProtocol((const char *)iprotocol); } catch (SALOME_Exception e) { // If it'not in all theses cases, the protocol is affected to rsh resource.ClusterInternalProtocol = rsh; } xmlFree(iprotocol); } else resource.ClusterInternalProtocol = resource.Protocol; if (xmlHasProp(machine_descr, (const xmlChar*)test_mode)) { xmlChar* mode=xmlGetProp(machine_descr, (const xmlChar*)test_mode); switch ( mode[0] ) { case 'i': resource.Mode = interactive; break; case 'b': resource.Mode = batch; break; default: // If it'not in all theses cases, the mode is affected to interactive resource.Mode = interactive; break; } xmlFree(mode); } else resource.Mode = interactive; if (xmlHasProp(machine_descr, (const xmlChar*)test_batch)) { xmlChar* batch = xmlGetProp(machine_descr, (const xmlChar*)test_batch); std::string aBatch = (const char*)batch; xmlFree(batch); if (aBatch == "pbs") resource.Batch = pbs; else if (aBatch == "lsf") resource.Batch = lsf; else if (aBatch == "sge") resource.Batch = sge; else if (aBatch == "ssh_batch") resource.Batch = ssh_batch; else if (aBatch == "ccc") resource.Batch = ccc; else if (aBatch == "slurm") resource.Batch = slurm; else if (aBatch == "ll") resource.Batch = ll; else if (aBatch == "vishnu") resource.Batch = vishnu; else resource.Batch = none; } if (xmlHasProp(machine_descr, (const xmlChar*)test_mpi)) { xmlChar* mpi = xmlGetProp(machine_descr, (const xmlChar*)test_mpi); std::string anMpi = (const char*)mpi; xmlFree(mpi); if (anMpi == "lam") resource.mpi = lam; else if (anMpi == "mpich1") resource.mpi = mpich1; else if (anMpi == "mpich2") resource.mpi = mpich2; else if (anMpi == "openmpi") resource.mpi = openmpi; else if (anMpi == "slurmmpi") resource.mpi = slurmmpi; else if (anMpi == "prun") resource.mpi = prun; else resource.mpi = nompi; } if (xmlHasProp(machine_descr, (const xmlChar*)test_user_name)) { xmlChar* user_name= xmlGetProp(machine_descr, (const xmlChar*)test_user_name); resource.UserName = (const char*)user_name; xmlFree(user_name); } if (xmlHasProp(machine_descr, (const xmlChar*)test_appli_path)) { xmlChar* appli_path = xmlGetProp(machine_descr, (const xmlChar*)test_appli_path); resource.AppliPath = (const char*)appli_path; xmlFree(appli_path); } if (xmlHasProp(machine_descr, (const xmlChar*)test_os)) { xmlChar* os = xmlGetProp(machine_descr, (const xmlChar*)test_os); resource.OS = (const char*)os; xmlFree(os); } if (xmlHasProp(machine_descr, (const xmlChar*)test_mem_in_mb)) { xmlChar* mem_in_mb = xmlGetProp(machine_descr, (const xmlChar*)test_mem_in_mb); resource.DataForSort._memInMB = atoi((const char*)mem_in_mb); xmlFree(mem_in_mb); } if (xmlHasProp(machine_descr, (const xmlChar*)test_cpu_freq_mhz)) { xmlChar* cpu_freq_mhz = xmlGetProp(machine_descr, (const xmlChar*)test_cpu_freq_mhz); resource.DataForSort._CPUFreqMHz = atoi((const char*)cpu_freq_mhz); xmlFree(cpu_freq_mhz); } if (xmlHasProp(machine_descr, (const xmlChar*)test_nb_of_nodes)) { xmlChar* nb_of_nodes = xmlGetProp(machine_descr, (const xmlChar*)test_nb_of_nodes); resource.DataForSort._nbOfNodes = atoi((const char*)nb_of_nodes); xmlFree(nb_of_nodes); } if (xmlHasProp(machine_descr, (const xmlChar*)test_nb_of_proc_per_node)) { xmlChar* nb_of_proc_per_node = xmlGetProp(machine_descr, (const xmlChar*)test_nb_of_proc_per_node); resource.DataForSort._nbOfProcPerNode = atoi((const char*)nb_of_proc_per_node); xmlFree(nb_of_proc_per_node); } if (xmlHasProp(machine_descr, (const xmlChar*)test_is_cluster_head)) { xmlChar* is_cluster_head = xmlGetProp(machine_descr, (const xmlChar*)test_is_cluster_head); std::string str_ich = (const char*)is_cluster_head; if (str_ich == "true") { resource.is_cluster_head = true; } else { resource.is_cluster_head = false; } xmlFree(is_cluster_head); } else { resource.is_cluster_head = false; } if (xmlHasProp(machine_descr, (const xmlChar*)test_working_directory)) { xmlChar* working_directory = xmlGetProp(machine_descr, (const xmlChar*)test_working_directory); resource.working_directory = (const char*)working_directory; xmlFree(working_directory); } else { resource.working_directory = ""; } // Process children nodes xmlNodePtr aCurSubNode = machine_descr->xmlChildrenNode; while(aCurSubNode != NULL) { // Process components if ( !xmlStrcmp(aCurSubNode->name, (const xmlChar*)test_components) ) { //If a component is given, it is in a module with the same name //except if the module name is given if (xmlHasProp(aCurSubNode, (const xmlChar*)test_component_name)) { xmlChar* component_name = xmlGetProp(aCurSubNode, (const xmlChar*)test_component_name); std::string aComponentName = (const char*)component_name; _resource.ComponentsList.push_back(aComponentName); if (xmlHasProp(aCurSubNode, (const xmlChar*)test_module_name)) { xmlChar* module_name = xmlGetProp(aCurSubNode, (const xmlChar*)test_module_name); std::string aModuleName = (const char*)module_name; _resource.ModulesList.push_back(aModuleName); xmlFree(module_name); } else _resource.ModulesList.push_back(aComponentName); xmlFree(component_name); } } // Process modules else if ( !xmlStrcmp(aCurSubNode->name, (const xmlChar*)test_modules) ) { // If a module is given, we create an entry in componentsList and modulesList // with the same name (module == component) if (xmlHasProp(aCurSubNode, (const xmlChar*)test_module_name)) { xmlChar* component_name = xmlGetProp(aCurSubNode, (const xmlChar*)test_module_name); std::string aComponentName = (const char*)component_name; _resource.ComponentsList.push_back(aComponentName); _resource.ModulesList.push_back(aComponentName); xmlFree(component_name); } } aCurSubNode = aCurSubNode->next; } return true; } //============================================================================= /*! * Fill the document tree in xml file, used to write in an xml file. * \param theDoc document to fill. */ //============================================================================= void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc) { // Node pointers xmlNodePtr root_node = NULL, node = NULL, node1 = NULL; root_node = xmlNewNode(NULL, BAD_CAST "resources"); xmlDocSetRootElement(theDoc, root_node); std::map::iterator iter = _resources_list.begin(); for (; iter != _resources_list.end(); iter++) { node = xmlNewChild(root_node, NULL, BAD_CAST test_machine, NULL); RES_MESSAGE("Add resource name = " << (*iter).second.Name.c_str()); xmlNewProp(node, BAD_CAST test_name, BAD_CAST (*iter).second.Name.c_str()); xmlNewProp(node, BAD_CAST test_hostname, BAD_CAST (*iter).second.HostName.c_str()); xmlNewProp(node, BAD_CAST test_appli_path, BAD_CAST (*iter).second.AppliPath.c_str()); xmlNewProp(node, BAD_CAST test_batch_queue, BAD_CAST (*iter).second.batchQueue.c_str()); xmlNewProp(node, BAD_CAST test_user_commands, BAD_CAST (*iter).second.userCommands.c_str()); xmlNewProp(node, BAD_CAST test_protocol, BAD_CAST ParserResourcesType::protocolToString((*iter).second.Protocol).c_str()); xmlNewProp(node, BAD_CAST test_cluster_internal_protocol, BAD_CAST ParserResourcesType::protocolToString((*iter).second.ClusterInternalProtocol).c_str()); xmlNewProp(node, BAD_CAST test_working_directory, BAD_CAST (*iter).second.working_directory.c_str()); if ((*iter).second.is_cluster_head) xmlNewProp(node, BAD_CAST test_is_cluster_head, BAD_CAST "true"); else xmlNewProp(node, BAD_CAST test_is_cluster_head, BAD_CAST "false"); switch ((*iter).second.Mode) { case interactive: xmlNewProp(node, BAD_CAST test_mode, BAD_CAST "interactive"); break; case batch: xmlNewProp(node, BAD_CAST test_mode, BAD_CAST "batch"); break; default: xmlNewProp(node, BAD_CAST test_mode, BAD_CAST "interactive"); } switch ((*iter).second.Batch) { case pbs: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "pbs"); break; case lsf: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "lsf"); break; case sge: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "sge"); break; case ccc: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "ccc"); break; case slurm: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "slurm"); break; case ssh_batch: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "ssh_batch"); break; case ll: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "ll"); break; case vishnu: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "vishnu"); break; default: xmlNewProp(node, BAD_CAST test_batch, BAD_CAST ""); } switch ((*iter).second.mpi) { case lam: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "lam"); break; case mpich1: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "mpich1"); break; case mpich2: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "mpich2"); break; case openmpi: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "openmpi"); break; case slurmmpi: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "slurmmpi"); break; case prun: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "prun"); break; default: xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST ""); } xmlNewProp(node, BAD_CAST test_user_name, BAD_CAST (*iter).second.UserName.c_str()); std::vector::const_iterator iter2 = (*iter).second.ComponentsList.begin(); for(;iter2 != (*iter).second.ComponentsList.end(); iter2++) { node1 = xmlNewChild(node, NULL, BAD_CAST test_components, NULL); xmlNewProp(node1, BAD_CAST test_component_name, BAD_CAST (*iter2).c_str()); } xmlNewProp(node, BAD_CAST test_os, BAD_CAST (*iter).second.OS.c_str()); std::ostringstream mem_stream; mem_stream << (*iter).second.DataForSort._memInMB; xmlNewProp(node, BAD_CAST test_mem_in_mb, BAD_CAST mem_stream.str().c_str()); std::ostringstream cpu_stream; cpu_stream << (*iter).second.DataForSort._CPUFreqMHz; xmlNewProp(node, BAD_CAST test_cpu_freq_mhz, BAD_CAST cpu_stream.str().c_str()); std::ostringstream nb_nodes_stream; nb_nodes_stream << (*iter).second.DataForSort._nbOfNodes; xmlNewProp(node, BAD_CAST test_nb_of_nodes, BAD_CAST nb_nodes_stream.str().c_str()); std::ostringstream nb_proc_per_nodes_stream; nb_proc_per_nodes_stream << (*iter).second.DataForSort._nbOfProcPerNode; xmlNewProp(node, BAD_CAST test_nb_of_proc_per_node, BAD_CAST nb_proc_per_nodes_stream.str().c_str()); } } salome-kernel-6.5.0/src/ResourcesManager/SALOME_ResourcesCatalog_Handler.hxx000077500000000000000000000063361177004724000270240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl) // File : SALOME_ResourcesCatalog_Handler.hxx // Author : Estelle Deville // Module : SALOME //$Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ResourcesManager/SALOME_ResourcesCatalog_Handler.hxx,v 1.6.2.3.10.3.2.1 2012-04-12 14:05:20 vsr Exp $ // #ifndef SALOME_RESOURCES_CATALOG_HANDLER #define SALOME_RESOURCES_CATALOG_HANDLER #include "ResourcesManager_Defs.hxx" #include "SALOME_ResourcesCatalog_Parser.hxx" #include #include #include class RESOURCESMANAGER_EXPORT SALOME_ResourcesCatalog_Handler { public : SALOME_ResourcesCatalog_Handler(MapOfParserResourcesType& resources_list); const MapOfParserResourcesType& GetResourcesAfterParsing() const; virtual ~SALOME_ResourcesCatalog_Handler(); void ProcessXmlDocument(xmlDocPtr theDoc); bool ProcessMachine(xmlNodePtr machine_descr, ParserResourcesType & resource); bool ProcessCluster(xmlNodePtr cluster_descr, ParserResourcesType & resource); bool ProcessMember(xmlNodePtr member_descr, ParserResourcesClusterMembersType & resource); void PrepareDocToXmlFile(xmlDocPtr theDoc); private : std::string previous_component_name; ParserResourcesType _resource; MapOfParserResourcesType& _resources_list; const char *test_machine; const char *test_cluster; const char *test_name; const char *test_hostname; const char *test_protocol; const char *test_cluster_internal_protocol; const char *test_mode; const char *test_batch; const char *test_mpi; const char *test_user_name; const char *test_appli_path; // for compatibility const char *test_modules; const char *test_module_name; const char *test_components; const char *test_component_name; const char *test_os; const char *test_mem_in_mb; const char *test_cpu_freq_mhz; const char *test_nb_of_nodes; const char *test_nb_of_proc; const char *test_nb_of_proc_per_node; const char *test_batch_queue; const char *test_user_commands; const char *test_use; const char *test_members; const char *test_is_cluster_head; const char *test_working_directory; }; #endif // SALOME_RESOURCES_CATALOG_HANDLER salome-kernel-6.5.0/src/ResourcesManager/SALOME_ResourcesCatalog_Parser.cxx000077500000000000000000000177121177004724000266760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_ResourcesCatalog_Parser.hxx" #include "Utils_SALOME_Exception.hxx" #include #include #define NULL_VALUE 0 unsigned int ResourceDataToSort::_nbOfProcWanted = NULL_VALUE; unsigned int ResourceDataToSort::_nbOfNodesWanted = NULL_VALUE; unsigned int ResourceDataToSort::_nbOfProcPerNodeWanted = NULL_VALUE; unsigned int ResourceDataToSort::_CPUFreqMHzWanted = NULL_VALUE; unsigned int ResourceDataToSort::_memInMBWanted = NULL_VALUE; ResourceDataToSort::ResourceDataToSort() {} ResourceDataToSort::ResourceDataToSort(const std::string& name, unsigned int nbOfNodes, unsigned int nbOfProcPerNode, unsigned int CPUFreqMHz, unsigned int memInMB): _Name(name), _nbOfNodes(nbOfNodes), _nbOfProcPerNode(nbOfProcPerNode), _CPUFreqMHz(CPUFreqMHz), _memInMB(memInMB) {} //! Method used by list::sort to sort the resources used in SALOME_ResourcesManager::GetResourcesFitting bool ResourceDataToSort::operator< (const ResourceDataToSort& other) const { unsigned int nbPts = GetNumberOfPoints(); return nbPts < other.GetNumberOfPoints(); } unsigned int ResourceDataToSort::GetNumberOfPoints() const { unsigned int ret = 0; //priority 0 : Nb of proc if (_nbOfProcWanted != NULL_VALUE) { unsigned int nb_proc = _nbOfNodes * _nbOfProcPerNode; if (nb_proc == _nbOfProcWanted) ret += 30000; else if (nb_proc > _nbOfProcWanted) ret += 20000; else ret += 10000; } //priority 1 : Nb of nodes if (_nbOfNodesWanted != NULL_VALUE) { if (_nbOfNodes == _nbOfNodesWanted) ret += 3000; else if (_nbOfNodes > _nbOfNodesWanted) ret += 2000; else ret += 1000; } //priority 2 : Nb of proc by node if (_nbOfProcPerNodeWanted != NULL_VALUE) { if (_nbOfProcPerNode == _nbOfProcPerNodeWanted) ret += 300; else if (_nbOfProcPerNode > _nbOfProcPerNodeWanted) ret += 200; else ret += 100; } //priority 3 : Cpu freq if (_CPUFreqMHzWanted != NULL_VALUE) { if (_CPUFreqMHz == _CPUFreqMHzWanted) ret += 30; else if (_CPUFreqMHz > _CPUFreqMHzWanted) ret += 20; else ret += 10; } //priority 4 : memory if (_memInMBWanted != NULL_VALUE) { if (_memInMB == _memInMBWanted) ret += 3; else if (_memInMB > _memInMBWanted) ret += 2; else ret += 1; } //RES_MESSAGE("[GetNumberOfPoints] points number for resource: " << _Name << " " << ret); return ret; } //! Method used for debug void ResourceDataToSort::Print() const { std::cout << _nbOfNodes << std::endl; std::cout << _nbOfProcPerNode << std::endl; std::cout << _CPUFreqMHz << std::endl; std::cout << _memInMB << std::endl; } std::string ParserResourcesType::protocolToString(AccessProtocolType protocol) { switch (protocol) { case rsh: return "rsh"; case ssh: return "ssh"; case srun: return "srun"; case pbsdsh: return "pbsdsh"; case blaunch: return "blaunch"; default: throw SALOME_Exception("Unknown protocol"); } } AccessProtocolType ParserResourcesType::stringToProtocol(const std::string & protocolStr) { if (protocolStr == "rsh") return rsh; else if (protocolStr == "ssh") return ssh; else if (protocolStr == "srun") return srun; else if (protocolStr == "pbsdsh") return pbsdsh; else if (protocolStr == "blaunch") return blaunch; else throw SALOME_Exception("Unknown protocol"); } void ParserResourcesType::Print() { std::ostringstream oss; oss << std::endl << "Name : " << Name << std::endl << "HostName : " << HostName << std::endl << "NbOfNodes : " << DataForSort._nbOfNodes << std::endl << "NbOfProcPerNode : " << DataForSort._nbOfProcPerNode << std::endl << "CPUFreqMHz : " << DataForSort._CPUFreqMHz << std::endl << "MemInMB : " << DataForSort._memInMB << std::endl << "Protocol : " << protocolToString(Protocol) << std::endl << "ClusterInternalProtocol : " << protocolToString(ClusterInternalProtocol) << std::endl << "Mode : " << Mode << std::endl << "Batch : " << Batch << std::endl << "mpi : " << mpi << std::endl << "UserName : " << UserName << std::endl << "AppliPath : " << AppliPath << std::endl << "OS : " << OS << std::endl << "batchQueue : " << batchQueue << std::endl << "userCommands : " << userCommands << std::endl << "use : " << use << std::endl << "NbOfProc : " << nbOfProc << std::endl << "Modules : " << std::endl << "Components : " << std::endl << "Is Cluster Head: " << is_cluster_head << std::endl << "Working Directory: " << working_directory << std::endl; for(unsigned int i=0;i::iterator it; for(it = ClusterMembersList.begin(); it != ClusterMembersList.end(); it++) { oss << "Cluster member called : " << (*it).HostName << std::endl; } std::cout << oss.str() << std::endl; } std::string ParserResourcesType::PrintAccessProtocolType() const { return protocolToString(Protocol); } std::string ParserResourcesType::PrintClusterInternalProtocol() const { return protocolToString(ClusterInternalProtocol); } std::string ParserResourcesType::PrintAccessModeType() const { if (Mode == interactive) return "interactive"; else return "batch"; } std::string ParserResourcesType::PrintBatchType() const { if (Batch == none) return "none"; else if (Batch == pbs) return "pbs"; else if (Batch == lsf) return "lsf"; else if (Batch == sge) return "sge"; else if (Batch == ccc) return "ccc"; else if (Batch == slurm) return "slurm"; else if (Batch == ll) return "ll"; else if (Batch == vishnu) return "vishnu"; else return "ssh"; } std::string ParserResourcesType::PrintMpiImplType() const { if (mpi == nompi) return "no mpi"; else if (mpi == lam) return "lam"; else if (mpi == mpich1) return "mpich1"; else if (mpi == mpich2) return "mpich2"; else if (mpi == openmpi) return "openmpi"; else if (mpi == slurmmpi) return "slurmmpi"; else return "prun"; } void ParserResourcesType::Clear() { Name = ""; HostName = ""; Protocol = rsh; ClusterInternalProtocol = rsh; Mode = interactive; Batch = none; mpi = nompi; UserName = ""; AppliPath = ""; batchQueue = ""; userCommands = ""; ComponentsList.clear(); OS = ""; use = ""; ClusterMembersList.clear(); nbOfProc = 1; is_cluster_head = false; working_directory = ""; DataForSort._Name = ""; DataForSort._nbOfNodes = 1; DataForSort._nbOfProcPerNode = 1; DataForSort._CPUFreqMHz = 0; DataForSort._memInMB = 0; } salome-kernel-6.5.0/src/ResourcesManager/SALOME_ResourcesCatalog_Parser.hxx000077500000000000000000000101721177004724000266740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl) // File : SALOME_ResourcesCatalog_Parser.hxx // Author : Estelle Deville // Module : SALOME //$Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ResourcesManager/SALOME_ResourcesCatalog_Parser.hxx,v 1.6.2.3.10.8.2.1 2012-04-12 14:05:20 vsr Exp $ // #ifndef SALOME_RESOURCES_CATALOG_PARSER #define SALOME_RESOURCES_CATALOG_PARSER #include "ResourcesManager_Defs.hxx" #include #include #include #include #include #ifdef WNT #pragma warning(disable:4251) // Warning DLL Interface ... #endif enum AccessProtocolType {rsh, ssh, srun, pbsdsh, blaunch}; enum AccessModeType {interactive, batch}; enum BatchType {none, pbs, lsf, sge, ssh_batch, ccc, ll, slurm, vishnu}; enum MpiImplType {nompi, lam, mpich1, mpich2, openmpi, slurmmpi, prun}; class RESOURCESMANAGER_EXPORT ResourceDataToSort { public: std::string _Name; unsigned int _nbOfNodes; unsigned int _nbOfProcPerNode; unsigned int _CPUFreqMHz; unsigned int _memInMB; static unsigned int _nbOfProcWanted; static unsigned int _nbOfNodesWanted; static unsigned int _nbOfProcPerNodeWanted; static unsigned int _CPUFreqMHzWanted; static unsigned int _memInMBWanted; public: ResourceDataToSort(); ResourceDataToSort(const std::string& name, unsigned int nbOfNodes, unsigned int nbOfProcPerNode, unsigned int CPUFreqMHz, unsigned int memInMB); bool operator< (const ResourceDataToSort& other) const; void Print() const; private: unsigned int GetNumberOfPoints() const; }; struct RESOURCESMANAGER_EXPORT ParserResourcesClusterMembersType { std::string HostName; AccessProtocolType Protocol; AccessProtocolType ClusterInternalProtocol; std::string UserName; std::string AppliPath; ResourceDataToSort DataForSort; }; struct RESOURCESMANAGER_EXPORT ParserResourcesType { ResourceDataToSort DataForSort; std::string Name; std::string HostName; AccessProtocolType Protocol; AccessProtocolType ClusterInternalProtocol; AccessModeType Mode; BatchType Batch; MpiImplType mpi; std::string UserName; std::string AppliPath; std::vector ComponentsList; std::vector ModulesList; std::string OS; std::string batchQueue; std::string userCommands; std::string use; std::list ClusterMembersList; unsigned int nbOfProc; bool is_cluster_head; std::string working_directory; void Print(); void Clear(); static std::string protocolToString(AccessProtocolType protocol); static AccessProtocolType stringToProtocol(const std::string & protocolStr); std::string PrintAccessProtocolType() const; std::string PrintAccessModeType() const; std::string PrintBatchType() const; std::string PrintMpiImplType() const; std::string PrintClusterInternalProtocol() const; }; typedef std::map MapOfParserResourcesType; typedef std::map::iterator MapOfParserResourcesType_it; #endif //SALOME_RESOURCES_CATALOG_PARSER salome-kernel-6.5.0/src/ResourcesManager/SALOME_ResourcesManager.cxx000077500000000000000000000450731177004724000253630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOME_ResourcesManager.hxx" #include "Utils_ExceptHandlers.hxx" #include "Utils_CorbaException.hxx" #include "OpUtil.hxx" #include #include #ifndef WIN32 #include #else #include #include #endif #include #include #include #include #include #include #include #include #include "utilities.h" #define MAX_SIZE_FOR_HOSTNAME 256; const char *SALOME_ResourcesManager::_ResourcesManagerNameInNS = "/ResourcesManager"; //============================================================================= /*! * just for test */ //============================================================================= SALOME_ResourcesManager:: SALOME_ResourcesManager(CORBA::ORB_ptr orb, PortableServer::POA_var poa, SALOME_NamingService *ns, const char *xmlFilePath) : _rm(xmlFilePath) { MESSAGE("SALOME_ResourcesManager constructor"); _NS = ns; _orb = CORBA::ORB::_duplicate(orb) ; _poa = PortableServer::POA::_duplicate(poa) ; PortableServer::ObjectId_var id = _poa->activate_object(this); CORBA::Object_var obj = _poa->id_to_reference(id); Engines::ResourcesManager_var refContMan = Engines::ResourcesManager::_narrow(obj); _NS->Register(refContMan,_ResourcesManagerNameInNS); MESSAGE("SALOME_ResourcesManager constructor end"); } //============================================================================= /*! * Standard constructor, parse resource file. * - if ${APPLI} exists in environment, * look for ${HOME}/${APPLI}/CatalogResources.xml * - else look for default: * ${KERNEL_ROOT_DIR}/share/salome/resources/kernel/CatalogResources.xml * - parse XML resource file. */ //============================================================================= SALOME_ResourcesManager::SALOME_ResourcesManager(CORBA::ORB_ptr orb, PortableServer::POA_var poa, SALOME_NamingService *ns) : _rm() { MESSAGE("SALOME_ResourcesManager constructor"); _NS = ns; _orb = CORBA::ORB::_duplicate(orb) ; _poa = PortableServer::POA::_duplicate(poa) ; PortableServer::ObjectId_var id = _poa->activate_object(this); CORBA::Object_var obj = _poa->id_to_reference(id); Engines::ResourcesManager_var refContMan = Engines::ResourcesManager::_narrow(obj); _NS->Register(refContMan,_ResourcesManagerNameInNS); MESSAGE("SALOME_ResourcesManager constructor end"); } //============================================================================= /*! * Standard Destructor */ //============================================================================= SALOME_ResourcesManager::~SALOME_ResourcesManager() { MESSAGE("SALOME_ResourcesManager destructor"); } //============================================================================= /*! CORBA method: * shutdown all the containers, then the ContainerManager servant */ //============================================================================= void SALOME_ResourcesManager::Shutdown() { MESSAGE("Shutdown"); _NS->Destroy_Name(_ResourcesManagerNameInNS); PortableServer::ObjectId_var oid = _poa->servant_to_id(this); _poa->deactivate_object(oid); } //============================================================================= //! get the name of resources fitting the specified constraints (params) /*! * If hostname specified, check it is local or known in resources catalog. * * Else * - select first machines with corresponding OS (all machines if * parameter OS empty), * - then select the sublist of machines on which the component is known * (if the result is empty, that probably means that the inventory of * components is probably not done, so give complete list from previous step) */ //============================================================================= Engines::ResourceList * SALOME_ResourcesManager::GetFittingResources(const Engines::ResourceParameters& params) { MESSAGE("ResourcesManager::GetFittingResources"); Engines::ResourceList * ret = new Engines::ResourceList; // CORBA -> C++ resourceParams p; p.name = params.name; p.hostname = params.hostname; p.OS = params.OS; p.nb_proc = params.nb_proc; p.nb_node = params.nb_node; p.nb_proc_per_node = params.nb_proc_per_node; p.cpu_clock = params.cpu_clock; p.mem_mb = params.mem_mb; for(unsigned int i=0; i vec = _rm.GetFittingResources(p); // C++ -> CORBA ret->length(vec.size()); for(unsigned int i=0;i C++ std::vector rl; for(unsigned int i=0; i C++ std::vector rl; for(unsigned int i=0; iname = CORBA::string_dup(resource.Name.c_str()); p_ptr->hostname = CORBA::string_dup(resource.HostName.c_str()); p_ptr->protocol = ParserResourcesType::protocolToString(resource.Protocol).c_str(); p_ptr->iprotocol = ParserResourcesType::protocolToString(resource.ClusterInternalProtocol).c_str(); p_ptr->username = CORBA::string_dup(resource.UserName.c_str()); p_ptr->applipath = CORBA::string_dup(resource.AppliPath.c_str()); p_ptr->componentList.length(resource.ComponentsList.size()); for(unsigned int i=0;icomponentList[i] = CORBA::string_dup(resource.ComponentsList[i].c_str()); p_ptr->OS = CORBA::string_dup(resource.OS.c_str()); p_ptr->mem_mb = resource.DataForSort._memInMB; p_ptr->cpu_clock = resource.DataForSort._CPUFreqMHz; p_ptr->nb_proc_per_node = resource.DataForSort._nbOfProcPerNode; p_ptr->nb_node = resource.DataForSort._nbOfNodes; p_ptr->is_cluster_head = resource.is_cluster_head; p_ptr->working_directory = CORBA::string_dup(resource.working_directory.c_str()); if( resource.mpi == lam ) p_ptr->mpiImpl = "lam"; else if( resource.mpi == mpich1 ) p_ptr->mpiImpl = "mpich1"; else if( resource.mpi == mpich2 ) p_ptr->mpiImpl = "mpich2"; else if( resource.mpi == openmpi ) p_ptr->mpiImpl = "openmpi"; else if( resource.mpi == slurmmpi ) p_ptr->mpiImpl = "slurmmpi"; else if( resource.mpi == prun ) p_ptr->mpiImpl = "prun"; if( resource.Batch == pbs ) p_ptr->batch = "pbs"; else if( resource.Batch == lsf ) p_ptr->batch = "lsf"; else if( resource.Batch == sge ) p_ptr->batch = "sge"; else if( resource.Batch == ccc ) p_ptr->batch = "ccc"; else if( resource.Batch == slurm ) p_ptr->batch = "slurm"; else if( resource.Batch == ssh_batch ) p_ptr->batch = "ssh"; else if( resource.Batch == ll ) p_ptr->batch = "ll"; else if( resource.Batch == vishnu ) p_ptr->batch = "vishnu"; return p_ptr; } void SALOME_ResourcesManager::AddResource(const Engines::ResourceDefinition& new_resource, CORBA::Boolean write, const char * xml_file) { ParserResourcesType resource; resource.Name = new_resource.name.in(); resource.HostName = new_resource.hostname.in(); resource.OS = new_resource.OS.in(); resource.AppliPath = new_resource.applipath.in(); resource.DataForSort._memInMB = new_resource.mem_mb; resource.DataForSort._CPUFreqMHz = new_resource.cpu_clock; resource.DataForSort._nbOfNodes = new_resource.nb_node; resource.DataForSort._nbOfProcPerNode = new_resource.nb_proc_per_node; resource.UserName = new_resource.username.in(); resource.is_cluster_head = new_resource.is_cluster_head; resource.working_directory = new_resource.working_directory.in(); std::string aBatch = new_resource.batch.in(); if (aBatch == "pbs") resource.Batch = pbs; else if (aBatch == "lsf") resource.Batch = lsf; else if (aBatch == "sge") resource.Batch = sge; else if (aBatch == "slurm") resource.Batch = slurm; else if (aBatch == "ccc") resource.Batch = ccc; else if (aBatch == "ssh_batch") resource.Batch = ssh_batch; else if (aBatch == "ll") resource.Batch = ll; else if (aBatch == "vishnu") resource.Batch = vishnu; else if (aBatch == "") resource.Batch = none; else { INFOS("Bad Batch definition in AddResource: " << aBatch); std::string message("Bad Batch definition in AddResource: "); message += aBatch; THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM); } std::string anMpi = new_resource.mpiImpl.in(); if (anMpi == "lam") resource.mpi = lam; else if (anMpi == "mpich1") resource.mpi = mpich1; else if (anMpi == "mpich2") resource.mpi = mpich2; else if (anMpi == "openmpi") resource.mpi = openmpi; else if (anMpi == "slurmmpi") resource.mpi = slurmmpi; else if (anMpi == "prun") resource.mpi = prun; else if (anMpi == "") resource.mpi = nompi; else { INFOS("Bad MPI definition in AddResource: " << anMpi); std::string message("Bad MPI definition in AddResource: "); message += anMpi; THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM); } std::string mode_str = new_resource.mode.in(); if (mode_str == "interactive") resource.Mode = interactive; else if (mode_str == "batch") resource.Mode = batch; else if (mode_str == "") resource.Mode = interactive; else { INFOS("Bad mode definition in AddResource: " << mode_str); std::string message("Bad mode definition in AddResource: "); message += mode_str; THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM); } std::string protocol = new_resource.protocol.in(); try { resource.Protocol = ParserResourcesType::stringToProtocol(protocol); } catch (SALOME_Exception e) { INFOS("Bad protocol definition in AddResource: " << protocol); std::string message("Bad protocol definition in AddResource: "); message += protocol; THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM); } std::string iprotocol = new_resource.iprotocol.in(); try { resource.ClusterInternalProtocol = ParserResourcesType::stringToProtocol(iprotocol); } catch (SALOME_Exception e) { INFOS("Bad iprotocol definition in AddResource: " << iprotocol); std::string message("Bad iprotocol definition in AddResource: "); message += iprotocol; THROW_SALOME_CORBA_EXCEPTION(message.c_str(),SALOME::BAD_PARAM); } for (CORBA::ULong i = 0; i < new_resource.componentList.length(); i++) resource.ComponentsList.push_back(new_resource.componentList[i].in()); _rm.AddResourceInCatalog(resource); if (write) { _rm.WriteInXmlFile(std::string(xml_file)); _rm.ParseXmlFiles(); } } void SALOME_ResourcesManager::RemoveResource(const char * resource_name, CORBA::Boolean write, const char * xml_file) { _rm.DeleteResourceInCatalog(resource_name); if (write) { _rm.WriteInXmlFile(std::string(xml_file)); _rm.ParseXmlFiles(); } } std::string SALOME_ResourcesManager::getMachineFile(std::string resource_name, CORBA::Long nb_procs, std::string parallelLib) { std::string machine_file_name(""); if (parallelLib == "Dummy") { MESSAGE("[getMachineFile] parallelLib is Dummy"); MapOfParserResourcesType resourcesList = _rm.GetList(); if (resourcesList.find(resource_name) != resourcesList.end()) { ParserResourcesType resource = resourcesList[resource_name]; // Check if resource is cluster or not if (resource.ClusterMembersList.empty()) { //It is not a cluster so we create a cluster with one machine ParserResourcesClusterMembersType fake_node; fake_node.HostName = resource.HostName; fake_node.Protocol = resource.Protocol; fake_node.ClusterInternalProtocol = resource.ClusterInternalProtocol; fake_node.UserName = resource.UserName; fake_node.AppliPath = resource.AppliPath; fake_node.DataForSort = resource.DataForSort; resource.ClusterMembersList.push_front(fake_node); } // Creating list of machines for creating the machine file std::list list_of_machines; std::list::iterator cluster_it = resource.ClusterMembersList.begin(); while (cluster_it != resource.ClusterMembersList.end()) { // For each member of the cluster we add a nbOfNodes * nbOfProcPerNode in the list unsigned int number_of_proc = (*cluster_it).DataForSort._nbOfNodes * (*cluster_it).DataForSort._nbOfProcPerNode; for (unsigned int i = 0; i < number_of_proc; i++) list_of_machines.push_back((*cluster_it).HostName); cluster_it++; } // Creating machine file machine_file_name = tmpnam(NULL); std::ofstream machine_file(machine_file_name.c_str(), std::ios_base::out); CORBA::Long machine_number = 0; std::list::iterator it = list_of_machines.begin(); while (machine_number != nb_procs) { // Adding a new node to the machine file machine_file << *it << std::endl; // counting... it++; if (it == list_of_machines.end()) it = list_of_machines.begin(); machine_number++; } } else INFOS("[getMachineFile] Error resource_name not found in resourcesList -> " << resource_name); } else if (parallelLib == "Mpi") { MESSAGE("[getMachineFile] parallelLib is Mpi"); MapOfParserResourcesType resourcesList = _rm.GetList(); if (resourcesList.find(resource_name) != resourcesList.end()) { ParserResourcesType resource = resourcesList[resource_name]; // Check if resource is cluster or not if (resource.ClusterMembersList.empty()) { //It is not a cluster so we create a cluster with one machine ParserResourcesClusterMembersType fake_node; fake_node.HostName = resource.HostName; fake_node.Protocol = resource.Protocol; fake_node.ClusterInternalProtocol = resource.ClusterInternalProtocol; fake_node.UserName = resource.UserName; fake_node.AppliPath = resource.AppliPath; fake_node.DataForSort = resource.DataForSort; resource.ClusterMembersList.push_front(fake_node); } // Choose mpi implementation -> each MPI implementation has is own machinefile... if (resource.mpi == lam) { // Creating machine file machine_file_name = tmpnam(NULL); std::ofstream machine_file(machine_file_name.c_str(), std::ios_base::out); // We add all cluster machines to the file std::list::iterator cluster_it = resource.ClusterMembersList.begin(); while (cluster_it != resource.ClusterMembersList.end()) { unsigned int number_of_proc = (*cluster_it).DataForSort._nbOfNodes * (*cluster_it).DataForSort._nbOfProcPerNode; machine_file << (*cluster_it).HostName << " cpu=" << number_of_proc << std::endl; cluster_it++; } } else if (resource.mpi == openmpi) { // Creating machine file machine_file_name = tmpnam(NULL); std::ofstream machine_file(machine_file_name.c_str(), std::ios_base::out); // We add all cluster machines to the file std::list::iterator cluster_it = resource.ClusterMembersList.begin(); while (cluster_it != resource.ClusterMembersList.end()) { unsigned int number_of_proc = (*cluster_it).DataForSort._nbOfNodes * (*cluster_it).DataForSort._nbOfProcPerNode; machine_file << (*cluster_it).HostName << " slots=" << number_of_proc << std::endl; cluster_it++; } } else if (resource.mpi == nompi) { INFOS("[getMachineFile] Error resource_name MPI implementation was defined for " << resource_name); } else INFOS("[getMachineFile] Error resource_name MPI implementation not currenly handled for " << resource_name); } else INFOS("[getMachineFile] Error resource_name not found in resourcesList -> " << resource_name); } else INFOS("[getMachineFile] Error parallelLib is not handled -> " << parallelLib); return machine_file_name; } salome-kernel-6.5.0/src/ResourcesManager/SALOME_ResourcesManager.hxx000077500000000000000000000072111177004724000253600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOME_RESOURCESMANAGER_HXX__ #define __SALOME_RESOURCESMANAGER_HXX__ #include "Utils_SALOME_Exception.hxx" #include "utilities.h" #include #include "SALOME_ResourcesCatalog_Handler.hxx" #include "SALOME_LoadRateManager.hxx" #include "SALOME_NamingService.hxx" #include CORBA_CLIENT_HEADER(SALOME_ContainerManager) #include #include #include #include "ResourcesManager.hxx" #ifdef WIN32 # if defined SALOMERESOURCESMANAGER_EXPORTS || defined SalomeResourcesManager_EXPORTS # define SALOMERESOURCESMANAGER_EXPORT __declspec( dllexport ) # else # define SALOMERESOURCESMANAGER_EXPORT __declspec( dllimport ) # endif #else # define SALOMERESOURCESMANAGER_EXPORT #endif #ifdef WNT #pragma warning(disable:4275) // Disable warning interface non dll #endif // --- WARNING --- // The call of BuildTempFileToLaunchRemoteContainer and RmTmpFile must be done // in a critical section to be sure to be clean. // Only one thread should use the SALOME_ResourcesManager class in a SALOME // session. class SALOMERESOURCESMANAGER_EXPORT SALOME_ResourcesManager: public POA_Engines::ResourcesManager, public PortableServer::RefCountServantBase { public: SALOME_ResourcesManager(CORBA::ORB_ptr orb, PortableServer::POA_var poa, SALOME_NamingService *ns, const char *xmlFilePath); SALOME_ResourcesManager(CORBA::ORB_ptr orb, PortableServer::POA_var poa, SALOME_NamingService *ns); ~SALOME_ResourcesManager(); // CORBA Methods Engines::ResourceList * GetFittingResources(const Engines::ResourceParameters& params); char* FindFirst(const Engines::ResourceList& listOfResources); char* Find(const char *policy, const Engines::ResourceList& listOfResources); Engines::ResourceDefinition * GetResourceDefinition(const char * name); void AddResource(const Engines::ResourceDefinition& new_resource, CORBA::Boolean write, const char * xml_file); void RemoveResource(const char * resource_name, CORBA::Boolean write, const char * xml_file); // Cpp Methods void Shutdown(); ResourcesManager_cpp *GetImpl() { return &_rm; } std::string getMachineFile(std::string resource_name, CORBA::Long nb_procs, std::string parallelLib); static const char *_ResourcesManagerNameInNS; protected: SALOME_NamingService *_NS; CORBA::ORB_var _orb; PortableServer::POA_var _poa; // //! will contain the informations on the data type catalog(after parsing) MapOfParserResourcesType _resourcesBatchList; ResourcesManager_cpp _rm; }; #endif // RESSOURCESCATALOG_IMPL_H salome-kernel-6.5.0/src/SALOMEDS/000077500000000000000000000000001177004724000162605ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMEDS/Makefile.am000077500000000000000000000233101177004724000203160ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= \ SALOMEDS_StudyManager_i.hxx \ SALOMEDS_Driver_i.hxx \ SALOMEDS_StudyManager.hxx \ SALOMEDS_Study_i.hxx \ SALOMEDS_Study.hxx \ SALOMEDS_SObject_i.hxx \ SALOMEDS_SObject.hxx \ SALOMEDS_SComponent_i.hxx \ SALOMEDS_SComponent.hxx \ SALOMEDS_GenericAttribute_i.hxx \ SALOMEDS_GenericAttribute.hxx \ SALOMEDS_IParameters.hxx \ SALOMEDS_Defines.hxx # Scripts to be installed dist_salomescript_PYTHON = SALOME_DriverPy.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @BOOST_CPPFLAGS@ \ -I$(srcdir)/../HDFPersist \ @HDF5_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(srcdir)/../DF \ -I$(srcdir)/../SALOMEDSImpl \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../GenericObj \ -I$(srcdir)/../SALOMEDSClient \ -I$(srcdir)/../LifeCycleCORBA \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../TOOLSDS/libTOOLSDS.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../DF/libDF.la \ ../SALOMEDSImpl/libSalomeDSImpl.la \ ../GenericObj/libSalomeGenericObj.la \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @HDF5_LIBS@ #LDFLAGS+= -lSalomeGenericObj -lSalomeLifeCycleCORBA # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDS.la libSalomeDS_la_SOURCES = \ SALOMEDS.cxx \ SALOMEDS_Driver_i.cxx \ SALOMEDS_StudyManager_i.cxx \ SALOMEDS_UseCaseBuilder_i.cxx \ SALOMEDS_UseCaseIterator_i.cxx \ SALOMEDS_ChildIterator_i.cxx \ SALOMEDS_SComponentIterator_i.cxx \ SALOMEDS_Study_i.cxx \ SALOMEDS_StudyBuilder_i.cxx \ SALOMEDS_SObject_i.cxx \ SALOMEDS_SComponent_i.cxx \ SALOMEDS_GenericAttribute_i.cxx \ SALOMEDS_AttributeComment_i.cxx \ SALOMEDS_AttributeExternalFileDef_i.cxx \ SALOMEDS_AttributeFileType_i.cxx \ SALOMEDS_AttributeIOR_i.cxx \ SALOMEDS_AttributeInteger_i.cxx \ SALOMEDS_AttributeName_i.cxx \ SALOMEDS_AttributePersistentRef_i.cxx \ SALOMEDS_AttributeReal_i.cxx \ SALOMEDS_AttributeSequenceOfReal_i.cxx \ SALOMEDS_AttributeSequenceOfInteger_i.cxx \ SALOMEDS_AttributeDrawable_i.cxx \ SALOMEDS_AttributeSelectable_i.cxx \ SALOMEDS_AttributeOpened_i.cxx \ SALOMEDS_AttributeFlags_i.cxx \ SALOMEDS_AttributeGraphic_i.cxx \ SALOMEDS_AttributeExpandable_i.cxx \ SALOMEDS_AttributeTextColor_i.cxx \ SALOMEDS_AttributeTextHighlightColor_i.cxx \ SALOMEDS_AttributePixMap_i.cxx \ SALOMEDS_AttributeTreeNode_i.cxx \ SALOMEDS_AttributeLocalID_i.cxx \ SALOMEDS_AttributeUserID_i.cxx \ SALOMEDS_AttributeTarget_i.cxx \ SALOMEDS_AttributeTableOfInteger_i.cxx \ SALOMEDS_AttributeTableOfReal_i.cxx \ SALOMEDS_AttributeTableOfString_i.cxx \ SALOMEDS_AttributeStudyProperties_i.cxx \ SALOMEDS_AttributePythonObject_i.cxx \ SALOMEDS_AttributeParameter_i.cxx \ SALOMEDS_AttributeString_i.cxx \ SALOMEDS_SObject.cxx \ SALOMEDS_SComponent.cxx \ SALOMEDS_GenericAttribute.cxx \ SALOMEDS_ChildIterator.cxx \ SALOMEDS_SComponentIterator.cxx \ SALOMEDS_UseCaseIterator.cxx \ SALOMEDS_UseCaseBuilder.cxx \ SALOMEDS_StudyBuilder.cxx \ SALOMEDS_Study.cxx \ SALOMEDS_StudyManager.cxx \ SALOMEDS_AttributeStudyProperties.cxx \ SALOMEDS_AttributeComment.cxx \ SALOMEDS_AttributeDrawable.cxx \ SALOMEDS_AttributeExpandable.cxx \ SALOMEDS_AttributeExternalFileDef.cxx \ SALOMEDS_AttributeFileType.cxx \ SALOMEDS_AttributeFlags.cxx \ SALOMEDS_AttributeGraphic.cxx \ SALOMEDS_AttributeIOR.cxx \ SALOMEDS_AttributeInteger.cxx \ SALOMEDS_AttributeLocalID.cxx \ SALOMEDS_AttributeName.cxx \ SALOMEDS_AttributeOpened.cxx \ SALOMEDS_AttributePythonObject.cxx \ SALOMEDS_AttributeReal.cxx \ SALOMEDS_AttributeSelectable.cxx \ SALOMEDS_AttributeSequenceOfInteger.cxx \ SALOMEDS_AttributePersistentRef.cxx \ SALOMEDS_AttributePixMap.cxx \ SALOMEDS_AttributeSequenceOfReal.cxx \ SALOMEDS_AttributeTableOfInteger.cxx \ SALOMEDS_AttributeTableOfReal.cxx \ SALOMEDS_AttributeTableOfString.cxx \ SALOMEDS_AttributeTarget.cxx \ SALOMEDS_AttributeTextColor.cxx \ SALOMEDS_AttributeTextHighlightColor.cxx \ SALOMEDS_AttributeTreeNode.cxx \ SALOMEDS_AttributeUserID.cxx \ SALOMEDS_TMPFile_i.cxx \ SALOMEDS_AttributeParameter.cxx \ SALOMEDS_AttributeString.cxx \ SALOMEDS_IParameters.cxx \ SALOMEDS_AttLong_i.hxx \ SALOMEDS_AttReal_i.hxx \ SALOMEDS_AttributeComment.hxx \ SALOMEDS_AttributeComment_i.hxx \ SALOMEDS_AttributeDrawable.hxx \ SALOMEDS_AttributeDrawable_i.hxx \ SALOMEDS_AttributeExpandable.hxx \ SALOMEDS_AttributeExpandable_i.hxx \ SALOMEDS_AttributeExternalFileDef.hxx \ SALOMEDS_AttributeExternalFileDef_i.hxx \ SALOMEDS_AttributeFileType.hxx \ SALOMEDS_AttributeFileType_i.hxx \ SALOMEDS_AttributeFlags.hxx \ SALOMEDS_AttributeFlags_i.hxx \ SALOMEDS_AttributeGraphic.hxx \ SALOMEDS_AttributeGraphic_i.hxx \ SALOMEDS_AttributeInteger.hxx \ SALOMEDS_AttributeInteger_i.hxx \ SALOMEDS_AttributeIOR.hxx \ SALOMEDS_AttributeIOR_i.hxx \ SALOMEDS_AttributeLocalID.hxx \ SALOMEDS_AttributeLocalID_i.hxx \ SALOMEDS_AttributeName.hxx \ SALOMEDS_AttributeName_i.hxx \ SALOMEDS_AttributeOpened.hxx \ SALOMEDS_AttributeOpened_i.hxx \ SALOMEDS_AttributePersistentRef.hxx \ SALOMEDS_AttributePersistentRef_i.hxx \ SALOMEDS_AttributePixMap.hxx \ SALOMEDS_AttributePixMap_i.hxx \ SALOMEDS_AttributePythonObject.hxx \ SALOMEDS_AttributePythonObject_i.hxx \ SALOMEDS_AttributeReal.hxx \ SALOMEDS_AttributeReal_i.hxx \ SALOMEDS_AttributeSelectable.hxx \ SALOMEDS_AttributeSelectable_i.hxx \ SALOMEDS_AttributeSequenceOfInteger.hxx \ SALOMEDS_AttributeSequenceOfInteger_i.hxx \ SALOMEDS_AttributeSequenceOfReal.hxx \ SALOMEDS_AttributeSequenceOfReal_i.hxx \ SALOMEDS_Attributes.hxx \ SALOMEDS_AttributeStudyProperties.hxx \ SALOMEDS_AttributeStudyProperties_i.hxx \ SALOMEDS_AttributeTableOfInteger.hxx \ SALOMEDS_AttributeTableOfInteger_i.hxx \ SALOMEDS_AttributeTableOfReal.hxx \ SALOMEDS_AttributeTableOfReal_i.hxx \ SALOMEDS_AttributeTableOfString.hxx \ SALOMEDS_AttributeTableOfString_i.hxx \ SALOMEDS_AttributeTarget.hxx \ SALOMEDS_AttributeTarget_i.hxx \ SALOMEDS_AttributeTextColor.hxx \ SALOMEDS_AttributeTextColor_i.hxx \ SALOMEDS_AttributeTextHighlightColor.hxx \ SALOMEDS_AttributeTextHighlightColor_i.hxx \ SALOMEDS_AttributeTreeNode.hxx \ SALOMEDS_AttributeTreeNode_i.hxx \ SALOMEDS_AttributeUserID.hxx \ SALOMEDS_AttributeUserID_i.hxx \ SALOMEDS_BasicAttributeFactory.hxx \ SALOMEDS_BasicAttribute_i.hxx \ SALOMEDS_Callback_i.hxx \ SALOMEDS_ChildIterator.hxx \ SALOMEDS_ChildIterator_i.hxx \ SALOMEDS_ClientAttributes.hxx \ SALOMEDS_Driver_i.hxx \ SALOMEDS_GenericAttribute.hxx \ SALOMEDS_GenericAttribute_i.hxx \ SALOMEDS.hxx \ SALOMEDS_SComponent.hxx \ SALOMEDS_SComponent_i.hxx \ SALOMEDS_SComponentIterator.hxx \ SALOMEDS_SComponentIterator_i.hxx \ SALOMEDS_SObject.hxx \ SALOMEDS_SObject_i.hxx \ SALOMEDS_StudyBuilder.hxx \ SALOMEDS_StudyBuilder_i.hxx \ SALOMEDS_Study.hxx \ SALOMEDS_Study_i.hxx \ SALOMEDS_StudyManager.hxx \ SALOMEDS_StudyManager_i.hxx \ SALOMEDS_UseCaseBuilder.hxx \ SALOMEDS_UseCaseBuilder_i.hxx \ SALOMEDS_UseCaseIterator.hxx \ SALOMEDS_UseCaseIterator_i.hxx \ SALOMEDS_AttributeParameter.hxx \ SALOMEDS_AttributeParameter_i.hxx \ SALOMEDS_AttributeString.hxx \ SALOMEDS_AttributeString_i.hxx \ SALOMEDS_TMPFile_i.hxx libSalomeDS_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeDS_la_LDFLAGS = -Wl,-E -no-undefined -version-info=0:0:0 @LDEXPDYNFLAGS@ libSalomeDS_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = SALOMEDS_Server SALOMEDS_Client SALOMEDS_Server_SOURCES = SALOMEDS_Server.cxx SALOMEDS_Server_CPPFLAGS = $(COMMON_CPPFLAGS) SALOMEDS_Server_LDADD = libSalomeDS.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(HDF5_LIBS) \ $(CORBA_LIBS) SALOMEDS_Client_SOURCES = SALOMEDS_Client.cxx SALOMEDS_Client_CPPFLAGS = $(COMMON_CPPFLAGS) SALOMEDS_Client_LDADD = libSalomeDS.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(HDF5_LIBS) \ $(CORBA_LIBS) salome-kernel-6.5.0/src/SALOMEDS/Makefile.in000077500000000000000000005114601177004724000203370ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = SALOMEDS_Server$(EXEEXT) SALOMEDS_Client$(EXEEXT) subdir = src/SALOMEDS ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ../TOOLSDS/libTOOLSDS.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la ../DF/libDF.la \ ../SALOMEDSImpl/libSalomeDSImpl.la \ ../GenericObj/libSalomeGenericObj.la \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSalomeDS_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSalomeDS_la_OBJECTS = libSalomeDS_la-SALOMEDS.lo \ libSalomeDS_la-SALOMEDS_Driver_i.lo \ libSalomeDS_la-SALOMEDS_StudyManager_i.lo \ libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.lo \ libSalomeDS_la-SALOMEDS_UseCaseIterator_i.lo \ libSalomeDS_la-SALOMEDS_ChildIterator_i.lo \ libSalomeDS_la-SALOMEDS_SComponentIterator_i.lo \ libSalomeDS_la-SALOMEDS_Study_i.lo \ libSalomeDS_la-SALOMEDS_StudyBuilder_i.lo \ libSalomeDS_la-SALOMEDS_SObject_i.lo \ libSalomeDS_la-SALOMEDS_SComponent_i.lo \ libSalomeDS_la-SALOMEDS_GenericAttribute_i.lo \ libSalomeDS_la-SALOMEDS_AttributeComment_i.lo \ libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.lo \ libSalomeDS_la-SALOMEDS_AttributeFileType_i.lo \ libSalomeDS_la-SALOMEDS_AttributeIOR_i.lo \ libSalomeDS_la-SALOMEDS_AttributeInteger_i.lo \ libSalomeDS_la-SALOMEDS_AttributeName_i.lo \ libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.lo \ libSalomeDS_la-SALOMEDS_AttributeReal_i.lo \ libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.lo \ libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.lo \ libSalomeDS_la-SALOMEDS_AttributeDrawable_i.lo \ libSalomeDS_la-SALOMEDS_AttributeSelectable_i.lo \ libSalomeDS_la-SALOMEDS_AttributeOpened_i.lo \ libSalomeDS_la-SALOMEDS_AttributeFlags_i.lo \ libSalomeDS_la-SALOMEDS_AttributeGraphic_i.lo \ libSalomeDS_la-SALOMEDS_AttributeExpandable_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTextColor_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.lo \ libSalomeDS_la-SALOMEDS_AttributePixMap_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.lo \ libSalomeDS_la-SALOMEDS_AttributeLocalID_i.lo \ libSalomeDS_la-SALOMEDS_AttributeUserID_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTarget_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.lo \ libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.lo \ libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.lo \ libSalomeDS_la-SALOMEDS_AttributePythonObject_i.lo \ libSalomeDS_la-SALOMEDS_AttributeParameter_i.lo \ libSalomeDS_la-SALOMEDS_AttributeString_i.lo \ libSalomeDS_la-SALOMEDS_SObject.lo \ libSalomeDS_la-SALOMEDS_SComponent.lo \ libSalomeDS_la-SALOMEDS_GenericAttribute.lo \ libSalomeDS_la-SALOMEDS_ChildIterator.lo \ libSalomeDS_la-SALOMEDS_SComponentIterator.lo \ libSalomeDS_la-SALOMEDS_UseCaseIterator.lo \ libSalomeDS_la-SALOMEDS_UseCaseBuilder.lo \ libSalomeDS_la-SALOMEDS_StudyBuilder.lo \ libSalomeDS_la-SALOMEDS_Study.lo \ libSalomeDS_la-SALOMEDS_StudyManager.lo \ libSalomeDS_la-SALOMEDS_AttributeStudyProperties.lo \ libSalomeDS_la-SALOMEDS_AttributeComment.lo \ libSalomeDS_la-SALOMEDS_AttributeDrawable.lo \ libSalomeDS_la-SALOMEDS_AttributeExpandable.lo \ libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.lo \ libSalomeDS_la-SALOMEDS_AttributeFileType.lo \ libSalomeDS_la-SALOMEDS_AttributeFlags.lo \ libSalomeDS_la-SALOMEDS_AttributeGraphic.lo \ libSalomeDS_la-SALOMEDS_AttributeIOR.lo \ libSalomeDS_la-SALOMEDS_AttributeInteger.lo \ libSalomeDS_la-SALOMEDS_AttributeLocalID.lo \ libSalomeDS_la-SALOMEDS_AttributeName.lo \ libSalomeDS_la-SALOMEDS_AttributeOpened.lo \ libSalomeDS_la-SALOMEDS_AttributePythonObject.lo \ libSalomeDS_la-SALOMEDS_AttributeReal.lo \ libSalomeDS_la-SALOMEDS_AttributeSelectable.lo \ libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.lo \ libSalomeDS_la-SALOMEDS_AttributePersistentRef.lo \ libSalomeDS_la-SALOMEDS_AttributePixMap.lo \ libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.lo \ libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.lo \ libSalomeDS_la-SALOMEDS_AttributeTableOfReal.lo \ libSalomeDS_la-SALOMEDS_AttributeTableOfString.lo \ libSalomeDS_la-SALOMEDS_AttributeTarget.lo \ libSalomeDS_la-SALOMEDS_AttributeTextColor.lo \ libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.lo \ libSalomeDS_la-SALOMEDS_AttributeTreeNode.lo \ libSalomeDS_la-SALOMEDS_AttributeUserID.lo \ libSalomeDS_la-SALOMEDS_TMPFile_i.lo \ libSalomeDS_la-SALOMEDS_AttributeParameter.lo \ libSalomeDS_la-SALOMEDS_AttributeString.lo \ libSalomeDS_la-SALOMEDS_IParameters.lo libSalomeDS_la_OBJECTS = $(am_libSalomeDS_la_OBJECTS) libSalomeDS_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeDS_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_SALOMEDS_Client_OBJECTS = \ SALOMEDS_Client-SALOMEDS_Client.$(OBJEXT) SALOMEDS_Client_OBJECTS = $(am_SALOMEDS_Client_OBJECTS) am__DEPENDENCIES_2 = SALOMEDS_Client_DEPENDENCIES = libSalomeDS.la $(am__DEPENDENCIES_1) \ ../Basics/libSALOMEBasics.la $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_2) am_SALOMEDS_Server_OBJECTS = \ SALOMEDS_Server-SALOMEDS_Server.$(OBJEXT) SALOMEDS_Server_OBJECTS = $(am_SALOMEDS_Server_OBJECTS) SALOMEDS_Server_DEPENDENCIES = libSalomeDS.la $(am__DEPENDENCIES_1) \ ../Basics/libSALOMEBasics.la $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDS_la_SOURCES) $(SALOMEDS_Client_SOURCES) \ $(SALOMEDS_Server_SOURCES) DIST_SOURCES = $(libSalomeDS_la_SOURCES) $(SALOMEDS_Client_SOURCES) \ $(SALOMEDS_Server_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOMEDS_StudyManager_i.hxx \ SALOMEDS_Driver_i.hxx \ SALOMEDS_StudyManager.hxx \ SALOMEDS_Study_i.hxx \ SALOMEDS_Study.hxx \ SALOMEDS_SObject_i.hxx \ SALOMEDS_SObject.hxx \ SALOMEDS_SComponent_i.hxx \ SALOMEDS_SComponent.hxx \ SALOMEDS_GenericAttribute_i.hxx \ SALOMEDS_GenericAttribute.hxx \ SALOMEDS_IParameters.hxx \ SALOMEDS_Defines.hxx # Scripts to be installed dist_salomescript_PYTHON = SALOME_DriverPy.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @BOOST_CPPFLAGS@ \ -I$(srcdir)/../HDFPersist \ @HDF5_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../Utils \ -I$(srcdir)/../DF \ -I$(srcdir)/../SALOMEDSImpl \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../GenericObj \ -I$(srcdir)/../SALOMEDSClient \ -I$(srcdir)/../LifeCycleCORBA \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../TOOLSDS/libTOOLSDS.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../DF/libDF.la \ ../SALOMEDSImpl/libSalomeDSImpl.la \ ../GenericObj/libSalomeGenericObj.la \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @HDF5_LIBS@ #LDFLAGS+= -lSalomeGenericObj -lSalomeLifeCycleCORBA # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDS.la libSalomeDS_la_SOURCES = \ SALOMEDS.cxx \ SALOMEDS_Driver_i.cxx \ SALOMEDS_StudyManager_i.cxx \ SALOMEDS_UseCaseBuilder_i.cxx \ SALOMEDS_UseCaseIterator_i.cxx \ SALOMEDS_ChildIterator_i.cxx \ SALOMEDS_SComponentIterator_i.cxx \ SALOMEDS_Study_i.cxx \ SALOMEDS_StudyBuilder_i.cxx \ SALOMEDS_SObject_i.cxx \ SALOMEDS_SComponent_i.cxx \ SALOMEDS_GenericAttribute_i.cxx \ SALOMEDS_AttributeComment_i.cxx \ SALOMEDS_AttributeExternalFileDef_i.cxx \ SALOMEDS_AttributeFileType_i.cxx \ SALOMEDS_AttributeIOR_i.cxx \ SALOMEDS_AttributeInteger_i.cxx \ SALOMEDS_AttributeName_i.cxx \ SALOMEDS_AttributePersistentRef_i.cxx \ SALOMEDS_AttributeReal_i.cxx \ SALOMEDS_AttributeSequenceOfReal_i.cxx \ SALOMEDS_AttributeSequenceOfInteger_i.cxx \ SALOMEDS_AttributeDrawable_i.cxx \ SALOMEDS_AttributeSelectable_i.cxx \ SALOMEDS_AttributeOpened_i.cxx \ SALOMEDS_AttributeFlags_i.cxx \ SALOMEDS_AttributeGraphic_i.cxx \ SALOMEDS_AttributeExpandable_i.cxx \ SALOMEDS_AttributeTextColor_i.cxx \ SALOMEDS_AttributeTextHighlightColor_i.cxx \ SALOMEDS_AttributePixMap_i.cxx \ SALOMEDS_AttributeTreeNode_i.cxx \ SALOMEDS_AttributeLocalID_i.cxx \ SALOMEDS_AttributeUserID_i.cxx \ SALOMEDS_AttributeTarget_i.cxx \ SALOMEDS_AttributeTableOfInteger_i.cxx \ SALOMEDS_AttributeTableOfReal_i.cxx \ SALOMEDS_AttributeTableOfString_i.cxx \ SALOMEDS_AttributeStudyProperties_i.cxx \ SALOMEDS_AttributePythonObject_i.cxx \ SALOMEDS_AttributeParameter_i.cxx \ SALOMEDS_AttributeString_i.cxx \ SALOMEDS_SObject.cxx \ SALOMEDS_SComponent.cxx \ SALOMEDS_GenericAttribute.cxx \ SALOMEDS_ChildIterator.cxx \ SALOMEDS_SComponentIterator.cxx \ SALOMEDS_UseCaseIterator.cxx \ SALOMEDS_UseCaseBuilder.cxx \ SALOMEDS_StudyBuilder.cxx \ SALOMEDS_Study.cxx \ SALOMEDS_StudyManager.cxx \ SALOMEDS_AttributeStudyProperties.cxx \ SALOMEDS_AttributeComment.cxx \ SALOMEDS_AttributeDrawable.cxx \ SALOMEDS_AttributeExpandable.cxx \ SALOMEDS_AttributeExternalFileDef.cxx \ SALOMEDS_AttributeFileType.cxx \ SALOMEDS_AttributeFlags.cxx \ SALOMEDS_AttributeGraphic.cxx \ SALOMEDS_AttributeIOR.cxx \ SALOMEDS_AttributeInteger.cxx \ SALOMEDS_AttributeLocalID.cxx \ SALOMEDS_AttributeName.cxx \ SALOMEDS_AttributeOpened.cxx \ SALOMEDS_AttributePythonObject.cxx \ SALOMEDS_AttributeReal.cxx \ SALOMEDS_AttributeSelectable.cxx \ SALOMEDS_AttributeSequenceOfInteger.cxx \ SALOMEDS_AttributePersistentRef.cxx \ SALOMEDS_AttributePixMap.cxx \ SALOMEDS_AttributeSequenceOfReal.cxx \ SALOMEDS_AttributeTableOfInteger.cxx \ SALOMEDS_AttributeTableOfReal.cxx \ SALOMEDS_AttributeTableOfString.cxx \ SALOMEDS_AttributeTarget.cxx \ SALOMEDS_AttributeTextColor.cxx \ SALOMEDS_AttributeTextHighlightColor.cxx \ SALOMEDS_AttributeTreeNode.cxx \ SALOMEDS_AttributeUserID.cxx \ SALOMEDS_TMPFile_i.cxx \ SALOMEDS_AttributeParameter.cxx \ SALOMEDS_AttributeString.cxx \ SALOMEDS_IParameters.cxx \ SALOMEDS_AttLong_i.hxx \ SALOMEDS_AttReal_i.hxx \ SALOMEDS_AttributeComment.hxx \ SALOMEDS_AttributeComment_i.hxx \ SALOMEDS_AttributeDrawable.hxx \ SALOMEDS_AttributeDrawable_i.hxx \ SALOMEDS_AttributeExpandable.hxx \ SALOMEDS_AttributeExpandable_i.hxx \ SALOMEDS_AttributeExternalFileDef.hxx \ SALOMEDS_AttributeExternalFileDef_i.hxx \ SALOMEDS_AttributeFileType.hxx \ SALOMEDS_AttributeFileType_i.hxx \ SALOMEDS_AttributeFlags.hxx \ SALOMEDS_AttributeFlags_i.hxx \ SALOMEDS_AttributeGraphic.hxx \ SALOMEDS_AttributeGraphic_i.hxx \ SALOMEDS_AttributeInteger.hxx \ SALOMEDS_AttributeInteger_i.hxx \ SALOMEDS_AttributeIOR.hxx \ SALOMEDS_AttributeIOR_i.hxx \ SALOMEDS_AttributeLocalID.hxx \ SALOMEDS_AttributeLocalID_i.hxx \ SALOMEDS_AttributeName.hxx \ SALOMEDS_AttributeName_i.hxx \ SALOMEDS_AttributeOpened.hxx \ SALOMEDS_AttributeOpened_i.hxx \ SALOMEDS_AttributePersistentRef.hxx \ SALOMEDS_AttributePersistentRef_i.hxx \ SALOMEDS_AttributePixMap.hxx \ SALOMEDS_AttributePixMap_i.hxx \ SALOMEDS_AttributePythonObject.hxx \ SALOMEDS_AttributePythonObject_i.hxx \ SALOMEDS_AttributeReal.hxx \ SALOMEDS_AttributeReal_i.hxx \ SALOMEDS_AttributeSelectable.hxx \ SALOMEDS_AttributeSelectable_i.hxx \ SALOMEDS_AttributeSequenceOfInteger.hxx \ SALOMEDS_AttributeSequenceOfInteger_i.hxx \ SALOMEDS_AttributeSequenceOfReal.hxx \ SALOMEDS_AttributeSequenceOfReal_i.hxx \ SALOMEDS_Attributes.hxx \ SALOMEDS_AttributeStudyProperties.hxx \ SALOMEDS_AttributeStudyProperties_i.hxx \ SALOMEDS_AttributeTableOfInteger.hxx \ SALOMEDS_AttributeTableOfInteger_i.hxx \ SALOMEDS_AttributeTableOfReal.hxx \ SALOMEDS_AttributeTableOfReal_i.hxx \ SALOMEDS_AttributeTableOfString.hxx \ SALOMEDS_AttributeTableOfString_i.hxx \ SALOMEDS_AttributeTarget.hxx \ SALOMEDS_AttributeTarget_i.hxx \ SALOMEDS_AttributeTextColor.hxx \ SALOMEDS_AttributeTextColor_i.hxx \ SALOMEDS_AttributeTextHighlightColor.hxx \ SALOMEDS_AttributeTextHighlightColor_i.hxx \ SALOMEDS_AttributeTreeNode.hxx \ SALOMEDS_AttributeTreeNode_i.hxx \ SALOMEDS_AttributeUserID.hxx \ SALOMEDS_AttributeUserID_i.hxx \ SALOMEDS_BasicAttributeFactory.hxx \ SALOMEDS_BasicAttribute_i.hxx \ SALOMEDS_Callback_i.hxx \ SALOMEDS_ChildIterator.hxx \ SALOMEDS_ChildIterator_i.hxx \ SALOMEDS_ClientAttributes.hxx \ SALOMEDS_Driver_i.hxx \ SALOMEDS_GenericAttribute.hxx \ SALOMEDS_GenericAttribute_i.hxx \ SALOMEDS.hxx \ SALOMEDS_SComponent.hxx \ SALOMEDS_SComponent_i.hxx \ SALOMEDS_SComponentIterator.hxx \ SALOMEDS_SComponentIterator_i.hxx \ SALOMEDS_SObject.hxx \ SALOMEDS_SObject_i.hxx \ SALOMEDS_StudyBuilder.hxx \ SALOMEDS_StudyBuilder_i.hxx \ SALOMEDS_Study.hxx \ SALOMEDS_Study_i.hxx \ SALOMEDS_StudyManager.hxx \ SALOMEDS_StudyManager_i.hxx \ SALOMEDS_UseCaseBuilder.hxx \ SALOMEDS_UseCaseBuilder_i.hxx \ SALOMEDS_UseCaseIterator.hxx \ SALOMEDS_UseCaseIterator_i.hxx \ SALOMEDS_AttributeParameter.hxx \ SALOMEDS_AttributeParameter_i.hxx \ SALOMEDS_AttributeString.hxx \ SALOMEDS_AttributeString_i.hxx \ SALOMEDS_TMPFile_i.hxx libSalomeDS_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeDS_la_LDFLAGS = -Wl,-E -no-undefined -version-info=0:0:0 @LDEXPDYNFLAGS@ libSalomeDS_la_LIBADD = $(COMMON_LIBS) SALOMEDS_Server_SOURCES = SALOMEDS_Server.cxx SALOMEDS_Server_CPPFLAGS = $(COMMON_CPPFLAGS) SALOMEDS_Server_LDADD = libSalomeDS.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(HDF5_LIBS) \ $(CORBA_LIBS) SALOMEDS_Client_SOURCES = SALOMEDS_Client.cxx SALOMEDS_Client_CPPFLAGS = $(COMMON_CPPFLAGS) SALOMEDS_Client_LDADD = libSalomeDS.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(HDF5_LIBS) \ $(CORBA_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMEDS/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMEDS/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDS.la: $(libSalomeDS_la_OBJECTS) $(libSalomeDS_la_DEPENDENCIES) $(libSalomeDS_la_LINK) -rpath $(libdir) $(libSalomeDS_la_OBJECTS) $(libSalomeDS_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list SALOMEDS_Client$(EXEEXT): $(SALOMEDS_Client_OBJECTS) $(SALOMEDS_Client_DEPENDENCIES) @rm -f SALOMEDS_Client$(EXEEXT) $(CXXLINK) $(SALOMEDS_Client_OBJECTS) $(SALOMEDS_Client_LDADD) $(LIBS) SALOMEDS_Server$(EXEEXT): $(SALOMEDS_Server_OBJECTS) $(SALOMEDS_Server_DEPENDENCIES) @rm -f SALOMEDS_Server$(EXEEXT) $(CXXLINK) $(SALOMEDS_Server_OBJECTS) $(SALOMEDS_Server_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_Driver_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_IParameters.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_Study.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_Study_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_TMPFile_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator_i.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDS_la-SALOMEDS.lo: SALOMEDS.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS.Tpo -c -o libSalomeDS_la-SALOMEDS.lo `test -f 'SALOMEDS.cxx' || echo '$(srcdir)/'`SALOMEDS.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS.cxx' object='libSalomeDS_la-SALOMEDS.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS.lo `test -f 'SALOMEDS.cxx' || echo '$(srcdir)/'`SALOMEDS.cxx libSalomeDS_la-SALOMEDS_Driver_i.lo: SALOMEDS_Driver_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_Driver_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_Driver_i.Tpo -c -o libSalomeDS_la-SALOMEDS_Driver_i.lo `test -f 'SALOMEDS_Driver_i.cxx' || echo '$(srcdir)/'`SALOMEDS_Driver_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_Driver_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_Driver_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Driver_i.cxx' object='libSalomeDS_la-SALOMEDS_Driver_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_Driver_i.lo `test -f 'SALOMEDS_Driver_i.cxx' || echo '$(srcdir)/'`SALOMEDS_Driver_i.cxx libSalomeDS_la-SALOMEDS_StudyManager_i.lo: SALOMEDS_StudyManager_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_StudyManager_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager_i.Tpo -c -o libSalomeDS_la-SALOMEDS_StudyManager_i.lo `test -f 'SALOMEDS_StudyManager_i.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyManager_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_StudyManager_i.cxx' object='libSalomeDS_la-SALOMEDS_StudyManager_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_StudyManager_i.lo `test -f 'SALOMEDS_StudyManager_i.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyManager_i.cxx libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.lo: SALOMEDS_UseCaseBuilder_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.Tpo -c -o libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.lo `test -f 'SALOMEDS_UseCaseBuilder_i.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseBuilder_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_UseCaseBuilder_i.cxx' object='libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_UseCaseBuilder_i.lo `test -f 'SALOMEDS_UseCaseBuilder_i.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseBuilder_i.cxx libSalomeDS_la-SALOMEDS_UseCaseIterator_i.lo: SALOMEDS_UseCaseIterator_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_UseCaseIterator_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator_i.Tpo -c -o libSalomeDS_la-SALOMEDS_UseCaseIterator_i.lo `test -f 'SALOMEDS_UseCaseIterator_i.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseIterator_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_UseCaseIterator_i.cxx' object='libSalomeDS_la-SALOMEDS_UseCaseIterator_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_UseCaseIterator_i.lo `test -f 'SALOMEDS_UseCaseIterator_i.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseIterator_i.cxx libSalomeDS_la-SALOMEDS_ChildIterator_i.lo: SALOMEDS_ChildIterator_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_ChildIterator_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator_i.Tpo -c -o libSalomeDS_la-SALOMEDS_ChildIterator_i.lo `test -f 'SALOMEDS_ChildIterator_i.cxx' || echo '$(srcdir)/'`SALOMEDS_ChildIterator_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_ChildIterator_i.cxx' object='libSalomeDS_la-SALOMEDS_ChildIterator_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_ChildIterator_i.lo `test -f 'SALOMEDS_ChildIterator_i.cxx' || echo '$(srcdir)/'`SALOMEDS_ChildIterator_i.cxx libSalomeDS_la-SALOMEDS_SComponentIterator_i.lo: SALOMEDS_SComponentIterator_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_SComponentIterator_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator_i.Tpo -c -o libSalomeDS_la-SALOMEDS_SComponentIterator_i.lo `test -f 'SALOMEDS_SComponentIterator_i.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponentIterator_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_SComponentIterator_i.cxx' object='libSalomeDS_la-SALOMEDS_SComponentIterator_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_SComponentIterator_i.lo `test -f 'SALOMEDS_SComponentIterator_i.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponentIterator_i.cxx libSalomeDS_la-SALOMEDS_Study_i.lo: SALOMEDS_Study_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_Study_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_Study_i.Tpo -c -o libSalomeDS_la-SALOMEDS_Study_i.lo `test -f 'SALOMEDS_Study_i.cxx' || echo '$(srcdir)/'`SALOMEDS_Study_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_Study_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_Study_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Study_i.cxx' object='libSalomeDS_la-SALOMEDS_Study_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_Study_i.lo `test -f 'SALOMEDS_Study_i.cxx' || echo '$(srcdir)/'`SALOMEDS_Study_i.cxx libSalomeDS_la-SALOMEDS_StudyBuilder_i.lo: SALOMEDS_StudyBuilder_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_StudyBuilder_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder_i.Tpo -c -o libSalomeDS_la-SALOMEDS_StudyBuilder_i.lo `test -f 'SALOMEDS_StudyBuilder_i.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyBuilder_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_StudyBuilder_i.cxx' object='libSalomeDS_la-SALOMEDS_StudyBuilder_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_StudyBuilder_i.lo `test -f 'SALOMEDS_StudyBuilder_i.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyBuilder_i.cxx libSalomeDS_la-SALOMEDS_SObject_i.lo: SALOMEDS_SObject_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_SObject_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject_i.Tpo -c -o libSalomeDS_la-SALOMEDS_SObject_i.lo `test -f 'SALOMEDS_SObject_i.cxx' || echo '$(srcdir)/'`SALOMEDS_SObject_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_SObject_i.cxx' object='libSalomeDS_la-SALOMEDS_SObject_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_SObject_i.lo `test -f 'SALOMEDS_SObject_i.cxx' || echo '$(srcdir)/'`SALOMEDS_SObject_i.cxx libSalomeDS_la-SALOMEDS_SComponent_i.lo: SALOMEDS_SComponent_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_SComponent_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent_i.Tpo -c -o libSalomeDS_la-SALOMEDS_SComponent_i.lo `test -f 'SALOMEDS_SComponent_i.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponent_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_SComponent_i.cxx' object='libSalomeDS_la-SALOMEDS_SComponent_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_SComponent_i.lo `test -f 'SALOMEDS_SComponent_i.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponent_i.cxx libSalomeDS_la-SALOMEDS_GenericAttribute_i.lo: SALOMEDS_GenericAttribute_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_GenericAttribute_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute_i.Tpo -c -o libSalomeDS_la-SALOMEDS_GenericAttribute_i.lo `test -f 'SALOMEDS_GenericAttribute_i.cxx' || echo '$(srcdir)/'`SALOMEDS_GenericAttribute_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_GenericAttribute_i.cxx' object='libSalomeDS_la-SALOMEDS_GenericAttribute_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_GenericAttribute_i.lo `test -f 'SALOMEDS_GenericAttribute_i.cxx' || echo '$(srcdir)/'`SALOMEDS_GenericAttribute_i.cxx libSalomeDS_la-SALOMEDS_AttributeComment_i.lo: SALOMEDS_AttributeComment_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeComment_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeComment_i.lo `test -f 'SALOMEDS_AttributeComment_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeComment_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeComment_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeComment_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeComment_i.lo `test -f 'SALOMEDS_AttributeComment_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeComment_i.cxx libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.lo: SALOMEDS_AttributeExternalFileDef_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.lo `test -f 'SALOMEDS_AttributeExternalFileDef_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExternalFileDef_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeExternalFileDef_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeExternalFileDef_i.lo `test -f 'SALOMEDS_AttributeExternalFileDef_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExternalFileDef_i.cxx libSalomeDS_la-SALOMEDS_AttributeFileType_i.lo: SALOMEDS_AttributeFileType_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeFileType_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeFileType_i.lo `test -f 'SALOMEDS_AttributeFileType_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFileType_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeFileType_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeFileType_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeFileType_i.lo `test -f 'SALOMEDS_AttributeFileType_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFileType_i.cxx libSalomeDS_la-SALOMEDS_AttributeIOR_i.lo: SALOMEDS_AttributeIOR_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeIOR_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeIOR_i.lo `test -f 'SALOMEDS_AttributeIOR_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeIOR_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeIOR_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeIOR_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeIOR_i.lo `test -f 'SALOMEDS_AttributeIOR_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeIOR_i.cxx libSalomeDS_la-SALOMEDS_AttributeInteger_i.lo: SALOMEDS_AttributeInteger_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeInteger_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeInteger_i.lo `test -f 'SALOMEDS_AttributeInteger_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeInteger_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeInteger_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeInteger_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeInteger_i.lo `test -f 'SALOMEDS_AttributeInteger_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeInteger_i.cxx libSalomeDS_la-SALOMEDS_AttributeName_i.lo: SALOMEDS_AttributeName_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeName_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeName_i.lo `test -f 'SALOMEDS_AttributeName_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeName_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeName_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeName_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeName_i.lo `test -f 'SALOMEDS_AttributeName_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeName_i.cxx libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.lo: SALOMEDS_AttributePersistentRef_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.lo `test -f 'SALOMEDS_AttributePersistentRef_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePersistentRef_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributePersistentRef_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributePersistentRef_i.lo `test -f 'SALOMEDS_AttributePersistentRef_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePersistentRef_i.cxx libSalomeDS_la-SALOMEDS_AttributeReal_i.lo: SALOMEDS_AttributeReal_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeReal_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeReal_i.lo `test -f 'SALOMEDS_AttributeReal_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeReal_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeReal_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeReal_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeReal_i.lo `test -f 'SALOMEDS_AttributeReal_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeReal_i.cxx libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.lo: SALOMEDS_AttributeSequenceOfReal_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.lo `test -f 'SALOMEDS_AttributeSequenceOfReal_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfReal_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeSequenceOfReal_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal_i.lo `test -f 'SALOMEDS_AttributeSequenceOfReal_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfReal_i.cxx libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.lo: SALOMEDS_AttributeSequenceOfInteger_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.lo `test -f 'SALOMEDS_AttributeSequenceOfInteger_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfInteger_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeSequenceOfInteger_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger_i.lo `test -f 'SALOMEDS_AttributeSequenceOfInteger_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfInteger_i.cxx libSalomeDS_la-SALOMEDS_AttributeDrawable_i.lo: SALOMEDS_AttributeDrawable_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeDrawable_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeDrawable_i.lo `test -f 'SALOMEDS_AttributeDrawable_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeDrawable_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeDrawable_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeDrawable_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeDrawable_i.lo `test -f 'SALOMEDS_AttributeDrawable_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeDrawable_i.cxx libSalomeDS_la-SALOMEDS_AttributeSelectable_i.lo: SALOMEDS_AttributeSelectable_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeSelectable_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeSelectable_i.lo `test -f 'SALOMEDS_AttributeSelectable_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSelectable_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeSelectable_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeSelectable_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeSelectable_i.lo `test -f 'SALOMEDS_AttributeSelectable_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSelectable_i.cxx libSalomeDS_la-SALOMEDS_AttributeOpened_i.lo: SALOMEDS_AttributeOpened_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeOpened_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeOpened_i.lo `test -f 'SALOMEDS_AttributeOpened_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeOpened_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeOpened_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeOpened_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeOpened_i.lo `test -f 'SALOMEDS_AttributeOpened_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeOpened_i.cxx libSalomeDS_la-SALOMEDS_AttributeFlags_i.lo: SALOMEDS_AttributeFlags_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeFlags_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeFlags_i.lo `test -f 'SALOMEDS_AttributeFlags_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFlags_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeFlags_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeFlags_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeFlags_i.lo `test -f 'SALOMEDS_AttributeFlags_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFlags_i.cxx libSalomeDS_la-SALOMEDS_AttributeGraphic_i.lo: SALOMEDS_AttributeGraphic_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeGraphic_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeGraphic_i.lo `test -f 'SALOMEDS_AttributeGraphic_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeGraphic_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeGraphic_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeGraphic_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeGraphic_i.lo `test -f 'SALOMEDS_AttributeGraphic_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeGraphic_i.cxx libSalomeDS_la-SALOMEDS_AttributeExpandable_i.lo: SALOMEDS_AttributeExpandable_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeExpandable_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeExpandable_i.lo `test -f 'SALOMEDS_AttributeExpandable_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExpandable_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeExpandable_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeExpandable_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeExpandable_i.lo `test -f 'SALOMEDS_AttributeExpandable_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExpandable_i.cxx libSalomeDS_la-SALOMEDS_AttributeTextColor_i.lo: SALOMEDS_AttributeTextColor_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTextColor_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTextColor_i.lo `test -f 'SALOMEDS_AttributeTextColor_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextColor_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTextColor_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTextColor_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTextColor_i.lo `test -f 'SALOMEDS_AttributeTextColor_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextColor_i.cxx libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.lo: SALOMEDS_AttributeTextHighlightColor_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.lo `test -f 'SALOMEDS_AttributeTextHighlightColor_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextHighlightColor_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTextHighlightColor_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor_i.lo `test -f 'SALOMEDS_AttributeTextHighlightColor_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextHighlightColor_i.cxx libSalomeDS_la-SALOMEDS_AttributePixMap_i.lo: SALOMEDS_AttributePixMap_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributePixMap_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributePixMap_i.lo `test -f 'SALOMEDS_AttributePixMap_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePixMap_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributePixMap_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributePixMap_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributePixMap_i.lo `test -f 'SALOMEDS_AttributePixMap_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePixMap_i.cxx libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.lo: SALOMEDS_AttributeTreeNode_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.lo `test -f 'SALOMEDS_AttributeTreeNode_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTreeNode_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTreeNode_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTreeNode_i.lo `test -f 'SALOMEDS_AttributeTreeNode_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTreeNode_i.cxx libSalomeDS_la-SALOMEDS_AttributeLocalID_i.lo: SALOMEDS_AttributeLocalID_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeLocalID_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeLocalID_i.lo `test -f 'SALOMEDS_AttributeLocalID_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeLocalID_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeLocalID_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeLocalID_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeLocalID_i.lo `test -f 'SALOMEDS_AttributeLocalID_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeLocalID_i.cxx libSalomeDS_la-SALOMEDS_AttributeUserID_i.lo: SALOMEDS_AttributeUserID_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeUserID_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeUserID_i.lo `test -f 'SALOMEDS_AttributeUserID_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeUserID_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeUserID_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeUserID_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeUserID_i.lo `test -f 'SALOMEDS_AttributeUserID_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeUserID_i.cxx libSalomeDS_la-SALOMEDS_AttributeTarget_i.lo: SALOMEDS_AttributeTarget_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTarget_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTarget_i.lo `test -f 'SALOMEDS_AttributeTarget_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTarget_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTarget_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTarget_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTarget_i.lo `test -f 'SALOMEDS_AttributeTarget_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTarget_i.cxx libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.lo: SALOMEDS_AttributeTableOfInteger_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.lo `test -f 'SALOMEDS_AttributeTableOfInteger_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfInteger_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTableOfInteger_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfInteger_i.lo `test -f 'SALOMEDS_AttributeTableOfInteger_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfInteger_i.cxx libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.lo: SALOMEDS_AttributeTableOfReal_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.lo `test -f 'SALOMEDS_AttributeTableOfReal_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfReal_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTableOfReal_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfReal_i.lo `test -f 'SALOMEDS_AttributeTableOfReal_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfReal_i.cxx libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.lo: SALOMEDS_AttributeTableOfString_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.lo `test -f 'SALOMEDS_AttributeTableOfString_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfString_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTableOfString_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfString_i.lo `test -f 'SALOMEDS_AttributeTableOfString_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfString_i.cxx libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.lo: SALOMEDS_AttributeStudyProperties_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.lo `test -f 'SALOMEDS_AttributeStudyProperties_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeStudyProperties_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeStudyProperties_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeStudyProperties_i.lo `test -f 'SALOMEDS_AttributeStudyProperties_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeStudyProperties_i.cxx libSalomeDS_la-SALOMEDS_AttributePythonObject_i.lo: SALOMEDS_AttributePythonObject_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributePythonObject_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributePythonObject_i.lo `test -f 'SALOMEDS_AttributePythonObject_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePythonObject_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributePythonObject_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributePythonObject_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributePythonObject_i.lo `test -f 'SALOMEDS_AttributePythonObject_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePythonObject_i.cxx libSalomeDS_la-SALOMEDS_AttributeParameter_i.lo: SALOMEDS_AttributeParameter_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeParameter_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeParameter_i.lo `test -f 'SALOMEDS_AttributeParameter_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeParameter_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeParameter_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeParameter_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeParameter_i.lo `test -f 'SALOMEDS_AttributeParameter_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeParameter_i.cxx libSalomeDS_la-SALOMEDS_AttributeString_i.lo: SALOMEDS_AttributeString_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeString_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString_i.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeString_i.lo `test -f 'SALOMEDS_AttributeString_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeString_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeString_i.cxx' object='libSalomeDS_la-SALOMEDS_AttributeString_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeString_i.lo `test -f 'SALOMEDS_AttributeString_i.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeString_i.cxx libSalomeDS_la-SALOMEDS_SObject.lo: SALOMEDS_SObject.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_SObject.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject.Tpo -c -o libSalomeDS_la-SALOMEDS_SObject.lo `test -f 'SALOMEDS_SObject.cxx' || echo '$(srcdir)/'`SALOMEDS_SObject.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_SObject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_SObject.cxx' object='libSalomeDS_la-SALOMEDS_SObject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_SObject.lo `test -f 'SALOMEDS_SObject.cxx' || echo '$(srcdir)/'`SALOMEDS_SObject.cxx libSalomeDS_la-SALOMEDS_SComponent.lo: SALOMEDS_SComponent.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_SComponent.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent.Tpo -c -o libSalomeDS_la-SALOMEDS_SComponent.lo `test -f 'SALOMEDS_SComponent.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponent.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponent.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_SComponent.cxx' object='libSalomeDS_la-SALOMEDS_SComponent.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_SComponent.lo `test -f 'SALOMEDS_SComponent.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponent.cxx libSalomeDS_la-SALOMEDS_GenericAttribute.lo: SALOMEDS_GenericAttribute.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_GenericAttribute.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute.Tpo -c -o libSalomeDS_la-SALOMEDS_GenericAttribute.lo `test -f 'SALOMEDS_GenericAttribute.cxx' || echo '$(srcdir)/'`SALOMEDS_GenericAttribute.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_GenericAttribute.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_GenericAttribute.cxx' object='libSalomeDS_la-SALOMEDS_GenericAttribute.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_GenericAttribute.lo `test -f 'SALOMEDS_GenericAttribute.cxx' || echo '$(srcdir)/'`SALOMEDS_GenericAttribute.cxx libSalomeDS_la-SALOMEDS_ChildIterator.lo: SALOMEDS_ChildIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_ChildIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator.Tpo -c -o libSalomeDS_la-SALOMEDS_ChildIterator.lo `test -f 'SALOMEDS_ChildIterator.cxx' || echo '$(srcdir)/'`SALOMEDS_ChildIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_ChildIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_ChildIterator.cxx' object='libSalomeDS_la-SALOMEDS_ChildIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_ChildIterator.lo `test -f 'SALOMEDS_ChildIterator.cxx' || echo '$(srcdir)/'`SALOMEDS_ChildIterator.cxx libSalomeDS_la-SALOMEDS_SComponentIterator.lo: SALOMEDS_SComponentIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_SComponentIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator.Tpo -c -o libSalomeDS_la-SALOMEDS_SComponentIterator.lo `test -f 'SALOMEDS_SComponentIterator.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponentIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_SComponentIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_SComponentIterator.cxx' object='libSalomeDS_la-SALOMEDS_SComponentIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_SComponentIterator.lo `test -f 'SALOMEDS_SComponentIterator.cxx' || echo '$(srcdir)/'`SALOMEDS_SComponentIterator.cxx libSalomeDS_la-SALOMEDS_UseCaseIterator.lo: SALOMEDS_UseCaseIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_UseCaseIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator.Tpo -c -o libSalomeDS_la-SALOMEDS_UseCaseIterator.lo `test -f 'SALOMEDS_UseCaseIterator.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_UseCaseIterator.cxx' object='libSalomeDS_la-SALOMEDS_UseCaseIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_UseCaseIterator.lo `test -f 'SALOMEDS_UseCaseIterator.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseIterator.cxx libSalomeDS_la-SALOMEDS_UseCaseBuilder.lo: SALOMEDS_UseCaseBuilder.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_UseCaseBuilder.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder.Tpo -c -o libSalomeDS_la-SALOMEDS_UseCaseBuilder.lo `test -f 'SALOMEDS_UseCaseBuilder.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseBuilder.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_UseCaseBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_UseCaseBuilder.cxx' object='libSalomeDS_la-SALOMEDS_UseCaseBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_UseCaseBuilder.lo `test -f 'SALOMEDS_UseCaseBuilder.cxx' || echo '$(srcdir)/'`SALOMEDS_UseCaseBuilder.cxx libSalomeDS_la-SALOMEDS_StudyBuilder.lo: SALOMEDS_StudyBuilder.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_StudyBuilder.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder.Tpo -c -o libSalomeDS_la-SALOMEDS_StudyBuilder.lo `test -f 'SALOMEDS_StudyBuilder.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyBuilder.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_StudyBuilder.cxx' object='libSalomeDS_la-SALOMEDS_StudyBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_StudyBuilder.lo `test -f 'SALOMEDS_StudyBuilder.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyBuilder.cxx libSalomeDS_la-SALOMEDS_Study.lo: SALOMEDS_Study.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_Study.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_Study.Tpo -c -o libSalomeDS_la-SALOMEDS_Study.lo `test -f 'SALOMEDS_Study.cxx' || echo '$(srcdir)/'`SALOMEDS_Study.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_Study.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_Study.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Study.cxx' object='libSalomeDS_la-SALOMEDS_Study.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_Study.lo `test -f 'SALOMEDS_Study.cxx' || echo '$(srcdir)/'`SALOMEDS_Study.cxx libSalomeDS_la-SALOMEDS_StudyManager.lo: SALOMEDS_StudyManager.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_StudyManager.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager.Tpo -c -o libSalomeDS_la-SALOMEDS_StudyManager.lo `test -f 'SALOMEDS_StudyManager.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_StudyManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_StudyManager.cxx' object='libSalomeDS_la-SALOMEDS_StudyManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_StudyManager.lo `test -f 'SALOMEDS_StudyManager.cxx' || echo '$(srcdir)/'`SALOMEDS_StudyManager.cxx libSalomeDS_la-SALOMEDS_AttributeStudyProperties.lo: SALOMEDS_AttributeStudyProperties.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeStudyProperties.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeStudyProperties.lo `test -f 'SALOMEDS_AttributeStudyProperties.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeStudyProperties.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeStudyProperties.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeStudyProperties.cxx' object='libSalomeDS_la-SALOMEDS_AttributeStudyProperties.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeStudyProperties.lo `test -f 'SALOMEDS_AttributeStudyProperties.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeStudyProperties.cxx libSalomeDS_la-SALOMEDS_AttributeComment.lo: SALOMEDS_AttributeComment.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeComment.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeComment.lo `test -f 'SALOMEDS_AttributeComment.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeComment.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeComment.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeComment.cxx' object='libSalomeDS_la-SALOMEDS_AttributeComment.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeComment.lo `test -f 'SALOMEDS_AttributeComment.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeComment.cxx libSalomeDS_la-SALOMEDS_AttributeDrawable.lo: SALOMEDS_AttributeDrawable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeDrawable.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeDrawable.lo `test -f 'SALOMEDS_AttributeDrawable.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeDrawable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeDrawable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeDrawable.cxx' object='libSalomeDS_la-SALOMEDS_AttributeDrawable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeDrawable.lo `test -f 'SALOMEDS_AttributeDrawable.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeDrawable.cxx libSalomeDS_la-SALOMEDS_AttributeExpandable.lo: SALOMEDS_AttributeExpandable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeExpandable.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeExpandable.lo `test -f 'SALOMEDS_AttributeExpandable.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExpandable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExpandable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeExpandable.cxx' object='libSalomeDS_la-SALOMEDS_AttributeExpandable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeExpandable.lo `test -f 'SALOMEDS_AttributeExpandable.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExpandable.cxx libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.lo: SALOMEDS_AttributeExternalFileDef.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.lo `test -f 'SALOMEDS_AttributeExternalFileDef.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExternalFileDef.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeExternalFileDef.cxx' object='libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeExternalFileDef.lo `test -f 'SALOMEDS_AttributeExternalFileDef.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeExternalFileDef.cxx libSalomeDS_la-SALOMEDS_AttributeFileType.lo: SALOMEDS_AttributeFileType.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeFileType.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeFileType.lo `test -f 'SALOMEDS_AttributeFileType.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFileType.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFileType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeFileType.cxx' object='libSalomeDS_la-SALOMEDS_AttributeFileType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeFileType.lo `test -f 'SALOMEDS_AttributeFileType.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFileType.cxx libSalomeDS_la-SALOMEDS_AttributeFlags.lo: SALOMEDS_AttributeFlags.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeFlags.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeFlags.lo `test -f 'SALOMEDS_AttributeFlags.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFlags.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeFlags.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeFlags.cxx' object='libSalomeDS_la-SALOMEDS_AttributeFlags.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeFlags.lo `test -f 'SALOMEDS_AttributeFlags.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeFlags.cxx libSalomeDS_la-SALOMEDS_AttributeGraphic.lo: SALOMEDS_AttributeGraphic.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeGraphic.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeGraphic.lo `test -f 'SALOMEDS_AttributeGraphic.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeGraphic.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeGraphic.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeGraphic.cxx' object='libSalomeDS_la-SALOMEDS_AttributeGraphic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeGraphic.lo `test -f 'SALOMEDS_AttributeGraphic.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeGraphic.cxx libSalomeDS_la-SALOMEDS_AttributeIOR.lo: SALOMEDS_AttributeIOR.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeIOR.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeIOR.lo `test -f 'SALOMEDS_AttributeIOR.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeIOR.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeIOR.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeIOR.cxx' object='libSalomeDS_la-SALOMEDS_AttributeIOR.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeIOR.lo `test -f 'SALOMEDS_AttributeIOR.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeIOR.cxx libSalomeDS_la-SALOMEDS_AttributeInteger.lo: SALOMEDS_AttributeInteger.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeInteger.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeInteger.lo `test -f 'SALOMEDS_AttributeInteger.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeInteger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeInteger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeInteger.cxx' object='libSalomeDS_la-SALOMEDS_AttributeInteger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeInteger.lo `test -f 'SALOMEDS_AttributeInteger.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeInteger.cxx libSalomeDS_la-SALOMEDS_AttributeLocalID.lo: SALOMEDS_AttributeLocalID.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeLocalID.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeLocalID.lo `test -f 'SALOMEDS_AttributeLocalID.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeLocalID.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeLocalID.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeLocalID.cxx' object='libSalomeDS_la-SALOMEDS_AttributeLocalID.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeLocalID.lo `test -f 'SALOMEDS_AttributeLocalID.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeLocalID.cxx libSalomeDS_la-SALOMEDS_AttributeName.lo: SALOMEDS_AttributeName.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeName.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeName.lo `test -f 'SALOMEDS_AttributeName.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeName.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeName.cxx' object='libSalomeDS_la-SALOMEDS_AttributeName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeName.lo `test -f 'SALOMEDS_AttributeName.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeName.cxx libSalomeDS_la-SALOMEDS_AttributeOpened.lo: SALOMEDS_AttributeOpened.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeOpened.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeOpened.lo `test -f 'SALOMEDS_AttributeOpened.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeOpened.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeOpened.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeOpened.cxx' object='libSalomeDS_la-SALOMEDS_AttributeOpened.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeOpened.lo `test -f 'SALOMEDS_AttributeOpened.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeOpened.cxx libSalomeDS_la-SALOMEDS_AttributePythonObject.lo: SALOMEDS_AttributePythonObject.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributePythonObject.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributePythonObject.lo `test -f 'SALOMEDS_AttributePythonObject.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePythonObject.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePythonObject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributePythonObject.cxx' object='libSalomeDS_la-SALOMEDS_AttributePythonObject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributePythonObject.lo `test -f 'SALOMEDS_AttributePythonObject.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePythonObject.cxx libSalomeDS_la-SALOMEDS_AttributeReal.lo: SALOMEDS_AttributeReal.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeReal.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeReal.lo `test -f 'SALOMEDS_AttributeReal.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeReal.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeReal.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeReal.cxx' object='libSalomeDS_la-SALOMEDS_AttributeReal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeReal.lo `test -f 'SALOMEDS_AttributeReal.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeReal.cxx libSalomeDS_la-SALOMEDS_AttributeSelectable.lo: SALOMEDS_AttributeSelectable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeSelectable.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeSelectable.lo `test -f 'SALOMEDS_AttributeSelectable.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSelectable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSelectable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeSelectable.cxx' object='libSalomeDS_la-SALOMEDS_AttributeSelectable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeSelectable.lo `test -f 'SALOMEDS_AttributeSelectable.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSelectable.cxx libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.lo: SALOMEDS_AttributeSequenceOfInteger.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.lo `test -f 'SALOMEDS_AttributeSequenceOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfInteger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeSequenceOfInteger.cxx' object='libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfInteger.lo `test -f 'SALOMEDS_AttributeSequenceOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfInteger.cxx libSalomeDS_la-SALOMEDS_AttributePersistentRef.lo: SALOMEDS_AttributePersistentRef.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributePersistentRef.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributePersistentRef.lo `test -f 'SALOMEDS_AttributePersistentRef.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePersistentRef.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePersistentRef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributePersistentRef.cxx' object='libSalomeDS_la-SALOMEDS_AttributePersistentRef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributePersistentRef.lo `test -f 'SALOMEDS_AttributePersistentRef.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePersistentRef.cxx libSalomeDS_la-SALOMEDS_AttributePixMap.lo: SALOMEDS_AttributePixMap.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributePixMap.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributePixMap.lo `test -f 'SALOMEDS_AttributePixMap.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePixMap.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributePixMap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributePixMap.cxx' object='libSalomeDS_la-SALOMEDS_AttributePixMap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributePixMap.lo `test -f 'SALOMEDS_AttributePixMap.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributePixMap.cxx libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.lo: SALOMEDS_AttributeSequenceOfReal.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.lo `test -f 'SALOMEDS_AttributeSequenceOfReal.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfReal.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeSequenceOfReal.cxx' object='libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeSequenceOfReal.lo `test -f 'SALOMEDS_AttributeSequenceOfReal.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeSequenceOfReal.cxx libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.lo: SALOMEDS_AttributeTableOfInteger.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.lo `test -f 'SALOMEDS_AttributeTableOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfInteger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTableOfInteger.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfInteger.lo `test -f 'SALOMEDS_AttributeTableOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfInteger.cxx libSalomeDS_la-SALOMEDS_AttributeTableOfReal.lo: SALOMEDS_AttributeTableOfReal.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTableOfReal.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfReal.lo `test -f 'SALOMEDS_AttributeTableOfReal.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfReal.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfReal.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTableOfReal.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTableOfReal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfReal.lo `test -f 'SALOMEDS_AttributeTableOfReal.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfReal.cxx libSalomeDS_la-SALOMEDS_AttributeTableOfString.lo: SALOMEDS_AttributeTableOfString.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTableOfString.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfString.lo `test -f 'SALOMEDS_AttributeTableOfString.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfString.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTableOfString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTableOfString.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTableOfString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTableOfString.lo `test -f 'SALOMEDS_AttributeTableOfString.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTableOfString.cxx libSalomeDS_la-SALOMEDS_AttributeTarget.lo: SALOMEDS_AttributeTarget.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTarget.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTarget.lo `test -f 'SALOMEDS_AttributeTarget.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTarget.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTarget.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTarget.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTarget.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTarget.lo `test -f 'SALOMEDS_AttributeTarget.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTarget.cxx libSalomeDS_la-SALOMEDS_AttributeTextColor.lo: SALOMEDS_AttributeTextColor.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTextColor.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTextColor.lo `test -f 'SALOMEDS_AttributeTextColor.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextColor.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextColor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTextColor.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTextColor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTextColor.lo `test -f 'SALOMEDS_AttributeTextColor.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextColor.cxx libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.lo: SALOMEDS_AttributeTextHighlightColor.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.lo `test -f 'SALOMEDS_AttributeTextHighlightColor.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextHighlightColor.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTextHighlightColor.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTextHighlightColor.lo `test -f 'SALOMEDS_AttributeTextHighlightColor.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTextHighlightColor.cxx libSalomeDS_la-SALOMEDS_AttributeTreeNode.lo: SALOMEDS_AttributeTreeNode.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeTreeNode.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeTreeNode.lo `test -f 'SALOMEDS_AttributeTreeNode.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTreeNode.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeTreeNode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeTreeNode.cxx' object='libSalomeDS_la-SALOMEDS_AttributeTreeNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeTreeNode.lo `test -f 'SALOMEDS_AttributeTreeNode.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeTreeNode.cxx libSalomeDS_la-SALOMEDS_AttributeUserID.lo: SALOMEDS_AttributeUserID.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeUserID.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeUserID.lo `test -f 'SALOMEDS_AttributeUserID.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeUserID.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeUserID.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeUserID.cxx' object='libSalomeDS_la-SALOMEDS_AttributeUserID.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeUserID.lo `test -f 'SALOMEDS_AttributeUserID.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeUserID.cxx libSalomeDS_la-SALOMEDS_TMPFile_i.lo: SALOMEDS_TMPFile_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_TMPFile_i.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_TMPFile_i.Tpo -c -o libSalomeDS_la-SALOMEDS_TMPFile_i.lo `test -f 'SALOMEDS_TMPFile_i.cxx' || echo '$(srcdir)/'`SALOMEDS_TMPFile_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_TMPFile_i.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_TMPFile_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_TMPFile_i.cxx' object='libSalomeDS_la-SALOMEDS_TMPFile_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_TMPFile_i.lo `test -f 'SALOMEDS_TMPFile_i.cxx' || echo '$(srcdir)/'`SALOMEDS_TMPFile_i.cxx libSalomeDS_la-SALOMEDS_AttributeParameter.lo: SALOMEDS_AttributeParameter.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeParameter.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeParameter.lo `test -f 'SALOMEDS_AttributeParameter.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeParameter.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeParameter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeParameter.cxx' object='libSalomeDS_la-SALOMEDS_AttributeParameter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeParameter.lo `test -f 'SALOMEDS_AttributeParameter.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeParameter.cxx libSalomeDS_la-SALOMEDS_AttributeString.lo: SALOMEDS_AttributeString.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_AttributeString.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString.Tpo -c -o libSalomeDS_la-SALOMEDS_AttributeString.lo `test -f 'SALOMEDS_AttributeString.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeString.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_AttributeString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_AttributeString.cxx' object='libSalomeDS_la-SALOMEDS_AttributeString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_AttributeString.lo `test -f 'SALOMEDS_AttributeString.cxx' || echo '$(srcdir)/'`SALOMEDS_AttributeString.cxx libSalomeDS_la-SALOMEDS_IParameters.lo: SALOMEDS_IParameters.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDS_la-SALOMEDS_IParameters.lo -MD -MP -MF $(DEPDIR)/libSalomeDS_la-SALOMEDS_IParameters.Tpo -c -o libSalomeDS_la-SALOMEDS_IParameters.lo `test -f 'SALOMEDS_IParameters.cxx' || echo '$(srcdir)/'`SALOMEDS_IParameters.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDS_la-SALOMEDS_IParameters.Tpo $(DEPDIR)/libSalomeDS_la-SALOMEDS_IParameters.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_IParameters.cxx' object='libSalomeDS_la-SALOMEDS_IParameters.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDS_la-SALOMEDS_IParameters.lo `test -f 'SALOMEDS_IParameters.cxx' || echo '$(srcdir)/'`SALOMEDS_IParameters.cxx SALOMEDS_Client-SALOMEDS_Client.o: SALOMEDS_Client.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOMEDS_Client-SALOMEDS_Client.o -MD -MP -MF $(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Tpo -c -o SALOMEDS_Client-SALOMEDS_Client.o `test -f 'SALOMEDS_Client.cxx' || echo '$(srcdir)/'`SALOMEDS_Client.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Tpo $(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Client.cxx' object='SALOMEDS_Client-SALOMEDS_Client.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOMEDS_Client-SALOMEDS_Client.o `test -f 'SALOMEDS_Client.cxx' || echo '$(srcdir)/'`SALOMEDS_Client.cxx SALOMEDS_Client-SALOMEDS_Client.obj: SALOMEDS_Client.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOMEDS_Client-SALOMEDS_Client.obj -MD -MP -MF $(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Tpo -c -o SALOMEDS_Client-SALOMEDS_Client.obj `if test -f 'SALOMEDS_Client.cxx'; then $(CYGPATH_W) 'SALOMEDS_Client.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOMEDS_Client.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Tpo $(DEPDIR)/SALOMEDS_Client-SALOMEDS_Client.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Client.cxx' object='SALOMEDS_Client-SALOMEDS_Client.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOMEDS_Client-SALOMEDS_Client.obj `if test -f 'SALOMEDS_Client.cxx'; then $(CYGPATH_W) 'SALOMEDS_Client.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOMEDS_Client.cxx'; fi` SALOMEDS_Server-SALOMEDS_Server.o: SALOMEDS_Server.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOMEDS_Server-SALOMEDS_Server.o -MD -MP -MF $(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Tpo -c -o SALOMEDS_Server-SALOMEDS_Server.o `test -f 'SALOMEDS_Server.cxx' || echo '$(srcdir)/'`SALOMEDS_Server.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Tpo $(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Server.cxx' object='SALOMEDS_Server-SALOMEDS_Server.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOMEDS_Server-SALOMEDS_Server.o `test -f 'SALOMEDS_Server.cxx' || echo '$(srcdir)/'`SALOMEDS_Server.cxx SALOMEDS_Server-SALOMEDS_Server.obj: SALOMEDS_Server.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SALOMEDS_Server-SALOMEDS_Server.obj -MD -MP -MF $(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Tpo -c -o SALOMEDS_Server-SALOMEDS_Server.obj `if test -f 'SALOMEDS_Server.cxx'; then $(CYGPATH_W) 'SALOMEDS_Server.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOMEDS_Server.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Tpo $(DEPDIR)/SALOMEDS_Server-SALOMEDS_Server.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Server.cxx' object='SALOMEDS_Server-SALOMEDS_Server.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(SALOMEDS_Server_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SALOMEDS_Server-SALOMEDS_Server.obj `if test -f 'SALOMEDS_Server.cxx'; then $(CYGPATH_W) 'SALOMEDS_Server.cxx'; else $(CYGPATH_W) '$(srcdir)/SALOMEDS_Server.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS.cxx000077500000000000000000000116631177004724000202250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS.cxx // Author : Sergey ANIKIN // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS.cxx,v 1.7.30.2.12.1 2012-04-12 14:05:20 vsr Exp $ // #include "SALOMEDS.hxx" #include "SALOMEDS_StudyManager.hxx" #include "SALOMEDS_Study.hxx" #include "SALOMEDS_StudyBuilder.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS_SComponent.hxx" #include "SALOMEDSClient.hxx" #include "SALOMEDSClient_IParameters.hxx" #include "SALOMEDS_IParameters.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include "SALOMEDS_Defines.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include // PAL8065: san -- Global recursive mutex for SALOMEDS methods Utils_Mutex SALOMEDS::Locker::MutexDS; // PAL8065: san -- Global SALOMEDS locker SALOMEDS::Locker::Locker() : Utils_Locker( &MutexDS ) {} SALOMEDS::Locker::~Locker() {} void SALOMEDS::lock() { Locker::MutexDS.lock(); } void SALOMEDS::unlock() { SALOMEDS::Locker::MutexDS.unlock(); } // srn: Added new library methods that create basic SALOMEDS objects (StudyManager, Study, SComponent, SObject) //============================================================================= /*! * C factory, accessible with dlsym, after dlopen */ //============================================================================= extern "C" { SALOMEDS_EXPORT SALOMEDSClient_StudyManager* StudyManagerFactory() { return new SALOMEDS_StudyManager(); } SALOMEDS_EXPORT SALOMEDSClient_Study* StudyFactory(SALOMEDS::Study_ptr theStudy) { if(CORBA::is_nil(theStudy)) return NULL; return new SALOMEDS_Study(theStudy); } SALOMEDS_EXPORT SALOMEDSClient_SObject* SObjectFactory(SALOMEDS::SObject_ptr theSObject) { if(CORBA::is_nil(theSObject)) return NULL; return new SALOMEDS_SObject(theSObject); } SALOMEDS_EXPORT SALOMEDSClient_SComponent* SComponentFactory(SALOMEDS::SComponent_ptr theSComponent) { if(CORBA::is_nil(theSComponent)) return NULL; return new SALOMEDS_SComponent(theSComponent); } SALOMEDS_EXPORT SALOMEDSClient_StudyBuilder* BuilderFactory(SALOMEDS::StudyBuilder_ptr theBuilder) { if(CORBA::is_nil(theBuilder)) return NULL; return new SALOMEDS_StudyBuilder(theBuilder); } SALOMEDS_EXPORT SALOMEDSClient_StudyManager* CreateStudyManager(CORBA::ORB_ptr orb, PortableServer::POA_ptr root_poa) { SALOME_NamingService namingService(orb); CORBA::Object_var obj = namingService.Resolve( "/myStudyManager" ); SALOMEDS::StudyManager_var theManager = SALOMEDS::StudyManager::_narrow( obj ); if( CORBA::is_nil(theManager) ) { SALOMEDS_StudyManager_i * aStudyManager_i = new SALOMEDS_StudyManager_i(orb, root_poa); // Activate the objects. This tells the POA that the objects are ready to accept requests. PortableServer::ObjectId_var aStudyManager_iid = root_poa->activate_object(aStudyManager_i); //give ownership to the poa : the object will be deleted by the poa aStudyManager_i->_remove_ref(); aStudyManager_i->register_name((char*)"/myStudyManager"); } return new SALOMEDS_StudyManager(); } SALOMEDS_EXPORT SALOMEDSClient_IParameters* GetIParameters(const _PTR(AttributeParameter)& ap) { return new SALOMEDS_IParameters(ap); } SALOMEDS_EXPORT SALOMEDS::SObject_ptr ConvertSObject(const _PTR(SObject)& theSObject) { SALOMEDS_SObject* so = _CAST(SObject, theSObject); if(!theSObject || !so) return SALOMEDS::SObject::_nil(); return so->GetSObject(); } SALOMEDS_EXPORT SALOMEDS::Study_ptr ConvertStudy(const _PTR(Study)& theStudy) { SALOMEDS_Study* study = _CAST(Study, theStudy); if(!theStudy || !study) return SALOMEDS::Study::_nil(); return study->GetStudy(); } SALOMEDS_EXPORT SALOMEDS::StudyBuilder_ptr ConvertBuilder(const _PTR(StudyBuilder)& theBuilder) { SALOMEDS_StudyBuilder* builder = _CAST(StudyBuilder, theBuilder); if(!theBuilder || !builder) return SALOMEDS::StudyBuilder::_nil(); return builder->GetBuilder(); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS.hxx000077500000000000000000000044161177004724000202300ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS.hxx // Author : Sergey ANIKIN // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS.hxx,v 1.5.30.2.12.1 2012-04-12 14:05:20 vsr Exp $ // #ifndef SALOMEDS_HeaderFile #define SALOMEDS_HeaderFile #include "SALOMEDS_Defines.hxx" #include namespace SALOMEDS { // PAL8065: san -- Implementation of convenient locker based on simple recursive // mutex for POSIX platforms. // This class is to protect SALOMEDS CORBA methods which deal with OCC calls from // parallel access by several threads // To protect some method, an instance of Locker class should be created // on the stack at the beginning of guarded code: // // Locker lock; // class SALOMEDS_EXPORT Locker : public Utils_Locker { public: Locker(); virtual ~Locker(); private: static Utils_Mutex MutexDS; friend void lock(); friend void unlock(); }; // Convenient functions to lock/unlock the global SALOMEDS mutex temporarily. // In particular, "unlock-dosomething-lock" scheme should be used, when some non-SALOMEDS // CORBA interface is called (component's engine), to avoid deadlocks in case of // indirect recursion. void lock(); void unlock(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttLong_i.hxx000077500000000000000000000035431177004724000221700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_AttLong_i.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_AttLong_i.hxx,v 1.6.2.1.10.2.12.1 2012-04-12 14:05:20 vsr Exp $ // #ifndef __SALOMEDS_ATTLONG_I_H__ #define __SALOMEDS_ATTLONG_I_H__ // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_AttLong) #include "SALOMEDS_BasicAttribute_i.hxx" class SALOMEDS_AttLong_i: public POA_SALOMEDS::AttLong, public SALOMEDS_BasicAttribute_i { protected: char * _type; public: SALOMEDS_AttLong_i() { _type = "AttLong";}; ~SALOMEDS_AttLong_i() {}; void Set(CORBA::Long i); CORBA::Long Get(); virtual char* Save(); virtual void Load(); CORBA::Boolean GetPtr(SALOMEDS::SObject_ptr so); virtual char* GetType(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttReal_i.hxx000077500000000000000000000035471177004724000221600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_AttReal_i.hxx // Author : Estelle Deville // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_AttReal_i.hxx,v 1.6.2.1.10.2.12.1 2012-04-12 14:05:20 vsr Exp $ // #ifndef __SALOMEDS_ATTREAL_I_H__ #define __SALOMEDS_ATTREAL_I_H__ // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_AttReal) #include "SALOMEDS_BasicAttribute_i.hxx" class SALOMEDS_AttReal_i: public POA_SALOMEDS::AttReal, public SALOMEDS_BasicAttribute_i { protected: char * _type; public: SALOMEDS_AttReal_i() { _type = "AttReal";}; ~SALOMEDS_AttReal_i() {}; void Set(CORBA::Double r); CORBA::Double Get(); virtual char* Save(); virtual void Load(); CORBA::Boolean GetPtr(SALOMEDS::SObject_ptr so); virtual char* GetType(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeComment.cxx000077500000000000000000000040321177004724000235630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeComment.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeComment.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeComment::SALOMEDS_AttributeComment(SALOMEDSImpl_AttributeComment* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeComment::SALOMEDS_AttributeComment(SALOMEDS::AttributeComment_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeComment::~SALOMEDS_AttributeComment() {} std::string SALOMEDS_AttributeComment::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeComment::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeComment::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeComment::_narrow(_corba_impl)->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeComment.hxx000077500000000000000000000034121177004724000235710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeComment.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeComment_HeaderFile #define SALOMEDS_AttributeComment_HeaderFile #include "SALOMEDSClient_AttributeComment.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeComment.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeComment: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeComment { public: SALOMEDS_AttributeComment(SALOMEDSImpl_AttributeComment* theAttr); SALOMEDS_AttributeComment(SALOMEDS::AttributeComment_ptr theAttr); ~SALOMEDS_AttributeComment(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeComment_i.cxx000077500000000000000000000031751177004724000241020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeComment_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeComment_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeComment_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributeComment_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); std::string aValue((char*)Str.in()); dynamic_cast(_impl)->SetValue(aValue); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeComment_i.hxx000077500000000000000000000033501177004724000241020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeComment_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeComment_i_HeaderFile #define SALOMEDS_AttributeComment_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeComment.hxx" class SALOMEDS_AttributeComment_i: public virtual POA_SALOMEDS::AttributeComment, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeComment_i(SALOMEDSImpl_AttributeComment* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; virtual ~SALOMEDS_AttributeComment_i() {}; char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeDrawable.cxx000077500000000000000000000040241177004724000237030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeDrawable.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeDrawable.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeDrawable::SALOMEDS_AttributeDrawable(SALOMEDSImpl_AttributeDrawable* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeDrawable::SALOMEDS_AttributeDrawable(SALOMEDS::AttributeDrawable_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeDrawable::~SALOMEDS_AttributeDrawable() {} bool SALOMEDS_AttributeDrawable::IsDrawable() { bool aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = (bool)dynamic_cast(_local_impl)->IsDrawable(); } else aValue = SALOMEDS::AttributeDrawable::_narrow(_corba_impl)->IsDrawable(); return aValue; } void SALOMEDS_AttributeDrawable::SetDrawable(bool value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetDrawable((int)value); } else SALOMEDS::AttributeDrawable::_narrow(_corba_impl)->SetDrawable(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeDrawable.hxx000077500000000000000000000034111177004724000237070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeDrawable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeDrawable_HeaderFile #define SALOMEDS_AttributeDrawable_HeaderFile #include "SALOMEDSClient_AttributeDrawable.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeDrawable.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeDrawable: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeDrawable { public: SALOMEDS_AttributeDrawable(SALOMEDSImpl_AttributeDrawable* theAttr); SALOMEDS_AttributeDrawable(SALOMEDS::AttributeDrawable_ptr theAttr); ~SALOMEDS_AttributeDrawable(); virtual bool IsDrawable(); virtual void SetDrawable(bool value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeDrawable_i.cxx000077500000000000000000000027331177004724000242200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeDrawable_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeDrawable_i.hxx" #include "SALOMEDS.hxx" CORBA::Boolean SALOMEDS_AttributeDrawable_i::IsDrawable() { SALOMEDS::Locker lock; return (dynamic_cast(_impl)->IsDrawable() == 1); } void SALOMEDS_AttributeDrawable_i::SetDrawable(CORBA::Boolean value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetDrawable(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeDrawable_i.hxx000077500000000000000000000034111177004724000242170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeDrawable_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeDrawable_i_HeaderFile #define SALOMEDS_AttributeDrawable_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeDrawable.hxx" class SALOMEDS_AttributeDrawable_i: public virtual POA_SALOMEDS::AttributeDrawable, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeDrawable_i(SALOMEDSImpl_AttributeDrawable* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; virtual ~SALOMEDS_AttributeDrawable_i() {}; CORBA::Boolean IsDrawable(); void SetDrawable(CORBA::Boolean value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExpandable.cxx000077500000000000000000000041001177004724000242200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExpandable.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeExpandable.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeExpandable::SALOMEDS_AttributeExpandable(SALOMEDSImpl_AttributeExpandable* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeExpandable::SALOMEDS_AttributeExpandable(SALOMEDS::AttributeExpandable_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeExpandable::~SALOMEDS_AttributeExpandable() {} bool SALOMEDS_AttributeExpandable::IsExpandable() { bool aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = (bool)dynamic_cast(_local_impl)->IsExpandable(); } else aValue = SALOMEDS::AttributeExpandable::_narrow(_corba_impl)->IsExpandable(); return aValue; } void SALOMEDS_AttributeExpandable::SetExpandable(bool value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetExpandable((int)value); } else SALOMEDS::AttributeExpandable::_narrow(_corba_impl)->SetExpandable(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExpandable.hxx000077500000000000000000000034451177004724000242400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExpandable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeExpandable_HeaderFile #define SALOMEDS_AttributeExpandable_HeaderFile #include "SALOMEDSClient_AttributeExpandable.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeExpandable.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeExpandable: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeExpandable { public: SALOMEDS_AttributeExpandable(SALOMEDSImpl_AttributeExpandable* theAttr); SALOMEDS_AttributeExpandable(SALOMEDS::AttributeExpandable_ptr theAttr); ~SALOMEDS_AttributeExpandable(); virtual bool IsExpandable(); virtual void SetExpandable(bool value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExpandable_i.cxx000077500000000000000000000027571177004724000245500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExpandable_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeExpandable_i.hxx" #include "SALOMEDS.hxx" CORBA::Boolean SALOMEDS_AttributeExpandable_i::IsExpandable() { SALOMEDS::Locker lock; return (dynamic_cast(_impl)->IsExpandable() == 1); } void SALOMEDS_AttributeExpandable_i::SetExpandable(CORBA::Boolean value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetExpandable(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExpandable_i.hxx000077500000000000000000000034471177004724000245520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExpandable_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeExpandable_i_HeaderFile #define SALOMEDS_AttributeExpandable_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeExpandable.hxx" class SALOMEDS_AttributeExpandable_i: public virtual POA_SALOMEDS::AttributeExpandable, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeExpandable_i(SALOMEDSImpl_AttributeExpandable* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeExpandable_i() {}; CORBA::Boolean IsExpandable(); void SetExpandable(CORBA::Boolean value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef.cxx000077500000000000000000000042321177004724000251640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExternalFileDef.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeExternalFileDef.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeExternalFileDef::SALOMEDS_AttributeExternalFileDef(SALOMEDSImpl_AttributeExternalFileDef* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeExternalFileDef::SALOMEDS_AttributeExternalFileDef(SALOMEDS::AttributeExternalFileDef_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeExternalFileDef::~SALOMEDS_AttributeExternalFileDef() {} std::string SALOMEDS_AttributeExternalFileDef::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeExternalFileDef::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeExternalFileDef::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeExternalFileDef::_narrow(_corba_impl)->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef.hxx000077500000000000000000000035521177004724000251750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExternalFileDef.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeExternalFileDef_HeaderFile #define SALOMEDS_AttributeExternalFileDef_HeaderFile #include "SALOMEDSClient_AttributeExternalFileDef.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeExternalFileDef.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeExternalFileDef: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeExternalFileDef { public: SALOMEDS_AttributeExternalFileDef(SALOMEDSImpl_AttributeExternalFileDef* theAttr); SALOMEDS_AttributeExternalFileDef(SALOMEDS::AttributeExternalFileDef_ptr theAttr); ~SALOMEDS_AttributeExternalFileDef(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.cxx000077500000000000000000000031551177004724000254770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExternalFileDef_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeExternalFileDef_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeExternalFileDef_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributeExternalFileDef_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); dynamic_cast(_impl)->SetValue(std::string(Str)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.hxx000077500000000000000000000034651177004724000255100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeExternalFileDef_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeExternalFileDef_i_HeaderFile #define SALOMEDS_AttributeExternalFileDef_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeExternalFileDef.hxx" class SALOMEDS_AttributeExternalFileDef_i: public virtual POA_SALOMEDS::AttributeExternalFileDef, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeExternalFileDef_i(SALOMEDSImpl_AttributeExternalFileDef* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {} ~SALOMEDS_AttributeExternalFileDef_i() {}; char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFileType.cxx000077500000000000000000000040501177004724000237020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFileType.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeFileType.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeFileType::SALOMEDS_AttributeFileType(SALOMEDSImpl_AttributeFileType* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeFileType::SALOMEDS_AttributeFileType(SALOMEDS::AttributeFileType_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeFileType::~SALOMEDS_AttributeFileType() {} std::string SALOMEDS_AttributeFileType::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeFileType::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeFileType::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeFileType::_narrow(_corba_impl)->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFileType.hxx000077500000000000000000000034261177004724000237150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFileType.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeFileType_HeaderFile #define SALOMEDS_AttributeFileType_HeaderFile #include "SALOMEDSClient_AttributeFileType.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeFileType.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeFileType: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeFileType { public: SALOMEDS_AttributeFileType(SALOMEDSImpl_AttributeFileType* theAttr); SALOMEDS_AttributeFileType(SALOMEDS::AttributeFileType_ptr theAttr); ~SALOMEDS_AttributeFileType(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx000077500000000000000000000031341177004724000242140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFileType_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeFileType_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeFileType_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributeFileType_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); std::string aValue((char*)Str.in()); dynamic_cast(_impl)->SetValue(aValue); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx000077500000000000000000000033561177004724000242270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFileType_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeFileType_i_HeaderFile #define SALOMEDS_AttributeFileType_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeFileType.hxx" class SALOMEDS_AttributeFileType_i: public virtual POA_SALOMEDS::AttributeFileType, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeFileType_i(SALOMEDSImpl_AttributeFileType* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeFileType_i() {}; char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFlags.cxx000077500000000000000000000046661177004724000232320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFlags.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeFlags.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeFlags::SALOMEDS_AttributeFlags(SALOMEDSImpl_AttributeFlags* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeFlags::SALOMEDS_AttributeFlags(SALOMEDS::AttributeFlags_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeFlags::~SALOMEDS_AttributeFlags() {} int SALOMEDS_AttributeFlags::GetFlags() { int aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Get(); } else aValue = SALOMEDS::AttributeFlags::_narrow(_corba_impl)->GetFlags(); return aValue; } void SALOMEDS_AttributeFlags::SetFlags(int theFlags) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Set(theFlags); } else SALOMEDS::AttributeFlags::_narrow(_corba_impl)->SetFlags(theFlags); } bool SALOMEDS_AttributeFlags::Get(int theFlag) { return (GetFlags() & theFlag) ? true : false; } void SALOMEDS_AttributeFlags::Set(int theFlag, bool theValue) { if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeFlags* anAttr = dynamic_cast(_local_impl); if (theValue) anAttr->Set(anAttr->Get() | theFlag); else anAttr->Set(anAttr->Get() & ~theFlag); } else SALOMEDS::AttributeFlags::_narrow(_corba_impl)->Set(theFlag, theValue); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFlags.hxx000077500000000000000000000034701177004724000232270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFlags.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeFlags_HeaderFile #define SALOMEDS_AttributeFlags_HeaderFile #include "SALOMEDSClient_AttributeFlags.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeFlags.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeFlags: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeFlags { public: SALOMEDS_AttributeFlags(SALOMEDSImpl_AttributeFlags* theAttr); SALOMEDS_AttributeFlags(SALOMEDS::AttributeFlags_ptr theAttr); ~SALOMEDS_AttributeFlags(); virtual int GetFlags(); virtual void SetFlags(int theFlags); virtual bool Get(int theFlag); virtual void Set(int theFlag, bool theValue); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFlags_i.cxx000077500000000000000000000064061177004724000235340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFlags_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeFlags_i.hxx" #include "SALOMEDS.hxx" /* Class : SALOMEDS_AttributeFlags_i Description : This class is intended for storing different object attributes that have only two states (0 and 1). Avalable attributes: IS_VISIBLE - is equal to 1 if object is visible in 3D view (0 - overwise). This attribute is valid for active view only. */ //======================================================================= // function : SALOMEDS_AttributeFlags_i::GetFlags // purpose : Get all flags as integer value //======================================================================= CORBA::Long SALOMEDS_AttributeFlags_i::GetFlags() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Get(); } //======================================================================= // function : SALOMEDS_AttributeFlags_i::SetFlags // purpose : Set all flags as integer value //======================================================================= void SALOMEDS_AttributeFlags_i::SetFlags( CORBA::Long theFlags ) { SALOMEDS::Locker lock; dynamic_cast(_impl)->Set( theFlags ); } //======================================================================= // function : SALOMEDS_AttributeFlags_i::Get // purpose : Get specified flag //======================================================================= CORBA::Boolean SALOMEDS_AttributeFlags_i::Get( CORBA::Long theFlag ) { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Get() & theFlag ? true : false; } //======================================================================= // function : SALOMEDS_AttributeFlags_i::Set // purpose : Set/Unset specified flag //======================================================================= void SALOMEDS_AttributeFlags_i::Set( CORBA::Long theFlag, CORBA::Boolean theValue ) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeFlags* anAttr = dynamic_cast(_impl); if ( theValue ) anAttr->Set( anAttr->Get() | theFlag ); else anAttr->Set( anAttr->Get() & ~theFlag ); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeFlags_i.hxx000077500000000000000000000044771177004724000235470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFlags_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeFlags_i_HeaderFile #define SALOMEDS_AttributeFlags_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeFlags.hxx" /* Class : SALOMEDS_AttributeFlags_i Description : This class is intended for storing different object attributes that have only two states (0 and 1). Avalable attributes: IS_VISIBLE - is equal to 1 if object is visible in 3D view (0 - overwise). This attribute is valid for active view only. */ class SALOMEDS_AttributeFlags_i: public virtual POA_SALOMEDS::AttributeFlags, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeFlags_i( SALOMEDSImpl_AttributeFlags* theAttr, CORBA::ORB_ptr orb ) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; virtual ~SALOMEDS_AttributeFlags_i() {}; CORBA::Long GetFlags(); void SetFlags( CORBA::Long theFlags ); CORBA::Boolean Get( CORBA::Long theFlag ); void Set( CORBA::Long theFlag, CORBA::Boolean theValue ); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeGraphic.cxx000077500000000000000000000041111177004724000235340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeGraphic.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeGraphic.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeGraphic::SALOMEDS_AttributeGraphic(SALOMEDSImpl_AttributeGraphic* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeGraphic::SALOMEDS_AttributeGraphic(SALOMEDS::AttributeGraphic_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeGraphic::~SALOMEDS_AttributeGraphic() {} bool SALOMEDS_AttributeGraphic::GetVisibility(int theViewId) { bool aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = (bool)dynamic_cast(_local_impl)->GetVisibility(theViewId); } else aValue = SALOMEDS::AttributeGraphic::_narrow(_corba_impl)->GetVisibility(theViewId); return aValue; } void SALOMEDS_AttributeGraphic::SetVisibility(int theViewId, bool theValue) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetVisibility(theViewId, theValue); } else SALOMEDS::AttributeGraphic::_narrow(_corba_impl)->SetVisibility(theViewId, theValue); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeGraphic.hxx000077500000000000000000000034421177004724000235470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeGraphic.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeGraphic_HeaderFile #define SALOMEDS_AttributeGraphic_HeaderFile #include "SALOMEDSClient_AttributeGraphic.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeGraphic.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeGraphic: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeGraphic { public: SALOMEDS_AttributeGraphic(SALOMEDSImpl_AttributeGraphic* theAttr); SALOMEDS_AttributeGraphic(SALOMEDS::AttributeGraphic_ptr theAttr); ~SALOMEDS_AttributeGraphic(); virtual void SetVisibility(int theViewId, bool theValue); virtual bool GetVisibility(int theViewId); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeGraphic_i.cxx000077500000000000000000000045721177004724000240570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeGraphic_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeGraphic_i.hxx" #include "SALOMEDS.hxx" /* Class : SALOMEDS_AttributeGraphic_i Description : This class is intended for storing information about graphic representation of objects in dirrent views */ //======================================================================= // function : SALOMEDS_AttributeGraphic_i::~SetVisibility // purpose : Set visibility of object in given view //======================================================================= void SALOMEDS_AttributeGraphic_i::SetVisibility( CORBA::Long theViewId, CORBA::Boolean theValue ) { SALOMEDS::Locker lock; if ( _impl ) dynamic_cast(_impl)->SetVisibility( theViewId, theValue ); } //======================================================================= // function : SALOMEDS_AttributeGraphic_i::~SALOMEDS_AttributeGraphic_i // purpose : Get visibility of object in given view //======================================================================= CORBA::Boolean SALOMEDS_AttributeGraphic_i::GetVisibility( CORBA::Long theViewId ) { SALOMEDS::Locker lock; return ( _impl ) ? dynamic_cast(_impl)->GetVisibility( theViewId ) : false; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeGraphic_i.hxx000077500000000000000000000041121177004724000240520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeFlags_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeGraphic_i_HeaderFile #define SALOMEDS_AttributeGraphic_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeGraphic.hxx" /* Class : SALOMEDS_AttributeGraphic_i Description : This class is intended for storing information about graphic representation of objects in dirrent views */ class SALOMEDS_AttributeGraphic_i: public virtual POA_SALOMEDS::AttributeGraphic, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeGraphic_i( SALOMEDSImpl_AttributeGraphic* theAttr, CORBA::ORB_ptr orb ) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; virtual ~SALOMEDS_AttributeGraphic_i() {}; void SetVisibility( CORBA::Long theViewId, CORBA::Boolean theValue ); CORBA::Boolean GetVisibility( CORBA::Long theViewId ); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeIOR.cxx000077500000000000000000000040471177004724000226200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeIOR.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeIOR.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeIOR::SALOMEDS_AttributeIOR(SALOMEDSImpl_AttributeIOR* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeIOR::SALOMEDS_AttributeIOR(SALOMEDS::AttributeIOR_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeIOR::~SALOMEDS_AttributeIOR() {} std::string SALOMEDS_AttributeIOR::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = (CORBA::String_var)((SALOMEDS::AttributeIOR_var)SALOMEDS::AttributeIOR::_narrow(_corba_impl))->Value(); return aValue; } void SALOMEDS_AttributeIOR::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else ((SALOMEDS::AttributeIOR_var)SALOMEDS::AttributeIOR::_narrow(_corba_impl))->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeIOR.hxx000077500000000000000000000033321177004724000226210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeIOR_HeaderFile #define SALOMEDS_AttributeIOR_HeaderFile #include "SALOMEDSClient_AttributeIOR.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeIOR: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeIOR { public: SALOMEDS_AttributeIOR(SALOMEDSImpl_AttributeIOR* theAttr); SALOMEDS_AttributeIOR(SALOMEDS::AttributeIOR_ptr theAttr); ~SALOMEDS_AttributeIOR(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeIOR_i.cxx000077500000000000000000000031731177004724000231270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeIOR_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeIOR_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeIOR_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributeIOR_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); std::string anExtStr((char *)Str.in()); dynamic_cast(_impl)->SetValue(anExtStr); } SALOMEDS_AttributeIOR_i::~SALOMEDS_AttributeIOR_i() {} salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeIOR_i.hxx000077500000000000000000000032521177004724000231320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeIOR_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeIOR_i_HeaderFile #define SALOMEDS_AttributeIOR_i_HeaderFile #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" class SALOMEDS_AttributeIOR_i: public virtual POA_SALOMEDS::AttributeIOR, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeIOR_i(SALOMEDSImpl_AttributeIOR* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeIOR_i(); char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeInteger.cxx000077500000000000000000000037561177004724000235720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeInteger.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeInteger.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeInteger::SALOMEDS_AttributeInteger(SALOMEDSImpl_AttributeInteger* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeInteger::SALOMEDS_AttributeInteger(SALOMEDS::AttributeInteger_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeInteger::~SALOMEDS_AttributeInteger() {} int SALOMEDS_AttributeInteger::Value() { int aValue = 0; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else { aValue = SALOMEDS::AttributeInteger::_narrow(_corba_impl)->Value(); } return aValue; } void SALOMEDS_AttributeInteger::SetValue(int value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeInteger::_narrow(_corba_impl)->SetValue(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeInteger.hxx000077500000000000000000000033631177004724000235710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeInteger_HeaderFile #define SALOMEDS_AttributeInteger_HeaderFile #include "SALOMEDSClient_AttributeInteger.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeInteger.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeInteger: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeInteger { public: SALOMEDS_AttributeInteger(SALOMEDSImpl_AttributeInteger* theAttr); SALOMEDS_AttributeInteger(SALOMEDS::AttributeInteger_ptr theAttr); ~SALOMEDS_AttributeInteger(); virtual int Value(); virtual void SetValue(int value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeInteger_i.cxx000077500000000000000000000026761177004724000241020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeInteger_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeInteger_i.hxx" #include "SALOMEDS.hxx" CORBA::Long SALOMEDS_AttributeInteger_i::Value() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Value(); } void SALOMEDS_AttributeInteger_i::SetValue(CORBA::Long value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetValue(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeInteger_i.hxx000077500000000000000000000033531177004724000241000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeInteger_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeInteger_i_HeaderFile #define SALOMEDS_AttributeInteger_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeInteger.hxx" class SALOMEDS_AttributeInteger_i: public virtual POA_SALOMEDS::AttributeInteger, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeInteger_i(SALOMEDSImpl_AttributeInteger* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeInteger_i() {}; CORBA::Long Value(); void SetValue(CORBA::Long value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeLocalID.cxx000077500000000000000000000037371177004724000234430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeLocalID.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeLocalID.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeLocalID::SALOMEDS_AttributeLocalID(SALOMEDSImpl_AttributeLocalID* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeLocalID::SALOMEDS_AttributeLocalID(SALOMEDS::AttributeLocalID_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeLocalID::~SALOMEDS_AttributeLocalID() {} int SALOMEDS_AttributeLocalID::Value() { int aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeLocalID::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeLocalID::SetValue(int value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeLocalID::_narrow(_corba_impl)->SetValue(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeLocalID.hxx000077500000000000000000000033631177004724000234430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeLocalID.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeLocalID_HeaderFile #define SALOMEDS_AttributeLocalID_HeaderFile #include "SALOMEDSClient_AttributeLocalID.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeLocalID.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeLocalID: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeLocalID { public: SALOMEDS_AttributeLocalID(SALOMEDSImpl_AttributeLocalID* theAttr); SALOMEDS_AttributeLocalID(SALOMEDS::AttributeLocalID_ptr theAttr); ~SALOMEDS_AttributeLocalID(); virtual int Value(); virtual void SetValue(int value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeLocalID_i.cxx000077500000000000000000000027661177004724000237540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeLocalID_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeLocalID_i.hxx" #include "SALOMEDS.hxx" CORBA::Long SALOMEDS_AttributeLocalID_i::Value() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Value(); } void SALOMEDS_AttributeLocalID_i::SetValue(CORBA::Long value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetValue(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeLocalID_i.hxx000077500000000000000000000033701177004724000237510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeLocalID_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeLocalID_i_HeaderFile #define SALOMEDS_AttributeLocalID_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeLocalID.hxx" class SALOMEDS_AttributeLocalID_i: public virtual POA_SALOMEDS::AttributeLocalID, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeLocalID_i(SALOMEDSImpl_AttributeLocalID* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeLocalID_i() {}; CORBA::Long Value(); void SetValue(CORBA::Long value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeName.cxx000077500000000000000000000040731177004724000230460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeName.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeName.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeName::SALOMEDS_AttributeName(SALOMEDSImpl_AttributeName* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeName::SALOMEDS_AttributeName(SALOMEDS::AttributeName_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeName::~SALOMEDS_AttributeName() {} std::string SALOMEDS_AttributeName::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = (CORBA::String_var)((SALOMEDS::AttributeName_var)SALOMEDS::AttributeName::_narrow(_corba_impl))->Value(); return aValue; } void SALOMEDS_AttributeName::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else ((SALOMEDS::AttributeName_var)SALOMEDS::AttributeName::_narrow(_corba_impl))->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeName.hxx000077500000000000000000000033461177004724000230550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeName.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeName_HeaderFile #define SALOMEDS_AttributeName_HeaderFile #include "SALOMEDSClient_AttributeName.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeName.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeName: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeName { public: SALOMEDS_AttributeName(SALOMEDSImpl_AttributeName* theAttr); SALOMEDS_AttributeName(SALOMEDS::AttributeName_ptr theAttr); ~SALOMEDS_AttributeName(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeName_i.cxx000077500000000000000000000027701177004724000233600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeName_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeName_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeName_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributeName_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetValue(std::string(value)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeName_i.hxx000077500000000000000000000033251177004724000233620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeName_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeName_i_HeaderFile #define SALOMEDS_AttributeName_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeName.hxx" class SALOMEDS_AttributeName_i: public virtual POA_SALOMEDS::AttributeName, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeName_i(SALOMEDSImpl_AttributeName* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeName_i() {}; char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeOpened.cxx000077500000000000000000000037271177004724000234050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeOpened.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeOpened.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeOpened::SALOMEDS_AttributeOpened(SALOMEDSImpl_AttributeOpened* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeOpened::SALOMEDS_AttributeOpened(SALOMEDS::AttributeOpened_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeOpened::~SALOMEDS_AttributeOpened() {} bool SALOMEDS_AttributeOpened::IsOpened() { bool aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = (bool)dynamic_cast(_local_impl)->IsOpened(); } else aValue = SALOMEDS::AttributeOpened::_narrow(_corba_impl)->IsOpened(); return aValue; } void SALOMEDS_AttributeOpened::SetOpened(bool value) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetOpened((int)value); } else SALOMEDS::AttributeOpened::_narrow(_corba_impl)->SetOpened(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeOpened.hxx000077500000000000000000000033551177004724000234070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeOpened.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeOpened_HeaderFile #define SALOMEDS_AttributeOpened_HeaderFile #include "SALOMEDSClient_AttributeOpened.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeOpened.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeOpened: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeOpened { public: SALOMEDS_AttributeOpened(SALOMEDSImpl_AttributeOpened* theAttr); SALOMEDS_AttributeOpened(SALOMEDS::AttributeOpened_ptr theAttr); ~SALOMEDS_AttributeOpened(); virtual bool IsOpened(); virtual void SetOpened(bool value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeOpened_i.cxx000077500000000000000000000030401177004724000237010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeOpened_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeOpened_i.hxx" #include "SALOMEDS.hxx" CORBA::Boolean SALOMEDS_AttributeOpened_i::IsOpened() { SALOMEDS::Locker lock; return (dynamic_cast(_impl)->IsOpened() == 1); } void SALOMEDS_AttributeOpened_i::SetOpened(CORBA::Boolean value) { SALOMEDS::Locker lock; int val = 0; if (value != 0) val = 1; dynamic_cast(_impl)->SetOpened(val); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeOpened_i.hxx000077500000000000000000000033651177004724000237200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeOpened_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeOpened_i_HeaderFile #define SALOMEDS_AttributeOpened_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeOpened.hxx" class SALOMEDS_AttributeOpened_i: public virtual POA_SALOMEDS::AttributeOpened, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeOpened_i(SALOMEDSImpl_AttributeOpened* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeOpened_i() {}; CORBA::Boolean IsOpened(); void SetOpened(CORBA::Boolean value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeParameter.cxx000077500000000000000000000400141177004724000241010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeParameter.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeParameter.hxx" #include "SALOMEDS.hxx" #include //======================================================================= /*! * Function : Constructor * Purpose : Creates a new instance of SALOMEDS_AttributeParameter */ //======================================================================= SALOMEDS_AttributeParameter::SALOMEDS_AttributeParameter(SALOMEDSImpl_AttributeParameter* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} //======================================================================= /*! * Function : Constructor * Purpose : Creates a new instance of SALOMEDS_AttributeParameter */ //======================================================================= SALOMEDS_AttributeParameter::SALOMEDS_AttributeParameter(SALOMEDS::AttributeParameter_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} //======================================================================= /*! * Function : Destructor * Purpose : Destroys the instance of SALOMEDS_AttributeParameter */ //======================================================================= SALOMEDS_AttributeParameter::~SALOMEDS_AttributeParameter() {} //======================================================================= /*! * Function : SetInt * Purpose : Associates a integer value with the ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetInt(const std::string& theID, const int theValue) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetInt(theID, theValue); } else SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetInt(theID.c_str(), theValue); } //======================================================================= /*! * Function : GetInt * Purpose : Returns a int value associated with the given ID */ //======================================================================= int SALOMEDS_AttributeParameter::GetInt(const std::string& theID) { int aValue; if(_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->GetInt(theID); } else aValue = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetInt(theID.c_str()); return aValue; } //======================================================================= /*! * Function : SetReal * Purpose : Associates a double value with the ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetReal(const std::string& theID, const double& theValue) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetReal(theID, theValue); } else SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetReal(theID.c_str(), theValue); } //======================================================================= /*! * Function : GetReal * Purpose : Returns a double value associated with the given ID */ //======================================================================= double SALOMEDS_AttributeParameter::GetReal(const std::string& theID) { double aValue; if(_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->GetReal(theID); } else aValue = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetReal(theID.c_str()); return aValue; } //======================================================================= /*! * Function : SetString * Purpose : Associates a string with the ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetString(const std::string& theID, const std::string& theValue) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetString(theID, theValue); } else SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetString(theID.c_str(), theValue.c_str()); } //======================================================================= /*! * Function : GetString * Purpose : Returns a string associated with the given ID */ //======================================================================= std::string SALOMEDS_AttributeParameter::GetString(const std::string& theID) { std::string aValue; if(_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->GetString(theID); } else aValue = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetString(theID.c_str()); return aValue; } //======================================================================= /*! * Function : SetBool * Purpose : Associates a bool value with the ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetBool(const std::string& theID, const bool& theValue) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetBool(theID, theValue); } else SALOMEDS::AttributeParameter::_narrow(_corba_impl)->SetBool(theID.c_str(), theValue); } //======================================================================= /*! * Function : GetBool * Purpose : Returns a bool value associated with the ID */ //======================================================================= bool SALOMEDS_AttributeParameter::GetBool(const std::string& theID) { if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->GetBool(theID); } else return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetBool(theID.c_str()); } //======================================================================= /*! * Function : SetRealArray * Purpose : Associates an array of double values with the given ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetRealArray(const std::string& theID, const std::vector& theArray) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRealArray(theID, theArray); } else { SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq; int length = theArray.size(); if(length) { aSeq->length(length); for(int i = 0; iSetRealArray(theID.c_str(), aSeq); } } //======================================================================= /*! * Function : GetRealArray * Purpose : Returns an array of double values associated with the ID */ //======================================================================= std::vector SALOMEDS_AttributeParameter::GetRealArray(const std::string& theID) { std::vector v; if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->GetRealArray(theID); } else { SALOMEDS::DoubleSeq_var aSeq = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetRealArray(theID.c_str()); int length = aSeq->length(); if(length) { v.resize(length); for(int i = 0; i < length; i++) v[i] = aSeq[i]; } } return v; } //======================================================================= /*! * Function : SetIntArray * Purpose : Associates an array of int values with the given ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetIntArray(const std::string& theID, const std::vector& theArray) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetIntArray(theID, theArray); } else { SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq; int length = theArray.size(); if(length) { aSeq->length(length); for(int i = 0; iSetIntArray(theID.c_str(), aSeq); } } //======================================================================= /*! * Function : GetIntArray * Purpose : Returns an array of int values associated with the ID */ //======================================================================= std::vector SALOMEDS_AttributeParameter::GetIntArray(const std::string& theID) { std::vector v; if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->GetIntArray(theID); } else { SALOMEDS::LongSeq_var aSeq = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetIntArray(theID.c_str()); int length = aSeq->length(); if(length) { v.resize(length); for(int i = 0; i < length; i++) v[i] = aSeq[i]; } } return v; } //======================================================================= /*! * Function : SetStrArray * Purpose : Associates an array of string values with the given ID */ //======================================================================= void SALOMEDS_AttributeParameter::SetStrArray(const std::string& theID, const std::vector& theArray) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetStrArray(theID, theArray); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq; int length = theArray.size(); if(length) { aSeq->length(length); for(int i = 0; iSetStrArray(theID.c_str(), aSeq); } } //======================================================================= /*! * Function : GetStrArray * Purpose : Returns an array of string values associated with the ID */ //======================================================================= std::vector SALOMEDS_AttributeParameter::GetStrArray(const std::string& theID) { std::vector v; if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->GetStrArray(theID); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetStrArray(theID.c_str()); int length = aSeq->length(); if(length) { v.resize(length); for(int i = 0; i < length; i++) v[i] = std::string(aSeq[i].in()); } } return v; } //======================================================================= /*! * Function : IsSet * Purpose : Returns true if for the ID of given type was assigned \n * a value in the attribute */ //======================================================================= bool SALOMEDS_AttributeParameter::IsSet(const std::string& theID, const int theType) { if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->IsSet(theID, (Parameter_Types)theType); } else return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->IsSet(theID.c_str(), theType); } //======================================================================= /*! * Function : RemoveID * Purpose : Removes a parameter with given ID */ //======================================================================= bool SALOMEDS_AttributeParameter::RemoveID(const std::string& theID, const int theType) { CheckLocked(); if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->RemoveID(theID, (Parameter_Types)theType); } else return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->RemoveID(theID.c_str(), theType); } //======================================================================= /*! * Function : GetFather * Purpose : Returns a father attribute for this attribute */ //======================================================================= _PTR(AttributeParameter) SALOMEDS_AttributeParameter::GetFather() { SALOMEDSClient_AttributeParameter* AP = NULL; if(_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeParameter* AP_impl = dynamic_cast(_local_impl)->GetFather(); if(!AP_impl) return _PTR(AttributeParameter)(AP); AP = new SALOMEDS_AttributeParameter(AP_impl); } else { SALOMEDS::AttributeParameter_var AP_impl = SALOMEDS::AttributeParameter::_narrow(_corba_impl)->GetFather(); if(CORBA::is_nil(AP_impl)) return _PTR(AttributeParameter)(AP); AP = new SALOMEDS_AttributeParameter(AP_impl); } return _PTR(AttributeParameter)(AP); } //======================================================================= /*! * Function : HasFather * Purpose : Returns True if the attribute has a father attribute */ //======================================================================= bool SALOMEDS_AttributeParameter::HasFather() { if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->HasFather(); } else return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->HasFather(); } //======================================================================= /*! * Function : IsRoot * Purpose : Returns True is the attribute is highest in an hierachy */ //======================================================================= bool SALOMEDS_AttributeParameter::IsRoot() { if(_isLocal) { SALOMEDS::Locker lock; return dynamic_cast(_local_impl)->IsRoot(); } else return SALOMEDS::AttributeParameter::_narrow(_corba_impl)->IsRoot(); } //======================================================================= /*! * Function : Clear * Purpose : Clears the content of the attribute */ //======================================================================= void SALOMEDS_AttributeParameter::Clear() { if(_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Clear(); } else SALOMEDS::AttributeParameter::_narrow(_corba_impl)->Clear(); } //======================================================================= /*! * Function : GetIDs * Purpose : Returns an array of all ID's of the given type */ //======================================================================= std::vector SALOMEDS_AttributeParameter::GetIDs(const int theType) { std::vector v; if(_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeParameter* AP_impl = dynamic_cast(_local_impl); return AP_impl->GetIDs((Parameter_Types)theType); } else { SALOMEDS::AttributeParameter_var AP_impl = SALOMEDS::AttributeParameter::_narrow(_corba_impl); SALOMEDS::StringSeq_var CorbaSeq = AP_impl->GetIDs(theType); int length = CorbaSeq->length(); if(length) { v.resize(length); for(int i = 0; i #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeParameter: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeParameter { public: SALOMEDS_AttributeParameter(SALOMEDSImpl_AttributeParameter* theAttr); SALOMEDS_AttributeParameter(SALOMEDS::AttributeParameter_ptr theAttr); ~SALOMEDS_AttributeParameter(); virtual void SetInt(const std::string& theID, const int theValue); virtual int GetInt(const std::string& theID); virtual void SetReal(const std::string& theID, const double& theValue); virtual double GetReal(const std::string& theID); virtual void SetString(const std::string& theID, const std::string& theValue); virtual std::string GetString(const std::string& theID); virtual void SetBool(const std::string& theID, const bool& theValue); virtual bool GetBool(const std::string& theID); virtual void SetRealArray(const std::string& theID, const std::vector& theArray); virtual std::vector GetRealArray(const std::string& theID); virtual void SetIntArray(const std::string& theID, const std::vector& theArray); virtual std::vector GetIntArray(const std::string& theID); virtual void SetStrArray(const std::string& theID, const std::vector& theArray); virtual std::vector GetStrArray(const std::string& theID); virtual bool IsSet(const std::string& theID, const int theType); virtual bool RemoveID(const std::string& theID, const int theType); virtual _PTR(AttributeParameter) GetFather(); virtual bool HasFather(); virtual bool IsRoot(); virtual void Clear(); virtual std::vector GetIDs(const int theType); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeParameter_i.cxx000077500000000000000000000314051177004724000244150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeParameter_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeParameter_i.hxx" #include "SALOMEDS.hxx" #include #include "Utils_ExceptHandlers.hxx" UNEXPECT_CATCH(AP_InvalidIdentifier, SALOMEDS::AttributeParameter::InvalidIdentifier); //======================================================================= /*! * Function : SetInt * Purpose : Associates a integer value with the ID */ //======================================================================= void SALOMEDS_AttributeParameter_i::SetInt(const char* theID, CORBA::Long theValue) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetInt(theID, theValue); } //======================================================================= /*! * Function : GetInt * Purpose : Returns a int value associated with the given ID */ //======================================================================= CORBA::Long SALOMEDS_AttributeParameter_i::GetInt(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); return dynamic_cast(_impl)->GetInt(theID); } //======================================================================= /*! * Function : SetReal * Purpose : Associates a double value with the ID */ //======================================================================= void SALOMEDS_AttributeParameter_i::SetReal(const char* theID, CORBA::Double theValue) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetReal(theID, theValue); } //======================================================================= /*! * Function : GetReal * Purpose : Returns a double value associated with the given ID */ //======================================================================= CORBA::Double SALOMEDS_AttributeParameter_i::GetReal(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); return dynamic_cast(_impl)->GetReal(theID); } //======================================================================= /*! * Function : SetString * Purpose : Associates a string with the ID */ //======================================================================= void SALOMEDS_AttributeParameter_i::SetString(const char* theID, const char* theValue) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeParameter* impl = dynamic_cast(_impl); impl->SetString(theID, theValue); } //======================================================================= /*! * Function : GetString * Purpose : Returns a string associated with the given ID */ //======================================================================= char* SALOMEDS_AttributeParameter_i::GetString(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); SALOMEDSImpl_AttributeParameter* impl = dynamic_cast(_impl); CORBA::String_var c_s = CORBA::string_dup(impl->GetString(theID).c_str()); return c_s._retn(); } //======================================================================= /*! * Function : SetBool * Purpose : Associates a bool value with the ID */ //======================================================================= void SALOMEDS_AttributeParameter_i::SetBool(const char* theID, CORBA::Boolean theValue) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetBool(theID, theValue); } //======================================================================= /*! * Function : GetBool * Purpose : Returns a bool value associated with the ID */ //======================================================================= CORBA::Boolean SALOMEDS_AttributeParameter_i::GetBool(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); return dynamic_cast(_impl)->GetBool(theID); } //======================================================================= /*! * Function : SetRealArray * Purpose : Associates an array of double values with the given ID */ //======================================================================= void SALOMEDS_AttributeParameter_i::SetRealArray(const char* theID, const SALOMEDS::DoubleSeq& theArray) { SALOMEDS::Locker lock; CheckLocked(); std::vector v; int length = theArray.length(); if(length) { v.resize(length); for(int i = 0; i(_impl)->SetRealArray(theID, v); } //======================================================================= /*! * Function : GetRealArray * Purpose : Returns an array of double values associated with the ID */ //======================================================================= SALOMEDS::DoubleSeq* SALOMEDS_AttributeParameter_i::GetRealArray(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq; std::vector v = dynamic_cast(_impl)->GetRealArray(theID); int length = v.size(); if(length) { aSeq->length(length); for(int i = 0; i v; int length = theArray.length(); if(length) { v.resize(length); for(int i = 0; i(_impl)->SetIntArray(theID, v); } //======================================================================= /*! * Function : GetIntArray * Purpose : Returns an array of int values associated with the ID */ //======================================================================= SALOMEDS::LongSeq* SALOMEDS_AttributeParameter_i::GetIntArray(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq; std::vector v = dynamic_cast(_impl)->GetIntArray(theID); int length = v.size(); if(length) { aSeq->length(length); for(int i = 0; i v; int length = theArray.length(); if(length) { v.resize(length); for(int i = 0; i(_impl)->SetStrArray(theID, v); } //======================================================================= /*! * Function : GetStrArray * Purpose : Returns an array of string values associated with the ID */ //======================================================================= SALOMEDS::StringSeq* SALOMEDS_AttributeParameter_i::GetStrArray(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier) { SALOMEDS::Locker lock; Unexpect aCatch (AP_InvalidIdentifier); SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq; std::vector v = dynamic_cast(_impl)->GetStrArray(theID); int length = v.size(); if(length) { aSeq->length(length); for(int i = 0; i(_impl)->IsSet(theID, (Parameter_Types)theType); } //======================================================================= /*! * Function : RemoveID * Purpose : Removes a parameter with given ID */ //======================================================================= CORBA::Boolean SALOMEDS_AttributeParameter_i::RemoveID(const char* theID, CORBA::Long theType) { SALOMEDS::Locker lock; CheckLocked(); return dynamic_cast(_impl)->RemoveID(theID, (Parameter_Types)theType); } //======================================================================= /*! * Function : GetFather * Purpose : Returns a father attribute for this attribute */ //======================================================================= SALOMEDS::AttributeParameter_ptr SALOMEDS_AttributeParameter_i::GetFather() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeParameter* impl = dynamic_cast(_impl); SALOMEDS_AttributeParameter_i* attr = new SALOMEDS_AttributeParameter_i(impl, _orb); return attr->AttributeParameter::_this(); } //======================================================================= /*! * Function : HasFather * Purpose : Returns True if the attribute has a father attribute */ //======================================================================= CORBA::Boolean SALOMEDS_AttributeParameter_i::HasFather() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasFather(); } //======================================================================= /*! * Function : IsRoot * Purpose : Returns True is the attribute is highest in an hierachy */ //======================================================================= CORBA::Boolean SALOMEDS_AttributeParameter_i::IsRoot() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->IsRoot(); } //======================================================================= /*! * Function : IsRoot * Purpose : Clears the content of the attribute */ //======================================================================= void SALOMEDS_AttributeParameter_i::Clear() { SALOMEDS::Locker lock; dynamic_cast(_impl)->Clear(); } //======================================================================= /*! * Function : GetIDs * Purpose : Returns an array of all ID's of the given type */ //======================================================================= SALOMEDS::StringSeq* SALOMEDS_AttributeParameter_i::GetIDs(CORBA::Long theType) { SALOMEDS::Locker lock; SALOMEDS::StringSeq_var CorbaSeq = new SALOMEDS::StringSeq; std::vector A = dynamic_cast(_impl)->GetIDs((Parameter_Types)theType); if(A.size()) { int length = A.size(); CorbaSeq->length(length); for (int i = 0; i < length; i++) CorbaSeq[i] = CORBA::string_dup(A[i].c_str());; } return CorbaSeq._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeParameter_i.hxx000077500000000000000000000067641177004724000244340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeParameter_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDS_AttributeParameter_i_HeaderFile #define SALOMEDS_AttributeParameter_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" /*! Class: SALOMEDS_AttributeParameter Description : AttributeParameter is a universal container of basic types */ class SALOMEDS_AttributeParameter_i: public virtual POA_SALOMEDS::AttributeParameter, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeParameter_i(SALOMEDSImpl_AttributeParameter* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeParameter_i() {}; virtual void SetInt(const char* theID, CORBA::Long theValue); virtual CORBA::Long GetInt(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual void SetReal(const char* theID, CORBA::Double theValue); virtual CORBA::Double GetReal(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual void SetString(const char* theID, const char* theValue); virtual char* GetString(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual void SetBool(const char* theID, CORBA::Boolean theValue); virtual CORBA::Boolean GetBool(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual void SetRealArray(const char* theID, const SALOMEDS::DoubleSeq& theArray); virtual SALOMEDS::DoubleSeq* GetRealArray(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual void SetIntArray(const char* theID, const SALOMEDS::LongSeq& theArray); virtual SALOMEDS::LongSeq* GetIntArray(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual void SetStrArray(const char* theID, const SALOMEDS::StringSeq& theArray); virtual SALOMEDS::StringSeq* GetStrArray(const char* theID) throw (SALOMEDS::AttributeParameter::InvalidIdentifier); virtual CORBA::Boolean IsSet(const char* theID, CORBA::Long theType); virtual CORBA::Boolean RemoveID(const char* theID, CORBA::Long theType); virtual SALOMEDS::AttributeParameter_ptr GetFather(); virtual CORBA::Boolean HasFather(); virtual CORBA::Boolean IsRoot(); virtual void Clear(); virtual SALOMEDS::StringSeq* GetIDs(CORBA::Long theType); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePersistentRef.cxx000077500000000000000000000041701177004724000247610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePersistentRef.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributePersistentRef.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributePersistentRef::SALOMEDS_AttributePersistentRef(SALOMEDSImpl_AttributePersistentRef* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributePersistentRef::SALOMEDS_AttributePersistentRef(SALOMEDS::AttributePersistentRef_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributePersistentRef::~SALOMEDS_AttributePersistentRef() {} std::string SALOMEDS_AttributePersistentRef::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributePersistentRef::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributePersistentRef::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributePersistentRef::_narrow(_corba_impl)->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePersistentRef.hxx000077500000000000000000000035221177004724000247660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePersistentRef.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributePersistentRef_HeaderFile #define SALOMEDS_AttributePersistentRef_HeaderFile #include "SALOMEDSClient_AttributePersistentRef.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributePersistentRef.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributePersistentRef: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributePersistentRef { public: SALOMEDS_AttributePersistentRef(SALOMEDSImpl_AttributePersistentRef* theAttr); SALOMEDS_AttributePersistentRef(SALOMEDS::AttributePersistentRef_ptr theAttr); ~SALOMEDS_AttributePersistentRef(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePersistentRef_i.cxx000077500000000000000000000031351177004724000252710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePersistentRef_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributePersistentRef_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributePersistentRef_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributePersistentRef_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); dynamic_cast(_impl)->SetValue(std::string(Str)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePersistentRef_i.hxx000077500000000000000000000034211177004724000252740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePersistentRef_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributePersistentRef_i_HeaderFile #define SALOMEDS_AttributePersistentRef_i_HeaderFile #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributePersistentRef.hxx" class SALOMEDS_AttributePersistentRef_i: public virtual POA_SALOMEDS::AttributePersistentRef, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributePersistentRef_i(SALOMEDSImpl_AttributePersistentRef* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributePersistentRef_i() {}; char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePixMap.cxx000077500000000000000000000046441177004724000233700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePixMap.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributePixMap.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributePixMap::SALOMEDS_AttributePixMap(SALOMEDSImpl_AttributePixMap* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributePixMap::SALOMEDS_AttributePixMap(SALOMEDS::AttributePixMap_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributePixMap::~SALOMEDS_AttributePixMap() {} bool SALOMEDS_AttributePixMap::HasPixMap() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->HasPixMap(); } else ret = ((SALOMEDS::AttributePixMap_var)SALOMEDS::AttributePixMap::_narrow(_corba_impl))->HasPixMap(); return ret; } std::string SALOMEDS_AttributePixMap::GetPixMap() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->GetPixMap(); } else aValue = (CORBA::String_var)((SALOMEDS::AttributePixMap_var)SALOMEDS::AttributePixMap::_narrow(_corba_impl))->GetPixMap(); return aValue; } void SALOMEDS_AttributePixMap::SetPixMap(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetPixMap(value); } else ((SALOMEDS::AttributePixMap_var)SALOMEDS::AttributePixMap::_narrow(_corba_impl))->SetPixMap(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePixMap.hxx000077500000000000000000000034411177004724000233670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePixMap.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributePixMap_HeaderFile #define SALOMEDS_AttributePixMap_HeaderFile #include "SALOMEDSClient_AttributePixMap.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributePixMap.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributePixMap: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributePixMap { public: SALOMEDS_AttributePixMap(SALOMEDSImpl_AttributePixMap* theAttr); SALOMEDS_AttributePixMap(SALOMEDS::AttributePixMap_ptr theAttr); ~SALOMEDS_AttributePixMap(); virtual bool HasPixMap(); virtual std::string GetPixMap(); virtual void SetPixMap(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePixMap_i.cxx000077500000000000000000000033261177004724000236740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePixMap_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributePixMap_i.hxx" #include "SALOMEDS.hxx" CORBA::Boolean SALOMEDS_AttributePixMap_i::HasPixMap() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasPixMap(); } char* SALOMEDS_AttributePixMap_i::GetPixMap() { SALOMEDS::Locker lock; CORBA::String_var S = CORBA::string_dup(dynamic_cast(_impl)->GetPixMap().c_str()); return S._retn(); } void SALOMEDS_AttributePixMap_i::SetPixMap(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); dynamic_cast(_impl)->SetPixMap(std::string(Str)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePixMap_i.hxx000077500000000000000000000033741177004724000237040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePixMap_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributePixMap_i_HeaderFile #define SALOMEDS_AttributePixMap_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributePixMap.hxx" class SALOMEDS_AttributePixMap_i: public virtual POA_SALOMEDS::AttributePixMap, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributePixMap_i(SALOMEDSImpl_AttributePixMap* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributePixMap_i() {}; CORBA::Boolean HasPixMap(); char* GetPixMap(); void SetPixMap(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePythonObject.cxx000077500000000000000000000047321177004724000246000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePythonObject.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributePythonObject.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributePythonObject::SALOMEDS_AttributePythonObject(SALOMEDSImpl_AttributePythonObject* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributePythonObject::SALOMEDS_AttributePythonObject(SALOMEDS::AttributePythonObject_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributePythonObject::~SALOMEDS_AttributePythonObject() {} bool SALOMEDS_AttributePythonObject::IsScript() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->IsScript(); } else ret = SALOMEDS::AttributePythonObject::_narrow(_corba_impl)->IsScript(); return ret; } std::string SALOMEDS_AttributePythonObject::GetObject() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->GetObject().c_str(); } else aValue = SALOMEDS::AttributePythonObject::_narrow(_corba_impl)->GetObject(); return aValue; } void SALOMEDS_AttributePythonObject::SetObject(const std::string& theSequence, bool IsScript) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetObject(theSequence, IsScript); } else SALOMEDS::AttributePythonObject::_narrow(_corba_impl)->SetObject(theSequence.c_str(), IsScript); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePythonObject.hxx000077500000000000000000000036011177004724000245770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePythonObject.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributePythonObject_HeaderFile #define SALOMEDS_AttributePythonObject_HeaderFile #include "SALOMEDSClient_AttributePythonObject.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributePythonObject.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributePythonObject: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributePythonObject { public: SALOMEDS_AttributePythonObject(SALOMEDSImpl_AttributePythonObject* theAttr); SALOMEDS_AttributePythonObject(SALOMEDS::AttributePythonObject_ptr theAttr); ~SALOMEDS_AttributePythonObject(); virtual void SetObject(const std::string& theSequence, bool IsScript); virtual std::string GetObject(); virtual bool IsScript(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePythonObject_i.cxx000077500000000000000000000034751177004724000251130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePythonObject_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributePythonObject_i.hxx" #include "SALOMEDS.hxx" void SALOMEDS_AttributePythonObject_i::SetObject(const char* theSequence, CORBA::Boolean IsScript) { SALOMEDS::Locker lock; CheckLocked(); char *aSeq = CORBA::string_dup(theSequence); dynamic_cast(_impl)->SetObject(aSeq, IsScript); } char* SALOMEDS_AttributePythonObject_i::GetObject() { SALOMEDS::Locker lock; std::string aSeq(dynamic_cast(_impl)->GetObject()); CORBA::String_var aStr = CORBA::string_dup(aSeq.c_str()); return aStr._retn(); } CORBA::Boolean SALOMEDS_AttributePythonObject_i::IsScript() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->IsScript(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributePythonObject_i.hxx000077500000000000000000000035601177004724000251130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributePythonObject_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributePythonObject_i_HeaderFile #define SALOMEDS_AttributePythonObject_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributePythonObject.hxx" class SALOMEDS_AttributePythonObject_i: public virtual POA_SALOMEDS::AttributePythonObject, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributePythonObject_i(SALOMEDSImpl_AttributePythonObject* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributePythonObject_i() {}; virtual void SetObject(const char* theSequence, CORBA::Boolean IsScript); virtual char* GetObject(); virtual CORBA::Boolean IsScript(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeReal.cxx000077500000000000000000000036671177004724000230610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeReal.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeReal.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeReal::SALOMEDS_AttributeReal(SALOMEDSImpl_AttributeReal* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeReal::SALOMEDS_AttributeReal(SALOMEDS::AttributeReal_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeReal::~SALOMEDS_AttributeReal() {} double SALOMEDS_AttributeReal::Value() { double aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeReal::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeReal::SetValue(double value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeReal::_narrow(_corba_impl)->SetValue(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeReal.hxx000077500000000000000000000033251177004724000230550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeReal_HeaderFile #define SALOMEDS_AttributeReal_HeaderFile #include "SALOMEDSClient_AttributeReal.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeReal.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeReal: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeReal { public: SALOMEDS_AttributeReal(SALOMEDSImpl_AttributeReal* theAttr); SALOMEDS_AttributeReal(SALOMEDS::AttributeReal_ptr theAttr); ~SALOMEDS_AttributeReal(); virtual double Value(); virtual void SetValue(double value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeReal_i.cxx000077500000000000000000000027421177004724000233620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeReal_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeReal_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS.hxx" #include CORBA::Double SALOMEDS_AttributeReal_i::Value() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Value(); } void SALOMEDS_AttributeReal_i::SetValue(CORBA::Double value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetValue(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeReal_i.hxx000077500000000000000000000033141177004724000233630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeReal_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeReal_i_HeaderFile #define SALOMEDS_AttributeReal_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeReal.hxx" class SALOMEDS_AttributeReal_i: public virtual POA_SALOMEDS::AttributeReal, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeReal_i(SALOMEDSImpl_AttributeReal* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeReal_i() {}; CORBA::Double Value(); void SetValue(CORBA::Double value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSelectable.cxx000077500000000000000000000040551177004724000242310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSelectable.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeSelectable.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeSelectable::SALOMEDS_AttributeSelectable(SALOMEDSImpl_AttributeSelectable* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeSelectable::SALOMEDS_AttributeSelectable(SALOMEDS::AttributeSelectable_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeSelectable::~SALOMEDS_AttributeSelectable() {} bool SALOMEDS_AttributeSelectable::IsSelectable() { bool aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = (bool)dynamic_cast(_local_impl)->IsSelectable(); } else aValue = SALOMEDS::AttributeSelectable::_narrow(_corba_impl)->IsSelectable(); return aValue; } void SALOMEDS_AttributeSelectable::SetSelectable(bool value) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetSelectable((int)value); } else SALOMEDS::AttributeSelectable::_narrow(_corba_impl)->SetSelectable(value); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSelectable.hxx000077500000000000000000000034451177004724000242400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSelectable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeSelectable_HeaderFile #define SALOMEDS_AttributeSelectable_HeaderFile #include "SALOMEDSClient_AttributeSelectable.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeSelectable.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeSelectable: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeSelectable { public: SALOMEDS_AttributeSelectable(SALOMEDSImpl_AttributeSelectable* theAttr); SALOMEDS_AttributeSelectable(SALOMEDS::AttributeSelectable_ptr theAttr); ~SALOMEDS_AttributeSelectable(); virtual bool IsSelectable(); virtual void SetSelectable(bool value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSelectable_i.cxx000077500000000000000000000031041177004724000245330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSelectable_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeSelectable_i.hxx" #include "SALOMEDS.hxx" CORBA::Boolean SALOMEDS_AttributeSelectable_i::IsSelectable() { SALOMEDS::Locker lock; return (dynamic_cast(_impl)->IsSelectable() == 1); } void SALOMEDS_AttributeSelectable_i::SetSelectable(CORBA::Boolean value) { SALOMEDS::Locker lock; int val = 0; if (value != 0) val = 1; dynamic_cast(_impl)->SetSelectable(val); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSelectable_i.hxx000077500000000000000000000034321177004724000245440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSelectable_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeSelectable_i_HeaderFile #define SALOMEDS_AttributeSelectable_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeSelectable.hxx" class SALOMEDS_AttributeSelectable_i: public virtual POA_SALOMEDS::AttributeSelectable, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeSelectable_i(SALOMEDSImpl_AttributeSelectable* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeSelectable_i() {}; CORBA::Boolean IsSelectable(); void SetSelectable(CORBA::Boolean value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfInteger.cxx000077500000000000000000000104051177004724000255350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfInteger.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeSequenceOfInteger.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeSequenceOfInteger::SALOMEDS_AttributeSequenceOfInteger (SALOMEDSImpl_AttributeSequenceOfInteger* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeSequenceOfInteger::SALOMEDS_AttributeSequenceOfInteger (SALOMEDS::AttributeSequenceOfInteger_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeSequenceOfInteger::~SALOMEDS_AttributeSequenceOfInteger() {} void SALOMEDS_AttributeSequenceOfInteger::Assign(const std::vector& other) { int i, aLength = other.size(); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Assign(other); } else { SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = other[i]; SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl)->Assign(aSeq); } } std::vector SALOMEDS_AttributeSequenceOfInteger::CorbaSequence() { std::vector aVector; int i, aLength; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeSequenceOfInteger* aSeqAttr; aSeqAttr = dynamic_cast(_local_impl); aLength = aSeqAttr->Length(); for (i = 1; i <=aLength; i++) aVector.push_back(aSeqAttr->Value(i)); } else { SALOMEDS::AttributeSequenceOfInteger_var aSeqAttr = SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl); aLength = aSeqAttr->Length(); for (i = 1; i <=aLength; i++) aVector.push_back(aSeqAttr->Value(i)); } return aVector; } void SALOMEDS_AttributeSequenceOfInteger::Add(int value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Add(value); } else SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl)->Add(value); } void SALOMEDS_AttributeSequenceOfInteger::Remove(int index) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Remove(index); } else SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl)->Remove(index); } void SALOMEDS_AttributeSequenceOfInteger::ChangeValue(int index, int value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->ChangeValue(index, value); } else SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl)->ChangeValue(index, value); } int SALOMEDS_AttributeSequenceOfInteger::Value(int index) { int aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(index); } else aValue = SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl)->Value(index); return aValue; } int SALOMEDS_AttributeSequenceOfInteger::Length() { int aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)-> Length(); } else aValue = SALOMEDS::AttributeSequenceOfInteger::_narrow(_corba_impl)-> Length(); return aValue; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfInteger.hxx000077500000000000000000000041211177004724000255400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeSequenceOfInteger_HeaderFile #define SALOMEDS_AttributeSequenceOfInteger_HeaderFile #include "SALOMEDSClient_AttributeSequenceOfInteger.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeSequenceOfInteger: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeSequenceOfInteger { public: SALOMEDS_AttributeSequenceOfInteger(SALOMEDSImpl_AttributeSequenceOfInteger* theAttr); SALOMEDS_AttributeSequenceOfInteger(SALOMEDS::AttributeSequenceOfInteger_ptr theAttr); ~SALOMEDS_AttributeSequenceOfInteger(); virtual void Assign(const std::vector& other); virtual std::vector CorbaSequence(); virtual void Add(int value); virtual void Remove(int index); virtual void ChangeValue(int index, int value); virtual int Value(int index); virtual int Length(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfInteger_i.cxx000077500000000000000000000055341177004724000260540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfInteger_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeSequenceOfInteger_i.hxx" #include "SALOMEDS.hxx" #include void SALOMEDS_AttributeSequenceOfInteger_i::Assign(const SALOMEDS::LongSeq& other) { SALOMEDS::Locker lock; CheckLocked(); std::vector aSeq; for(int i = 0, len = other.length(); i(_impl)->Assign(aSeq); } SALOMEDS::LongSeq* SALOMEDS_AttributeSequenceOfInteger_i::CorbaSequence() { SALOMEDS::Locker lock; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; const std::vector& CasCadeSeq = dynamic_cast(_impl)->Array(); int len = CasCadeSeq.size(); CorbaSeq->length(len); for (int i = 0; i < len; i++) { CorbaSeq[i] = CasCadeSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeSequenceOfInteger_i::Add(CORBA::Long value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->Add(value); } void SALOMEDS_AttributeSequenceOfInteger_i::Remove(CORBA::Long index) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->Remove(index); } void SALOMEDS_AttributeSequenceOfInteger_i::ChangeValue(CORBA::Long index, CORBA::Long value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->ChangeValue(index, value); } CORBA::Long SALOMEDS_AttributeSequenceOfInteger_i::Value(CORBA::Short index) { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Value(index); } CORBA::Long SALOMEDS_AttributeSequenceOfInteger_i::Length() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Length(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfInteger_i.hxx000077500000000000000000000040451177004724000260550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfInteger_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeSequenceOfInteger_i_HeaderFile #define SALOMEDS_AttributeSequenceOfInteger_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx" class SALOMEDS_AttributeSequenceOfInteger_i: public virtual POA_SALOMEDS::AttributeSequenceOfInteger, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeSequenceOfInteger_i(SALOMEDSImpl_AttributeSequenceOfInteger* theAttr,CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeSequenceOfInteger_i() {}; void Assign(const SALOMEDS::LongSeq& other); SALOMEDS::LongSeq* CorbaSequence(); void Add(CORBA::Long value); void Remove(CORBA::Long index); void ChangeValue(CORBA::Long index, CORBA::Long value); CORBA::Long Value(CORBA::Short index); CORBA::Long Length(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfReal.cxx000077500000000000000000000103031177004724000250200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfReal.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeSequenceOfReal.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeSequenceOfReal::SALOMEDS_AttributeSequenceOfReal (SALOMEDSImpl_AttributeSequenceOfReal* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeSequenceOfReal::SALOMEDS_AttributeSequenceOfReal (SALOMEDS::AttributeSequenceOfReal_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeSequenceOfReal::~SALOMEDS_AttributeSequenceOfReal() {} void SALOMEDS_AttributeSequenceOfReal::Assign(const std::vector& other) { int i, aLength = other.size(); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Assign(other); } else { SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = other[i]; SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl)->Assign(aSeq); } } std::vector SALOMEDS_AttributeSequenceOfReal::CorbaSequence() { std::vector aVector; int i, aLength; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeSequenceOfReal* aSeqAttr = NULL; aSeqAttr = dynamic_cast(_local_impl); aLength = aSeqAttr->Length(); for (i = 1; i <=aLength; i++) aVector.push_back(aSeqAttr->Value(i)); } else { SALOMEDS::AttributeSequenceOfReal_var aSeqAttr = SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl); aLength = aSeqAttr->Length(); for (i = 1; i <=aLength; i++) aVector.push_back(aSeqAttr->Value(i)); } return aVector; } void SALOMEDS_AttributeSequenceOfReal::Add(double value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Add(value); } else SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl)->Add(value); } void SALOMEDS_AttributeSequenceOfReal::Remove(int index) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Remove(index); } else SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl)->Remove(index); } void SALOMEDS_AttributeSequenceOfReal::ChangeValue(int index, double value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->ChangeValue(index, value); } else SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl)->ChangeValue(index, value); } double SALOMEDS_AttributeSequenceOfReal::Value(int index) { double aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(index); } else aValue = SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl)->Value(index); return aValue; } int SALOMEDS_AttributeSequenceOfReal::Length() { int aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)-> Length(); } else aValue = SALOMEDS::AttributeSequenceOfReal::_narrow(_corba_impl)-> Length(); return aValue; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfReal.hxx000077500000000000000000000040741177004724000250350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeSequenceOfReal_HeaderFile #define SALOMEDS_AttributeSequenceOfReal_HeaderFile #include "SALOMEDSClient_AttributeSequenceOfReal.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeSequenceOfReal.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeSequenceOfReal: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeSequenceOfReal { public: SALOMEDS_AttributeSequenceOfReal(SALOMEDSImpl_AttributeSequenceOfReal* theAttr); SALOMEDS_AttributeSequenceOfReal(SALOMEDS::AttributeSequenceOfReal_ptr theAttr); ~SALOMEDS_AttributeSequenceOfReal(); virtual void Assign(const std::vector& other); virtual std::vector CorbaSequence(); virtual void Add(double value); virtual void Remove(int index); virtual void ChangeValue(int index, double value); virtual double Value(int index); virtual int Length(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfReal_i.cxx000077500000000000000000000055311177004724000253370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfReal_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeSequenceOfReal_i.hxx" #include "SALOMEDS.hxx" #include void SALOMEDS_AttributeSequenceOfReal_i::Assign(const SALOMEDS::DoubleSeq& other) { SALOMEDS::Locker lock; CheckLocked(); std::vector CasCadeSeq; for (int i = 0; i < other.length(); i++) { CasCadeSeq.push_back(other[i]); } dynamic_cast(_impl)->Assign(CasCadeSeq); } SALOMEDS::DoubleSeq* SALOMEDS_AttributeSequenceOfReal_i::CorbaSequence() { SALOMEDS::Locker lock; SALOMEDS::DoubleSeq_var CorbaSeq = new SALOMEDS::DoubleSeq; const std::vector& CasCadeSeq = dynamic_cast(_impl)->Array(); int len = CasCadeSeq.size(); CorbaSeq->length(len); for (int i = 0; i < len; i++) { CorbaSeq[i] = CasCadeSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeSequenceOfReal_i::Add(CORBA::Double value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->Add(value); } void SALOMEDS_AttributeSequenceOfReal_i::Remove(CORBA::Long index) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->Remove(index); } void SALOMEDS_AttributeSequenceOfReal_i::ChangeValue(CORBA::Long index, CORBA::Double value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->ChangeValue(index, value); } CORBA::Double SALOMEDS_AttributeSequenceOfReal_i::Value(CORBA::Short index) { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Value(index); } CORBA::Long SALOMEDS_AttributeSequenceOfReal_i::Length() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->Length(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeSequenceOfReal_i.hxx000077500000000000000000000040561177004724000253450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeSequenceOfSequenceOfReal_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeSequenceOfSequenceOfReal_i_HeaderFile #define SALOMEDS_AttributeSequenceOfSequenceOfReal_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeSequenceOfReal.hxx" class SALOMEDS_AttributeSequenceOfReal_i: public virtual POA_SALOMEDS::AttributeSequenceOfReal, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeSequenceOfReal_i(SALOMEDSImpl_AttributeSequenceOfReal* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeSequenceOfReal_i() {}; void Assign(const SALOMEDS::DoubleSeq& other); SALOMEDS::DoubleSeq* CorbaSequence(); void Add(CORBA::Double value); void Remove(CORBA::Long index); void ChangeValue(CORBA::Long index, CORBA::Double value); CORBA::Double Value(CORBA::Short index); CORBA::Long Length(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeString.cxx000077500000000000000000000040121177004724000234250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeString.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeString.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeString::SALOMEDS_AttributeString(SALOMEDSImpl_AttributeString* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeString::SALOMEDS_AttributeString(SALOMEDS::AttributeString_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeString::~SALOMEDS_AttributeString() {} std::string SALOMEDS_AttributeString::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeString::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeString::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeString::_narrow(_corba_impl)->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeString.hxx000077500000000000000000000033761177004724000234460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeString.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeString_HeaderFile #define SALOMEDS_AttributeString_HeaderFile #include "SALOMEDSClient_AttributeString.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeString.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeString: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeString { public: SALOMEDS_AttributeString(SALOMEDSImpl_AttributeString* theAttr); SALOMEDS_AttributeString(SALOMEDS::AttributeString_ptr theAttr); ~SALOMEDS_AttributeString(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeString_i.cxx000077500000000000000000000030501177004724000237360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeString_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeString_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeString_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->Value().c_str()); return c_s._retn(); } void SALOMEDS_AttributeString_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetValue(std::string(value)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeString_i.hxx000077500000000000000000000033371177004724000237530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeString_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeString_i_HeaderFile #define SALOMEDS_AttributeString_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeString.hxx" class SALOMEDS_AttributeString_i: public virtual POA_SALOMEDS::AttributeString, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeString_i(SALOMEDSImpl_AttributeString* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; virtual ~SALOMEDS_AttributeString_i() {}; char* Value(); void SetValue(const char* value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeStudyProperties.cxx000077500000000000000000000317431177004724000253570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeStudyProperties.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeStudyProperties.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeStudyProperties::SALOMEDS_AttributeStudyProperties (SALOMEDSImpl_AttributeStudyProperties* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeStudyProperties::SALOMEDS_AttributeStudyProperties (SALOMEDS::AttributeStudyProperties_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeStudyProperties::~SALOMEDS_AttributeStudyProperties() { } void SALOMEDS_AttributeStudyProperties::SetUserName(const std::string& theName) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast(_local_impl); anImpl->ChangeCreatorName(theName); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetUserName(theName.c_str()); } std::string SALOMEDS_AttributeStudyProperties::GetUserName() { std::string aName; if (_isLocal) { SALOMEDS::Locker lock; aName = dynamic_cast(_local_impl)->GetCreatorName(); } #ifndef WIN32 else aName = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUserName(); #else else aName = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUserNameA(); #endif return aName; } void SALOMEDS_AttributeStudyProperties::SetCreationDate (int theMinute, int theHour, int theDay, int theMonth, int theYear) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast(_local_impl); int aTmp; if (anImpl->GetCreationDate(aTmp, aTmp, aTmp, aTmp, aTmp)) return; std::string S; anImpl->SetModification(S, theMinute, theHour, theDay, theMonth, theYear); } else { ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetCreationDate(theMinute, theHour, theDay, theMonth, theYear); } } bool SALOMEDS_AttributeStudyProperties::GetCreationDate(int& theMinute, int& theHour, int& theDay, int& theMonth, int& theYear) { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast (_local_impl)->GetCreationDate(theMinute, theHour, theDay, theMonth, theYear); } else { CORBA::Long aMinute, anHour, aDay, aMonth, anYear; ret = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetCreationDate(aMinute, anHour, aDay, aMonth, anYear); theMinute = (int)aMinute; theHour = (int)anHour; theDay = (int)aDay; theMonth = (int)aMonth; theYear = (int)anYear; } return ret; } void SALOMEDS_AttributeStudyProperties::SetCreationMode(const std::string& theMode) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; if (theMode == "from scratch") dynamic_cast(_local_impl)->SetCreationMode(1); else if (theMode == "copy from") dynamic_cast(_local_impl)->SetCreationMode(2); else //Not defined dynamic_cast(_local_impl)->SetCreationMode(0); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetCreationMode(theMode.c_str()); } std::string SALOMEDS_AttributeStudyProperties::GetCreationMode() { std::string aMode; if (_isLocal) { SALOMEDS::Locker lock; int mode = dynamic_cast(_local_impl)->GetCreationMode(); if (mode == 1) aMode = "from scratch"; if (mode == 2) aMode = "copy from"; } else aMode = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetCreationMode(); return aMode; } void SALOMEDS_AttributeStudyProperties::SetModified(int theModified) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetModified(theModified); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetModified(theModified); } bool SALOMEDS_AttributeStudyProperties::IsModified() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->IsModified(); } else ret = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->IsModified(); return ret; } int SALOMEDS_AttributeStudyProperties::GetModified() { int isModified; if (_isLocal) { SALOMEDS::Locker lock; isModified = dynamic_cast(_local_impl)->GetModified(); } else isModified = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetModified(); return isModified; } void SALOMEDS_AttributeStudyProperties::SetLocked(bool theLocked) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetLocked(theLocked); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetLocked(theLocked); } bool SALOMEDS_AttributeStudyProperties::IsLocked() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->IsLocked(); } else ret = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->IsLocked(); return ret; } void SALOMEDS_AttributeStudyProperties::SetModification(const std::string& theName, int theMinute, int theHour, int theDay, int theMonth, int theYear) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast(_local_impl); anImpl->SetModification(theName, theMinute, theHour, theDay, theMonth, theYear); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetModification(theName.c_str(), theMinute, theHour, theDay, theMonth, theYear); } void SALOMEDS_AttributeStudyProperties::GetModificationsList(std::vector& theNames, std::vector& theMinutes, std::vector& theHours, std::vector& theDays, std::vector& theMonths, std::vector& theYears, bool theWithCreator) { int i, aLength; if (_isLocal) { SALOMEDS::Locker lock; std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast(_local_impl); anImpl->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); aLength = aNames.size(); i = ((theWithCreator) ? 1 : 2); for (; i <= aLength; i++) { theNames.push_back(aNames[i-1]); theMinutes.push_back(aMinutes[i-1]); theHours.push_back(aHours[i-1]); theDays.push_back(aDays[i-1]); theMonths.push_back(aMonths[i-1]); theYears.push_back(aYears[i-1]); } } else { SALOMEDS::StringSeq_var aNames; SALOMEDS::LongSeq_var aMinutes, aHours, aDays, aMonths, aYears; ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetModificationsList(aNames.out(), aMinutes.out(), aHours.out(), aDays.out(), aMonths.out(), aYears.out(), theWithCreator); aLength = aNames->length(); for (i = 0; i(_local_impl); anImpl->SetComment(theComment); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetComment(theComment.c_str()); } std::string SALOMEDS_AttributeStudyProperties::GetComment() { std::string aComment; if (_isLocal) { SALOMEDS::Locker lock; aComment = dynamic_cast(_local_impl)->GetComment(); } else aComment = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetComment(); return aComment; } void SALOMEDS_AttributeStudyProperties::SetUnits(const std::string& theUnits) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast(_local_impl); anImpl->SetUnits(theUnits); } else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetUnits(theUnits.c_str()); } std::string SALOMEDS_AttributeStudyProperties::GetUnits() { std::string anUnits; if (_isLocal) { SALOMEDS::Locker lock; anUnits = dynamic_cast(_local_impl)->GetUnits(); } else anUnits = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUnits(); return anUnits; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeStudyProperties.hxx000077500000000000000000000065161177004724000253640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeStudyProperties.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeStudyProperties_HeaderFile #define SALOMEDS_AttributeStudyProperties_HeaderFile #include "SALOMEDSClient_AttributeStudyProperties.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #ifdef GetUserName #undef GetUserName #endif class Standard_EXPORT SALOMEDS_AttributeStudyProperties: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeStudyProperties { public: SALOMEDS_AttributeStudyProperties(SALOMEDSImpl_AttributeStudyProperties* theAttr); SALOMEDS_AttributeStudyProperties(SALOMEDS::AttributeStudyProperties_ptr theAttr); ~SALOMEDS_AttributeStudyProperties(); virtual void SetUserName(const std::string& theName); virtual std::string GetUserName(); virtual void SetCreationDate(int theMinute, int theHour, int theDay, int theMonth, int theYear); virtual bool GetCreationDate(int& theMinute, int& theHour, int& theDay, int& theMonth, int& theYear); virtual void SetCreationMode(const std::string& theMode); virtual std::string GetCreationMode(); virtual void SetModified(int theModified); virtual bool IsModified(); virtual int GetModified(); virtual void SetLocked(bool theLocked); virtual bool IsLocked(); virtual void SetModification(const std::string& theName, int theMinute, int theHour, int theDay, int theMonth, int theYear); virtual void GetModificationsList(std::vector& theNames, std::vector& theMinutes, std::vector& theHours, std::vector& theDays, std::vector& theMonths, std::vector& theYears, bool theWithCreator); virtual void SetUnits(const std::string& theUnits); virtual std::string GetUnits(); virtual void SetComment(const std::string& theComment); virtual std::string GetComment(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeStudyProperties_i.cxx000077500000000000000000000205761177004724000256710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeStudyProperties_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeStudyProperties_i.hxx" #include "SALOMEDS.hxx" #define CREATION_MODE_NOTDEFINED 0 #define CREATION_MODE_SCRATCH 1 #define CREATION_MODE_COPY 2 void SALOMEDS_AttributeStudyProperties_i::SetUserName(const char* theName) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->ChangeCreatorName((char*)theName); } char* SALOMEDS_AttributeStudyProperties_i::GetUserName() { SALOMEDS::Locker lock; std::string S = dynamic_cast(_impl)->GetCreatorName(); CORBA::String_var c_s = CORBA::string_dup(S.c_str()); return c_s._retn(); } void SALOMEDS_AttributeStudyProperties_i::SetCreationDate(CORBA::Long theMinute, CORBA::Long theHour, CORBA::Long theDay, CORBA::Long theMonth, CORBA::Long theYear) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); int aTmp; if (aProp->GetCreationDate(aTmp, aTmp, aTmp, aTmp, aTmp)) return; std::string S; aProp->SetModification(S, theMinute, theHour, theDay, theMonth, theYear); } CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::GetCreationDate(CORBA::Long& theMinute, CORBA::Long& theHour, CORBA::Long& theDay, CORBA::Long& theMonth, CORBA::Long& theYear) { SALOMEDS::Locker lock; int aMinute; int aHour; int aDay; int aMonth; int aYear; if (dynamic_cast(_impl)->GetCreationDate(aMinute, aHour, aDay, aMonth, aYear)) { theMinute = aMinute; theHour = aHour; theDay = aDay; theMonth = aMonth; theYear = aYear; return true; } return false; } void SALOMEDS_AttributeStudyProperties_i::SetCreationMode(const char* theMode) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); if (strcmp(theMode,"from scratch")==0) aProp->SetCreationMode(CREATION_MODE_SCRATCH); else if (strcmp(theMode,"copy from")==0) aProp->SetCreationMode(CREATION_MODE_COPY); else aProp->SetCreationMode(CREATION_MODE_NOTDEFINED); } char* SALOMEDS_AttributeStudyProperties_i::GetCreationMode() { SALOMEDS::Locker lock; CORBA::String_var c_s; switch (dynamic_cast(_impl)->GetCreationMode()) { case CREATION_MODE_SCRATCH: c_s = "from scratch"; break; case CREATION_MODE_COPY: c_s = "copy from"; break; default: c_s = ""; } return c_s._retn(); } void SALOMEDS_AttributeStudyProperties_i::SetModified(CORBA::Long theModified) { SALOMEDS::Locker lock; dynamic_cast(_impl)->SetModified(theModified); } CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::IsModified() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->IsModified(); } CORBA::Long SALOMEDS_AttributeStudyProperties_i::GetModified() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetModified(); } void SALOMEDS_AttributeStudyProperties_i::SetLocked(CORBA::Boolean theLocked) { SALOMEDS::Locker lock; dynamic_cast(_impl)->SetLocked(theLocked); } CORBA::Boolean SALOMEDS_AttributeStudyProperties_i::IsLocked() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->IsLocked(); } void SALOMEDS_AttributeStudyProperties_i::SetModification(const char* theName, CORBA::Long theMinute, CORBA::Long theHour, CORBA::Long theDay, CORBA::Long theMonth, CORBA::Long theYear) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); aProp->SetModification((char*)theName, (int)theMinute, (int)theHour, (int)theDay, (int)theMonth, (int)theYear); } void SALOMEDS_AttributeStudyProperties_i::GetModificationsList(SALOMEDS::StringSeq_out theNames, SALOMEDS::LongSeq_out theMinutes, SALOMEDS::LongSeq_out theHours, SALOMEDS::LongSeq_out theDays, SALOMEDS::LongSeq_out theMonths, SALOMEDS::LongSeq_out theYears, CORBA::Boolean theWithCreator) { SALOMEDS::Locker lock; std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(_impl); aProp->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); int aLength = aNames.size(); int aRetLength = aLength - ((theWithCreator) ? 0 : 1); theNames = new SALOMEDS::StringSeq; theMinutes = new SALOMEDS::LongSeq; theHours = new SALOMEDS::LongSeq; theDays = new SALOMEDS::LongSeq; theMonths = new SALOMEDS::LongSeq; theYears = new SALOMEDS::LongSeq; theNames->length(aRetLength); theMinutes->length(aRetLength); theHours->length(aRetLength); theDays->length(aRetLength); theMonths->length(aRetLength); theYears->length(aRetLength); int a = 0, ind = ((theWithCreator) ? 1 : 2); for (; ind <= aLength; a++, ind++) { (*theNames)[a] = CORBA::string_dup(aNames[ind-1].c_str()); (*theMinutes)[a] = aMinutes[ind-1]; (*theHours)[a] = aHours[ind-1]; (*theDays)[a] = aDays[ind-1]; (*theMonths)[a] = aMonths[ind-1]; (*theYears)[a] = aYears[ind-1]; } } void SALOMEDS_AttributeStudyProperties_i::SetComment(const char* theComment) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetComment(std::string(theComment)); } char* SALOMEDS_AttributeStudyProperties_i::GetComment() { SALOMEDS::Locker lock; std::string C = dynamic_cast(_impl)->GetComment(); CORBA::String_var c_s = CORBA::string_dup(C.c_str()); return c_s._retn(); } void SALOMEDS_AttributeStudyProperties_i::SetUnits(const char* theUnits) { SALOMEDS::Locker lock; CheckLocked(); dynamic_cast(_impl)->SetUnits(std::string(theUnits)); } char* SALOMEDS_AttributeStudyProperties_i::GetUnits() { SALOMEDS::Locker lock; std::string U = dynamic_cast(_impl)->GetUnits(); CORBA::String_var c_s = CORBA::string_dup(U.c_str()); return c_s._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeStudyProperties_i.hxx000077500000000000000000000065361177004724000256760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeStudyProperties_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeStudyProperties_i_HeaderFile #define SALOMEDS_AttributeStudyProperties_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" class SALOMEDS_AttributeStudyProperties_i: public virtual POA_SALOMEDS::AttributeStudyProperties, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeStudyProperties_i(SALOMEDSImpl_AttributeStudyProperties* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeStudyProperties_i() {}; virtual void SetUserName(const char* theName); virtual char* GetUserName() ; virtual void SetCreationDate(CORBA::Long theMinute, CORBA::Long theHour, CORBA::Long theDay, CORBA::Long theMonth, CORBA::Long theYear); virtual CORBA::Boolean GetCreationDate(CORBA::Long& theMinute, CORBA::Long& theHour, CORBA::Long& theDay, CORBA::Long& theMonth, CORBA::Long& theYear); virtual void SetCreationMode(const char* theMode); virtual char* GetCreationMode(); virtual void SetModified(CORBA::Long theModified); virtual CORBA::Boolean IsModified(); virtual CORBA::Long GetModified(); virtual void SetLocked(CORBA::Boolean theLocked); virtual CORBA::Boolean IsLocked(); virtual void SetModification(const char* theName, CORBA::Long theMinute, CORBA::Long theHour, CORBA::Long theDay, CORBA::Long theMonth, CORBA::Long theYear); virtual void GetModificationsList(SALOMEDS::StringSeq_out theNames, SALOMEDS::LongSeq_out theMinutes, SALOMEDS::LongSeq_out theHours, SALOMEDS::LongSeq_out theDays, SALOMEDS::LongSeq_out theMonths, SALOMEDS::LongSeq_out theYears, CORBA::Boolean theWithCreator); virtual void SetComment(const char* theComment); virtual char* GetComment(); virtual void SetUnits(const char* theUnits); virtual char* GetUnits(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfInteger.cxx000077500000000000000000000517041177004724000250230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfInteger.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTableOfInteger.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeTableOfInteger::SALOMEDS_AttributeTableOfInteger (SALOMEDSImpl_AttributeTableOfInteger* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTableOfInteger::SALOMEDS_AttributeTableOfInteger (SALOMEDS::AttributeTableOfInteger_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTableOfInteger::~SALOMEDS_AttributeTableOfInteger() {} void SALOMEDS_AttributeTableOfInteger::SetTitle(const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetTitle(theTitle); } else SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetTitle(theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfInteger::GetTitle() { std::string aStr; if (_isLocal) { SALOMEDS::Locker lock; aStr = dynamic_cast(_local_impl)->GetTitle(); } else aStr = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetTitle(); return aStr; } void SALOMEDS_AttributeTableOfInteger::SetRowTitle(int theIndex, const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowTitle(theIndex, theTitle); } else SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetRowTitle(theIndex, theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfInteger::GetRowTitle(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetRowTitle(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetRowTitle(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfInteger::SetRowTitles(const std::vector& theTitles) { int aLength = theTitles.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; std::vector aSeq; for (i = 0; i < aLength; i++) aSeq.push_back(theTitles[i]); dynamic_cast(_local_impl)->SetRowTitles(aSeq); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for(i = 0; i < aLength; i++) aSeq[i] = theTitles[i].c_str(); SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetRowTitles(aSeq); } } std::vector SALOMEDS_AttributeTableOfInteger::GetRowTitles() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowTitles(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetRowTitles(); aLength = aSeq->length(); for(i = 0; i(_local_impl)->SetColumnTitle(theIndex, theTitle); } else SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetColumnTitle(theIndex, theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfInteger::GetColumnTitle(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetColumnTitle(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetColumnTitle(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfInteger::SetColumnTitles(const std::vector& theTitles) { int aLength = theTitles.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; std::vector aSeq; for (i = 0; i < aLength; i++) aSeq.push_back(theTitles[i]); dynamic_cast(_local_impl)->SetColumnTitles(aSeq); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = theTitles[i].c_str(); SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetColumnTitles(aSeq); } } std::vector SALOMEDS_AttributeTableOfInteger::GetColumnTitles() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetColumnTitles(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetColumnTitles(); aLength = aSeq->length(); for (i = 0; i(_local_impl)->SetRowUnit(theIndex, theUnit); } else SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetRowUnit(theIndex, theUnit.c_str()); } std::string SALOMEDS_AttributeTableOfInteger::GetRowUnit(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetRowUnit(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetRowUnit(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfInteger::SetRowUnits(const std::vector& theUnits) { int aLength = theUnits.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowUnits(theUnits); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theUnits[i].c_str(); SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetRowUnits(aSeq); } } std::vector SALOMEDS_AttributeTableOfInteger::GetRowUnits() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowUnits(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetRowUnits(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } int SALOMEDS_AttributeTableOfInteger::GetNbRows() { int aNb; if (_isLocal) { SALOMEDS::Locker lock; aNb = dynamic_cast(_local_impl)->GetNbRows(); } else aNb = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetNbRows(); return aNb; } int SALOMEDS_AttributeTableOfInteger::GetNbColumns() { int aNb; if (_isLocal) { SALOMEDS::Locker lock; aNb = dynamic_cast(_local_impl)->GetNbColumns(); } else aNb = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetNbColumns(); return aNb; } void SALOMEDS_AttributeTableOfInteger::AddRow(const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_local_impl); try { aTable->SetRowData(aTable->GetNbRows() + 1, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq(); aSeq->length(aLength); for(i = 0; i < aLength; i++) aSeq[i] = theData[i]; SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->AddRow(aSeq); } } void SALOMEDS_AttributeTableOfInteger::SetRow(int theRow, const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_local_impl); try { aTable->SetRowData(theRow, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = theData[i]; SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetRow(theRow, aSeq); } } std::vector SALOMEDS_AttributeTableOfInteger::GetRow(int theRow) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowData(theRow); } else { SALOMEDS::LongSeq_var aRow = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetRow(theRow); aLength = aRow->length(); for (i = 0; i < aLength; i++) aVector.push_back(aRow[i]); } return aVector; } void SALOMEDS_AttributeTableOfInteger::AddColumn(const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_local_impl); try { aTable->SetColumnData(aTable->GetNbColumns() + 1, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::LongSeq_var aColumn = new SALOMEDS::LongSeq(); aColumn->length(aLength); for(i = 0; i < aLength; i++) aColumn[i] = theData[i]; SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->AddColumn(aColumn); } } void SALOMEDS_AttributeTableOfInteger::SetColumn(int theColumn, const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_local_impl); try { aTable->SetColumnData(theColumn, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::LongSeq_var aColumn = new SALOMEDS::LongSeq(); aColumn->length(aLength); for (i = 0; i < aLength; i++) aColumn[i] = theData[i]; SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetColumn(theColumn, aColumn); } } std::vector SALOMEDS_AttributeTableOfInteger::GetColumn(int theColumn) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetColumnData(theColumn); } else { SALOMEDS::LongSeq_var aColumn = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetColumn(theColumn); aLength = aColumn->length(); for (i = 0; i < aLength; i++) aVector.push_back(aColumn[i]); } return aVector; } void SALOMEDS_AttributeTableOfInteger::PutValue(int theValue, int theRow, int theColumn) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->PutValue(theValue, theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->PutValue(theValue, theRow, theColumn); } } bool SALOMEDS_AttributeTableOfInteger::HasValue(int theRow, int theColumn) { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->HasValue(theRow, theColumn); } else ret = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->HasValue(theRow, theColumn); return ret; } int SALOMEDS_AttributeTableOfInteger::GetValue(int theRow, int theColumn) { int aValue; if (_isLocal) { SALOMEDS::Locker lock; try { aValue = dynamic_cast(_local_impl)->GetValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aValue = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetValue(theRow, theColumn); } return aValue; } void SALOMEDS_AttributeTableOfInteger::RemoveValue(int theRow, int theColumn) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->RemoveValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->RemoveValue(theRow, theColumn); } } std::vector SALOMEDS_AttributeTableOfInteger::GetRowSetIndices(int theRow) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetSetRowIndices(theRow); } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->GetRowSetIndices(theRow); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } void SALOMEDS_AttributeTableOfInteger::SetNbColumns(int theNbColumns) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetNbColumns(theNbColumns); } else SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SetNbColumns(theNbColumns); } std::vector SALOMEDS_AttributeTableOfInteger::SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SortRow(theRow, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfInteger::SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SortColumn(theColumn, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfInteger::SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortByRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SortByRow(theRow, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfInteger::SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortByColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SortByColumn(theColumn, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } void SALOMEDS_AttributeTableOfInteger::SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } } void SALOMEDS_AttributeTableOfInteger::SwapRows(int theRow1, int theRow2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapRows(theRow1, theRow2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SwapRows(theRow1, theRow2); } } void SALOMEDS_AttributeTableOfInteger::SwapColumns(int theColumn1, int theColumn2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapColumns(theColumn1, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfInteger::_narrow(_corba_impl)->SwapColumns(theColumn1, theColumn2); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfInteger.hxx000077500000000000000000000075771177004724000250410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTableOfInteger_HeaderFile #define SALOMEDS_AttributeTableOfInteger_HeaderFile #include "SALOMEDSClient_AttributeTableOfInteger.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTableOfInteger.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeTableOfInteger: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTableOfInteger { public: SALOMEDS_AttributeTableOfInteger(SALOMEDSImpl_AttributeTableOfInteger* theAttr); SALOMEDS_AttributeTableOfInteger(SALOMEDS::AttributeTableOfInteger_ptr theAttr); ~SALOMEDS_AttributeTableOfInteger(); virtual void SetTitle(const std::string& theTitle); virtual std::string GetTitle(); virtual void SetRowTitle(int theIndex, const std::string& theTitle); virtual std::string GetRowTitle(int theIndex); virtual void SetRowTitles(const std::vector& theTitles); virtual std::vector GetRowTitles(); virtual void SetColumnTitle(int theIndex, const std::string& theTitle); virtual std::string GetColumnTitle(int theIndex); virtual void SetColumnTitles(const std::vector& theTitles); virtual std::vector GetColumnTitles(); virtual void SetRowUnit(int theIndex, const std::string& theUnit); virtual std::string GetRowUnit(int theIndex); virtual void SetRowUnits(const std::vector& theUnits); virtual std::vector GetRowUnits(); virtual int GetNbRows(); virtual int GetNbColumns(); virtual void AddRow(const std::vector& theData); virtual void SetRow(int theRow, const std::vector& theData); virtual std::vector GetRow(int theRow); virtual void AddColumn(const std::vector& theData); virtual void SetColumn(int theColumn, const std::vector& theData); virtual std::vector GetColumn(int theColumn); virtual void PutValue(int theValue, int theRow, int theColumn); virtual bool HasValue(int theRow, int theColumn); virtual int GetValue(int theRow, int theColumn); virtual void RemoveValue(int theRow, int theColumn); virtual std::vector GetRowSetIndices(int theRow); virtual void SetNbColumns(int theNbColumns); virtual std::vector SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy); virtual void SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2); virtual void SwapRows(int theRow1, int theRow2); virtual void SwapColumns(int theColumn1, int theColumn2); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfInteger_i.cxx000077500000000000000000000554151177004724000253360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfInteger_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTableOfInteger_i.hxx" #include "SALOMEDS.hxx" #include "Utils_ExceptHandlers.hxx" #include #include #include #include UNEXPECT_CATCH(ATI_IncorrectIndex, SALOMEDS::AttributeTable::IncorrectIndex); UNEXPECT_CATCH(ATI_IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectArgumentLength); void SALOMEDS_AttributeTableOfInteger_i::SetTitle(const char* theTitle) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var aStr = CORBA::string_dup(theTitle); dynamic_cast(_impl)->SetTitle(std::string(aStr)); } char* SALOMEDS_AttributeTableOfInteger_i::GetTitle() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); CORBA::String_var c_s = CORBA::string_dup(aTable->GetTitle().c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SetRowTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theIndex < 1 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetRowTitle(theIndex, std::string(theTitle)); } char* SALOMEDS_AttributeTableOfInteger_i::GetRowTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theIndex < 1 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetRowTitle(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SetRowTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theTitles.length() != aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theTitles.length(); i++) { SetRowTitle(i + 1, theTitles[i]); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfInteger_i::GetRowTitles() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aTitles = new SALOMEDS::StringSeq; aTitles->length(aTable->GetNbRows()); for(int i = 0; i < aTitles->length(); i++) aTitles[i] = CORBA::string_dup(aTable->GetRowTitle(i + 1).c_str()); return aTitles._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SetColumnTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theIndex < 1 || theIndex > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var aStr = CORBA::string_dup(theTitle); aTable->SetColumnTitle(theIndex, std::string(aStr)); } char* SALOMEDS_AttributeTableOfInteger_i::GetColumnTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theIndex < 1 || theIndex > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetColumnTitle(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SetColumnTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theTitles.length() != aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theTitles.length(); i++) { aTable->SetColumnTitle(i + 1, (char*)theTitles[i].in()); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfInteger_i::GetColumnTitles() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aTitles = new SALOMEDS::StringSeq; aTitles->length(aTable->GetNbColumns()); for(int i = 0; i < aTitles->length(); i++) aTitles[i] = CORBA::string_dup(aTable->GetColumnTitle(i + 1).c_str()); return aTitles._retn(); } //Units support void SALOMEDS_AttributeTableOfInteger_i::SetRowUnit(CORBA::Long theIndex, const char* theUnit) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theIndex < 1 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetRowUnit(theIndex, std::string(theUnit)); } char* SALOMEDS_AttributeTableOfInteger_i::GetRowUnit(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theIndex < 1 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetRowUnit(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SetRowUnits(const SALOMEDS::StringSeq& theUnits) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch (ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theUnits.length() != aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theUnits.length(); i++) { aTable->SetRowUnit(i + 1, (char*)theUnits[i].in()); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfInteger_i::GetRowUnits() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aUnits = new SALOMEDS::StringSeq; aUnits->length(aTable->GetNbRows()); for(int i = 0; i < aUnits->length(); i++) aUnits[i] = CORBA::string_dup(aTable->GetRowUnit(i + 1).c_str()); return aUnits._retn(); } CORBA::Long SALOMEDS_AttributeTableOfInteger_i::GetNbRows() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetNbRows(); } CORBA::Long SALOMEDS_AttributeTableOfInteger_i::GetNbColumns() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetNbColumns(); } void SALOMEDS_AttributeTableOfInteger_i::AddRow(const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); std::vector aRow; for (int i = 0; i < theData.length(); i++) aRow.push_back(theData[i]); try { aTable->SetRowData(aTable->GetNbRows() + 1, aRow); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } void SALOMEDS_AttributeTableOfInteger_i::SetRow(CORBA::Long theRow, const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); std::vector aRow; for (int i = 0; i < theData.length(); i++) aRow.push_back(theData[i]); try { aTable->SetRowData(theRow, aRow); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::GetRow(CORBA::Long theRow) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; std::vector aRow = aTable->GetRowData(theRow); CorbaSeq->length(aRow.size()); for (int i = 0; i < aRow.size(); i++) { CorbaSeq[i] = aRow[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfInteger_i::AddColumn(const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); std::vector aColumn; for (int i = 0; i < theData.length(); i++) aColumn.push_back(theData[i]); try { aTable->SetColumnData(aTable->GetNbColumns() + 1, aColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } void SALOMEDS_AttributeTableOfInteger_i::SetColumn(CORBA::Long theColumn, const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); std::vector aColumn; for (int i = 0; i < theData.length(); i++) aColumn.push_back(theData[i]); try { aTable->SetColumnData(theColumn, aColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::GetColumn(CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; std::vector aColumn = aTable->GetColumnData(theColumn); CorbaSeq->length(aColumn.size()); for (int i = 0; i < aColumn.size(); i++) { CorbaSeq[i] = aColumn[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfInteger_i::PutValue(CORBA::Long theValue, CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); try { aTable->PutValue(theValue, theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } CORBA::Boolean SALOMEDS_AttributeTableOfInteger_i::HasValue(CORBA::Long theRow, CORBA::Long theColumn) { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasValue(theRow, theColumn); } CORBA::Long SALOMEDS_AttributeTableOfInteger_i::GetValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::Long aValue; try { aValue = aTable->GetValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } return aValue; } void SALOMEDS_AttributeTableOfInteger_i::RemoveValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->RemoveValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::GetRowSetIndices(CORBA::Long theRow) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if(theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; std::vector aSeq = aTable->GetSetRowIndices(theRow); CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SetNbColumns(CORBA::Long theNbColumns) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); aTable->SetNbColumns(theNbColumns); } bool SALOMEDS_AttributeTableOfInteger_i::ReadFromFile(const SALOMEDS::TMPFile& theStream) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); std::string aStream((char*)&theStream[0], theStream.length()); aTable->Load(aStream); return true; } SALOMEDS::TMPFile* SALOMEDS_AttributeTableOfInteger_i::SaveToFile() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); std::string aString = aTable->Save(); char* aBuffer = (char*)CORBA::string_dup(aString.c_str()); int aBufferSize = strlen((char*)aBuffer); CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer; SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1); return aStreamFile._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::SortRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::SortColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::SortByRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortByRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfInteger_i::SortByColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortByColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfInteger_i::SwapCells(CORBA::Long theRow1, CORBA::Long theColumn1, CORBA::Long theRow2, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow1 < 1 || theRow1 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn1 < 1 || theColumn1 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theRow2 < 1 || theRow2 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn2 < 1 || theColumn2 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } void SALOMEDS_AttributeTableOfInteger_i::SwapRows(CORBA::Long theRow1, CORBA::Long theRow2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theRow1 < 1 || theRow1 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theRow2 < 1 || theRow2 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapRows(theRow1, theRow2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } void SALOMEDS_AttributeTableOfInteger_i::SwapColumns(CORBA::Long theColumn1, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATI_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(_impl); if (theColumn1 < 1 || theColumn1 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn2 < 1 || theColumn2 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapColumns(theColumn1, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfInteger_i.hxx000077500000000000000000000137451177004724000253430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfInteger_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTableOfInteger_i_HeaderFile #define SALOMEDS_AttributeTableOfInteger_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTableOfInteger.hxx" class SALOMEDS_AttributeTableOfInteger_i: public virtual POA_SALOMEDS::AttributeTableOfInteger, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTableOfInteger_i(SALOMEDSImpl_AttributeTableOfInteger* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTableOfInteger_i() {}; virtual void SetTitle(const char* theTitle); virtual char* GetTitle(); virtual void SetRowTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetRowTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetRowTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetRowTitles(); virtual void SetColumnTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetColumnTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetColumnTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetColumnTitles(); virtual void SetRowUnit(CORBA::Long theIndex, const char* theUnit) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetRowUnit(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetRowUnits(const SALOMEDS::StringSeq& theUnits) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetRowUnits(); virtual CORBA::Long GetNbRows(); virtual CORBA::Long GetNbColumns(); virtual void AddRow(const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual void SetRow(CORBA::Long theRow, const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* GetRow(CORBA::Long theRow) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void AddColumn(const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual void SetColumn(CORBA::Long theColumn, const SALOMEDS::LongSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* GetColumn(CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void PutValue(CORBA::Long theValue, CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual CORBA::Boolean HasValue(CORBA::Long theRow, CORBA::Long theColumn); virtual CORBA::Long GetValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void RemoveValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* GetRowSetIndices(CORBA::Long theRow); virtual void SetNbColumns(CORBA::Long theNbColumns); virtual SALOMEDS::LongSeq* SortRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortByRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortByColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapCells(CORBA::Long theRow1, CORBA::Long theColumn1, CORBA::Long theRow2, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapRows(CORBA::Long theRow1, CORBA::Long theRow2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapColumns(CORBA::Long theColumn1, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual bool ReadFromFile(const SALOMEDS::TMPFile& theStream); virtual SALOMEDS::TMPFile* SaveToFile(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfReal.cxx000077500000000000000000000507331177004724000243120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfReal.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTableOfReal.hxx" #include "SALOMEDS.hxx" SALOMEDS_AttributeTableOfReal::SALOMEDS_AttributeTableOfReal (SALOMEDSImpl_AttributeTableOfReal* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTableOfReal::SALOMEDS_AttributeTableOfReal(SALOMEDS::AttributeTableOfReal_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTableOfReal::~SALOMEDS_AttributeTableOfReal() {} void SALOMEDS_AttributeTableOfReal::SetTitle(const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetTitle(theTitle); } else SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetTitle(theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfReal::GetTitle() { std::string aStr; if (_isLocal) { SALOMEDS::Locker lock; aStr = dynamic_cast(_local_impl)->GetTitle(); } else aStr = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetTitle(); return aStr; } void SALOMEDS_AttributeTableOfReal::SetRowTitle(int theIndex, const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowTitle(theIndex, theTitle); } else SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetRowTitle(theIndex, theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfReal::GetRowTitle(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetRowTitle(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetRowTitle(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfReal::SetRowTitles(const std::vector& theTitles) { CheckLocked(); int aLength = theTitles.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowTitles(theTitles); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theTitles[i].c_str(); SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetRowTitles(aSeq); } } std::vector SALOMEDS_AttributeTableOfReal::GetRowTitles() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowTitles(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetRowTitles(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } void SALOMEDS_AttributeTableOfReal::SetColumnTitle(int theIndex, const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetColumnTitle(theIndex, theTitle); } else SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetColumnTitle(theIndex, theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfReal::GetColumnTitle(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetColumnTitle(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetColumnTitle(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfReal::SetColumnTitles(const std::vector& theTitles) { int aLength = theTitles.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetColumnTitles(theTitles); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theTitles[i].c_str(); SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetColumnTitles(aSeq); } } std::vector SALOMEDS_AttributeTableOfReal::GetColumnTitles() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetColumnTitles(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetColumnTitles(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } void SALOMEDS_AttributeTableOfReal::SetRowUnit(int theIndex, const std::string& theUnit) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowUnit(theIndex, theUnit); } else SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetRowUnit(theIndex, theUnit.c_str()); } std::string SALOMEDS_AttributeTableOfReal::GetRowUnit(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetRowUnit(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetRowUnit(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfReal::SetRowUnits(const std::vector& theUnits) { int aLength = theUnits.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowUnits(theUnits); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theUnits[i].c_str(); SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetRowUnits(aSeq); } } std::vector SALOMEDS_AttributeTableOfReal::GetRowUnits() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowUnits(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetRowUnits(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back(std::string(aSeq[i].in())); } return aVector; } int SALOMEDS_AttributeTableOfReal::GetNbRows() { int aNb; if (_isLocal) { SALOMEDS::Locker lock; aNb = dynamic_cast(_local_impl)->GetNbRows(); } else aNb = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetNbRows(); return aNb; } int SALOMEDS_AttributeTableOfReal::GetNbColumns() { int aNb; if (_isLocal) { SALOMEDS::Locker lock; aNb = dynamic_cast(_local_impl)->GetNbColumns(); } else aNb = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetNbColumns(); return aNb; } void SALOMEDS_AttributeTableOfReal::AddRow(const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_local_impl); try { aTable->SetRowData(aTable->GetNbRows() + 1, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = theData[i]; SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->AddRow(aSeq); } } void SALOMEDS_AttributeTableOfReal::SetRow(int theRow, const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_local_impl); try { aTable->SetRowData(theRow, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = theData[i]; SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetRow(theRow, aSeq); } } std::vector SALOMEDS_AttributeTableOfReal::GetRow(int theRow) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowData(theRow); } else { SALOMEDS::DoubleSeq_var aRow = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetRow(theRow); aLength = aRow->length(); for (i = 0; i < aLength; i++) aVector.push_back(aRow[i]); } return aVector; } void SALOMEDS_AttributeTableOfReal::AddColumn(const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_local_impl); try { aTable->SetColumnData(aTable->GetNbColumns() + 1, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::DoubleSeq_var aColumn = new SALOMEDS::DoubleSeq(); aColumn->length(aLength); for (i = 0; i < aLength; i++) aColumn[i] = theData[i]; SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->AddColumn(aColumn); } } void SALOMEDS_AttributeTableOfReal::SetColumn(int theColumn, const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_local_impl); try { aTable->SetColumnData(theColumn, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::DoubleSeq_var aColumn = new SALOMEDS::DoubleSeq(); aColumn->length(aLength); for (i = 0; i < aLength; i++) aColumn[i] = theData[i]; SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetColumn(theColumn, aColumn); } } std::vector SALOMEDS_AttributeTableOfReal::GetColumn(int theColumn) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetColumnData(theColumn); } else { SALOMEDS::DoubleSeq_var aColumn = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetColumn(theColumn); aLength = aColumn->length(); for (i = 0; i < aLength; i++) aVector.push_back(aColumn[i]); } return aVector; } void SALOMEDS_AttributeTableOfReal::PutValue(double theValue, int theRow, int theColumn) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->PutValue(theValue, theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->PutValue(theValue, theRow, theColumn); } } bool SALOMEDS_AttributeTableOfReal::HasValue(int theRow, int theColumn) { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->HasValue(theRow, theColumn); } else ret = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->HasValue(theRow, theColumn); return ret; } double SALOMEDS_AttributeTableOfReal::GetValue(int theRow, int theColumn) { double aValue; if (_isLocal) { SALOMEDS::Locker lock; try { aValue = dynamic_cast(_local_impl)->GetValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aValue = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetValue(theRow, theColumn); } return aValue; } void SALOMEDS_AttributeTableOfReal::RemoveValue(int theRow, int theColumn) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->RemoveValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->RemoveValue(theRow, theColumn); } } std::vector SALOMEDS_AttributeTableOfReal::GetRowSetIndices(int theRow) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetSetRowIndices(theRow); } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->GetRowSetIndices(theRow); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } void SALOMEDS_AttributeTableOfReal::SetNbColumns(int theNbColumns) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetNbColumns(theNbColumns); } else SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SetNbColumns(theNbColumns); } std::vector SALOMEDS_AttributeTableOfReal::SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SortRow(theRow, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfReal::SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SortColumn(theColumn, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfReal::SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortByRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SortByRow(theRow, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfReal::SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortByColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SortByColumn(theColumn, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } void SALOMEDS_AttributeTableOfReal::SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } } void SALOMEDS_AttributeTableOfReal::SwapRows(int theRow1, int theRow2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapRows(theRow1, theRow2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SwapRows(theRow1, theRow2); } } void SALOMEDS_AttributeTableOfReal::SwapColumns(int theColumn1, int theColumn2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapColumns(theColumn1, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfReal::_narrow(_corba_impl)->SwapColumns(theColumn1, theColumn2); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfReal.hxx000077500000000000000000000075631177004724000243220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTableOfReal_HeaderFile #define SALOMEDS_AttributeTableOfReal_HeaderFile #include "SALOMEDSClient_AttributeTableOfReal.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTableOfReal.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeTableOfReal: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTableOfReal { public: SALOMEDS_AttributeTableOfReal(SALOMEDSImpl_AttributeTableOfReal* theAttr); SALOMEDS_AttributeTableOfReal(SALOMEDS::AttributeTableOfReal_ptr theAttr); ~SALOMEDS_AttributeTableOfReal(); virtual void SetTitle(const std::string& theTitle); virtual std::string GetTitle(); virtual void SetRowTitle(int theIndex, const std::string& theTitle); virtual std::string GetRowTitle(int theIndex); virtual void SetRowTitles(const std::vector& theTitles); virtual std::vector GetRowTitles(); virtual void SetColumnTitle(int theIndex, const std::string& theTitle); virtual std::string GetColumnTitle(int theIndex); virtual void SetColumnTitles(const std::vector& theTitles); virtual std::vector GetColumnTitles(); virtual void SetRowUnit(int theIndex, const std::string& theUnit); virtual std::string GetRowUnit(int theIndex); virtual void SetRowUnits(const std::vector& theUnits); virtual std::vector GetRowUnits(); virtual int GetNbRows(); virtual int GetNbColumns(); virtual void AddRow(const std::vector& theData); virtual void SetRow(int theRow, const std::vector& theData); virtual std::vector GetRow(int theRow); virtual void AddColumn(const std::vector& theData); virtual void SetColumn(int theColumn, const std::vector& theData); virtual std::vector GetColumn(int theColumn); virtual void PutValue(double theValue, int theRow, int theColumn); virtual bool HasValue(int theRow, int theColumn); virtual double GetValue(int theRow, int theColumn); virtual void RemoveValue(int theRow, int theColumn); virtual std::vector GetRowSetIndices(int theRow); virtual void SetNbColumns(int theNbColumns); virtual std::vector SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy); virtual void SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2); virtual void SwapRows(int theRow1, int theRow2); virtual void SwapColumns(int theColumn1, int theColumn2); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfReal_i.cxx000077500000000000000000000537401177004724000246230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfReal_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTableOfReal_i.hxx" #include "SALOMEDS.hxx" #include #include #include #include "Utils_ExceptHandlers.hxx" UNEXPECT_CATCH(ATR_IncorrectIndex, SALOMEDS::AttributeTable::IncorrectIndex); UNEXPECT_CATCH(ATR_IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectArgumentLength); void SALOMEDS_AttributeTableOfReal_i::SetTitle(const char* theTitle) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); CORBA::String_var aStr = CORBA::string_dup(theTitle); aTable->SetTitle(std::string(aStr)); } char* SALOMEDS_AttributeTableOfReal_i::GetTitle() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); CORBA::String_var c_s = CORBA::string_dup(aTable->GetTitle().c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfReal_i::SetRowTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetRowTitle(theIndex, std::string(theTitle)); } char* SALOMEDS_AttributeTableOfReal_i::GetRowTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetRowTitle(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfReal_i::SetRowTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theTitles.length() != aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theTitles.length(); i++) { aTable->SetRowTitle(i + 1, (char*)theTitles[i].in()); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfReal_i::GetRowTitles() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aTitles = new SALOMEDS::StringSeq; aTitles->length(aTable->GetNbRows()); for(int i = 0; i < aTitles->length(); i++) aTitles[i] = CORBA::string_dup(aTable->GetRowTitle(i + 1).c_str()); return aTitles._retn(); } void SALOMEDS_AttributeTableOfReal_i::SetColumnTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var aStr = CORBA::string_dup(theTitle); aTable->SetColumnTitle(theIndex, std::string(aStr)); } char* SALOMEDS_AttributeTableOfReal_i::GetColumnTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetColumnTitle(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfReal_i::SetColumnTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theTitles.length() != aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theTitles.length(); i++) { aTable->SetColumnTitle(i + 1, (char*)theTitles[i].in()); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfReal_i::GetColumnTitles() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aTitles = new SALOMEDS::StringSeq; aTitles->length(aTable->GetNbColumns()); for(int i = 0; i < aTitles->length(); i++) aTitles[i] = CORBA::string_dup(aTable->GetColumnTitle(i + 1).c_str()); return aTitles._retn(); } //Units support void SALOMEDS_AttributeTableOfReal_i::SetRowUnit(CORBA::Long theIndex, const char* theUnit) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetRowUnit(theIndex, std::string(theUnit)); } char* SALOMEDS_AttributeTableOfReal_i::GetRowUnit(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetRowUnit(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfReal_i::SetRowUnits(const SALOMEDS::StringSeq& theUnits) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch (ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theUnits.length() != aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theUnits.length(); i++) { aTable->SetRowUnit(i + 1, (char*)theUnits[i].in()); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfReal_i::GetRowUnits() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aUnits = new SALOMEDS::StringSeq; aUnits->length(aTable->GetNbRows()); for(int i = 0; i < aUnits->length(); i++) aUnits[i] = CORBA::string_dup(aTable->GetRowUnit(i + 1).c_str()); return aUnits._retn(); } CORBA::Long SALOMEDS_AttributeTableOfReal_i::GetNbRows() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetNbRows(); } CORBA::Long SALOMEDS_AttributeTableOfReal_i::GetNbColumns() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetNbColumns(); } void SALOMEDS_AttributeTableOfReal_i::AddRow(const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); std::vector aRow; for (int i = 0; i < theData.length(); i++) aRow.push_back(theData[i]); aTable->SetRowData(aTable->GetNbRows() + 1, aRow); } void SALOMEDS_AttributeTableOfReal_i::SetRow(CORBA::Long theRow, const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); std::vector aRow; for (int i = 0; i < theData.length(); i++) aRow.push_back(theData[i]); aTable->SetRowData(theRow, aRow); } SALOMEDS::DoubleSeq* SALOMEDS_AttributeTableOfReal_i::GetRow(CORBA::Long theRow) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow <= 0 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::DoubleSeq_var CorbaSeq = new SALOMEDS::DoubleSeq; std::vector aRow = aTable->GetRowData(theRow); CorbaSeq->length(aRow.size()); for (int i = 0; i < aRow.size(); i++) { CorbaSeq[i] = aRow[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfReal_i::AddColumn(const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); std::vector aColumn; for (int i = 0; i < theData.length(); i++) aColumn.push_back(theData[i]); aTable->SetColumnData(aTable->GetNbColumns() + 1, aColumn); } void SALOMEDS_AttributeTableOfReal_i::SetColumn(CORBA::Long theColumn, const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); std::vector aColumn; for (int i = 0; i < theData.length(); i++) aColumn.push_back(theData[i]); aTable->SetColumnData(theColumn, aColumn); } SALOMEDS::DoubleSeq* SALOMEDS_AttributeTableOfReal_i::GetColumn(CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theColumn <= 0 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::DoubleSeq_var CorbaSeq = new SALOMEDS::DoubleSeq; std::vector aColumn = aTable->GetColumnData(theColumn); CorbaSeq->length(aColumn.size()); for (int i = 0; i < aColumn.size(); i++) { CorbaSeq[i] = aColumn[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfReal_i::PutValue(CORBA::Double theValue, CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); aTable->PutValue(theValue, theRow, theColumn); } CORBA::Boolean SALOMEDS_AttributeTableOfReal_i::HasValue(CORBA::Long theRow, CORBA::Long theColumn) { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasValue(theRow, theColumn); } CORBA::Double SALOMEDS_AttributeTableOfReal_i::GetValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::Double aValue; try { aValue = aTable->GetValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } return aValue; } void SALOMEDS_AttributeTableOfReal_i::RemoveValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->RemoveValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfReal_i::GetRowSetIndices(CORBA::Long theRow) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if(theRow <= 0 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; std::vector aSeq = aTable->GetSetRowIndices(theRow); int len = aSeq.size(); CorbaSeq->length(len); for (int i = 0; i < len; i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfReal_i::SetNbColumns(CORBA::Long theNbColumns) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); aTable->SetNbColumns(theNbColumns); } bool SALOMEDS_AttributeTableOfReal_i::ReadFromFile(const SALOMEDS::TMPFile& theStream) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); std::string aStream((char*)&theStream[0], theStream.length()); aTable->Load(aStream); return true; } SALOMEDS::TMPFile* SALOMEDS_AttributeTableOfReal_i::SaveToFile() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); std::string aString = aTable->Save(); char* aBuffer = (char*)CORBA::string_dup(aString.c_str()); int aBufferSize = strlen((char*)aBuffer); CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer; SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1); return aStreamFile._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfReal_i::SortRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfReal_i::SortColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfReal_i::SortByRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortByRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfReal_i::SortByColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortByColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfReal_i::SwapCells(CORBA::Long theRow1, CORBA::Long theColumn1, CORBA::Long theRow2, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow1 < 1 || theRow1 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn1 < 1 || theColumn1 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theRow2 < 1 || theRow2 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn2 < 1 || theColumn2 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } void SALOMEDS_AttributeTableOfReal_i::SwapRows(CORBA::Long theRow1, CORBA::Long theRow2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theRow1 < 1 || theRow1 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theRow2 < 1 || theRow2 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapRows(theRow1, theRow2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } void SALOMEDS_AttributeTableOfReal_i::SwapColumns(CORBA::Long theColumn1, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATR_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(_impl); if (theColumn1 < 1 || theColumn1 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn2 < 1 || theColumn2 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapColumns(theColumn1, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfReal_i.hxx000077500000000000000000000137011177004724000246210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfReal_i.hxx // Author : Michael Ponikarov // Module : SALOME // #ifndef SALOMEDS_AttributeTableOfReal_i_HeaderFile #define SALOMEDS_AttributeTableOfReal_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTableOfReal.hxx" class SALOMEDS_AttributeTableOfReal_i : public virtual POA_SALOMEDS::AttributeTableOfReal, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTableOfReal_i(SALOMEDSImpl_AttributeTableOfReal* theAttr, CORBA::ORB_ptr orb) : SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTableOfReal_i() {}; virtual void SetTitle(const char* theTitle); virtual char* GetTitle(); virtual void SetRowTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetRowTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetRowTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetRowTitles(); virtual void SetColumnTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetColumnTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetColumnTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetColumnTitles(); virtual void SetRowUnit(CORBA::Long theIndex, const char* theUnit) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetRowUnit(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetRowUnits(const SALOMEDS::StringSeq& theUnits) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetRowUnits(); virtual CORBA::Long GetNbRows(); virtual CORBA::Long GetNbColumns(); virtual void AddRow(const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual void SetRow(CORBA::Long theRow, const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::DoubleSeq* GetRow(CORBA::Long theRow) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void AddColumn(const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual void SetColumn(CORBA::Long theColumn, const SALOMEDS::DoubleSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::DoubleSeq* GetColumn(CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void PutValue(CORBA::Double theValue, CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual CORBA::Boolean HasValue(CORBA::Long theRow, CORBA::Long theColumn); virtual CORBA::Double GetValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void RemoveValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* GetRowSetIndices(CORBA::Long theRow); virtual void SetNbColumns(CORBA::Long theNbColumns); virtual SALOMEDS::LongSeq* SortRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortByRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortByColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapCells(CORBA::Long theRow1, CORBA::Long theColumn1, CORBA::Long theRow2, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapRows(CORBA::Long theRow1, CORBA::Long theRow2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapColumns(CORBA::Long theColumn1, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual bool ReadFromFile(const SALOMEDS::TMPFile& theStream); virtual SALOMEDS::TMPFile* SaveToFile(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfString.cxx000077500000000000000000000515651177004724000247010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfString.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTableOfString.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeTableOfString::SALOMEDS_AttributeTableOfString (SALOMEDSImpl_AttributeTableOfString* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTableOfString::SALOMEDS_AttributeTableOfString (SALOMEDS::AttributeTableOfString_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTableOfString::~SALOMEDS_AttributeTableOfString() {} void SALOMEDS_AttributeTableOfString::SetTitle(const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetTitle(theTitle); } else SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetTitle(theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfString::GetTitle() { std::string aStr; if (_isLocal) { SALOMEDS::Locker lock; aStr = dynamic_cast(_local_impl)->GetTitle(); } else aStr = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetTitle(); return aStr; } void SALOMEDS_AttributeTableOfString::SetRowTitle(int theIndex, const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowTitle(theIndex, theTitle); } else SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetRowTitle(theIndex, theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfString::GetRowTitle(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetRowTitle(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetRowTitle(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfString::SetRowTitles(const std::vector& theTitles) { int aLength = theTitles.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowTitles(theTitles); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theTitles[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetRowTitles(aSeq); } } std::vector SALOMEDS_AttributeTableOfString::GetRowTitles() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowTitles(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetRowTitles(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } void SALOMEDS_AttributeTableOfString::SetColumnTitle(int theIndex, const std::string& theTitle) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetColumnTitle(theIndex, theTitle); } else SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetColumnTitle(theIndex, theTitle.c_str()); } std::string SALOMEDS_AttributeTableOfString::GetColumnTitle(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetColumnTitle(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetColumnTitle(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfString::SetColumnTitles(const std::vector& theTitles) { int aLength = theTitles.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetColumnTitles(theTitles); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theTitles[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetColumnTitles(aSeq); } } std::vector SALOMEDS_AttributeTableOfString::GetColumnTitles() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetColumnTitles(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetColumnTitles(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } void SALOMEDS_AttributeTableOfString::SetRowUnit(int theIndex, const std::string& theUnit) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowUnit(theIndex, theUnit); } else SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetRowUnit(theIndex, theUnit.c_str()); } std::string SALOMEDS_AttributeTableOfString::GetRowUnit(int theIndex) { std::string aTitle; if (_isLocal) { SALOMEDS::Locker lock; try { aTitle = dynamic_cast(_local_impl)->GetRowUnit(theIndex); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aTitle = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetRowUnit(theIndex); } return aTitle; } void SALOMEDS_AttributeTableOfString::SetRowUnits(const std::vector& theUnits) { int aLength = theUnits.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetRowUnits(theUnits); } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theUnits[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetRowUnits(aSeq); } } std::vector SALOMEDS_AttributeTableOfString::GetRowUnits() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowUnits(); } else { SALOMEDS::StringSeq_var aSeq = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetRowUnits(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } int SALOMEDS_AttributeTableOfString::GetNbRows() { int aNb; if (_isLocal) { SALOMEDS::Locker lock; aNb = dynamic_cast(_local_impl)->GetNbRows(); } else aNb = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetNbRows(); return aNb; } int SALOMEDS_AttributeTableOfString::GetNbColumns() { int aNb; if (_isLocal) { SALOMEDS::Locker lock; aNb = dynamic_cast(_local_impl)->GetNbColumns(); } else aNb = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetNbColumns(); return aNb; } void SALOMEDS_AttributeTableOfString::AddRow(const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_local_impl); try { aTable->SetRowData(aTable->GetNbRows() + 1, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theData[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->AddRow(aSeq); } } void SALOMEDS_AttributeTableOfString::SetRow(int theRow, const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_local_impl); try { aTable->SetRowData(theRow, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq(); aSeq->length(aLength); for (i = 0; i < aLength; i++) aSeq[i] = (char*)theData[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetRow(theRow, aSeq); } } std::vector SALOMEDS_AttributeTableOfString::GetRow(int theRow) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetRowData(theRow); } else { SALOMEDS::StringSeq_var aRow = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetRow(theRow); aLength = aRow->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aRow[i].in()); } return aVector; } void SALOMEDS_AttributeTableOfString::AddColumn(const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_local_impl); try { aTable->SetColumnData(aTable->GetNbColumns() + 1, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::StringSeq_var aColumn = new SALOMEDS::StringSeq(); aColumn->length(aLength); for (i = 0; i < aLength; i++) aColumn[i] = (char*)theData[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->AddColumn(aColumn); } } void SALOMEDS_AttributeTableOfString::SetColumn(int theColumn, const std::vector& theData) { int aLength = theData.size(), i; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_local_impl); try { aTable->SetColumnData(theColumn, theData); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); } } else { SALOMEDS::StringSeq_var aColumn = new SALOMEDS::StringSeq(); aColumn->length(aLength); for (i = 0; i < aLength; i++) aColumn[i] = (char*)theData[i].c_str(); SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetColumn(theColumn, aColumn); } } std::vector SALOMEDS_AttributeTableOfString::GetColumn(int theColumn) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetColumnData(theColumn); } else { SALOMEDS::StringSeq_var aColumn = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetColumn(theColumn); aLength = aColumn->length(); for (i = 0; i < aLength; i++) aVector.push_back(aColumn[i].in()); } return aVector; } void SALOMEDS_AttributeTableOfString::PutValue(const std::string& theValue, int theRow, int theColumn) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->PutValue(theValue, theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->PutValue(theValue.c_str(), theRow, theColumn); } } bool SALOMEDS_AttributeTableOfString::HasValue(int theRow, int theColumn) { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->HasValue(theRow, theColumn); } else ret = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->HasValue(theRow, theColumn); return ret; } std::string SALOMEDS_AttributeTableOfString::GetValue(int theRow, int theColumn) { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; try { aValue = dynamic_cast(_local_impl)->GetValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { aValue = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetValue(theRow, theColumn); } return aValue; } void SALOMEDS_AttributeTableOfString::RemoveValue(int theRow, int theColumn) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->RemoveValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->RemoveValue(theRow, theColumn); } } std::vector SALOMEDS_AttributeTableOfString::GetRowSetIndices(int theRow) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = dynamic_cast(_local_impl)->GetSetRowIndices(theRow); } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->GetRowSetIndices(theRow); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } void SALOMEDS_AttributeTableOfString::SetNbColumns(int theNbColumns) { if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetNbColumns(theNbColumns); } else SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SetNbColumns(theNbColumns); } std::vector SALOMEDS_AttributeTableOfString::SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SortRow(theRow, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfString::SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SortColumn(theColumn, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfString::SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortByRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SortByRow(theRow, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } std::vector SALOMEDS_AttributeTableOfString::SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; try { aVector = dynamic_cast(_local_impl)->SortByColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)theOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)thePolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::LongSeq_var aSet = SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SortByColumn(theColumn, (SALOMEDS::AttributeTable::SortOrder)theOrder, (SALOMEDS::AttributeTable::SortPolicy)thePolicy); aLength = aSet->length(); for (i = 0; i < aLength; i++) aVector.push_back(aSet[i]); } return aVector; } void SALOMEDS_AttributeTableOfString::SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } } void SALOMEDS_AttributeTableOfString::SwapRows(int theRow1, int theRow2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapRows(theRow1, theRow2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SwapRows(theRow1, theRow2); } } void SALOMEDS_AttributeTableOfString::SwapColumns(int theColumn1, int theColumn2) { if (_isLocal) { SALOMEDS::Locker lock; try { dynamic_cast(_local_impl)->SwapColumns(theColumn1, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } else { SALOMEDS::AttributeTableOfString::_narrow(_corba_impl)->SwapColumns(theColumn1, theColumn2); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfString.hxx000077500000000000000000000076721177004724000247060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfString.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTableOfString_HeaderFile #define SALOMEDS_AttributeTableOfString_HeaderFile #include "SALOMEDSClient_AttributeTableOfString.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTableOfString.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeTableOfString: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTableOfString { public: SALOMEDS_AttributeTableOfString(SALOMEDSImpl_AttributeTableOfString* theAttr); SALOMEDS_AttributeTableOfString(SALOMEDS::AttributeTableOfString_ptr theAttr); ~SALOMEDS_AttributeTableOfString(); virtual void SetTitle(const std::string& theTitle); virtual std::string GetTitle(); virtual void SetRowTitle(int theIndex, const std::string& theTitle); virtual std::string GetRowTitle(int theIndex); virtual void SetRowTitles(const std::vector& theTitles); virtual std::vector GetRowTitles(); virtual void SetColumnTitle(int theIndex, const std::string& theTitle); virtual std::string GetColumnTitle(int theIndex); virtual void SetColumnTitles(const std::vector& theTitles); virtual std::vector GetColumnTitles(); virtual void SetRowUnit(int theIndex, const std::string& theUnit); virtual std::string GetRowUnit(int theIndex); virtual void SetRowUnits(const std::vector& theUnits); virtual std::vector GetRowUnits(); virtual int GetNbRows(); virtual int GetNbColumns(); virtual void AddRow(const std::vector& theData); virtual void SetRow(int theRow, const std::vector& theData); virtual std::vector GetRow(int theRow); virtual void AddColumn(const std::vector& theData); virtual void SetColumn(int theColumn, const std::vector& theData); virtual std::vector GetColumn(int theColumn); virtual void PutValue(const std::string& theValue, int theRow, int theColumn); virtual bool HasValue(int theRow, int theColumn); virtual std::string GetValue(int theRow, int theColumn); virtual void RemoveValue(int theRow, int theColumn); virtual std::vector GetRowSetIndices(int theRow); virtual void SetNbColumns(int theNbColumns); virtual std::vector SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy); virtual std::vector SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy); virtual void SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2); virtual void SwapRows(int theRow1, int theRow2); virtual void SwapColumns(int theColumn1, int theColumn2); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfString_i.cxx000077500000000000000000000546671177004724000252170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfString_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTableOfString_i.hxx" #include "SALOMEDS.hxx" #include #include #include #include "Utils_ExceptHandlers.hxx" UNEXPECT_CATCH(ATS_IncorrectIndex, SALOMEDS::AttributeTable::IncorrectIndex); UNEXPECT_CATCH(ATS_IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectArgumentLength); void SALOMEDS_AttributeTableOfString_i::SetTitle(const char* theTitle) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); CORBA::String_var aStr = CORBA::string_dup(theTitle); aTable->SetTitle(std::string(aStr)); } char* SALOMEDS_AttributeTableOfString_i::GetTitle() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); CORBA::String_var c_s = CORBA::string_dup(aTable->GetTitle().c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfString_i::SetRowTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetRowTitle(theIndex, std::string(theTitle)); } char* SALOMEDS_AttributeTableOfString_i::GetRowTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetRowTitle(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfString_i::SetRowTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theTitles.length() != aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theTitles.length(); i++) { aTable->SetRowTitle(i + 1, std::string((char*)theTitles[i].in())); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfString_i::GetRowTitles() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aTitles = new SALOMEDS::StringSeq; aTitles->length(aTable->GetNbRows()); for(int i = 0; i < aTitles->length(); i++) aTitles[i] =CORBA::string_dup(aTable->GetRowTitle(i + 1).c_str()); return aTitles._retn(); } void SALOMEDS_AttributeTableOfString_i::SetColumnTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetColumnTitle(theIndex, std::string((char*)theTitle)); } char* SALOMEDS_AttributeTableOfString_i::GetColumnTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetColumnTitle(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfString_i::SetColumnTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theTitles.length() != aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theTitles.length(); i++) { aTable->SetColumnTitle(i + 1, std::string((char*)theTitles[i].in())); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfString_i::GetColumnTitles() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aTitles = new SALOMEDS::StringSeq; aTitles->length(aTable->GetNbColumns()); for(int i = 0; i < aTitles->length(); i++) aTitles[i] = CORBA::string_dup(aTable->GetColumnTitle(i + 1).c_str()); return aTitles._retn(); } //Units support void SALOMEDS_AttributeTableOfString_i::SetRowUnit(CORBA::Long theIndex, const char* theUnit) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); aTable->SetRowUnit(theIndex, std::string((char*)theUnit)); } char* SALOMEDS_AttributeTableOfString_i::GetRowUnit(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch (ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theIndex <= 0 || theIndex > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); CORBA::String_var c_s = CORBA::string_dup(aTable->GetRowUnit(theIndex).c_str()); return c_s._retn(); } void SALOMEDS_AttributeTableOfString_i::SetRowUnits(const SALOMEDS::StringSeq& theUnits) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theUnits.length() != aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectArgumentLength(); for (int i = 0; i < theUnits.length(); i++) { aTable->SetRowUnit(i + 1, std::string((char*)theUnits[i].in())); } } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfString_i::GetRowUnits() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); SALOMEDS::StringSeq_var aUnits = new SALOMEDS::StringSeq; aUnits->length(aTable->GetNbRows()); for(int i = 0; i < aUnits->length(); i++) aUnits[i] = CORBA::string_dup(aTable->GetRowUnit(i + 1).c_str()); return aUnits._retn(); } CORBA::Long SALOMEDS_AttributeTableOfString_i::GetNbRows() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetNbRows(); } CORBA::Long SALOMEDS_AttributeTableOfString_i::GetNbColumns() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->GetNbColumns(); } void SALOMEDS_AttributeTableOfString_i::AddRow(const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); std::vector aRow; for (int i = 0; i < theData.length(); i++) aRow.push_back(std::string(CORBA::string_dup(theData[i]))); aTable->SetRowData(aTable->GetNbRows() + 1, aRow); } void SALOMEDS_AttributeTableOfString_i::SetRow(CORBA::Long theRow, const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); std::vector aRow; for (int i = 0; i < theData.length(); i++) aRow.push_back(std::string(CORBA::string_dup(theData[i].in()))); aTable->SetRowData(theRow, aRow); } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfString_i::GetRow(CORBA::Long theRow) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow <= 0 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::StringSeq_var CorbaSeq = new SALOMEDS::StringSeq; std::vector aRow = aTable->GetRowData(theRow); CorbaSeq->length(aRow.size()); for (int i = 0; i < aRow.size(); i++) { CorbaSeq[i] = CORBA::string_dup(aRow[i].c_str()); } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfString_i::AddColumn(const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); std::vector aColumn; for (int i = 0; i < theData.length(); i++) aColumn.push_back(std::string(CORBA::string_dup(theData[i]))); aTable->SetColumnData(aTable->GetNbColumns() + 1, aColumn); } void SALOMEDS_AttributeTableOfString_i::SetColumn(CORBA::Long theColumn, const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectArgumentLength); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); std::vector aColumn; for (int i = 0; i < theData.length(); i++) aColumn.push_back(std::string(CORBA::string_dup(theData[i]))); aTable->SetColumnData(theColumn, aColumn); } SALOMEDS::StringSeq* SALOMEDS_AttributeTableOfString_i::GetColumn(CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theColumn <= 0 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::StringSeq_var CorbaSeq = new SALOMEDS::StringSeq; std::vector aColumn = aTable->GetColumnData(theColumn); CorbaSeq->length(aColumn.size()); for (int i = 0; i < aColumn.size(); i++) { CorbaSeq[i] = CORBA::string_dup(aColumn[i].c_str()); } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfString_i::PutValue(const char* theValue, CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); char* aValue = CORBA::string_dup(theValue); aTable->PutValue(aValue, theRow, theColumn); } CORBA::Boolean SALOMEDS_AttributeTableOfString_i::HasValue(CORBA::Long theRow, CORBA::Long theColumn) { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasValue(theRow, theColumn); } char* SALOMEDS_AttributeTableOfString_i::GetValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::string aValue; try { aValue = aTable->GetValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } return CORBA::string_dup(aValue.c_str()); } void SALOMEDS_AttributeTableOfString_i::RemoveValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->RemoveValue(theRow, theColumn); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfString_i::GetRowSetIndices(CORBA::Long theRow) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if(theRow <= 0 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; std::vector aSeq = aTable->GetSetRowIndices(theRow); CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfString_i::SetNbColumns(CORBA::Long theNbColumns) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); aTable->SetNbColumns(theNbColumns); } bool SALOMEDS_AttributeTableOfString_i::ReadFromFile(const SALOMEDS::TMPFile& theStream) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); std::string aStream((char*)&theStream[0], theStream.length()); aTable->Load(aStream); return true; } SALOMEDS::TMPFile* SALOMEDS_AttributeTableOfString_i::SaveToFile() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); std::string aString = aTable->Save(); char* aBuffer = (char*)CORBA::string_dup(aString.c_str()); int aBufferSize = strlen((char*)aBuffer); CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer; SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1); return aStreamFile._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfString_i::SortRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfString_i::SortColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfString_i::SortByRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow < 1 || theRow > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortByRow(theRow, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } SALOMEDS::LongSeq* SALOMEDS_AttributeTableOfString_i::SortByColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theColumn < 1 || theColumn > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); std::vector aSeq; SALOMEDS::LongSeq_var CorbaSeq = new SALOMEDS::LongSeq; try { aSeq = aTable->SortByColumn(theColumn, (SALOMEDSImpl_AttributeTable::SortOrder)sortOrder, (SALOMEDSImpl_AttributeTable::SortPolicy)sortPolicy); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } CorbaSeq->length(aSeq.size()); for (int i = 0; i < aSeq.size(); i++) { CorbaSeq[i] = aSeq[i]; } return CorbaSeq._retn(); } void SALOMEDS_AttributeTableOfString_i::SwapCells(CORBA::Long theRow1, CORBA::Long theColumn1, CORBA::Long theRow2, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow1 < 1 || theRow1 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn1 < 1 || theColumn1 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theRow2 < 1 || theRow2 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn2 < 1 || theColumn2 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapCells(theRow1, theColumn1, theRow2, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } void SALOMEDS_AttributeTableOfString_i::SwapRows(CORBA::Long theRow1, CORBA::Long theRow2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theRow1 < 1 || theRow1 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theRow2 < 1 || theRow2 > aTable->GetNbRows()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapRows(theRow1, theRow2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } void SALOMEDS_AttributeTableOfString_i::SwapColumns(CORBA::Long theColumn1, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex) { SALOMEDS::Locker lock; Unexpect aCatch(ATS_IncorrectIndex); CheckLocked(); SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(_impl); if (theColumn1 < 1 || theColumn1 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); if (theColumn2 < 1 || theColumn2 > aTable->GetNbColumns()) throw SALOMEDS::AttributeTable::IncorrectIndex(); try { aTable->SwapColumns(theColumn1, theColumn2); } catch(...) { throw SALOMEDS::AttributeTable::IncorrectIndex(); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTableOfString_i.hxx000077500000000000000000000137011177004724000252040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTableOfString_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTableOfString_i_HeaderFile #define SALOMEDS_AttributeTableOfString_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTableOfString.hxx" class SALOMEDS_AttributeTableOfString_i: public virtual POA_SALOMEDS::AttributeTableOfString, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTableOfString_i(SALOMEDSImpl_AttributeTableOfString* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTableOfString_i() {}; virtual void SetTitle(const char* theTitle); virtual char* GetTitle(); virtual void SetRowTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetRowTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetRowTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetRowTitles(); virtual void SetColumnTitle(CORBA::Long theIndex, const char* theTitle) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetColumnTitle(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetColumnTitles(const SALOMEDS::StringSeq& theTitles) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetColumnTitles(); virtual void SetRowUnit(CORBA::Long theIndex, const char* theUnit) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual char* GetRowUnit(CORBA::Long theIndex) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SetRowUnits(const SALOMEDS::StringSeq& theUnits) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual SALOMEDS::StringSeq* GetRowUnits(); virtual CORBA::Long GetNbRows(); virtual CORBA::Long GetNbColumns(); virtual void AddRow(const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual void SetRow(CORBA::Long theRow, const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::StringSeq* GetRow(CORBA::Long theRow) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void AddColumn(const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength); virtual void SetColumn(CORBA::Long theColumn, const SALOMEDS::StringSeq& theData) throw (SALOMEDS::AttributeTable::IncorrectArgumentLength, SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::StringSeq* GetColumn(CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void PutValue(const char* theValue, CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual CORBA::Boolean HasValue(CORBA::Long theRow, CORBA::Long theColumn); virtual char* GetValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void RemoveValue(CORBA::Long theRow, CORBA::Long theColumn) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* GetRowSetIndices(CORBA::Long theRow); virtual void SetNbColumns(CORBA::Long theNbColumns); virtual SALOMEDS::LongSeq* SortRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortByRow(CORBA::Long theRow, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual SALOMEDS::LongSeq* SortByColumn(CORBA::Long theColumn, SALOMEDS::AttributeTable::SortOrder sortOrder, SALOMEDS::AttributeTable::SortPolicy sortPolicy) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapCells(CORBA::Long theRow1, CORBA::Long theColumn1, CORBA::Long theRow2, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapRows(CORBA::Long theRow1, CORBA::Long theRow2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual void SwapColumns(CORBA::Long theColumn1, CORBA::Long theColumn2) throw (SALOMEDS::AttributeTable::IncorrectIndex); virtual bool ReadFromFile(const SALOMEDS::TMPFile& theStream); virtual SALOMEDS::TMPFile* SaveToFile(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTarget.cxx000077500000000000000000000057451177004724000234230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTarget.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTarget.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDS_SObject.hxx" SALOMEDS_AttributeTarget::SALOMEDS_AttributeTarget(SALOMEDSImpl_AttributeTarget* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTarget::SALOMEDS_AttributeTarget(SALOMEDS::AttributeTarget_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTarget::~SALOMEDS_AttributeTarget() {} void SALOMEDS_AttributeTarget::Add(const _PTR(SObject)& theObject) { SALOMEDS_SObject* aSO = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Add(*(aSO->GetLocalImpl())); } else SALOMEDS::AttributeTarget::_narrow(_corba_impl)->Add(aSO->GetCORBAImpl()); } std::vector<_PTR(SObject)> SALOMEDS_AttributeTarget::Get() { std::vector<_PTR(SObject)> aVector; int aLength, i; SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = dynamic_cast(_local_impl)->Get(); aLength = aSeq.size(); for (i = 0; i < aLength; i++) { aSO = new SALOMEDS_SObject(aSeq[i]); aVector.push_back(_PTR(SObject)(aSO)); } } else { SALOMEDS::Study::ListOfSObject_var aSeq = SALOMEDS::AttributeTarget::_narrow(_corba_impl)->Get(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) { aSO = new SALOMEDS_SObject(aSeq[i].in()); aVector.push_back(_PTR(SObject)(aSO)); } } return aVector; } void SALOMEDS_AttributeTarget::Remove(const _PTR(SObject)& theObject) { SALOMEDS_SObject* aSO = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Remove(*(aSO->GetLocalImpl())); } else SALOMEDS::AttributeTarget::_narrow(_corba_impl)->Remove(aSO->GetCORBAImpl()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTarget.hxx000077500000000000000000000035071177004724000234220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTarget.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTarget_HeaderFile #define SALOMEDS_AttributeTarget_HeaderFile #include #include "SALOMEDSClient.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTarget.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeTarget: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTarget { public: SALOMEDS_AttributeTarget(SALOMEDSImpl_AttributeTarget* theAttr); SALOMEDS_AttributeTarget(SALOMEDS::AttributeTarget_ptr theAttr); ~SALOMEDS_AttributeTarget(); virtual void Add(const _PTR(SObject)& theObject); virtual std::vector<_PTR(SObject)> Get(); virtual void Remove(const _PTR(SObject)& theObject); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTarget_i.cxx000077500000000000000000000044341177004724000237250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTarget_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTarget_i.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDS.hxx" #include "DF_Label.hxx" #include void SALOMEDS_AttributeTarget_i::Add(SALOMEDS::SObject_ptr anObject) { SALOMEDS::Locker lock; DF_Label aLabel = DF_Label::Label(_impl->Label(), anObject->GetID(), 1); dynamic_cast(_impl)->Add(SALOMEDSImpl_Study::SObject(aLabel)); } SALOMEDS::Study::ListOfSObject* SALOMEDS_AttributeTarget_i::Get() { SALOMEDS::Locker lock; std::vector aSeq = dynamic_cast(_impl)->Get(); SALOMEDS::Study::ListOfSObject_var aSList = new SALOMEDS::Study::ListOfSObject; int aLength = aSeq.size(), i; if (aLength == 0) return aSList._retn(); aSList->length(aLength); for(i=0; i Label(), anObject->GetID(), 1); dynamic_cast(_impl)->Remove(SALOMEDSImpl_Study::SObject(aLabel)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTarget_i.hxx000077500000000000000000000034771177004724000237400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTarget_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTarget_i_HeaderFile #define SALOMEDS_AttributeTarget_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTarget.hxx" class SALOMEDS_AttributeTarget_i: public virtual POA_SALOMEDS::AttributeTarget, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTarget_i(SALOMEDSImpl_AttributeTarget* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTarget_i() {}; virtual void Add(SALOMEDS::SObject_ptr anObject) ; virtual SALOMEDS::Study::ListOfSObject* Get(); virtual void Remove(SALOMEDS::SObject_ptr anObject); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextColor.cxx000077500000000000000000000047731177004724000241200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextColor.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTextColor.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeTextColor::SALOMEDS_AttributeTextColor(SALOMEDSImpl_AttributeTextColor* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTextColor::SALOMEDS_AttributeTextColor(SALOMEDS::AttributeTextColor_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTextColor::~SALOMEDS_AttributeTextColor() {} STextColor SALOMEDS_AttributeTextColor::TextColor() { STextColor aColor; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = dynamic_cast(_local_impl)->TextColor(); aColor.R = aSeq[0]; aColor.G = aSeq[1]; aColor.B = aSeq[2]; } else { SALOMEDS::Color anImplColor = SALOMEDS::AttributeTextColor::_narrow(_corba_impl)->TextColor(); aColor.R = anImplColor.R; aColor.G = anImplColor.G; aColor.B = anImplColor.B; } return aColor; } void SALOMEDS_AttributeTextColor::SetTextColor(STextColor value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; std::vector aSeq; aSeq.push_back( value.R ); aSeq.push_back( value.G ); aSeq.push_back( value.B ); dynamic_cast(_local_impl)->ChangeArray(aSeq); } else { SALOMEDS::Color aColor; aColor.R = value.R; aColor.G = value.G; aColor.B = value.B; SALOMEDS::AttributeTextColor::_narrow(_corba_impl)->SetTextColor(aColor); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextColor.hxx000077500000000000000000000035371177004724000241220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextColor.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTextColor_HeaderFile #define SALOMEDS_AttributeTextColor_HeaderFile #include "SALOMEDSClient_AttributeTextColor.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTextColor.hxx" #include "SALOMEDSClient_definitions.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeTextColor: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTextColor { public: SALOMEDS_AttributeTextColor(SALOMEDSImpl_AttributeTextColor* theAttr); SALOMEDS_AttributeTextColor(SALOMEDS::AttributeTextColor_ptr theAttr); ~SALOMEDS_AttributeTextColor(); virtual STextColor TextColor(); virtual void SetTextColor(STextColor value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextColor_i.cxx000077500000000000000000000036011177004724000244150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextColor_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTextColor_i.hxx" #include "SALOMEDS.hxx" #include SALOMEDS::Color SALOMEDS_AttributeTextColor_i::TextColor() { SALOMEDS::Locker lock; SALOMEDS::Color TextColor; std::vector anArray = dynamic_cast(_impl)->TextColor(); if (anArray.size()!=3) { TextColor.R = 0; TextColor.G = 0; TextColor.B = 0; } else { TextColor.R = anArray[0]; TextColor.G = anArray[1]; TextColor.B = anArray[2]; } return TextColor; } void SALOMEDS_AttributeTextColor_i::SetTextColor(const SALOMEDS::Color& value) { SALOMEDS::Locker lock; CheckLocked(); std::vector anArray; anArray.push_back(value.R); anArray.push_back(value.G); anArray.push_back(value.B); dynamic_cast(_impl)->ChangeArray(anArray); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextColor_i.hxx000077500000000000000000000036461177004724000244330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextColor_i.hxx // Author : Sergey RUIN // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_AttributeTextColor_i.hxx,v 1.9.2.1.10.2.12.1 2012-04-12 14:05:21 vsr Exp $ // #ifndef SALOMEDS_AttributeTextColor_i_HeaderFile #define SALOMEDS_AttributeTextColor_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTextColor.hxx" class SALOMEDS_AttributeTextColor_i: public virtual POA_SALOMEDS::AttributeTextColor, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTextColor_i(SALOMEDSImpl_AttributeTextColor* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTextColor_i() {}; SALOMEDS::Color TextColor(); void SetTextColor(const SALOMEDS::Color& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextHighlightColor.cxx000077500000000000000000000053361177004724000257440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextHighlightColor.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTextHighlightColor.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_AttributeTextHighlightColor::SALOMEDS_AttributeTextHighlightColor (SALOMEDSImpl_AttributeTextHighlightColor* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTextHighlightColor::SALOMEDS_AttributeTextHighlightColor (SALOMEDS::AttributeTextHighlightColor_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTextHighlightColor::~SALOMEDS_AttributeTextHighlightColor() {} STextColor SALOMEDS_AttributeTextHighlightColor::TextHighlightColor() { STextColor aColor; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = dynamic_cast(_local_impl)->TextHighlightColor(); aColor.R = aSeq[0]; aColor.G = aSeq[1]; aColor.B = aSeq[2]; } else { SALOMEDS::Color anImplColor = SALOMEDS::AttributeTextHighlightColor::_narrow(_corba_impl)->TextHighlightColor(); aColor.R = anImplColor.R; aColor.G = anImplColor.G; aColor.B = anImplColor.B; } return aColor; } void SALOMEDS_AttributeTextHighlightColor::SetTextHighlightColor(STextColor value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; std::vector aSeq; aSeq.push_back(value.R); aSeq.push_back(value.G); aSeq.push_back(value.B); dynamic_cast(_local_impl)->ChangeArray(aSeq); } else { SALOMEDS::Color aColor; aColor.R = value.R; aColor.G = value.G; aColor.B = value.B; SALOMEDS::AttributeTextHighlightColor::_narrow(_corba_impl)->SetTextHighlightColor(aColor); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextHighlightColor.hxx000077500000000000000000000037351177004724000257520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextHighlightColor.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTextHighlightColor_HeaderFile #define SALOMEDS_AttributeTextHighlightColor_HeaderFile #include "SALOMEDSClient_AttributeTextHighlightColor.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx" #include "SALOMEDSClient_definitions.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include class SALOMEDS_AttributeTextHighlightColor: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTextHighlightColor { public: SALOMEDS_AttributeTextHighlightColor(SALOMEDSImpl_AttributeTextHighlightColor* theAttr); SALOMEDS_AttributeTextHighlightColor(SALOMEDS::AttributeTextHighlightColor_ptr theAttr); ~SALOMEDS_AttributeTextHighlightColor(); virtual STextColor TextHighlightColor(); virtual void SetTextHighlightColor(STextColor value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextHighlightColor_i.cxx000077500000000000000000000040301177004724000262420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextHighlightColor_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTextHighlightColor_i.hxx" #include "SALOMEDS.hxx" #include SALOMEDS::Color SALOMEDS_AttributeTextHighlightColor_i::TextHighlightColor() { SALOMEDS::Locker lock; SALOMEDS::Color TextHighlightColor; std::vector anArray = dynamic_cast(_impl)->TextHighlightColor(); if (anArray.size()!=3) { TextHighlightColor.R = 0; TextHighlightColor.G = 0; TextHighlightColor.B = 0; } else { TextHighlightColor.R = anArray[0]; TextHighlightColor.G = anArray[1]; TextHighlightColor.B = anArray[2]; } return TextHighlightColor; } void SALOMEDS_AttributeTextHighlightColor_i::SetTextHighlightColor(const SALOMEDS::Color& value) { SALOMEDS::Locker lock; CheckLocked(); std::vector anArray; anArray.push_back(value.R); anArray.push_back(value.G); anArray.push_back(value.B); dynamic_cast(_impl)->ChangeArray(anArray); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTextHighlightColor_i.hxx000077500000000000000000000036001177004724000262510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTextHighlightColor_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTextHighlightColor_i_HeaderFile #define SALOMEDS_AttributeTextHighlightColor_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx" class SALOMEDS_AttributeTextHighlightColor_i: public virtual POA_SALOMEDS::AttributeTextHighlightColor, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTextHighlightColor_i(SALOMEDSImpl_AttributeTextHighlightColor* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTextHighlightColor_i() {}; SALOMEDS::Color TextHighlightColor(); void SetTextHighlightColor(const SALOMEDS::Color& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTreeNode.cxx000077500000000000000000000356111177004724000236750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTreeNode.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTreeNode.hxx" #include "SALOMEDS.hxx" #include #include #include "SALOMEDSImpl_AttributeTreeNode.hxx" #include "SALOMEDS_AttributeTreeNode.hxx" SALOMEDS_AttributeTreeNode::SALOMEDS_AttributeTreeNode(SALOMEDSImpl_AttributeTreeNode* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTreeNode::SALOMEDS_AttributeTreeNode(SALOMEDS::AttributeTreeNode_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeTreeNode::~SALOMEDS_AttributeTreeNode() {} void SALOMEDS_AttributeTreeNode::SetFather(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *aFather; aNode = dynamic_cast(_local_impl); aFather = dynamic_cast(aTN->_local_impl); aNode->SetFather(aFather); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var aFather = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->SetFather(aFather); } } bool SALOMEDS_AttributeTreeNode::HasFather() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); ret = aNode->HasFather(); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); ret = aNode->HasFather(); } return ret; } _PTR(AttributeTreeNode) SALOMEDS_AttributeTreeNode::GetFather() { SALOMEDSClient_AttributeTreeNode* aTN = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetFather()); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetFather()); } return _PTR(AttributeTreeNode)(aTN); } void SALOMEDS_AttributeTreeNode::SetPrevious(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *aPrev; aNode = dynamic_cast(_local_impl); aPrev = dynamic_cast(aTN->_local_impl); aNode->SetPrevious(aPrev); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var aPrev = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->SetPrevious(aPrev); } } bool SALOMEDS_AttributeTreeNode::HasPrevious() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); ret = aNode->HasPrevious(); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); ret = aNode->HasPrevious(); } return ret; } _PTR(AttributeTreeNode) SALOMEDS_AttributeTreeNode::GetPrevious() { SALOMEDSClient_AttributeTreeNode* aTN = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetPrevious()); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetPrevious()); } return _PTR(AttributeTreeNode)(aTN); } void SALOMEDS_AttributeTreeNode::SetNext(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *aNext; aNode = dynamic_cast(_local_impl); aNext = dynamic_cast(aTN->_local_impl); aNode->SetNext(aNext); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var aNext = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->SetNext(aNext); } } bool SALOMEDS_AttributeTreeNode::HasNext() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); ret = aNode->HasNext(); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); ret = aNode->HasNext(); } return ret; } _PTR(AttributeTreeNode) SALOMEDS_AttributeTreeNode::GetNext() { SALOMEDSClient_AttributeTreeNode* aTN = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetNext()); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetNext()); } return _PTR(AttributeTreeNode)(aTN); } void SALOMEDS_AttributeTreeNode::SetFirst(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *aFirst; aNode = dynamic_cast(_local_impl); aFirst = dynamic_cast(aTN->_local_impl); aNode->SetFirst(aFirst); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var aFirst = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->SetFirst(aFirst); } } bool SALOMEDS_AttributeTreeNode::HasFirst() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); ret = aNode->HasFirst(); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); ret = aNode->HasFirst(); } return ret; } _PTR(AttributeTreeNode) SALOMEDS_AttributeTreeNode::GetFirst() { SALOMEDSClient_AttributeTreeNode* aTN = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetFirst()); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); aTN = new SALOMEDS_AttributeTreeNode(aNode->GetFirst()); } return _PTR(AttributeTreeNode)(aTN); } void SALOMEDS_AttributeTreeNode::SetTreeID(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); aNode->SetTreeID(value); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); aNode->SetTreeID(value.c_str()); } } std::string SALOMEDS_AttributeTreeNode::GetTreeID() { std::string aGUID; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_local_impl); aGUID = aNode->GetTreeID(); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); aGUID = aNode->GetTreeID(); } return aGUID; } void SALOMEDS_AttributeTreeNode::Append(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); aNode->Append(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->Append(anOther); } } void SALOMEDS_AttributeTreeNode::Prepend(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); aNode->Prepend(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->Prepend(anOther); } } void SALOMEDS_AttributeTreeNode::InsertBefore(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); aNode->InsertBefore(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->InsertBefore(anOther); } } void SALOMEDS_AttributeTreeNode::InsertAfter(const _PTR(AttributeTreeNode)& value) { SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); aNode->InsertAfter(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); aNode->InsertAfter(anOther); } } void SALOMEDS_AttributeTreeNode::Remove() { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->Remove(); } else SALOMEDS::AttributeTreeNode::_narrow(_corba_impl)->Remove(); } int SALOMEDS_AttributeTreeNode::Depth() { int aDepth; if (_isLocal) { SALOMEDS::Locker lock; aDepth = dynamic_cast(_local_impl)->Depth(); } else aDepth = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl)->Depth(); return aDepth; } bool SALOMEDS_AttributeTreeNode::IsRoot() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = dynamic_cast(_local_impl)->IsRoot(); } else ret = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl)->IsRoot(); return ret; } bool SALOMEDS_AttributeTreeNode::IsDescendant(const _PTR(AttributeTreeNode)& value) { bool ret; SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); ret = aNode->IsDescendant(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); ret = aNode->IsDescendant(anOther); } return ret; } bool SALOMEDS_AttributeTreeNode::IsFather(const _PTR(AttributeTreeNode)& value) { bool ret; SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); ret = aNode->IsFather(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); ret = aNode->IsFather(anOther); } return ret; } bool SALOMEDS_AttributeTreeNode::IsChild(const _PTR(AttributeTreeNode)& value) { bool ret; SALOMEDS_AttributeTreeNode* aTN = dynamic_cast(value.get()); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode *aNode, *anOther; aNode = dynamic_cast(_local_impl); anOther = dynamic_cast(aTN->_local_impl); ret = aNode->IsChild(anOther); } else { SALOMEDS::AttributeTreeNode_var aNode = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl); SALOMEDS::AttributeTreeNode_var anOther = SALOMEDS::AttributeTreeNode::_narrow(aTN->_corba_impl); ret = aNode->IsChild(anOther); } return ret; } std::string SALOMEDS_AttributeTreeNode::Label() { std::string aLabel; if (_isLocal) { SALOMEDS::Locker lock; aLabel = _local_impl->Label().Entry(); } else aLabel = SALOMEDS::AttributeTreeNode::_narrow(_corba_impl)->Label(); return aLabel; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTreeNode.hxx000077500000000000000000000056241177004724000237030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTreeNode.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTreeNode_HeaderFile #define SALOMEDS_AttributeTreeNode_HeaderFile #include "SALOMEDSClient_AttributeTreeNode.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeTreeNode: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeTreeNode { public: SALOMEDS_AttributeTreeNode(SALOMEDSImpl_AttributeTreeNode* theAttr); SALOMEDS_AttributeTreeNode(SALOMEDS::AttributeTreeNode_ptr theAttr); ~SALOMEDS_AttributeTreeNode(); virtual void SetFather(const _PTR(AttributeTreeNode)& value); virtual bool HasFather(); virtual _PTR(AttributeTreeNode) GetFather(); virtual void SetPrevious(const _PTR(AttributeTreeNode)& value); virtual bool HasPrevious(); virtual _PTR(AttributeTreeNode) GetPrevious(); virtual void SetNext(const _PTR(AttributeTreeNode)& value); virtual bool HasNext(); virtual _PTR(AttributeTreeNode) GetNext(); virtual void SetFirst(const _PTR(AttributeTreeNode)& value); virtual bool HasFirst(); virtual _PTR(AttributeTreeNode) GetFirst(); virtual void SetTreeID(const std::string& value); virtual std::string GetTreeID(); virtual void Append(const _PTR(AttributeTreeNode)& value); virtual void Prepend(const _PTR(AttributeTreeNode)& value); virtual void InsertBefore(const _PTR(AttributeTreeNode)& value); virtual void InsertAfter(const _PTR(AttributeTreeNode)& value); virtual void Remove(); virtual int Depth(); virtual bool IsRoot(); virtual bool IsDescendant(const _PTR(AttributeTreeNode)& value); virtual bool IsFather(const _PTR(AttributeTreeNode)& value); virtual bool IsChild(const _PTR(AttributeTreeNode)& value); virtual std::string Label(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTreeNode_i.cxx000077500000000000000000000202531177004724000242010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTreeNode_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeTreeNode_i.hxx" #include "utilities.h" #include "SALOMEDS.hxx" static SALOMEDSImpl_AttributeTreeNode* GetNode(SALOMEDS::AttributeTreeNode_ptr value, SALOMEDSImpl_AttributeTreeNode* aNode) { SALOMEDSImpl_AttributeTreeNode* aResult = NULL; DF_Label aLabel = DF_Label::Label(aNode->Label(), value->Label()); if (aLabel.IsNull()) { MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label") MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label") return aResult; } if (!(aResult=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(aNode->ID()))) { MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute") MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute") } return aResult; } void SALOMEDS_AttributeTreeNode_i::SetFather(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->SetFather(GetNode(value, aNode)); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFather() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasFather(); } SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFather() { SALOMEDS::Locker lock; SALOMEDS_AttributeTreeNode_i* aFather; aFather = new SALOMEDS_AttributeTreeNode_i(dynamic_cast(_impl)->GetFather(), _orb); #ifndef WIN32 return aFather->POA_SALOMEDS::AttributeTreeNode::_this(); #else return aFather->AttributeTreeNode::_this(); #endif } void SALOMEDS_AttributeTreeNode_i::SetPrevious(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->SetPrevious(GetNode(value, aNode)); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasPrevious() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasPrevious(); } SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetPrevious() { SALOMEDS::Locker lock; SALOMEDS_AttributeTreeNode_i* aPrevious; aPrevious=new SALOMEDS_AttributeTreeNode_i(dynamic_cast(_impl)->GetPrevious(), _orb); #ifndef WIN32 return aPrevious->POA_SALOMEDS::AttributeTreeNode::_this(); #else return aPrevious->AttributeTreeNode::_this(); #endif } void SALOMEDS_AttributeTreeNode_i::SetNext(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->SetNext(GetNode(value, aNode)); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasNext() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasNext(); } SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetNext() { SALOMEDS::Locker lock; SALOMEDS_AttributeTreeNode_i* aNext; aNext = new SALOMEDS_AttributeTreeNode_i(dynamic_cast(_impl)->GetNext(), _orb); #ifndef WIN32 return aNext->POA_SALOMEDS::AttributeTreeNode::_this(); #else return aNext->AttributeTreeNode::_this(); #endif } void SALOMEDS_AttributeTreeNode_i::SetFirst(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->SetFirst(GetNode(value, aNode)); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFirst() { SALOMEDS::Locker lock; return dynamic_cast(_impl)->HasFirst(); } SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFirst() { SALOMEDS::Locker lock; SALOMEDS_AttributeTreeNode_i* aFirst; aFirst = new SALOMEDS_AttributeTreeNode_i(dynamic_cast(_impl)->GetFirst(), _orb); #ifndef WIN32 return aFirst->POA_SALOMEDS::AttributeTreeNode::_this(); #else return aFirst->AttributeTreeNode::_this(); #endif } void SALOMEDS_AttributeTreeNode_i::SetTreeID(const char* value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->SetTreeID(value); } char* SALOMEDS_AttributeTreeNode_i::GetTreeID() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); return CORBA::String_var(CORBA::string_dup(aNode->ID().c_str()))._retn(); } void SALOMEDS_AttributeTreeNode_i::Append(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->Append(GetNode(value, aNode)); } void SALOMEDS_AttributeTreeNode_i::Prepend(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->Prepend(GetNode(value, aNode)); } void SALOMEDS_AttributeTreeNode_i::InsertBefore(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->InsertBefore(GetNode(value, aNode)); } void SALOMEDS_AttributeTreeNode_i::InsertAfter(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->InsertAfter(GetNode(value, aNode)); } void SALOMEDS_AttributeTreeNode_i::Remove() { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); aNode->Remove(); } CORBA::Long SALOMEDS_AttributeTreeNode_i::Depth() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); return aNode->Depth(); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsRoot() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); return aNode->IsRoot(); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsDescendant(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); return aNode->IsDescendant(GetNode(value, aNode)); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsFather(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); return aNode->IsFather(GetNode(value, aNode)); } CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsChild(SALOMEDS::AttributeTreeNode_ptr value) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast(_impl); return aNode->IsChild(GetNode(value, aNode)); } char* SALOMEDS_AttributeTreeNode_i::Label() { SALOMEDS::Locker lock; return CORBA::String_var(CORBA::string_dup(_impl->Label().Entry().c_str()))._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeTreeNode_i.hxx000077500000000000000000000054101177004724000242040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeTreeNode_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeTreeNode_i_HeaderFile #define SALOMEDS_AttributeTreeNode_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" class SALOMEDS_AttributeTreeNode_i: public virtual POA_SALOMEDS::AttributeTreeNode, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeTreeNode_i(SALOMEDSImpl_AttributeTreeNode* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeTreeNode_i() {}; void SetFather(SALOMEDS::AttributeTreeNode_ptr value); CORBA::Boolean HasFather(); SALOMEDS::AttributeTreeNode_ptr GetFather(); void SetPrevious(SALOMEDS::AttributeTreeNode_ptr value); CORBA::Boolean HasPrevious(); SALOMEDS::AttributeTreeNode_ptr GetPrevious(); void SetNext(SALOMEDS::AttributeTreeNode_ptr value); CORBA::Boolean HasNext(); SALOMEDS::AttributeTreeNode_ptr GetNext(); void SetFirst(SALOMEDS::AttributeTreeNode_ptr value); CORBA::Boolean HasFirst(); SALOMEDS::AttributeTreeNode_ptr GetFirst(); void SetTreeID(const char* value); char* GetTreeID(); void Append(SALOMEDS::AttributeTreeNode_ptr value); void Prepend(SALOMEDS::AttributeTreeNode_ptr value); void InsertBefore(SALOMEDS::AttributeTreeNode_ptr value); void InsertAfter(SALOMEDS::AttributeTreeNode_ptr value); void Remove(); CORBA::Long Depth(); CORBA::Boolean IsRoot(); CORBA::Boolean IsDescendant(SALOMEDS::AttributeTreeNode_ptr value); CORBA::Boolean IsFather(SALOMEDS::AttributeTreeNode_ptr value); CORBA::Boolean IsChild(SALOMEDS::AttributeTreeNode_ptr value); char* Label(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeUserID.cxx000077500000000000000000000040631177004724000233200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeUserID.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeUserID.hxx" #include "SALOMEDS.hxx" #include #include SALOMEDS_AttributeUserID::SALOMEDS_AttributeUserID(SALOMEDSImpl_AttributeUserID* theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeUserID::SALOMEDS_AttributeUserID(SALOMEDS::AttributeUserID_ptr theAttr) :SALOMEDS_GenericAttribute(theAttr) {} SALOMEDS_AttributeUserID::~SALOMEDS_AttributeUserID() {} std::string SALOMEDS_AttributeUserID::Value() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; // char guid[40]; aValue = dynamic_cast(_local_impl)->Value(); } else aValue = SALOMEDS::AttributeUserID::_narrow(_corba_impl)->Value(); return aValue; } void SALOMEDS_AttributeUserID::SetValue(const std::string& value) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; dynamic_cast(_local_impl)->SetValue(value); } else SALOMEDS::AttributeUserID::_narrow(_corba_impl)->SetValue(value.c_str()); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeUserID.hxx000077500000000000000000000033761177004724000233330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeUserID.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeUserID_HeaderFile #define SALOMEDS_AttributeUserID_HeaderFile #include "SALOMEDSClient_AttributeUserID.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeUserID.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) class SALOMEDS_AttributeUserID: public SALOMEDS_GenericAttribute, public SALOMEDSClient_AttributeUserID { public: SALOMEDS_AttributeUserID(SALOMEDSImpl_AttributeUserID* theAttr); SALOMEDS_AttributeUserID(SALOMEDS::AttributeUserID_ptr theAttr); ~SALOMEDS_AttributeUserID(); virtual std::string Value(); virtual void SetValue(const std::string& value); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeUserID_i.cxx000077500000000000000000000030531177004724000236260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeName_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_AttributeUserID_i.hxx" #include "SALOMEDS.hxx" char* SALOMEDS_AttributeUserID_i::Value() { SALOMEDS::Locker lock; CORBA::String_var c_s = CORBA::string_dup(dynamic_cast(_impl)->ID().c_str()); return c_s._retn(); } void SALOMEDS_AttributeUserID_i::SetValue(const char* value) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var Str = CORBA::string_dup(value); dynamic_cast(_impl)->SetValue(std::string(Str)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_AttributeUserID_i.hxx000077500000000000000000000034711177004724000236370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_AttributeUserID_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDS_AttributeUserID_i_HeaderFile #define SALOMEDS_AttributeUserID_i_HeaderFile // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDSImpl_AttributeUserID.hxx" class SALOMEDS_AttributeUserID_i: public virtual POA_SALOMEDS::AttributeUserID, public virtual SALOMEDS_GenericAttribute_i { public: SALOMEDS_AttributeUserID_i(SALOMEDSImpl_AttributeUserID* theAttr, CORBA::ORB_ptr orb) :SALOMEDS_GenericAttribute_i(theAttr, orb) {}; ~SALOMEDS_AttributeUserID_i() {}; char* Value(); void SetValue(const char* value); static std::string DefaultID() { return SALOMEDSImpl_AttributeUserID::DefaultID(); } }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Attributes.hxx000077500000000000000000000132641177004724000224370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Attributes.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_ATTRIBUTES__H__ #define __SALOMEDS_ATTRIBUTES__H__ #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeName.hxx" #include "SALOMEDSImpl_AttributeComment.hxx" #include "SALOMEDSImpl_AttributeInteger.hxx" #include "SALOMEDSImpl_AttributeReal.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" #include "SALOMEDSImpl_AttributeUserID.hxx" #include "SALOMEDSImpl_AttributeReference.hxx" #include "SALOMEDSImpl_AttributeSequenceOfReal.hxx" #include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" #include "SALOMEDSImpl_AttributePersistentRef.hxx" #include "SALOMEDSImpl_AttributeDrawable.hxx" #include "SALOMEDSImpl_AttributeSelectable.hxx" #include "SALOMEDSImpl_AttributeExpandable.hxx" #include "SALOMEDSImpl_AttributeOpened.hxx" #include "SALOMEDSImpl_AttributeTextColor.hxx" #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx" #include "SALOMEDSImpl_AttributePixMap.hxx" #include "SALOMEDSImpl_AttributeLocalID.hxx" #include "SALOMEDSImpl_AttributeTarget.hxx" #include "SALOMEDSImpl_AttributeTableOfInteger.hxx" #include "SALOMEDSImpl_AttributeTableOfReal.hxx" #include "SALOMEDSImpl_AttributeTableOfString.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include "SALOMEDSImpl_AttributePythonObject.hxx" #include "SALOMEDSImpl_AttributeExternalFileDef.hxx" #include "SALOMEDSImpl_AttributeFileType.hxx" #include "SALOMEDSImpl_AttributeFlags.hxx" #include "SALOMEDSImpl_AttributeGraphic.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_AttributeString.hxx" #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDS_AttributeName_i.hxx" #include "SALOMEDS_AttributeComment_i.hxx" #include "SALOMEDS_AttributeInteger_i.hxx" #include "SALOMEDS_AttributeReal_i.hxx" #include "SALOMEDS_AttributeTreeNode_i.hxx" #include "SALOMEDS_AttributeUserID_i.hxx" #include "SALOMEDS_AttributeSequenceOfReal_i.hxx" #include "SALOMEDS_AttributeSequenceOfInteger_i.hxx" #include "SALOMEDS_AttributeIOR_i.hxx" #include "SALOMEDS_AttributePersistentRef_i.hxx" #include "SALOMEDS_AttributeDrawable_i.hxx" #include "SALOMEDS_AttributeSelectable_i.hxx" #include "SALOMEDS_AttributeExpandable_i.hxx" #include "SALOMEDS_AttributeOpened_i.hxx" #include "SALOMEDS_AttributeTextColor_i.hxx" #include "SALOMEDS_AttributeTextHighlightColor_i.hxx" #include "SALOMEDS_AttributePixMap_i.hxx" #include "SALOMEDS_AttributeLocalID_i.hxx" #include "SALOMEDS_AttributeTarget_i.hxx" #include "SALOMEDS_AttributeTableOfInteger_i.hxx" #include "SALOMEDS_AttributeTableOfReal_i.hxx" #include "SALOMEDS_AttributeTableOfString_i.hxx" #include "SALOMEDS_AttributeStudyProperties_i.hxx" #include "SALOMEDS_AttributePythonObject_i.hxx" #include "SALOMEDS_AttributeExternalFileDef_i.hxx" #include "SALOMEDS_AttributeFileType_i.hxx" #include "SALOMEDS_AttributeFlags_i.hxx" #include "SALOMEDS_AttributeGraphic_i.hxx" #include "SALOMEDS_AttributeParameter_i.hxx" #include "SALOMEDS_AttributeString_i.hxx" #define __CreateCORBAAttribute(CORBA_Name) else if (strcmp(aTypeOfAttribute, #CORBA_Name) == 0) { \ SALOMEDSImpl_##CORBA_Name* A = dynamic_cast(theAttr); \ SALOMEDS_##CORBA_Name##_i* Attr = new SALOMEDS_##CORBA_Name##_i(A, theOrb); \ attr_servant = Attr; \ anAttribute = Attr->CORBA_Name::_this(); \ } #define __CreateGenericCORBAAttribute \ if(0){} \ __CreateCORBAAttribute(AttributeReal) \ __CreateCORBAAttribute(AttributeInteger) \ __CreateCORBAAttribute(AttributeSequenceOfReal) \ __CreateCORBAAttribute(AttributeSequenceOfInteger) \ __CreateCORBAAttribute(AttributeName) \ __CreateCORBAAttribute(AttributeComment) \ __CreateCORBAAttribute(AttributeIOR) \ __CreateCORBAAttribute(AttributePixMap) \ __CreateCORBAAttribute(AttributeLocalID) \ __CreateCORBAAttribute(AttributeTableOfInteger) \ __CreateCORBAAttribute(AttributeTableOfReal) \ __CreateCORBAAttribute(AttributeTableOfString) \ __CreateCORBAAttribute(AttributePythonObject) \ __CreateCORBAAttribute(AttributePersistentRef) \ __CreateCORBAAttribute(AttributeDrawable) \ __CreateCORBAAttribute(AttributeSelectable) \ __CreateCORBAAttribute(AttributeExpandable) \ __CreateCORBAAttribute(AttributeOpened) \ __CreateCORBAAttribute(AttributeTextColor) \ __CreateCORBAAttribute(AttributeTextHighlightColor) \ __CreateCORBAAttribute(AttributeTarget) \ __CreateCORBAAttribute(AttributeStudyProperties) \ __CreateCORBAAttribute(AttributeExternalFileDef) \ __CreateCORBAAttribute(AttributeFileType) \ __CreateCORBAAttribute(AttributeFlags) \ __CreateCORBAAttribute(AttributeGraphic) \ __CreateCORBAAttribute(AttributeTreeNode) \ __CreateCORBAAttribute(AttributeUserID) \ __CreateCORBAAttribute(AttributeParameter) \ __CreateCORBAAttribute(AttributeString) #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_BasicAttributeFactory.hxx000077500000000000000000000033371177004724000245460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_BasicAttributeFactory.hxx // Author : Estelle Deville, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_BasicAttributeFactory.hxx,v 1.6.30.2.12.1 2012-04-12 14:05:24 vsr Exp $ // #ifndef _BASIC_ATTRIBUTEFACTORY_HXX_ #define _BASIC_ATTRIBUTEFACTORY_HXX_ #include "SALOMEDS_BasicAttribute_i.hxx" // Add new Attribute type here #include "SALOMEDS_AttReal_i.hxx" #include "SALOMEDS_AttLong_i.hxx" #include "Utils_SALOME_Exception.hxx" class BasicAttributeFactory { public: BasicAttributeFactory() {}; virtual ~BasicAttributeFactory() {}; SALOMEDS_BasicAttribute_i* Create(const char* type) throw (SALOME_Exception); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_BasicAttribute_i.hxx000077500000000000000000000035621177004724000235260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_BasicAttribute_i.hxx // Author : Estelle Deville, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_BasicAttribute_i.hxx,v 1.6.2.1.10.2.12.1 2012-04-12 14:05:25 vsr Exp $ // #ifndef _BASIC_ATTRIBUTE_I_HXX_ #define _BASIC_ATTRIBUTE_I_HXX_ // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include class SALOMEDS_BasicAttribute_i: public POA_SALOMEDS::BasicAttribute, public PortableServer::ServantBase { protected: DF_Label _Lab; public: SALOMEDS_BasicAttribute_i() {}; ~SALOMEDS_BasicAttribute_i() {}; virtual char * Save() =0; virtual void Load () =0; CORBA::Boolean GetPtr(SALOMEDS::SObject so); void SetLabel(const DF_Label& Lab); virtual char* GetType() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Callback_i.hxx000077500000000000000000000036111177004724000223100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_Study_i.hxx // Author : Yves FRICAUD // Module : SALOME // #ifndef __SALOMEDS_CALLBACK_I_H__ #define __SALOMEDS_CALLBACK_I_H__ // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDS_Callback_i: public virtual POA_SALOMEDS::Callback, public virtual PortableServer::ServantBase { private: SALOMEDS::UseCaseBuilder_var _builder; public: SALOMEDS_Callback_i(SALOMEDS::UseCaseBuilder_ptr theBuilder) { _builder = SALOMEDS::UseCaseBuilder::_duplicate(theBuilder); } virtual void OnAddSObject(SALOMEDS::SObject_ptr theObject) { if(!_builder->_is_nil() && !theObject->_is_nil()) _builder->Append(theObject); } virtual void OnRemoveSObject(SALOMEDS::SObject_ptr theObject) { if(!_builder->_is_nil() && !theObject->_is_nil()) _builder->Remove(theObject); } }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_ChildIterator.cxx000077500000000000000000000052121177004724000230330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_ChildIterator.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_ChildIterator.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS.hxx" SALOMEDS_ChildIterator::SALOMEDS_ChildIterator(const SALOMEDSImpl_ChildIterator& theIterator) { SALOMEDS::Locker lock; _isLocal = true; _local_impl = theIterator.GetPersistentCopy(); _corba_impl = SALOMEDS::ChildIterator::_nil(); } SALOMEDS_ChildIterator::SALOMEDS_ChildIterator(SALOMEDS::ChildIterator_ptr theIterator) { _isLocal = false; _corba_impl = SALOMEDS::ChildIterator::_duplicate(theIterator); } SALOMEDS_ChildIterator::~SALOMEDS_ChildIterator() { if(!_isLocal) _corba_impl->UnRegister(); else if(_local_impl) delete _local_impl; } void SALOMEDS_ChildIterator::Init() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Init(); } else _corba_impl->Init(); } void SALOMEDS_ChildIterator::InitEx(bool theAllLevels) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->InitEx(theAllLevels); } else _corba_impl->InitEx(theAllLevels); } bool SALOMEDS_ChildIterator::More() { bool ret = false; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->More(); } else ret = _corba_impl->More(); return ret; } void SALOMEDS_ChildIterator::Next() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Next(); } else _corba_impl->Next(); } _PTR(SObject) SALOMEDS_ChildIterator::Value() { SALOMEDSClient_SObject* aSO; if (_isLocal) { SALOMEDS::Locker lock; aSO = new SALOMEDS_SObject(_local_impl->Value()); } else { SALOMEDS::SObject_var so=_corba_impl->Value(); aSO = new SALOMEDS_SObject(so); } return _PTR(SObject)(aSO); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_ChildIterator.hxx000077500000000000000000000034701177004724000230440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_ChildIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_CHILDITERATOR_H__ #define __SALOMEDS_CHILDITERATOR_H__ #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_ChildIterator.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDS_ChildIterator: public SALOMEDSClient_ChildIterator { private: bool _isLocal; SALOMEDSImpl_ChildIterator* _local_impl; SALOMEDS::ChildIterator_var _corba_impl; public: SALOMEDS_ChildIterator(const SALOMEDSImpl_ChildIterator& theIterator); SALOMEDS_ChildIterator(SALOMEDS::ChildIterator_ptr theIterator); ~SALOMEDS_ChildIterator(); virtual void Init(); virtual void InitEx(bool theAllLevels); virtual bool More(); virtual void Next(); virtual _PTR(SObject) Value(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_ChildIterator_i.cxx000077500000000000000000000067561177004724000233610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_ChildIterator_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_ChildIterator_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_Study.hxx" #include "utilities.h" //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDS_ChildIterator_i::SALOMEDS_ChildIterator_i(const SALOMEDSImpl_ChildIterator& theImpl, CORBA::ORB_ptr orb) : _it(theImpl.GetPersistentCopy()) { SALOMEDS::Locker lock; _orb = CORBA::ORB::_duplicate(orb); } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDS_ChildIterator_i::~SALOMEDS_ChildIterator_i() { if(_it) delete _it; } //============================================================================ /*! Function :Init * */ //============================================================================ void SALOMEDS_ChildIterator_i::Init() { SALOMEDS::Locker lock; _it->Init(); } //============================================================================ /*! Function :InitEx * */ //============================================================================ void SALOMEDS_ChildIterator_i::InitEx(CORBA::Boolean allLevels) { SALOMEDS::Locker lock; _it->InitEx (allLevels); } //============================================================================ /*! Function : More * */ //============================================================================ CORBA::Boolean SALOMEDS_ChildIterator_i::More() { SALOMEDS::Locker lock; return _it->More(); } //============================================================================ /*! Function : Next * */ //============================================================================ void SALOMEDS_ChildIterator_i::Next() { SALOMEDS::Locker lock; _it->Next(); } //============================================================================ /*! Function : Value * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_ChildIterator_i::Value() { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO = _it->Value(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_ChildIterator_i.hxx000077500000000000000000000037731177004724000233620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_ChildIterator_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_CHILDITERATOR_I_H__ #define __SALOMEDS_CHILDITERATOR_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include // Cascade headers #include "SALOMEDSImpl_ChildIterator.hxx" #include class SALOMEDS_ChildIterator_i: public virtual POA_SALOMEDS::ChildIterator, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { private: CORBA::ORB_var _orb; SALOMEDSImpl_ChildIterator* _it; public: //! standard constructor SALOMEDS_ChildIterator_i(const SALOMEDSImpl_ChildIterator&, CORBA::ORB_ptr); //! standard destructor ~SALOMEDS_ChildIterator_i(); virtual void Init(); virtual void InitEx(CORBA::Boolean); virtual CORBA::Boolean More(); virtual void Next(); virtual SALOMEDS::SObject_ptr Value(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Client.cxx000077500000000000000000000255031177004724000215210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_Client.cxx // Author : Yves FRICAUD // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_Client.cxx,v 1.9.2.1.10.2.12.1 2012-04-12 14:05:26 vsr Exp $ // #include #include CORBA_SERVER_HEADER(SALOMEDS) #include "SALOMEDS_StudyManager_i.hxx" #include "SALOMEDS_AttributeName_i.hxx" #include "utilities.h" #include "HDFOI.hxx" //============================================================================ /*! Function : * Purpose : */ //============================================================================ static void DumpComponent(SALOMEDS::Study_ptr Study,SALOMEDS::SObject_ptr SO, int offset) { SALOMEDS::SObject_var RefSO; SALOMEDS::ChildIterator_var it = Study->NewChildIterator(SO); for (; it->More();it->Next()){ SALOMEDS::SObject_var CSO= it->Value(); SALOMEDS::GenericAttribute_var anAttr; if (CSO->FindAttribute(anAttr,"AttributeName")) { SALOMEDS::AttributeName_var Name = SALOMEDS::AttributeName::_narrow(anAttr); CORBA::String_var Val = Name->Value(); for (int i = 1; i <= offset ; i++) MESSAGE("--"); MESSAGE(">"<GetID()<ReferencedObject(RefSO)) { for (int i = 1; i <= offset ; i++) MESSAGE(" "); MESSAGE("*Reference"<GetID()); } DumpComponent(Study,CSO,offset+2); } } //============================================================================ /*! Function : * Purpose : */ //============================================================================ static void DumpStudy (SALOMEDS::Study_ptr Study) { MESSAGE("Explore Study and Write name of each object if it exists"); char* name; SALOMEDS::SComponentIterator_var itcomp = Study->NewComponentIterator(); int offset = 1; for (; itcomp->More(); itcomp->Next()) { SALOMEDS::SComponent_var SC = itcomp->Value(); name = SC->ComponentDataType(); MESSAGE("-> ComponentDataType is "<NewStudy("Study1"); MESSAGE("Create Builder "); SALOMEDS::StudyBuilder_var StudyBuild = myStudy->NewBuilder(); // Create new components SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeName_var Name; SALOMEDS::AttributeComment_var Comment; SALOMEDS::AttributePersistentRef_var PRef; // GEOM MESSAGE("Add Component GEOM"); SALOMEDS::SComponent_var Geom = StudyBuild->NewComponent("GEOM"); MESSAGE("Add attribute name GEOM to component Geom"); anAttr = StudyBuild->FindOrCreateAttribute(Geom, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("Geometry"); // MESH MESSAGE("Add Component MESH"); SALOMEDS::SComponent_var Mesh = StudyBuild->NewComponent("MESH"); anAttr = StudyBuild->FindOrCreateAttribute(Mesh, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("Mesh"); //Create objects //Value //box MESSAGE("Add Object box under GEOM"); SALOMEDS::SObject_var box = StudyBuild->NewObject(Geom); MESSAGE("Add Attribute Name in object box"); anAttr = StudyBuild->FindOrCreateAttribute(box, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("box_0"); MESSAGE("Add Attribute Comment in object box"); anAttr = StudyBuild->FindOrCreateAttribute(box, "AttributeComment"); Comment = SALOMEDS::AttributeComment::_narrow(anAttr); Comment->SetValue("this is a box"); //mesh_box MESSAGE("Add Object mesh_box under MESH"); SALOMEDS::SObject_var mesh_box = StudyBuild->NewObject(Mesh); MESSAGE("Add Attribute Name in object mesh_box"); anAttr = StudyBuild->FindOrCreateAttribute(mesh_box, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("mesh_box_0"); // Test attribute delete //MESSAGE("Delete Attribute Name in object mesh_box"); //StudyBuild->RemoveAttribute (mesh_box,SALOMEDS::Name); //mesh_box_face MESSAGE("Add Object mesh_box_face under mesh_box"); SALOMEDS::SObject_var mesh_box_face = StudyBuild->NewObject(mesh_box); MESSAGE("Add Attribute Name in object mesh_box_face"); anAttr = StudyBuild->FindOrCreateAttribute(mesh_box_face, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("mesh_box_face_0"); MESSAGE("Add Reference mesh_box_face to box"); StudyBuild->Addreference (mesh_box_face,box); //cylinder MESSAGE("Add Object cylinder under GEOM"); SALOMEDS::SObject_var cylinder = StudyBuild->NewObject(Geom); MESSAGE("Add Attribute Name in object cylinder"); anAttr = StudyBuild->FindOrCreateAttribute(cylinder, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("cylinder_0"); MESSAGE("Add Attribute Persistent Reference in object cylinder"); anAttr = StudyBuild->FindOrCreateAttribute(cylinder, "AttributePersistentRef"); PRef = SALOMEDS::AttributePersistentRef::_narrow(anAttr); PRef->SetValue("/HDFROOT/GEOM/cylinder"); // Test Undo MESSAGE("Test Undo"); StudyBuild->UndoLimit(3); StudyBuild->NewCommand(); MESSAGE("Add Object mesh_cylinder under MESH"); SALOMEDS::SObject_var mesh_cylinder = StudyBuild->NewObject(Mesh); MESSAGE("Add Attribute Name in object mesh_cylinder"); anAttr = StudyBuild->FindOrCreateAttribute(mesh_cylinder, "AttributeName"); Name = SALOMEDS::AttributeName::_narrow(anAttr); Name->SetValue("mesh_cylinder_0"); StudyBuild->CommitCommand(); MESSAGE("Test GetStudy"); SALOMEDS::Study_var stu = mesh_cylinder->GetStudy(); MESSAGE ("-> Study Name is "<Name()); DumpStudy(myStudy); StudyBuild->Undo(); // Study should have no trace of object mesh_cylinder DumpStudy(myStudy); //myStudyMgr->Open ((char*)name); //MESSAGE("Name " << name); // GetOpenStudies MESSAGE("GetOpenStudies list"); SALOMEDS::ListOfOpenStudies_var _list_open_studies = myStudyMgr->GetOpenStudies(); for (unsigned int ind = 0; ind < _list_open_studies->length();ind++) { MESSAGE("Open studies list : " << _list_open_studies[ind]); } // GetStudyByName SALOMEDS::Study_var myStudy1 =myStudyMgr->GetStudyByName(_list_open_studies[0]); MESSAGE("GetStudyByName done"); // Save as myStudyMgr->SaveAs("/home/edeville/Study1.hdf",myStudy1, false); // Get Persistent Reference of the study test name = myStudy1->GetPersistentReference(); MESSAGE("Persitent Reference of the study " << name); // Get Transient Reference of the study test name = myStudy1->GetTransientReference(); MESSAGE("Transient Reference of the study " << name); // FindComponent Test SALOMEDS::SComponent_var compo = myStudy1->FindComponent("GEOM"); // Get ComponentDataType test MESSAGE("Find ComponentDataType of compo"); name = compo->ComponentDataType(); MESSAGE("-> ComponentDataType is "<FindComponentID("0:1:2"); // Get ComponentDataType test MESSAGE("Find ComponentDataType of compo1"); name = compo1->ComponentDataType(); MESSAGE("-> ComponentDataType is "<FindObject("cylinder_0"); // Test FindAttribute function : get AttributeName attribute MESSAGE("Find Name in object objn"); if (objn->FindAttribute(anAttr, "AttributeName")) { Name = SALOMEDS::AttributeName::_narrow(anAttr); CORBA::String_var Val = Name->Value(); MESSAGE("-> Name is "< Name is not found"); } // FindObjectID Test SALOMEDS::SObject_var obj = myStudy1->FindObjectID("0:1:2:1:1"); // Test FindAttribute function : get AttributeName attribute MESSAGE("Find Name in object obj"); if (obj->FindAttribute(anAttr, "AttributeName")) { Name = SALOMEDS::AttributeName::_narrow(anAttr); CORBA::String_var Val = Name->Value(); MESSAGE("-> Name is "< Name is not found"); } //DumpStudy(myStudy1); } catch(HDFexception) { MESSAGE( "HDFexception ! " ) } } ///////////////////////////// MAIN /////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// int main(int argc, char** argv) { try { // Initialise the ORB. #if OMNIORB_VERSION >= 4 CORBA::ORB_var orb = CORBA::ORB_init( argc, argv, "omniORB4" ) ; #else CORBA::ORB_var orb = CORBA::ORB_init( argc, argv, "omniORB3" ); #endif // Obtain a reference to the root POA. CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); PortableServer::POA_var poa = PortableServer::POA::_narrow(obj); SALOME_NamingService * salomens = new SALOME_NamingService(orb); MESSAGE("Find StudyManager "); CORBA::Object_ptr obj2 = salomens->Resolve("myStudyManager"); SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj2); // Obtain a POAManager, and tell the POA to start accepting // requests on its objects. PortableServer::POAManager_var pman = poa->the_POAManager(); pman->activate(); // Test basic services Test(myStudyMgr); orb->run(); orb->destroy(); } catch(CORBA::SystemException&) { MESSAGE("Caught CORBA::SystemException." ) } catch(CORBA::Exception&) { MESSAGE( "Caught CORBA::Exception." ) } catch(omniORB::fatalException& fe) { MESSAGE( "Caught omniORB::fatalException:" ) MESSAGE( " file: " << fe.file() ) MESSAGE( " line: " << fe.line() ) MESSAGE( " mesg: " << fe.errmsg() ) } catch(...) { MESSAGE( "Caught unknown exception." ) } return 0; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_ClientAttributes.hxx000077500000000000000000000167361177004724000236050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Attributes.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSCLIENT_ATTRIBUTES__H__ #define __SALOMEDSCLIENT_ATTRIBUTES__H__ #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeName.hxx" #include "SALOMEDSImpl_AttributeComment.hxx" #include "SALOMEDSImpl_AttributeInteger.hxx" #include "SALOMEDSImpl_AttributeReal.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" #include "SALOMEDSImpl_AttributeUserID.hxx" #include "SALOMEDSImpl_AttributeSequenceOfReal.hxx" #include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" #include "SALOMEDSImpl_AttributePersistentRef.hxx" #include "SALOMEDSImpl_AttributeDrawable.hxx" #include "SALOMEDSImpl_AttributeSelectable.hxx" #include "SALOMEDSImpl_AttributeExpandable.hxx" #include "SALOMEDSImpl_AttributeOpened.hxx" #include "SALOMEDSImpl_AttributeTextColor.hxx" #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx" #include "SALOMEDSImpl_AttributePixMap.hxx" #include "SALOMEDSImpl_AttributeLocalID.hxx" #include "SALOMEDSImpl_AttributeTarget.hxx" #include "SALOMEDSImpl_AttributeTableOfInteger.hxx" #include "SALOMEDSImpl_AttributeTableOfReal.hxx" #include "SALOMEDSImpl_AttributeTableOfString.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include "SALOMEDSImpl_AttributePythonObject.hxx" #include "SALOMEDSImpl_AttributeExternalFileDef.hxx" #include "SALOMEDSImpl_AttributeFileType.hxx" #include "SALOMEDSImpl_AttributeFlags.hxx" #include "SALOMEDSImpl_AttributeGraphic.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_AttributeString.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDS_AttributeName.hxx" #include "SALOMEDS_AttributeComment.hxx" #include "SALOMEDS_AttributeInteger.hxx" #include "SALOMEDS_AttributeReal.hxx" #include "SALOMEDS_AttributeTreeNode.hxx" #include "SALOMEDS_AttributeUserID.hxx" #include "SALOMEDS_AttributeSequenceOfReal.hxx" #include "SALOMEDS_AttributeSequenceOfInteger.hxx" #include "SALOMEDS_AttributeIOR.hxx" #include "SALOMEDS_AttributePersistentRef.hxx" #include "SALOMEDS_AttributeDrawable.hxx" #include "SALOMEDS_AttributeSelectable.hxx" #include "SALOMEDS_AttributeExpandable.hxx" #include "SALOMEDS_AttributeOpened.hxx" #include "SALOMEDS_AttributeTextColor.hxx" #include "SALOMEDS_AttributeTextHighlightColor.hxx" #include "SALOMEDS_AttributePixMap.hxx" #include "SALOMEDS_AttributeLocalID.hxx" #include "SALOMEDS_AttributeTarget.hxx" #include "SALOMEDS_AttributeTableOfInteger.hxx" #include "SALOMEDS_AttributeTableOfReal.hxx" #include "SALOMEDS_AttributeTableOfString.hxx" #include "SALOMEDS_AttributeStudyProperties.hxx" #include "SALOMEDS_AttributePythonObject.hxx" #include "SALOMEDS_AttributeExternalFileDef.hxx" #include "SALOMEDS_AttributeFileType.hxx" #include "SALOMEDS_AttributeFlags.hxx" #include "SALOMEDS_AttributeGraphic.hxx" #include "SALOMEDS_AttributeParameter.hxx" #include "SALOMEDS_AttributeString.hxx" #define __CreateClientAttributeLocal(CORBA_Name) if (strcmp(aTypeOfAttribute.c_str(), #CORBA_Name) == 0) { \ SALOMEDSImpl_##CORBA_Name* A = dynamic_cast(theGA); \ aGA = new SALOMEDS_##CORBA_Name(A); \ } #define __CreateClientAttributeCORBA(CORBA_Name) if (strcmp(aTypeOfAttribute.c_str(), #CORBA_Name) == 0) { \ SALOMEDS::CORBA_Name##_var A = SALOMEDS::CORBA_Name::_narrow(theGA); \ aGA = new SALOMEDS_##CORBA_Name(A); \ } #define __CreateGenericClientAttributeLocal \ __CreateClientAttributeLocal(AttributeReal) \ __CreateClientAttributeLocal(AttributeInteger) \ __CreateClientAttributeLocal(AttributeSequenceOfReal) \ __CreateClientAttributeLocal(AttributeSequenceOfInteger) \ __CreateClientAttributeLocal(AttributeName) \ __CreateClientAttributeLocal(AttributeComment) \ __CreateClientAttributeLocal(AttributeIOR) \ __CreateClientAttributeLocal(AttributePixMap) \ __CreateClientAttributeLocal(AttributeLocalID) \ __CreateClientAttributeLocal(AttributeTableOfInteger) \ __CreateClientAttributeLocal(AttributeTableOfReal) \ __CreateClientAttributeLocal(AttributeTableOfString) \ __CreateClientAttributeLocal(AttributePythonObject) \ __CreateClientAttributeLocal(AttributePersistentRef) \ __CreateClientAttributeLocal(AttributeDrawable) \ __CreateClientAttributeLocal(AttributeSelectable) \ __CreateClientAttributeLocal(AttributeExpandable) \ __CreateClientAttributeLocal(AttributeOpened) \ __CreateClientAttributeLocal(AttributeTextColor) \ __CreateClientAttributeLocal(AttributeTextHighlightColor) \ __CreateClientAttributeLocal(AttributeTarget) \ __CreateClientAttributeLocal(AttributeStudyProperties) \ __CreateClientAttributeLocal(AttributeExternalFileDef) \ __CreateClientAttributeLocal(AttributeFileType) \ __CreateClientAttributeLocal(AttributeFlags) \ __CreateClientAttributeLocal(AttributeGraphic) \ __CreateClientAttributeLocal(AttributeTreeNode) \ __CreateClientAttributeLocal(AttributeUserID) \ __CreateClientAttributeLocal(AttributeParameter) \ __CreateClientAttributeLocal(AttributeString) #define __CreateGenericClientAttributeCORBA \ __CreateClientAttributeCORBA(AttributeReal) \ __CreateClientAttributeCORBA(AttributeInteger) \ __CreateClientAttributeCORBA(AttributeSequenceOfReal) \ __CreateClientAttributeCORBA(AttributeSequenceOfInteger) \ __CreateClientAttributeCORBA(AttributeName) \ __CreateClientAttributeCORBA(AttributeComment) \ __CreateClientAttributeCORBA(AttributeIOR) \ __CreateClientAttributeCORBA(AttributePixMap) \ __CreateClientAttributeCORBA(AttributeLocalID) \ __CreateClientAttributeCORBA(AttributeTableOfInteger) \ __CreateClientAttributeCORBA(AttributeTableOfReal) \ __CreateClientAttributeCORBA(AttributeTableOfString) \ __CreateClientAttributeCORBA(AttributePythonObject) \ __CreateClientAttributeCORBA(AttributePersistentRef) \ __CreateClientAttributeCORBA(AttributeDrawable) \ __CreateClientAttributeCORBA(AttributeSelectable) \ __CreateClientAttributeCORBA(AttributeExpandable) \ __CreateClientAttributeCORBA(AttributeOpened) \ __CreateClientAttributeCORBA(AttributeTextColor) \ __CreateClientAttributeCORBA(AttributeTextHighlightColor) \ __CreateClientAttributeCORBA(AttributeTarget) \ __CreateClientAttributeCORBA(AttributeStudyProperties) \ __CreateClientAttributeCORBA(AttributeExternalFileDef) \ __CreateClientAttributeCORBA(AttributeFileType) \ __CreateClientAttributeCORBA(AttributeFlags) \ __CreateClientAttributeCORBA(AttributeGraphic) \ __CreateClientAttributeCORBA(AttributeTreeNode) \ __CreateClientAttributeCORBA(AttributeUserID) \ __CreateClientAttributeCORBA(AttributeParameter) \ __CreateClientAttributeCORBA(AttributeString) #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Defines.hxx000077500000000000000000000025171177004724000216650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Defines.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOMEDS_Defines_HXX_ #define _SALOMEDS_Defines_HXX_ #ifdef WIN32 # if defined SALOMEDS_EXPORTS || defined SalomeDS_EXPORTS # define SALOMEDS_EXPORT __declspec( dllexport ) # else # define SALOMEDS_EXPORT __declspec( dllimport ) # endif #else # define SALOMEDS_EXPORT #endif #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Driver_i.cxx000077500000000000000000000260571177004724000220530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDS_TMPFile_i.hxx" #include "utilities.h" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS_SComponent_i.hxx" #include "SALOMEDS_Study_i.hxx" #include "SALOMEDS.hxx" #include SALOMEDS_Driver_i::SALOMEDS_Driver_i(SALOMEDS::Driver_ptr theDriver, CORBA::ORB_ptr theORB) { _driver = SALOMEDS::Driver::_duplicate(theDriver); _orb = CORBA::ORB::_duplicate(theORB); } SALOMEDS_Driver_i::~SALOMEDS_Driver_i() { } std::string SALOMEDS_Driver_i::GetIOR() { std::string ior = ""; if ( !CORBA::is_nil(_driver) ) { CORBA::String_var cior = _orb->object_to_string(_driver); ior = cior; } return ior; } SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::Save(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL, long& theStreamLength, bool isMultiFile) { SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (theComponent, _orb); CORBA::String_var url = CORBA::string_dup(theURL.c_str()); SALOMEDS::unlock(); SALOMEDS::TMPFile_var aStream; if ( !CORBA::is_nil(_driver) ) aStream = _driver->Save(sco.in(), url, isMultiFile); SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn()); theStreamLength = aTMPFile->Size(); SALOMEDS::lock(); return aTMPFile; } SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::SaveASCII(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL, long& theStreamLength, bool isMultiFile) { SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (theComponent, _orb); CORBA::String_var url = CORBA::string_dup(theURL.c_str()); SALOMEDS::unlock(); SALOMEDS::TMPFile_var aStream; if ( !CORBA::is_nil(_driver) ) aStream = _driver->SaveASCII(sco.in(), url, isMultiFile); SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn()); theStreamLength = aTMPFile->Size(); SALOMEDS::lock(); return aTMPFile; } bool SALOMEDS_Driver_i::Load(const SALOMEDSImpl_SComponent& theComponent, const unsigned char* theStream, const long theStreamLength, const std::string& theURL, bool isMultiFile) { SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (theComponent, _orb); CORBA::String_var url = CORBA::string_dup(theURL.c_str()); CORBA::Octet* anOctetBuf = (CORBA::Octet*)theStream; SALOMEDS::TMPFile_var aStream; if (theStreamLength > 0) aStream = new SALOMEDS::TMPFile(theStreamLength, theStreamLength, anOctetBuf, 0); else aStream = new SALOMEDS::TMPFile(0); SALOMEDS::unlock(); bool isOk = false; if ( !CORBA::is_nil(_driver) ) isOk = _driver->Load(sco.in(), aStream.in(), url, isMultiFile); SALOMEDS::lock(); return isOk; } bool SALOMEDS_Driver_i::LoadASCII(const SALOMEDSImpl_SComponent& theComponent, const unsigned char* theStream, const long theStreamLength, const std::string& theURL, bool isMultiFile) { SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (theComponent, _orb); CORBA::String_var url = CORBA::string_dup(theURL.c_str()); CORBA::Octet* anOctetBuf = (CORBA::Octet*)theStream; SALOMEDS::TMPFile_var aStream; if(theStreamLength > 0) aStream = new SALOMEDS::TMPFile(theStreamLength, theStreamLength, anOctetBuf, 0); else aStream = new SALOMEDS::TMPFile(0); SALOMEDS::unlock(); bool isOk = false; if ( !CORBA::is_nil(_driver) ) isOk = _driver->LoadASCII(sco.in(), aStream.in(), url, isMultiFile); SALOMEDS::lock(); return isOk; } void SALOMEDS_Driver_i::Close(const SALOMEDSImpl_SComponent& theComponent) { SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (theComponent, _orb); SALOMEDS::unlock(); if ( !CORBA::is_nil(_driver) ) _driver->Close(sco.in()); SALOMEDS::lock(); } std::string SALOMEDS_Driver_i::ComponentDataType() { std::string dtype = ""; if ( !CORBA::is_nil(_driver) ) { CORBA::String_var type = _driver->ComponentDataType(); dtype = type; } return dtype; } std::string SALOMEDS_Driver_i::IORToLocalPersistentID(const SALOMEDSImpl_SObject& theSObject, const std::string& IORString, bool isMultiFile, bool isASCII) { SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theSObject, _orb); CORBA::String_var ior = CORBA::string_dup(IORString.c_str()); SALOMEDS::unlock(); std::string pstr = ""; if ( !CORBA::is_nil(_driver) ) { CORBA::String_var pers_string =_driver->IORToLocalPersistentID(so.in(), ior.in(), isMultiFile, isASCII); pstr = pers_string; } SALOMEDS::lock(); return pstr; } std::string SALOMEDS_Driver_i::LocalPersistentIDToIOR(const SALOMEDSImpl_SObject& theObject, const std::string& aLocalPersistentID, bool isMultiFile, bool isASCII) { SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theObject, _orb); CORBA::String_var pers_string = CORBA::string_dup(aLocalPersistentID.c_str()); SALOMEDS::unlock(); std::string ior = ""; if ( !CORBA::is_nil(_driver) ) { CORBA::String_var IOR = _driver->LocalPersistentIDToIOR(so.in(), pers_string.in(), isMultiFile, isASCII); ior = IOR; } SALOMEDS::lock(); return ior; } bool SALOMEDS_Driver_i::CanCopy(const SALOMEDSImpl_SObject& theObject) { SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theObject, _orb); SALOMEDS::unlock(); bool isOk = false; if ( !CORBA::is_nil(_driver) ) isOk = _driver->CanCopy(so.in()); so->UnRegister(); SALOMEDS::lock(); return isOk; } SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::CopyFrom(const SALOMEDSImpl_SObject& theObject, int& theObjectID, long& theStreamLength) { SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theObject, _orb); SALOMEDS::unlock(); CORBA::Long anObjectID; SALOMEDS::TMPFile_var aStream; if ( !CORBA::is_nil(_driver) ) aStream = _driver->CopyFrom(so.in(), anObjectID); SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn()); theStreamLength = aTMPFile->Size(); theObjectID = anObjectID; SALOMEDS::lock(); return aTMPFile; } bool SALOMEDS_Driver_i::CanPaste(const std::string& theComponentName, int theObjectID) { SALOMEDS::unlock(); bool canPaste = false; if ( !CORBA::is_nil(_driver) ) canPaste = _driver->CanPaste(theComponentName.c_str(), theObjectID); SALOMEDS::lock(); return canPaste; } std::string SALOMEDS_Driver_i::PasteInto(const unsigned char* theStream, const long theStreamLength, int theObjectID, const SALOMEDSImpl_SObject& theObject) { SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theObject, _orb); CORBA::Octet* anOctetBuf = (CORBA::Octet*)theStream; SALOMEDS::TMPFile_var aStream; if(theStreamLength > 0) aStream = new SALOMEDS::TMPFile(theStreamLength, theStreamLength, anOctetBuf, 0); else aStream = new SALOMEDS::TMPFile(0); SALOMEDS::unlock(); std::string entry = ""; if ( !CORBA::is_nil(_driver) ) { SALOMEDS::SObject_var ret_so = _driver->PasteInto(aStream.in(), theObjectID, so.in()); entry = ret_so->GetID(); } SALOMEDS::lock(); return entry; } SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::DumpPython(SALOMEDSImpl_Study* theStudy, bool isPublished, bool isMultiFile, bool& isValidScript, long& theStreamLength) { SALOMEDS_Study_i * st_servant = SALOMEDS_Study_i::GetStudyServant(theStudy, _orb);//new SALOMEDS_Study_i (theStudy, _orb); SALOMEDS::Study_var st = SALOMEDS::Study::_narrow(st_servant->_this()); SALOMEDS::unlock(); Engines::TMPFile_var aStream; CORBA::Boolean aValidScript = true; // VSR: maybe should be false by default ??? Engines::EngineComponent_ptr aComponent = Engines::EngineComponent::_narrow(_driver); if ( !CORBA::is_nil( aComponent ) ) aStream = aComponent->DumpPython(st.in(), isPublished, isMultiFile, aValidScript); SALOMEDSImpl_TMPFile* aTMPFile = new Engines_TMPFile_i(aStream._retn()); theStreamLength = aTMPFile->Size(); isValidScript = aValidScript; SALOMEDS::lock(); return aTMPFile; } //############################################################################################################### // SALOMEDS_DriverFactory //############################################################################################################### SALOMEDS_DriverFactory_i::SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB) { _orb = CORBA::ORB::_duplicate(theORB); _name_service = new SALOME_NamingService(_orb); } SALOMEDS_DriverFactory_i::~SALOMEDS_DriverFactory_i() { delete _name_service; } SALOMEDSImpl_Driver* SALOMEDS_DriverFactory_i::GetDriverByType(const std::string& theComponentType) { CORBA::Object_var obj; std::string aFactoryType; if (theComponentType == "SUPERV") aFactoryType = "SuperVisionContainer"; else aFactoryType = "FactoryServer"; SALOMEDS::unlock(); obj = SALOME_LifeCycleCORBA(_name_service).FindOrLoad_Component(aFactoryType.c_str(), theComponentType.c_str()); SALOMEDS::lock(); if (CORBA::is_nil(obj)) { obj = SALOME_LifeCycleCORBA(_name_service).FindOrLoad_Component("FactoryServerPy", theComponentType.c_str()); } if (!CORBA::is_nil(obj)) { SALOMEDS::Driver_var aDriver = SALOMEDS::Driver::_narrow(obj); return new SALOMEDS_Driver_i(aDriver, _orb); } return NULL; } SALOMEDSImpl_Driver* SALOMEDS_DriverFactory_i::GetDriverByIOR(const std::string& theIOR) { CORBA::Object_var obj; obj = _orb->string_to_object(theIOR.c_str()); if (!CORBA::is_nil(obj)) { SALOMEDS::Driver_var aDriver = SALOMEDS::Driver::_narrow(obj); return new SALOMEDS_Driver_i(aDriver, _orb); } return NULL; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Driver_i.hxx000077500000000000000000000112621177004724000220500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOMEDS_DRIVER_I_H__ #define __SALOMEDS_DRIVER_I_H__ #include #include #include "SALOMEDSImpl_Driver.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_SObject.hxx" #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOME_Component) class Standard_EXPORT SALOMEDS_Driver_i : public virtual SALOMEDSImpl_Driver { protected: SALOMEDS::Driver_var _driver; CORBA::ORB_var _orb; public: SALOMEDS_Driver_i(SALOMEDS::Driver_ptr theDriver, CORBA::ORB_ptr theORB); ~SALOMEDS_Driver_i(); virtual std::string GetIOR(); virtual SALOMEDSImpl_TMPFile* Save(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL, long& theStreamLength, bool isMultiFile); virtual SALOMEDSImpl_TMPFile* SaveASCII(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL, long& theStreamLength, bool isMultiFile); virtual bool Load(const SALOMEDSImpl_SComponent& theComponent, const unsigned char* theStream, const long theStreamLength, const std::string& theURL, bool isMultiFile); virtual bool LoadASCII(const SALOMEDSImpl_SComponent& theComponent, const unsigned char* theStream, const long theStreamLength, const std::string& theURL, bool isMultiFile); virtual void Close(const SALOMEDSImpl_SComponent& theComponent); virtual std::string ComponentDataType(); virtual std::string IORToLocalPersistentID(const SALOMEDSImpl_SObject& theSObject, const std::string& IORString, bool isMultiFile, bool isASCII); virtual std::string LocalPersistentIDToIOR(const SALOMEDSImpl_SObject& theSObject, const std::string& aLocalPersistentID, bool isMultiFile, bool isASCII); virtual bool CanCopy(const SALOMEDSImpl_SObject& theObject); virtual SALOMEDSImpl_TMPFile* CopyFrom(const SALOMEDSImpl_SObject& theObject, int& theObjectID, long& theStreamLength); virtual bool CanPaste(const std::string& theComponentName, int theObjectID); virtual std::string PasteInto(const unsigned char* theStream, const long theStreamLength, int theObjectID, const SALOMEDSImpl_SObject& theObject); virtual SALOMEDSImpl_TMPFile* DumpPython(SALOMEDSImpl_Study* theStudy, bool isPublished, bool isMultiFile, bool& isValidScript, long& theStreamLength); }; #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" class SALOMEDS_DriverFactory_i : public virtual SALOMEDSImpl_DriverFactory { protected: CORBA::ORB_var _orb; SALOME_NamingService* _name_service; public: SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB); ~SALOMEDS_DriverFactory_i(); virtual SALOMEDSImpl_Driver* GetDriverByType(const std::string& theComponentType); virtual SALOMEDSImpl_Driver* GetDriverByIOR(const std::string& theIOR); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_GenericAttribute.cxx000077500000000000000000000076111177004724000235430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_GenericAttribute.cxx // Author : Sergey RUIN // Module : SALOME // #include #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS_ClientAttributes.hxx" #include "SALOMEDS.hxx" #include "Basics_Utils.hxx" #ifdef WIN32 #include #else #include #include #endif SALOMEDS_GenericAttribute::SALOMEDS_GenericAttribute(SALOMEDSImpl_GenericAttribute* theGA) { _isLocal = true; _local_impl = theGA; _corba_impl = SALOMEDS::GenericAttribute::_nil(); } SALOMEDS_GenericAttribute::SALOMEDS_GenericAttribute(SALOMEDS::GenericAttribute_ptr theGA) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif CORBA::LongLong addr = theGA->GetLocalImpl(Kernel_Utils::GetHostname().c_str(), pid, _isLocal); if(_isLocal) { _local_impl = reinterpret_cast(addr); _corba_impl = SALOMEDS::GenericAttribute::_nil(); } else { _local_impl = NULL; _corba_impl = SALOMEDS::GenericAttribute::_duplicate(theGA); } } SALOMEDS_GenericAttribute::~SALOMEDS_GenericAttribute() { if (!_isLocal) { _corba_impl->UnRegister(); } } void SALOMEDS_GenericAttribute::CheckLocked() { if (_isLocal) { SALOMEDS::Locker lock; try { _local_impl->CheckLocked(); } catch(...) { throw SALOMEDS::GenericAttribute::LockProtection(); } } else { _corba_impl->CheckLocked(); } } std::string SALOMEDS_GenericAttribute::Type() { std::string aType; if (_isLocal) { SALOMEDS::Locker lock; aType = _local_impl->Type(); } else { aType = (CORBA::String_var)_corba_impl->Type(); } return aType; } std::string SALOMEDS_GenericAttribute::GetClassType() { std::string aType; if (_isLocal) { SALOMEDS::Locker lock; aType = _local_impl->GetClassType(); } else { aType = (CORBA::String_var)_corba_impl->GetClassType(); } return aType; } _PTR(SObject) SALOMEDS_GenericAttribute::GetSObject() { SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; aSO = new SALOMEDS_SObject(_local_impl->GetSObject()); } else { aSO = new SALOMEDS_SObject((SALOMEDS::SObject_var)_corba_impl->GetSObject()); } return _PTR(SObject)(aSO); } SALOMEDS_GenericAttribute* SALOMEDS_GenericAttribute::CreateAttribute(SALOMEDSImpl_GenericAttribute* theGA) { SALOMEDS::Locker lock; SALOMEDS_GenericAttribute* aGA = NULL; if(theGA) { std::string aTypeOfAttribute = theGA->GetClassType(); __CreateGenericClientAttributeLocal } return aGA; } SALOMEDS_GenericAttribute* SALOMEDS_GenericAttribute::CreateAttribute(SALOMEDS::GenericAttribute_ptr theGA) { SALOMEDS_GenericAttribute* aGA = NULL; if(!CORBA::is_nil(theGA)) { CORBA::String_var astr=theGA->GetClassType(); std::string aTypeOfAttribute = astr.in(); __CreateGenericClientAttributeCORBA } return aGA; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_GenericAttribute.hxx000077500000000000000000000040111177004724000235370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_GenericAttribute.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _GENERIC_ATTRIBUTE_HXX_ #define _GENERIC_ATTRIBUTE_HXX_ #include #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class Standard_EXPORT SALOMEDS_GenericAttribute: public virtual SALOMEDSClient_GenericAttribute { protected: bool _isLocal; SALOMEDSImpl_GenericAttribute* _local_impl; SALOMEDS::GenericAttribute_var _corba_impl; public: SALOMEDS_GenericAttribute(SALOMEDSImpl_GenericAttribute* theGA); SALOMEDS_GenericAttribute(SALOMEDS::GenericAttribute_ptr theGA); virtual ~SALOMEDS_GenericAttribute(); void CheckLocked(); std::string Type(); std::string GetClassType(); _PTR(SObject) GetSObject(); static SALOMEDS_GenericAttribute* CreateAttribute(SALOMEDSImpl_GenericAttribute* theGA); static SALOMEDS_GenericAttribute* CreateAttribute(SALOMEDS::GenericAttribute_ptr theGA); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_GenericAttribute_i.cxx000077500000000000000000000100051177004724000240420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_GenericAttribute_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "utilities.h" #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDS_Attributes.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_Study.hxx" #include "Utils_ExceptHandlers.hxx" #include "Basics_Utils.hxx" #include #ifdef WIN32 #include #else #include #include #endif UNEXPECT_CATCH(GALockProtection, SALOMEDS::GenericAttribute::LockProtection); SALOMEDS_GenericAttribute_i::SALOMEDS_GenericAttribute_i(DF_Attribute* theImpl, CORBA::ORB_ptr theOrb) { _orb = CORBA::ORB::_duplicate(theOrb); _impl = theImpl; } SALOMEDS_GenericAttribute_i::~SALOMEDS_GenericAttribute_i() { } void SALOMEDS_GenericAttribute_i::CheckLocked() throw (SALOMEDS::GenericAttribute::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(GALockProtection); if (_impl && !CORBA::is_nil(_orb)) { try { SALOMEDSImpl_GenericAttribute::Impl_CheckLocked(_impl); } catch (...) { throw SALOMEDS::GenericAttribute::LockProtection(); } } } SALOMEDS::SObject_ptr SALOMEDS_GenericAttribute_i::GetSObject() { SALOMEDS::Locker lock; if (!_impl || _impl->Label().IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDSImpl_SObject so_impl = SALOMEDSImpl_Study::SObject(_impl->Label()); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (so_impl, _orb); return so._retn(); } char* SALOMEDS_GenericAttribute_i::Type() { SALOMEDS::Locker lock; if (_impl) { std::string type = SALOMEDSImpl_GenericAttribute::Impl_GetType(_impl); return CORBA::string_dup(type.c_str()); } return CORBA::string_dup(""); } char* SALOMEDS_GenericAttribute_i::GetClassType() { SALOMEDS::Locker lock; if (_impl) { std::string class_type = SALOMEDSImpl_GenericAttribute::Impl_GetClassType(_impl); return CORBA::string_dup(class_type.c_str()); } return CORBA::string_dup(""); } SALOMEDS::GenericAttribute_ptr SALOMEDS_GenericAttribute_i::CreateAttribute (DF_Attribute* theAttr, CORBA::ORB_ptr theOrb) { SALOMEDS::Locker lock; std::string aClassType = dynamic_cast(theAttr)->GetClassType(); char* aTypeOfAttribute = (char*)aClassType.c_str(); SALOMEDS::GenericAttribute_var anAttribute; SALOMEDS_GenericAttribute_i* attr_servant = NULL; __CreateGenericCORBAAttribute return anAttribute._retn(); } //=========================================================================== // PRIVATE FUNCTIONS //=========================================================================== CORBA::LongLong SALOMEDS_GenericAttribute_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif isLocal = (strcmp(theHostname, Kernel_Utils::GetHostname().c_str()) == 0 && pid == thePID)?1:0; return reinterpret_cast(_impl); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_GenericAttribute_i.hxx000077500000000000000000000043061177004724000240560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_GenericAttribute_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _GENERIC_ATTRIBUTE_I_HXX_ #define _GENERIC_ATTRIBUTE_I_HXX_ // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include #include "DF_Attribute.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class Standard_EXPORT SALOMEDS_GenericAttribute_i: public virtual POA_SALOMEDS::GenericAttribute, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { protected: DF_Attribute* _impl; CORBA::ORB_var _orb; public: SALOMEDS_GenericAttribute_i(DF_Attribute* theImpl, CORBA::ORB_ptr theOrb); virtual ~SALOMEDS_GenericAttribute_i(); void CheckLocked() throw (SALOMEDS::GenericAttribute::LockProtection); virtual char* Type(); char* GetClassType(); SALOMEDS::SObject_ptr GetSObject(); virtual DF_Attribute* GetImpl() { return _impl; } static SALOMEDS::GenericAttribute_ptr CreateAttribute(DF_Attribute* theAttr, CORBA::ORB_ptr theOrb); virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_IParameters.cxx000077500000000000000000000206661177004724000225240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEDS_IParameters.hxx" #include #define PT_INTEGER 0 #define PT_REAL 1 #define PT_BOOLEAN 2 #define PT_STRING 3 #define PT_REALARRAY 4 #define PT_INTARRAY 5 #define PT_STRARRAY 6 #define _AP_LISTS_LIST_ "AP_LISTS_LIST" #define _AP_ENTRIES_LIST_ "AP_ENTRIES_LIST" #define _AP_PROPERTIES_LIST_ "AP_PROPERTIES_LIST" #define _AP_DUMP_PYTHON_ "AP_DUMP_PYTHON" #define _PT_ID_ "_PT_OBJECT_ID_" /*! Constructor */ SALOMEDS_IParameters::SALOMEDS_IParameters(const _PTR(AttributeParameter)& ap) { if(!ap) return; _ap = ap; _PTR(SObject) so = _ap->GetSObject(); _study = so->GetStudy(); } SALOMEDS_IParameters::~SALOMEDS_IParameters() { _compNames.clear(); } int SALOMEDS_IParameters::append(const std::string& listName, const std::string& value) { if(!_ap) return -1; std::vector v; if(!_ap->IsSet(listName, PT_STRARRAY)) { if(!_ap->IsSet(_AP_LISTS_LIST_, PT_STRARRAY)) _ap->SetStrArray(_AP_LISTS_LIST_, v); if(listName != _AP_ENTRIES_LIST_ && listName != _AP_PROPERTIES_LIST_) { append(_AP_LISTS_LIST_, listName); } _ap->SetStrArray(listName, v); } v = _ap->GetStrArray(listName); v.push_back(value); _ap->SetStrArray(listName, v); return (v.size()-1); } int SALOMEDS_IParameters::nbValues(const std::string& listName) { if(!_ap) return -1; if(!_ap->IsSet(listName, PT_STRARRAY)) return 0; std::vector v = _ap->GetStrArray(listName); return v.size(); } std::vector SALOMEDS_IParameters::getValues(const std::string& listName) { std::vector v; if(!_ap) return v; if(!_ap->IsSet(listName, PT_STRARRAY)) return v; return _ap->GetStrArray(listName); } std::string SALOMEDS_IParameters::getValue(const std::string& listName, int index) { if(!_ap) return ""; if(!_ap->IsSet(listName, PT_STRARRAY)) return ""; std::vector v = _ap->GetStrArray(listName); if(index >= v.size()) return ""; return v[index]; } std::vector SALOMEDS_IParameters::getLists() { std::vector v; if(!_ap->IsSet(_AP_LISTS_LIST_, PT_STRARRAY)) return v; return _ap->GetStrArray(_AP_LISTS_LIST_); } void SALOMEDS_IParameters::setParameter(const std::string& entry, const std::string& parameterName, const std::string& value) { if(!_ap) return; std::vector v; if(!_ap->IsSet(entry, PT_STRARRAY)) { append(_AP_ENTRIES_LIST_, entry); //Add the entry to the internal list of entries _ap->SetStrArray(entry, v); } v = _ap->GetStrArray(entry); v.push_back(parameterName); v.push_back(value); _ap->SetStrArray(entry, v); } std::string SALOMEDS_IParameters::getParameter(const std::string& entry, const std::string& parameterName) { if(!_ap) return ""; if(!_ap->IsSet(entry, PT_STRARRAY)) return ""; std::vector v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 0; i SALOMEDS_IParameters::getAllParameterNames(const std::string& entry) { std::vector v, names; if(!_ap) return v; if(!_ap->IsSet(entry, PT_STRARRAY)) return v; v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 0; iIsSet(entry, PT_STRARRAY)) return ""; std::vector v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 0; i v; if(!_ap->IsSet(entry, PT_STRARRAY)) { append(_AP_ENTRIES_LIST_, entry); //Add the entry to the internal list of entries _ap->SetStrArray(entry, v); } v = _ap->GetStrArray(entry); v.push_back(_PT_ID_); v.push_back(value); _ap->SetStrArray(entry, v); } std::vector SALOMEDS_IParameters::getAllParameterValues(const std::string& entry) { std::vector v, values; if(!_ap) return v; if(!_ap->IsSet(entry, PT_STRARRAY)) return v; v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 1; iIsSet(entry, PT_STRARRAY)) return -1; return _ap->GetStrArray(entry).size()/2; } std::vector SALOMEDS_IParameters::getEntries() { std::vector v; if(!_ap) return v; if(!_ap->IsSet(_AP_ENTRIES_LIST_, PT_STRARRAY)) return v; return _ap->GetStrArray(_AP_ENTRIES_LIST_); } void SALOMEDS_IParameters::setProperty(const std::string& name, const std::string& value) { if(!_ap) return; if(!_ap->IsSet(name, PT_STRING)) { append(_AP_PROPERTIES_LIST_, name); //Add the property to the internal list of properties } _ap->SetString(name, value); } std::string SALOMEDS_IParameters::getProperty(const std::string& name) { if(!_ap) return ""; if(!_ap->IsSet(name, PT_STRING)) return ""; return _ap->GetString(name); } std::vector SALOMEDS_IParameters::getProperties() { std::vector v; if(!_ap) return v; if(!_ap->IsSet(_AP_PROPERTIES_LIST_, PT_STRARRAY)) return v; return _ap->GetStrArray(_AP_PROPERTIES_LIST_); } std::vector SALOMEDS_IParameters::parseValue(const std::string& value, const char separator, bool fromEnd) { std::string val(value); std::vector v; int pos; if(fromEnd) pos = val.rfind(separator); else pos = val.find(separator); if(pos < 0) { v.push_back(value); return v; } std::string part1, part2; part1 = val.substr(0, pos); part2 = val.substr(pos+1, val.size()); v.push_back(part1); v.push_back(part2); return v; } std::string SALOMEDS_IParameters::encodeEntry(const std::string& entry, const std::string& compName) { std::string tail(entry, 6, entry.length()-1); std::string newEntry(compName); newEntry+=("_"+tail); return newEntry; } std::string SALOMEDS_IParameters::decodeEntry(const std::string& entry) { if(!_study) return entry; int pos = entry.rfind("_"); if(pos < 0 || pos >= entry.length()) return entry; std::string compName(entry, 0, pos), compID, tail(entry, pos+1, entry.length()-1); if(_compNames.find(compName) == _compNames.end()) { _PTR(SObject) so = _study->FindComponent(compName); if(!so) return entry; compID = so->GetID(); _compNames[compName] = compID; } else compID = _compNames[compName]; std::string newEntry(compID); newEntry += (":"+tail); return newEntry; } void SALOMEDS_IParameters::setDumpPython(_PTR(Study) study, const std::string& theID) { std::string anID; if(theID == "") anID = getDefaultVisualComponent(); else anID = theID; _PTR(AttributeParameter) ap = study->GetCommonParameters(anID, 0); ap->SetBool(_AP_DUMP_PYTHON_, !isDumpPython(study, theID)); } bool SALOMEDS_IParameters::isDumpPython(_PTR(Study) study, const std::string& theID) { std::string anID; if(theID == "") anID = getDefaultVisualComponent(); else anID = theID; _PTR(AttributeParameter) ap = study->GetCommonParameters(anID, 0); if(!ap) return false; if(!ap->IsSet(_AP_DUMP_PYTHON_, PT_BOOLEAN)) return false; return (bool)ap->GetBool(_AP_DUMP_PYTHON_); } std::string SALOMEDS_IParameters::getDefaultVisualComponent() { return "Interface Applicative"; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_IParameters.hxx000077500000000000000000000112261177004724000225210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef SALOMEDS_IParameters_H #define SALOMEDS_IParameters_H #include #include #include #include "SALOMEDSClient.hxx" #include "SALOMEDSClient_IParameters.hxx" /*! Class which an interface to store the parameters of the objects */ class SALOMEDS_IParameters: public SALOMEDSClient_IParameters { public: SALOMEDS_IParameters(const _PTR(AttributeParameter)& ap); virtual ~SALOMEDS_IParameters(); /*! Appends a string value to a named list. Returns a number of the added value. Note: the name of the list MUST be unique */ virtual int append(const std::string& listName, const std::string& value); /*! Returns a number elements in the list */ virtual int nbValues(const std::string& listName); /*! Returns a list of values in the list */ virtual std::vector getValues(const std::string& listName); /*! Returns a value with given %index, where %index is in range [0:nbValues-1] */ virtual std::string getValue(const std::string& listName, int index); /*! Returns a list all entries lists */ virtual std::vector getLists(); /*! Sets a new named parameter value for the given entry */ virtual void setParameter(const std::string& entry, const std::string& parameterName, const std::string& value); /*! Gets a named parameter value for the given entry */ virtual std::string getParameter(const std::string& entry, const std::string& parameterName); /*! Sets an id parameter value for the given entry. */ virtual void setIdParameter(const std::string& entry, const std::string& value); /*! Gets an id parameter value for the given entry */ virtual std::string getIdParameter(const std::string& entry); /*! Returns all parameter names of the given entry */ virtual std::vector getAllParameterNames(const std::string& entry); /*! Returns all parameter values of the given entry */ virtual std::vector getAllParameterValues(const std::string& entry); /*! Returns a number of parameters of the given entry */ virtual int getNbParameters(const std::string& entry); /*! Returns a list all entries */ virtual std::vector getEntries(); /*! Sets a global named property value */ virtual void setProperty(const std::string& name, const std::string& value); /*! Gets a value of global named property */ virtual std::string getProperty(const std::string& name); /*! Returns a list all properties */ virtual std::vector getProperties(); /*! Breaks a value string in two parts which is divided by %separator. If fromEnd is True the search of separator starts from the end of the string */ virtual std::vector parseValue(const std::string& value, const char separator, bool fromEnd = true); /*! Returns encoded entry that is a relative entry for the component */ virtual std::string encodeEntry(const std::string& entry, const std::string& compName); /*! Returns decoded entry that is an absolute entry */ virtual std::string decodeEntry(const std::string& entry); /*! Enables/Disables the dumping visual parameters */ virtual void setDumpPython(_PTR(Study) study, const std::string& theID = ""); /*! Returns whether there is the dumping visual parameters */ virtual bool isDumpPython(_PTR(Study) study, const std::string& theID = ""); /*! Returns a default name of the component where the visula parameters are stored. */ virtual std::string getDefaultVisualComponent(); private: _PTR(AttributeParameter) _ap; _PTR(Study) _study; std::map _compNames; }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponent.cxx000077500000000000000000000053741177004724000223740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponent.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_SComponent.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SComponent_i.hxx" #include SALOMEDS_SComponent::SALOMEDS_SComponent(SALOMEDS::SComponent_ptr theSComponent) :SALOMEDS_SObject(theSComponent) {} SALOMEDS_SComponent::SALOMEDS_SComponent(const SALOMEDSImpl_SComponent& theSComponent) :SALOMEDS_SObject(theSComponent) {} SALOMEDS_SComponent::~SALOMEDS_SComponent() {} std::string SALOMEDS_SComponent::ComponentDataType() { std::string aType; if (_isLocal) { SALOMEDS::Locker lock; aType = (dynamic_cast(GetLocalImpl()))->ComponentDataType(); } else { SALOMEDS::SComponent_var aCompo=SALOMEDS::SComponent::_narrow(GetCORBAImpl()); CORBA::String_var aString = aCompo->ComponentDataType(); aType=aString.in(); } return aType; } bool SALOMEDS_SComponent::ComponentIOR(std::string& theID) { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = (dynamic_cast(GetLocalImpl()))->ComponentIOR(theID); } else { CORBA::String_var anIOR; ret = (SALOMEDS::SComponent::_narrow(GetCORBAImpl()))->ComponentIOR(anIOR.out()); theID = std::string(anIOR.in()); } return ret; } SALOMEDS::SComponent_ptr SALOMEDS_SComponent::GetSComponent() { if(_isLocal) { if(!CORBA::is_nil(_corba_impl)) return SALOMEDS::SComponent::_narrow(GetCORBAImpl()); SALOMEDS::SComponent_var aSCO = SALOMEDS_SComponent_i::New(*(dynamic_cast(GetLocalImpl())), _orb); _corba_impl = SALOMEDS::SComponent::_duplicate(aSCO); return aSCO._retn(); } else { return SALOMEDS::SComponent::_narrow(GetCORBAImpl()); } return SALOMEDS::SComponent::_nil(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponent.hxx000077500000000000000000000033171177004724000223740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponent.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_SCOMPONENT_H__ #define __SALOMEDS_SCOMPONENT_H__ #include "SALOMEDSClient_SComponent.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class Standard_EXPORT SALOMEDS_SComponent: public SALOMEDS_SObject, public SALOMEDSClient_SComponent { public: SALOMEDS_SComponent(const SALOMEDSImpl_SComponent& theSComponent); SALOMEDS_SComponent(SALOMEDS::SComponent_ptr theSComponent); ~SALOMEDS_SComponent(); virtual std::string ComponentDataType(); virtual bool ComponentIOR(std::string& theID); SALOMEDS::SComponent_ptr GetSComponent(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponentIterator.cxx000077500000000000000000000050601177004724000240760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponentIterator.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_SComponentIterator.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SComponent.hxx" #include "SALOMEDSImpl_SComponent.hxx" SALOMEDS_SComponentIterator::SALOMEDS_SComponentIterator(const SALOMEDSImpl_SComponentIterator& theIterator) :_local_impl(theIterator.GetPersistentCopy()) { _isLocal = true; _corba_impl = SALOMEDS::SComponentIterator::_nil(); } SALOMEDS_SComponentIterator::SALOMEDS_SComponentIterator(SALOMEDS::SComponentIterator_ptr theIterator) { _isLocal = false; _corba_impl = SALOMEDS::SComponentIterator::_duplicate(theIterator); } SALOMEDS_SComponentIterator::~SALOMEDS_SComponentIterator() { if(!_isLocal) _corba_impl->UnRegister(); else if(_local_impl) delete _local_impl; } void SALOMEDS_SComponentIterator::Init() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Init(); } else _corba_impl->Init(); } bool SALOMEDS_SComponentIterator::More() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->More(); } else ret = _corba_impl->More(); return ret; } void SALOMEDS_SComponentIterator::Next() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Next(); } else _corba_impl->Next(); } _PTR(SComponent) SALOMEDS_SComponentIterator::Value() { SALOMEDSClient_SComponent* aSCO = NULL; if (_isLocal) { SALOMEDS::Locker lock; aSCO = new SALOMEDS_SComponent(_local_impl->Value()); } else aSCO = new SALOMEDS_SComponent((SALOMEDS::SComponent_var)_corba_impl->Value()); return _PTR(SComponent)(aSCO); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponentIterator.hxx000077500000000000000000000035401177004724000241040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponentIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_SCOMPONENTITERATOR_H__ #define __SALOMEDS_SCOMPONENTITERATOR_H__ #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_SComponentIterator.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDS_SComponentIterator: public SALOMEDSClient_SComponentIterator { public: SALOMEDS_SComponentIterator(const SALOMEDSImpl_SComponentIterator& theIterator); SALOMEDS_SComponentIterator(SALOMEDS::SComponentIterator_ptr theIterator); ~SALOMEDS_SComponentIterator(); private: bool _isLocal; SALOMEDSImpl_SComponentIterator* _local_impl; SALOMEDS::SComponentIterator_var _corba_impl; public: virtual void Init(); virtual bool More(); virtual void Next(); virtual _PTR(SComponent) Value(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponentIterator_i.cxx000077500000000000000000000061421177004724000244100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponentIterator_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_SComponentIterator_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_SComponent.hxx" //============================================================================ /*! Function : constructor * */ //============================================================================ SALOMEDS_SComponentIterator_i::SALOMEDS_SComponentIterator_i(const SALOMEDSImpl_SComponentIterator& theImpl, CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); _impl = theImpl.GetPersistentCopy(); } //============================================================================ /*! Function : destructor * */ //============================================================================ SALOMEDS_SComponentIterator_i::~SALOMEDS_SComponentIterator_i() { if(_impl) delete _impl; } //============================================================================ /*! Function : Init * */ //============================================================================ void SALOMEDS_SComponentIterator_i::Init() { SALOMEDS::Locker lock; _impl->Init(); } //============================================================================ /*! Function : More * */ //============================================================================ CORBA::Boolean SALOMEDS_SComponentIterator_i::More() { SALOMEDS::Locker lock; return _impl->More(); } //============================================================================ /*! Function : Next */ //============================================================================ void SALOMEDS_SComponentIterator_i::Next() { SALOMEDS::Locker lock; _impl->Next(); } //============================================================================ /*! Function : Value * */ //============================================================================ SALOMEDS::SComponent_ptr SALOMEDS_SComponentIterator_i::Value() { SALOMEDS::Locker lock; SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (_impl->Value(), _orb); return sco._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponentIterator_i.hxx000077500000000000000000000037641177004724000244240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponentIterator_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_SCOMPONENTITERATOR_I_H__ #define __SALOMEDS_SCOMPONENTITERATOR_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include //SALOMEDS headers #include "SALOMEDS_SComponent_i.hxx" #include "SALOMEDSImpl_SComponentIterator.hxx" class SALOMEDS_SComponentIterator_i:public virtual POA_SALOMEDS::SComponentIterator, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { private: CORBA::ORB_var _orb; SALOMEDSImpl_SComponentIterator* _impl; public: SALOMEDS_SComponentIterator_i(const SALOMEDSImpl_SComponentIterator& theImpl, CORBA::ORB_ptr); ~SALOMEDS_SComponentIterator_i(); virtual void Init(); virtual CORBA::Boolean More(); virtual void Next(); virtual SALOMEDS::SComponent_ptr Value(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponent_i.cxx000077500000000000000000000056041177004724000227000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponent_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_SComponent_i.hxx" #include "SALOMEDS.hxx" #include "utilities.h" #include SALOMEDS::SComponent_ptr SALOMEDS_SComponent_i::New(const SALOMEDSImpl_SComponent& theImpl, CORBA::ORB_ptr theORB) { SALOMEDS_SComponent_i* sco_servant = new SALOMEDS_SComponent_i(theImpl, theORB); return sco_servant->_this(); } //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDS_SComponent_i::SALOMEDS_SComponent_i(const SALOMEDSImpl_SComponent& theImpl, CORBA::ORB_ptr orb) :SALOMEDS_SObject_i(theImpl, orb) {} //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDS_SComponent_i::~SALOMEDS_SComponent_i() {} //============================================================================ /*! Function : ComponentDataType * Purpose : */ //============================================================================ char* SALOMEDS_SComponent_i::ComponentDataType() { SALOMEDS::Locker lock; std::string aType = dynamic_cast(_impl)->ComponentDataType(); return CORBA::string_dup(aType.c_str()); } //============================================================================ /*! Function : ComponentIOR * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_SComponent_i::ComponentIOR(CORBA::String_out IOR) { SALOMEDS::Locker lock; std::string ior; if(!dynamic_cast(_impl)->ComponentIOR(ior)) { IOR = CORBA::string_dup(""); return false; } IOR = CORBA::string_dup(ior.c_str()); return true; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SComponent_i.hxx000077500000000000000000000034651177004724000227100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SComponent_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_SCOMPONENT_I_H__ #define __SALOMEDS_SCOMPONENT_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) //SALOMEDS headers #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" class Standard_EXPORT SALOMEDS_SComponent_i: public POA_SALOMEDS::SComponent, public SALOMEDS_SObject_i { public: static SALOMEDS::SComponent_ptr New(const SALOMEDSImpl_SComponent&, CORBA::ORB_ptr); SALOMEDS_SComponent_i(const SALOMEDSImpl_SComponent&, CORBA::ORB_ptr); virtual ~SALOMEDS_SComponent_i(); virtual char* ComponentDataType(); virtual CORBA::Boolean ComponentIOR(CORBA::String_out theID); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SObject.cxx000077500000000000000000000216751177004724000216420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SObject.hxx // Author : Sergey RUIN // Module : SALOME // #include #include "SALOMEDS_SObject.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SComponent.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDS_Study.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_Study.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Basics_Utils.hxx" #include "utilities.h" #ifdef WIN32 #include #include #else #include #include #endif SALOMEDS_SObject::SALOMEDS_SObject(SALOMEDS::SObject_ptr theSObject) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif CORBA::LongLong addr = // mpv: fix for IPAL13534: for 64-bit platforms use 8-bytes long for pointer storage theSObject->GetLocalImpl(Kernel_Utils::GetHostname().c_str(), pid, _isLocal); if(_isLocal) { _local_impl = reinterpret_cast(addr); _corba_impl = SALOMEDS::SObject::_duplicate(theSObject); } else { _local_impl = NULL; _corba_impl = SALOMEDS::SObject::_duplicate(theSObject); } init_orb(); } SALOMEDS_SObject::SALOMEDS_SObject(const SALOMEDSImpl_SObject& theSObject) :_isLocal(true) { _corba_impl = SALOMEDS::SObject::_nil(); if(theSObject.IsComponent()) { SALOMEDSImpl_SComponent sco = theSObject; _local_impl = sco.GetPersistentCopy(); } else { _local_impl = theSObject.GetPersistentCopy(); } init_orb(); } SALOMEDS_SObject::~SALOMEDS_SObject() { if (!_isLocal) { _corba_impl->UnRegister(); } else { if(_local_impl) delete _local_impl; } } bool SALOMEDS_SObject::IsNull() const { return _isLocal ? ( !_local_impl || _local_impl->IsNull() ) : _corba_impl->IsNull(); } std::string SALOMEDS_SObject::GetID() { std::string aValue; if (_isLocal) { SALOMEDS::Locker lock; aValue = _local_impl->GetID(); } else aValue = (CORBA::String_var)_corba_impl->GetID(); return aValue; } _PTR(SComponent) SALOMEDS_SObject::GetFatherComponent() { if (_isLocal) { SALOMEDS::Locker lock; return _PTR(SComponent)(new SALOMEDS_SComponent(_local_impl->GetFatherComponent())); } return _PTR(SComponent)(new SALOMEDS_SComponent((SALOMEDS::SComponent_var)_corba_impl->GetFatherComponent())); } _PTR(SObject) SALOMEDS_SObject::GetFather() { if (_isLocal) { SALOMEDS::Locker lock; return _PTR(SObject)(new SALOMEDS_SObject(_local_impl->GetFather())); } return _PTR(SObject)(new SALOMEDS_SObject((SALOMEDS::SObject_var)_corba_impl->GetFather())); } bool SALOMEDS_SObject::FindAttribute(_PTR(GenericAttribute)& anAttribute, const std::string& aTypeOfAttribute) { bool ret = false; if (_isLocal) { SALOMEDS::Locker lock; DF_Attribute* anAttr = NULL; ret = _local_impl->FindAttribute(anAttr, aTypeOfAttribute); if(ret) { SALOMEDSImpl_GenericAttribute* ga = dynamic_cast(anAttr); anAttribute = _PTR(GenericAttribute)(SALOMEDS_GenericAttribute::CreateAttribute(ga)); } } else { SALOMEDS::GenericAttribute_var anAttr; ret = _corba_impl->FindAttribute(anAttr.out(), aTypeOfAttribute.c_str()); if(ret) anAttribute = _PTR(GenericAttribute)(SALOMEDS_GenericAttribute::CreateAttribute(anAttr)); } return ret; } bool SALOMEDS_SObject::ReferencedObject(_PTR(SObject)& theObject) { bool ret = false; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO; ret = _local_impl->ReferencedObject(aSO); if(ret) theObject = _PTR(SObject)(new SALOMEDS_SObject(aSO)); } else { SALOMEDS::SObject_var aSO; ret = _corba_impl->ReferencedObject(aSO.out()); if(ret) theObject = _PTR(SObject)(new SALOMEDS_SObject(aSO)); } return ret; } bool SALOMEDS_SObject::FindSubObject(int theTag, _PTR(SObject)& theObject) { bool ret = false; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO; ret = _local_impl->FindSubObject(theTag, aSO); if(ret) theObject = _PTR(SObject)(new SALOMEDS_SObject(aSO)); } else { SALOMEDS::SObject_var aSO; ret = _corba_impl->FindSubObject(theTag, aSO.out()); if(ret) theObject = _PTR(SObject)(new SALOMEDS_SObject(aSO)); } return ret; } _PTR(Study) SALOMEDS_SObject::GetStudy() { if (_isLocal) { SALOMEDS::Locker lock; return _PTR(Study)(new SALOMEDS_Study(_local_impl->GetStudy())); } SALOMEDS::Study_var study=_corba_impl->GetStudy(); return _PTR(Study)(new SALOMEDS_Study(study)); } std::string SALOMEDS_SObject::Name() { std::string aName; if (_isLocal) { SALOMEDS::Locker lock; aName = _local_impl->Name(); } else aName = (CORBA::String_var)_corba_impl->Name(); return aName; } void SALOMEDS_SObject::Name(const std::string& theName) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Name(theName); } else _corba_impl->Name(theName.c_str()); } std::vector<_PTR(GenericAttribute)> SALOMEDS_SObject::GetAllAttributes() { std::vector<_PTR(GenericAttribute)> aVector; int aLength = 0; SALOMEDSClient_GenericAttribute* anAttr; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = _local_impl->GetAllAttributes(); aLength = aSeq.size(); for (int i = 0; i < aLength; i++) { anAttr = SALOMEDS_GenericAttribute::CreateAttribute(dynamic_cast(aSeq[i])); aVector.push_back(_PTR(GenericAttribute)(anAttr)); } } else { SALOMEDS::ListOfAttributes_var aSeq = _corba_impl->GetAllAttributes(); aLength = aSeq->length(); for (int i = 0; i < aLength; i++) { anAttr = SALOMEDS_GenericAttribute::CreateAttribute(aSeq[i]); aVector.push_back(_PTR(GenericAttribute)(anAttr)); } } return aVector; } std::string SALOMEDS_SObject::GetName() { std::string aName; if (_isLocal) { SALOMEDS::Locker lock; aName = _local_impl->GetName(); } else aName = (CORBA::String_var) _corba_impl->GetName(); return aName; } std::string SALOMEDS_SObject::GetComment() { std::string aComment; if (_isLocal) { SALOMEDS::Locker lock; aComment = _local_impl->GetComment(); } else aComment = (CORBA::String_var) _corba_impl->GetComment(); return aComment; } std::string SALOMEDS_SObject::GetIOR() { std::string anIOR; if (_isLocal) { SALOMEDS::Locker lock; anIOR = _local_impl->GetIOR(); } else anIOR = (CORBA::String_var) _corba_impl->GetIOR(); return anIOR; } int SALOMEDS_SObject::Tag() { if (_isLocal) { SALOMEDS::Locker lock; return _local_impl->Tag(); } return _corba_impl->Tag(); } int SALOMEDS_SObject::Depth() { if (_isLocal) { SALOMEDS::Locker lock; return _local_impl->Depth(); } return _corba_impl->Depth(); } CORBA::Object_ptr SALOMEDS_SObject::GetObject() { CORBA::Object_var obj; if (_isLocal) { SALOMEDS::Locker lock; std::string anIOR = GetIOR(); if (!anIOR.empty()) obj = _orb->string_to_object(anIOR.c_str()); return obj._retn(); } else { obj = _corba_impl->GetObject(); return obj._retn(); } return CORBA::Object::_nil(); } SALOMEDS::SObject_ptr SALOMEDS_SObject::GetSObject() { if(_isLocal) { if(!CORBA::is_nil(_corba_impl)) return SALOMEDS::SObject::_duplicate(_corba_impl); SALOMEDS::SObject_var aSO = SALOMEDS_SObject_i::New(*_local_impl, _orb); _corba_impl = SALOMEDS::SObject::_duplicate(aSO); return aSO._retn(); } else { return SALOMEDS::SObject::_duplicate(_corba_impl); } return SALOMEDS::SObject::_nil(); } void SALOMEDS_SObject::init_orb() { ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(0 , 0 ) ; } void SALOMEDS_SObject::SetAttrString(const std::string& name, const std::string& value) { if(_isLocal) { SALOMEDS::Locker lock; _local_impl->SetAttrString(name,value); } else { _corba_impl->SetAttrString(name.c_str(),value.c_str()); } } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SObject.hxx000077500000000000000000000053261177004724000216420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SObject.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_SOBJECT_H__ #define __SALOMEDS_SOBJECT_H__ // std C++ headers #include #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include "SALOMEDSImpl_SObject.hxx" class Standard_EXPORT SALOMEDS_SObject: public virtual SALOMEDSClient_SObject { protected: bool _isLocal; SALOMEDSImpl_SObject* _local_impl; SALOMEDS::SObject_var _corba_impl; CORBA::ORB_var _orb; public: SALOMEDS_SObject(SALOMEDS::SObject_ptr theSObject); SALOMEDS_SObject(const SALOMEDSImpl_SObject& theSObject); virtual ~SALOMEDS_SObject(); virtual bool IsNull() const; virtual std::string GetID(); virtual _PTR(SComponent) GetFatherComponent(); virtual _PTR(SObject) GetFather(); virtual bool FindAttribute(_PTR(GenericAttribute)& anAttribute, const std::string& aTypeOfAttribute); virtual bool ReferencedObject(_PTR(SObject)& theObject); virtual bool FindSubObject(int theTag, _PTR(SObject)& theObject); virtual _PTR(Study) GetStudy(); virtual std::string Name(); virtual void Name(const std::string& theName); virtual std::vector<_PTR(GenericAttribute)> GetAllAttributes(); virtual std::string GetName(); virtual std::string GetComment(); virtual std::string GetIOR(); virtual void SetAttrString(const std::string& name, const std::string& value); virtual int Tag(); virtual int Depth(); CORBA::Object_ptr GetObject(); SALOMEDS::SObject_ptr GetSObject(); SALOMEDS::SObject_var GetCORBAImpl() { return _corba_impl; } SALOMEDSImpl_SObject* GetLocalImpl() { return _local_impl; } private: void init_orb(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SObject_i.cxx000077500000000000000000000256741177004724000221550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SObject_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "utilities.h" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS_SComponent_i.hxx" #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" #include "Basics_Utils.hxx" #include #ifdef WIN32 #include #else #include #include #endif SALOMEDS::SObject_ptr SALOMEDS_SObject_i::New(const SALOMEDSImpl_SObject& theImpl, CORBA::ORB_ptr theORB) { SALOMEDS_SObject_i* so_servant = new SALOMEDS_SObject_i(theImpl, theORB); return so_servant->_this(); } //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDS_SObject_i::SALOMEDS_SObject_i(const SALOMEDSImpl_SObject& impl, CORBA::ORB_ptr orb) { _impl = 0; if(!impl.IsNull()) { if(impl.IsComponent()) { SALOMEDSImpl_SComponent sco = impl; _impl = sco.GetPersistentCopy(); } else { _impl = impl.GetPersistentCopy(); } } _orb = CORBA::ORB::_duplicate(orb); //SALOME::GenericObj_i::myPOA = SALOMEDS_StudyManager_i::GetPOA(GetStudy()); } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDS_SObject_i::~SALOMEDS_SObject_i() { if(_impl) delete _impl; } //================================================================================ /*! * \brief Returns true if the %SObject does not belong to any %Study */ //================================================================================ CORBA::Boolean SALOMEDS_SObject_i::IsNull() { SALOMEDS::Locker lock; return !_impl || _impl->IsNull(); } //============================================================================ /*! Function :GetID * Purpose : */ //============================================================================ char* SALOMEDS_SObject_i::GetID() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->GetID().c_str()); } //============================================================================ /*! Function : GetFatherComponent * Purpose : */ //============================================================================ SALOMEDS::SComponent_ptr SALOMEDS_SObject_i::GetFatherComponent() { SALOMEDS::Locker lock; SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (_impl->GetFatherComponent(), _orb); return sco._retn(); } //============================================================================ /*! Function : GetFather * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_SObject_i::GetFather() { SALOMEDS::Locker lock; SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (_impl->GetFather(), _orb); return so._retn(); } //============================================================================ /*! Function : * Purpose : */ //============================================================================ SALOMEDS::Study_ptr SALOMEDS_SObject_i::GetStudy() { SALOMEDS::Locker lock; SALOMEDSImpl_Study* aStudy = _impl->GetStudy(); if(!aStudy) { MESSAGE("Problem GetStudy"); return SALOMEDS::Study::_nil(); } std::string IOR = aStudy->GetTransientReference(); CORBA::Object_var obj = _orb->string_to_object(IOR.c_str()); SALOMEDS::Study_var Study = SALOMEDS::Study::_narrow(obj) ; ASSERT(!CORBA::is_nil(Study)); return SALOMEDS::Study::_duplicate(Study); } //============================================================================ /*! Function : FindAttribute * Purpose : Find attribute of given type on this SObject */ //============================================================================ CORBA::Boolean SALOMEDS_SObject_i::FindAttribute (SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute) { SALOMEDS::Locker lock; DF_Attribute* anAttr = NULL; if(_impl->FindAttribute(anAttr, (char*)aTypeOfAttribute)) { anAttribute = SALOMEDS_GenericAttribute_i::CreateAttribute(anAttr, _orb); return true; } return false; } //============================================================================ /*! Function : GetAllAttributes * Purpose : Returns list of all attributes for this sobject */ //============================================================================ SALOMEDS::ListOfAttributes* SALOMEDS_SObject_i::GetAllAttributes() { SALOMEDS::Locker lock; std::vector aSeq = _impl->GetAllAttributes(); SALOMEDS::ListOfAttributes_var SeqOfAttr = new SALOMEDS::ListOfAttributes; int length = aSeq.size(); SeqOfAttr->length(length); if (length != 0) { for(int i = 0; i < length; i++) { SALOMEDSImpl_GenericAttribute* anAttr = dynamic_cast(aSeq[i]); SALOMEDS::GenericAttribute_var anAttribute; anAttribute = SALOMEDS_GenericAttribute_i::CreateAttribute(anAttr, _orb); if (!CORBA::is_nil(anAttribute)) { SeqOfAttr[i] = anAttribute; } } } return SeqOfAttr._retn(); } //============================================================================ /*! Function : ReferencedObject * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_SObject_i::ReferencedObject(SALOMEDS::SObject_out obj) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aRefObj; if(!_impl->ReferencedObject(aRefObj)) return false; obj = SALOMEDS_SObject_i::New (aRefObj, _orb); return true; } //============================================================================ /*! Function : FindSubObject * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_SObject_i::FindSubObject(CORBA::Long atag, SALOMEDS::SObject_out obj) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSubObj; if(!_impl->FindSubObject(atag, aSubObj)) return false; obj = SALOMEDS_SObject_i::New (aSubObj, _orb); return true; } //============================================================================ /*! Function : Name * Purpose : gets a name */ //============================================================================ char* SALOMEDS_SObject_i::Name() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->Name().c_str()); } //============================================================================ /*! Function : Name * Purpose : sets a name */ //============================================================================ void SALOMEDS_SObject_i::Name(const char* name) { SALOMEDS::Locker lock; std::string aName((char*)name); _impl->Name(aName); } //============================================================================ /*! Function : Tag * Purpose : */ //============================================================================ CORBA::Short SALOMEDS_SObject_i::Tag() { SALOMEDS::Locker lock; return _impl->Tag(); } //============================================================================ /*! Function : Depth * Purpose : */ //============================================================================ CORBA::Short SALOMEDS_SObject_i::Depth() { SALOMEDS::Locker lock; return _impl->Depth(); } //============================================================================ /*! Function : GetObject * Purpose : */ //============================================================================ CORBA::Object_ptr SALOMEDS_SObject_i::GetObject() { SALOMEDS::Locker lock; CORBA::Object_ptr obj = CORBA::Object::_nil(); try { std::string IOR = _impl->GetIOR(); char* c_ior = CORBA::string_dup(IOR.c_str()); obj = _orb->string_to_object(c_ior); CORBA::string_free(c_ior); } catch(...) {} return obj; } //============================================================================ /*! Function : GetName * Purpose : */ //============================================================================ char* SALOMEDS_SObject_i::GetName() { SALOMEDS::Locker lock; CORBA::String_var aStr = CORBA::string_dup(_impl->GetName().c_str()); return aStr._retn(); } //============================================================================ /*! Function : GetComment * Purpose : */ //============================================================================ char* SALOMEDS_SObject_i::GetComment() { SALOMEDS::Locker lock; CORBA::String_var aStr = CORBA::string_dup(_impl->GetComment().c_str()); return aStr._retn(); } //============================================================================ /*! Function : GetIOR * Purpose : */ //============================================================================ char* SALOMEDS_SObject_i::GetIOR() { SALOMEDS::Locker lock; CORBA::String_var aStr = CORBA::string_dup(_impl->GetIOR().c_str()); return aStr._retn(); } //============================================================================ /*! Function : SetAttrString * Purpose : */ //============================================================================ void SALOMEDS_SObject_i::SetAttrString(const char* name, const char* value) { SALOMEDS::Locker lock; _impl->SetAttrString(name,value); } //=========================================================================== // PRIVATE FUNCTIONS //=========================================================================== CORBA::LongLong SALOMEDS_SObject_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif isLocal = (strcmp(theHostname, Kernel_Utils::GetHostname().c_str()) == 0 && pid == thePID)?1:0; return reinterpret_cast(_impl); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_SObject_i.hxx000077500000000000000000000053641177004724000221540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_SObject_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_SOBJECT_I_H__ #define __SALOMEDS_SOBJECT_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include // Cascade headers #include "SALOMEDSImpl_SObject.hxx" class Standard_EXPORT SALOMEDS_SObject_i: public virtual POA_SALOMEDS::SObject, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { protected: CORBA::ORB_var _orb; SALOMEDSImpl_SObject* _impl; public: static SALOMEDS::SObject_ptr New(const SALOMEDSImpl_SObject&, CORBA::ORB_ptr); SALOMEDS_SObject_i(const SALOMEDSImpl_SObject&, CORBA::ORB_ptr); virtual ~SALOMEDS_SObject_i(); virtual CORBA::Boolean IsNull(); virtual char* GetID(); virtual SALOMEDS::SComponent_ptr GetFatherComponent(); virtual SALOMEDS::SObject_ptr GetFather() ; virtual CORBA::Boolean FindAttribute(SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute); virtual CORBA::Boolean ReferencedObject(SALOMEDS::SObject_out obj) ; virtual CORBA::Boolean FindSubObject(CORBA::Long atag, SALOMEDS::SObject_out obj ); virtual SALOMEDS::Study_ptr GetStudy() ; virtual char* Name(); virtual void Name(const char*); virtual SALOMEDS::ListOfAttributes* GetAllAttributes(); virtual CORBA::Object_ptr GetObject(); virtual char* GetName(); virtual char* GetComment(); virtual char* GetIOR(); virtual void SetAttrString(const char*, const char*); virtual CORBA::Short Tag(); virtual CORBA::Short Depth(); virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Server.cxx000077500000000000000000000153721177004724000215540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDS_Server.cxx // Author : Yves FRICAUD // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/SALOMEDS_Server.cxx,v 1.13.2.1.10.2.12.1 2012-04-12 14:05:26 vsr Exp $ // #include "utilities.h" #include "Utils_SINGLETON.hxx" #include "SALOME_NamingService.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include #include CORBA_SERVER_HEADER(SALOMEDS) #ifdef CHECKTIME #include #endif // extern "C" // { // for ccmalloc memory debug // void ccmalloc_static_initialization(void); // } ///////////////////////////// MAIN /////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// int main(int argc, char** argv) { // ccmalloc_static_initialization(); MESSAGE("SALOMEDS_Server - main"); try { // Initialise the ORB. #if OMNIORB_VERSION >= 4 CORBA::ORB_var orb = CORBA::ORB_init( argc, argv, "omniORB4" ) ; #else CORBA::ORB_var orb = CORBA::ORB_init( argc, argv, "omniORB3" ); #endif // Obtain a reference to the root POA. long TIMESleep = 500000000; int NumberOfTries = 40; int a; timespec ts_req; ts_req.tv_nsec=TIMESleep; ts_req.tv_sec=0; timespec ts_rem; ts_rem.tv_nsec=0; ts_rem.tv_sec=0; CosNaming::NamingContext_var inc; PortableServer::POA_var poa; CORBA::Object_var theObj; CORBA::Object_var obj; CORBA::Object_var object; int SALOMEDS=0; const char * Env = getenv("USE_LOGGER"); int EnvL =0; if ((Env!=NULL) && (strlen(Env))) EnvL=1; CosNaming::Name name; name.length(1); name[0].id=CORBA::string_dup("Logger"); PortableServer::POAManager_var pman; for (int i = 1; i<=NumberOfTries; i++) { if (i!=1) #ifndef WIN32 a=nanosleep(&ts_req,&ts_rem); #else Sleep(TIMESleep/1000000); #endif try { obj = orb->resolve_initial_references("RootPOA"); if(!CORBA::is_nil(obj)) poa = PortableServer::POA::_narrow(obj); if(!CORBA::is_nil(poa)) pman = poa->the_POAManager(); if(!CORBA::is_nil(orb)) theObj = orb->resolve_initial_references("NameService"); if (!CORBA::is_nil(theObj)){ inc = CosNaming::NamingContext::_narrow(theObj); if(!CORBA::is_nil(inc)) { MESSAGE( "SalomeDS Server: Naming Service was found" ); if(EnvL==1) { CORBA::ORB_var orb1 = CORBA::ORB_init(argc,argv) ; SALOME_NamingService &NS = *SINGLETON_::Instance() ; NS.init_orb( orb1 ) ; for(int j=1; j<=NumberOfTries; j++) { if (j!=1) #ifndef WIN32 a=nanosleep(&ts_req, &ts_rem); #else Sleep(TIMESleep/1000000); #endif try { object = inc->resolve(name); } catch(CosNaming::NamingContext::NotFound) { MESSAGE( "SalomeDS Server: Logger Server wasn't found" ); } catch(...) { MESSAGE( "SalomeDS Server: Unknown exception" ); } if (!CORBA::is_nil(object)) { MESSAGE( "SalomeDS Server: Logger Server was found" ); SALOMEDS=1; break; } } } } } } catch( const SALOME_Exception &ex ) { MESSAGE( "Communication Error : " << ex.what() ); return EXIT_FAILURE ; } if ((SALOMEDS==1)||((EnvL==0)&&(!CORBA::is_nil(inc)))) break; } // We allocate the objects on the heap. Since these are reference // counted objects, they will be deleted by the POA when they are no // longer needed. SALOMEDS_StudyManager_i * myStudyManager_i = new SALOMEDS_StudyManager_i(orb,poa); // Activate the objects. This tells the POA that the objects are // ready to accept requests. PortableServer::ObjectId_var myStudyManager_iid = poa->activate_object(myStudyManager_i); myStudyManager_i->register_name("/myStudyManager"); myStudyManager_i->_remove_ref(); // Obtain a POAManager, and tell the POA to start accepting // requests on its objects. pman = poa->the_POAManager(); pman->activate(); #ifdef CHECKTIME Utils_Timer timer; timer.Start(); timer.Stop(); MESSAGE("SALOME_Registry_Server.cxx - orb->run()"); timer.ShowAbsolute(); #endif orb->run(); MESSAGE( "end of SALOME_DS server" ); orb->destroy(); } catch(CORBA::SystemException&) { MESSAGE( "Caught CORBA::SystemException." ); } catch(CORBA::Exception&) { MESSAGE( "Caught CORBA::Exception." ); } catch(omniORB::fatalException& fe) { MESSAGE( "Caught omniORB::fatalException:" ); MESSAGE( " file: " << fe.file() ); MESSAGE( " line: " << fe.line() ); MESSAGE( " mesg: " << fe.errmsg() ); } catch(...) { MESSAGE( "Caught unknown exception." ); } return 0; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Study.cxx000077500000000000000000000677141177004724000214250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Study.cxx // Author : Sergey RUIN // Module : SALOME // #include "utilities.h" #include "SALOMEDS_Study.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SComponent.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS_StudyBuilder.hxx" #include "SALOMEDS_ChildIterator.hxx" #include "SALOMEDS_SComponentIterator.hxx" #include "SALOMEDS_AttributeStudyProperties.hxx" #include "SALOMEDS_AttributeParameter.hxx" #include "SALOMEDS_UseCaseBuilder.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" #include "SALOMEDSImpl_ChildIterator.hxx" #include "SALOMEDSImpl_SComponentIterator.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_GenericVariable.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDS_Study_i.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Basics_Utils.hxx" #ifdef WIN32 #include #else #include #include #endif SALOMEDS_Study::SALOMEDS_Study(SALOMEDSImpl_Study* theStudy) { _isLocal = true; _local_impl = theStudy; _corba_impl = SALOMEDS::Study::_nil(); init_orb(); } SALOMEDS_Study::SALOMEDS_Study(SALOMEDS::Study_ptr theStudy) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif long addr = theStudy->GetLocalImpl(Kernel_Utils::GetHostname().c_str(), pid, _isLocal); if(_isLocal) { _local_impl = reinterpret_cast(addr); _corba_impl = SALOMEDS::Study::_duplicate(theStudy); } else { _local_impl = NULL; _corba_impl = SALOMEDS::Study::_duplicate(theStudy); } init_orb(); } SALOMEDS_Study::~SALOMEDS_Study() { } std::string SALOMEDS_Study::GetPersistentReference() { std::string aRef; if (_isLocal) { SALOMEDS::Locker lock; aRef = _local_impl->GetPersistentReference(); } else aRef = (CORBA::String_var)_corba_impl->GetPersistentReference(); return aRef; } std::string SALOMEDS_Study::GetTransientReference() { std::string aRef; if (_isLocal) { SALOMEDS::Locker lock; aRef = _local_impl->GetTransientReference(); } else aRef = _corba_impl->GetTransientReference(); return aRef; } bool SALOMEDS_Study::IsEmpty() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->IsEmpty(); } else ret = _corba_impl->IsEmpty(); return ret; } _PTR(SComponent) SALOMEDS_Study::FindComponent (const std::string& aComponentName) { SALOMEDSClient_SComponent* aSCO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SComponent aSCO_impl = _local_impl->FindComponent(aComponentName); if (!aSCO_impl) return _PTR(SComponent)(aSCO); aSCO = new SALOMEDS_SComponent(aSCO_impl); } else { SALOMEDS::SComponent_var aSCO_impl = _corba_impl->FindComponent((char*)aComponentName.c_str()); if (CORBA::is_nil(aSCO_impl)) return _PTR(SComponent)(aSCO); aSCO = new SALOMEDS_SComponent(aSCO_impl); } return _PTR(SComponent)(aSCO); } _PTR(SComponent) SALOMEDS_Study::FindComponentID(const std::string& aComponentID) { SALOMEDSClient_SComponent* aSCO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SComponent aSCO_impl = _local_impl->FindComponentID(aComponentID); if (!aSCO_impl) return _PTR(SComponent)(aSCO); aSCO = new SALOMEDS_SComponent(aSCO_impl); } else { SALOMEDS::SComponent_var aSCO_impl = _corba_impl->FindComponentID((char*)aComponentID.c_str()); if(CORBA::is_nil(aSCO_impl)) return _PTR(SComponent)(aSCO); aSCO = new SALOMEDS_SComponent(aSCO_impl); } return _PTR(SComponent)(aSCO); } _PTR(SObject) SALOMEDS_Study::FindObject(const std::string& anObjectName) { SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->FindObject(anObjectName); if (!aSO_impl) return _PTR(SObject)(aSO); if(aSO_impl.IsComponent()) { SALOMEDSImpl_SComponent aSCO_impl = aSO_impl; return _PTR(SObject)(new SALOMEDS_SComponent(aSCO_impl)); } aSO = new SALOMEDS_SObject(aSO_impl); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->FindObject((char*)anObjectName.c_str()); if (CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); SALOMEDS::SComponent_var aSCO_impl = SALOMEDS::SComponent::_narrow(aSO_impl); if (!CORBA::is_nil(aSCO_impl)) return _PTR(SObject)(new SALOMEDS_SComponent(aSCO_impl)); aSO = new SALOMEDS_SObject(aSO_impl); } return _PTR(SObject)(aSO); } std::vector<_PTR(SObject)> SALOMEDS_Study::FindObjectByName(const std::string& anObjectName, const std::string& aComponentName) { std::vector<_PTR(SObject)> aVector; int i, aLength = 0; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = _local_impl->FindObjectByName(anObjectName, aComponentName); aLength = aSeq.size(); for (i = 0; i< aLength; i++) aVector.push_back(_PTR(SObject)(new SALOMEDS_SObject(aSeq[i]))); } else { SALOMEDS::Study::ListOfSObject_var aSeq = _corba_impl->FindObjectByName((char*)anObjectName.c_str(), (char*)aComponentName.c_str()); aLength = aSeq->length(); for (i = 0; i< aLength; i++) aVector.push_back(_PTR(SObject)(new SALOMEDS_SObject(aSeq[i]))); } return aVector; } _PTR(SObject) SALOMEDS_Study::FindObjectID(const std::string& anObjectID) { SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->FindObjectID(anObjectID); if(!aSO_impl) return _PTR(SObject)(aSO); return _PTR(SObject)(new SALOMEDS_SObject(aSO_impl)); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->FindObjectID((char*)anObjectID.c_str()); if(CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); return _PTR(SObject)(new SALOMEDS_SObject(aSO_impl)); } return _PTR(SObject)(aSO); } _PTR(SObject) SALOMEDS_Study::CreateObjectID(const std::string& anObjectID) { SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->CreateObjectID(anObjectID); if(!aSO_impl) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->CreateObjectID((char*)anObjectID.c_str()); if(CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } return _PTR(SObject)(aSO); } _PTR(SObject) SALOMEDS_Study::FindObjectIOR(const std::string& anObjectIOR) { SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->FindObjectIOR(anObjectIOR); if (!aSO_impl) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->FindObjectIOR((char*)anObjectIOR.c_str()); if (CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } return _PTR(SObject)(aSO); } _PTR(SObject) SALOMEDS_Study::FindObjectByPath(const std::string& thePath) { SALOMEDSClient_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->FindObjectByPath(thePath); if (!aSO_impl) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->FindObjectByPath((char*)thePath.c_str()); if (CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } return _PTR(SObject)(aSO); } std::string SALOMEDS_Study::GetObjectPath(const _PTR(SObject)& theSO) { if(!theSO) return ""; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); std::string aPath; if (_isLocal) { SALOMEDS::Locker lock; aPath = _local_impl->GetObjectPath(*(aSO->GetLocalImpl())); } else aPath = _corba_impl->GetObjectPath(aSO->GetCORBAImpl()); return aPath; } void SALOMEDS_Study::SetContext(const std::string& thePath) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetContext(thePath); } else _corba_impl->SetContext((char*)thePath.c_str()); } std::string SALOMEDS_Study::GetContext() { std::string aPath; if (_isLocal) { SALOMEDS::Locker lock; aPath = _local_impl->GetContext(); } else aPath = _corba_impl->GetContext(); return aPath; } std::vector SALOMEDS_Study::GetObjectNames(const std::string& theContext) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetObjectNames(theContext); } else { SALOMEDS::ListOfStrings_var aSeq = _corba_impl->GetObjectNames((char*)theContext.c_str()); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back(std::string((std::string)aSeq[i].in())); } return aVector; } std::vector SALOMEDS_Study::GetDirectoryNames(const std::string& theContext) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetDirectoryNames(theContext); } else { SALOMEDS::ListOfStrings_var aSeq = _corba_impl->GetDirectoryNames((char*)theContext.c_str()); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } std::vector SALOMEDS_Study::GetFileNames(const std::string& theContext) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetFileNames(theContext); } else { SALOMEDS::ListOfStrings_var aSeq = _corba_impl->GetFileNames((char*)theContext.c_str()); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } std::vector SALOMEDS_Study::GetComponentNames(const std::string& theContext) { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetComponentNames(theContext); } else { SALOMEDS::ListOfStrings_var aSeq = _corba_impl->GetComponentNames((char*)theContext.c_str()); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } _PTR(ChildIterator) SALOMEDS_Study::NewChildIterator(const _PTR(SObject)& theSO) { SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); SALOMEDSClient_ChildIterator* aCI = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_ChildIterator aCIimpl = _local_impl->NewChildIterator(*(aSO->GetLocalImpl())); aCI = new SALOMEDS_ChildIterator(aCIimpl); } else { SALOMEDS::ChildIterator_var aCIimpl = _corba_impl->NewChildIterator(aSO->GetCORBAImpl()); aCI = new SALOMEDS_ChildIterator(aCIimpl); } return _PTR(ChildIterator)(aCI); } _PTR(SComponentIterator) SALOMEDS_Study::NewComponentIterator() { SALOMEDSClient_SComponentIterator* aCI = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SComponentIterator aCIimpl = _local_impl->NewComponentIterator(); aCI = new SALOMEDS_SComponentIterator(aCIimpl); } else { SALOMEDS::SComponentIterator_var aCIimpl = _corba_impl->NewComponentIterator(); aCI = new SALOMEDS_SComponentIterator(aCIimpl); } return _PTR(SComponentIterator)(aCI); } _PTR(StudyBuilder) SALOMEDS_Study::NewBuilder() { SALOMEDSClient_StudyBuilder* aSB = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_StudyBuilder* aSBimpl = _local_impl->NewBuilder(); aSB = new SALOMEDS_StudyBuilder(aSBimpl); } else { SALOMEDS::StudyBuilder_var aSBimpl = _corba_impl->NewBuilder(); aSB = new SALOMEDS_StudyBuilder(aSBimpl); } return _PTR(StudyBuilder)(aSB); } std::string SALOMEDS_Study::Name() { std::string aName; if (_isLocal) { SALOMEDS::Locker lock; aName = _local_impl->Name(); } else aName = _corba_impl->Name(); return aName; } void SALOMEDS_Study::Name(const std::string& theName) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Name(theName); } else _corba_impl->Name((char*)theName.c_str()); } bool SALOMEDS_Study::IsSaved() { bool isSaved; if (_isLocal) { SALOMEDS::Locker lock; isSaved = _local_impl->IsSaved(); } else isSaved = _corba_impl->IsSaved(); return isSaved; } void SALOMEDS_Study::IsSaved(bool save) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->IsSaved(save); } else _corba_impl->IsSaved(save); } bool SALOMEDS_Study::IsModified() { bool isModified; if (_isLocal) { SALOMEDS::Locker lock; isModified = _local_impl->IsModified(); } else isModified = _corba_impl->IsModified(); return isModified; } void SALOMEDS_Study::Modified() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Modify(); } else _corba_impl->Modified(); } std::string SALOMEDS_Study::URL() { std::string aURL; if (_isLocal) { SALOMEDS::Locker lock; aURL = _local_impl->URL(); } else aURL = _corba_impl->URL(); return aURL; } void SALOMEDS_Study::URL(const std::string& url) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->URL(url); } else _corba_impl->URL((char*)url.c_str()); } int SALOMEDS_Study::StudyId() { int anID; if (_isLocal) { SALOMEDS::Locker lock; anID = _local_impl->StudyId(); } else anID = _corba_impl->StudyId(); return anID; } void SALOMEDS_Study::StudyId(int id) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->StudyId(id); } else _corba_impl->StudyId(id); } std::vector<_PTR(SObject)> SALOMEDS_Study::FindDependances(const _PTR(SObject)& theSO) { std::vector<_PTR(SObject)> aVector; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = _local_impl->FindDependances(*(aSO->GetLocalImpl())); if (aSeq.size()) { aLength = aSeq.size(); for (i = 0; i < aLength; i++) aVector.push_back(_PTR(SObject)(new SALOMEDS_SObject(aSeq[i]))); } } else { SALOMEDS::Study::ListOfSObject_var aSeq = _corba_impl->FindDependances(aSO->GetCORBAImpl()); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back(_PTR(SObject)(new SALOMEDS_SObject(aSeq[i]))); } return aVector; } _PTR(AttributeStudyProperties) SALOMEDS_Study::GetProperties() { SALOMEDSClient_AttributeStudyProperties* aProp; if (_isLocal) { SALOMEDS::Locker lock; aProp = new SALOMEDS_AttributeStudyProperties(_local_impl->GetProperties()); } else aProp = new SALOMEDS_AttributeStudyProperties((SALOMEDS::AttributeStudyProperties_var)_corba_impl->GetProperties()); return _PTR(AttributeStudyProperties)(aProp); } std::string SALOMEDS_Study::GetLastModificationDate() { std::string aDate; if (_isLocal) { SALOMEDS::Locker lock; aDate = _local_impl->GetLastModificationDate(); } else aDate = _corba_impl->GetLastModificationDate(); return aDate; } std::vector SALOMEDS_Study::GetModificationsDate() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetModificationsDate(); } else { SALOMEDS::ListOfDates_var aSeq = _corba_impl->GetModificationsDate(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } _PTR(UseCaseBuilder) SALOMEDS_Study::GetUseCaseBuilder() { SALOMEDSClient_UseCaseBuilder* aUB = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_UseCaseBuilder* aUBimpl = _local_impl->GetUseCaseBuilder(); aUB = new SALOMEDS_UseCaseBuilder(aUBimpl); } else { SALOMEDS::UseCaseBuilder_var aUBimpl = _corba_impl->GetUseCaseBuilder(); aUB = new SALOMEDS_UseCaseBuilder(aUBimpl); } return _PTR(UseCaseBuilder)(aUB); } void SALOMEDS_Study::Close() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->Close(); } else _corba_impl->Close(); } void SALOMEDS_Study::EnableUseCaseAutoFilling(bool isEnabled) { if(_isLocal) _local_impl->EnableUseCaseAutoFilling(isEnabled); else _corba_impl->EnableUseCaseAutoFilling(isEnabled); } bool SALOMEDS_Study::DumpStudy(const std::string& thePath, const std::string& theBaseName, bool isPublished, bool isMultiFile) { //SRN: Pure CORBA DumpStudy as it does more cleaning than the local one if(CORBA::is_nil(_corba_impl)) GetStudy(); //If CORBA implementation is null then retrieve it bool ret = _corba_impl->DumpStudy(thePath.c_str(), theBaseName.c_str(), isPublished, isMultiFile); return ret; } void SALOMEDS_Study::SetStudyLock(const std::string& theLockerID) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetStudyLock(theLockerID.c_str()); } else _corba_impl->SetStudyLock((char*)theLockerID.c_str()); } bool SALOMEDS_Study::IsStudyLocked() { bool isLocked; if (_isLocal) { SALOMEDS::Locker lock; isLocked = _local_impl->IsStudyLocked(); } else isLocked = _corba_impl->IsStudyLocked(); return isLocked; } void SALOMEDS_Study::UnLockStudy(const std::string& theLockerID) { if(_isLocal) _local_impl->UnLockStudy(theLockerID.c_str()); else _corba_impl->UnLockStudy((char*)theLockerID.c_str()); } std::vector SALOMEDS_Study::GetLockerID() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetLockerID(); } else { SALOMEDS::ListOfStrings_var aSeq = _corba_impl->GetLockerID(); aLength = aSeq->length(); for (i = 0; i < aLength; i++) aVector.push_back((char*)aSeq[i].in()); } return aVector; } void SALOMEDS_Study::SetReal(const std::string& theVarName, const double theValue) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetVariable(theVarName, theValue, SALOMEDSImpl_GenericVariable::REAL_VAR); } else _corba_impl->SetReal((char*)theVarName.c_str(),theValue); } void SALOMEDS_Study::SetInteger(const std::string& theVarName, const int theValue) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetVariable(theVarName, theValue, SALOMEDSImpl_GenericVariable::INTEGER_VAR); } else _corba_impl->SetInteger((char*)theVarName.c_str(),theValue); } void SALOMEDS_Study::SetBoolean(const std::string& theVarName, const bool theValue) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetVariable(theVarName, theValue, SALOMEDSImpl_GenericVariable::BOOLEAN_VAR); } else _corba_impl->SetBoolean((char*)theVarName.c_str(),theValue); } void SALOMEDS_Study::SetString(const std::string& theVarName, const std::string& theValue) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetStringVariable(theVarName, theValue, SALOMEDSImpl_GenericVariable::STRING_VAR); } else _corba_impl->SetString((char*)theVarName.c_str(),(char*)theValue.c_str()); } void SALOMEDS_Study::SetStringAsDouble(const std::string& theVarName, const double theValue) { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->SetStringVariableAsDouble(theVarName, theValue, SALOMEDSImpl_GenericVariable::STRING_VAR); } else _corba_impl->SetStringAsDouble((char*)theVarName.c_str(),theValue); } double SALOMEDS_Study::GetReal(const std::string& theVarName) { double aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->GetVariableValue(theVarName); } else aResult = _corba_impl->GetReal((char*)theVarName.c_str()); return aResult; } int SALOMEDS_Study::GetInteger(const std::string& theVarName) { int aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = (int) _local_impl->GetVariableValue(theVarName); } else aResult = _corba_impl->GetInteger((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::GetBoolean(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = (bool) _local_impl->GetVariableValue(theVarName); } else aResult = _corba_impl->GetBoolean((char*)theVarName.c_str()); return aResult; } std::string SALOMEDS_Study::GetString(const std::string& theVarName) { std::string aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->GetStringVariableValue(theVarName); } else aResult = _corba_impl->GetString((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::IsReal(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->IsTypeOf(theVarName, SALOMEDSImpl_GenericVariable::REAL_VAR); } else aResult = _corba_impl->IsReal((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::IsInteger(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->IsTypeOf(theVarName, SALOMEDSImpl_GenericVariable::INTEGER_VAR); } else aResult = _corba_impl->IsInteger((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::IsBoolean(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->IsTypeOf(theVarName, SALOMEDSImpl_GenericVariable::BOOLEAN_VAR); } else aResult = _corba_impl->IsBoolean((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::IsString(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->IsTypeOf(theVarName, SALOMEDSImpl_GenericVariable::STRING_VAR); } else aResult = _corba_impl->IsString((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::IsVariable(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->IsVariable(theVarName); } else aResult = _corba_impl->IsVariable((char*)theVarName.c_str()); return aResult; } std::vector SALOMEDS_Study::GetVariableNames() { std::vector aVector; if (_isLocal) { SALOMEDS::Locker lock; aVector = _local_impl->GetVariableNames(); } else { SALOMEDS::ListOfStrings_var aSeq = _corba_impl->GetVariableNames(); int aLength = aSeq->length(); for (int i = 0; i < aLength; i++) aVector.push_back( std::string(aSeq[i].in()) ); } return aVector; } bool SALOMEDS_Study::RemoveVariable(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->RemoveVariable(theVarName); } else aResult = _corba_impl->RemoveVariable((char*)theVarName.c_str()); return aResult; } bool SALOMEDS_Study::RenameVariable(const std::string& theVarName, const std::string& theNewVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->RenameVariable(theVarName, theNewVarName); } else aResult = _corba_impl->RenameVariable((char*)theVarName.c_str(), (char*)theNewVarName.c_str()); return aResult; } bool SALOMEDS_Study::IsVariableUsed(const std::string& theVarName) { bool aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->IsVariableUsed(theVarName); } else aResult = _corba_impl->IsVariableUsed((char*)theVarName.c_str()); return aResult; } std::vector< std::vector > SALOMEDS_Study::ParseVariables(const std::string& theVars) { std::vector< std::vector > aResult; if (_isLocal) { SALOMEDS::Locker lock; aResult = _local_impl->ParseVariables(theVars); } else { SALOMEDS::ListOfListOfStrings_var aSeq = _corba_impl->ParseVariables(theVars.c_str()); for (int i = 0, n = aSeq->length(); i < n; i++) { std::vector aVector; SALOMEDS::ListOfStrings aSection = aSeq[i]; for (int j = 0, m = aSection.length(); j < m; j++) { aVector.push_back( std::string(aSection[j].in()) ); } aResult.push_back( aVector ); } } return aResult; } std::string SALOMEDS_Study::ConvertObjectToIOR(CORBA::Object_ptr theObject) { return _orb->object_to_string(theObject); } CORBA::Object_ptr SALOMEDS_Study::ConvertIORToObject(const std::string& theIOR) { return _orb->string_to_object(theIOR.c_str()); } void SALOMEDS_Study::init_orb() { ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(0 , 0 ) ; } SALOMEDS::Study_ptr SALOMEDS_Study::GetStudy() { if (_isLocal) { SALOMEDS::Locker lock; if (!CORBA::is_nil(_corba_impl)) return SALOMEDS::Study::_duplicate(_corba_impl); std::string anIOR = _local_impl->GetTransientReference(); SALOMEDS::Study_var aStudy; if (!_local_impl->IsError() && anIOR != "") { aStudy = SALOMEDS::Study::_narrow(_orb->string_to_object(anIOR.c_str())); } else { SALOMEDS_Study_i *aStudy_servant = new SALOMEDS_Study_i(_local_impl, _orb); aStudy = aStudy_servant->_this(); _local_impl->SetTransientReference(_orb->object_to_string(aStudy)); } _corba_impl = SALOMEDS::Study::_duplicate(aStudy); return aStudy._retn(); } else { return SALOMEDS::Study::_duplicate(_corba_impl); } return SALOMEDS::Study::_nil(); } _PTR(AttributeParameter) SALOMEDS_Study::GetCommonParameters(const std::string& theID, int theSavePoint) { SALOMEDSClient_AttributeParameter* AP = NULL; if(theSavePoint >= 0) { if (_isLocal) { SALOMEDS::Locker lock; AP = new SALOMEDS_AttributeParameter(_local_impl->GetCommonParameters(theID.c_str(), theSavePoint)); } else { AP = new SALOMEDS_AttributeParameter(_corba_impl->GetCommonParameters(theID.c_str(), theSavePoint)); } } return _PTR(AttributeParameter)(AP); } _PTR(AttributeParameter) SALOMEDS_Study::GetModuleParameters(const std::string& theID, const std::string& theModuleName, int theSavePoint) { SALOMEDSClient_AttributeParameter* AP = NULL; if(theSavePoint > 0) { if (_isLocal) { SALOMEDS::Locker lock; AP = new SALOMEDS_AttributeParameter(_local_impl->GetModuleParameters(theID.c_str(), theModuleName.c_str(), theSavePoint)); } else { AP = new SALOMEDS_AttributeParameter(_corba_impl->GetModuleParameters(theID.c_str(), theModuleName.c_str(), theSavePoint)); } } return _PTR(AttributeParameter)(AP); } void SALOMEDS_Study::attach(SALOMEDS::Observer_ptr theObserver,bool modify) { if(CORBA::is_nil(_corba_impl)) GetStudy(); //If CORBA implementation is null then retrieve it _corba_impl->attach(theObserver,modify); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Study.hxx000077500000000000000000000135471177004724000214250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Study.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_STUDY_H__ #define __SALOMEDS_STUDY_H__ #include #include #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_Study.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class Standard_EXPORT SALOMEDS_Study: public SALOMEDSClient_Study { private: bool _isLocal; SALOMEDSImpl_Study* _local_impl; SALOMEDS::Study_var _corba_impl; CORBA::ORB_var _orb; public: SALOMEDS_Study(SALOMEDSImpl_Study* theStudy); SALOMEDS_Study(SALOMEDS::Study_ptr theStudy); ~SALOMEDS_Study(); virtual std::string GetPersistentReference(); virtual std::string GetTransientReference(); virtual bool IsEmpty(); virtual _PTR(SComponent) FindComponent (const std::string& aComponentName); virtual _PTR(SComponent) FindComponentID(const std::string& aComponentID); virtual _PTR(SObject) FindObject(const std::string& anObjectName); virtual std::vector<_PTR(SObject)> FindObjectByName( const std::string& anObjectName, const std::string& aComponentName ) ; virtual _PTR(SObject) FindObjectID(const std::string& anObjectID); virtual _PTR(SObject) CreateObjectID(const std::string& anObjectID); virtual _PTR(SObject) FindObjectIOR(const std::string& anObjectIOR); virtual _PTR(SObject) FindObjectByPath(const std::string& thePath); virtual std::string GetObjectPath(const _PTR(SObject)& theSO); virtual void SetContext(const std::string& thePath); virtual std::string GetContext(); virtual std::vector GetObjectNames(const std::string& theContext); virtual std::vector GetDirectoryNames(const std::string& theContext); virtual std::vector GetFileNames(const std::string& theContext); virtual std::vector GetComponentNames(const std::string& theContext); virtual _PTR(ChildIterator) NewChildIterator(const _PTR(SObject)& theSO); virtual _PTR(SComponentIterator) NewComponentIterator(); virtual _PTR(StudyBuilder) NewBuilder(); virtual std::string Name(); virtual void Name(const std::string& name); virtual bool IsSaved(); virtual void IsSaved(bool save); virtual bool IsModified(); virtual void Modified(); virtual std::string URL(); virtual void URL(const std::string& url); virtual int StudyId(); virtual void StudyId(int id); virtual std::vector<_PTR(SObject)> FindDependances(const _PTR(SObject)& theSO); virtual _PTR(AttributeStudyProperties) GetProperties(); virtual std::string GetLastModificationDate(); virtual std::vector GetModificationsDate(); virtual _PTR(UseCaseBuilder) GetUseCaseBuilder(); virtual void Close(); virtual void EnableUseCaseAutoFilling(bool isEnabled); virtual bool DumpStudy(const std::string& thePath,const std::string& theBaseName,bool isPublished,bool isMultiFile); virtual _PTR(AttributeParameter) GetCommonParameters(const std::string& theID, int theSavePoint); virtual _PTR(AttributeParameter) GetModuleParameters(const std::string& theID, const std::string& theModuleName, int theSavePoint); virtual void SetStudyLock(const std::string& theLockerID); virtual bool IsStudyLocked(); virtual void UnLockStudy(const std::string& theLockerID); virtual std::vector GetLockerID(); virtual void SetReal(const std::string& theVarName, const double theValue); virtual void SetInteger(const std::string& theVarName, const int theValue); virtual void SetBoolean(const std::string& theVarName, const bool theValue); virtual void SetString(const std::string& theVarName, const std::string& theValue); virtual void SetStringAsDouble(const std::string& theVarName, const double theValue); virtual double GetReal(const std::string& theVarName); virtual int GetInteger(const std::string& theVarName); virtual bool GetBoolean(const std::string& theVarName); virtual std::string GetString(const std::string& theVarName); virtual bool IsReal(const std::string& theVarName); virtual bool IsInteger(const std::string& theVarName); virtual bool IsBoolean(const std::string& theVarName); virtual bool IsString(const std::string& theVarName); virtual bool IsVariable(const std::string& theVarName); virtual std::vector GetVariableNames(); virtual bool RemoveVariable(const std::string& theVarName); virtual bool RenameVariable(const std::string& theVarName, const std::string& theNewVarName); virtual bool IsVariableUsed(const std::string& theVarName); virtual std::vector< std::vector > ParseVariables(const std::string& theVars); virtual void attach(SALOMEDS::Observer_ptr theObserver,bool modify); std::string ConvertObjectToIOR(CORBA::Object_ptr theObject); CORBA::Object_ptr ConvertIORToObject(const std::string& theIOR); SALOMEDS::Study_ptr GetStudy(); private: void init_orb(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyBuilder.cxx000077500000000000000000000402741177004724000227240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyBuilder.cxx // Author : Sergey RUIN // Module : SALOME // #include "utilities.h" #include "SALOMEDS_StudyBuilder.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS_SComponent.hxx" #include "SALOMEDS_GenericAttribute.hxx" #include "SALOMEDS_StudyManager.hxx" #include "SALOMEDS_StudyBuilder_i.hxx" #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include #include #include "DF_Attribute.hxx" #include "Utils_CorbaException.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" SALOMEDS_StudyBuilder::SALOMEDS_StudyBuilder(SALOMEDSImpl_StudyBuilder* theBuilder) { _isLocal = true; _local_impl = theBuilder; _corba_impl = SALOMEDS::StudyBuilder::_nil(); init_orb(); } SALOMEDS_StudyBuilder::SALOMEDS_StudyBuilder(SALOMEDS::StudyBuilder_ptr theBuilder) { _isLocal = false; _local_impl = NULL; _corba_impl = SALOMEDS::StudyBuilder::_duplicate(theBuilder); init_orb(); } SALOMEDS_StudyBuilder::~SALOMEDS_StudyBuilder() { } _PTR(SComponent) SALOMEDS_StudyBuilder::NewComponent(const std::string& ComponentDataType) { SALOMEDSClient_SComponent* aSCO = NULL; if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; SALOMEDSImpl_SComponent aSCO_impl =_local_impl->NewComponent(ComponentDataType); if(!aSCO_impl) return _PTR(SComponent)(aSCO); aSCO = new SALOMEDS_SComponent(aSCO_impl); } else { SALOMEDS::SComponent_var aSCO_impl = _corba_impl->NewComponent((char*)ComponentDataType.c_str()); if(CORBA::is_nil(aSCO_impl)) return _PTR(SComponent)(aSCO); aSCO = new SALOMEDS_SComponent(aSCO_impl); } return _PTR(SComponent)(aSCO); } void SALOMEDS_StudyBuilder::DefineComponentInstance (const _PTR(SComponent)& theSCO, const std::string& ComponentIOR) { if(!theSCO) return; SALOMEDS_SComponent* aSCO = dynamic_cast(theSCO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->DefineComponentInstance(*(dynamic_cast(aSCO->GetLocalImpl())), ComponentIOR); } else { CORBA::Object_var obj = _orb->string_to_object(ComponentIOR.c_str()); _corba_impl->DefineComponentInstance(SALOMEDS::SComponent::_narrow(aSCO->GetCORBAImpl()), obj); } } void SALOMEDS_StudyBuilder::RemoveComponent(const _PTR(SComponent)& theSCO) { if(!theSCO) return; SALOMEDS_SComponent* aSCO = dynamic_cast(theSCO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->RemoveComponent(*(dynamic_cast(aSCO->GetLocalImpl()))); } else _corba_impl->RemoveComponent(SALOMEDS::SComponent::_narrow(aSCO->GetCORBAImpl())); } _PTR(SObject) SALOMEDS_StudyBuilder::NewObject(const _PTR(SObject)& theFatherObject) { CheckLocked(); SALOMEDSClient_SObject* aSO = NULL; SALOMEDS_SObject* father = dynamic_cast< SALOMEDS_SObject*>(theFatherObject.get()); if (father == NULL) return _PTR(SObject)(aSO); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->NewObject(*(father->GetLocalImpl())); if(!aSO_impl) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->NewObject(father->GetCORBAImpl()); if(CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } return _PTR(SObject)(aSO); } _PTR(SObject) SALOMEDS_StudyBuilder::NewObjectToTag(const _PTR(SObject)& theFatherObject, int theTag) { CheckLocked(); SALOMEDSClient_SObject* aSO = NULL; SALOMEDS_SObject* father = dynamic_cast< SALOMEDS_SObject*>(theFatherObject.get()); if (father == NULL) return _PTR(SObject)(aSO); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = _local_impl->NewObjectToTag(*(father->GetLocalImpl()), theTag); if(aSO_impl.IsNull()) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } else { SALOMEDS::SObject_var aSO_impl = _corba_impl->NewObjectToTag(father->GetCORBAImpl(), theTag); if(CORBA::is_nil(aSO_impl)) return _PTR(SObject)(aSO); aSO = new SALOMEDS_SObject(aSO_impl); } return _PTR(SObject)(aSO); } void SALOMEDS_StudyBuilder::AddDirectory(const std::string& thePath) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->AddDirectory((char*)thePath.c_str()); if (_local_impl->IsError()) { std::string anErrorCode = _local_impl->GetErrorCode(); if (anErrorCode == "StudyNameAlreadyUsed") throw SALOMEDS::Study::StudyNameAlreadyUsed(); if (anErrorCode == "StudyInvalidDirectory") throw SALOMEDS::Study::StudyInvalidDirectory(); if (anErrorCode == "StudyInvalidComponent") throw SALOMEDS::Study::StudyInvalidComponent(); } } else _corba_impl->AddDirectory((char*)thePath.c_str()); } void SALOMEDS_StudyBuilder::LoadWith(const _PTR(SComponent)& theSCO, const std::string& theIOR) { if(!theSCO) return; SALOMEDS_SComponent* aSCO = dynamic_cast(theSCO.get()); CORBA::Object_var obj = _orb->string_to_object(theIOR.c_str()); SALOMEDS::Driver_var aDriver = SALOMEDS::Driver::_narrow(obj); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDS_Driver_i* drv = new SALOMEDS_Driver_i(aDriver, _orb); SALOMEDSImpl_SComponent aSCO_impl = *(dynamic_cast(aSCO->GetLocalImpl())); bool isDone = _local_impl->LoadWith(aSCO_impl, drv); delete drv; if(!isDone && _local_impl->IsError()) THROW_SALOME_CORBA_EXCEPTION(_local_impl->GetErrorCode().c_str(),SALOME::BAD_PARAM); } else { _corba_impl->LoadWith(SALOMEDS::SComponent::_narrow(aSCO->GetCORBAImpl()), aDriver); } } void SALOMEDS_StudyBuilder::Load(const _PTR(SObject)& theSCO) { SALOMEDS_SComponent* aSCO = dynamic_cast(theSCO.get()); if (_isLocal) _local_impl->Load(*(dynamic_cast(aSCO->GetLocalImpl()))); else _corba_impl->Load(SALOMEDS::SComponent::_narrow(aSCO->GetCORBAImpl())); } void SALOMEDS_StudyBuilder::RemoveObject(const _PTR(SObject)& theSO) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->RemoveObject(*(aSO->GetLocalImpl())); } else _corba_impl->RemoveObject(aSO->GetCORBAImpl()); } void SALOMEDS_StudyBuilder::RemoveObjectWithChildren(const _PTR(SObject)& theSO) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->RemoveObjectWithChildren(*(aSO->GetLocalImpl())); } else _corba_impl->RemoveObjectWithChildren(aSO->GetCORBAImpl()); } _PTR(GenericAttribute) SALOMEDS_StudyBuilder::FindOrCreateAttribute(const _PTR(SObject)& theSO, const std::string& aTypeOfAttribute) { SALOMEDSClient_GenericAttribute* anAttr = NULL; if(!theSO) return _PTR(GenericAttribute)(anAttr); SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_GenericAttribute* aGA; try { aGA = dynamic_cast (_local_impl->FindOrCreateAttribute(*(aSO->GetLocalImpl()), aTypeOfAttribute)); } catch (...) { throw SALOMEDS::StudyBuilder::LockProtection(); } anAttr = SALOMEDS_GenericAttribute::CreateAttribute(aGA); } else { SALOMEDS::GenericAttribute_var aGA = _corba_impl->FindOrCreateAttribute(aSO->GetCORBAImpl(), (char*)aTypeOfAttribute.c_str()); anAttr = SALOMEDS_GenericAttribute::CreateAttribute(aGA); } return _PTR(GenericAttribute)(anAttr); } bool SALOMEDS_StudyBuilder::FindAttribute(const _PTR(SObject)& theSO, _PTR(GenericAttribute)& anAttribute, const std::string& aTypeOfAttribute) { bool ret; if(!theSO) return false; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { SALOMEDS::Locker lock; DF_Attribute* anAttr = NULL; ret = _local_impl->FindAttribute(*(aSO->GetLocalImpl()), anAttr, aTypeOfAttribute); if(ret) { SALOMEDSImpl_GenericAttribute* aGA = dynamic_cast(anAttr); anAttribute = _PTR(GenericAttribute)(SALOMEDS_GenericAttribute::CreateAttribute(aGA)); } } else { SALOMEDS::GenericAttribute_var aGA; ret = _corba_impl->FindAttribute(aSO->GetCORBAImpl(), aGA.out(), (char*)aTypeOfAttribute.c_str()); if(ret) anAttribute = _PTR(GenericAttribute)(SALOMEDS_GenericAttribute::CreateAttribute(aGA)); } return ret; } void SALOMEDS_StudyBuilder::RemoveAttribute(const _PTR(SObject)& theSO, const std::string& aTypeOfAttribute) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->RemoveAttribute(*(aSO->GetLocalImpl()), (char*)aTypeOfAttribute.c_str()); } else _corba_impl->RemoveAttribute(aSO->GetCORBAImpl(), (char*)aTypeOfAttribute.c_str()); } void SALOMEDS_StudyBuilder::Addreference(const _PTR(SObject)& me, const _PTR(SObject)& thereferencedObject) { if(!me || !thereferencedObject) { throw DFexception("Invalid arguments"); } SALOMEDS_SObject* aSO = dynamic_cast(me.get()); SALOMEDS_SObject* aRefSO = dynamic_cast(thereferencedObject.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->Addreference(*(aSO->GetLocalImpl()), *(aRefSO->GetLocalImpl())); } else _corba_impl->Addreference(aSO->GetCORBAImpl(), aRefSO->GetCORBAImpl()); } void SALOMEDS_StudyBuilder::RemoveReference(const _PTR(SObject)& me) { if(!me) return; SALOMEDS_SObject* aSO = dynamic_cast(me.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->RemoveReference(*(aSO->GetLocalImpl())); } else _corba_impl->RemoveReference(aSO->GetCORBAImpl()); } void SALOMEDS_StudyBuilder::SetGUID(const _PTR(SObject)& theSO, const std::string& theGUID) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->SetGUID(*(aSO->GetLocalImpl()), theGUID); } else _corba_impl->SetGUID(aSO->GetCORBAImpl(), (char*)theGUID.c_str()); } bool SALOMEDS_StudyBuilder::IsGUID(const _PTR(SObject)& theSO, const std::string& theGUID) { SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->IsGUID(*(aSO->GetLocalImpl()), (char*)theGUID.c_str()); } else ret = _corba_impl->IsGUID(aSO->GetCORBAImpl(), (char*)theGUID.c_str()); return ret; } void SALOMEDS_StudyBuilder::NewCommand() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->NewCommand(); } else _corba_impl->NewCommand(); } void SALOMEDS_StudyBuilder::CommitCommand() { if (_isLocal) { SALOMEDS::Locker lock; try { _local_impl->CommitCommand(); } catch(...) { throw SALOMEDS::StudyBuilder::LockProtection(); } } else _corba_impl->CommitCommand(); } bool SALOMEDS_StudyBuilder::HasOpenCommand() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->HasOpenCommand(); } else ret = _corba_impl->HasOpenCommand(); return ret; } void SALOMEDS_StudyBuilder::AbortCommand() { if (_isLocal) { SALOMEDS::Locker lock; _local_impl->AbortCommand(); } else _corba_impl->AbortCommand(); } void SALOMEDS_StudyBuilder::Undo() { if (_isLocal) { SALOMEDS::Locker lock; try { _local_impl->Undo(); } catch(...) { throw SALOMEDS::StudyBuilder::LockProtection(); } } else _corba_impl->Undo(); } void SALOMEDS_StudyBuilder::Redo() { if (_isLocal) { SALOMEDS::Locker lock; try { _local_impl->Redo(); } catch(...) { throw SALOMEDS::StudyBuilder::LockProtection(); } } else _corba_impl->Redo(); } bool SALOMEDS_StudyBuilder::GetAvailableUndos() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->GetAvailableUndos(); } else ret = _corba_impl->GetAvailableUndos(); return ret; } bool SALOMEDS_StudyBuilder::GetAvailableRedos() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->GetAvailableRedos(); } else ret = _corba_impl->GetAvailableRedos(); return ret; } int SALOMEDS_StudyBuilder::UndoLimit() { int aLimit; if (_isLocal) { SALOMEDS::Locker lock; aLimit = _local_impl->UndoLimit(); } else aLimit = _corba_impl->UndoLimit(); return aLimit; } void SALOMEDS_StudyBuilder::UndoLimit(int theLimit) { if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->UndoLimit(theLimit); } else _corba_impl->UndoLimit(theLimit); } void SALOMEDS_StudyBuilder::CheckLocked() { //There is only local part as CORBA part throws the correct exeception if (_isLocal) { SALOMEDS::Locker lock; try { _local_impl->CheckLocked(); } catch(...) { throw SALOMEDS::StudyBuilder::LockProtection(); } } } void SALOMEDS_StudyBuilder::SetName(const _PTR(SObject)& theSO, const std::string& theValue) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->SetName(*(aSO->GetLocalImpl()), theValue); } else _corba_impl->SetName(aSO->GetCORBAImpl(), (char*)theValue.c_str()); } void SALOMEDS_StudyBuilder::SetComment(const _PTR(SObject)& theSO, const std::string& theValue) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->SetComment(*(aSO->GetLocalImpl()), theValue); } else _corba_impl->SetComment(aSO->GetCORBAImpl(), (char*)theValue.c_str()); } void SALOMEDS_StudyBuilder::SetIOR(const _PTR(SObject)& theSO, const std::string& theValue) { if(!theSO) return; SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); if (_isLocal) { CheckLocked(); SALOMEDS::Locker lock; _local_impl->SetIOR(*(aSO->GetLocalImpl()), theValue); } else _corba_impl->SetIOR(aSO->GetCORBAImpl(), (char*)theValue.c_str()); } SALOMEDS::StudyBuilder_ptr SALOMEDS_StudyBuilder::GetBuilder() { if(_isLocal) { if(!CORBA::is_nil(_corba_impl)) return SALOMEDS::StudyBuilder::_duplicate(_corba_impl); SALOMEDS_StudyBuilder_i* servant = new SALOMEDS_StudyBuilder_i(_local_impl, _orb); SALOMEDS::StudyBuilder_var aBuilder = servant->StudyBuilder::_this(); _corba_impl = SALOMEDS::StudyBuilder::_duplicate(aBuilder); return aBuilder._retn(); } else { return SALOMEDS::StudyBuilder::_duplicate(_corba_impl); } return SALOMEDS::StudyBuilder::_nil(); } void SALOMEDS_StudyBuilder::init_orb() { ORB_INIT &init = *SINGLETON_::Instance(); ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(0 , 0 ); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyBuilder.hxx000077500000000000000000000074671177004724000227400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyBuilder.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_STUDYBUILDER_H__ #define __SALOMEDS_STUDYBUILDER_H__ #include "SALOMEDS_Defines.hxx" #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDS_EXPORT SALOMEDS_StudyBuilder: public SALOMEDSClient_StudyBuilder { private: bool _isLocal; SALOMEDSImpl_StudyBuilder* _local_impl; SALOMEDS::StudyBuilder_var _corba_impl; CORBA::ORB_var _orb; public: SALOMEDS_StudyBuilder(SALOMEDSImpl_StudyBuilder* theBuilder); SALOMEDS_StudyBuilder(SALOMEDS::StudyBuilder_ptr theBuilder); ~SALOMEDS_StudyBuilder(); virtual _PTR(SComponent) NewComponent(const std::string& ComponentDataType); virtual void DefineComponentInstance (const _PTR(SComponent)&, const std::string& ComponentIOR); virtual void RemoveComponent(const _PTR(SComponent)& theSCO); virtual _PTR(SObject) NewObject(const _PTR(SObject)& theFatherObject); virtual _PTR(SObject) NewObjectToTag(const _PTR(SObject)& theFatherObject, int theTag); virtual void AddDirectory(const std::string& thePath); virtual void LoadWith(const _PTR(SComponent)& theSCO, const std::string& theIOR); virtual void Load(const _PTR(SObject)& theSCO); virtual void RemoveObject(const _PTR(SObject)& theSO); virtual void RemoveObjectWithChildren(const _PTR(SObject)& theSO); virtual _PTR(GenericAttribute) FindOrCreateAttribute(const _PTR(SObject)& theSO, const std::string& aTypeOfAttribute); virtual bool FindAttribute(const _PTR(SObject)& theSO, _PTR(GenericAttribute)& theAttribute, const std::string& aTypeOfAttribute); virtual void RemoveAttribute(const _PTR(SObject)& theSO, const std::string& aTypeOfAttribute); virtual void Addreference(const _PTR(SObject)& me, const _PTR(SObject)& thereferencedObject); virtual void RemoveReference(const _PTR(SObject)& me); virtual void SetGUID(const _PTR(SObject)& theSO, const std::string& theGUID); virtual bool IsGUID(const _PTR(SObject)& theSO, const std::string& theGUID); virtual void NewCommand(); virtual void CommitCommand(); virtual bool HasOpenCommand(); virtual void AbortCommand(); virtual void Undo(); virtual void Redo(); virtual bool GetAvailableUndos(); virtual bool GetAvailableRedos(); virtual int UndoLimit(); virtual void UndoLimit(int theLimit); virtual void SetName(const _PTR(SObject)& theSO, const std::string& theValue); virtual void SetComment(const _PTR(SObject)& theSO, const std::string& theValue); virtual void SetIOR(const _PTR(SObject)& theSO, const std::string& theValue); SALOMEDS::StudyBuilder_ptr GetBuilder(); private: void CheckLocked(); void init_orb(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyBuilder_i.cxx000077500000000000000000000463461177004724000232420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyBuilder_i.cxx // Author : Seregy RUIN // Module : SALOME // #include "utilities.h" #include "SALOMEDS_StudyBuilder_i.hxx" #include "SALOMEDS_Study_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS_SComponent_i.hxx" #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "Utils_CorbaException.hxx" #include "Utils_ExceptHandlers.hxx" #include #include #include UNEXPECT_CATCH(SBSalomeException, SALOME::SALOME_Exception); UNEXPECT_CATCH(SBLockProtection, SALOMEDS::StudyBuilder::LockProtection); //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDS_StudyBuilder_i::SALOMEDS_StudyBuilder_i(SALOMEDSImpl_StudyBuilder* theImpl, CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); _impl = theImpl; } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDS_StudyBuilder_i::~SALOMEDS_StudyBuilder_i() {} //============================================================================ /*! Function : NewComponent * Purpose : Create a new component (Scomponent) */ //============================================================================ SALOMEDS::SComponent_ptr SALOMEDS_StudyBuilder_i::NewComponent(const char* DataType) { SALOMEDS::Locker lock; CheckLocked(); //char* aDataType = CORBA::string_dup(DataType); SALOMEDSImpl_SComponent aSCO = _impl->NewComponent(std::string(DataType)); //CORBA::free_string(aDataType); if(aSCO.IsNull()) return SALOMEDS::SComponent::_nil(); SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (aSCO,_orb); return sco._retn(); } //============================================================================ /*! Function : DefineComponentInstance * Purpose : Add IOR attribute of a Scomponent */ //============================================================================ void SALOMEDS_StudyBuilder_i::DefineComponentInstance(SALOMEDS::SComponent_ptr aComponent, CORBA::Object_ptr IOR) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var anID=aComponent->GetID(); SALOMEDSImpl_SComponent aSCO = _impl->GetOwner()->GetSComponent(anID.in()); CORBA::String_var iorstr = _orb->object_to_string(IOR); _impl->DefineComponentInstance(aSCO, (char*)iorstr.in()); } //============================================================================ /*! Function : RemoveComponent * Purpose : Delete a Scomponent */ //============================================================================ void SALOMEDS_StudyBuilder_i::RemoveComponent(SALOMEDS::SComponent_ptr aComponent) { SALOMEDS::Locker lock; CheckLocked(); ASSERT(!CORBA::is_nil(aComponent)); CORBA::String_var cid=aComponent->GetID(); SALOMEDSImpl_SComponent aSCO = _impl->GetOwner()->GetSComponent(cid.in()); _impl->RemoveComponent(aSCO); } //============================================================================ /*! Function : NewObject * Purpose : Create a new SObject */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_StudyBuilder_i::NewObject(SALOMEDS::SObject_ptr theFatherObject) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_SObject aFO, aSO; CORBA::String_var anID=theFatherObject->GetID(); aFO = _impl->GetOwner()->GetSObject(anID.in()); aSO = _impl->NewObject(aFO); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO,_orb); return so._retn(); } //============================================================================ /*! Function : NewObjectToTag * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_StudyBuilder_i::NewObjectToTag(SALOMEDS::SObject_ptr theFatherObject, CORBA::Long atag) { SALOMEDS::Locker lock; CheckLocked(); SALOMEDSImpl_SObject aFO, aSO; aFO = _impl->GetOwner()->GetSObject(theFatherObject->GetID()); aSO = _impl->NewObjectToTag(aFO, atag); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : RemoveObject * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::RemoveObject(SALOMEDS::SObject_ptr anObject) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var anID=anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->RemoveObject(aSO); } //============================================================================ /*! Function : RemoveObjectWithChildren * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::RemoveObjectWithChildren(SALOMEDS::SObject_ptr anObject) { SALOMEDS::Locker lock; CheckLocked(); CORBA::String_var anID=anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->RemoveObjectWithChildren(aSO); } //============================================================================ /*! Function : LoadWith * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::LoadWith(SALOMEDS::SComponent_ptr anSCO, SALOMEDS::Driver_ptr aDriver) throw(SALOME::SALOME_Exception) { SALOMEDS::Locker lock; Unexpect aCatch(SBSalomeException); CORBA::String_var anID=anSCO->GetID(); SALOMEDSImpl_SComponent aSCO = _impl->GetOwner()->GetSComponent(anID.in()); SALOMEDS_Driver_i* driver = new SALOMEDS_Driver_i(aDriver, _orb); bool isDone = _impl->LoadWith(aSCO, driver); delete driver; if(!isDone && _impl->IsError()) { THROW_SALOME_CORBA_EXCEPTION(_impl->GetErrorCode().c_str(),SALOME::BAD_PARAM); } } //============================================================================ /*! Function : Load * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::Load(SALOMEDS::SObject_ptr sco) { MESSAGE ( "This function is not yet implemented"); } //============================================================================ /*! Function : FindOrCreateAttribute * Purpose : Add attribute of given type to SObject, if there is attribute of such type, returns * existing one */ //============================================================================ SALOMEDS::GenericAttribute_ptr SALOMEDS_StudyBuilder_i::FindOrCreateAttribute(SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute) { SALOMEDS::Locker lock; CORBA::String_var anID = anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.inout()); DF_Attribute* anAttr; try { anAttr = _impl->FindOrCreateAttribute(aSO, std::string(aTypeOfAttribute)); } catch (...) { throw SALOMEDS::StudyBuilder::LockProtection(); } SALOMEDS::GenericAttribute_var anAttribute; if(anAttr) anAttribute = SALOMEDS_GenericAttribute_i::CreateAttribute(anAttr, _orb); return anAttribute._retn(); } //============================================================================ /*! Function : FindAttribute * Purpose : Find attribute of given type assigned SObject, returns true if it is found */ //============================================================================ CORBA::Boolean SALOMEDS_StudyBuilder_i::FindAttribute(SALOMEDS::SObject_ptr anObject, SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute) { SALOMEDS::Locker lock; ASSERT(!CORBA::is_nil(anObject)); CORBA::String_var anID = anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); DF_Attribute* anAttr; if(!_impl->FindAttribute(aSO, anAttr, std::string(aTypeOfAttribute))) return false; anAttribute = SALOMEDS_GenericAttribute_i::CreateAttribute(anAttr, _orb); return true; } //============================================================================ /*! Function : RemoveAttribute * Purpose : Remove attribute of given type assigned SObject */ //============================================================================ void SALOMEDS_StudyBuilder_i::RemoveAttribute(SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute) { SALOMEDS::Locker lock; CheckLocked(); ASSERT(!CORBA::is_nil(anObject)); CORBA::String_var anID = anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->RemoveAttribute(aSO, std::string(aTypeOfAttribute)); } //============================================================================ /*! Function : Addreference * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::Addreference(SALOMEDS::SObject_ptr me, SALOMEDS::SObject_ptr theReferencedObject) { SALOMEDS::Locker lock; CheckLocked(); ASSERT(!CORBA::is_nil(me)); ASSERT(!CORBA::is_nil(theReferencedObject)); SALOMEDSImpl_SObject aSO, aRefSO; CORBA::String_var anID = me->GetID(); aSO = _impl->GetOwner()->GetSObject(anID.in()); anID=theReferencedObject->GetID(); aRefSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->Addreference(aSO, aRefSO); } //============================================================================ /*! Function : RemoveReference * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::RemoveReference(SALOMEDS::SObject_ptr me) { SALOMEDS::Locker lock; CheckLocked(); ASSERT(!CORBA::is_nil(me)); CORBA::String_var anID = me->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->RemoveReference(aSO); } //============================================================================ /*! Function : AddDirectory * Purpose : adds a new directory with a path = thePath */ //============================================================================ void SALOMEDS_StudyBuilder_i::AddDirectory(const char* thePath) { SALOMEDS::Locker lock; CheckLocked(); if(thePath == NULL || strlen(thePath) == 0) throw SALOMEDS::Study::StudyInvalidDirectory(); if(!_impl->AddDirectory(std::string(thePath))) { std::string anErrorCode = _impl->GetErrorCode(); if(anErrorCode == "StudyNameAlreadyUsed") throw SALOMEDS::Study::StudyNameAlreadyUsed(); if(anErrorCode == "StudyInvalidDirectory") throw SALOMEDS::Study::StudyInvalidDirectory(); if(anErrorCode == "StudyInvalidComponent") throw SALOMEDS::Study::StudyInvalidComponent(); } } //============================================================================ /*! Function : SetGUID * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::SetGUID(SALOMEDS::SObject_ptr anObject, const char* theGUID) { SALOMEDS::Locker lock; CheckLocked(); ASSERT(!CORBA::is_nil(anObject)); CORBA::String_var anID=anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->SetGUID(aSO, std::string(theGUID)); } //============================================================================ /*! Function : IsGUID * Purpose : */ //============================================================================ bool SALOMEDS_StudyBuilder_i::IsGUID(SALOMEDS::SObject_ptr anObject, const char* theGUID) { SALOMEDS::Locker lock; ASSERT(!CORBA::is_nil(anObject)); CORBA::String_var anID=anObject->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); return _impl->IsGUID(aSO, std::string(theGUID)); } //============================================================================ /*! Function : NewCommand * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::NewCommand() { SALOMEDS::Locker lock; _impl->NewCommand(); } //============================================================================ /*! Function : CommitCommand * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::CommitCommand() throw (SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); try { _impl->CommitCommand(); } catch(...) { MESSAGE("Locked document modification !!!"); throw SALOMEDS::StudyBuilder::LockProtection(); } } //============================================================================ /*! Function : HasOpenCommand * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_StudyBuilder_i::HasOpenCommand() { SALOMEDS::Locker lock; return _impl->HasOpenCommand(); } //============================================================================ /*! Function : AbortCommand * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::AbortCommand() { SALOMEDS::Locker lock; _impl->AbortCommand(); } //============================================================================ /*! Function : Undo * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::Undo() throw (SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); try { _impl->Undo(); } catch(...) { MESSAGE("Locked document modification !!!"); throw SALOMEDS::StudyBuilder::LockProtection(); } } //============================================================================ /*! Function : Redo * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::Redo() throw (SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); try { _impl->Redo(); } catch(...) { MESSAGE("Locked document modification !!!"); throw SALOMEDS::StudyBuilder::LockProtection(); } } //============================================================================ /*! Function : GetAvailableUndos * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_StudyBuilder_i::GetAvailableUndos() { SALOMEDS::Locker lock; return _impl->GetAvailableUndos(); } //============================================================================ /*! Function : GetAvailableRedos * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_StudyBuilder_i::GetAvailableRedos() { SALOMEDS::Locker lock; return _impl->GetAvailableRedos(); } //============================================================================ /*! Function : UndoLimit * Purpose : */ //============================================================================ CORBA::Long SALOMEDS_StudyBuilder_i::UndoLimit() { SALOMEDS::Locker lock; return _impl->UndoLimit(); } //============================================================================ /*! Function : UndoLimit * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::UndoLimit(CORBA::Long n) { SALOMEDS::Locker lock; CheckLocked(); _impl->UndoLimit(n); } //============================================================================ /*! Function : CheckLocked * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::CheckLocked() throw (SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); try { _impl->CheckLocked(); } catch(...) { throw SALOMEDS::StudyBuilder::LockProtection(); } } //============================================================================ /*! Function : SetName * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::SetName(SALOMEDS::SObject_ptr theSO, const char* theValue) throw(SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); CheckLocked(); CORBA::String_var anID=theSO->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->SetName(aSO, std::string(theValue)); } //============================================================================ /*! Function : SetComment * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::SetComment(SALOMEDS::SObject_ptr theSO, const char* theValue) throw(SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); CheckLocked(); CORBA::String_var anID=theSO->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->SetComment(aSO, std::string(theValue)); } //============================================================================ /*! Function : SetIOR * Purpose : */ //============================================================================ void SALOMEDS_StudyBuilder_i::SetIOR(SALOMEDS::SObject_ptr theSO, const char* theValue) throw(SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(SBLockProtection); CheckLocked(); CORBA::String_var anID=theSO->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetOwner()->GetSObject(anID.in()); _impl->SetIOR(aSO, std::string(theValue)); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyBuilder_i.hxx000077500000000000000000000112011177004724000232250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyBuilder_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_STUDYBUILDER_I_H__ #define __SALOMEDS_STUDYBUILDER_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include "SALOMEDSImpl_StudyBuilder.hxx" class SALOMEDS_StudyBuilder_i: public POA_SALOMEDS::StudyBuilder { private: CORBA::ORB_var _orb; SALOMEDSImpl_StudyBuilder* _impl; public: SALOMEDS_StudyBuilder_i(SALOMEDSImpl_StudyBuilder*, CORBA::ORB_ptr); ~SALOMEDS_StudyBuilder_i(); //! NewComponent /*! \param ComponentDataType \return */ virtual SALOMEDS::SComponent_ptr NewComponent(const char* ComponentDataType); //! DefineComponentInstance /*! \param SComponent_ptr \param ComponentIOR */ virtual void DefineComponentInstance (SALOMEDS::SComponent_ptr, CORBA::Object_ptr ComponentIOR); //! /*! \param aComponent */ virtual void RemoveComponent(SALOMEDS::SComponent_ptr aComponent); //! /*! \param theFatherObject \return */ virtual SALOMEDS::SObject_ptr NewObject(SALOMEDS::SObject_ptr theFatherObject); //! /*! \param theFatherObject \param atag \return */ virtual SALOMEDS::SObject_ptr NewObjectToTag(SALOMEDS::SObject_ptr theFatherObject, CORBA::Long atag); /*! The methods adds a new subdirectory, the path can be absolute or relative (then the current context is used) */ virtual void AddDirectory(const char* thePath); virtual void LoadWith(SALOMEDS::SComponent_ptr sco, SALOMEDS::Driver_ptr Engine) throw(SALOME::SALOME_Exception); virtual void Load(SALOMEDS::SObject_ptr sco); virtual void RemoveObject(SALOMEDS::SObject_ptr anObject); virtual void RemoveObjectWithChildren(SALOMEDS::SObject_ptr anObject); virtual SALOMEDS::GenericAttribute_ptr FindOrCreateAttribute(SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute); virtual CORBA::Boolean FindAttribute(SALOMEDS::SObject_ptr anObject, SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute); virtual void RemoveAttribute(SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute); virtual void Addreference(SALOMEDS::SObject_ptr me, SALOMEDS::SObject_ptr thereferencedObject); virtual void RemoveReference(SALOMEDS::SObject_ptr me); virtual void SetGUID(SALOMEDS::SObject_ptr anObject, const char* theGUID); virtual bool IsGUID(SALOMEDS::SObject_ptr anObject, const char* theGUID); virtual void NewCommand(); virtual void CommitCommand() throw(SALOMEDS::StudyBuilder::LockProtection); virtual CORBA::Boolean HasOpenCommand(); virtual void AbortCommand(); virtual void Undo() throw(SALOMEDS::StudyBuilder::LockProtection); virtual void Redo() throw(SALOMEDS::StudyBuilder::LockProtection); CORBA::Boolean GetAvailableUndos(); CORBA::Boolean GetAvailableRedos(); CORBA::Boolean IsSaved(); CORBA::Boolean IsModified(); virtual CORBA::Long UndoLimit(); virtual void UndoLimit(CORBA::Long); void CheckLocked() throw (SALOMEDS::StudyBuilder::LockProtection); virtual void SetName(SALOMEDS::SObject_ptr theSO, const char* theValue) throw(SALOMEDS::StudyBuilder::LockProtection); virtual void SetComment(SALOMEDS::SObject_ptr theSO, const char* theValue) throw(SALOMEDS::StudyBuilder::LockProtection); virtual void SetIOR(SALOMEDS::SObject_ptr theSO, const char* theValue) throw(SALOMEDS::StudyBuilder::LockProtection); SALOMEDSImpl_StudyBuilder* GetImpl() { return _impl; } }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyManager.cxx000077500000000000000000000232551177004724000227100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_StudyManager.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_StudyManager.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_Study.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDSImpl_Study.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Basics_Utils.hxx" #ifdef WIN32 #include #else #include #include #endif SALOMEDS_Driver_i* GetDriver(const SALOMEDSImpl_SObject& theObject, CORBA::ORB_ptr orb); SALOMEDS_StudyManager::SALOMEDS_StudyManager(SALOMEDS::StudyManager_ptr theManager) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif CORBA::LongLong addr = theManager->GetLocalImpl(Kernel_Utils::GetHostname().c_str(), pid, _isLocal); if(_isLocal) { _local_impl = reinterpret_cast(addr); _corba_impl = SALOMEDS::StudyManager::_duplicate(theManager); } else { _local_impl = NULL; _corba_impl = SALOMEDS::StudyManager::_duplicate(theManager); } init_orb(); } SALOMEDS_StudyManager::SALOMEDS_StudyManager() { init_orb(); SALOME_NamingService namingService(_orb); CORBA::Object_var obj = namingService.Resolve( "/myStudyManager" ); SALOMEDS::StudyManager_var theManager = SALOMEDS::StudyManager::_narrow( obj ); ASSERT( !CORBA::is_nil(theManager) ); #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif CORBA::LongLong addr = theManager->GetLocalImpl(Kernel_Utils::GetHostname().c_str(), pid, _isLocal); if(_isLocal) { _local_impl = reinterpret_cast(addr); _corba_impl = SALOMEDS::StudyManager::_duplicate(theManager); } else { _local_impl = NULL; _corba_impl = SALOMEDS::StudyManager::_duplicate(theManager); } } SALOMEDS_StudyManager::~SALOMEDS_StudyManager() { } _PTR(Study) SALOMEDS_StudyManager::NewStudy(const std::string& study_name) { //SRN: Pure CORBA NewStudy as it does more initialization than the local one SALOMEDSClient_Study* aStudy = NULL; SALOMEDS::Study_var aStudy_impl = _corba_impl->NewStudy((char*)study_name.c_str()); if(CORBA::is_nil(aStudy_impl)) return _PTR(Study)(aStudy); aStudy = new SALOMEDS_Study(aStudy_impl); return _PTR(Study)(aStudy); } _PTR(Study) SALOMEDS_StudyManager::Open(const std::string& theStudyUrl) { //SRN: Pure CORBA Open as it does more initialization than the local one SALOMEDSClient_Study* aStudy = NULL; SALOMEDS::Study_var aStudy_impl = _corba_impl->Open((char*)theStudyUrl.c_str()); if(CORBA::is_nil(aStudy_impl)) return _PTR(Study)(aStudy); aStudy = new SALOMEDS_Study(aStudy_impl.in()); return _PTR(Study)(aStudy); } void SALOMEDS_StudyManager::Close(const _PTR(Study)& theStudy) { //SRN: Pure CORBA close as it does more cleaning than the local one SALOMEDS::Study_var aStudy = _corba_impl->GetStudyByID(theStudy->StudyId()); _corba_impl->Close(aStudy); } bool SALOMEDS_StudyManager::Save(const _PTR(Study)& theStudy, bool theMultiFile) { //SRN: Pure CORBA save as the save operation require CORBA in any case SALOMEDS::Study_var aStudy = _corba_impl->GetStudyByID(theStudy->StudyId()); return _corba_impl->Save(aStudy, theMultiFile); } bool SALOMEDS_StudyManager::SaveASCII(const _PTR(Study)& theStudy, bool theMultiFile) { //SRN: Pure CORBA save as the save operation require CORBA in any case SALOMEDS::Study_var aStudy = _corba_impl->GetStudyByID(theStudy->StudyId()); return _corba_impl->SaveASCII(aStudy, theMultiFile); } bool SALOMEDS_StudyManager::SaveAs(const std::string& theUrl, const _PTR(Study)& theStudy, bool theMultiFile) { //SRN: Pure CORBA save as the save operation require CORBA in any case SALOMEDS::Study_var aStudy = _corba_impl->GetStudyByID(theStudy->StudyId()); return _corba_impl->SaveAs((char*)theUrl.c_str(), aStudy, theMultiFile); } bool SALOMEDS_StudyManager::SaveAsASCII(const std::string& theUrl, const _PTR(Study)& theStudy, bool theMultiFile) { //SRN: Pure CORBA save as the save operation require CORBA in any case SALOMEDS::Study_var aStudy = _corba_impl->GetStudyByID(theStudy->StudyId()); return _corba_impl->SaveAsASCII((char*)theUrl.c_str(), aStudy, theMultiFile); } std::vector SALOMEDS_StudyManager::GetOpenStudies() { std::vector aVector; int aLength, i; if (_isLocal) { SALOMEDS::Locker lock; std::vector aSeq = _local_impl->GetOpenStudies(); aLength = aSeq.size(); for(i = 0; i < aLength; i++) aVector.push_back(aSeq[i]->Name()); } else { SALOMEDS::ListOfOpenStudies_var aSeq = _corba_impl->GetOpenStudies(); aLength = aSeq->length(); for(i = 0; i < aLength; i++) aVector.push_back(aSeq[i].in()); } return aVector; } _PTR(Study) SALOMEDS_StudyManager::GetStudyByName(const std::string& theStudyName) { SALOMEDSClient_Study* aStudy = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_Study* aStudy_impl = _local_impl->GetStudyByName(theStudyName); if(!aStudy_impl) return _PTR(Study)(aStudy); aStudy = new SALOMEDS_Study(aStudy_impl); } else { SALOMEDS::Study_var aStudy_impl = _corba_impl->GetStudyByName((char*)theStudyName.c_str()); if(CORBA::is_nil(aStudy_impl)) return _PTR(Study)(aStudy); aStudy = new SALOMEDS_Study(aStudy_impl); } return _PTR(Study)(aStudy); } _PTR(Study) SALOMEDS_StudyManager::GetStudyByID(int theStudyID) { SALOMEDSClient_Study* aStudy = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_Study* aStudy_impl = _local_impl->GetStudyByID(theStudyID); if(!aStudy_impl) return _PTR(Study)(aStudy); aStudy = new SALOMEDS_Study(aStudy_impl); } else { SALOMEDS::Study_var aStudy_impl = _corba_impl->GetStudyByID(theStudyID); if(CORBA::is_nil(aStudy_impl)) return _PTR(Study)(aStudy); aStudy = new SALOMEDS_Study(aStudy_impl); } return _PTR(Study)(aStudy); } bool SALOMEDS_StudyManager::CanCopy(const _PTR(SObject)& theSO) { SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl()); SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb); ret = _local_impl->CanCopy(aSO_impl, aDriver); delete aDriver; } else { ret = _corba_impl->CanCopy(aSO->GetCORBAImpl()); } return ret; } bool SALOMEDS_StudyManager::Copy(const _PTR(SObject)& theSO) { SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl()); SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb); ret = _local_impl->Copy(aSO_impl, aDriver); delete aDriver; } else { ret = _corba_impl->Copy(aSO->GetCORBAImpl()); } return ret; } bool SALOMEDS_StudyManager::CanPaste(const _PTR(SObject)& theSO) { SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); bool ret; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl()); SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb); ret = _local_impl->CanPaste(aSO_impl, aDriver); delete aDriver; } else { ret = _corba_impl->CanPaste(aSO->GetCORBAImpl()); } return ret; } _PTR(SObject) SALOMEDS_StudyManager::Paste(const _PTR(SObject)& theSO) { SALOMEDS_SObject* aSO = dynamic_cast(theSO.get()); SALOMEDSClient_SObject* aResult = NULL; if (_isLocal) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl()); SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb); SALOMEDSImpl_SObject aNewSO = _local_impl->Paste(aSO_impl, aDriver); delete aDriver; if(aNewSO.IsNull()) return _PTR(SObject)(aResult); aResult = new SALOMEDS_SObject(aNewSO); } else { SALOMEDS::SObject_ptr aNewSO = _corba_impl->Paste(aSO->GetCORBAImpl()); if(CORBA::is_nil(aNewSO)) return _PTR(SObject)(aResult); aResult = new SALOMEDS_SObject(aNewSO); } return _PTR(SObject)(aResult); } void SALOMEDS_StudyManager::init_orb() { ORB_INIT &init = *SINGLETON_::Instance(); ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(0 , 0 ); } SALOMEDS_Driver_i* GetDriver(const SALOMEDSImpl_SObject& theObject, CORBA::ORB_ptr orb) { SALOMEDS_Driver_i* driver = NULL; SALOMEDSImpl_SComponent aSCO = theObject.GetFatherComponent(); if(!aSCO.IsNull()) { std::string IOREngine = aSCO.GetIOR(); if(!IOREngine.empty()) { CORBA::Object_var obj = orb->string_to_object(IOREngine.c_str()); SALOMEDS::Driver_var Engine = SALOMEDS::Driver::_narrow(obj) ; driver = new SALOMEDS_Driver_i(Engine, orb); } } return driver; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyManager.hxx000077500000000000000000000051761177004724000227170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyManager.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_STUDYMANAGER_H__ #define __SALOMEDS_STUDYMANAGER_H__ #include #include #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_StudyManager.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class Standard_EXPORT SALOMEDS_StudyManager: public SALOMEDSClient_StudyManager { private: bool _isLocal; SALOMEDSImpl_StudyManager* _local_impl; SALOMEDS::StudyManager_var _corba_impl; CORBA::ORB_var _orb; public: SALOMEDS_StudyManager(SALOMEDS::StudyManager_ptr theManager); SALOMEDS_StudyManager(); ~SALOMEDS_StudyManager(); virtual _PTR(Study) NewStudy(const std::string& study_name); virtual _PTR(Study) Open(const std::string& theStudyUrl); virtual void Close(const _PTR(Study)& theStudy); virtual bool Save(const _PTR(Study)& theStudy, bool theMultiFile); virtual bool SaveASCII(const _PTR(Study)& theStudy, bool theMultiFile); virtual bool SaveAs(const std::string& theUrl, const _PTR(Study)& theStudy, bool theMultiFile); virtual bool SaveAsASCII(const std::string& theUrl, const _PTR(Study)& theStudy, bool theMultiFile); virtual std::vector GetOpenStudies(); virtual _PTR(Study) GetStudyByName(const std::string& theStudyName) ; virtual _PTR(Study) GetStudyByID(int theStudyID) ; virtual bool CanCopy(const _PTR(SObject)& theSO); virtual bool Copy(const _PTR(SObject)& theSO); virtual bool CanPaste(const _PTR(SObject)& theSO); virtual _PTR(SObject) Paste(const _PTR(SObject)& theSO); private: void init_orb(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyManager_i.cxx000077500000000000000000000410111177004724000232060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyManager_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "utilities.h" #include "SALOME_LifeCycleCORBA.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include "SALOMEDS_Study_i.hxx" #include "SALOMEDS_SComponent_i.hxx" #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" #include "Utils_CorbaException.hxx" #include "Utils_ExceptHandlers.hxx" #include "Basics_Utils.hxx" #include "SALOME_GenericObj_i.hh" #include #include #include #ifdef WIN32 #include #else #include #include #endif UNEXPECT_CATCH(SalomeException,SALOME::SALOME_Exception); UNEXPECT_CATCH(LockProtection, SALOMEDS::StudyBuilder::LockProtection); static SALOMEDS_Driver_i* GetDriver(const SALOMEDSImpl_SObject& theObject, CORBA::ORB_ptr orb); static std::map _mapOfPOA; //============================================================================ /*! Function : SALOMEDS_StudyManager_i * Purpose : SALOMEDS_StudyManager_i constructor */ //============================================================================ SALOMEDS_StudyManager_i::SALOMEDS_StudyManager_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr thePOA) { _orb = CORBA::ORB::_duplicate(orb); _poa = PortableServer::POA::_duplicate(thePOA); _name_service = new SALOME_NamingService(_orb); // Study directory creation in the naming service : to register all // open studies in the session _name_service->Create_Directory("/Study"); _impl = new SALOMEDSImpl_StudyManager; _factory = new SALOMEDS_DriverFactory_i(_orb); } //============================================================================ /*! Function : ~SALOMEDS_StudyManager_i * Purpose : SALOMEDS_StudyManager_i destructor */ //============================================================================ SALOMEDS_StudyManager_i::~SALOMEDS_StudyManager_i() { // Destroy directory to register open studies _name_service->Destroy_Directory("/Study"); delete _name_service; delete _factory; delete _impl; } //============================================================================ /*! Function : register_name * Purpose : Register the study Manager in the naming service under the * context name */ //============================================================================ void SALOMEDS_StudyManager_i::register_name(const char * name) { SALOMEDS::StudyManager_var aManager(_this()); _name_service->Register(aManager.in(), name); } //============================================================================ /*! Function : NewStudy * Purpose : Create a New Study of name study_name */ //============================================================================ SALOMEDS::Study_ptr SALOMEDS_StudyManager_i::NewStudy(const char* study_name) { SALOMEDS::Locker lock; SALOMEDSImpl_Study* aStudyImpl = _impl->NewStudy(study_name); if(!aStudyImpl) { MESSAGE("NewStudy : Error : " << _impl->GetErrorCode()); return SALOMEDS::Study::_nil(); } MESSAGE("NewStudy : Creating the CORBA servant holding it... "); SALOMEDS_Study_i *Study_servant = SALOMEDS_Study_i::GetStudyServant(aStudyImpl, _orb); PortableServer::ObjectId_var servantid = _poa->activate_object(Study_servant); // to use poa registered in _mapOfPOA SALOMEDS::Study_var Study = Study_servant->_this(); // Register study in the naming service // Path to acces the study if(!_name_service->Change_Directory("/Study")) MESSAGE( "Unable to access the study directory" ) else _name_service->Register(Study, study_name); // Assign the value of the IOR in the study->root CORBA::String_var IORStudy = _orb->object_to_string(Study); aStudyImpl->SetTransientReference((char*)IORStudy.in()); _mapOfPOA[Study->StudyId()] = _poa; return Study._retn(); } //============================================================================ /*! Function : Open * Purpose : Open a Study from it's persistent reference */ //============================================================================ SALOMEDS::Study_ptr SALOMEDS_StudyManager_i::Open(const char* aUrl) throw(SALOME::SALOME_Exception) { SALOMEDS::Locker lock; Unexpect aCatch(SalomeException); MESSAGE("Begin of SALOMEDS_StudyManager_i::Open"); SALOMEDSImpl_Study* aStudyImpl = _impl->Open(std::string(aUrl)); if ( !aStudyImpl ) THROW_SALOME_CORBA_EXCEPTION("Impossible to Open study from file", SALOME::BAD_PARAM) MESSAGE("Open : Creating the CORBA servant holding it... "); // Temporary aStudyUrl in place of study name SALOMEDS_Study_i * Study_servant = SALOMEDS_Study_i::GetStudyServant(aStudyImpl, _orb); PortableServer::ObjectId_var servantid = _poa->activate_object(Study_servant); // to use poa register in _mapOfPOA SALOMEDS::Study_var Study = Study_servant->_this(); // Assign the value of the IOR in the study->root CORBA::String_var IORStudy = _orb->object_to_string(Study); aStudyImpl->SetTransientReference((char*)IORStudy.in()); _mapOfPOA[Study->StudyId()] = _poa; // Register study in the naming service // Path to acces the study if(!_name_service->Change_Directory("/Study")) MESSAGE( "Unable to access the study directory" ) else _name_service->Register(Study, CORBA::string_dup(aStudyImpl->Name().c_str())); return Study._retn(); } //============================================================================ /*! Function : Close * Purpose : Close a study. * If the study hasn't been saved, ask the user to confirm the * close action without saving */ //============================================================================ void SALOMEDS_StudyManager_i::Close(SALOMEDS::Study_ptr aStudy) { SALOMEDS::Locker lock; if(aStudy->_is_nil()) return; // Destroy study name in the naming service if(_name_service->Change_Directory("/Study")){ CORBA::String_var aString(aStudy->Name()); _name_service->Destroy_Name(aString.in()); } SALOMEDS::unlock(); aStudy->Close(); SALOMEDS::lock(); //remove study servant PortableServer::POA_ptr poa=GetPOA(aStudy); PortableServer::ServantBase* aservant=poa->reference_to_servant(aStudy); PortableServer::ObjectId_var anObjectId = poa->servant_to_id(aservant); poa->deactivate_object(anObjectId.in()); aservant->_remove_ref(); // decrement for the call to reference_to_servant aservant->_remove_ref(); // to delete the object } //============================================================================ /*! Function : Save * Purpose : Save a Study to it's persistent reference */ //============================================================================ CORBA::Boolean SALOMEDS_StudyManager_i::Save(SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile) { SALOMEDS::Locker lock; if(aStudy->_is_nil()) { MESSAGE("Save error: Study is null"); return false; } SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); return _impl->Save(aStudyImpl, _factory, theMultiFile); } CORBA::Boolean SALOMEDS_StudyManager_i::SaveASCII(SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile) { SALOMEDS::Locker lock; if(aStudy->_is_nil()) { MESSAGE("SaveASCII error: Study is null"); return false; } SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); return _impl->SaveASCII(aStudyImpl, _factory, theMultiFile); } //============================================================================= /*! Function : SaveAs * Purpose : Save a study to the persistent reference aUrl */ //============================================================================ CORBA::Boolean SALOMEDS_StudyManager_i::SaveAs(const char* aUrl, SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile) { SALOMEDS::Locker lock; if(aStudy->_is_nil()) { MESSAGE("SaveASCII error: Study is null"); return false; } SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); return _impl->SaveAs(std::string(aUrl), aStudyImpl, _factory, theMultiFile); } CORBA::Boolean SALOMEDS_StudyManager_i::SaveAsASCII(const char* aUrl, SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile) { SALOMEDS::Locker lock; if(aStudy->_is_nil()) { MESSAGE("SaveASCII error: Study is null"); return false; } SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); return _impl->SaveAsASCII(std::string(aUrl), aStudyImpl, _factory, theMultiFile); } //============================================================================ /*! Function : GetOpenStudies * Purpose : Get name list of open studies in the session */ //============================================================================ SALOMEDS::ListOfOpenStudies* SALOMEDS_StudyManager_i::GetOpenStudies() { SALOMEDS::Locker lock; std::vector anOpened = _impl->GetOpenStudies(); int aLength = anOpened.size(); SALOMEDS::ListOfOpenStudies_var _list_open_studies = new SALOMEDS::ListOfOpenStudies; _list_open_studies->length(aLength); if(!aLength) { MESSAGE("No active study in this session"); } else { for (unsigned int ind=0; ind < aLength; ind++) { _list_open_studies[ind] = CORBA::string_dup(anOpened[ind]->Name().c_str()); SCRUTE(_list_open_studies[ind]) ; } } return _list_open_studies._retn(); } //============================================================================ /*! Function : GetStudyByName * Purpose : Get a study from its name */ //============================================================================ SALOMEDS::Study_ptr SALOMEDS_StudyManager_i::GetStudyByName(const char* aStudyName) { SALOMEDS::Locker lock; SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByName(std::string(aStudyName)); if (!aStudyImpl) { MESSAGE(_impl->GetErrorCode().c_str()); return SALOMEDS::Study::_nil(); } SALOMEDS_Study_i* aStudy_servant = SALOMEDS_Study_i::GetStudyServant(aStudyImpl, _orb); return aStudy_servant->_this(); } //============================================================================ /*! Function : GetStudyByID * Purpose : Get a study from its ID */ //============================================================================ SALOMEDS::Study_ptr SALOMEDS_StudyManager_i::GetStudyByID(CORBA::Short aStudyID) { SALOMEDS::Locker lock; SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudyID); if (!aStudyImpl) { MESSAGE(_impl->GetErrorCode().c_str()); return SALOMEDS::Study::_nil(); } SALOMEDS_Study_i* aStudy_servant = SALOMEDS_Study_i::GetStudyServant(aStudyImpl, _orb); return aStudy_servant->_this(); } //============================================================================ /*! Function : CanCopy * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_StudyManager_i::CanCopy(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; SALOMEDS::Study_var aStudy = theObject->GetStudy(); SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); CORBA::String_var anID = theObject->GetID(); SALOMEDSImpl_SObject anObject = aStudyImpl->GetSObject(anID.in()); SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb); bool ret = _impl->CanCopy(anObject, aDriver); delete aDriver; return ret; } //============================================================================ /*! Function : Copy * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_StudyManager_i::Copy(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; SALOMEDS::Study_var aStudy = theObject->GetStudy(); SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); CORBA::String_var anID = theObject->GetID(); SALOMEDSImpl_SObject anObject = aStudyImpl->GetSObject(anID.in()); SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb); bool ret = _impl->Copy(anObject, aDriver); delete aDriver; return ret; } //============================================================================ /*! Function : CanPaste * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_StudyManager_i::CanPaste(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; SALOMEDS::Study_var aStudy = theObject->GetStudy(); SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); CORBA::String_var anID = theObject->GetID(); SALOMEDSImpl_SObject anObject = aStudyImpl->GetSObject(anID.in()); SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb); bool ret = _impl->CanPaste(anObject, aDriver); delete aDriver; return ret; } //============================================================================ /*! Function : Paste * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_StudyManager_i::Paste(SALOMEDS::SObject_ptr theObject) throw(SALOMEDS::StudyBuilder::LockProtection) { SALOMEDS::Locker lock; Unexpect aCatch(LockProtection); SALOMEDS::Study_var aStudy = theObject->GetStudy(); SALOMEDSImpl_Study* aStudyImpl = _impl->GetStudyByID(aStudy->StudyId()); CORBA::String_var anID = theObject->GetID(); SALOMEDSImpl_SObject anObject = aStudyImpl->GetSObject(anID.in()); SALOMEDSImpl_SObject aNewSO; try { SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb); aNewSO = _impl->Paste(anObject, aDriver); delete aDriver; } catch (...) { throw SALOMEDS::StudyBuilder::LockProtection(); } SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aNewSO, _orb); return so._retn(); } SALOMEDS_Driver_i* GetDriver(const SALOMEDSImpl_SObject& theObject, CORBA::ORB_ptr orb) { SALOMEDS_Driver_i* driver = NULL; SALOMEDSImpl_SComponent aSCO = theObject.GetFatherComponent(); if(!aSCO.IsNull()) { std::string IOREngine = aSCO.GetIOR(); if(!IOREngine.empty()) { CORBA::Object_var obj = orb->string_to_object(IOREngine.c_str()); SALOMEDS::Driver_var Engine = SALOMEDS::Driver::_narrow(obj) ; driver = new SALOMEDS_Driver_i(Engine, orb); } } return driver; } PortableServer::POA_ptr SALOMEDS_StudyManager_i::GetPOA(const SALOMEDS::Study_ptr theStudy) { if (_mapOfPOA.find(theStudy->StudyId()) != _mapOfPOA.end()) return _mapOfPOA[theStudy->StudyId()]; return PortableServer::POA::_nil(); } CORBA::Long SALOMEDS_StudyManager_i::getPID() { #ifdef WIN32 return (CORBA::Long)_getpid(); #else return (CORBA::Long)getpid(); #endif } void SALOMEDS_StudyManager_i::ShutdownWithExit() { exit( EXIT_SUCCESS ); } //=========================================================================== // PRIVATE FUNCTIONS //=========================================================================== CORBA::LongLong SALOMEDS_StudyManager_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif isLocal = (strcmp(theHostname, Kernel_Utils::GetHostname().c_str()) == 0 && pid == thePID)?1:0; return reinterpret_cast(_impl); } //=========================================================================== namespace SALOMEDS { PortableServer::ServantBase_var GetServant(CORBA::Object_ptr theObject, PortableServer::POA_ptr thePOA) { if(CORBA::is_nil(theObject)) return NULL; try{ return thePOA->reference_to_servant(theObject); }catch(...){ return NULL; } } } //=========================================================================== salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_StudyManager_i.hxx000077500000000000000000000116141177004724000232210ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_StudyManager_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_STUDYMANAGER_I_H__ #define __SALOMEDS_STUDYMANAGER_I_H__ // std C++ headers #include #ifndef WIN32 #include #endif // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) // Naming Service header #include "SALOME_NamingService.hxx" #include #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDSImpl_StudyManager.hxx" namespace SALOMEDS{ // To convert CORBA::Object to PortableServer::ServantBase PortableServer::ServantBase_var GetServant(CORBA::Object_ptr, PortableServer::POA_ptr); } class Standard_EXPORT SALOMEDS_StudyManager_i: public POA_SALOMEDS::StudyManager { private: CORBA::ORB_var _orb; PortableServer::POA_var _poa; SALOMEDSImpl_StudyManager* _impl; SALOME_NamingService* _name_service; SALOMEDS_DriverFactory_i* _factory; public: //! standard constructor SALOMEDS_StudyManager_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr thePOA); //! standard destructor virtual ~SALOMEDS_StudyManager_i(); //! method to Register study Manager in the naming service /*! \param char* arguments, the context to register the study manager in the NS */ void register_name(const char * name); //! method to Create a New Study of name study_name /*! \param char* arguments, the new study name \return Study_ptr arguments */ virtual SALOMEDS::Study_ptr NewStudy(const char* study_name); //! method to Open a Study from it's persistent reference /*! \param char* arguments, the study URL \return Study_ptr arguments */ virtual SALOMEDS::Study_ptr Open(const char* aStudyUrl) throw (SALOME::SALOME_Exception); //! method to close a Study /*! \param Study_ptr arguments */ virtual void Close( SALOMEDS::Study_ptr aStudy); //! method to save a Study /*! \param Study_ptr arguments */ virtual CORBA::Boolean Save( SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile); virtual CORBA::Boolean SaveASCII( SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile); //! method to save a Study to the persistent reference aUrl /*! \param char* arguments, the new URL of the study \param Study_ptr arguments */ virtual CORBA::Boolean SaveAs(const char* aUrl, SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile); virtual CORBA::Boolean SaveAsASCII(const char* aUrl, SALOMEDS::Study_ptr aStudy, CORBA::Boolean theMultiFile); //! method to Get name list of open studies in the session /*! \return ListOfOpenStudies* arguments */ virtual SALOMEDS::ListOfOpenStudies* GetOpenStudies(); //! method to get a Study from it's name /*! \param char* arguments, the study name \return Study_ptr arguments */ virtual SALOMEDS::Study_ptr GetStudyByName(const char* aStudyName) ; //! method to get a Study from it's ID /*! \param char* arguments, the study ID \return Study_ptr arguments */ virtual SALOMEDS::Study_ptr GetStudyByID(CORBA::Short aStudyID) ; virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean Copy(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean CanPaste(SALOMEDS::SObject_ptr theObject); virtual SALOMEDS::SObject_ptr Paste(SALOMEDS::SObject_ptr theObject) throw(SALOMEDS::StudyBuilder::LockProtection); virtual char* ConvertObjectToIOR(CORBA::Object_ptr theObject) {return _orb->object_to_string(theObject); } virtual CORBA::Object_ptr ConvertIORToObject(const char* theIOR) { return _orb->string_to_object(theIOR); }; void ping(){}; CORBA::Long getPID(); void ShutdownWithExit(); virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); static PortableServer::POA_ptr GetPOA(const SALOMEDS::Study_ptr theStudy); void Shutdown() { if(!CORBA::is_nil(_orb)) _orb->shutdown(0); } }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Study_i.cxx000077500000000000000000001243761177004724000217330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Study_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "utilities.h" #include "SALOMEDS_Study_i.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include "SALOMEDS_UseCaseIterator_i.hxx" #include "SALOMEDS_GenericAttribute_i.hxx" #include "SALOMEDS_AttributeStudyProperties_i.hxx" #include "SALOMEDS_AttributeParameter_i.hxx" #include "SALOMEDS_ChildIterator_i.hxx" #include "SALOMEDS_Driver_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_ChildIterator.hxx" #include "SALOMEDSImpl_IParameters.hxx" #include "SALOMEDSImpl_Callback.hxx" #include "DF_Label.hxx" #include "DF_Attribute.hxx" #include "Basics_Utils.hxx" #ifdef WIN32 #include #else #include #include #endif class Notifier: public SALOMEDSImpl_AbstractCallback { public: Notifier(CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); } //============================================================================ /*! Function : addSO_Notification * Purpose : This function tells all the observers that a SO has been added */ //============================================================================ virtual bool addSO_Notification(const SALOMEDSImpl_SObject& theSObject) { std::string anID=theSObject.GetID(); const char* cID=anID.c_str(); for (ObsListIter it (myObservers.begin()); it != myObservers.end(); ++it) { it->first->notifyObserverID(cID,1); } return true; // NGE return always true but can be modified if needed } //============================================================================ /*! Function : removeSO_Notification * Purpose : This function tells all the observers that a SO has been removed */ //============================================================================ virtual bool removeSO_Notification(const SALOMEDSImpl_SObject& theSObject) { std::string anID=theSObject.GetID(); const char* cID=anID.c_str(); for (ObsListIter it (myObservers.begin()); it != myObservers.end(); ++it) { it->first->notifyObserverID(cID,2); } return true; // NGE return always true but can be modified if needed } //============================================================================ /*! Function : modifySO_Notification * Purpose : This function tells all the observers that a SO has been modified */ //============================================================================ virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject, int reason) { for (ObsListIter it (myObservers.begin()); it != myObservers.end(); ++it) { if(it->second) { std::string anID=theSObject.GetID(); const char* cID=anID.c_str(); it->first->notifyObserverID(cID,reason); } } return true; // NGE return always true but can be modified if needed } //============================================================================ /*! Function : attach * Purpose : register an Observer */ //============================================================================ virtual void attach(SALOMEDS::Observer_ptr theObs, bool modify) { myObservers.push_back(std::pair< SALOMEDS::Observer_var, bool > (SALOMEDS::Observer::_duplicate(theObs),modify)); } private: typedef std::list< std::pair< SALOMEDS::Observer_var, bool > > ObsList; typedef ObsList::iterator ObsListIter; ObsList myObservers; CORBA::ORB_var _orb; }; std::map SALOMEDS_Study_i::_mapOfStudies; //============================================================================ /*! Function : SALOMEDS_Study_i * Purpose : SALOMEDS_Study_i constructor */ //============================================================================ SALOMEDS_Study_i::SALOMEDS_Study_i(SALOMEDSImpl_Study* theImpl, CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); _impl = theImpl; _notifier = new Notifier(_orb); theImpl->setNotifier(_notifier); _builder = new SALOMEDS_StudyBuilder_i(_impl->NewBuilder(), _orb); } //============================================================================ /*! Function : ~SALOMEDS_Study_i * Purpose : SALOMEDS_Study_i destructor */ //============================================================================ SALOMEDS_Study_i::~SALOMEDS_Study_i() { //delete the builder servant PortableServer::POA_var poa=_builder->_default_POA(); PortableServer::ObjectId_var anObjectId = poa->servant_to_id(_builder); poa->deactivate_object(anObjectId.in()); _builder->_remove_ref(); //delete implementation delete _impl; _mapOfStudies.erase(_impl); } //============================================================================ /*! Function : GetPersistentReference * Purpose : Get persistent reference of study (idem URL()) */ //============================================================================ char* SALOMEDS_Study_i::GetPersistentReference() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->GetPersistentReference().c_str()); } //============================================================================ /*! Function : GetTransientReference * Purpose : Get IOR of the Study (registred in OCAF document in doc->Root) */ //============================================================================ char* SALOMEDS_Study_i::GetTransientReference() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->GetTransientReference().c_str()); } //============================================================================ /*! Function : IsEmpty * Purpose : Detect if study is empty */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsEmpty() { SALOMEDS::Locker lock; return _impl->IsEmpty(); } //============================================================================ /*! Function : FindComponent * Purpose : Find a Component with ComponentDataType = aComponentName */ //============================================================================ SALOMEDS::SComponent_ptr SALOMEDS_Study_i::FindComponent (const char* aComponentName) { SALOMEDS::Locker lock; SALOMEDSImpl_SComponent aCompImpl = _impl->FindComponent(std::string(aComponentName)); if(aCompImpl.IsNull()) return SALOMEDS::SComponent::_nil(); SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (aCompImpl, _orb); return sco._retn(); } //============================================================================ /*! Function : FindComponentID * Purpose : Find a Component from it's ID */ //============================================================================ SALOMEDS::SComponent_ptr SALOMEDS_Study_i::FindComponentID(const char* aComponentID) { SALOMEDS::Locker lock; SALOMEDSImpl_SComponent aCompImpl = _impl->FindComponentID(std::string((char*)aComponentID)); if(aCompImpl.IsNull()) return SALOMEDS::SComponent::_nil(); SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (aCompImpl, _orb); return sco._retn(); } //============================================================================ /*! Function : FindObject * Purpose : Find an Object with SALOMEDS::Name = anObjectName */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_Study_i::FindObject(const char* anObjectName) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO = _impl->FindObject(std::string((char*)anObjectName)); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); if(aSO.IsComponent()) { SALOMEDSImpl_SComponent aSCO = aSO; SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (aSCO, _orb); return sco._retn(); } SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : FindObjectID * Purpose : Find an Object with ID = anObjectID */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_Study_i::FindObjectID(const char* anObjectID) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO = _impl->FindObjectID(std::string((char*)anObjectID)); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : CreateObjectID * Purpose : Creates an Object with ID = anObjectID */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_Study_i::CreateObjectID(const char* anObjectID) { SALOMEDS::Locker lock; if(!anObjectID || strlen(anObjectID) == 0) return SALOMEDS::SObject::_nil(); SALOMEDSImpl_SObject aSO = _impl->CreateObjectID((char*)anObjectID); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : FindObjectByName * Purpose : Find Objects with SALOMEDS::Name = anObjectName in a Component * : with ComponentDataType = aComponentName */ //============================================================================ SALOMEDS::Study::ListOfSObject* SALOMEDS_Study_i::FindObjectByName( const char* anObjectName, const char* aComponentName ) { SALOMEDS::Locker lock; std::vector aSeq = _impl->FindObjectByName(std::string((char*)anObjectName), std::string((char*)aComponentName)); int aLength = aSeq.size(); SALOMEDS::Study::ListOfSObject_var listSO = new SALOMEDS::Study::ListOfSObject ; listSO->length(aLength); for(int i = 0; iFindObjectIOR(std::string((char*)anObjectIOR)); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : FindObjectByPath * Purpose : Find an Object by its path = thePath */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_Study_i::FindObjectByPath(const char* thePath) { SALOMEDS::Locker lock; SALOMEDSImpl_SObject aSO = _impl->FindObjectByPath(std::string((char*)thePath)); if(aSO.IsNull()) return SALOMEDS::SObject::_nil(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : GetObjectPath * Purpose : */ //============================================================================ char* SALOMEDS_Study_i::GetObjectPath(CORBA::Object_ptr theObject) { SALOMEDS::Locker lock; std::string aPath(""); if(CORBA::is_nil(theObject)) return CORBA::string_dup(aPath.c_str()); SALOMEDSImpl_SObject aSO; SALOMEDS::SObject_var aSObj = SALOMEDS::SObject::_narrow(theObject); if(!CORBA::is_nil(aSObj)) { aSO = _impl->FindObjectID(aSObj->GetID()); } else { aSO = _impl->FindObjectIOR(_orb->object_to_string(theObject)); } if(aSO.IsNull()) return CORBA::string_dup(aPath.c_str()); aPath = _impl->GetObjectPath(aSO); return CORBA::string_dup(aPath.c_str()); } //============================================================================ /*! Function : SetContext * Purpose : Sets the current context */ //============================================================================ void SALOMEDS_Study_i::SetContext(const char* thePath) { SALOMEDS::Locker lock; _impl->SetContext(std::string((char*)thePath)); if(_impl->IsError() && _impl->GetErrorCode() == "InvalidContext") throw SALOMEDS::Study::StudyInvalidContext(); } //============================================================================ /*! Function : GetContext * Purpose : Gets the current context */ //============================================================================ char* SALOMEDS_Study_i::GetContext() { SALOMEDS::Locker lock; if(!_impl->HasCurrentContext()) throw SALOMEDS::Study::StudyInvalidContext(); return CORBA::string_dup(_impl->GetContext().c_str()); } //============================================================================ /*! Function : GetObjectNames * Purpose : method to get all object names in the given context (or in the current context, if 'theContext' is empty) */ //============================================================================ SALOMEDS::ListOfStrings* SALOMEDS_Study_i::GetObjectNames(const char* theContext) { SALOMEDS::Locker lock; SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings; if (strlen(theContext) == 0 && !_impl->HasCurrentContext()) throw SALOMEDS::Study::StudyInvalidContext(); std::vector aSeq = _impl->GetObjectNames(std::string((char*)theContext)); if (_impl->GetErrorCode() == "InvalidContext") throw SALOMEDS::Study::StudyInvalidContext(); int aLength = aSeq.size(); aResult->length(aLength); for (int anIndex = 0; anIndex < aLength; anIndex++) { aResult[anIndex] = CORBA::string_dup(aSeq[anIndex].c_str()); } return aResult._retn(); } //============================================================================ /*! Function : GetDirectoryNames * Purpose : method to get all directory names in the given context (or in the current context, if 'theContext' is empty) */ //============================================================================ SALOMEDS::ListOfStrings* SALOMEDS_Study_i::GetDirectoryNames(const char* theContext) { SALOMEDS::Locker lock; SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings; if (strlen(theContext) == 0 && !_impl->HasCurrentContext()) throw SALOMEDS::Study::StudyInvalidContext(); std::vector aSeq = _impl->GetDirectoryNames(std::string((char*)theContext)); if (_impl->GetErrorCode() == "InvalidContext") throw SALOMEDS::Study::StudyInvalidContext(); int aLength = aSeq.size(); aResult->length(aLength); for (int anIndex = 0; anIndex < aLength; anIndex++) { aResult[anIndex] = CORBA::string_dup(aSeq[anIndex].c_str()); } return aResult._retn(); } //============================================================================ /*! Function : GetFileNames * Purpose : method to get all file names in the given context (or in the current context, if 'theContext' is empty) */ //============================================================================ SALOMEDS::ListOfStrings* SALOMEDS_Study_i::GetFileNames(const char* theContext) { SALOMEDS::Locker lock; SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings; if (strlen(theContext) == 0 && !_impl->HasCurrentContext()) throw SALOMEDS::Study::StudyInvalidContext(); std::vector aSeq = _impl->GetFileNames(std::string((char*)theContext)); if (_impl->GetErrorCode() == "InvalidContext") throw SALOMEDS::Study::StudyInvalidContext(); int aLength = aSeq.size(); aResult->length(aLength); for (int anIndex = 0; anIndex < aLength; anIndex++) { aResult[anIndex] = CORBA::string_dup(aSeq[anIndex].c_str()); } return aResult._retn(); } //============================================================================ /*! Function : GetComponentNames * Purpose : method to get all components names * SRN: Note, theContext can be any, it doesn't matter */ //============================================================================ SALOMEDS::ListOfStrings* SALOMEDS_Study_i::GetComponentNames(const char* theContext) { SALOMEDS::Locker lock; SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings; std::vector aSeq = _impl->GetComponentNames(std::string((char*)theContext)); int aLength = aSeq.size(); aResult->length(aLength); for(int anIndex = 0; anIndex < aLength; anIndex++) { aResult[anIndex] = CORBA::string_dup(aSeq[anIndex].c_str()); } return aResult._retn(); } //============================================================================ /*! Function : NewChildIterator * Purpose : Create a ChildIterator from an SObject */ //============================================================================ SALOMEDS::ChildIterator_ptr SALOMEDS_Study_i::NewChildIterator(SALOMEDS::SObject_ptr theSO) { SALOMEDS::Locker lock; CORBA::String_var anID=theSO->GetID(); SALOMEDSImpl_SObject aSO = _impl->GetSObject(anID.in()); SALOMEDSImpl_ChildIterator anItr(aSO); //Create iterator SALOMEDS_ChildIterator_i* it_servant = new SALOMEDS_ChildIterator_i(anItr, _orb); return it_servant->_this(); } //============================================================================ /*! Function : NewComponentIterator * Purpose : Create a SComponentIterator */ //============================================================================ SALOMEDS::SComponentIterator_ptr SALOMEDS_Study_i::NewComponentIterator() { SALOMEDS::Locker lock; SALOMEDS_SComponentIterator_i* _it = new SALOMEDS_SComponentIterator_i(_impl->NewComponentIterator(), _orb); _it->Init(); return _it->_this(); } //============================================================================ /*! Function : NewBuilder * Purpose : Create a StudyBuilder */ //============================================================================ SALOMEDS::StudyBuilder_ptr SALOMEDS_Study_i::NewBuilder() { SALOMEDS::Locker lock; return _builder->_this(); } //============================================================================ /*! Function : Name * Purpose : get study name */ //============================================================================ char* SALOMEDS_Study_i::Name() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->Name().c_str()); } //============================================================================ /*! Function : Name * Purpose : set study name */ //============================================================================ void SALOMEDS_Study_i::Name(const char* name) { SALOMEDS::Locker lock; _impl->Name(std::string((char*)name)); } //============================================================================ /*! Function : IsSaved * Purpose : get if study has been saved */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsSaved() { SALOMEDS::Locker lock; return _impl->IsSaved(); } //============================================================================ /*! Function : IsSaved * Purpose : set if study has been saved */ //============================================================================ void SALOMEDS_Study_i::IsSaved(CORBA::Boolean save) { SALOMEDS::Locker lock; _impl->IsSaved(save); } //============================================================================ /*! Function : IsModified * Purpose : Detect if a Study has been modified since it has been saved */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsModified() { SALOMEDS::Locker lock; return _impl->IsModified(); } //============================================================================ /*! Function : Modified * Purpose : Sets a Modified flag of a Study to True */ //============================================================================ void SALOMEDS_Study_i::Modified() { SALOMEDS::Locker lock; return _impl->Modify(); } //============================================================================ /*! Function : URL * Purpose : get URL of the study (persistent reference of the study) */ //============================================================================ char* SALOMEDS_Study_i::URL() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->URL().c_str()); } //============================================================================ /*! Function : URL * Purpose : set URL of the study (persistent reference of the study) */ //============================================================================ void SALOMEDS_Study_i::URL(const char* url) { SALOMEDS::Locker lock; _impl->URL(std::string((char*)url)); } CORBA::Short SALOMEDS_Study_i::StudyId() { SALOMEDS::Locker lock; return _impl->StudyId(); } void SALOMEDS_Study_i::StudyId(CORBA::Short id) { SALOMEDS::Locker lock; _impl->StudyId(id); } void SALOMEDS_Study_i::UpdateIORLabelMap(const char* anIOR,const char* anEntry) { SALOMEDS::Locker lock; _impl->UpdateIORLabelMap(std::string((char*)anIOR), std::string((char*)anEntry)); } SALOMEDS::Study_ptr SALOMEDS_Study_i::GetStudy(const DF_Label& theLabel, CORBA::ORB_ptr orb) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeIOR* Att = NULL; if ((Att=(SALOMEDSImpl_AttributeIOR*)theLabel.Root().FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))){ char* IOR = CORBA::string_dup(Att->Value().c_str()); CORBA::Object_var obj = orb->string_to_object(IOR); SALOMEDS::Study_ptr aStudy = SALOMEDS::Study::_narrow(obj) ; ASSERT(!CORBA::is_nil(aStudy)); return SALOMEDS::Study::_duplicate(aStudy); } else { MESSAGE("GetStudy: Problem to get study"); } return SALOMEDS::Study::_nil(); } SALOMEDS_Study_i* SALOMEDS_Study_i::GetStudyServant(SALOMEDSImpl_Study* aStudyImpl, CORBA::ORB_ptr orb) { if (_mapOfStudies.find(aStudyImpl) != _mapOfStudies.end()) return _mapOfStudies[aStudyImpl]; else { SALOMEDS_Study_i *Study_servant = new SALOMEDS_Study_i(aStudyImpl, orb); _mapOfStudies[aStudyImpl]=Study_servant; return Study_servant; } } void SALOMEDS_Study_i::IORUpdated(SALOMEDSImpl_AttributeIOR* theAttribute) { SALOMEDS::Locker lock; SALOMEDSImpl_Study::IORUpdated(theAttribute); } SALOMEDS::Study::ListOfSObject* SALOMEDS_Study_i::FindDependances(SALOMEDS::SObject_ptr anObject) { SALOMEDS::Locker lock; SALOMEDS::GenericAttribute_ptr aTarget; if (anObject->FindAttribute(aTarget,"AttributeTarget")) { return SALOMEDS::AttributeTarget::_narrow(aTarget)->Get(); } SALOMEDS::Study::ListOfSObject* aList = new SALOMEDS::Study::ListOfSObject; aList->length(0); return aList; } SALOMEDS::AttributeStudyProperties_ptr SALOMEDS_Study_i::GetProperties() { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeStudyProperties* anAttr = _impl->GetProperties(); SALOMEDS_AttributeStudyProperties_i* SP = new SALOMEDS_AttributeStudyProperties_i(anAttr, _orb); return SP->AttributeStudyProperties::_this(); } char* SALOMEDS_Study_i::GetLastModificationDate() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->GetLastModificationDate().c_str()); } SALOMEDS::ListOfDates* SALOMEDS_Study_i::GetModificationsDate() { SALOMEDS::Locker lock; std::vector aSeq = _impl->GetModificationsDate(); int aLength = aSeq.size(); SALOMEDS::ListOfDates_var aDates = new SALOMEDS::ListOfDates; aDates->length(aLength); for(int anIndex = 0; anIndex < aLength; anIndex++) { aDates[anIndex] = CORBA::string_dup(aSeq[anIndex].c_str()); } return aDates._retn(); } //============================================================================ /*! Function : GetUseCaseBuilder * Purpose : Returns a UseCase builder */ //============================================================================ SALOMEDS::UseCaseBuilder_ptr SALOMEDS_Study_i::GetUseCaseBuilder() { SALOMEDS::Locker lock; SALOMEDS_UseCaseBuilder_i* UCBuilder = new SALOMEDS_UseCaseBuilder_i(_impl->GetUseCaseBuilder(), _orb); return UCBuilder->_this(); } //============================================================================ /*! Function : Close * Purpose : */ //============================================================================ void SALOMEDS_Study_i::Close() { SALOMEDS::Locker lock; RemovePostponed(-1); SALOMEDS::SComponentIterator_var itcomponent = NewComponentIterator(); for (; itcomponent->More(); itcomponent->Next()) { SALOMEDS::SComponent_var sco = itcomponent->Value(); CORBA::String_var compodatatype=sco->ComponentDataType(); MESSAGE ( "Look for an engine for data type :"<< compodatatype); // if there is an associated Engine call its method for closing CORBA::String_var IOREngine; if (sco->ComponentIOR(IOREngine)) { // we have found the associated engine to write the data MESSAGE ( "We have found an engine for data type :"<< compodatatype); //_narrow can throw a corba exception try { CORBA::Object_var obj = _orb->string_to_object(IOREngine); if (!CORBA::is_nil(obj)) { SALOMEDS::Driver_var anEngine = SALOMEDS::Driver::_narrow(obj) ; if (!anEngine->_is_nil()) { SALOMEDS::unlock(); anEngine->Close(sco); SALOMEDS::lock(); } } } catch (CORBA::Exception&) {/*pass*/ } } sco->UnRegister(); } //Does not need any more this iterator itcomponent->UnRegister(); _impl->Close(); } //============================================================================ /*! Function : AddPostponed * Purpose : */ //============================================================================ void SALOMEDS_Study_i::AddPostponed(const char* theIOR) { SALOMEDS::Locker lock; //Not implemented } void SALOMEDS_Study_i::AddCreatedPostponed(const char* theIOR) { SALOMEDS::Locker lock; //Not implemented } //============================================================================ /*! Function : RemovePostponed * Purpose : */ //============================================================================ #ifndef WIN32 void SALOMEDS_Study_i::RemovePostponed(const CORBA::Long /*theUndoLimit*/) #else void SALOMEDS_Study_i::RemovePostponed(CORBA::Long /*theUndoLimit*/) #endif { SALOMEDS::Locker lock; std::vector anIORs = _impl->GetIORs(); int i, aSize = (int)anIORs.size(); for(i = 0; i < aSize; i++) { try { CORBA::Object_var obj = _orb->string_to_object(anIORs[i].c_str()); SALOME::GenericObj_var aGeneric = SALOME::GenericObj::_narrow(obj); //rnv: To avoid double deletion of the Salome Generic Objects: //rnv: 1. First decrement of the reference count in the SALOMEDSImpl_AttributeIOR::~SALOMEDSImpl_AttributeIOR(); //rnv: 2. Second decrement of the reference count in the next string : aGeneric->UnRegister(); //if (!CORBA::is_nil(aGeneric)) aGeneric->UnRegister(); } catch (...) {} } //Not implemented } //============================================================================ /*! Function : UndoPostponed * Purpose : */ //============================================================================ #ifndef WIN32 void SALOMEDS_Study_i::UndoPostponed(const CORBA::Long theWay) #else void SALOMEDS_Study_i::UndoPostponed(CORBA::Long theWay) #endif { SALOMEDS::Locker lock; //Not implemented } //============================================================================ /*! Function : DumpStudy * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::DumpStudy(const char* thePath, const char* theBaseName, CORBA::Boolean isPublished, CORBA::Boolean isMultiFile) { SALOMEDS::Locker lock; std::string aPath((char*)thePath), aBaseName((char*)theBaseName); SALOMEDS_DriverFactory_i* factory = new SALOMEDS_DriverFactory_i(_orb); CORBA::Boolean ret = _impl->DumpStudy(aPath, aBaseName, isPublished, isMultiFile, factory); delete factory; return ret; } //============================================================================ /*! Function : GetCommonParameters * Purpose : */ //============================================================================ SALOMEDS::AttributeParameter_ptr SALOMEDS_Study_i::GetCommonParameters(const char* theID, CORBA::Long theSavePoint) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeParameter* anAttr = _impl->GetCommonParameters(theID, theSavePoint); SALOMEDS_AttributeParameter_i* SP = new SALOMEDS_AttributeParameter_i(anAttr, _orb); return SP->AttributeParameter::_this(); } //============================================================================ /*! Function : GetCommonModuleParameters * Purpose : */ //============================================================================ SALOMEDS::AttributeParameter_ptr SALOMEDS_Study_i::GetModuleParameters(const char* theID, const char* theModuleName, CORBA::Long theSavePoint) { SALOMEDS::Locker lock; SALOMEDSImpl_AttributeParameter* anAttr = _impl->GetModuleParameters(theID, theModuleName, theSavePoint); SALOMEDS_AttributeParameter_i* SP = new SALOMEDS_AttributeParameter_i(anAttr, _orb); return SP->AttributeParameter::_this(); } //============================================================================ /*! Function : SetStudyLock * Purpose : */ //============================================================================ void SALOMEDS_Study_i::SetStudyLock(const char* theLockerID) { SALOMEDS::Locker lock; _impl->SetStudyLock(theLockerID); } //============================================================================ /*! Function : IsStudyLocked * Purpose : */ //============================================================================ bool SALOMEDS_Study_i::IsStudyLocked() { SALOMEDS::Locker lock; return _impl->IsStudyLocked(); } //============================================================================ /*! Function : UnLockStudy * Purpose : */ //============================================================================ void SALOMEDS_Study_i::UnLockStudy(const char* theLockerID) { SALOMEDS::Locker lock; _impl->UnLockStudy(theLockerID); } //============================================================================ /*! Function : GetLockerID * Purpose : */ //============================================================================ SALOMEDS::ListOfStrings* SALOMEDS_Study_i::GetLockerID() { SALOMEDS::Locker lock; SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings; std::vector aSeq = _impl->GetLockerID(); int aLength = aSeq.size(); aResult->length(aLength); for(int anIndex = 0; anIndex < aLength; anIndex++) { aResult[anIndex] = CORBA::string_dup(aSeq[anIndex].c_str()); } return aResult._retn(); } //============================================================================ /*! Function : SetReal * Purpose : */ //============================================================================ void SALOMEDS_Study_i::SetReal(const char* theVarName, CORBA::Double theValue) { _impl->SetVariable(std::string(theVarName), theValue, SALOMEDSImpl_GenericVariable::REAL_VAR); } //============================================================================ /*! Function : SetInteger * Purpose : */ //============================================================================ void SALOMEDS_Study_i::SetInteger(const char* theVarName, CORBA::Long theValue) { _impl->SetVariable(std::string(theVarName), theValue, SALOMEDSImpl_GenericVariable::INTEGER_VAR); } //============================================================================ /*! Function : SetBoolean * Purpose : */ //============================================================================ void SALOMEDS_Study_i::SetBoolean(const char* theVarName, CORBA::Boolean theValue) { _impl->SetVariable(std::string(theVarName), theValue, SALOMEDSImpl_GenericVariable::BOOLEAN_VAR); } //============================================================================ /*! Function : SetString * Purpose : */ //============================================================================ void SALOMEDS_Study_i::SetString(const char* theVarName, const char* theValue) { _impl->SetStringVariable(std::string(theVarName), theValue, SALOMEDSImpl_GenericVariable::STRING_VAR); } //============================================================================ /*! Function : SetStringAsDouble * Purpose : */ //============================================================================ void SALOMEDS_Study_i::SetStringAsDouble(const char* theVarName, CORBA::Double theValue) { _impl->SetStringVariableAsDouble(std::string(theVarName), theValue, SALOMEDSImpl_GenericVariable::STRING_VAR); } //============================================================================ /*! Function : GetReal * Purpose : */ //============================================================================ CORBA::Double SALOMEDS_Study_i::GetReal(const char* theVarName) { return _impl->GetVariableValue(std::string(theVarName)); } //============================================================================ /*! Function : GetInteger * Purpose : */ //============================================================================ CORBA::Long SALOMEDS_Study_i::GetInteger(const char* theVarName) { return (int)_impl->GetVariableValue(std::string(theVarName)); } //============================================================================ /*! Function : GetBoolean * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::GetBoolean(const char* theVarName) { return (bool)_impl->GetVariableValue(std::string(theVarName)); } //============================================================================ /*! Function : GetString * Purpose : */ //============================================================================ char* SALOMEDS_Study_i::GetString(const char* theVarName) { return CORBA::string_dup(_impl->GetStringVariableValue(std::string(theVarName)).c_str()); } //============================================================================ /*! Function : IsReal * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsReal(const char* theVarName) { return _impl->IsTypeOf(std::string(theVarName), SALOMEDSImpl_GenericVariable::REAL_VAR); } //============================================================================ /*! Function : IsInteger * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsInteger(const char* theVarName) { return _impl->IsTypeOf(std::string(theVarName), SALOMEDSImpl_GenericVariable::INTEGER_VAR); } //============================================================================ /*! Function : IsBoolean * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsBoolean(const char* theVarName) { return _impl->IsTypeOf(std::string(theVarName), SALOMEDSImpl_GenericVariable::BOOLEAN_VAR); } //============================================================================ /*! Function : IsString * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsString(const char* theVarName) { return _impl->IsTypeOf(std::string(theVarName), SALOMEDSImpl_GenericVariable::STRING_VAR); } //============================================================================ /*! Function : IsVariable * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsVariable(const char* theVarName) { return _impl->IsVariable(std::string(theVarName)); } //============================================================================ /*! Function : GetVariableNames * Purpose : */ //============================================================================ SALOMEDS::ListOfStrings* SALOMEDS_Study_i::GetVariableNames() { std::vector aVarNames = _impl->GetVariableNames(); SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings; int aLen = aVarNames.size(); aResult->length(aLen); for (int anInd = 0; anInd < aLen; anInd++) aResult[anInd] = CORBA::string_dup(aVarNames[anInd].c_str()); return aResult._retn(); } //============================================================================ /*! Function : RemoveVariable * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::RemoveVariable(const char* theVarName) { return _impl->RemoveVariable(std::string(theVarName)); } //============================================================================ /*! Function : RenameVariable * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::RenameVariable(const char* theVarName, const char* theNewVarName) { return _impl->RenameVariable(std::string(theVarName), std::string(theNewVarName)); } //============================================================================ /*! Function : IsVariableUsed * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_Study_i::IsVariableUsed(const char* theVarName) { return _impl->IsVariableUsed(std::string(theVarName)); } //============================================================================ /*! Function : ParseVariables * Purpose : */ //============================================================================ SALOMEDS::ListOfListOfStrings* SALOMEDS_Study_i::ParseVariables(const char* theVarName) { std::vector< std::vector > aSections = _impl->ParseVariables(std::string(theVarName)); SALOMEDS::ListOfListOfStrings_var aResult = new SALOMEDS::ListOfListOfStrings; int aSectionsLen = aSections.size(); aResult->length(aSectionsLen); for (int aSectionInd = 0; aSectionInd < aSectionsLen; aSectionInd++) { std::vector aVarNames = aSections[aSectionInd]; SALOMEDS::ListOfStrings_var aList = new SALOMEDS::ListOfStrings; int aLen = aVarNames.size(); aList->length(aLen); for (int anInd = 0; anInd < aLen; anInd++) aList[anInd] = CORBA::string_dup(aVarNames[anInd].c_str()); aResult[aSectionInd] = aList; } return aResult._retn(); } //============================================================================ /*! Function : GetDefaultScript * Purpose : */ //============================================================================ char* SALOMEDS_Study_i::GetDefaultScript(const char* theModuleName, const char* theShift) { SALOMEDS::Locker lock; std::string script = SALOMEDSImpl_IParameters::getDefaultScript(_impl, theModuleName, theShift); return CORBA::string_dup(script.c_str()); } //============================================================================ /*! Function : EnableUseCaseAutoFilling * Purpose : */ //============================================================================ void SALOMEDS_Study_i::EnableUseCaseAutoFilling(CORBA::Boolean isEnabled) { _impl->EnableUseCaseAutoFilling(isEnabled); SALOMEDSImpl_StudyBuilder* builder = _builder->GetImpl(); if(builder) { if(isEnabled) { builder->SetOnAddSObject(_impl->GetCallback()); builder->SetOnRemoveSObject(_impl->GetCallback()); } else { builder->SetOnAddSObject(NULL); builder->SetOnRemoveSObject(NULL); } } } //============================================================================ /*! Function : attach * Purpose : This function attach an observer to the study */ //============================================================================ void SALOMEDS_Study_i::attach(SALOMEDS::Observer_ptr theObs,CORBA::Boolean modify) { if(_notifier) _notifier->attach(theObs,modify); } //=========================================================================== // PRIVATE FUNCTIONS //=========================================================================== CORBA::LongLong SALOMEDS_Study_i::GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal) { #ifdef WIN32 long pid = (long)_getpid(); #else long pid = (long)getpid(); #endif isLocal = (strcmp(theHostname, Kernel_Utils::GetHostname().c_str()) == 0 && pid == thePID)?1:0; return reinterpret_cast(_impl); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_Study_i.hxx000077500000000000000000000270531177004724000217320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Study_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_STUDY_I_H__ #define __SALOMEDS_STUDY_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOME_GenericObj) #include CORBA_SERVER_HEADER(SALOMEDS) #include //SALOMEDS headers #include "SALOMEDS_SComponentIterator_i.hxx" #include "SALOMEDS_StudyBuilder_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS_UseCaseBuilder_i.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" class Notifier; class Standard_EXPORT SALOMEDS_Study_i: public POA_SALOMEDS::Study { private: CORBA::ORB_var _orb; SALOMEDSImpl_Study* _impl; SALOMEDS_StudyBuilder_i* _builder; static std::map _mapOfStudies; Notifier* _notifier; public: //! standard constructor SALOMEDS_Study_i(SALOMEDSImpl_Study*, CORBA::ORB_ptr); //! standard destructor virtual ~SALOMEDS_Study_i(); //! method to Get persistent reference of study (idem URL()) /*! \sa URL() \return char* arguments, the persistent reference of the study */ virtual char* GetPersistentReference(); //! method to Get transient reference of study /*! \return char* arguments, the transient reference of the study */ virtual char* GetTransientReference(); //! method to detect if a study is empty /*! \return bool arguments, true if study is empty */ virtual CORBA::Boolean IsEmpty(); //! method to Find a Component with ComponentDataType = aComponentName /*! \param aComponentName char* arguments \return SComponent_ptr arguments, the component found */ virtual SALOMEDS::SComponent_ptr FindComponent (const char* aComponentName); //! method to Find a Component Find a Component from it's ID /*! \param aComponentID char* arguments \return SComponent_ptr arguments, the component found */ virtual SALOMEDS::SComponent_ptr FindComponentID(const char* aComponentID); //! method to Find an Object with SALOMEDS::Name = anObjectName /*! \param anObjectName char* arguments \return SObject_ptr arguments, the object found */ virtual SALOMEDS::SObject_ptr FindObject(const char* anObjectName); //! method to Find Object(s) with SALOMEDS::Name = anObjectName in a component with ComponentDataType = aComponentName /*! \param anObjectName char* arguments \param aComponentName char* arguments \return ListOfSObject_ptr arguments, a list of objects found */ virtual SALOMEDS::Study::ListOfSObject* FindObjectByName( const char* anObjectName, const char* aComponentName ) ; //! method to Find an Object with ID = anObjectID /*! \param anObjectID char* arguments \return SObject_ptr arguments, the object found */ virtual SALOMEDS::SObject_ptr FindObjectID(const char* anObjectID); //! method to Create an Object with ID = anObjectID /*! \param anObjectID char* arguments \return SObject_ptr arguments, the object found */ virtual SALOMEDS::SObject_ptr CreateObjectID(const char* anObjectID); //! method to Find an Object with ID = anObjectIOR /*! \param anObjectIOR char* arguments \return SObject_ptr arguments, the object found */ virtual SALOMEDS::SObject_ptr FindObjectIOR(const char* anObjectIOR); //! method to Find an Object by its path /*! \param thePath char* arguments \return SObject_ptr arguments, the object found */ virtual SALOMEDS::SObject_ptr FindObjectByPath(const char* thePath); //! method to get a path of SObject /*! \param aSO SObject_ptr arguments \return char* arguments, the path of the SObject */ virtual char* GetObjectPath(CORBA::Object_ptr theObject); //! method to set a context: root ('/') is UserData component /*! */ virtual void SetContext(const char* thePath); //! method to get a context /*! */ virtual char* GetContext(); //! method to get all object names in the given context (or in the current context, if 'theContext' is empty) /*! */ virtual SALOMEDS::ListOfStrings* GetObjectNames(const char* theContext); //! method to get all directory names in the given context (or in the current context, if 'theContext' is empty) /*! */ virtual SALOMEDS::ListOfStrings* GetDirectoryNames(const char* theContext); //! method to get all file names in the given context (or in the current context, if 'theContext' is empty) /*! */ virtual SALOMEDS::ListOfStrings* GetFileNames(const char* theContext); //! method to get all components names /*! */ virtual SALOMEDS::ListOfStrings* GetComponentNames(const char* theContext); //! method to Create a ChildIterator from an SObject /*! \param aSO SObject_ptr arguments \return ChildIterator_ptr arguments, the created ChildIterator */ virtual SALOMEDS::ChildIterator_ptr NewChildIterator(SALOMEDS::SObject_ptr aSO); //! method to Create a SComponentIterator /*! \return SComponentIterator_ptr arguments, the created SComponentIterator */ virtual SALOMEDS::SComponentIterator_ptr NewComponentIterator(); //! method to Create a StudyBuilder /*! \return StudyBuilder_ptr arguments, the created StudyBuilder */ virtual SALOMEDS::StudyBuilder_ptr NewBuilder(); //! method to get study name /*! \return char* arguments, the study name */ virtual char* Name(); //! method to set study name /*! \param name char* arguments, the study name */ virtual void Name(const char* name); //! method to get if study has been saved /*! \return bool arguments */ virtual CORBA::Boolean IsSaved(); //! method to set if study has been saved /*! \param save bool arguments */ virtual void IsSaved(CORBA::Boolean save); //! method to Detect if a Study has been modified since it has been saved /*! \return bool arguments */ virtual CORBA::Boolean IsModified(); //! method to set Modified flag of a Study to True virtual void Modified(); //! method to get URL of the study (idem GetPersistentReference) /*! \return char* arguments, the study URL */ virtual char* URL(); //! method to set URL of the study /*! \param url char* arguments, the study URL */ virtual void URL(const char* url); virtual CORBA::Short StudyId(); virtual void StudyId(CORBA::Short id); static SALOMEDS::Study_ptr GetStudy(const DF_Label& theLabel, CORBA::ORB_ptr orb); static SALOMEDS_Study_i* GetStudyServant(SALOMEDSImpl_Study*, CORBA::ORB_ptr orb); static void IORUpdated(SALOMEDSImpl_AttributeIOR* theAttribute); virtual void UpdateIORLabelMap(const char* anIOR, const char* aLabel); virtual SALOMEDS::Study::ListOfSObject* FindDependances(SALOMEDS::SObject_ptr anObject); virtual SALOMEDS::AttributeStudyProperties_ptr GetProperties(); virtual char* GetLastModificationDate(); virtual SALOMEDS::ListOfDates* GetModificationsDate(); virtual char* ConvertObjectToIOR(CORBA::Object_ptr theObject) {return _orb->object_to_string(theObject); } virtual CORBA::Object_ptr ConvertIORToObject(const char* theIOR) { return _orb->string_to_object(theIOR); }; virtual SALOMEDS::UseCaseBuilder_ptr GetUseCaseBuilder(); virtual void Close(); void EnableUseCaseAutoFilling(CORBA::Boolean isEnabled); // postponed destroying of CORBA object functionality virtual void AddPostponed(const char* theIOR); virtual void AddCreatedPostponed(const char* theIOR); #ifndef WIN32 virtual void RemovePostponed(const CORBA::Long theUndoLimit); // removes postponed IORs of old transaction // if theUndoLimit==0, removes all virtual void UndoPostponed(const CORBA::Long theWay); // theWay = 1: resurrect objects, // theWay = -1: get back to the list of postponed #else virtual void RemovePostponed(CORBA::Long theUndoLimit); // removes postponed IORs of old transaction // if theUndoLimit==0, removes all virtual void UndoPostponed(CORBA::Long theWay); // theWay = 1: resurrect objects, // theWay = -1: get back to the list of postponed #endif virtual SALOMEDS::AttributeParameter_ptr GetCommonParameters(const char* theID, CORBA::Long theSavePoint); virtual SALOMEDS::AttributeParameter_ptr GetModuleParameters(const char* theID, const char* theModuleName, CORBA::Long theSavePoint); virtual void SetStudyLock(const char* theLockerID); virtual bool IsStudyLocked(); virtual void UnLockStudy(const char* theLockerID); virtual SALOMEDS::ListOfStrings* GetLockerID(); virtual void SetReal(const char* theVarName, CORBA::Double theValue); virtual void SetInteger(const char* theVarName, CORBA::Long theValue); virtual void SetBoolean(const char* theVarName, CORBA::Boolean theValue); virtual void SetString(const char* theVarName, const char* theValue); virtual void SetStringAsDouble(const char* theVarName, CORBA::Double theValue); virtual CORBA::Double GetReal(const char* theVarName); virtual CORBA::Long GetInteger(const char* theVarName); virtual CORBA::Boolean GetBoolean(const char* theVarName); virtual char* GetString(const char* theVarName); virtual CORBA::Boolean IsReal(const char* theVarName); virtual CORBA::Boolean IsInteger(const char* theVarName); virtual CORBA::Boolean IsBoolean(const char* theVarName); virtual CORBA::Boolean IsString(const char* theVarName); virtual CORBA::Boolean IsVariable(const char* theVarName); virtual SALOMEDS::ListOfStrings* GetVariableNames(); virtual CORBA::Boolean RemoveVariable(const char* theVarName); virtual CORBA::Boolean RenameVariable(const char* theVarName, const char* theNewVarName); virtual CORBA::Boolean IsVariableUsed(const char* theVarName); virtual SALOMEDS::ListOfListOfStrings* ParseVariables(const char* theVars); virtual char* GetDefaultScript(const char* theModuleName, const char* theShift); virtual CORBA::Boolean DumpStudy(const char* thePath, const char* theBaseName, CORBA::Boolean isPublished, CORBA::Boolean isMultiFile); virtual SALOMEDSImpl_Study* GetImpl() { return _impl; } virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); virtual void attach(SALOMEDS::Observer_ptr theObs, CORBA::Boolean modify); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_TMPFile_i.cxx000077500000000000000000000046311177004724000220520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDSImpl_SObject.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_TMPFile_i.hxx" #include SALOMEDS_TMPFile_i ::SALOMEDS_TMPFile_i(SALOMEDS::TMPFile* theStream): myStream(theStream) {} size_t SALOMEDS_TMPFile_i ::Size() { if(!&myStream.in()) return 0; return myStream->length(); } SALOMEDSImpl_TMPFile::TOctet& SALOMEDS_TMPFile_i ::Get(size_t theIndex) { if(!&myStream.in()) throw std::out_of_range("SALOMEDS_TMPFile_i::Get(size_t) const - !&myStream.in()"); if(theIndex < 0 || theIndex >= myStream->length()) throw std::out_of_range("SALOMEDS_TMPFile_i::Get(size_t) const - theIndex < 0 || theIndex >= myStream->length()"); return myStream[theIndex]; } //----------------------------------------------------------------------------- Engines_TMPFile_i ::Engines_TMPFile_i(Engines::TMPFile* theStream): myStream(theStream) {} size_t Engines_TMPFile_i ::Size() { if(!&myStream.in()) return 0; return myStream->length(); } SALOMEDSImpl_TMPFile::TOctet& Engines_TMPFile_i ::Get(size_t theIndex) { if(!&myStream.in()) throw std::out_of_range("Engines_TMPFile_i::Get(size_t) const - !&myStream.in()"); if(theIndex < 0 || theIndex >= myStream->length()) throw std::out_of_range("Engines_TMPFile_i::Get(size_t) const - theIndex < 0 || theIndex >= myStream->length()"); return myStream[theIndex]; } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_TMPFile_i.hxx000077500000000000000000000034471177004724000220630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOMEDSIMPL_TMPFILE_I_H__ #define __SALOMEDSIMPL_TMPFILE_I_H__ // IDL headers #include "SALOMEconfig.h" #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOME_Component) #include "SALOMEDSImpl_TMPFile.hxx" //----------------------------------------------------------------------------- class SALOMEDS_TMPFile_i : public SALOMEDSImpl_TMPFile { public: SALOMEDS_TMPFile_i(SALOMEDS::TMPFile* theStream); virtual size_t Size(); virtual TOctet& Get(size_t); protected: SALOMEDS::TMPFile_var myStream; }; //----------------------------------------------------------------------------- class Engines_TMPFile_i : public SALOMEDSImpl_TMPFile { public: Engines_TMPFile_i(Engines::TMPFile* theStream); virtual size_t Size(); virtual TOctet& Get(size_t); protected: Engines::TMPFile_var myStream; }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseBuilder.cxx000077500000000000000000000163621177004724000231450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseBuilder.cxx // Author : Sergey RUIN // Module : SALOME #include "SALOMEDS_UseCaseBuilder.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SObject.hxx" #include "SALOMEDS_UseCaseIterator.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_UseCaseIterator.hxx" #include SALOMEDS_UseCaseBuilder::SALOMEDS_UseCaseBuilder(SALOMEDSImpl_UseCaseBuilder* theBuilder) { _isLocal = true; _local_impl = theBuilder; _corba_impl = SALOMEDS::UseCaseBuilder::_nil(); } SALOMEDS_UseCaseBuilder::SALOMEDS_UseCaseBuilder(SALOMEDS::UseCaseBuilder_ptr theBuilder) { _isLocal = false; _local_impl = NULL; _corba_impl = SALOMEDS::UseCaseBuilder::_duplicate(theBuilder); } SALOMEDS_UseCaseBuilder::~SALOMEDS_UseCaseBuilder() { if(!_isLocal) _corba_impl->UnRegister(); } bool SALOMEDS_UseCaseBuilder::Append(const _PTR(SObject)& theObject) { bool ret; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->Append(*(obj->GetLocalImpl())); } else ret = _corba_impl->Append(obj->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::Remove(const _PTR(SObject)& theObject) { bool ret; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->Remove(*(obj->GetLocalImpl())); } else ret = _corba_impl->Remove(obj->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::AppendTo(const _PTR(SObject)& theFather, _PTR(SObject) theObject) { bool ret; SALOMEDS_SObject* father = dynamic_cast(theFather.get()); SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->AppendTo(*(father->GetLocalImpl()), *(obj->GetLocalImpl())); } else ret = _corba_impl->AppendTo(father->GetCORBAImpl(), obj->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::InsertBefore(const _PTR(SObject)& theFirst, _PTR(SObject) theNext) { bool ret; SALOMEDS_SObject* first = dynamic_cast(theFirst.get()); SALOMEDS_SObject* next = dynamic_cast(theNext.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->InsertBefore(*(first->GetLocalImpl()), *(next->GetLocalImpl())); } else ret = _corba_impl->InsertBefore(first->GetCORBAImpl(), next->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::SetCurrentObject(const _PTR(SObject)& theObject) { bool ret; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->SetCurrentObject(*(obj->GetLocalImpl())); } else ret = _corba_impl->SetCurrentObject(obj->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::SetRootCurrent() { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->SetRootCurrent(); } else ret = _corba_impl->SetRootCurrent(); return ret; } bool SALOMEDS_UseCaseBuilder::HasChildren(const _PTR(SObject)& theObject) { bool ret; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->HasChildren(*(obj->GetLocalImpl())); } else ret = _corba_impl->HasChildren(obj->GetCORBAImpl()); return ret; } _PTR(SObject) SALOMEDS_UseCaseBuilder::GetFather(const _PTR(SObject)& theObject) { SALOMEDS_SObject* father = NULL; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; father = new SALOMEDS_SObject(_local_impl->GetFather(*(obj->GetLocalImpl()))); } else father = new SALOMEDS_SObject(_corba_impl->GetFather(obj->GetCORBAImpl())); return _PTR(SObject)(father); } bool SALOMEDS_UseCaseBuilder::IsUseCase(const _PTR(SObject)& theObject) { bool ret; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->IsUseCase(*(obj->GetLocalImpl())); } else ret = _corba_impl->IsUseCase(obj->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::IsUseCaseNode(const _PTR(SObject)& theObject) { bool ret; SALOMEDS_SObject* obj = dynamic_cast(theObject.get()); if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->IsUseCaseNode(*(obj->GetLocalImpl())); } else ret = _corba_impl->IsUseCaseNode(obj->GetCORBAImpl()); return ret; } bool SALOMEDS_UseCaseBuilder::SetName(const std::string& theName) { bool ret; if (_isLocal) { SALOMEDS::Locker lock; ret = _local_impl->SetName(theName); } else ret = _corba_impl->SetName((char*)theName.c_str()); return ret; } _PTR(SObject) SALOMEDS_UseCaseBuilder::GetCurrentObject() { SALOMEDS_SObject* obj = NULL; if (_isLocal) { SALOMEDS::Locker lock; obj = new SALOMEDS_SObject(_local_impl->GetCurrentObject()); } else obj = new SALOMEDS_SObject(_corba_impl->GetCurrentObject()); return _PTR(SObject)(obj); } std::string SALOMEDS_UseCaseBuilder::GetName() { std::string aName; if (_isLocal) { SALOMEDS::Locker lock; aName = _local_impl->GetName(); } else aName = _corba_impl->GetName(); return aName; } _PTR(SObject) SALOMEDS_UseCaseBuilder::AddUseCase(const std::string& theName) { SALOMEDS_SObject* obj = NULL; if (_isLocal) { SALOMEDS::Locker lock; obj = new SALOMEDS_SObject(_local_impl->AddUseCase(theName)); } else obj = new SALOMEDS_SObject(_corba_impl->AddUseCase((char*)theName.c_str())); return _PTR(SObject)(obj); } _PTR(UseCaseIterator) SALOMEDS_UseCaseBuilder::GetUseCaseIterator(const _PTR(SObject)& theObject) { SALOMEDS_UseCaseIterator* it = NULL; SALOMEDS_SObject* obj = (theObject)?dynamic_cast(theObject.get()):NULL; if (_isLocal) { SALOMEDS::Locker lock; if(obj) it = new SALOMEDS_UseCaseIterator(_local_impl->GetUseCaseIterator(*(obj->GetLocalImpl()))); else it = new SALOMEDS_UseCaseIterator(_local_impl->GetUseCaseIterator(SALOMEDSImpl_SObject())); } else { if(obj) it = new SALOMEDS_UseCaseIterator(_corba_impl->GetUseCaseIterator(obj->GetCORBAImpl())); else it = new SALOMEDS_UseCaseIterator(_corba_impl->GetUseCaseIterator(SALOMEDS::SObject::_nil())); } return _PTR(UseCaseIterator)(it); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseBuilder.hxx000077500000000000000000000050161177004724000231440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseBuilder.hxx // Author : Sergey RUIN // Module : SALOME #ifndef __SALOMEDS_USECaseBuilder_H__ #define __SALOMEDS_USECaseBuilder_H__ #include "SALOMEDSClient.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDS_UseCaseBuilder: public SALOMEDSClient_UseCaseBuilder { private: bool _isLocal; SALOMEDSImpl_UseCaseBuilder* _local_impl; SALOMEDS::UseCaseBuilder_var _corba_impl; public: SALOMEDS_UseCaseBuilder(SALOMEDSImpl_UseCaseBuilder* theBuilder); SALOMEDS_UseCaseBuilder(SALOMEDS::UseCaseBuilder_ptr theBuilder); ~SALOMEDS_UseCaseBuilder(); virtual bool Append(const _PTR(SObject)& theObject); virtual bool Remove(const _PTR(SObject)& theObject); virtual bool AppendTo(const _PTR(SObject)& theFather, _PTR(SObject) theObject); virtual bool InsertBefore(const _PTR(SObject)& theFirst, _PTR(SObject) theNext); virtual bool SetCurrentObject(const _PTR(SObject)& theObject); virtual bool SetRootCurrent(); virtual bool HasChildren(const _PTR(SObject)& theObject); virtual _PTR(SObject) GetFather(const _PTR(SObject)& theObject); virtual bool IsUseCase(const _PTR(SObject)& theObject); virtual bool IsUseCaseNode(const _PTR(SObject)& theObject); virtual bool SetName(const std::string& theName); virtual _PTR(SObject) GetCurrentObject(); virtual std::string GetName(); virtual _PTR(SObject) AddUseCase(const std::string& theName); virtual _PTR(UseCaseIterator) GetUseCaseIterator(const _PTR(SObject)& anObject); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseBuilder_i.cxx000077500000000000000000000217311177004724000234510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseBuilder_i.cxx // Author : Sergey RUIN // Module : SALOME #include "SALOMEDS_UseCaseBuilder_i.hxx" #include "SALOMEDS_UseCaseIterator_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS.hxx" #include "utilities.h" //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDS_UseCaseBuilder_i::SALOMEDS_UseCaseBuilder_i(SALOMEDSImpl_UseCaseBuilder* theImpl, CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); _impl = theImpl; } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDS_UseCaseBuilder_i::~SALOMEDS_UseCaseBuilder_i() { } //============================================================================ /*! Function : Append * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::Append(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl || theObject->_is_nil()) return 0; return _impl->Append(_impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : Remove * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::Remove(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl || theObject->_is_nil()) return 0; return _impl->Remove(_impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : AppendTo * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::AppendTo(SALOMEDS::SObject_ptr theFather, SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl || theFather->_is_nil() || theObject->_is_nil()) return 0; return _impl->AppendTo(_impl->GetSObject(theFather->GetID()), _impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : InsertBefore * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::InsertBefore(SALOMEDS::SObject_ptr theFirst, SALOMEDS::SObject_ptr theNext) { SALOMEDS::Locker lock; if(!_impl || theFirst->_is_nil() || theNext->_is_nil()) return 0; return _impl->InsertBefore(_impl->GetSObject(theFirst->GetID()), _impl->GetSObject(theNext->GetID())); } //============================================================================ /*! Function : SetCurrentObject * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetCurrentObject(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl || theObject->_is_nil()) return 0; return _impl->SetCurrentObject(_impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : SetRootCurrent * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetRootCurrent() { SALOMEDS::Locker lock; if(!_impl) return 0; return _impl->SetRootCurrent(); } //============================================================================ /*! Function : HasChildren * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::HasChildren(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl) return 0; return _impl->HasChildren(_impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : GetFather * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::GetFather(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl) return NULL; SALOMEDSImpl_SObject aSO = _impl->GetFather(_impl->GetSObject(theObject->GetID())); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : SetName * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetName(const char* theName) { SALOMEDS::Locker lock; if(!_impl) return 0; return _impl->SetName((char*)theName); } //============================================================================ /*! Function : GetCurrentObject * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::GetCurrentObject() { SALOMEDS::Locker lock; if(!_impl) return NULL; SALOMEDSImpl_SObject aSO = _impl->GetCurrentObject(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : GetName * Purpose : */ //============================================================================ char* SALOMEDS_UseCaseBuilder_i::GetName() { SALOMEDS::Locker lock; return CORBA::string_dup(_impl->GetName().c_str()); } //============================================================================ /*! Function : IsUseCase * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::IsUseCase(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl || theObject->_is_nil()) return false; return _impl->IsUseCase(_impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : IsUseCaseNode * Purpose : */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseBuilder_i::IsUseCaseNode(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl || theObject->_is_nil()) return false; return _impl->IsUseCaseNode(_impl->GetSObject(theObject->GetID())); } //============================================================================ /*! Function : NewUseCase * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::AddUseCase(const char* theName) { SALOMEDS::Locker lock; if(!_impl) return SALOMEDS::SObject::_nil(); SALOMEDSImpl_SObject aSO = _impl->AddUseCase((char*)theName); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } //============================================================================ /*! Function : GetUseCaseIterator * Purpose : Creates a new UseCase iterator, if anObject is null all use cases are iterated */ //============================================================================ SALOMEDS::UseCaseIterator_ptr SALOMEDS_UseCaseBuilder_i::GetUseCaseIterator(SALOMEDS::SObject_ptr theObject) { SALOMEDS::Locker lock; if(!_impl) return SALOMEDS::UseCaseIterator::_nil(); SALOMEDSImpl_UseCaseIterator anItr; if(!CORBA::is_nil(theObject)) anItr = _impl->GetUseCaseIterator(_impl->GetSObject(theObject->GetID())); else anItr = _impl->GetUseCaseIterator(SALOMEDSImpl_SObject()); SALOMEDS_UseCaseIterator_i* aServant = new SALOMEDS_UseCaseIterator_i(anItr, _orb); SALOMEDS::UseCaseIterator_var anIterator = SALOMEDS::UseCaseIterator::_narrow(aServant->_this()); return anIterator._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseBuilder_i.hxx000077500000000000000000000057521177004724000234630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseBuilder_i.hxx // Author : Sergey RUIN // Module : SALOME #ifndef __SALOMEDS_USECaseBuilder_I_H__ #define __SALOMEDS_USECaseBuilder_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) #include #include #include "SALOMEDSImpl_UseCaseIterator.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" class SALOMEDS_UseCaseBuilder_i: public virtual POA_SALOMEDS::UseCaseBuilder, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { private: CORBA::ORB_var _orb; SALOMEDSImpl_UseCaseBuilder* _impl; public: //! standard constructor SALOMEDS_UseCaseBuilder_i(SALOMEDSImpl_UseCaseBuilder* theDocument, CORBA::ORB_ptr); //! standard destructor ~SALOMEDS_UseCaseBuilder_i(); virtual CORBA::Boolean Append(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean Remove(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean AppendTo(SALOMEDS::SObject_ptr theFather, SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean InsertBefore(SALOMEDS::SObject_ptr theFirst, SALOMEDS::SObject_ptr theNext); virtual CORBA::Boolean SetCurrentObject(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean SetRootCurrent(); virtual CORBA::Boolean HasChildren(SALOMEDS::SObject_ptr theObject); virtual SALOMEDS::SObject_ptr GetFather(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean IsUseCase(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean IsUseCaseNode(SALOMEDS::SObject_ptr theObject); virtual CORBA::Boolean SetName(const char* theName); virtual SALOMEDS::SObject_ptr GetCurrentObject(); virtual char* GetName(); virtual SALOMEDS::SObject_ptr AddUseCase(const char* theName); virtual SALOMEDS::UseCaseIterator_ptr GetUseCaseIterator(SALOMEDS::SObject_ptr anObject); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseIterator.cxx000077500000000000000000000050241177004724000233410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseIterator.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_UseCaseIterator.hxx" #include "SALOMEDS.hxx" #include "SALOMEDS_SObject.hxx" SALOMEDS_UseCaseIterator::SALOMEDS_UseCaseIterator(const SALOMEDSImpl_UseCaseIterator& theIterator) { _isLocal = true; _local_impl = theIterator.GetPersistentCopy(); _corba_impl = SALOMEDS::UseCaseIterator::_nil(); } SALOMEDS_UseCaseIterator::SALOMEDS_UseCaseIterator(SALOMEDS::UseCaseIterator_ptr theIterator) { _isLocal = false; _corba_impl = SALOMEDS::UseCaseIterator::_duplicate(theIterator); } SALOMEDS_UseCaseIterator::~SALOMEDS_UseCaseIterator() { if(!_isLocal) _corba_impl->UnRegister(); else if(_local_impl) delete _local_impl; } void SALOMEDS_UseCaseIterator::Init(bool theAllLevels) { if (_isLocal) { SALOMEDS::Locker lock; if(_local_impl) _local_impl->Init(theAllLevels); } else _corba_impl->Init(theAllLevels); } bool SALOMEDS_UseCaseIterator::More() { bool ret = false; if (_isLocal) { SALOMEDS::Locker lock; if(_local_impl) ret = _local_impl->More(); } else ret = _corba_impl->More(); return ret; } void SALOMEDS_UseCaseIterator::Next() { if (_isLocal) { SALOMEDS::Locker lock; if(_local_impl) _local_impl->Next(); } else _corba_impl->Next(); } _PTR(SObject) SALOMEDS_UseCaseIterator::Value() { SALOMEDS_SObject* aSO = NULL; if (_isLocal) { SALOMEDS::Locker lock; if(_local_impl) aSO = new SALOMEDS_SObject(_local_impl->Value()); } else aSO = new SALOMEDS_SObject(_corba_impl->Value()); return _PTR(SObject)(aSO); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseIterator.hxx000077500000000000000000000035141177004724000233500ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_USECASEITERATOR_H__ #define __SALOMEDS_USECASEITERATOR_H__ #include "SALOMEDSClient_UseCaseIterator.hxx" #include "SALOMEDSClient_SObject.hxx" #include "SALOMEDSImpl_UseCaseIterator.hxx" // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDS_UseCaseIterator: public SALOMEDSClient_UseCaseIterator { private: bool _isLocal; SALOMEDSImpl_UseCaseIterator* _local_impl; SALOMEDS::UseCaseIterator_var _corba_impl; public: SALOMEDS_UseCaseIterator(const SALOMEDSImpl_UseCaseIterator& theIterator); SALOMEDS_UseCaseIterator(SALOMEDS::UseCaseIterator_ptr theIterator); ~SALOMEDS_UseCaseIterator(); virtual void Init(bool theAllLevels); virtual bool More(); virtual void Next(); virtual _PTR(SObject) Value(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseIterator_i.cxx000077500000000000000000000064361177004724000236610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseIterator_i.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDS_UseCaseIterator_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "utilities.h" //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDS_UseCaseIterator_i::SALOMEDS_UseCaseIterator_i(const SALOMEDSImpl_UseCaseIterator& theImpl, CORBA::ORB_ptr orb) { _orb = CORBA::ORB::_duplicate(orb); _impl = theImpl.GetPersistentCopy(); } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDS_UseCaseIterator_i::~SALOMEDS_UseCaseIterator_i() { if(_impl) delete _impl; } //============================================================================ /*! Function :Init * */ //============================================================================ void SALOMEDS_UseCaseIterator_i::Init(CORBA::Boolean allLevels) { SALOMEDS::Locker lock; if(_impl) _impl->Init(allLevels); } //============================================================================ /*! Function : More * */ //============================================================================ CORBA::Boolean SALOMEDS_UseCaseIterator_i::More() { SALOMEDS::Locker lock; if(!_impl) return false; return _impl->More(); } //============================================================================ /*! Function : Next * */ //============================================================================ void SALOMEDS_UseCaseIterator_i::Next() { SALOMEDS::Locker lock; if(_impl) _impl->Next(); } //============================================================================ /*! Function : * Purpose : */ //============================================================================ SALOMEDS::SObject_ptr SALOMEDS_UseCaseIterator_i::Value() { SALOMEDS::Locker lock; if(!_impl) return SALOMEDS::SObject::_nil(); SALOMEDSImpl_SObject aSO = _impl->Value(); SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb); return so._retn(); } salome-kernel-6.5.0/src/SALOMEDS/SALOMEDS_UseCaseIterator_i.hxx000077500000000000000000000040021177004724000236510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_UseCaseIterator_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDS_USECASEITERATOR_I_H__ #define __SALOMEDS_USECASEITERATOR_I_H__ // std C++ headers #include // IDL headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include #include "SALOMEDSImpl_UseCaseIterator.hxx" class SALOMEDS_UseCaseIterator_i: public virtual POA_SALOMEDS::UseCaseIterator, public virtual PortableServer::ServantBase, public virtual SALOME::GenericObj_i { private: CORBA::ORB_var _orb; SALOMEDSImpl_UseCaseIterator* _impl; public: //! standard constructor SALOMEDS_UseCaseIterator_i(const SALOMEDSImpl_UseCaseIterator& theImpl, CORBA::ORB_ptr); //! standard destructor ~SALOMEDS_UseCaseIterator_i(); virtual void Init(CORBA::Boolean); virtual CORBA::Boolean More(); virtual void Next(); virtual SALOMEDS::SObject_ptr Value(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/SALOME_DriverPy.py000077500000000000000000000045111177004724000214420ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ## @package SALOME_DriverPy # \brief python implementation of SALOMEDS::Driver interface # import SALOMEDS__POA ## Python implementation of generic SALOMEDS::Driver. # # class SALOME_DriverPy_i(SALOMEDS__POA.Driver): """ Should be inherited by any Python module's engine to provide persistence mechanism. """ def __init__ (self, componentDataType): self._ComponentDataType = componentDataType def IORToLocalPersistentID(self, theSObject, IORString, isMultiFile, isASCII): return theSObject.GetID() def LocalPersistentIDToIOR(self, theSObject, PersistentID, isMultiFile, isASCII): return "" def ComponentDataType(self): return self._ComponentDataType def Save(self, theComponent, theURL, isMultiFile): return "" def SaveASCII(self, theComponent, theURL, isMultiFile): return self.Save(theComponent, theURL, isMultiFile) def Load(self, theComponent, theStream, theURL, isMultiFile): return 1 def LoadASCII(self, theComponent, theStream, theURL, isMultiFile): return self.Load(theComponent, theStream, theURL, isMultiFile) def Close(self, theComponent): pass def CanPublishInStudy(self, theIOR): return 1 def PublishInStudy(self, theStudy, theSObject, theObject, theName): return None def CanCopy(self, theObject): return 0 salome-kernel-6.5.0/src/SALOMEDS/Test/000077500000000000000000000000001177004724000171775ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMEDS/Test/Makefile.am000077500000000000000000000131431177004724000212400ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Paul RASCLE # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/Test/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:27 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= SALOMEDSTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestSALOMEDS.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/NamingService -I$(srcdir)/$(RPATH)/NamingService/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/ResourcesManager \ -I$(srcdir)/$(RPATH)/LifeCycleCORBA \ -I$(srcdir)/$(RPATH)/SALOMEDS \ -I$(srcdir)/$(RPATH)/SALOMEDSClient \ -I$(srcdir)/$(RPATH)/DF \ -I$(srcdir)/$(RPATH)/SALOMEDSImpl -I$(srcdir)/$(RPATH)/SALOMEDSImpl/Test \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ @CPPUNIT_LIBS@ \ $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/SALOMEDSImpl/Test/libSALOMEDSImplTest.la \ $(RPATH)/DF/libDF.la \ $(RPATH)/SALOMEDSImpl/libSalomeDSImpl.la \ $(RPATH)/SALOMEDSClient/libSalomeDSClient.la \ $(RPATH)/SALOMEDS/libSalomeDS.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMEDSTest.la dist_libSALOMEDSTest_la_SOURCES = SALOMEDSTest.cxx libSALOMEDSTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSALOMEDSTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMEDSTest_la_LIBADD = $(COMMON_LIBS) EXTRA_DIST = \ SALOMEDSTest_AttributeComment.cxx \ SALOMEDSTest_AttributeDrawable.cxx \ SALOMEDSTest_AttributeExpandable.cxx \ SALOMEDSTest_AttributeExternalFileDef.cxx \ SALOMEDSTest_AttributeFileType.cxx \ SALOMEDSTest_AttributeFlags.cxx \ SALOMEDSTest_AttributeGraphic.cxx \ SALOMEDSTest_AttributeInteger.cxx \ SALOMEDSTest_AttributeIOR.cxx \ SALOMEDSTest_AttributeLocalID.cxx \ SALOMEDSTest_AttributeName.cxx \ SALOMEDSTest_AttributeOpened.cxx \ SALOMEDSTest_AttributeParameter.cxx \ SALOMEDSTest_AttributePersistentRef.cxx \ SALOMEDSTest_AttributePixMap.cxx \ SALOMEDSTest_AttributePythonObject.cxx \ SALOMEDSTest_AttributeReal.cxx \ SALOMEDSTest_AttributeSelectable.cxx \ SALOMEDSTest_AttributeSequenceOfInteger.cxx \ SALOMEDSTest_AttributeSequenceOfReal.cxx \ SALOMEDSTest_AttributeStudyProperties.cxx \ SALOMEDSTest_AttributeTableOfInteger.cxx \ SALOMEDSTest_AttributeTableOfReal.cxx \ SALOMEDSTest_AttributeTableOfString.cxx \ SALOMEDSTest_AttributeTarget.cxx \ SALOMEDSTest_AttributeTextColor.cxx \ SALOMEDSTest_AttributeTextHighlightColor.cxx\ SALOMEDSTest_AttributeTreeNode.cxx \ SALOMEDSTest_AttributeUserID.cxx \ SALOMEDSTest_ChildIterator.cxx \ SALOMEDSTest_SComponent.cxx \ SALOMEDSTest_SComponentIterator.cxx \ SALOMEDSTest_SObject.cxx \ SALOMEDSTest_StudyBuilder.cxx \ SALOMEDSTest_Study.cxx \ SALOMEDSTest_StudyManager.cxx \ SALOMEDSTest_UseCase.cxx # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestSALOMEDS dist_TestSALOMEDS_SOURCES = TestSALOMEDS.cxx TestSALOMEDS_CPPFLAGS = $(COMMON_CPPFLAGS) TestSALOMEDS_LDADD = libSALOMEDSTest.la \ $(RPATH)/Basics/libSALOMEBasics.la \ $(CORBA_LIBS) $(COMMON_LIBS) salome-kernel-6.5.0/src/SALOMEDS/Test/Makefile.in000077500000000000000000001175261177004724000212630ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestSALOMEDS$(EXEEXT) subdir = src/SALOMEDS/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/SALOMEDSImpl/Test/libSALOMEDSImplTest.la \ $(RPATH)/DF/libDF.la $(RPATH)/SALOMEDSImpl/libSalomeDSImpl.la \ $(RPATH)/SALOMEDSClient/libSalomeDSClient.la \ $(RPATH)/SALOMEDS/libSalomeDS.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSALOMEDSTest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) dist_libSALOMEDSTest_la_OBJECTS = libSALOMEDSTest_la-SALOMEDSTest.lo libSALOMEDSTest_la_OBJECTS = $(dist_libSALOMEDSTest_la_OBJECTS) libSALOMEDSTest_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSALOMEDSTest_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) dist_TestSALOMEDS_OBJECTS = TestSALOMEDS-TestSALOMEDS.$(OBJEXT) TestSALOMEDS_OBJECTS = $(dist_TestSALOMEDS_OBJECTS) am__DEPENDENCIES_2 = TestSALOMEDS_DEPENDENCIES = libSALOMEDSTest.la \ $(RPATH)/Basics/libSALOMEBasics.la $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(dist_libSALOMEDSTest_la_SOURCES) \ $(dist_TestSALOMEDS_SOURCES) DIST_SOURCES = $(dist_libSALOMEDSTest_la_SOURCES) \ $(dist_TestSALOMEDS_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Paul RASCLE # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDS/Test/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:27 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMEDSTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestSALOMEDS.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/NamingService -I$(srcdir)/$(RPATH)/NamingService/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/ResourcesManager \ -I$(srcdir)/$(RPATH)/LifeCycleCORBA \ -I$(srcdir)/$(RPATH)/SALOMEDS \ -I$(srcdir)/$(RPATH)/SALOMEDSClient \ -I$(srcdir)/$(RPATH)/DF \ -I$(srcdir)/$(RPATH)/SALOMEDSImpl -I$(srcdir)/$(RPATH)/SALOMEDSImpl/Test \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ @CPPUNIT_LIBS@ \ $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/SALOMEDSImpl/Test/libSALOMEDSImplTest.la \ $(RPATH)/DF/libDF.la \ $(RPATH)/SALOMEDSImpl/libSalomeDSImpl.la \ $(RPATH)/SALOMEDSClient/libSalomeDSClient.la \ $(RPATH)/SALOMEDS/libSalomeDS.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMEDSTest.la dist_libSALOMEDSTest_la_SOURCES = SALOMEDSTest.cxx libSALOMEDSTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSALOMEDSTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMEDSTest_la_LIBADD = $(COMMON_LIBS) EXTRA_DIST = \ SALOMEDSTest_AttributeComment.cxx \ SALOMEDSTest_AttributeDrawable.cxx \ SALOMEDSTest_AttributeExpandable.cxx \ SALOMEDSTest_AttributeExternalFileDef.cxx \ SALOMEDSTest_AttributeFileType.cxx \ SALOMEDSTest_AttributeFlags.cxx \ SALOMEDSTest_AttributeGraphic.cxx \ SALOMEDSTest_AttributeInteger.cxx \ SALOMEDSTest_AttributeIOR.cxx \ SALOMEDSTest_AttributeLocalID.cxx \ SALOMEDSTest_AttributeName.cxx \ SALOMEDSTest_AttributeOpened.cxx \ SALOMEDSTest_AttributeParameter.cxx \ SALOMEDSTest_AttributePersistentRef.cxx \ SALOMEDSTest_AttributePixMap.cxx \ SALOMEDSTest_AttributePythonObject.cxx \ SALOMEDSTest_AttributeReal.cxx \ SALOMEDSTest_AttributeSelectable.cxx \ SALOMEDSTest_AttributeSequenceOfInteger.cxx \ SALOMEDSTest_AttributeSequenceOfReal.cxx \ SALOMEDSTest_AttributeStudyProperties.cxx \ SALOMEDSTest_AttributeTableOfInteger.cxx \ SALOMEDSTest_AttributeTableOfReal.cxx \ SALOMEDSTest_AttributeTableOfString.cxx \ SALOMEDSTest_AttributeTarget.cxx \ SALOMEDSTest_AttributeTextColor.cxx \ SALOMEDSTest_AttributeTextHighlightColor.cxx\ SALOMEDSTest_AttributeTreeNode.cxx \ SALOMEDSTest_AttributeUserID.cxx \ SALOMEDSTest_ChildIterator.cxx \ SALOMEDSTest_SComponent.cxx \ SALOMEDSTest_SComponentIterator.cxx \ SALOMEDSTest_SObject.cxx \ SALOMEDSTest_StudyBuilder.cxx \ SALOMEDSTest_Study.cxx \ SALOMEDSTest_StudyManager.cxx \ SALOMEDSTest_UseCase.cxx dist_TestSALOMEDS_SOURCES = TestSALOMEDS.cxx TestSALOMEDS_CPPFLAGS = $(COMMON_CPPFLAGS) TestSALOMEDS_LDADD = libSALOMEDSTest.la \ $(RPATH)/Basics/libSALOMEBasics.la \ $(CORBA_LIBS) $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMEDS/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMEDS/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSALOMEDSTest.la: $(libSALOMEDSTest_la_OBJECTS) $(libSALOMEDSTest_la_DEPENDENCIES) $(libSALOMEDSTest_la_LINK) -rpath $(libdir) $(libSALOMEDSTest_la_OBJECTS) $(libSALOMEDSTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestSALOMEDS$(EXEEXT): $(TestSALOMEDS_OBJECTS) $(TestSALOMEDS_DEPENDENCIES) @rm -f TestSALOMEDS$(EXEEXT) $(CXXLINK) $(TestSALOMEDS_OBJECTS) $(TestSALOMEDS_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMEDSTest_la-SALOMEDSTest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSALOMEDSTest_la-SALOMEDSTest.lo: SALOMEDSTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMEDSTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMEDSTest_la-SALOMEDSTest.lo -MD -MP -MF $(DEPDIR)/libSALOMEDSTest_la-SALOMEDSTest.Tpo -c -o libSALOMEDSTest_la-SALOMEDSTest.lo `test -f 'SALOMEDSTest.cxx' || echo '$(srcdir)/'`SALOMEDSTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMEDSTest_la-SALOMEDSTest.Tpo $(DEPDIR)/libSALOMEDSTest_la-SALOMEDSTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSTest.cxx' object='libSALOMEDSTest_la-SALOMEDSTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMEDSTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMEDSTest_la-SALOMEDSTest.lo `test -f 'SALOMEDSTest.cxx' || echo '$(srcdir)/'`SALOMEDSTest.cxx TestSALOMEDS-TestSALOMEDS.o: TestSALOMEDS.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMEDS-TestSALOMEDS.o -MD -MP -MF $(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Tpo -c -o TestSALOMEDS-TestSALOMEDS.o `test -f 'TestSALOMEDS.cxx' || echo '$(srcdir)/'`TestSALOMEDS.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Tpo $(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMEDS.cxx' object='TestSALOMEDS-TestSALOMEDS.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMEDS-TestSALOMEDS.o `test -f 'TestSALOMEDS.cxx' || echo '$(srcdir)/'`TestSALOMEDS.cxx TestSALOMEDS-TestSALOMEDS.obj: TestSALOMEDS.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMEDS-TestSALOMEDS.obj -MD -MP -MF $(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Tpo -c -o TestSALOMEDS-TestSALOMEDS.obj `if test -f 'TestSALOMEDS.cxx'; then $(CYGPATH_W) 'TestSALOMEDS.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMEDS.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Tpo $(DEPDIR)/TestSALOMEDS-TestSALOMEDS.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMEDS.cxx' object='TestSALOMEDS-TestSALOMEDS.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMEDS-TestSALOMEDS.obj `if test -f 'TestSALOMEDS.cxx'; then $(CYGPATH_W) 'TestSALOMEDS.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMEDS.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest.cxx000077500000000000000000000113151177004724000217760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEDSTest.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include "utilities.h" #include "Utils_SINGLETON.hxx" #include "Utils_ORB_INIT.hxx" #include "SALOME_NamingService.hxx" #include "SALOME_LifeCycleCORBA.hxx" #include #include #include #include #include #include "SALOMEDSClient.hxx" #include "SALOMEDS_StudyManager_i.hxx" #include "SALOMEDS_StudyManager.hxx" #include "SALOMEDS_SObject.hxx" // ============================================================================ /*! * Set up the environment */ // ============================================================================ void SALOMEDSTest::setUp() { int argc = 1; char* argv[] = {(char*)""}; ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(argc , argv ) ; SALOME_NamingService NS(_orb); CORBA::Object_var obj = NS.Resolve( "/myStudyManager" ); _sm = SALOMEDS::StudyManager::_narrow( obj ); CPPUNIT_ASSERT( !CORBA::is_nil(_sm) ); } // ============================================================================ /*! * - delete trace classes */ // ============================================================================ void SALOMEDSTest::tearDown() { _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); std::vector v = sm->GetOpenStudies(); for(int i = 0; iGetStudyByName(v[i]); if(study) sm->Close(study); } } #include "SALOMEDSTest_AttributeComment.cxx" #include "SALOMEDSTest_AttributeDrawable.cxx" #include "SALOMEDSTest_AttributeExpandable.cxx" #include "SALOMEDSTest_AttributeExternalFileDef.cxx" #include "SALOMEDSTest_AttributeFileType.cxx" #include "SALOMEDSTest_AttributeFlags.cxx" #include "SALOMEDSTest_AttributeGraphic.cxx" #include "SALOMEDSTest_AttributeIOR.cxx" #include "SALOMEDSTest_AttributeInteger.cxx" #include "SALOMEDSTest_AttributeLocalID.cxx" #include "SALOMEDSTest_AttributeName.cxx" #include "SALOMEDSTest_AttributeOpened.cxx" #include "SALOMEDSTest_AttributeParameter.cxx" #include "SALOMEDSTest_AttributePersistentRef.cxx" #include "SALOMEDSTest_AttributePixMap.cxx" #include "SALOMEDSTest_AttributePythonObject.cxx" #include "SALOMEDSTest_AttributeReal.cxx" #include "SALOMEDSTest_AttributeSelectable.cxx" #include "SALOMEDSTest_AttributeSequenceOfInteger.cxx" #include "SALOMEDSTest_AttributeSequenceOfReal.cxx" #include "SALOMEDSTest_AttributeStudyProperties.cxx" #include "SALOMEDSTest_AttributeTableOfInteger.cxx" #include "SALOMEDSTest_AttributeTableOfReal.cxx" #include "SALOMEDSTest_AttributeTableOfString.cxx" #include "SALOMEDSTest_AttributeTarget.cxx" #include "SALOMEDSTest_AttributeTextColor.cxx" #include "SALOMEDSTest_AttributeTextHighlightColor.cxx" #include "SALOMEDSTest_AttributeTreeNode.cxx" #include "SALOMEDSTest_AttributeUserID.cxx" #include "SALOMEDSTest_ChildIterator.cxx" #include "SALOMEDSTest_SComponent.cxx" #include "SALOMEDSTest_SComponentIterator.cxx" #include "SALOMEDSTest_SObject.cxx" #include "SALOMEDSTest_Study.cxx" #include "SALOMEDSTest_StudyBuilder.cxx" #include "SALOMEDSTest_StudyManager.cxx" #include "SALOMEDSTest_UseCase.cxx" // ============================================================================ /*! * Set up the environment */ // ============================================================================ void SALOMEDSTest_Embedded::setUp() { int argc = 1; char* argv[] = {(char*)""}; ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); _orb = init(argc , argv ) ; SALOME_NamingService NS(_orb); CORBA::Object_var obj = NS.Resolve( "/myStudyManager_embedded" ); _sm = SALOMEDS::StudyManager::_narrow( obj ); CPPUNIT_ASSERT( !CORBA::is_nil(_sm) ); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest.hxx000077500000000000000000000134301177004724000220030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOMEDSTEST_HXX_ #define _SALOMEDSTEST_HXX_ #include #include #include CORBA_SERVER_HEADER(SALOMEDS) class SALOMEDSTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( SALOMEDSTest ); //Attributes' tests CPPUNIT_TEST( testAttributeComment ); CPPUNIT_TEST( testAttributeDrawable ); CPPUNIT_TEST( testAttributeExpandable ); CPPUNIT_TEST( testAttributeExternalFileDef ); CPPUNIT_TEST( testAttributeFileType ); CPPUNIT_TEST( testAttributeFlags ); CPPUNIT_TEST( testAttributeGraphic ); CPPUNIT_TEST( testAttributeIOR ); CPPUNIT_TEST( testAttributeInteger ); CPPUNIT_TEST( testAttributeLocalID ); CPPUNIT_TEST( testAttributeName ); CPPUNIT_TEST( testAttributeOpened ); CPPUNIT_TEST( testAttributeParameter ); CPPUNIT_TEST( testAttributePersistentRef ); CPPUNIT_TEST( testAttributePixMap ); CPPUNIT_TEST( testAttributePythonObject ); CPPUNIT_TEST( testAttributeReal ); CPPUNIT_TEST( testAttributeSelectable ); CPPUNIT_TEST( testAttributeSequenceOfInteger ); CPPUNIT_TEST( testAttributeSequenceOfReal ); CPPUNIT_TEST( testAttributeStudyProperties ); CPPUNIT_TEST( testAttributeTableOfInteger ); CPPUNIT_TEST( testAttributeTableOfReal ); CPPUNIT_TEST( testAttributeTableOfString ); CPPUNIT_TEST( testAttributeTarget ); CPPUNIT_TEST( testAttributeTextColor ); CPPUNIT_TEST( testAttributeTextHighlightColor ); CPPUNIT_TEST( testAttributeTreeNode ); CPPUNIT_TEST( testAttributeUserID ); CPPUNIT_TEST( testChildIterator ); CPPUNIT_TEST( testSComponent ); CPPUNIT_TEST( testSComponentIterator ); CPPUNIT_TEST( testSObject ); CPPUNIT_TEST( testStudy ); CPPUNIT_TEST( testStudyBuilder ); CPPUNIT_TEST( testStudyManager ); CPPUNIT_TEST( testUseCase ); CPPUNIT_TEST_SUITE_END(); public: virtual void setUp(); virtual void tearDown(); //Attributes void testAttributeComment(); void testAttributeDrawable(); void testAttributeExpandable(); void testAttributeExternalFileDef(); void testAttributeFileType(); void testAttributeFlags(); void testAttributeGraphic(); void testAttributeIOR(); void testAttributeInteger(); void testAttributeLocalID(); void testAttributeName(); void testAttributeOpened(); void testAttributeParameter(); void testAttributePersistentRef(); void testAttributePixMap(); void testAttributePythonObject(); void testAttributeReal(); void testAttributeSelectable(); void testAttributeSequenceOfInteger(); void testAttributeSequenceOfReal(); void testAttributeStudyProperties(); void testAttributeTableOfInteger(); void testAttributeTableOfReal(); void testAttributeTableOfString(); void testAttributeTarget(); void testAttributeTextColor(); void testAttributeTextHighlightColor(); void testAttributeTreeNode(); void testAttributeUserID(); //Objects void testChildIterator(); void testSComponent(); void testSComponentIterator(); void testSObject(); void testStudy(); void testStudyBuilder(); void testStudyManager(); void testUseCase(); protected: SALOMEDS::StudyManager_var _sm; CORBA::ORB_var _orb; }; class SALOMEDSTest_Embedded : public SALOMEDSTest { CPPUNIT_TEST_SUITE( SALOMEDSTest_Embedded ); //Attributes' tests CPPUNIT_TEST( testAttributeComment ); CPPUNIT_TEST( testAttributeDrawable ); CPPUNIT_TEST( testAttributeExpandable ); CPPUNIT_TEST( testAttributeExternalFileDef ); CPPUNIT_TEST( testAttributeFileType ); CPPUNIT_TEST( testAttributeFlags ); CPPUNIT_TEST( testAttributeGraphic ); CPPUNIT_TEST( testAttributeIOR ); CPPUNIT_TEST( testAttributeInteger ); CPPUNIT_TEST( testAttributeLocalID ); CPPUNIT_TEST( testAttributeName ); CPPUNIT_TEST( testAttributeOpened ); CPPUNIT_TEST( testAttributeParameter ); CPPUNIT_TEST( testAttributePersistentRef ); CPPUNIT_TEST( testAttributePixMap ); CPPUNIT_TEST( testAttributePythonObject ); CPPUNIT_TEST( testAttributeReal ); CPPUNIT_TEST( testAttributeSelectable ); CPPUNIT_TEST( testAttributeSequenceOfInteger ); CPPUNIT_TEST( testAttributeSequenceOfReal ); CPPUNIT_TEST( testAttributeStudyProperties ); CPPUNIT_TEST( testAttributeTableOfInteger ); CPPUNIT_TEST( testAttributeTableOfReal ); CPPUNIT_TEST( testAttributeTableOfString ); CPPUNIT_TEST( testAttributeTarget ); CPPUNIT_TEST( testAttributeTextColor ); CPPUNIT_TEST( testAttributeTextHighlightColor ); CPPUNIT_TEST( testAttributeTreeNode ); CPPUNIT_TEST( testAttributeUserID ); CPPUNIT_TEST( testChildIterator ); CPPUNIT_TEST( testSComponent ); CPPUNIT_TEST( testSComponentIterator ); CPPUNIT_TEST( testSObject ); CPPUNIT_TEST( testStudy ); CPPUNIT_TEST( testStudyBuilder ); CPPUNIT_TEST( testChildIterator ); CPPUNIT_TEST( testStudyManager ); CPPUNIT_TEST( testUseCase ); CPPUNIT_TEST_SUITE_END(); public: virtual void setUp(); }; #endif salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeComment.cxx000077500000000000000000000040201177004724000253370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeComment * Use code of SALOMEDS_AttributeComment.cxx */ void SALOMEDSTest::testAttributeComment() { //Create or find the Study manager _PTR(StudyManager) sm(new SALOMEDS_StudyManager(_sm)); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeComment _PTR(AttributeComment) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeComment"); CPPUNIT_ASSERT(_attr); //Check method Value std::string value = _attr->Value(); CPPUNIT_ASSERT(value.empty()); value = "Test string!"; //Check method SetValue _attr->SetValue(value); CPPUNIT_ASSERT(value == _attr->Value()); //Try to set empty string _attr->SetValue(""); CPPUNIT_ASSERT(_attr->Value() == ""); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeDrawable.cxx000077500000000000000000000040151177004724000254620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeDrawable * Use code of SALOMEDS_AttributeDrawable.cxx */ void SALOMEDSTest::testAttributeDrawable() { //Create or find the Study manager _PTR(StudyManager) sm(new SALOMEDS_StudyManager(_sm)); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeDrawable _PTR(AttributeDrawable) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeDrawable"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method IsDrawable bool isDrawable = _attr->IsDrawable(); CPPUNIT_ASSERT(!isDrawable); //Check method SetDrawable _attr->SetDrawable(true); CPPUNIT_ASSERT(_attr->IsDrawable()); _attr->SetDrawable(false); CPPUNIT_ASSERT(!_attr->IsDrawable()); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeExpandable.cxx000077500000000000000000000040541177004724000260070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeExpandable * Use code of SALOMEDS_AttributeExpandable.cxx */ void SALOMEDSTest::testAttributeExpandable() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeExpandable _PTR(AttributeExpandable) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeExpandable"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method IsExpandable bool isExpandable = _attr->IsExpandable(); CPPUNIT_ASSERT(isExpandable); //Check method SetExpandable _attr->SetExpandable(false); CPPUNIT_ASSERT(!_attr->IsExpandable()); _attr->SetExpandable(true); CPPUNIT_ASSERT(_attr->IsExpandable()); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeExternalFileDef.cxx000077500000000000000000000041431177004724000267440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeExternalFileDef * Use code of SALOMEDS_AttributeExternalFileDef.cxx */ void SALOMEDSTest::testAttributeExternalFileDef() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeExternalFileDef _PTR(AttributeExternalFileDef) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeExternalFileDef"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Value std::string value = _attr->Value(); CPPUNIT_ASSERT(value.empty()); value = "Test string!"; //Check method SetValue _attr->SetValue(value); CPPUNIT_ASSERT(value == _attr->Value()); //Try to set empty string _attr->SetValue(""); CPPUNIT_ASSERT(_attr->Value() == ""); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeFileType.cxx000077500000000000000000000040711177004724000254640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeFileType * Use code of SALOMEDS_AttributeFileType.cxx */ void SALOMEDSTest::testAttributeFileType() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeFileType _PTR(AttributeFileType) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeFileType"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Value std::string value = _attr->Value(); CPPUNIT_ASSERT(value.empty()); value = "Test string!"; //Check method SetValue _attr->SetValue(value); CPPUNIT_ASSERT(value == _attr->Value()); //Try to set empty string _attr->SetValue(""); CPPUNIT_ASSERT(_attr->Value() == ""); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeFlags.cxx000077500000000000000000000040521177004724000247760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeFlags * Use code of SALOMEDS_AttributeFlags.cxx */ void SALOMEDSTest::testAttributeFlags() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeFlags _PTR(AttributeFlags) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeFlags"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Set _attr->Set(2, true); CPPUNIT_ASSERT(_attr->Get(2)); _attr->Set(4, false); //Check method Get CPPUNIT_ASSERT(!_attr->Get(4)); //Check method GetFlags int flags = _attr->GetFlags(); _attr->SetFlags(flags); CPPUNIT_ASSERT(_attr->Get(2)); CPPUNIT_ASSERT(!_attr->Get(4)); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeGraphic.cxx000077500000000000000000000042601177004724000253200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeGraphic * Use code of SALOMEDS_AttributeGraphic.cxx */ void SALOMEDSTest::testAttributeGraphic() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeGraphic _PTR(AttributeGraphic) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeGraphic"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method SetVisibility _attr->SetVisibility(1, true); //Check method GetVisibility CPPUNIT_ASSERT(_attr->GetVisibility(1)); _attr->SetVisibility(2, false); CPPUNIT_ASSERT(!_attr->GetVisibility(2) && _attr->GetVisibility(1)); //Check visibility for 0 and -1 _attr->SetVisibility(0, false); CPPUNIT_ASSERT(!_attr->GetVisibility(0)); _attr->SetVisibility(-1, true); CPPUNIT_ASSERT(_attr->GetVisibility(-1)); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeIOR.cxx000077500000000000000000000037211177004724000243750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeIOR * Use code of SALOMEDS_AttributeIOR.cxx */ void SALOMEDSTest::testAttributeIOR() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeIOR _PTR(AttributeIOR) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeIOR"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Value std::string value = _attr->Value(); CPPUNIT_ASSERT(value.empty()); std::string ior = _orb->object_to_string(_sm); //Check method SetValue _attr->SetValue(ior); CPPUNIT_ASSERT(ior == _attr->Value()); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeInteger.cxx000077500000000000000000000036051177004724000253420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeInteger * Use code of SALOMEDS_AttributeInteger.cxx */ void SALOMEDSTest::testAttributeInteger() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeInteger _PTR(AttributeInteger) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeInteger"); //Check the attribute creation CPPUNIT_ASSERT(_attr); int value = 10; //Check method SetValue _attr->SetValue(value); //Check method Value CPPUNIT_ASSERT(_attr->Value() == value); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeLocalID.cxx000077500000000000000000000036071177004724000252160ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeLocalID * Use code of SALOMEDS_AttributeLocalID.cxx */ void SALOMEDSTest::testAttributeLocalID() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeLocalID _PTR(AttributeLocalID) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeLocalID"); //Check the attribute creation CPPUNIT_ASSERT(_attr); int value = 10; //Check method SetValue _attr->SetValue(value); //Check method Value CPPUNIT_ASSERT(_attr->Value() == value); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeName.cxx000077500000000000000000000040401177004724000246170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeName * Use code of SALOMEDS_AttributeName.cxx */ void SALOMEDSTest::testAttributeName() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeName _PTR(AttributeName) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeName"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Value std::string value = _attr->Value(); CPPUNIT_ASSERT(value.empty()); value = "Test string!"; //Check method SetValue _attr->SetValue(value); CPPUNIT_ASSERT(value == _attr->Value()); //Try to set empty string _attr->SetValue(""); CPPUNIT_ASSERT(_attr->Value() == ""); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeOpened.cxx000077500000000000000000000037611177004724000251620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeOpened * Use code of SALOMEDS_AttributeOpened.cxx */ void SALOMEDSTest::testAttributeOpened() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeOpened _PTR(AttributeOpened) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeOpened"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method IsOpened bool isOpened = _attr->IsOpened(); CPPUNIT_ASSERT(!isOpened); //Check method SetOpened _attr->SetOpened(true); CPPUNIT_ASSERT(_attr->IsOpened()); _attr->SetOpened(false); CPPUNIT_ASSERT(!_attr->IsOpened()); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeParameter.cxx000077500000000000000000000121531177004724000256630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #define PT_INTEGER 0 #define PT_REAL 1 #define PT_BOOLEAN 2 #define PT_STRING 3 #define PT_REALARRAY 4 #define PT_INTARRAY 5 #define PT_STRARRAY 6 /*! * Check all methods of SALOMEDS_AttributeParameter * Use code of SALOMEDS_AttributeParameter.cxx */ void SALOMEDSTest::testAttributeParameter() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeParameter _PTR(AttributeParameter) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeParameter"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Try to retreive a value with invalid ID bool isRaised = false; CPPUNIT_ASSERT(!_attr->IsSet("invalid ID", PT_INTEGER)); try { _attr->GetInt("invalid ID"); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); //Check method SetInt and GetInt _attr->SetInt("IntValue", 1); CPPUNIT_ASSERT(_attr->IsSet("IntValue", PT_INTEGER)); CPPUNIT_ASSERT(_attr->GetInt("IntValue") == 1); //Check method SetReal an GetReal _attr->SetReal("RealValue", 1.2); CPPUNIT_ASSERT(_attr->IsSet("RealValue", PT_REAL)); CPPUNIT_ASSERT(_attr->GetReal("RealValue") == 1.2); //Check method SetString and GetString _attr->SetString("StringValue", "hello"); CPPUNIT_ASSERT(_attr->IsSet("StringValue", PT_STRING)); CPPUNIT_ASSERT(_attr->GetString("StringValue") == "hello"); //Check method SetBool and GetBool _attr->SetBool("BoolValue", 0); CPPUNIT_ASSERT(_attr->IsSet("BoolValue", PT_BOOLEAN)); CPPUNIT_ASSERT(!_attr->GetBool("BoolValue")); _attr->SetBool("BoolValue", 0); CPPUNIT_ASSERT(_attr->IsSet("BoolValue", PT_BOOLEAN)); CPPUNIT_ASSERT(!_attr->GetBool("BoolValue")); std::vector intArray; intArray.push_back(0); intArray.push_back(1); //Check method SetIntArray and GetIntArray _attr->SetIntArray("IntArray", intArray); CPPUNIT_ASSERT(_attr->IsSet("IntArray", PT_INTARRAY)); CPPUNIT_ASSERT(_attr->GetIntArray("IntArray")[0] == 0); CPPUNIT_ASSERT(_attr->GetIntArray("IntArray")[1] == 1); std::vector realArray; realArray.push_back(0.0); realArray.push_back(1.1); //Check method SetRealArray and GetRealArray _attr->SetRealArray("RealArray", realArray); CPPUNIT_ASSERT(_attr->IsSet("RealArray", PT_REALARRAY)); CPPUNIT_ASSERT(_attr->GetRealArray("RealArray")[0] == 0.0); CPPUNIT_ASSERT(_attr->GetRealArray("RealArray")[1] == 1.1); std::vector strArray; strArray.push_back("hello"); strArray.push_back("world"); //Check method SetStrArray and GetStrArray _attr->SetStrArray("StrArray", strArray); CPPUNIT_ASSERT(_attr->IsSet("StrArray", PT_STRARRAY)); CPPUNIT_ASSERT(_attr->GetStrArray("StrArray")[0] == "hello"); CPPUNIT_ASSERT(_attr->GetStrArray("StrArray")[1] == "world"); /* string saved = _attr->Save(); _attr->Load(saved); CPPUNIT_ASSERT(_attr->IsSet("IntValue", PT_INTEGER) && _attr->GetInt("IntValue") == 1); CPPUNIT_ASSERT(_attr->IsSet("RealValue", PT_REAL) && _attr->GetReal("IntValue") == 1.2); CPPUNIT_ASSERT(_attr->IsSet("StringValue", PT_STRING) && _attr->GetString("StringValue") == "hello"); CPPUNIT_ASSERT(_attr->IsSet("BoolValue", PT_BOOLEAN) && _attr->GetBool("BoolValue") == 0); CPPUNIT_ASSERT(_attr->IsSet("IntArray", PT_INTARRAY) && _attr->GetIntArray("IntArray")[0] == 0); CPPUNIT_ASSERT(_attr->IsSet("IntArray", PT_INTARRAY) && _attr->GetIntArray("IntArray")[1] == 1); CPPUNIT_ASSERT(_attr->IsSet("RealArray", PT_REALARRAY) && _attr->GetRealArray("RealArray")[0] == 0.0); CPPUNIT_ASSERT(_attr->IsSet("RealArray", PT_REALARRAY) && _attr->GetRealArray("RealArray")[1] == 1.1); CPPUNIT_ASSERT(_attr->IsSet("StrArray", PT_STRARRAY) && _attr->GetStrArray("StrArray")[0] == "hello"); CPPUNIT_ASSERT(_attr->IsSet("StrArray", PT_STRARRAY) && _attr->GetStrArray("StrArray")[1] == "world"); */ sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributePersistentRef.cxx000077500000000000000000000041301177004724000265340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributePersistentRef * Use code of SALOMEDS_AttributePersistentRef.cxx */ void SALOMEDSTest::testAttributePersistentRef() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); //Check the attribute creation CPPUNIT_ASSERT(so); //Create an attribute AttributePersistentRef _PTR(AttributePersistentRef) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributePersistentRef"); CPPUNIT_ASSERT(_attr); //Check method Value std::string value = _attr->Value(); CPPUNIT_ASSERT(value.empty()); value = "Test string!"; //Check method SetValue _attr->SetValue(value); CPPUNIT_ASSERT(value == _attr->Value()); //Try to set empty string _attr->SetValue(""); CPPUNIT_ASSERT(_attr->Value() == ""); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributePixMap.cxx000077500000000000000000000041731177004724000251440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributePixMap * Use code of SALOMEDS_AttributePixMap.cxx */ void SALOMEDSTest::testAttributePixMap() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributePixMap _PTR(AttributePixMap) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributePixMap"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method HasPixMap CPPUNIT_ASSERT(!_attr->HasPixMap()); //Check method SetPixMap std::string pixmap = "something"; _attr->SetPixMap(pixmap); CPPUNIT_ASSERT(_attr->HasPixMap()); //Check method GetPixMap CPPUNIT_ASSERT(_attr->GetPixMap() == pixmap); //Check empty PixMap assigning and retreival _attr->SetPixMap(""); CPPUNIT_ASSERT(_attr->GetPixMap() == ""); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributePythonObject.cxx000077500000000000000000000042771177004724000263630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributePythonObject * Use code of SALOMEDS_AttributePythonObject.cxx */ void SALOMEDSTest::testAttributePythonObject() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributePythonObject _PTR(AttributePythonObject) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributePythonObject"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method IsScript CPPUNIT_ASSERT(!_attr->IsScript()); std::string pyobj = "some object!"; //Check method SetObject _attr->SetObject(pyobj, true); CPPUNIT_ASSERT(_attr->IsScript()); //Check method GetObject CPPUNIT_ASSERT(_attr->GetObject() == pyobj); //Check setting and retreival of empty object _attr->SetObject("", true); CPPUNIT_ASSERT(_attr->GetObject() == "" && _attr->IsScript()); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeReal.cxx000077500000000000000000000035711177004724000246320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeReal * Use code of SALOMEDS_AttributeReal.cxx */ void SALOMEDSTest::testAttributeReal() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeReal _PTR(AttributeReal) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeReal"); //Check the attribute creation CPPUNIT_ASSERT(_attr); double value = 10.12; //Check method SetValue _attr->SetValue(value); //Check method Value CPPUNIT_ASSERT(_attr->Value() == value); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeSelectable.cxx000077500000000000000000000040541177004724000260070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeSelectable * Use code of SALOMEDS_AttributeSelectable.cxx */ void SALOMEDSTest::testAttributeSelectable() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeSelectable _PTR(AttributeSelectable) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeSelectable"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method IsSelectable bool isSelectable = _attr->IsSelectable(); CPPUNIT_ASSERT(isSelectable); //Check method SetSelectable _attr->SetSelectable(false); CPPUNIT_ASSERT(!_attr->IsSelectable()); _attr->SetSelectable(true); CPPUNIT_ASSERT(_attr->IsSelectable()); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeSequenceOfInteger.cxx000077500000000000000000000057471177004724000273310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeSequenceOfInteger * Use code of SALOMEDS_AttributeSequenceOfInteger.cxx */ void SALOMEDSTest::testAttributeSequenceOfInteger() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeSequenceOfInteger _PTR(AttributeSequenceOfInteger) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeSequenceOfInteger"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Length CPPUNIT_ASSERT(_attr->Length() == 0); //Check method Add _attr->Add(1); _attr->Add(2); _attr->Add(3); _attr->Add(4); CPPUNIT_ASSERT(_attr->Length() == 4); CPPUNIT_ASSERT(_attr->Value(2) == 2); //Check method Remove _attr->Remove(3); //Check method Value CPPUNIT_ASSERT(_attr->Value(3) == 4); //Check method ChangeValue _attr->ChangeValue(3, 3); CPPUNIT_ASSERT(_attr->Value(3) == 3); //Check method CorbaSequence std::vector v = _attr->CorbaSequence(); CPPUNIT_ASSERT(v.size() == 3); for(int i = 0; iAssign(v); CPPUNIT_ASSERT(_attr->Length() == 4); CPPUNIT_ASSERT(_attr->Value(4) == 5); //Check processing of invalid indicies bool isRaised = false; try { _attr->Value(-1); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); isRaised = false; try { _attr->ChangeValue(12, 1); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); isRaised = false; try { _attr->Remove(10); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeSequenceOfReal.cxx000077500000000000000000000055651177004724000266150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeSequenceOfReal * Use code of SALOMEDS_AttributeSequenceOfReal.cxx */ void SALOMEDSTest::testAttributeSequenceOfReal() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeSequenceOfReal _PTR(AttributeSequenceOfReal) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeSequenceOfReal"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Length CPPUNIT_ASSERT(_attr->Length() == 0); //Check method Add _attr->Add(1.1); _attr->Add(2.2); _attr->Add(3.3); _attr->Add(4.4); CPPUNIT_ASSERT(_attr->Length() == 4); CPPUNIT_ASSERT(_attr->Value(2) == 2.2); //Check method Remove _attr->Remove(3); CPPUNIT_ASSERT(_attr->Value(3) == 4.4); //Check method ChangeValue _attr->ChangeValue(3, 3.3); CPPUNIT_ASSERT(_attr->Value(3) == 3.3); //Check method CorbaSequence std::vector v = _attr->CorbaSequence(); CPPUNIT_ASSERT(v.size() == 3); v.push_back(5.5); _attr->Assign(v); CPPUNIT_ASSERT(_attr->Length() == 4); CPPUNIT_ASSERT(_attr->Value(4) == 5.5); //Check processing of invalid indicies bool isRaised = false; try { _attr->Value(-1); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); isRaised = false; try { _attr->ChangeValue(12, 1); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); isRaised = false; try { _attr->Remove(10); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeStudyProperties.cxx000077500000000000000000000065341177004724000271360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeStudyProperties * Use code of SALOMEDS_AttributeStudyProperties.cxx */ void SALOMEDSTest::testAttributeStudyProperties() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeStudyProperties _PTR(AttributeStudyProperties) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeStudyProperties"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method SetCreationDate _attr->SetCreationDate(1, 2, 3, 4, 5); //Check method GetCreationDate int MN, H, D, MH, Y; _attr->GetCreationDate(MN, H, D, MH, Y); CPPUNIT_ASSERT(MN == 1 && H == 2 && D == 3 && MH == 4 && Y == 5); //Check method SetUserName _attr->SetUserName("srn"); //Check method GetUserName CPPUNIT_ASSERT(_attr->GetUserName() == "srn"); //Check method SetCreationMode std::string value = "from scratch"; _attr->SetCreationMode(value); //Check method GetCreationMode CPPUNIT_ASSERT(_attr->GetCreationMode() == value); //Check method SetModified _attr->SetModified(2); //Check method IsModified CPPUNIT_ASSERT(_attr->IsModified()); //Check method GetModified CPPUNIT_ASSERT(_attr->GetModified() == 2); //Check method SetLocked _attr->SetLocked(true); //Check method IsLocked CPPUNIT_ASSERT(_attr->IsLocked()); _attr->SetLocked(false); CPPUNIT_ASSERT(!_attr->IsLocked()); //Check method SetModification _attr->SetModification("srn2", 6, 7, 8, 9, 10); //Check method GetModificationsList std::vector vs; std::vector vi[5]; _attr->GetModificationsList(vs, vi[0], vi[1], vi[2], vi[3], vi[4], false); CPPUNIT_ASSERT(vs[0] == "srn2" && vi[0][0] == 6 && vi[1][0] == 7 && vi[2][0] == 8 && vi[3][0] == 9 && vi[4][0] == 10); vs.clear(); for(int i=0; i<5; i++) vi[i].clear(); _attr->GetModificationsList(vs, vi[0], vi[1], vi[2], vi[3], vi[4], true); CPPUNIT_ASSERT(vs[0] == "srn" && vi[0][0] == 1 && vi[1][0] == 2 && vi[2][0] == 3 && vi[3][0] == 4 && vi[4][0] == 5); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTableOfInteger.cxx000077500000000000000000000115411177004724000265750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTableOfInteger * Use code of SALOMEDS_AttributeTableOfInteger.cxx */ void SALOMEDSTest::testAttributeTableOfInteger() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTableOfInteger _PTR(AttributeTableOfInteger) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTableOfInteger"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method SetTitle _attr->SetTitle("Table_1"); //Check method GetTitle CPPUNIT_ASSERT(_attr->GetTitle() == "Table_1"); //Check method SetNbColumns _attr->SetNbColumns(2); //Check method GetNbColumns CPPUNIT_ASSERT(_attr->GetNbColumns() == 2); //Check method HasValue CPPUNIT_ASSERT(!_attr->HasValue(1, 1)); bool isCaught = false; try { _attr->GetValue(1, 1); } catch(...) { isCaught = true; } CPPUNIT_ASSERT(isCaught); //Check method PutValue _attr->PutValue(23, 1,1); CPPUNIT_ASSERT(_attr->HasValue(1, 1)); //Check method GetValue CPPUNIT_ASSERT(_attr->GetValue(1, 1) == 23); //Check method GetRowSetIndices std::vector rs = _attr->GetRowSetIndices(1); CPPUNIT_ASSERT(rs.size() == 1 && rs[0] == 1); _attr->PutValue(32, 2,2); CPPUNIT_ASSERT(_attr->HasValue(2, 2)); std::vector rowTitles; rowTitles.push_back("title1"); rowTitles.push_back("title2"); //Check method SetRowTitles _attr->SetRowTitles(rowTitles); //Check method SetRowTitle _attr->SetRowTitle(1, "new_title"); //Check method GetRowTitles std::vector rt = _attr->GetRowTitles(); CPPUNIT_ASSERT(rt.size() == 2 && rt[0] == "new_title" && rt[1] == "title2"); std::vector colTitles; colTitles.push_back("title1"); colTitles.push_back("title2"); //Check method SetColumnTitles _attr->SetColumnTitles(colTitles); //Check method SetColumnTitle _attr->SetColumnTitle(1, "new_title"); //Check method GetColumnTitles std::vector ct = _attr->GetColumnTitles(); CPPUNIT_ASSERT(ct.size() == 2 && ct[0] == "new_title" && ct[1] == "title2"); std::vector rowUnits; rowUnits.push_back("unit1"); rowUnits.push_back("unit2"); //Check method SetRowUnits _attr->SetRowUnits(rowUnits); //Check method SetRowUnit _attr->SetRowUnit(1, "new_unit"); //Check method GetRowUnits std::vector ru = _attr->GetRowUnits(); CPPUNIT_ASSERT(ru.size() == 2 && ru[0] == "new_unit" && ru[1] == "unit2"); //Check method GetNbColumns CPPUNIT_ASSERT(_attr->GetNbColumns() == 2); //Check method AddRow std::vector data; data.push_back(11); data.push_back(22); _attr->AddRow(data); CPPUNIT_ASSERT(_attr->GetNbRows() == 3); //Check method GetRow std::vector data2 = _attr->GetRow(3); CPPUNIT_ASSERT(data2.size() == 2 && data2[0] == 11 && data2[1] == 22); //Check method SetRow data[0] = 33; _attr->SetRow(3, data); data2 = _attr->GetRow(3); CPPUNIT_ASSERT(data2.size() == 2 && data2[0] == 33 && data2[1] == 22); //Check method AddColumn data[0] = -11; data[1] = -22; data.push_back(-33); _attr->AddColumn(data); CPPUNIT_ASSERT(_attr->GetNbColumns() == 3); //Check method GetColumn data2 = _attr->GetColumn(3); CPPUNIT_ASSERT(data2.size() == 3 && data2[0] == -11 && data2[1] == -22 && data2[2] == -33); //Check method SetColumn data[0] = 11; _attr->SetColumn(3, data); data2 = _attr->GetColumn(3); CPPUNIT_ASSERT(data2.size() == 3 && data2[0] == 11 && data2[1] == -22 && data2[2] == -33); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTableOfReal.cxx000077500000000000000000000116151177004724000260650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTableOfReal * Use code of SALOMEDS_AttributeTableOfReal.cxx */ void SALOMEDSTest::testAttributeTableOfReal() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTableOfReal _PTR(AttributeTableOfReal) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTableOfReal"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method SetTitle _attr->SetTitle("Table_1"); //Check method GetTitle CPPUNIT_ASSERT(_attr->GetTitle() == "Table_1"); //Check method SetNbColumns _attr->SetNbColumns(2); //Check method GetNbColumns CPPUNIT_ASSERT(_attr->GetNbColumns() == 2); //Check method HasValue CPPUNIT_ASSERT(!_attr->HasValue(1, 1)); bool isCaught = false; try { _attr->GetValue(1, 1); } catch(...) { isCaught = true; } CPPUNIT_ASSERT(isCaught); //Check method PutValue _attr->PutValue(23.23, 1,1); CPPUNIT_ASSERT(_attr->HasValue(1, 1)); //Check method GetValue CPPUNIT_ASSERT(_attr->GetValue(1, 1) == 23.23); //Check method GetRowSetIndices std::vector rs = _attr->GetRowSetIndices(1); CPPUNIT_ASSERT(rs.size() == 1 && rs[0] == 1); _attr->PutValue(32.32, 2,2); CPPUNIT_ASSERT(_attr->HasValue(2, 2)); std::vector rowTitles; rowTitles.push_back("title1"); rowTitles.push_back("title2"); //Check method SetRowTitles _attr->SetRowTitles(rowTitles); //Check method SetRowTitle _attr->SetRowTitle(1, "new_title"); //Check method GetRowTitles std::vector rt = _attr->GetRowTitles(); CPPUNIT_ASSERT(rt.size() == 2 && rt[0] == "new_title" && rt[1] == "title2"); std::vector colTitles; colTitles.push_back("title1"); colTitles.push_back("title2"); //Check method SetColumnTitles _attr->SetColumnTitles(colTitles); //Check method SetColumnTitle _attr->SetColumnTitle(1, "new_title"); //Check method GetColumnTitles std::vector ct = _attr->GetColumnTitles(); CPPUNIT_ASSERT(ct.size() == 2 && ct[0] == "new_title" && ct[1] == "title2"); std::vector rowUnits; rowUnits.push_back("unit1"); rowUnits.push_back("unit2"); //Check method SetRowUnits _attr->SetRowUnits(rowUnits); //Check method SetRowUnit _attr->SetRowUnit(1, "new_unit"); //Check method GetRowUnits std::vector ru = _attr->GetRowUnits(); CPPUNIT_ASSERT(ru.size() == 2 && ru[0] == "new_unit" && ru[1] == "unit2"); //Check method GetNbColumns CPPUNIT_ASSERT(_attr->GetNbColumns() == 2); //Check method AddRow std::vector data; data.push_back(11.11); data.push_back(22.22); _attr->AddRow(data); CPPUNIT_ASSERT(_attr->GetNbRows() == 3); //Check method GetRow std::vector data2 = _attr->GetRow(3); CPPUNIT_ASSERT(data2.size() == 2 && data2[0] == 11.11 && data2[1] == 22.22); //Check method SetRow data[0] = 33.33; _attr->SetRow(3, data); data2 = _attr->GetRow(3); CPPUNIT_ASSERT(data2.size() == 2 && data2[0] == 33.33 && data2[1] == 22.22); //Check method AddColumn data[0] = -11.11; data[1] = -22.22; data.push_back(-33.33); _attr->AddColumn(data); CPPUNIT_ASSERT(_attr->GetNbColumns() == 3); //Check method GetColumn data2 = _attr->GetColumn(3); CPPUNIT_ASSERT(data2.size() == 3 && data2[0] == -11.11 && data2[1] == -22.22 && data2[2] == -33.33); //Check method SetColumn data[0] = 11.11; _attr->SetColumn(3, data); data2 = _attr->GetColumn(3); CPPUNIT_ASSERT(data2.size() == 3 && data2[0] == 11.11 && data2[1] == -22.22 && data2[2] == -33.33); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTableOfString.cxx000077500000000000000000000116201177004724000264440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTableOfString * Use code of SALOMEDS_AttributeTableOfString.cxx */ void SALOMEDSTest::testAttributeTableOfString() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTableOfString _PTR(AttributeTableOfString) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTableOfString"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method SetTitle _attr->SetTitle("Table_1"); //Check method GetTitle CPPUNIT_ASSERT(_attr->GetTitle() == "Table_1"); //Check method SetNbColumns _attr->SetNbColumns(2); //Check method GetNbColumns CPPUNIT_ASSERT(_attr->GetNbColumns() == 2); //Check method HasValue CPPUNIT_ASSERT(!_attr->HasValue(1, 1)); bool isCaught = false; try { _attr->GetValue(1, 1); } catch(...) { isCaught = true; } CPPUNIT_ASSERT(isCaught); //Check method PutValue _attr->PutValue("23", 1,1); CPPUNIT_ASSERT(_attr->HasValue(1, 1)); //Check method GetValue CPPUNIT_ASSERT(_attr->GetValue(1, 1) == "23"); //Check method GetRowSetIndices std::vector rs = _attr->GetRowSetIndices(1); CPPUNIT_ASSERT(rs.size() == 1 && rs[0] == 1); _attr->PutValue("32", 2,2); CPPUNIT_ASSERT(_attr->HasValue(2, 2)); std::vector rowTitles; rowTitles.push_back("title1"); rowTitles.push_back("title2"); //Check method SetRowTitles _attr->SetRowTitles(rowTitles); //Check method SetRowTitle _attr->SetRowTitle(1, "new_title"); //Check method GetRowTitles std::vector rt = _attr->GetRowTitles(); CPPUNIT_ASSERT(rt.size() == 2 && rt[0] == "new_title" && rt[1] == "title2"); std::vector colTitles; colTitles.push_back("title1"); colTitles.push_back("title2"); //Check method SetColumnTitles _attr->SetColumnTitles(colTitles); //Check method SetColumnTitle _attr->SetColumnTitle(1, "new_title"); //Check method GetColumnTitles std::vector ct = _attr->GetColumnTitles(); CPPUNIT_ASSERT(ct.size() == 2 && ct[0] == "new_title" && ct[1] == "title2"); std::vector rowUnits; rowUnits.push_back("unit1"); rowUnits.push_back("unit2"); //Check method SetRowUnits _attr->SetRowUnits(rowUnits); //Check method SetRowUnit _attr->SetRowUnit(1, "new_unit"); //Check method GetRowUnits std::vector ru = _attr->GetRowUnits(); CPPUNIT_ASSERT(ru.size() == 2 && ru[0] == "new_unit" && ru[1] == "unit2"); //Check method GetNbColumns CPPUNIT_ASSERT(_attr->GetNbColumns() == 2); //Check method AddRow std::vector data; data.push_back("11"); data.push_back("22"); _attr->AddRow(data); CPPUNIT_ASSERT(_attr->GetNbRows() == 3); //Check method GetRow std::vector data2 = _attr->GetRow(3); CPPUNIT_ASSERT(data2.size() == 2 && data2[0] == "11" && data2[1] == "22"); //Check method SetRow data[0] = "33"; _attr->SetRow(3, data); data2 = _attr->GetRow(3); CPPUNIT_ASSERT(data2.size() == 2 && data2[0] == "33" && data2[1] == "22"); //Check method AddColumn data[0] = "-11"; data[1] = "-22"; data.push_back("-33"); _attr->AddColumn(data); CPPUNIT_ASSERT(_attr->GetNbColumns() == 3); //Check method GetColumn data2 = _attr->GetColumn(3); CPPUNIT_ASSERT(data2.size() == 3 && data2[0] == "-11" && data2[1] == "-22" && data2[2] == "-33"); //Check method SetColumn data[0] = "11"; _attr->SetColumn(3, data); data2 = _attr->GetColumn(3); CPPUNIT_ASSERT(data2.size() == 3 && data2[0] == "11" && data2[1] == "-22" && data2[2] == "-33"); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTarget.cxx000077500000000000000000000046061177004724000251750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTarget * Use code of SALOMEDS_AttributeTarget.cxx */ void SALOMEDSTest::testAttributeTarget() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTarget _PTR(AttributeTarget) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTarget"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method Get CPPUNIT_ASSERT(_attr->Get().size() == 0); _PTR(SObject) so1 = study->CreateObjectID("0:1:2"); studyBuilder->Addreference(so1, so); _PTR(SObject) so2 = study->CreateObjectID("0:1:3"); studyBuilder->Addreference(so2, so1); //Check method Add _attr->Add(so1); _attr->Add(so2); //Check method Get std::vector< _PTR(SObject) > v = _attr->Get(); CPPUNIT_ASSERT(v.size() == 2); CPPUNIT_ASSERT(v[0]->GetID() == "0:1:2"); CPPUNIT_ASSERT(v[1]->GetID() == "0:1:3"); //Check method Remove _attr->Remove(so1); v = _attr->Get(); CPPUNIT_ASSERT(v.size() == 1); CPPUNIT_ASSERT(v[0]->GetID() == "0:1:3"); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTextColor.cxx000077500000000000000000000041051177004724000256640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTextColor * Use code of SALOMEDS_AttributeTextColor.cxx */ void SALOMEDSTest::testAttributeTextColor() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTextColor _PTR(AttributeTextColor) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTextColor"); //Check the attribute creation CPPUNIT_ASSERT(_attr); STextColor color; color.R = 0; color.G = 1; color.B = 2; //Check method SetTextColor _attr->SetTextColor(color); //Check method TextColor STextColor color2 = _attr->TextColor(); CPPUNIT_ASSERT(color.R == color2.R); CPPUNIT_ASSERT(color.G == color2.G); CPPUNIT_ASSERT(color.B == color2.B); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTextHighlightColor.cxx000077500000000000000000000042351177004724000275200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTextHighlightColor * Use code of SALOMEDS_AttributeTextHighlightColor.cxx */ void SALOMEDSTest::testAttributeTextHighlightColor() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTextHighlightColor _PTR(AttributeTextHighlightColor) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTextHighlightColor"); //Check the attribute creation CPPUNIT_ASSERT(_attr); STextColor color; color.R = 0; color.G = 1; color.B = 2; //Check method SetTextHighlightColor _attr->SetTextHighlightColor(color); //Check method TextHighlightColor STextColor color2 = _attr->TextHighlightColor(); CPPUNIT_ASSERT(color.R == color2.R); CPPUNIT_ASSERT(color.G == color2.G); CPPUNIT_ASSERT(color.B == color2.B); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeTreeNode.cxx000077500000000000000000000122101177004724000254420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeTreeNode * Use code of SALOMEDS_AttributeTreeNode.cxx */ #define SALOMEDS_ALL_TESTS void SALOMEDSTest::testAttributeTreeNode() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeTreeNode _PTR(AttributeTreeNode) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeTreeNode"); //Check the attribute creation CPPUNIT_ASSERT(_attr); std::string TreeNodeID = "0e1c36e6-379b-4d90-ab3b-17a14310e648"; _PTR(SObject) so1 = study->CreateObjectID("0:1:2"); _PTR(AttributeTreeNode) _attr1 = studyBuilder->FindOrCreateAttribute(so1, "AttributeTreeNode"); //Check the attribute creation CPPUNIT_ASSERT(_attr1); //Check method Label CPPUNIT_ASSERT(_attr1->Label() == "0:1:2"); _PTR(SObject) so2 = study->CreateObjectID("0:1:3"); _PTR(AttributeTreeNode) _attr2 = studyBuilder->FindOrCreateAttribute(so2, "AttributeTreeNode"); //Check the attribute creation CPPUNIT_ASSERT(_attr2); //Check method SetFather _attr1->SetFather(_attr); //Check method HasFather CPPUNIT_ASSERT(_attr1->HasFather()); #ifdef SALOMEDS_ALL_TESTS //Check method GetFather CPPUNIT_ASSERT(_attr1->GetFather()->Label() == _attr->Label()); //Check method Append _attr->Append(_attr1); //Check possibility to Append to itself bool isRaised = false; try { _attr->Append(_attr); }catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); _attr->Append(_attr2); //Check method HasNext CPPUNIT_ASSERT(_attr1->HasNext()); //Check method GetNext CPPUNIT_ASSERT(_attr1->GetNext()->Label() == _attr2->Label()); //Check method HasPrevious CPPUNIT_ASSERT(_attr2->HasPrevious()); //Check method GetPrevious CPPUNIT_ASSERT(_attr2->GetPrevious()->Label() == _attr1->Label()); //Check method Depth CPPUNIT_ASSERT(_attr->Depth() == 1 && _attr1->Depth() == 2); //Check method IsRoot CPPUNIT_ASSERT(_attr->IsRoot()); //Check method IsFather CPPUNIT_ASSERT(_attr->IsFather(_attr1)); //Check method IsDescendant CPPUNIT_ASSERT(_attr2->IsDescendant(_attr)); //Check method GetFirst CPPUNIT_ASSERT(_attr->GetFirst()->Label() == _attr1->Label()); _attr2->Remove(); //Check method Prepend _attr->Prepend(_attr2); CPPUNIT_ASSERT(_attr->GetFirst()->Label() == _attr2->Label()); //Check possibility to Prepend to itself isRaised = false; try { _attr->Prepend(_attr); }catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); _attr1->Remove(); //Check method InsertBefore _attr2->InsertBefore(_attr1); CPPUNIT_ASSERT(_attr->GetFirst()->Label() == _attr1->Label()); //Check possibility to InsertBefore to itself isRaised = false; try { _attr->InsertBefore(_attr); }catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); _attr1->Remove(); //Check method InsertAfter _attr2->InsertAfter(_attr1); CPPUNIT_ASSERT(_attr->GetFirst()->Label() == _attr2->Label()); //Check possibility to InsertAfter to itself isRaised = false; try { _attr->InsertAfter(_attr); }catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); //Check method Remove _attr2->Remove(); CPPUNIT_ASSERT(_attr->GetFirst()->Label() == _attr1->Label()); //Check method SetTreeID and GetTreeID _attr2->SetTreeID(TreeNodeID); CPPUNIT_ASSERT(_attr2->GetTreeID() == TreeNodeID); #else std::cout << std::endl << "THE TEST IS NOT COMPLETE !!!" << std::endl; #endif //Try to create the attribute with given TreeID std::string value = "0e1c36e6-1111-4d90-ab3b-18a14310e648"; _PTR(AttributeTreeNode) _attr_guid = studyBuilder->FindOrCreateAttribute(so, "AttributeTreeNodeGUID"+value); CPPUNIT_ASSERT(_attr_guid && _attr_guid->GetTreeID() == value); sm->Close(study); } #undef SALOMEDS_ALL_TESTS salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_AttributeUserID.cxx000077500000000000000000000042541177004724000251010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_AttributeUserID * Use code of SALOMEDS_AttributeUserID.cxx */ void SALOMEDSTest::testAttributeUserID() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); //Create an attribute AttributeUserID _PTR(AttributeUserID) _attr = studyBuilder->FindOrCreateAttribute(so, "AttributeUserID"); //Check the attribute creation CPPUNIT_ASSERT(_attr); std::string value = "0e1c36e6-379b-4d90-ab3b-17a14310e648"; //Check method SetValue _attr->SetValue(value); //Check method Value CPPUNIT_ASSERT(value == _attr->Value()); //Try to create the attribute with given UserID value = "0e1c36e6-379b-4d90-ab3b-18a14310e648"; _PTR(AttributeUserID) _attr2 = studyBuilder->FindOrCreateAttribute(so, "AttributeUserID"+value); CPPUNIT_ASSERT(_attr2 && _attr2->Value() == value); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_ChildIterator.cxx000077500000000000000000000043331177004724000246150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_ChildIterator * Use code of SALOMEDS_ChildIterator.cxx */ void SALOMEDSTest::testChildIterator() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a SObject with entry 0:1:1 _PTR(SObject) so = study->CreateObjectID("0:1:1"); CPPUNIT_ASSERT(so); _PTR(SObject) so1 = studyBuilder->NewObjectToTag(so, 1); studyBuilder->NewObjectToTag(so1, 2); _PTR(ChildIterator) ci = study->NewChildIterator(so); //Check the creation of the ChildIterator CPPUNIT_ASSERT(ci); int count = 0; for(; ci->More(); ci->Next()) { //Check method Value CPPUNIT_ASSERT(ci->Value()->Tag() == 1); count++; } //Check that there is only one SObject on the first level of so CPPUNIT_ASSERT(count == 1); count = 0; int i = 1; for(ci->InitEx(true); ci->More(); ci->Next(), i++) { CPPUNIT_ASSERT(ci->Value()->Tag() == i); count++; } //Check that there are two SObject under so CPPUNIT_ASSERT(count == 2); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_SComponent.cxx000077500000000000000000000040251177004724000241430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_SComponent * Use code of SALOMEDS_SComponent.cxx */ void SALOMEDSTest::testSComponent() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); _PTR(SComponent) sco = studyBuilder->NewComponent("Test"); //Check the creation of the SComponent CPPUNIT_ASSERT(sco); //Create an attribute AttributeIOR _PTR(AttributeIOR) _attr = studyBuilder->FindOrCreateAttribute(sco, "AttributeIOR"); //Check the attribute creation CPPUNIT_ASSERT(_attr); //Check method ComponentIOR std::string ior = _orb->object_to_string(_sm); _attr->SetValue(ior); std::string new_ior; CPPUNIT_ASSERT(sco->ComponentIOR(new_ior)); CPPUNIT_ASSERT(new_ior == ior); //Check method ComponentDataType CPPUNIT_ASSERT(sco->ComponentDataType() == "Test"); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_SComponentIterator.cxx000077500000000000000000000036601177004724000256610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_SComponentIterator * Use code of SALOMEDS_SComponentIterator.cxx */ void SALOMEDSTest::testSComponentIterator() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create two SComponents studyBuilder->NewComponent("Test1"); studyBuilder->NewComponent("Test2"); std::vector v; v.push_back("Test1"); v.push_back("Test2"); _PTR(SComponentIterator) ci = study->NewComponentIterator(); //Check the creation of the SComponentIterator CPPUNIT_ASSERT(ci); for(int i = 0; ci->More(); ci->Next(), i++) { //Check method Value CPPUNIT_ASSERT(i<2); CPPUNIT_ASSERT(ci->Value()->ComponentDataType() == v[i]); } sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_SObject.cxx000077500000000000000000000073771177004724000234240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_SObject * Use code of SALOMEDS_SObject.cxx */ void SALOMEDSTest::testSObject() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("TestSObject"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a new SComponent _PTR(SComponent) sco = studyBuilder->NewComponent("Test"); //Create new SObject _PTR(SObject) so = studyBuilder->NewObjectToTag(sco, 2); //Check the creation of the SObject CPPUNIT_ASSERT(so); //Check method GetID CPPUNIT_ASSERT(so->GetID() == "0:1:1:2"); //Check method Tag CPPUNIT_ASSERT(so->Tag() == 2); //Check method GetFatherComponent _PTR(SComponent) father = so->GetFatherComponent(); CPPUNIT_ASSERT(father->GetID() == sco->GetID()); //Check method GetFather _PTR(SObject) so1 = studyBuilder->NewObject(so); CPPUNIT_ASSERT(so1->GetFather()->GetID() == so->GetID()); //Check method FindAttribute _PTR(AttributeIOR) _attrIOR = studyBuilder->FindOrCreateAttribute(so, "AttributeIOR"); _PTR(AttributeName) _attrName = studyBuilder->FindOrCreateAttribute(so, "AttributeName"); _PTR(AttributeComment) _attrComment = studyBuilder->FindOrCreateAttribute(so, "AttributeComment"); std::string ior = _orb->object_to_string(_sm); _attrIOR->SetValue(ior); _attrName->SetValue("SO name"); _attrComment->SetValue("SO comment"); _PTR(GenericAttribute) ga; CPPUNIT_ASSERT(so->FindAttribute(ga, "AttributeIOR")); //Try to find attribute with empty type CPPUNIT_ASSERT(!so->FindAttribute(ga, "")); //Check method ReferencedObject studyBuilder->Addreference(so1, so); _PTR(SObject) so2; CPPUNIT_ASSERT(so1->ReferencedObject(so2)); CPPUNIT_ASSERT(so2->GetID() == so->GetID()); //Check method FindSubObject CPPUNIT_ASSERT(so->FindSubObject(1, so2)); CPPUNIT_ASSERT(so2->GetID() == so1->GetID()); //Check method GetStudy CPPUNIT_ASSERT(so->GetStudy()->StudyId() == study->StudyId()); //Check methods Name so->Name("test"); CPPUNIT_ASSERT(so->Name() == "test"); //Check method GetAllAttributes std::vector< _PTR(GenericAttribute) > v = so->GetAllAttributes(); CPPUNIT_ASSERT(v.size() == 5); //+AttributeTarget +AttributeTreeNode //Check method GetName CPPUNIT_ASSERT(so->GetName() == "SO name"); //Check method GetComment CPPUNIT_ASSERT(so->GetComment() == "SO comment"); //Check method GetIOR CPPUNIT_ASSERT(so->GetIOR() == ior); //Check method Depth CPPUNIT_ASSERT(so->Depth() == 3); //Check method GetObject CORBA::Object_var obj = dynamic_cast(so.get())->GetObject(); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); sm->Close(study); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_Study.cxx000077500000000000000000000302311177004724000231640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_Study * Use code of SALOMEDS_Study.cxx */ void SALOMEDSTest::testStudy() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("Test"); //Check the creation of the study CPPUNIT_ASSERT(study); //Check method NewBuilder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Check method NewComponentIterator _PTR(SComponentIterator) componentIterator = study->NewComponentIterator(); CPPUNIT_ASSERT(componentIterator); //Check method GetTransientReference CPPUNIT_ASSERT(!study->GetTransientReference().empty()); //Check method StudyId CPPUNIT_ASSERT(study->StudyId() > 0); //Check method Name (get/set) CPPUNIT_ASSERT(study->Name() == "Test"); study->Name("New name"); CPPUNIT_ASSERT(study->Name() == "New name"); study->Name("Test"); //Check method URL (get/set) study->URL(""); CPPUNIT_ASSERT(study->URL() == ""); study->URL("some url"); CPPUNIT_ASSERT(study->URL() == "some url"); //Check method GetPersistentReference == URL CPPUNIT_ASSERT(study->GetPersistentReference() == "some url"); //Check method IsSaved (get/set) study->IsSaved(true); CPPUNIT_ASSERT(study->IsSaved()); study->IsSaved(false); CPPUNIT_ASSERT(!study->IsSaved()); //Check method CreateObjectID _PTR(SObject) so = study->CreateObjectID("0:2:1:3"); CPPUNIT_ASSERT(so); //Try to create SObject with empty and invalid entries CPPUNIT_ASSERT(!study->CreateObjectID("")); CPPUNIT_ASSERT(!study->CreateObjectID("entry")); //Check method NewChildIterator _PTR(ChildIterator) childIterator = study->NewChildIterator(so); CPPUNIT_ASSERT(childIterator); //Check method IsEmpty CPPUNIT_ASSERT(!study->IsEmpty()); //Check method FindComponent _PTR(SComponent) sco1 = studyBuilder->NewComponent("test1"); _PTR(SComponent) sco2 = study->FindComponent("test1"); CPPUNIT_ASSERT(sco1 && sco2); CPPUNIT_ASSERT(sco1->GetID() == sco2->GetID()); _PTR(AttributeName) name_attr_sco1 = studyBuilder->FindOrCreateAttribute(sco1, "AttributeName"); CPPUNIT_ASSERT(name_attr_sco1); name_attr_sco1->SetValue("sco1"); //Try to find component with empty type CPPUNIT_ASSERT(!study->FindComponent("")); //Check method GetComponentNames std::vector components = study->GetComponentNames(""); //The context doesn't matter CPPUNIT_ASSERT(components.size() == 1 && components[0] == "sco1"); //Check method FindComponentID _PTR(SComponent) sco3 = study->FindComponentID(sco1->GetID()); CPPUNIT_ASSERT(sco3 && sco3->GetID() == sco1->GetID()); //Try to find component with empty id CPPUNIT_ASSERT(!study->FindComponentID("")); _PTR(SObject) so1 = studyBuilder->NewObject(sco1); CPPUNIT_ASSERT(so1); _PTR(AttributeName) name_attr_so1 = studyBuilder->FindOrCreateAttribute(so1, "AttributeName"); CPPUNIT_ASSERT(name_attr_so1); name_attr_so1->SetValue("so1"); //Create an attribute AttributeIOR _PTR(AttributeIOR) ior_attr_so1 = studyBuilder->FindOrCreateAttribute(so1, "AttributeIOR"); CPPUNIT_ASSERT(ior_attr_so1); std::string ior = _orb->object_to_string(_sm); ior_attr_so1->SetValue(ior); _PTR(SObject) so2 = studyBuilder->NewObject(so1); CPPUNIT_ASSERT(so2); _PTR(AttributeName) name_attr_so2 = studyBuilder->FindOrCreateAttribute(so2, "AttributeName"); CPPUNIT_ASSERT(name_attr_so2); name_attr_so2->SetValue("so2"); //Check method FindObject _PTR(SObject) so3 = study->FindObject("so1"); CPPUNIT_ASSERT(so3 && so3->GetID() == so1->GetID()); //Try to find SObject with empty name CPPUNIT_ASSERT(!study->FindObject("")); //Check method FindObjectID _PTR(SObject) so4 = study->FindObjectID(so1->GetID()); CPPUNIT_ASSERT(so4 && so4->GetID() == so1->GetID()); //Try to find SObject with empty ID CPPUNIT_ASSERT(!study->FindObjectID("")); //Check method FindObjectByName std::vector< _PTR(SObject) > v = study->FindObjectByName("so1", sco1->ComponentDataType()); CPPUNIT_ASSERT(v.size()==1 && v[0]->GetID() == so1->GetID()); //Try to find SObject with empty name and empty component type CPPUNIT_ASSERT((study->FindObjectByName("", "")).size() == 0); //Check method FindObjectByPath _PTR(SObject) path_so = study->FindObjectByPath("/"+sco1->GetName()+"/"+so1->GetName()); CPPUNIT_ASSERT(path_so && path_so->GetID() == so1->GetID()); //Check method FindObjectIOR _PTR(SObject) so5 = study->FindObjectIOR(ior); CPPUNIT_ASSERT(so5 && so5->GetID() == so1->GetID()); //Try to find SObject with empty IOR CPPUNIT_ASSERT(!study->FindObjectIOR("")); //Check method GetObjectPath std::string path = study->GetObjectPath(so2); //Try to get path of NULL SObject _PTR(SObject) emptySO; path = study->GetObjectPath(emptySO); CPPUNIT_ASSERT(path.empty()); //Check method SetContext study->SetContext("/sco1"); CPPUNIT_ASSERT(study->GetContext() == "/sco1"); //Check method FindObjectByPath _PTR(SObject) so6 = study->FindObjectByPath("so1"); CPPUNIT_ASSERT(so6 && so6->GetID() == so1->GetID()); //Try to find SObject with empty path _PTR(SObject) tmp = study->FindObjectByPath(""); //Must return the Context SObject CPPUNIT_ASSERT(tmp && tmp->GetID() == sco1->GetID()); study->SetContext("/"); //Root //Check method GetObjectNames std::vector vs = study->GetObjectNames("/sco1"); CPPUNIT_ASSERT(vs.size() == 2); //Check method GetDirectoryNames _PTR(AttributeLocalID) locid_attr_sco1 = studyBuilder->FindOrCreateAttribute(sco1, "AttributeLocalID"); CPPUNIT_ASSERT(locid_attr_sco1); locid_attr_sco1->SetValue(16661); //DIRECTORYID _PTR(AttributeLocalID) locid_attr_so1 = studyBuilder->FindOrCreateAttribute(so1, "AttributeLocalID"); CPPUNIT_ASSERT(locid_attr_so1); locid_attr_so1->SetValue(16661); //DIRECTORYID vs = study->GetDirectoryNames(""); //Empty context (the current is taken) CPPUNIT_ASSERT(vs.size() == 2); //Check method GetFileNames locid_attr_sco1->SetValue(26662); //FILELOCALID _PTR(AttributePersistentRef) persref_attr_sco1 = studyBuilder->FindOrCreateAttribute(sco1, "AttributePersistentRef"); CPPUNIT_ASSERT(persref_attr_sco1); persref_attr_sco1->SetValue("FILE: filename1"); locid_attr_so1->SetValue(26662); //FILELOCALID _PTR(AttributePersistentRef) persref_attr_so1 = studyBuilder->FindOrCreateAttribute(so1, "AttributePersistentRef"); CPPUNIT_ASSERT(persref_attr_so1); persref_attr_so1->SetValue("FILE: filename2"); vs = study->GetFileNames(""); CPPUNIT_ASSERT(vs.size() == 2 && vs[0] == "filename1" && vs[1] == "filename2"); //Check method StudyId (get/set) int id = study->StudyId(); study->StudyId(-1); CPPUNIT_ASSERT(study->StudyId() == -1); study->StudyId(id); //Check method FindDependances studyBuilder->Addreference(so2, so1); studyBuilder->Addreference(sco1, so1); std::vector< _PTR(SObject) > vso = study->FindDependances(so1); CPPUNIT_ASSERT(vso.size() == 2 && vso[0]->GetID() == so2->GetID() && vso[1]->GetID() == sco1->GetID()); //Check method GetProperties _PTR(AttributeStudyProperties) sp = study->GetProperties(); CPPUNIT_ASSERT(sp); //Check Lock functionality sp->SetLocked(true); bool isLockRaised = false; try { name_attr_so1->SetValue("test"); } catch(...) { isLockRaised = true; } CPPUNIT_ASSERT(isLockRaised); sp->SetLocked(false); isLockRaised = false; try { name_attr_so1->SetValue("test"); } catch(...) { isLockRaised = true; } CPPUNIT_ASSERT(!isLockRaised); //Check method GetLastModificationDate sp->SetModification("srn", 1, 2, 3, 4, 5); sp->SetModification("srn", 6, 7, 8, 9, 10); std::string date = study->GetLastModificationDate(); CPPUNIT_ASSERT(date == "08/09/0010 07:06"); //Check method GetModificationsDate vs = study->GetModificationsDate(); CPPUNIT_ASSERT(vs.size() == 2 && vs[0] == "03/04/0005 02:01" && vs[1] == "08/09/0010 07:06"); //Check method GetCommonParameters _PTR(AttributeParameter) cp = study->GetCommonParameters("id", 1); //Save point = 1 CPPUNIT_ASSERT(cp); cp->SetBool("test_true", true); cp->SetBool("test_false", false); _PTR(AttributeParameter) cp2 = study->GetCommonParameters("id", 1); //Save point = 1 CPPUNIT_ASSERT(cp2); CPPUNIT_ASSERT(cp2->GetBool("test_true") && !cp2->GetBool("test_false")); _PTR(AttributeParameter) cp21 = study->GetCommonParameters("id", 2); //Save point = 2 CPPUNIT_ASSERT(cp21); CPPUNIT_ASSERT(!cp21->IsSet("test_true", PT_BOOLEAN) && !cp21->IsSet("test_false", PT_BOOLEAN)); //Check method GetModuleParameters _PTR(AttributeParameter) cp3 = study->GetModuleParameters("id", "module name", 1); //Save point = 1, name = "module name" CPPUNIT_ASSERT(cp3); cp3->SetBool("test_true", true); cp3->SetBool("test_false", false); _PTR(AttributeParameter) cp4 = study->GetModuleParameters("id", "module name", 1); //Save point = 1, name = "module name" CPPUNIT_ASSERT(cp4); CPPUNIT_ASSERT(cp4->GetBool("test_true") && !cp4->GetBool("test_false")); _PTR(AttributeParameter) cp5 = study->GetModuleParameters("id", "module name 2", 1); //Save point = 1, name = "module name 2" CPPUNIT_ASSERT(cp5); CPPUNIT_ASSERT(!cp5->IsSet("test_true", PT_BOOLEAN) && !cp5->IsSet("test_false", PT_BOOLEAN)); _PTR(AttributeParameter) cp6 = study->GetModuleParameters("id", "module name", 2); //Save point = 2, name = "module name" CPPUNIT_ASSERT(cp6); CPPUNIT_ASSERT(!cp6->IsSet("test_true", PT_BOOLEAN) && !cp6->IsSet("test_false", PT_BOOLEAN)); //Check method GetUseCaseBuilder _PTR(UseCaseBuilder) ub = study->GetUseCaseBuilder(); CPPUNIT_ASSERT(ub); //Check method SetStudyLock study->SetStudyLock("locker1"); //Check method IsStudyLocked CPPUNIT_ASSERT(study->IsStudyLocked()); //Check method GetLockerID study->SetStudyLock("locker2"); vs = study->GetLockerID(); CPPUNIT_ASSERT(vs.size() == 2 && vs[0] == "locker1" && vs[1] == "locker2"); //Check method UnLockStudy study->UnLockStudy("locker1"); CPPUNIT_ASSERT(study->IsStudyLocked()); vs = study->GetLockerID(); CPPUNIT_ASSERT(vs.size() == 1 && vs[0] == "locker2"); study->UnLockStudy("locker2"); CPPUNIT_ASSERT(!study->IsStudyLocked()); vs = study->GetLockerID(); CPPUNIT_ASSERT(vs.size() == 0); //Check method EnableUseCaseAutoFilling study->EnableUseCaseAutoFilling(false); _PTR(SObject) uso1 = study->NewBuilder()->NewObject(sco1); std::vector< _PTR(GenericAttribute) > va1 = uso1->GetAllAttributes(); CPPUNIT_ASSERT(va1.size() == 0); study->EnableUseCaseAutoFilling(true); _PTR(SObject) uso2 = study->NewBuilder()->NewObject(sco1); std::vector< _PTR(GenericAttribute) > va2 = uso2->GetAllAttributes(); CPPUNIT_ASSERT(va2.size() == 1); // +AttributeTreeNode //Check method DumpStudy study->DumpStudy(".", "SRN", false, false); std::fstream f("SRN.py"); char buffer[128]; buffer[81] = (char)0; f.getline(buffer, 80); std::string line(buffer); f.close(); system("rm -f SRN.py"); CPPUNIT_ASSERT(line == "### This file is generated by SALOME automatically by dump python functionality"); //Check method Close bool isException = false; try { sm->Close(study); //Close is called inside StudyManager::Close } catch(...) { isException = true; } CPPUNIT_ASSERT(!isException); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_StudyBuilder.cxx000077500000000000000000000166641177004724000245110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_StudyBuilder * Use code of SALOMEDS_StudyBuilder.cxx */ void SALOMEDSTest::testStudyBuilder() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("TestStudyBuilder"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); //Check the StudyBuilder creation CPPUNIT_ASSERT(studyBuilder); //Check method NewComponent _PTR(SComponent) sco1 = studyBuilder->NewComponent("Test"); CPPUNIT_ASSERT(sco1 && sco1->ComponentDataType() == "Test"); //Check method DefineComponentInstance std::string ior = _orb->object_to_string(_sm); studyBuilder->DefineComponentInstance(sco1, ior); std::string newior; sco1->ComponentIOR(newior); CPPUNIT_ASSERT(newior == ior); //Check method RemoveComponent studyBuilder->RemoveComponent(sco1); _PTR(SComponent) sco2 = study->FindComponent("Test"); CPPUNIT_ASSERT(!sco2); //Try to create and find the component with empty type _PTR(SComponent) sco_empty = studyBuilder->NewComponent(""); CPPUNIT_ASSERT(!sco_empty); _PTR(SComponent) sco3 = studyBuilder->NewComponent("NewComp"); CPPUNIT_ASSERT(sco3); //Check method NewObject _PTR(SObject) so1 = studyBuilder->NewObject(sco3); CPPUNIT_ASSERT(so1); std::string id1 = so1->GetID(); //Check method NewObjectToTag _PTR(SObject) so2 = studyBuilder->NewObjectToTag(so1, 2); CPPUNIT_ASSERT(so2 && so2->Tag() == 2); std::string id2 = so2->GetID(); //Check method FindOrCreateAttribute _PTR(SObject) so3 = studyBuilder->NewObject(sco3); CPPUNIT_ASSERT(so3); _PTR(AttributeName) an3 = studyBuilder->FindOrCreateAttribute(so3, "AttributeName"); CPPUNIT_ASSERT(an3); //Try to create attribute with invalid type CPPUNIT_ASSERT(!studyBuilder->FindOrCreateAttribute(so3, "invalid type")); //Check method FindAttribute _PTR(GenericAttribute) ga; CPPUNIT_ASSERT(studyBuilder->FindAttribute(so3, ga, "AttributeName")); //Try to find attribute with invalid type CPPUNIT_ASSERT(!studyBuilder->FindAttribute(so3, ga, "invalid type")); //Check method RemoveObject studyBuilder->RemoveObject(so3); CPPUNIT_ASSERT(!studyBuilder->FindAttribute(so3, ga, "AttributeName")); //Check method RemoveObjectWithChildren _PTR(AttributeName) an2 = studyBuilder->FindOrCreateAttribute(so2, "AttributeName"); CPPUNIT_ASSERT(an2); studyBuilder->RemoveObjectWithChildren(so1); CPPUNIT_ASSERT(!studyBuilder->FindAttribute(so2, ga, "AttributeName")); //Check method RemoveAttribute _PTR(AttributeName) an1 = studyBuilder->FindOrCreateAttribute(so1, "AttributeName"); CPPUNIT_ASSERT(an1); CPPUNIT_ASSERT(studyBuilder->FindAttribute(so1, ga, "AttributeName")); studyBuilder->RemoveAttribute(so1, "AttributeName"); CPPUNIT_ASSERT(!studyBuilder->FindAttribute(so1, ga, "AttributeName")); //Check method Addreference studyBuilder->Addreference(so2, so1); _PTR(SObject) refSO; CPPUNIT_ASSERT(so2->ReferencedObject(refSO) && refSO->GetID() == so1->GetID()); //Try to set reference to NULL SObject bool isRaised = false; _PTR(SObject) empty_so; try { studyBuilder->Addreference(so2, empty_so); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); //Check method RemoveReference studyBuilder->RemoveReference(so2); CPPUNIT_ASSERT(!so2->ReferencedObject(refSO)); //Check method SetGUID and IsGUID std::string value = "0e1c36e6-379b-4d90-ab3b-17a14310e648"; studyBuilder->SetGUID(so1, value); CPPUNIT_ASSERT(studyBuilder->IsGUID(so1, value)); /* Not implemented //Check method UndoLimit (set/get) studyBuilder->UndoLimit(10); CPPUNIT_ASSERT(studyBuilder->UndoLimit() == 10); */ //Check method SetName studyBuilder->SetName(so1, "new name"); CPPUNIT_ASSERT(so1->GetName() == "new name"); //Try to set empty Name studyBuilder->SetName(so1, ""); CPPUNIT_ASSERT(so1->GetName() == ""); //Check method SetComment studyBuilder->SetComment(so1, "new comment"); CPPUNIT_ASSERT(so1->GetComment() == "new comment"); //Check method empty Comment studyBuilder->SetComment(so1, ""); CPPUNIT_ASSERT(so1->GetComment() == ""); //Try to set empty IOR studyBuilder->SetIOR(so1, ""); CPPUNIT_ASSERT(so1->GetIOR() == ""); //Check method SetIOR studyBuilder->SetIOR(so1, ior); CPPUNIT_ASSERT(so1->GetIOR() == ior); sm->Close(study); //Check method LoadWith _PTR(Study) study2 = sm->NewStudy("Study2"); SALOME_NamingService NS(_orb); CORBA::Object_var obj = SALOME_LifeCycleCORBA(&NS).FindOrLoad_Component("FactoryServer", "SMESH"); CPPUNIT_ASSERT(!CORBA::is_nil(obj)); MESSAGE("Created a new SMESH component"); SALOMEDS::Driver_var drv = SALOMEDS::Driver::_narrow(obj); CPPUNIT_ASSERT(!CORBA::is_nil(drv)); _PTR(StudyBuilder) sb2 = study2->NewBuilder(); _PTR(SComponent) sco = sb2->NewComponent("SMESH"); ior = _orb->object_to_string(drv); sb2->DefineComponentInstance(sco, ior); sm->SaveAs("srn_SALOMEDS_UnitTests.hdf", study2, false); sm->Close(study2); _PTR(Study) study3 = sm->Open("srn_SALOMEDS_UnitTests.hdf"); _PTR(StudyBuilder) sb3 = study3->NewBuilder(); _PTR(SComponent) aComp = study3->FindComponent("SMESH"); CPPUNIT_ASSERT(aComp); CORBA::Object_var obj2 = SALOME_LifeCycleCORBA(&NS).FindOrLoad_Component("FactoryServer", "SMESH"); CPPUNIT_ASSERT(!CORBA::is_nil(obj2)); SALOMEDS::Driver_var drv2 = SALOMEDS::Driver::_narrow(obj2); ior = _orb->object_to_string(drv2); isRaised = false; try { //getchar(); sb3->LoadWith(aComp, ior); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(!isRaised); ior = ""; aComp->ComponentIOR(ior); CPPUNIT_ASSERT(!ior.empty()); system("rm -f srn_SALOMEDS_UnitTests.hdf"); //Check method AddDirectory _PTR(AttributeName) na1 = sb3->FindOrCreateAttribute(aComp, "AttributeName"); na1->SetValue("Component"); isRaised = false; try { sb3->AddDirectory("/Component/Dir1"); } catch(...) { isRaised = true; } CPPUNIT_ASSERT(!isRaised); _PTR(SObject) so5 = study3->FindObjectByPath("/Component/Dir1"); CPPUNIT_ASSERT(so5); isRaised = false; try { sb3->AddDirectory("/Component/Dir1"); //Attempt to create the same directory } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); isRaised = false; try { sb3->AddDirectory("/MyComponent/Dir1"); //Attempt to create the invalid directory } catch(...) { isRaised = true; } CPPUNIT_ASSERT(isRaised); sm->Close(study3); } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_StudyManager.cxx000077500000000000000000000141221177004724000244600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_StudyManager * Use code of SALOMEDS_StudyManager.cxx */ void SALOMEDSTest::testStudyManager() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Check method NewStudy _PTR(Study) study1 = sm->NewStudy("Study1"); CPPUNIT_ASSERT(study1); _PTR(Study) study2 = sm->NewStudy("Study2"); CPPUNIT_ASSERT(study2); //Check method GetStudyByName _PTR(Study) study3 = sm->GetStudyByName("Study1"); CPPUNIT_ASSERT(study3->StudyId() == study1->StudyId()); CPPUNIT_ASSERT(study3->Name() == study1->Name()); //Check method GetStudyByName with empty name CPPUNIT_ASSERT(!sm->GetStudyByName("")); //Try to create Study with empty name _PTR(Study) study_empty = sm->NewStudy(""); CPPUNIT_ASSERT(study_empty); CPPUNIT_ASSERT(sm->GetStudyByName("")); sm->Close(study_empty); //Check method FindStudyByID _PTR(Study) study4 = sm->GetStudyByID(study2->StudyId()); CPPUNIT_ASSERT(study4->StudyId() == study2->StudyId()); CPPUNIT_ASSERT(study4->Name() == study2->Name()); //Check method GetOpenStudies std::vector v = sm->GetOpenStudies(); CPPUNIT_ASSERT(v.size() == 2); //Check method Close int id = study2->StudyId(); sm->Close(study2); CPPUNIT_ASSERT(!sm->GetStudyByID(id)); //Check method GetStudyByID for invalid ID CPPUNIT_ASSERT(!sm->GetStudyByID(-1)); //Check methods CanPaste, CanCopy, Copy, Paste _PTR(StudyBuilder) sb1 = study1->NewBuilder(); _PTR(SComponent) sco1 = sb1->NewComponent("Test"); _PTR(SObject) so1 = sb1->NewObject(sco1); _PTR(AttributeName) na1 = sb1->FindOrCreateAttribute(so1, "AttributeName"); CPPUNIT_ASSERT(na1); na1->SetValue("Some name"); CPPUNIT_ASSERT(!sm->CanCopy(so1)); //The father component has no IOR CPPUNIT_ASSERT(sm->Copy(so1)); CPPUNIT_ASSERT(!sm->CanPaste(so1)); //The father component has no IOR _PTR(SObject) so1_2 = sb1->NewObject(sco1); _PTR(SObject) pasted_so = sm->Paste(so1_2); CPPUNIT_ASSERT(pasted_so); _PTR(AttributeName) na2 = sb1->FindOrCreateAttribute(pasted_so, "AttributeName"); CPPUNIT_ASSERT(na2 && na2->Value() == "Some name"); //Check method SaveAs sm->SaveAs("srn_UnitTest_Save.hdf", study1, false); std::string url = study1->URL(); sm->Close(study1); //Check method Open _PTR(Study) study1_opened = sm->Open("srn_UnitTest_Save.hdf"); //Contains Test component system("rm -f srn_UnitTest_Save.hdf"); url = study1->URL(); CPPUNIT_ASSERT(study1_opened); CPPUNIT_ASSERT(url == "srn_UnitTest_Save.hdf"); //Check method Save _PTR(StudyBuilder) sb3 = study1_opened->NewBuilder(); _PTR(SComponent) sco3 = study1_opened->FindComponent("Test"); CPPUNIT_ASSERT(sco3); // Add a new SObject with AttributeName that contains "Saved study" string _PTR(SObject) so3 = sb3->NewObject(sco3); std::string soID = so3->GetID(); _PTR(AttributeName) na3 = sb3->FindOrCreateAttribute(so3, "AttributeName"); CPPUNIT_ASSERT(na3); na3->SetValue("Saved study"); // Save and close the study sm->Save(study1_opened, false); sm->Close(study1_opened); // Open saved study and find the created SObject with AttributeName, then compare the stored string _PTR(Study) study2_opened = sm->Open("srn_UnitTest_Save.hdf"); system("rm -f srn_UnitTest_Save.hdf"); CPPUNIT_ASSERT(study2_opened); _PTR(SObject) so4 = study2_opened->CreateObjectID(soID); _PTR(StudyBuilder) sb4 = study2_opened->NewBuilder(); _PTR(AttributeName) na4 = sb4->FindOrCreateAttribute(so4, "AttributeName"); CPPUNIT_ASSERT(na4 && na4->Value() == "Saved study"); //Compare the value of restored attribute with string that has to be saved. //Check method SaveAsASCII sm->SaveAsASCII("srn_UnitTest_SaveASCII.hdf", study2_opened, false); url = study2_opened->URL(); sm->Close(study2_opened); _PTR(Study) study3_opened = sm->Open("srn_UnitTest_SaveASCII.hdf"); //Contains Test component system("rm -f srn_UnitTest_SaveASCII.hdf"); CPPUNIT_ASSERT(study3_opened); CPPUNIT_ASSERT(url == "srn_UnitTest_SaveASCII.hdf"); //Check method SaveASCII _PTR(StudyBuilder) sb5 = study3_opened->NewBuilder(); _PTR(SComponent) sco5 = study3_opened->FindComponent("Test"); CPPUNIT_ASSERT(sco5); // Add a new SObject with AttributeName that contains "Saved study" string _PTR(SObject) so5 = sb5->NewObject(sco5); soID = so5->GetID(); _PTR(AttributeName) na5 = sb5->FindOrCreateAttribute(so5, "AttributeName"); CPPUNIT_ASSERT(na5); na5->SetValue("Saved study ASCII"); // Save and close the study sm->Save(study3_opened, false); sm->Close(study3_opened); // Open saved study and find the created SObject with AttributeName, then compare the stored string _PTR(Study) study4_opened = sm->Open("srn_UnitTest_SaveASCII.hdf"); system("rm -f srn_UnitTest_SaveASCII.hdf"); CPPUNIT_ASSERT(study4_opened); _PTR(SObject) so6 = study4_opened->CreateObjectID(soID); _PTR(StudyBuilder) sb6 = study4_opened->NewBuilder(); _PTR(AttributeName) na6 = sb6->FindOrCreateAttribute(so6, "AttributeName"); CPPUNIT_ASSERT(na6 && na6->Value() == "Saved study ASCII"); //Compare the value of restored attribute with string that has to be saved. } salome-kernel-6.5.0/src/SALOMEDS/Test/SALOMEDSTest_UseCase.cxx000077500000000000000000000114251177004724000234100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // /*! * Check all methods of SALOMEDS_UseCaseBuilder and UseCaseIterator * Use code of SALOMEDS_UseCaseBuilder.cxx and SALOMEDS_UseCaseIterator.cxx */ #define SALOMEDS_ALL_TESTS void SALOMEDSTest::testUseCase() { //Create or find the Study manager _PTR(StudyManager) sm ( new SALOMEDS_StudyManager(_sm) ); CPPUNIT_ASSERT(sm); //Create a new study _PTR(Study) study = sm->NewStudy("TestSObject"); CPPUNIT_ASSERT(study); //Create Study Builder _PTR(StudyBuilder) studyBuilder = study->NewBuilder(); CPPUNIT_ASSERT(studyBuilder); //Create a new UseCaseBuilder _PTR(UseCaseBuilder) builder = study->GetUseCaseBuilder(); CPPUNIT_ASSERT(builder); //Check method AddUseCase _PTR(SObject) root1 = builder->AddUseCase("UseCase_1"); _PTR(SObject) root2 = builder->AddUseCase("UseCase_2"); CPPUNIT_ASSERT(root1 && root2); //Check method SetCurrentObject builder->SetCurrentObject(root1); //Check method GetCurrentObject CPPUNIT_ASSERT(builder->GetCurrentObject() && builder->GetCurrentObject()->GetID() == root1->GetID()); //Check method SetRootCurrent CPPUNIT_ASSERT(builder->SetRootCurrent()); CPPUNIT_ASSERT(builder->GetCurrentObject()->GetID() == "0:2"); //Root in UseCases is always placed at label 0:2 //Check method IsUseCase CPPUNIT_ASSERT(builder->IsUseCase(root1) && builder->IsUseCase(root2)); //Check method SetName builder->SetName("A root use case"); //Check method GetName CPPUNIT_ASSERT(builder->GetName() == "A root use case"); #ifdef SALOMEDS_ALL_TESTS //Check method GetUseCaseIterator builder->SetRootCurrent(); _PTR(SObject) nullObject; _PTR(UseCaseIterator) root_it = builder->GetUseCaseIterator(nullObject); //The iterator on all UseCases root_it->Init(false); //Only the first level CPPUNIT_ASSERT(root_it->More()); CPPUNIT_ASSERT(root_it->Value()->GetID() == root1->GetID()); root_it->Next(); CPPUNIT_ASSERT(root_it->More()); CPPUNIT_ASSERT(root_it->Value()->GetID() == root2->GetID()); root_it->Next(); CPPUNIT_ASSERT(!root_it->More()); #else cout << endl << "THE TEST IS NOT COMPLETE !!!" << endl; #endif builder->SetCurrentObject(root1); _PTR(UseCaseIterator) it = builder->GetUseCaseIterator(root1); //The iterator on the given UseCase //Check method Append _PTR(SObject) so1 = study->CreateObjectID("0:1:1"); _PTR(SObject) so2 = study->CreateObjectID("0:1:2"); CPPUNIT_ASSERT(builder->Append(so1)); //Check methods Init, More, Next and Value of UseCaseIterator it->Init(false); CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so1->GetID()); it->Next(); CPPUNIT_ASSERT(!it->More()); //Check method AppendTo CPPUNIT_ASSERT(builder->AppendTo(so1, so2)); //Check method HasChildren CPPUNIT_ASSERT(builder->HasChildren(so1)); CPPUNIT_ASSERT(!builder->HasChildren(so2)); //Check method Init of UseCaseIterator it->Init(false); //Only the first level CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so1->GetID()); it->Next(); CPPUNIT_ASSERT(!it->More()); it->Init(true); //All levels CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so1->GetID()); it->Next(); CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so2->GetID()); it->Next(); CPPUNIT_ASSERT(!it->More()); //Check method Remove CPPUNIT_ASSERT(builder->Remove(so2)); it->Init(true); CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so1->GetID()); it->Next(); CPPUNIT_ASSERT(!it->More()); CPPUNIT_ASSERT(builder->Append(so2)); //Check method InsertBefore CPPUNIT_ASSERT(builder->InsertBefore(so2, so1)); it->Init(false); CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so2->GetID()); it->Next(); CPPUNIT_ASSERT(it->More()); CPPUNIT_ASSERT(it->Value()->GetID() == so1->GetID()); sm->Close(study); } #undef SALOMEDS_ALL_TESTS salome-kernel-6.5.0/src/SALOMEDS/Test/TestSALOMEDS.cxx000077500000000000000000000132731177004724000220030ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all SALOMEDS Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" #include "SALOMEDSImplTest.hxx" #include "SALOMEDSTest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMEDSTest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMEDSTest_Embedded ); #include #include #include #include #include #include #include #include #include #include #include #include CORBA_SERVER_HEADER(SALOMEDS) #include "utilities.h" #include "Utils_SINGLETON.hxx" #include "Utils_ORB_INIT.hxx" #include "Basics_Utils.hxx" #include "SALOME_NamingService.hxx" #include "NamingService_WaitForServerReadiness.hxx" #include "SALOMEDS_StudyManager_i.hxx" // ============================================================================ /*! * Main program source for Unit Tests with cppunit package does not depend * on actual tests, so we use the same for all partial unit tests. */ // ============================================================================ int main(int argc, char* argv[]) { // --- Run Salome without GUI setenv("SALOME_trace", "file:./traceUnitTest.log", 1); // 1: overwrite system("runSalome -t &"); // --- Wait till SALOMEDS server is launched char hostname[511]; int size; gethostname(hostname, size); char* chr_port = getenv("SALOMEDS_UNITTESTS_PORT"); std::string port; if(chr_port) port = chr_port; if(port.empty()) port = "2810"; std::string cfg_file = std::string(getenv("HOME"))+"/.omniORB_"+std::string(hostname)+"_"+port+".cfg"; setenv("OMNIORB_CONFIG", cfg_file.c_str(), 1); ORB_INIT &init = *SINGLETON_::Instance() ; ASSERT(SINGLETON_::IsAlreadyExisting()); CORBA::ORB_var orb = init(argc , argv ) ; sleep(15); std::string host; // = Kernel_Utils::GetHostname(); char* wait_Superv = getenv("SALOMEDS_UNITTESTS_WAIT_SUPERVISOR"); if(wait_Superv) host = Kernel_Utils::GetHostname(); SALOME_NamingService NS(orb); if(host.empty()) NamingService_WaitForServerReadiness(&NS, "/myStudyManager"); else { std::string serverName = "/Containers/"+host+"/SuperVisionContainer"; NamingService_WaitForServerReadiness(&NS, serverName); } CORBA::Object_var obj = NS.Resolve( "/myStudyManager" ); if(CORBA::is_nil(obj)) { system("killSalome.py"); return 1; } //Set up the environement for Embedded case std::string kernel_root = getenv("KERNEL_ROOT_DIR"); CPPUNIT_ASSERT(!kernel_root.empty()); kernel_root+="/share/salome/resources/kernel"; CORBA::Object_var poaObj = orb->resolve_initial_references("RootPOA"); if(!CORBA::is_nil(poaObj)) { PortableServer::POA_var poa = PortableServer::POA::_narrow(poaObj); SALOMEDS_StudyManager_i * aStudyManager_i = new SALOMEDS_StudyManager_i(orb, poa); // Activate the objects. This tells the POA that the objects are ready to accept requests. PortableServer::ObjectId_var aStudyManager_iid = poa->activate_object(aStudyManager_i); aStudyManager_i->register_name("/myStudyManager_embedded"); // Obtain a POAManager, and tell the POA to start accepting // requests on its objects. PortableServer::POAManager_var pman = poa->the_POAManager(); pman->activate(); } // --- Create the event manager and test controller CPPUNIT_NS::TestResult controller; // --- Add a listener that colllects test result CPPUNIT_NS::TestResultCollector result; controller.addListener( &result ); // --- Add a listener that print dots as test run. #ifdef WIN32 CPPUNIT_NS::TextTestProgressListener progress; #else CPPUNIT_NS::BriefTestProgressListener progress; #endif controller.addListener( &progress ); // --- Get the top level suite from the registry CPPUNIT_NS::Test *suite = CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest(); // --- Adds the test to the list of test to run CPPUNIT_NS::TestRunner runner; runner.addTest( suite ); runner.run( controller); // --- Print test in a compiler compatible format. std::ofstream testFile; testFile.open("UnitTestsResult", std::ios::out | std::ios::trunc); //CPPUNIT_NS::CompilerOutputter outputter( &result, std::cerr ); CPPUNIT_NS::CompilerOutputter outputter( &result, testFile ); outputter.write(); // --- Run the tests. bool wasSucessful = result.wasSuccessful(); testFile.close(); // --- Kill all created Salome process system("killSalome.py"); // --- Return error code 1 if the one of test failed. return wasSucessful ? 0 : 1; } salome-kernel-6.5.0/src/SALOMEDS/Test/TestSALOMEDS.py000077500000000000000000000030141177004724000216210ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = runSalome.get_config() runSalome.set_env(args, modules_list, modules_root_dir) # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # execute Unit Test command = ['TestSALOMEDS'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/SALOMEDSClient/000077500000000000000000000000001177004724000174175ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMEDSClient/Makefile.am000077500000000000000000000106041177004724000214570ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOMEDSClient: client interface of SALOMEDS # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am salomeinclude_HEADERS=\ SALOMEDSClient_definitions.hxx \ SALOMEDSClient_AttributeComment.hxx \ SALOMEDSClient_AttributeDrawable.hxx \ SALOMEDSClient_AttributeExpandable.hxx \ SALOMEDSClient_AttributeExternalFileDef.hxx \ SALOMEDSClient_AttributeFileType.hxx \ SALOMEDSClient_AttributeFlags.hxx \ SALOMEDSClient_AttributeGraphic.hxx \ SALOMEDSClient_AttributeIOR.hxx \ SALOMEDSClient_AttributeInteger.hxx \ SALOMEDSClient_AttributeLocalID.hxx \ SALOMEDSClient_AttributeName.hxx \ SALOMEDSClient_AttributeOpened.hxx \ SALOMEDSClient_AttributePersistentRef.hxx \ SALOMEDSClient_AttributePixMap.hxx \ SALOMEDSClient_AttributePythonObject.hxx \ SALOMEDSClient_AttributeReal.hxx \ SALOMEDSClient_AttributeSelectable.hxx \ SALOMEDSClient_AttributeSequenceOfInteger.hxx \ SALOMEDSClient_AttributeSequenceOfReal.hxx \ SALOMEDSClient_AttributeStudyProperties.hxx \ SALOMEDSClient_AttributeTable.hxx \ SALOMEDSClient_AttributeTableOfInteger.hxx \ SALOMEDSClient_AttributeTableOfReal.hxx \ SALOMEDSClient_AttributeTableOfString.hxx \ SALOMEDSClient_AttributeTarget.hxx \ SALOMEDSClient_AttributeTextColor.hxx \ SALOMEDSClient_AttributeTextHighlightColor.hxx \ SALOMEDSClient_AttributeTreeNode.hxx \ SALOMEDSClient_AttributeUserID.hxx \ SALOMEDSClient_AttributeParameter.hxx \ SALOMEDSClient_AttributeString.hxx \ SALOMEDSClient_ChildIterator.hxx \ SALOMEDSClient_GenericAttribute.hxx \ SALOMEDSClient_SComponent.hxx \ SALOMEDSClient_SComponentIterator.hxx \ SALOMEDSClient_SObject.hxx \ SALOMEDSClient_Study.hxx \ SALOMEDSClient_StudyBuilder.hxx \ SALOMEDSClient_StudyManager.hxx \ SALOMEDSClient_UseCaseBuilder.hxx \ SALOMEDSClient_UseCaseIterator.hxx \ SALOMEDSClient_ClientFactory.hxx \ SALOMEDSClient_IParameters.hxx \ SALOMEDSClient_Observer.hxx \ SALOMEDSClient.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS= \ @BOOST_CPPFLAGS@ \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSClient.la libSalomeDSClient_la_SOURCES = \ SALOMEDSClient_ClientFactory.cxx libSalomeDSClient_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeDSClient_la_LDFLAGS = -Wl,-E -no-undefined -version-info=0:0:0 libSalomeDSClient_la_LIBADD = $(COMMON_LIBS) salome-kernel-6.5.0/src/SALOMEDSClient/Makefile.in000077500000000000000000000773561177004724000215110ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/SALOMEDSClient ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeDSClient_la_DEPENDENCIES = $(COMMON_LIBS) am_libSalomeDSClient_la_OBJECTS = \ libSalomeDSClient_la-SALOMEDSClient_ClientFactory.lo libSalomeDSClient_la_OBJECTS = $(am_libSalomeDSClient_la_OBJECTS) libSalomeDSClient_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeDSClient_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDSClient_la_SOURCES) DIST_SOURCES = $(libSalomeDSClient_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOMEDSClient: client interface of SALOMEDS # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # salomeinclude_HEADERS = \ SALOMEDSClient_definitions.hxx \ SALOMEDSClient_AttributeComment.hxx \ SALOMEDSClient_AttributeDrawable.hxx \ SALOMEDSClient_AttributeExpandable.hxx \ SALOMEDSClient_AttributeExternalFileDef.hxx \ SALOMEDSClient_AttributeFileType.hxx \ SALOMEDSClient_AttributeFlags.hxx \ SALOMEDSClient_AttributeGraphic.hxx \ SALOMEDSClient_AttributeIOR.hxx \ SALOMEDSClient_AttributeInteger.hxx \ SALOMEDSClient_AttributeLocalID.hxx \ SALOMEDSClient_AttributeName.hxx \ SALOMEDSClient_AttributeOpened.hxx \ SALOMEDSClient_AttributePersistentRef.hxx \ SALOMEDSClient_AttributePixMap.hxx \ SALOMEDSClient_AttributePythonObject.hxx \ SALOMEDSClient_AttributeReal.hxx \ SALOMEDSClient_AttributeSelectable.hxx \ SALOMEDSClient_AttributeSequenceOfInteger.hxx \ SALOMEDSClient_AttributeSequenceOfReal.hxx \ SALOMEDSClient_AttributeStudyProperties.hxx \ SALOMEDSClient_AttributeTable.hxx \ SALOMEDSClient_AttributeTableOfInteger.hxx \ SALOMEDSClient_AttributeTableOfReal.hxx \ SALOMEDSClient_AttributeTableOfString.hxx \ SALOMEDSClient_AttributeTarget.hxx \ SALOMEDSClient_AttributeTextColor.hxx \ SALOMEDSClient_AttributeTextHighlightColor.hxx \ SALOMEDSClient_AttributeTreeNode.hxx \ SALOMEDSClient_AttributeUserID.hxx \ SALOMEDSClient_AttributeParameter.hxx \ SALOMEDSClient_AttributeString.hxx \ SALOMEDSClient_ChildIterator.hxx \ SALOMEDSClient_GenericAttribute.hxx \ SALOMEDSClient_SComponent.hxx \ SALOMEDSClient_SComponentIterator.hxx \ SALOMEDSClient_SObject.hxx \ SALOMEDSClient_Study.hxx \ SALOMEDSClient_StudyBuilder.hxx \ SALOMEDSClient_StudyManager.hxx \ SALOMEDSClient_UseCaseBuilder.hxx \ SALOMEDSClient_UseCaseIterator.hxx \ SALOMEDSClient_ClientFactory.hxx \ SALOMEDSClient_IParameters.hxx \ SALOMEDSClient_Observer.hxx \ SALOMEDSClient.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @BOOST_CPPFLAGS@ \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSClient.la libSalomeDSClient_la_SOURCES = \ SALOMEDSClient_ClientFactory.cxx libSalomeDSClient_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeDSClient_la_LDFLAGS = -Wl,-E -no-undefined -version-info=0:0:0 libSalomeDSClient_la_LIBADD = $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMEDSClient/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMEDSClient/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDSClient.la: $(libSalomeDSClient_la_OBJECTS) $(libSalomeDSClient_la_DEPENDENCIES) $(libSalomeDSClient_la_LINK) -rpath $(libdir) $(libSalomeDSClient_la_OBJECTS) $(libSalomeDSClient_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSClient_la-SALOMEDSClient_ClientFactory.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDSClient_la-SALOMEDSClient_ClientFactory.lo: SALOMEDSClient_ClientFactory.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSClient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSClient_la-SALOMEDSClient_ClientFactory.lo -MD -MP -MF $(DEPDIR)/libSalomeDSClient_la-SALOMEDSClient_ClientFactory.Tpo -c -o libSalomeDSClient_la-SALOMEDSClient_ClientFactory.lo `test -f 'SALOMEDSClient_ClientFactory.cxx' || echo '$(srcdir)/'`SALOMEDSClient_ClientFactory.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSClient_la-SALOMEDSClient_ClientFactory.Tpo $(DEPDIR)/libSalomeDSClient_la-SALOMEDSClient_ClientFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSClient_ClientFactory.cxx' object='libSalomeDSClient_la-SALOMEDSClient_ClientFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSClient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSClient_la-SALOMEDSClient_ClientFactory.lo `test -f 'SALOMEDSClient_ClientFactory.cxx' || echo '$(srcdir)/'`SALOMEDSClient_ClientFactory.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient.hxx000077500000000000000000000056561177004724000225350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef SALOMEDSCLIENT_HXX #define SALOMEDSCLIENT_HXX #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_AttributeComment.hxx" #include "SALOMEDSClient_AttributeDrawable.hxx" #include "SALOMEDSClient_AttributeExpandable.hxx" #include "SALOMEDSClient_AttributeExternalFileDef.hxx" #include "SALOMEDSClient_AttributeFileType.hxx" #include "SALOMEDSClient_AttributeFlags.hxx" #include "SALOMEDSClient_AttributeGraphic.hxx" #include "SALOMEDSClient_AttributeIOR.hxx" #include "SALOMEDSClient_AttributeInteger.hxx" #include "SALOMEDSClient_AttributeLocalID.hxx" #include "SALOMEDSClient_AttributeName.hxx" #include "SALOMEDSClient_AttributeOpened.hxx" #include "SALOMEDSClient_AttributePersistentRef.hxx" #include "SALOMEDSClient_AttributePixMap.hxx" #include "SALOMEDSClient_AttributePythonObject.hxx" #include "SALOMEDSClient_AttributeReal.hxx" #include "SALOMEDSClient_AttributeSelectable.hxx" #include "SALOMEDSClient_AttributeSequenceOfInteger.hxx" #include "SALOMEDSClient_AttributeSequenceOfReal.hxx" #include "SALOMEDSClient_AttributeStudyProperties.hxx" #include "SALOMEDSClient_AttributeTableOfInteger.hxx" #include "SALOMEDSClient_AttributeTableOfReal.hxx" #include "SALOMEDSClient_AttributeTableOfString.hxx" #include "SALOMEDSClient_AttributeTarget.hxx" #include "SALOMEDSClient_AttributeTextColor.hxx" #include "SALOMEDSClient_AttributeTextHighlightColor.hxx" #include "SALOMEDSClient_AttributeTreeNode.hxx" #include "SALOMEDSClient_AttributeUserID.hxx" #include "SALOMEDSClient_AttributeParameter.hxx" #include "SALOMEDSClient_AttributeString.hxx" #include "SALOMEDSClient_ChildIterator.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include "SALOMEDSClient_SComponent.hxx" #include "SALOMEDSClient_SComponentIterator.hxx" #include "SALOMEDSClient_SObject.hxx" #include "SALOMEDSClient_Study.hxx" #include "SALOMEDSClient_StudyBuilder.hxx" #include "SALOMEDSClient_StudyManager.hxx" #include "SALOMEDSClient_UseCaseBuilder.hxx" #include "SALOMEDSClient_UseCaseIterator.hxx" #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeComment.hxx000077500000000000000000000027121177004724000260710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeComment.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeComment_HeaderFile #define SALOMEDSClient_AttributeComment_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeComment: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeDrawable.hxx000077500000000000000000000026561177004724000262170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeDrawable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeDrawable_HeaderFile #define SALOMEDSClient_AttributeDrawable_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeDrawable: public virtual SALOMEDSClient_GenericAttribute { public: virtual bool IsDrawable() = 0; virtual void SetDrawable(bool value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeExpandable.hxx000077500000000000000000000027121177004724000265320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeExpandable.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_AttributeExpandable_HeaderFile #define SALOMEDSClient_AttributeExpandable_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeExpandable: public virtual SALOMEDSClient_GenericAttribute { public: virtual bool IsExpandable() = 0; virtual void SetExpandable(bool value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeExternalFileDef.hxx000077500000000000000000000027521177004724000274740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeExternalFileDef.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeExternalFileDef_HeaderFile #define SALOMEDSClient_AttributeExternalFileDef_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeExternalFileDef: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeFileType.hxx000077500000000000000000000027211177004724000262100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeFileType.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeFileType_HeaderFile #define SALOMEDSClient_AttributeFileType_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeFileType: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeFlags.hxx000077500000000000000000000030151177004724000255200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeFlags.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_AttributeFlags_HeaderFile #define SALOMEDSClient_AttributeFlags_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeFlags: public virtual SALOMEDSClient_GenericAttribute { public: virtual int GetFlags() = 0; virtual void SetFlags(int theFlags) = 0; virtual bool Get(int theFlag) = 0; virtual void Set(int theFlag, bool theValue) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeGraphic.hxx000077500000000000000000000027351177004724000260510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeFlags.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_AttributeGraphic_HeaderFile #define SALOMEDSClient_AttributeGraphic_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeGraphic: public virtual SALOMEDSClient_GenericAttribute { public: virtual void SetVisibility(int theViewId, bool theValue) = 0; virtual bool GetVisibility(int theViewId) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeIOR.hxx000077500000000000000000000026771177004724000251320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeIOR_HeaderFile #define SALOMEDSClient_AttributeIOR_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeIOR: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeInteger.hxx000077500000000000000000000026441177004724000260700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeInteger_HeaderFile #define SALOMEDSClient_AttributeInteger_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeInteger: public virtual SALOMEDSClient_GenericAttribute { public: virtual int Value() = 0; virtual void SetValue(int value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeLocalID.hxx000077500000000000000000000026571177004724000257460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeLocalID.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_AttributeLocalID_HeaderFile #define SALOMEDSClient_AttributeLocalID_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeLocalID: public virtual SALOMEDSClient_GenericAttribute { public: virtual int Value() = 0; virtual void SetValue(int value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeName.hxx000077500000000000000000000027161177004724000253530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeName.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_AttributeName_HeaderFile #define SALOMEDSClient_AttributeName_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeName: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeOpened.hxx000077500000000000000000000026631177004724000257060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeOpened.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_AttributeOpened_HeaderFile #define SALOMEDSClient_AttributeOpened_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeOpened: public virtual SALOMEDSClient_GenericAttribute { public: virtual bool IsOpened() = 0; virtual void SetOpened(bool value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeParameter.hxx000077500000000000000000000054221177004724000264100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSClient_AttributeParameter_HeaderFile #define _SALOMEDSClient_AttributeParameter_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include #include class SALOMEDSClient_AttributeParameter : public virtual SALOMEDSClient_GenericAttribute { public: virtual void SetInt(const std::string& theID, const int theValue) = 0; virtual int GetInt(const std::string& theID) = 0; virtual void SetReal(const std::string& theID, const double& theValue) = 0; virtual double GetReal(const std::string& theID) = 0; virtual void SetString(const std::string& theID, const std::string& theValue) = 0; virtual std::string GetString(const std::string& theID) = 0; virtual void SetBool(const std::string& theID, const bool& theValue) = 0; virtual bool GetBool(const std::string& theID) = 0; virtual void SetRealArray(const std::string& theID, const std::vector& theArray) = 0; virtual std::vector GetRealArray(const std::string& theID) = 0; virtual void SetIntArray(const std::string& theID, const std::vector& theArray) = 0; virtual std::vector GetIntArray(const std::string& theID) = 0; virtual void SetStrArray(const std::string& theID, const std::vector& theArray) = 0; virtual std::vector GetStrArray(const std::string& theID) = 0; virtual bool IsSet(const std::string& theID, const int theType) = 0; virtual bool RemoveID(const std::string& theID, const int theType) = 0; virtual _PTR(AttributeParameter) GetFather() = 0; virtual bool HasFather() = 0; virtual bool IsRoot() = 0; virtual void Clear() = 0; virtual std::vector GetIDs(const int theType) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributePersistentRef.hxx000077500000000000000000000027461177004724000272730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributePersistentRef.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributePersistentRef_HeaderFile #define SALOMEDSClient_AttributePersistentRef_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributePersistentRef: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributePixMap.hxx000077500000000000000000000027551177004724000256740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributePixMap.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributePixMap_HeaderFile #define SALOMEDSClient_AttributePixMap_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributePixMap: public virtual SALOMEDSClient_GenericAttribute { public: virtual bool HasPixMap() = 0; virtual std::string GetPixMap() = 0; virtual void SetPixMap(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributePythonObject.hxx000077500000000000000000000030331177004724000270740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributePythonObject.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributePythonObject_HeaderFile #define SALOMEDSClient_AttributePythonObject_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributePythonObject: public virtual SALOMEDSClient_GenericAttribute { public: virtual void SetObject(const std::string& theSequence, bool IsScript) = 0; virtual std::string GetObject() = 0; virtual bool IsScript() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeReal.hxx000077500000000000000000000026351177004724000253560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeReal_HeaderFile #define SALOMEDSClient_AttributeReal_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeReal: public virtual SALOMEDSClient_GenericAttribute { public: virtual double Value() = 0; virtual void SetValue(double value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeSelectable.hxx000077500000000000000000000026771177004724000265440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeSelectable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeSelectable_HeaderFile #define SALOMEDSClient_AttributeSelectable_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeSelectable: public virtual SALOMEDSClient_GenericAttribute { public: virtual bool IsSelectable() = 0; virtual void SetSelectable(bool value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeSequenceOfInteger.hxx000077500000000000000000000033071177004724000300430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeSequenceOfInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeSequenceOfInteger_HeaderFile #define SALOMEDSClient_AttributeSequenceOfInteger_HeaderFile #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeSequenceOfInteger: public virtual SALOMEDSClient_GenericAttribute { public: virtual void Assign(const std::vector& other) = 0; virtual std::vector CorbaSequence() = 0; virtual void Add(int value) = 0; virtual void Remove(int index) = 0; virtual void ChangeValue(int index, int value) = 0; virtual int Value(int index) = 0; virtual int Length() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeSequenceOfReal.hxx000077500000000000000000000033441177004724000273320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeSequenceOfSequenceOfReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeSequenceOfSequenceOfReal_HeaderFile #define SALOMEDSClient_AttributeSequenceOfSequenceOfReal_HeaderFile #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeSequenceOfReal: public virtual SALOMEDSClient_GenericAttribute { public: virtual void Assign(const std::vector& other) = 0; virtual std::vector CorbaSequence() = 0; virtual void Add(double value) = 0; virtual void Remove(int index) = 0; virtual void ChangeValue(int index, double value) = 0; virtual double Value(int index) = 0; virtual int Length() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeString.hxx000077500000000000000000000027061177004724000257400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeString.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeString_HeaderFile #define SALOMEDSClient_AttributeString_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeString: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeStudyProperties.hxx000077500000000000000000000056721177004724000276640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeStudyProperties.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeStudyProperties_HeaderFile #define SALOMEDSClient_AttributeStudyProperties_HeaderFile #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeStudyProperties: public virtual SALOMEDSClient_GenericAttribute { public: virtual void SetUserName(const std::string& theName) = 0; virtual std::string GetUserName() = 0; virtual void SetCreationDate(int theMinute, int theHour, int theDay, int theMonth, int theYear) = 0; virtual bool GetCreationDate(int& theMinute, int& theHour, int& theDay, int& theMonth, int& theYear) = 0; virtual void SetCreationMode(const std::string& theMode) = 0; virtual std::string GetCreationMode() = 0; virtual void SetModified(int theModified) = 0; virtual bool IsModified() = 0; virtual int GetModified() = 0; virtual void SetLocked(bool theLocked) = 0; virtual bool IsLocked() = 0; virtual void SetModification(const std::string& theName, int theMinute, int theHour, int theDay, int theMonth, int theYear) = 0; virtual void GetModificationsList(std::vector& theNames, std::vector& theMinutes, std::vector& theHours, std::vector& theDays, std::vector& theMonths, std::vector& theYears, bool theWithCreator) = 0; virtual void SetUnits(const std::string& theUnits) = 0; virtual std::string GetUnits() = 0; virtual void SetComment(const std::string& theComment) = 0; virtual std::string GetComment() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTable.hxx000077500000000000000000000063671177004724000255300ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTable.hxx // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // #ifndef SALOMEDSClient_AttributeTable_HeaderFile #define SALOMEDSClient_AttributeTable_HeaderFile #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeTable: public virtual SALOMEDSClient_GenericAttribute { public: typedef enum { AscendingOrder, DescendingOrder, } SortOrder; typedef enum { EmptyLowest, EmptyHighest, EmptyFirst, EmptyLast, EmptyIgnore, } SortPolicy; virtual void SetTitle(const std::string& theTitle) = 0; virtual std::string GetTitle() = 0; virtual void SetRowTitle(int theIndex, const std::string& theTitle) = 0; virtual std::string GetRowTitle(int theIndex) = 0; virtual void SetRowTitles(const std::vector& theTitles) = 0; virtual std::vector GetRowTitles() = 0; virtual void SetColumnTitle(int theIndex, const std::string& theTitle) = 0; virtual std::string GetColumnTitle(int theIndex) = 0; virtual void SetColumnTitles(const std::vector& theTitles) = 0; virtual std::vector GetColumnTitles() = 0; virtual void SetRowUnit(int theIndex, const std::string& theUnit) = 0; virtual std::string GetRowUnit(int theIndex) = 0; virtual void SetRowUnits(const std::vector& theUnits) = 0; virtual std::vector GetRowUnits() = 0; virtual int GetNbRows() = 0; virtual int GetNbColumns() = 0; virtual bool HasValue(int theRow, int theColumn) = 0; virtual void RemoveValue(int theRow, int theColumn) = 0; virtual std::vector GetRowSetIndices(int theRow) = 0; virtual void SetNbColumns(int theNbColumns) = 0; virtual std::vector SortRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) = 0; virtual std::vector SortColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) = 0; virtual std::vector SortByRow(int theRow, SortOrder theOrder, SortPolicy thePolicy) = 0; virtual std::vector SortByColumn(int theColumn, SortOrder theOrder, SortPolicy thePolicy) = 0; virtual void SwapCells(int theRow1, int theColumn1, int theRow2, int theColumn2) = 0; virtual void SwapRows(int theRow1, int theRow2) = 0; virtual void SwapColumns(int theColumn1, int theColumn2) = 0; }; #endif // SALOMEDSClient_AttributeTable_HeaderFile salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTableOfInteger.hxx000077500000000000000000000036771177004724000273340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTableOfInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeTableOfInteger_HeaderFile #define SALOMEDSClient_AttributeTableOfInteger_HeaderFile #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_AttributeTable.hxx" class SALOMEDSClient_AttributeTableOfInteger: public SALOMEDSClient_AttributeTable { public: virtual void AddRow(const std::vector& theData) = 0; virtual void SetRow(int theRow, const std::vector& theData) = 0; virtual std::vector GetRow(int theRow) = 0; virtual void AddColumn(const std::vector& theData) = 0; virtual void SetColumn(int theColumn, const std::vector& theData) = 0; virtual std::vector GetColumn(int theColumn) = 0; virtual void PutValue(int theValue, int theRow, int theColumn) = 0; virtual int GetValue(int theRow, int theColumn) = 0; }; #endif // SALOMEDSClient_AttributeTableOfInteger_HeaderFile salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTableOfReal.hxx000077500000000000000000000037171177004724000266150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTableOfReal.hxx // Author : Michael Ponikarov // Module : SALOME // #ifndef SALOMEDSClient_AttributeTableOfReal_HeaderFile #define SALOMEDSClient_AttributeTableOfReal_HeaderFile #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_AttributeTable.hxx" class SALOMEDSClient_AttributeTableOfReal: public SALOMEDSClient_AttributeTable { public: virtual void AddRow(const std::vector& theData) = 0; virtual void SetRow(int theRow, const std::vector& theData) = 0; virtual std::vector GetRow(int theRow) = 0; virtual void AddColumn(const std::vector& theData) = 0; virtual void SetColumn(int theColumn, const std::vector& theData) = 0; virtual std::vector GetColumn(int theColumn) = 0; virtual void PutValue(double theValue, int theRow, int theColumn) = 0; virtual double GetValue(int theRow, int theColumn) = 0; }; #endif // SALOMEDSClient_AttributeTableOfReal_HeaderFile salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTableOfString.hxx000077500000000000000000000040051177004724000271670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTableOfString.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeTableOfString_HeaderFile #define SALOMEDSClient_AttributeTableOfString_HeaderFile #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_AttributeTable.hxx" class SALOMEDSClient_AttributeTableOfString: public SALOMEDSClient_AttributeTable { public: virtual void AddRow(const std::vector& theData) = 0; virtual void SetRow(int theRow, const std::vector& theData) = 0; virtual std::vector GetRow(int theRow) = 0; virtual void AddColumn(const std::vector& theData) = 0; virtual void SetColumn(int theColumn, const std::vector& theData) = 0; virtual std::vector GetColumn(int theColumn) = 0; virtual void PutValue(const std::string& theValue, int theRow, int theColumn) = 0; virtual std::string GetValue(int theRow, int theColumn) = 0; }; #endif // SALOMEDSClient_AttributeTableOfString_HeaderFile salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTarget.hxx000077500000000000000000000030631177004724000257150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTarget.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeTarget_HeaderFile #define SALOMEDSClient_AttributeTarget_HeaderFile #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeTarget: public virtual SALOMEDSClient_GenericAttribute { public: virtual void Add(const _PTR(SObject)& theObject) = 0; virtual std::vector<_PTR(SObject)> Get() = 0; virtual void Remove(const _PTR(SObject)& theObject) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTextColor.hxx000077500000000000000000000027741177004724000264220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTextColor.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeTextColor_HeaderFile #define SALOMEDSClient_AttributeTextColor_HeaderFile #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include "SALOMEDSClient_definitions.hxx" class SALOMEDSClient_AttributeTextColor: public virtual SALOMEDSClient_GenericAttribute { public: virtual STextColor TextColor() = 0; virtual void SetTextColor(STextColor value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTextHighlightColor.hxx000077500000000000000000000030601177004724000302370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTextHighlightColor.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeTextHighlightColor_HeaderFile #define SALOMEDSClient_AttributeTextHighlightColor_HeaderFile #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include "SALOMEDSClient_definitions.hxx" class SALOMEDSClient_AttributeTextHighlightColor: public virtual SALOMEDSClient_GenericAttribute { public: virtual STextColor TextHighlightColor() = 0; virtual void SetTextHighlightColor(STextColor value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeTreeNode.hxx000077500000000000000000000051601177004724000261740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeTreeNode.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeTreeNode_HeaderFile #define SALOMEDSClient_AttributeTreeNode_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" class SALOMEDSClient_AttributeTreeNode: public virtual SALOMEDSClient_GenericAttribute { public: virtual void SetFather(const _PTR(AttributeTreeNode)& value) = 0; virtual bool HasFather() = 0; virtual _PTR(AttributeTreeNode) GetFather() = 0; virtual void SetPrevious(const _PTR(AttributeTreeNode)& value) = 0; virtual bool HasPrevious() = 0; virtual _PTR(AttributeTreeNode) GetPrevious() = 0; virtual void SetNext(const _PTR(AttributeTreeNode)& value) = 0; virtual bool HasNext() = 0; virtual _PTR(AttributeTreeNode) GetNext() = 0; virtual void SetFirst(const _PTR(AttributeTreeNode)& value) = 0; virtual bool HasFirst() = 0; virtual _PTR(AttributeTreeNode) GetFirst() = 0; virtual void SetTreeID(const std::string& value) = 0; virtual std::string GetTreeID() = 0; virtual void Append(const _PTR(AttributeTreeNode)& value) = 0; virtual void Prepend(const _PTR(AttributeTreeNode)& value) = 0; virtual void InsertBefore(const _PTR(AttributeTreeNode)& value) = 0; virtual void InsertAfter(const _PTR(AttributeTreeNode)& value) = 0; virtual void Remove() = 0; virtual int Depth() = 0; virtual bool IsRoot() = 0; virtual bool IsDescendant(const _PTR(AttributeTreeNode)& value) = 0; virtual bool IsFather(const _PTR(AttributeTreeNode)& value) = 0; virtual bool IsChild(const _PTR(AttributeTreeNode)& value) = 0; virtual std::string Label() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_AttributeUserID.hxx000077500000000000000000000027141177004724000256240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_AttributeUserID.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSClient_AttributeUserID_HeaderFile #define SALOMEDSClient_AttributeUserID_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_AttributeUserID: public virtual SALOMEDSClient_GenericAttribute { public: virtual std::string Value() = 0; virtual void SetValue(const std::string& value) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_ChildIterator.hxx000077500000000000000000000027171177004724000253450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_ChildIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSClient_CHILDITERATOR_H__ #define __SALOMEDSClient_CHILDITERATOR_H__ #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" class SALOMEDSClient_ChildIterator { public: virtual ~SALOMEDSClient_ChildIterator() {} virtual void Init() = 0; virtual void InitEx(bool) = 0; virtual bool More() = 0; virtual void Next() = 0; virtual _PTR(SObject) Value() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_ClientFactory.cxx000077500000000000000000000224221177004724000253440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEDSClient_ClientFactory.hxx" #ifdef WIN32 #include static HMODULE _libHandle = 0; #define SALOMEDS_LIB_NAME "SalomeDS.dll" #else #include static void* _libHandle = NULL; #define SALOMEDS_LIB_NAME "libSalomeDS.so" #endif #define SOBJECT_FACTORY "SObjectFactory" #define SCOMPONENT_FACTORY "SComponentFactory" #define STUDY_FACTORY "StudyFactory" #define BUILDER_FACTORY "BuilderFactory" #define STUDYMANAGER_FACTORY "StudyManagerFactory" #define STUDYMANAGER_CREATE "CreateStudyManager" #define GET_PARAMETERS "GetIParameters" #define CONVERT_SOBJECT "ConvertSObject" #define CONVERT_STUDY "ConvertStudy" #define CONVERT_BUILDER "ConvertBuilder" typedef SALOMEDSClient_SObject* (*SOBJECT_FACTORY_FUNCTION) (SALOMEDS::SObject_ptr); typedef SALOMEDSClient_SComponent* (*SCOMPONENT_FACTORY_FUNCTION) (SALOMEDS::SComponent_ptr); typedef SALOMEDSClient_Study* (*STUDY_FACTORY_FUNCTION) (SALOMEDS::Study_ptr); typedef SALOMEDSClient_StudyManager* (*STUDYMANAGER_FACTORY_FUNCTION) (); typedef SALOMEDSClient_StudyBuilder* (*BUILDER_FACTORY_FUNCTION) (SALOMEDS::StudyBuilder_ptr); typedef SALOMEDSClient_StudyManager* (*STUDYMANAGER_CREATE_FUNCTION) (CORBA::ORB_ptr, PortableServer::POA_ptr); typedef SALOMEDSClient_IParameters* (*GET_PARAMETERS_FACTORY) (const _PTR(AttributeParameter)&); typedef SALOMEDS::SObject_ptr (*CONVERT_SOBJECT_FUNCTION) (const _PTR(SObject)&); typedef SALOMEDS::Study_ptr (*CONVERT_STUDY_FUNCTION) (const _PTR(Study)&); typedef SALOMEDS::StudyBuilder_ptr (*CONVERT_BUILDER_FUNCTION) (const _PTR(StudyBuilder)&); static SOBJECT_FACTORY_FUNCTION aSObjectFactory = NULL; static SCOMPONENT_FACTORY_FUNCTION aSComponentFactory = NULL; static STUDY_FACTORY_FUNCTION aStudyFactory = NULL; static BUILDER_FACTORY_FUNCTION aBuilderFactory = NULL; static STUDYMANAGER_FACTORY_FUNCTION aManagerFactory = NULL; static STUDYMANAGER_CREATE_FUNCTION aCreateFactory = NULL; static GET_PARAMETERS_FACTORY aGetIParameters = NULL; static CONVERT_SOBJECT_FUNCTION aConvertSObject = NULL; static CONVERT_STUDY_FUNCTION aConvertStudy = NULL; static CONVERT_BUILDER_FUNCTION aConvertBuilder = NULL; _PTR(SObject) ClientFactory::SObject(SALOMEDS::SObject_ptr theSObject) { SALOMEDSClient_SObject* so = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aSObjectFactory) aSObjectFactory = (SOBJECT_FACTORY_FUNCTION)::GetProcAddress(_libHandle, SOBJECT_FACTORY); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aSObjectFactory) aSObjectFactory = (SOBJECT_FACTORY_FUNCTION) dlsym(_libHandle, SOBJECT_FACTORY); #endif if(aSObjectFactory) so = aSObjectFactory(theSObject); return _PTR(SObject)(so); } _PTR(SComponent) ClientFactory::SComponent(SALOMEDS::SComponent_ptr theSComponent) { SALOMEDSClient_SComponent* sco = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aSComponentFactory) aSComponentFactory = (SCOMPONENT_FACTORY_FUNCTION)::GetProcAddress(_libHandle, SCOMPONENT_FACTORY); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aSComponentFactory) aSComponentFactory = (SCOMPONENT_FACTORY_FUNCTION) dlsym(_libHandle, SCOMPONENT_FACTORY); #endif if(aSComponentFactory) sco = aSComponentFactory(theSComponent); return _PTR(SComponent)(sco); } _PTR(Study) ClientFactory::Study(SALOMEDS::Study_ptr theStudy) { SALOMEDSClient_Study* study = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aStudyFactory) aStudyFactory = (STUDY_FACTORY_FUNCTION)::GetProcAddress(_libHandle, STUDY_FACTORY); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aStudyFactory) aStudyFactory = (STUDY_FACTORY_FUNCTION) dlsym(_libHandle, STUDY_FACTORY); #endif if(aStudyFactory) study = aStudyFactory(theStudy); return _PTR(Study)(study); } _PTR(StudyBuilder) ClientFactory::StudyBuilder(SALOMEDS::StudyBuilder_ptr theStudyBuilder) { SALOMEDSClient_StudyBuilder* studyBuilder = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aBuilderFactory) aBuilderFactory = (BUILDER_FACTORY_FUNCTION)::GetProcAddress(_libHandle, BUILDER_FACTORY); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aBuilderFactory) aBuilderFactory = (BUILDER_FACTORY_FUNCTION) dlsym(_libHandle, BUILDER_FACTORY); #endif if(aBuilderFactory) studyBuilder = aBuilderFactory(theStudyBuilder); return _PTR(StudyBuilder)(studyBuilder); } _PTR(StudyManager) ClientFactory::StudyManager() { SALOMEDSClient_StudyManager* manager = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aManagerFactory) aManagerFactory = (STUDYMANAGER_FACTORY_FUNCTION)::GetProcAddress(_libHandle, STUDYMANAGER_FACTORY); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aManagerFactory) aManagerFactory = (STUDYMANAGER_FACTORY_FUNCTION) dlsym(_libHandle, STUDYMANAGER_FACTORY); #endif if(aManagerFactory) manager = aManagerFactory(); return _PTR(StudyManager)(manager); } _PTR(StudyManager) ClientFactory::createStudyManager(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa) { SALOMEDSClient_StudyManager* manager = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aCreateFactory) aCreateFactory = (STUDYMANAGER_CREATE_FUNCTION)::GetProcAddress(_libHandle, STUDYMANAGER_CREATE); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aCreateFactory) aCreateFactory = (STUDYMANAGER_CREATE_FUNCTION) dlsym(_libHandle, STUDYMANAGER_CREATE); #endif if(aCreateFactory) manager = aCreateFactory(orb, poa); return _PTR(StudyManager)(manager); } _PTR(IParameters) ClientFactory::getIParameters(const _PTR(AttributeParameter)& ap) { SALOMEDSClient_IParameters* interface = NULL; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aGetIParameters) aGetIParameters = (GET_PARAMETERS_FACTORY)::GetProcAddress(_libHandle, GET_PARAMETERS); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aGetIParameters) aGetIParameters = (GET_PARAMETERS_FACTORY) dlsym(_libHandle, GET_PARAMETERS); #endif if(aGetIParameters) interface = aGetIParameters(ap); return _PTR(IParameters)(interface); } SALOMEDS::SObject_ptr ClientFactory::crbSObject(const _PTR(SObject)& theSObject) { SALOMEDS::SObject_var so; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aConvertSObject) aConvertSObject = (CONVERT_SOBJECT_FUNCTION)::GetProcAddress(_libHandle, CONVERT_SOBJECT); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aConvertSObject) aConvertSObject = (CONVERT_SOBJECT_FUNCTION) dlsym(_libHandle, CONVERT_SOBJECT); #endif if(aConvertSObject) so = aConvertSObject(theSObject); if(CORBA::is_nil(so)) return SALOMEDS::SObject::_nil(); return so._retn(); } SALOMEDS::Study_ptr ClientFactory::crbStudy(const _PTR(Study)& theStudy) { SALOMEDS::Study_var study; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aConvertStudy) aConvertStudy = (CONVERT_STUDY_FUNCTION)::GetProcAddress(_libHandle, CONVERT_STUDY); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aConvertStudy) aConvertStudy = (CONVERT_STUDY_FUNCTION) dlsym(_libHandle, CONVERT_STUDY); #endif if(aConvertStudy) study = aConvertStudy(theStudy); if(CORBA::is_nil(study)) return SALOMEDS::Study::_nil(); return study._retn(); } SALOMEDS::StudyBuilder_ptr ClientFactory::crbStudyBuilder(const _PTR(StudyBuilder)& theStudyBuilder) { SALOMEDS::StudyBuilder_var studyBuilder; #ifdef WIN32 if(!_libHandle) _libHandle = ::LoadLibrary(SALOMEDS_LIB_NAME); if(!aConvertBuilder)aConvertBuilder = (CONVERT_BUILDER_FUNCTION)::GetProcAddress(_libHandle, CONVERT_BUILDER); #else if(!_libHandle) _libHandle = dlopen(SALOMEDS_LIB_NAME, RTLD_LAZY | RTLD_GLOBAL); if(!aConvertBuilder) aConvertBuilder = (CONVERT_BUILDER_FUNCTION) dlsym(_libHandle, CONVERT_BUILDER); #endif if(aConvertBuilder) studyBuilder = aConvertBuilder(theStudyBuilder); if(CORBA::is_nil(studyBuilder)) return SALOMEDS::StudyBuilder::_nil(); return studyBuilder._retn(); } salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_ClientFactory.hxx000077500000000000000000000057671177004724000253660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_ClientFactory.hxx // Author : Sergey RUIN // Module : SALOME // $Header: // #ifndef SALOMEDSClient_ClientFactory_HeaderFile #define SALOMEDSClient_ClientFactory_HeaderFile #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" #include "SALOMEDSClient_SComponent.hxx" #include "SALOMEDSClient_Study.hxx" #include "SALOMEDSClient_StudyManager.hxx" #include "SALOMEDSClient_IParameters.hxx" #include // IDL headers #include #include CORBA_CLIENT_HEADER(SALOMEDS) class SALOMEDSCLIENT_EXPORT ClientFactory { public: /*! * Returns a client SObject wrapper that corresponds %theSObject */ static _PTR(SObject) SObject(SALOMEDS::SObject_ptr theSObject); /*! * Returns a client SComponent wrapper that corresponds %theSComponent */ static _PTR(SComponent) SComponent(SALOMEDS::SComponent_ptr theSComponent); /*! * Returns a client Study wrapper that corresponds %theStudy */ static _PTR(Study) Study(SALOMEDS::Study_ptr theStudy); /*! * Returns a client StudyBuilder wrapper that corresponds %theStudy */ static _PTR(StudyBuilder) StudyBuilder(SALOMEDS::StudyBuilder_ptr theBuilder); /*! * Returns a client StudyManager wrapper */ static _PTR(StudyManager) StudyManager(); /*! * Creates and returns a client StudyManager wrapper */ static _PTR(StudyManager) createStudyManager(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa); /*! * Returns an IParameters interface */ static _PTR(IParameters) getIParameters(const _PTR(AttributeParameter)& ap); /*! * Returns a CORBA SObject that corresponds %theStudy */ static SALOMEDS::SObject_ptr crbSObject(const _PTR(SObject)& theSObject); /*! * Returns a CORBA Study that corresponds %theStudy */ static SALOMEDS::Study_ptr crbStudy(const _PTR(Study)& theStudy); /*! * Returns a CORBA StudyBuilder that corresponds %theStudyBuilder */ static SALOMEDS::StudyBuilder_ptr crbStudyBuilder(const _PTR(StudyBuilder)& theStudyBuilder); }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_GenericAttribute.hxx000077500000000000000000000027461177004724000260520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient__GenericAttribute.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _GENERICCLIENT_ATTRIBUTE_HXX_ #define _GENERICCLIENT_ATTRIBUTE_HXX_ #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" class SALOMEDSClient_GenericAttribute { public: virtual ~SALOMEDSClient_GenericAttribute() {} virtual void CheckLocked() = 0; virtual std::string Type() = 0; virtual std::string GetClassType() = 0; virtual _PTR(SObject) GetSObject() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_IParameters.hxx000077500000000000000000000112721177004724000250200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef SALOMEDSClient_IParameters_H #define SALOMEDSClient_IParameters_H #include #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_AttributeParameter.hxx" /*! Class which an interface to store the parameters of the objects */ class SALOMEDSClient_IParameters { public: virtual ~SALOMEDSClient_IParameters() {} /*! Appends a string value to a named list. Returns a number of the added value. Note: the name of the list MUST be unique */ virtual int append(const std::string& listName, const std::string& value) = 0; /*! Returns a number elements in the list */ virtual int nbValues(const std::string& listName) = 0; /*! Returns a list of values in the list */ virtual std::vector getValues(const std::string& listName) = 0; /*! Returns a value with given %index, where %index is in range [0:nbValues-1] */ virtual std::string getValue(const std::string& listName, int index) = 0; /*! Returns a list all entries lists */ virtual std::vector getLists() = 0; /*! Sets a new named parameter value for the given entry */ virtual void setParameter(const std::string& entry, const std::string& parameterName, const std::string& value) = 0; /*! Gets a named parameter value for the given entry */ virtual std::string getParameter(const std::string& entry, const std::string& parameterName) = 0; /*! Sets an id parameter value for the given entry. */ virtual void setIdParameter(const std::string& entry, const std::string& value) = 0; /*! Gets an id parameter value for the given entry */ virtual std::string getIdParameter(const std::string& entry) = 0; /*! Returns all parameter names of the given entry */ virtual std::vector getAllParameterNames(const std::string& entry) = 0; /*! Returns all parameter values of the given entry */ virtual std::vector getAllParameterValues(const std::string& entry) = 0; /*! Returns a number of parameters of the given entry */ virtual int getNbParameters(const std::string& entry) = 0; /*! Returns a list all entries */ virtual std::vector getEntries() = 0; /*! Sets a global named property value */ virtual void setProperty(const std::string& name, const std::string& value) = 0; /*! Gets a value of global named property */ virtual std::string getProperty(const std::string& name) = 0; /*! Returns a list all properties */ virtual std::vector getProperties() = 0; /*! Breaks a value string in two parts which is divided by %separator. If fromEnd is True the search of separator starts from the end of the string */ virtual std::vector parseValue(const std::string& value, const char separator, bool fromEnd = true) = 0; /*! Returns encoded entry that is a relative entry for the component */ virtual std::string encodeEntry(const std::string& entry, const std::string& compName) = 0; /*! Returns decoded entry that is an absolute entry */ virtual std::string decodeEntry(const std::string& entry) = 0; /*! Enables/Disables the dumping visual parameters, static implementation is supposed */ virtual void setDumpPython(_PTR(Study) study, const std::string& theID = "") = 0; /*! Returns whether there is the dumping visual parameters, static implementation is supposed */ virtual bool isDumpPython(_PTR(Study) study, const std::string& theID = "") = 0; /*! Returns a default name of the component where the visula parameters are stored. Static implementation is supposed */ virtual std::string getDefaultVisualComponent() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_Observer.hxx000077500000000000000000000024311177004724000243700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_Observer.hxx // Author : Nicolas GEIMER // Module : SALOME // #ifndef __SALOMEDSClient_OBSERVER_H__ #define __SALOMEDSClient_OBSERVER_H__ #include class SALOMEDSClient_Observer { public: virtual void notifyObserver(const std::string& theID,const std::string& event) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_SComponent.hxx000077500000000000000000000027161177004724000246740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_SComponent.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSCLIENT_SCOMPONENT_H__ #define __SALOMEDSCLIENT_SCOMPONENT_H__ #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" #include class SALOMEDSClient_SComponent: public virtual SALOMEDSClient_SObject { public: virtual ~SALOMEDSClient_SComponent() {} virtual std::string ComponentDataType() = 0; virtual bool ComponentIOR(std::string& theID) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_SComponentIterator.hxx000077500000000000000000000027201177004724000264010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_SComponentIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSClient_SCOMPONENTITERATOR_H__ #define __SALOMEDSClient_SCOMPONENTITERATOR_H__ #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SComponent.hxx" class SALOMEDSClient_SComponentIterator { public: virtual ~SALOMEDSClient_SComponentIterator() {} virtual void Init() = 0; virtual bool More() = 0; virtual void Next() = 0; virtual _PTR(SComponent) Value() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_SObject.hxx000077500000000000000000000042341177004724000241350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_SObject.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSCLIENT_SOBJECT_H__ #define __SALOMEDSCLIENT_SOBJECT_H__ // std C++ headers #include #include #include "SALOMEDSClient_definitions.hxx" class SALOMEDSClient_Study; class SALOMEDSClient_SComponent; class SALOMEDSClient_GenericAttribute; class SALOMEDSClient_SObject { public: virtual ~SALOMEDSClient_SObject() {} virtual bool IsNull() const = 0; virtual std::string GetID() = 0; virtual _PTR(SComponent) GetFatherComponent() = 0; virtual _PTR(SObject) GetFather() = 0; virtual bool FindAttribute(_PTR(GenericAttribute)& anAttribute, const std::string& aTypeOfAttribute) = 0; virtual bool ReferencedObject(_PTR(SObject)& theObject) = 0; virtual bool FindSubObject(int theTag, _PTR(SObject)& theObject) = 0; virtual _PTR(Study) GetStudy() = 0; virtual std::string Name() = 0; virtual void Name(const std::string& theName) = 0; virtual std::vector<_PTR(GenericAttribute)> GetAllAttributes() = 0; virtual std::string GetName() = 0; virtual std::string GetComment() = 0; virtual std::string GetIOR() = 0; virtual int Tag() = 0; virtual int Depth() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_Study.hxx000077500000000000000000000141621177004724000237150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_Study.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSClient_STUDY_H__ #define __SALOMEDSClient_STUDY_H__ #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SComponentIterator.hxx" #include "SALOMEDSClient_StudyBuilder.hxx" #include "SALOMEDSClient_AttributeParameter.hxx" #include "SALOMEDSClient_SObject.hxx" #include "SALOMEDSClient_SComponent.hxx" #include "SALOMEDSClient_UseCaseBuilder.hxx" #include "SALOMEDSClient_AttributeStudyProperties.hxx" #include "SALOMEDSClient_ChildIterator.hxx" #include "SALOMEDSClient_Observer.hxx" #include #include CORBA_CLIENT_HEADER(SALOMEDS) class SALOMEDSClient_Study { public: virtual ~SALOMEDSClient_Study() {} virtual std::string GetPersistentReference() = 0; virtual std::string GetTransientReference() = 0; virtual bool IsEmpty() = 0; virtual _PTR(SComponent) FindComponent (const std::string& aComponentName) = 0; virtual _PTR(SComponent) FindComponentID(const std::string& aComponentID) = 0; virtual _PTR(SObject) FindObject(const std::string& anObjectName) = 0; virtual std::vector<_PTR(SObject)> FindObjectByName( const std::string& anObjectName, const std::string& aComponentName ) = 0; virtual _PTR(SObject) FindObjectID(const std::string& anObjectID) = 0; virtual _PTR(SObject) CreateObjectID(const std::string& anObjectID) = 0; virtual _PTR(SObject) FindObjectIOR(const std::string& anObjectIOR) = 0; virtual _PTR(SObject) FindObjectByPath(const std::string& thePath) = 0; virtual std::string GetObjectPath(const _PTR(SObject)& theSO) = 0; virtual void SetContext(const std::string& thePath) = 0; virtual std::string GetContext() = 0; virtual std::vector GetObjectNames(const std::string& theContext) = 0; virtual std::vector GetDirectoryNames(const std::string& theContext) = 0; virtual std::vector GetFileNames(const std::string& theContext) = 0; virtual std::vector GetComponentNames(const std::string& theContext) = 0; virtual _PTR(ChildIterator) NewChildIterator(const _PTR(SObject)& theSO) = 0; virtual _PTR(SComponentIterator) NewComponentIterator() = 0; virtual _PTR(StudyBuilder) NewBuilder() = 0; virtual std::string Name() = 0; virtual void Name(const std::string& name) = 0; virtual bool IsSaved() = 0; virtual void IsSaved(bool save) = 0; virtual bool IsModified() = 0; virtual void Modified() = 0; virtual std::string URL() = 0; virtual void URL(const std::string& url) = 0; virtual int StudyId() = 0; virtual void StudyId(int id) = 0; virtual std::vector<_PTR(SObject)> FindDependances(const _PTR(SObject)& theSO) = 0; virtual _PTR(AttributeStudyProperties) GetProperties() = 0; virtual std::string GetLastModificationDate() = 0; virtual std::vector GetModificationsDate() = 0; virtual _PTR(UseCaseBuilder) GetUseCaseBuilder() = 0; virtual void Close() = 0; virtual void EnableUseCaseAutoFilling(bool isEnabled) = 0; virtual bool DumpStudy(const std::string& thePath, const std::string& theBaseName, bool isPublished, bool isMultiFile) = 0; virtual _PTR(AttributeParameter) GetCommonParameters(const std::string& theID, int theSavePoint) = 0; virtual _PTR(AttributeParameter) GetModuleParameters(const std::string& theID, const std::string& theModuleName, int theSavePoint) = 0; virtual void SetStudyLock(const std::string& theLockerID) = 0; virtual bool IsStudyLocked() = 0; virtual void UnLockStudy(const std::string& theLockerID) = 0; virtual std::vector GetLockerID() = 0; virtual void SetReal(const std::string& theVarName, const double theValue) = 0; virtual void SetInteger(const std::string& theVarName, const int theValue) = 0; virtual void SetBoolean(const std::string& theVarName, const bool theValue) = 0; virtual void SetString(const std::string& theVarName, const std::string& theValue) = 0; virtual void SetStringAsDouble(const std::string& theVarName, const double theValue) = 0; virtual double GetReal(const std::string& theVarName) = 0; virtual int GetInteger(const std::string& theVarName) = 0; virtual bool GetBoolean(const std::string& theVarName) = 0; virtual std::string GetString(const std::string& theVarName) = 0; virtual bool IsReal(const std::string& theVarName) = 0; virtual bool IsInteger(const std::string& theVarName) = 0; virtual bool IsBoolean(const std::string& theVarName) = 0; virtual bool IsString(const std::string& theVarName) = 0; virtual bool IsVariable(const std::string& theVarName) = 0; virtual std::vector GetVariableNames() = 0; virtual bool RemoveVariable(const std::string& theVarName) = 0; virtual bool RenameVariable(const std::string& theVarName, const std::string& theNewVarName) = 0; virtual bool IsVariableUsed(const std::string& theVarName) = 0; virtual std::vector< std::vector > ParseVariables(const std::string& theVars) = 0; virtual void attach(SALOMEDS::Observer_ptr theObserver,bool modify) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_StudyBuilder.hxx000077500000000000000000000067461177004724000252350ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_StudyBuilder.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSClient_STUDYBUILDER_H__ #define __SALOMEDSClient_STUDYBUILDER_H__ #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" #include "SALOMEDSClient_SComponent.hxx" #include "SALOMEDSClient_GenericAttribute.hxx" #include class SALOMEDSClient_StudyBuilder { public: virtual ~SALOMEDSClient_StudyBuilder() {} virtual _PTR(SComponent) NewComponent(const std::string& ComponentDataType) = 0; virtual void DefineComponentInstance (const _PTR(SComponent)&, const std::string& ComponentIOR) = 0; virtual void RemoveComponent(const _PTR(SComponent)& theSCO) = 0; virtual _PTR(SObject) NewObject(const _PTR(SObject)& theFatherObject) = 0; virtual _PTR(SObject) NewObjectToTag(const _PTR(SObject)& theFatherObject, int theTag) = 0; virtual void AddDirectory(const std::string& thePath) = 0; virtual void LoadWith(const _PTR(SComponent)& theSCO, const std::string& theIOR) = 0; virtual void Load(const _PTR(SObject)& theSCO) = 0; virtual void RemoveObject(const _PTR(SObject)& theSO) = 0; virtual void RemoveObjectWithChildren(const _PTR(SObject)& theSO) = 0; virtual _PTR(GenericAttribute) FindOrCreateAttribute(const _PTR(SObject)& theSO, const std::string& aTypeOfAttribute) = 0; virtual bool FindAttribute(const _PTR(SObject)& theSO, _PTR(GenericAttribute)& theAttribute, const std::string& aTypeOfAttribute) = 0; virtual void RemoveAttribute(const _PTR(SObject)& theSO, const std::string& aTypeOfAttribute) = 0; virtual void Addreference(const _PTR(SObject)& me, const _PTR(SObject)& thereferencedObject) = 0; virtual void RemoveReference(const _PTR(SObject)& me) = 0; virtual void SetGUID(const _PTR(SObject)& theSO, const std::string& theGUID) = 0; virtual bool IsGUID(const _PTR(SObject)& theSO, const std::string& theGUID) = 0; virtual void NewCommand() = 0; virtual void CommitCommand()= 0; virtual bool HasOpenCommand() = 0; virtual void AbortCommand() = 0; virtual void Undo() = 0; virtual void Redo() = 0; virtual bool GetAvailableUndos() = 0; virtual bool GetAvailableRedos() = 0; virtual int UndoLimit() = 0; virtual void UndoLimit(int theLimit) = 0; virtual void SetName(const _PTR(SObject)& theSO, const std::string& theValue) = 0; virtual void SetComment(const _PTR(SObject)& theSO, const std::string& theValue) = 0; virtual void SetIOR(const _PTR(SObject)& theSO, const std::string& theValue) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_StudyManager.hxx000077500000000000000000000044401177004724000252060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_StudyManager.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSClient_STUDYMANAGER_H__ #define __SALOMEDSClient_STUDYMANAGER_H__ #include #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_Study.hxx" class SALOMEDSClient_StudyManager { public: virtual ~SALOMEDSClient_StudyManager() {} virtual _PTR(Study) NewStudy(const std::string& study_name) = 0; virtual _PTR(Study) Open(const std::string& theStudyUrl) = 0; virtual void Close(const _PTR(Study)& theStudy) = 0; virtual bool Save(const _PTR(Study)& theStudy, bool theMultiFile) = 0; virtual bool SaveASCII(const _PTR(Study)& theStudy, bool theMultiFile) = 0; virtual bool SaveAs(const std::string& theUrl, const _PTR(Study)& theStudy, bool theMultiFile) = 0; virtual bool SaveAsASCII(const std::string& theUrl, const _PTR(Study)& theStudy, bool theMultiFile) = 0; virtual std::vector GetOpenStudies() = 0; virtual _PTR(Study) GetStudyByName(const std::string& theStudyName) = 0; virtual _PTR(Study) GetStudyByID(int theStudyID) = 0; virtual bool CanCopy(const _PTR(SObject)& theSO) = 0; virtual bool Copy(const _PTR(SObject)& theSO) = 0; virtual bool CanPaste(const _PTR(SObject)& theSO) = 0; virtual _PTR(SObject) Paste(const _PTR(SObject)& theSO) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_UseCaseBuilder.hxx000077500000000000000000000044741177004724000254510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_UseCaseBuilder.hxx // Author : Sergey RUIN // Module : SALOME #ifndef __SALOMEDSClient_USECaseBuilder_H__ #define __SALOMEDSClient_USECaseBuilder_H__ #include #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_UseCaseIterator.hxx" #include "SALOMEDSClient_SObject.hxx" class SALOMEDSClient_UseCaseBuilder { public: virtual ~SALOMEDSClient_UseCaseBuilder() {} virtual bool Append(const _PTR(SObject)& theObject) = 0; virtual bool Remove(const _PTR(SObject)& theObject) = 0; virtual bool AppendTo(const _PTR(SObject)& theFather, _PTR(SObject) theObject) = 0; virtual bool InsertBefore(const _PTR(SObject)& theFirst, _PTR(SObject) theNext) = 0; virtual bool SetCurrentObject(const _PTR(SObject)& theObject) = 0; virtual bool SetRootCurrent() = 0; virtual bool HasChildren(const _PTR(SObject)& theObject) = 0; virtual _PTR(SObject) GetFather(const _PTR(SObject)& theObject) = 0; virtual bool IsUseCase(const _PTR(SObject)& theObject) = 0; virtual bool IsUseCaseNode(const _PTR(SObject)& theObject) = 0; virtual bool SetName(const std::string& theName) = 0; virtual _PTR(SObject) GetCurrentObject() = 0; virtual std::string GetName() = 0; virtual _PTR(SObject) AddUseCase(const std::string& theName) = 0; virtual _PTR(UseCaseIterator) GetUseCaseIterator(const _PTR(SObject)& anObject) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_UseCaseIterator.hxx000077500000000000000000000026761177004724000256560ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSClient_UseCaseIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSClient_USECASEITERATOR_H__ #define __SALOMEDSClient_USECASEITERATOR_H__ #include "SALOMEDSClient_definitions.hxx" #include "SALOMEDSClient_SObject.hxx" class SALOMEDSClient_UseCaseIterator { public: virtual ~SALOMEDSClient_UseCaseIterator() {} virtual void Init(bool) = 0; virtual bool More() = 0; virtual void Next() = 0; virtual _PTR(SObject) Value() = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSClient/SALOMEDSClient_definitions.hxx000077500000000000000000000044361177004724000251230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef SALOMEDSCLIENT_DEF_HXX #define SALOMEDSCLIENT_DEF_HXX #ifdef WIN32 # if defined SALOMEDSCLIENT_EXPORTS || defined SalomeDSClient_EXPORTS # define SALOMEDSCLIENT_EXPORT __declspec( dllexport ) # else # define SALOMEDSCLIENT_EXPORT __declspec( dllimport ) # endif #else # define SALOMEDSCLIENT_EXPORT #endif #include template class clt_shared_ptr: public boost::shared_ptr { public: clt_shared_ptr() {} template explicit clt_shared_ptr(Y * p) { boost::shared_ptr::reset(p); } template clt_shared_ptr(clt_shared_ptr const & r): boost::shared_ptr(r,boost::detail::dynamic_cast_tag()) {} template clt_shared_ptr & operator=(clt_shared_ptr const & r) { clt_shared_ptr(r).swap(*this); return *this; } template clt_shared_ptr& operator()(Y * p) // Y must be complete { if(T* pt = dynamic_cast(p)) boost::shared_ptr::reset(pt); else boost::throw_exception(std::bad_cast()); return *this; } }; #define _PTR(Class) clt_shared_ptr #define _CAST(Class, shared_ptr_Obj) dynamic_cast(shared_ptr_Obj.get()) struct STextColor { double R; double G; double B; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/000077500000000000000000000000001177004724000171025ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMEDSImpl/Makefile.am000077500000000000000000000203101177004724000211350ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= \ SALOMEDSImpl_Attributes.hxx \ SALOMEDSImpl_SObject.hxx \ SALOMEDSImpl_SComponent.hxx \ SALOMEDSImpl_Driver.hxx \ SALOMEDSImpl_Callback.hxx \ SALOMEDSImpl_ChildIterator.hxx \ SALOMEDSImpl_GenericAttribute.hxx \ SALOMEDSImpl_AttributeIOR.hxx \ SALOMEDSImpl_AttributeExternalFileDef.hxx \ SALOMEDSImpl_AttributeFileType.hxx \ SALOMEDSImpl_AttributePersistentRef.hxx \ SALOMEDSImpl_AttributeSequenceOfReal.hxx \ SALOMEDSImpl_AttributeSequenceOfInteger.hxx \ SALOMEDSImpl_AttributeDrawable.hxx \ SALOMEDSImpl_AttributeSelectable.hxx \ SALOMEDSImpl_AttributeExpandable.hxx \ SALOMEDSImpl_AttributeOpened.hxx \ SALOMEDSImpl_AttributeFlags.hxx \ SALOMEDSImpl_AttributeGraphic.hxx \ SALOMEDSImpl_AttributeTextColor.hxx \ SALOMEDSImpl_AttributeTextHighlightColor.hxx \ SALOMEDSImpl_AttributePixMap.hxx \ SALOMEDSImpl_AttributeLocalID.hxx \ SALOMEDSImpl_AttributeTarget.hxx \ SALOMEDSImpl_AttributeTable.hxx \ SALOMEDSImpl_AttributeTableOfInteger.hxx \ SALOMEDSImpl_AttributeTableOfReal.hxx \ SALOMEDSImpl_AttributeTableOfString.hxx \ SALOMEDSImpl_AttributeStudyProperties.hxx \ SALOMEDSImpl_AttributePythonObject.hxx \ SALOMEDSImpl_AttributeReal.hxx \ SALOMEDSImpl_AttributeInteger.hxx \ SALOMEDSImpl_AttributeUserID.hxx \ SALOMEDSImpl_AttributeTreeNode.hxx \ SALOMEDSImpl_AttributeName.hxx \ SALOMEDSImpl_AttributeComment.hxx \ SALOMEDSImpl_AttributeReference.hxx \ SALOMEDSImpl_AttributeParameter.hxx \ SALOMEDSImpl_AttributeString.hxx \ SALOMEDSImpl_UseCaseBuilder.hxx \ SALOMEDSImpl_UseCaseIterator.hxx \ SALOMEDSImpl_SComponentIterator.hxx \ SALOMEDSImpl_StudyBuilder.hxx \ SALOMEDSImpl_Study.hxx \ SALOMEDSImpl_StudyManager.hxx \ SALOMEDSImpl_ChildNodeIterator.hxx \ SALOMEDSImpl_Defines.hxx \ SALOMEDSImpl_IParameters.hxx \ SALOMEDSImpl_TMPFile.hxx \ SALOMEDSImpl_GenericVariable.hxx \ SALOMEDSImpl_ScalarVariable.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../HDFPersist \ -I$(srcdir)/../DF \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ -I$(top_builddir) \ @HDF5_INCLUDES@ \ @BOOST_CPPFLAGS@ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../DF/libDF.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @HDF5_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSImpl.la libSalomeDSImpl_la_SOURCES =\ SALOMEDSImpl_Tool.cxx \ SALOMEDSImpl_Callback.cxx \ SALOMEDSImpl_StudyHandle.cxx \ SALOMEDSImpl_GenericAttribute.cxx \ SALOMEDSImpl_SObject.cxx \ SALOMEDSImpl_SComponent.cxx \ SALOMEDSImpl_ChildIterator.cxx \ SALOMEDSImpl_AttributeIOR.cxx \ SALOMEDSImpl_AttributeExternalFileDef.cxx \ SALOMEDSImpl_AttributeFileType.cxx \ SALOMEDSImpl_AttributePersistentRef.cxx \ SALOMEDSImpl_AttributeSequenceOfReal.cxx \ SALOMEDSImpl_AttributeSequenceOfInteger.cxx \ SALOMEDSImpl_AttributeDrawable.cxx \ SALOMEDSImpl_AttributeSelectable.cxx \ SALOMEDSImpl_AttributeExpandable.cxx \ SALOMEDSImpl_AttributeOpened.cxx \ SALOMEDSImpl_AttributeFlags.cxx \ SALOMEDSImpl_AttributeGraphic.cxx \ SALOMEDSImpl_AttributeTextColor.cxx \ SALOMEDSImpl_AttributeTextHighlightColor.cxx \ SALOMEDSImpl_AttributePixMap.cxx \ SALOMEDSImpl_AttributeLocalID.cxx \ SALOMEDSImpl_AttributeTarget.cxx \ SALOMEDSImpl_AttributeTableOfInteger.cxx \ SALOMEDSImpl_AttributeTableOfReal.cxx \ SALOMEDSImpl_AttributeTableOfString.cxx \ SALOMEDSImpl_AttributeStudyProperties.cxx \ SALOMEDSImpl_AttributePythonObject.cxx \ SALOMEDSImpl_AttributeReal.cxx \ SALOMEDSImpl_AttributeInteger.cxx \ SALOMEDSImpl_AttributeUserID.cxx \ SALOMEDSImpl_AttributeTreeNode.cxx \ SALOMEDSImpl_AttributeName.cxx \ SALOMEDSImpl_AttributeComment.cxx \ SALOMEDSImpl_AttributeReference.cxx \ SALOMEDSImpl_AttributeParameter.cxx \ SALOMEDSImpl_AttributeString.cxx \ SALOMEDSImpl_ChildNodeIterator.cxx \ SALOMEDSImpl_UseCaseBuilder.cxx \ SALOMEDSImpl_UseCaseIterator.cxx \ SALOMEDSImpl_SComponentIterator.cxx \ SALOMEDSImpl_StudyBuilder.cxx \ SALOMEDSImpl_Study.cxx \ SALOMEDSImpl_StudyManager.cxx \ SALOMEDSImpl_IParameters.cxx \ SALOMEDSImpl_TMPFile.cxx \ SALOMEDSImpl_GenericVariable.cxx \ SALOMEDSImpl_ScalarVariable.cxx \ \ SALOMEDSImpl_AttributeComment.hxx \ SALOMEDSImpl_AttributeDrawable.hxx \ SALOMEDSImpl_AttributeExpandable.hxx \ SALOMEDSImpl_AttributeExternalFileDef.hxx \ SALOMEDSImpl_AttributeFileType.hxx \ SALOMEDSImpl_AttributeFlags.hxx \ SALOMEDSImpl_AttributeGraphic.hxx \ SALOMEDSImpl_AttributeInteger.hxx \ SALOMEDSImpl_AttributeIOR.hxx \ SALOMEDSImpl_AttributeLocalID.hxx \ SALOMEDSImpl_AttributeName.hxx \ SALOMEDSImpl_AttributeOpened.hxx \ SALOMEDSImpl_AttributePersistentRef.hxx \ SALOMEDSImpl_AttributePixMap.hxx \ SALOMEDSImpl_AttributePythonObject.hxx \ SALOMEDSImpl_AttributeReal.hxx \ SALOMEDSImpl_AttributeReference.hxx \ SALOMEDSImpl_AttributeSelectable.hxx \ SALOMEDSImpl_AttributeSequenceOfInteger.hxx \ SALOMEDSImpl_AttributeSequenceOfReal.hxx \ SALOMEDSImpl_Attributes.hxx \ SALOMEDSImpl_AttributeStudyProperties.hxx \ SALOMEDSImpl_AttributeTable.hxx \ SALOMEDSImpl_AttributeTableOfInteger.hxx \ SALOMEDSImpl_AttributeTableOfReal.hxx \ SALOMEDSImpl_AttributeTableOfString.hxx \ SALOMEDSImpl_AttributeTarget.hxx \ SALOMEDSImpl_AttributeTextColor.hxx \ SALOMEDSImpl_AttributeTextHighlightColor.hxx \ SALOMEDSImpl_AttributeTreeNode.hxx \ SALOMEDSImpl_AttributeUserID.hxx \ SALOMEDSImpl_AttributeParameter.hxx \ SALOMEDSImpl_AttributeString.hxx \ SALOMEDSImpl_Callback.hxx \ SALOMEDSImpl_ChildIterator.hxx \ SALOMEDSImpl_ChildNodeIterator.hxx \ SALOMEDSImpl_Defines.hxx \ SALOMEDSImpl_Driver.hxx \ SALOMEDSImpl_GenericAttribute.hxx \ SALOMEDSImpl_SComponent.hxx \ SALOMEDSImpl_SComponentIterator.hxx \ SALOMEDSImpl_SObject.hxx \ SALOMEDSImpl_StudyBuilder.hxx \ SALOMEDSImpl_StudyHandle.hxx \ SALOMEDSImpl_Study.hxx \ SALOMEDSImpl_StudyManager.hxx \ SALOMEDSImpl_Tool.hxx \ SALOMEDSImpl_UseCaseBuilder.hxx \ SALOMEDSImpl_UseCaseIterator.hxx \ SALOMEDSImpl_GenericVariable.hxx \ SALOMEDSImpl_ScalarVariable.hxx libSalomeDSImpl_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeDSImpl_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeDSImpl_la_LIBADD = $(COMMON_LIBS) $(CORBA_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = testDS testDS_SOURCES = testDS.cxx testDS_CPPFLAGS = $(COMMON_CPPFLAGS) testDS_LDADD = libSalomeDSImpl.la ../DF/libDF.la \ $(COMMON_LIBS) $(CORBA_LIBS) salome-kernel-6.5.0/src/SALOMEDSImpl/Makefile.in000077500000000000000000003410001177004724000211500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = testDS$(EXEEXT) subdir = src/SALOMEDSImpl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la ../DF/libDF.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la am__DEPENDENCIES_2 = libSalomeDSImpl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) am_libSalomeDSImpl_la_OBJECTS = \ libSalomeDSImpl_la-SALOMEDSImpl_Tool.lo \ libSalomeDSImpl_la-SALOMEDSImpl_Callback.lo \ libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.lo \ libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.lo \ libSalomeDSImpl_la-SALOMEDSImpl_SObject.lo \ libSalomeDSImpl_la-SALOMEDSImpl_SComponent.lo \ libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.lo \ libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.lo \ libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.lo \ libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.lo \ libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.lo \ libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.lo \ libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.lo \ libSalomeDSImpl_la-SALOMEDSImpl_Study.lo \ libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.lo \ libSalomeDSImpl_la-SALOMEDSImpl_IParameters.lo \ libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.lo \ libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.lo \ libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.lo libSalomeDSImpl_la_OBJECTS = $(am_libSalomeDSImpl_la_OBJECTS) libSalomeDSImpl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSalomeDSImpl_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_testDS_OBJECTS = testDS-testDS.$(OBJEXT) testDS_OBJECTS = $(am_testDS_OBJECTS) testDS_DEPENDENCIES = libSalomeDSImpl.la ../DF/libDF.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeDSImpl_la_SOURCES) $(testDS_SOURCES) DIST_SOURCES = $(libSalomeDSImpl_la_SOURCES) $(testDS_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = \ SALOMEDSImpl_Attributes.hxx \ SALOMEDSImpl_SObject.hxx \ SALOMEDSImpl_SComponent.hxx \ SALOMEDSImpl_Driver.hxx \ SALOMEDSImpl_Callback.hxx \ SALOMEDSImpl_ChildIterator.hxx \ SALOMEDSImpl_GenericAttribute.hxx \ SALOMEDSImpl_AttributeIOR.hxx \ SALOMEDSImpl_AttributeExternalFileDef.hxx \ SALOMEDSImpl_AttributeFileType.hxx \ SALOMEDSImpl_AttributePersistentRef.hxx \ SALOMEDSImpl_AttributeSequenceOfReal.hxx \ SALOMEDSImpl_AttributeSequenceOfInteger.hxx \ SALOMEDSImpl_AttributeDrawable.hxx \ SALOMEDSImpl_AttributeSelectable.hxx \ SALOMEDSImpl_AttributeExpandable.hxx \ SALOMEDSImpl_AttributeOpened.hxx \ SALOMEDSImpl_AttributeFlags.hxx \ SALOMEDSImpl_AttributeGraphic.hxx \ SALOMEDSImpl_AttributeTextColor.hxx \ SALOMEDSImpl_AttributeTextHighlightColor.hxx \ SALOMEDSImpl_AttributePixMap.hxx \ SALOMEDSImpl_AttributeLocalID.hxx \ SALOMEDSImpl_AttributeTarget.hxx \ SALOMEDSImpl_AttributeTable.hxx \ SALOMEDSImpl_AttributeTableOfInteger.hxx \ SALOMEDSImpl_AttributeTableOfReal.hxx \ SALOMEDSImpl_AttributeTableOfString.hxx \ SALOMEDSImpl_AttributeStudyProperties.hxx \ SALOMEDSImpl_AttributePythonObject.hxx \ SALOMEDSImpl_AttributeReal.hxx \ SALOMEDSImpl_AttributeInteger.hxx \ SALOMEDSImpl_AttributeUserID.hxx \ SALOMEDSImpl_AttributeTreeNode.hxx \ SALOMEDSImpl_AttributeName.hxx \ SALOMEDSImpl_AttributeComment.hxx \ SALOMEDSImpl_AttributeReference.hxx \ SALOMEDSImpl_AttributeParameter.hxx \ SALOMEDSImpl_AttributeString.hxx \ SALOMEDSImpl_UseCaseBuilder.hxx \ SALOMEDSImpl_UseCaseIterator.hxx \ SALOMEDSImpl_SComponentIterator.hxx \ SALOMEDSImpl_StudyBuilder.hxx \ SALOMEDSImpl_Study.hxx \ SALOMEDSImpl_StudyManager.hxx \ SALOMEDSImpl_ChildNodeIterator.hxx \ SALOMEDSImpl_Defines.hxx \ SALOMEDSImpl_IParameters.hxx \ SALOMEDSImpl_TMPFile.hxx \ SALOMEDSImpl_GenericVariable.hxx \ SALOMEDSImpl_ScalarVariable.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../HDFPersist \ -I$(srcdir)/../DF \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ -I$(top_builddir) \ @HDF5_INCLUDES@ \ @BOOST_CPPFLAGS@ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Basics/libSALOMEBasics.la \ ../HDFPersist/libSalomeHDFPersist.la \ ../DF/libDF.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @HDF5_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeDSImpl.la libSalomeDSImpl_la_SOURCES = \ SALOMEDSImpl_Tool.cxx \ SALOMEDSImpl_Callback.cxx \ SALOMEDSImpl_StudyHandle.cxx \ SALOMEDSImpl_GenericAttribute.cxx \ SALOMEDSImpl_SObject.cxx \ SALOMEDSImpl_SComponent.cxx \ SALOMEDSImpl_ChildIterator.cxx \ SALOMEDSImpl_AttributeIOR.cxx \ SALOMEDSImpl_AttributeExternalFileDef.cxx \ SALOMEDSImpl_AttributeFileType.cxx \ SALOMEDSImpl_AttributePersistentRef.cxx \ SALOMEDSImpl_AttributeSequenceOfReal.cxx \ SALOMEDSImpl_AttributeSequenceOfInteger.cxx \ SALOMEDSImpl_AttributeDrawable.cxx \ SALOMEDSImpl_AttributeSelectable.cxx \ SALOMEDSImpl_AttributeExpandable.cxx \ SALOMEDSImpl_AttributeOpened.cxx \ SALOMEDSImpl_AttributeFlags.cxx \ SALOMEDSImpl_AttributeGraphic.cxx \ SALOMEDSImpl_AttributeTextColor.cxx \ SALOMEDSImpl_AttributeTextHighlightColor.cxx \ SALOMEDSImpl_AttributePixMap.cxx \ SALOMEDSImpl_AttributeLocalID.cxx \ SALOMEDSImpl_AttributeTarget.cxx \ SALOMEDSImpl_AttributeTableOfInteger.cxx \ SALOMEDSImpl_AttributeTableOfReal.cxx \ SALOMEDSImpl_AttributeTableOfString.cxx \ SALOMEDSImpl_AttributeStudyProperties.cxx \ SALOMEDSImpl_AttributePythonObject.cxx \ SALOMEDSImpl_AttributeReal.cxx \ SALOMEDSImpl_AttributeInteger.cxx \ SALOMEDSImpl_AttributeUserID.cxx \ SALOMEDSImpl_AttributeTreeNode.cxx \ SALOMEDSImpl_AttributeName.cxx \ SALOMEDSImpl_AttributeComment.cxx \ SALOMEDSImpl_AttributeReference.cxx \ SALOMEDSImpl_AttributeParameter.cxx \ SALOMEDSImpl_AttributeString.cxx \ SALOMEDSImpl_ChildNodeIterator.cxx \ SALOMEDSImpl_UseCaseBuilder.cxx \ SALOMEDSImpl_UseCaseIterator.cxx \ SALOMEDSImpl_SComponentIterator.cxx \ SALOMEDSImpl_StudyBuilder.cxx \ SALOMEDSImpl_Study.cxx \ SALOMEDSImpl_StudyManager.cxx \ SALOMEDSImpl_IParameters.cxx \ SALOMEDSImpl_TMPFile.cxx \ SALOMEDSImpl_GenericVariable.cxx \ SALOMEDSImpl_ScalarVariable.cxx \ \ SALOMEDSImpl_AttributeComment.hxx \ SALOMEDSImpl_AttributeDrawable.hxx \ SALOMEDSImpl_AttributeExpandable.hxx \ SALOMEDSImpl_AttributeExternalFileDef.hxx \ SALOMEDSImpl_AttributeFileType.hxx \ SALOMEDSImpl_AttributeFlags.hxx \ SALOMEDSImpl_AttributeGraphic.hxx \ SALOMEDSImpl_AttributeInteger.hxx \ SALOMEDSImpl_AttributeIOR.hxx \ SALOMEDSImpl_AttributeLocalID.hxx \ SALOMEDSImpl_AttributeName.hxx \ SALOMEDSImpl_AttributeOpened.hxx \ SALOMEDSImpl_AttributePersistentRef.hxx \ SALOMEDSImpl_AttributePixMap.hxx \ SALOMEDSImpl_AttributePythonObject.hxx \ SALOMEDSImpl_AttributeReal.hxx \ SALOMEDSImpl_AttributeReference.hxx \ SALOMEDSImpl_AttributeSelectable.hxx \ SALOMEDSImpl_AttributeSequenceOfInteger.hxx \ SALOMEDSImpl_AttributeSequenceOfReal.hxx \ SALOMEDSImpl_Attributes.hxx \ SALOMEDSImpl_AttributeStudyProperties.hxx \ SALOMEDSImpl_AttributeTable.hxx \ SALOMEDSImpl_AttributeTableOfInteger.hxx \ SALOMEDSImpl_AttributeTableOfReal.hxx \ SALOMEDSImpl_AttributeTableOfString.hxx \ SALOMEDSImpl_AttributeTarget.hxx \ SALOMEDSImpl_AttributeTextColor.hxx \ SALOMEDSImpl_AttributeTextHighlightColor.hxx \ SALOMEDSImpl_AttributeTreeNode.hxx \ SALOMEDSImpl_AttributeUserID.hxx \ SALOMEDSImpl_AttributeParameter.hxx \ SALOMEDSImpl_AttributeString.hxx \ SALOMEDSImpl_Callback.hxx \ SALOMEDSImpl_ChildIterator.hxx \ SALOMEDSImpl_ChildNodeIterator.hxx \ SALOMEDSImpl_Defines.hxx \ SALOMEDSImpl_Driver.hxx \ SALOMEDSImpl_GenericAttribute.hxx \ SALOMEDSImpl_SComponent.hxx \ SALOMEDSImpl_SComponentIterator.hxx \ SALOMEDSImpl_SObject.hxx \ SALOMEDSImpl_StudyBuilder.hxx \ SALOMEDSImpl_StudyHandle.hxx \ SALOMEDSImpl_Study.hxx \ SALOMEDSImpl_StudyManager.hxx \ SALOMEDSImpl_Tool.hxx \ SALOMEDSImpl_UseCaseBuilder.hxx \ SALOMEDSImpl_UseCaseIterator.hxx \ SALOMEDSImpl_GenericVariable.hxx \ SALOMEDSImpl_ScalarVariable.hxx libSalomeDSImpl_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeDSImpl_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeDSImpl_la_LIBADD = $(COMMON_LIBS) $(CORBA_LIBS) testDS_SOURCES = testDS.cxx testDS_CPPFLAGS = $(COMMON_CPPFLAGS) testDS_LDADD = libSalomeDSImpl.la ../DF/libDF.la \ $(COMMON_LIBS) $(CORBA_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMEDSImpl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMEDSImpl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeDSImpl.la: $(libSalomeDSImpl_la_OBJECTS) $(libSalomeDSImpl_la_DEPENDENCIES) $(libSalomeDSImpl_la_LINK) -rpath $(libdir) $(libSalomeDSImpl_la_OBJECTS) $(libSalomeDSImpl_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list testDS$(EXEEXT): $(testDS_OBJECTS) $(testDS_DEPENDENCIES) @rm -f testDS$(EXEEXT) $(CXXLINK) $(testDS_OBJECTS) $(testDS_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Callback.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_IParameters.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Study.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Tool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDS-testDS.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeDSImpl_la-SALOMEDSImpl_Tool.lo: SALOMEDSImpl_Tool.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_Tool.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Tool.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_Tool.lo `test -f 'SALOMEDSImpl_Tool.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_Tool.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Tool.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Tool.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_Tool.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_Tool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_Tool.lo `test -f 'SALOMEDSImpl_Tool.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_Tool.cxx libSalomeDSImpl_la-SALOMEDSImpl_Callback.lo: SALOMEDSImpl_Callback.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_Callback.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Callback.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_Callback.lo `test -f 'SALOMEDSImpl_Callback.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_Callback.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Callback.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Callback.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_Callback.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_Callback.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_Callback.lo `test -f 'SALOMEDSImpl_Callback.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_Callback.cxx libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.lo: SALOMEDSImpl_StudyHandle.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.lo `test -f 'SALOMEDSImpl_StudyHandle.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_StudyHandle.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_StudyHandle.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_StudyHandle.lo `test -f 'SALOMEDSImpl_StudyHandle.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_StudyHandle.cxx libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.lo: SALOMEDSImpl_GenericAttribute.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.lo `test -f 'SALOMEDSImpl_GenericAttribute.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_GenericAttribute.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_GenericAttribute.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_GenericAttribute.lo `test -f 'SALOMEDSImpl_GenericAttribute.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_GenericAttribute.cxx libSalomeDSImpl_la-SALOMEDSImpl_SObject.lo: SALOMEDSImpl_SObject.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_SObject.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SObject.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_SObject.lo `test -f 'SALOMEDSImpl_SObject.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_SObject.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SObject.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SObject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_SObject.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_SObject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_SObject.lo `test -f 'SALOMEDSImpl_SObject.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_SObject.cxx libSalomeDSImpl_la-SALOMEDSImpl_SComponent.lo: SALOMEDSImpl_SComponent.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_SComponent.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponent.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_SComponent.lo `test -f 'SALOMEDSImpl_SComponent.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_SComponent.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponent.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponent.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_SComponent.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_SComponent.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_SComponent.lo `test -f 'SALOMEDSImpl_SComponent.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_SComponent.cxx libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.lo: SALOMEDSImpl_ChildIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.lo `test -f 'SALOMEDSImpl_ChildIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_ChildIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_ChildIterator.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_ChildIterator.lo `test -f 'SALOMEDSImpl_ChildIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_ChildIterator.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.lo: SALOMEDSImpl_AttributeIOR.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.lo `test -f 'SALOMEDSImpl_AttributeIOR.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeIOR.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeIOR.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeIOR.lo `test -f 'SALOMEDSImpl_AttributeIOR.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeIOR.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.lo: SALOMEDSImpl_AttributeExternalFileDef.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.lo `test -f 'SALOMEDSImpl_AttributeExternalFileDef.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeExternalFileDef.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeExternalFileDef.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeExternalFileDef.lo `test -f 'SALOMEDSImpl_AttributeExternalFileDef.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeExternalFileDef.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.lo: SALOMEDSImpl_AttributeFileType.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.lo `test -f 'SALOMEDSImpl_AttributeFileType.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeFileType.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeFileType.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeFileType.lo `test -f 'SALOMEDSImpl_AttributeFileType.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeFileType.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.lo: SALOMEDSImpl_AttributePersistentRef.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.lo `test -f 'SALOMEDSImpl_AttributePersistentRef.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributePersistentRef.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributePersistentRef.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributePersistentRef.lo `test -f 'SALOMEDSImpl_AttributePersistentRef.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributePersistentRef.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.lo: SALOMEDSImpl_AttributeSequenceOfReal.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.lo `test -f 'SALOMEDSImpl_AttributeSequenceOfReal.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeSequenceOfReal.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeSequenceOfReal.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfReal.lo `test -f 'SALOMEDSImpl_AttributeSequenceOfReal.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeSequenceOfReal.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.lo: SALOMEDSImpl_AttributeSequenceOfInteger.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.lo `test -f 'SALOMEDSImpl_AttributeSequenceOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeSequenceOfInteger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeSequenceOfInteger.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeSequenceOfInteger.lo `test -f 'SALOMEDSImpl_AttributeSequenceOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeSequenceOfInteger.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.lo: SALOMEDSImpl_AttributeDrawable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.lo `test -f 'SALOMEDSImpl_AttributeDrawable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeDrawable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeDrawable.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeDrawable.lo `test -f 'SALOMEDSImpl_AttributeDrawable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeDrawable.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.lo: SALOMEDSImpl_AttributeSelectable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.lo `test -f 'SALOMEDSImpl_AttributeSelectable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeSelectable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeSelectable.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeSelectable.lo `test -f 'SALOMEDSImpl_AttributeSelectable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeSelectable.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.lo: SALOMEDSImpl_AttributeExpandable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.lo `test -f 'SALOMEDSImpl_AttributeExpandable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeExpandable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeExpandable.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeExpandable.lo `test -f 'SALOMEDSImpl_AttributeExpandable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeExpandable.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.lo: SALOMEDSImpl_AttributeOpened.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.lo `test -f 'SALOMEDSImpl_AttributeOpened.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeOpened.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeOpened.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeOpened.lo `test -f 'SALOMEDSImpl_AttributeOpened.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeOpened.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.lo: SALOMEDSImpl_AttributeFlags.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.lo `test -f 'SALOMEDSImpl_AttributeFlags.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeFlags.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeFlags.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeFlags.lo `test -f 'SALOMEDSImpl_AttributeFlags.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeFlags.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.lo: SALOMEDSImpl_AttributeGraphic.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.lo `test -f 'SALOMEDSImpl_AttributeGraphic.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeGraphic.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeGraphic.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeGraphic.lo `test -f 'SALOMEDSImpl_AttributeGraphic.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeGraphic.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.lo: SALOMEDSImpl_AttributeTextColor.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.lo `test -f 'SALOMEDSImpl_AttributeTextColor.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTextColor.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTextColor.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextColor.lo `test -f 'SALOMEDSImpl_AttributeTextColor.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTextColor.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.lo: SALOMEDSImpl_AttributeTextHighlightColor.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.lo `test -f 'SALOMEDSImpl_AttributeTextHighlightColor.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTextHighlightColor.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTextHighlightColor.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTextHighlightColor.lo `test -f 'SALOMEDSImpl_AttributeTextHighlightColor.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTextHighlightColor.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.lo: SALOMEDSImpl_AttributePixMap.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.lo `test -f 'SALOMEDSImpl_AttributePixMap.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributePixMap.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributePixMap.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributePixMap.lo `test -f 'SALOMEDSImpl_AttributePixMap.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributePixMap.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.lo: SALOMEDSImpl_AttributeLocalID.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.lo `test -f 'SALOMEDSImpl_AttributeLocalID.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeLocalID.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeLocalID.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeLocalID.lo `test -f 'SALOMEDSImpl_AttributeLocalID.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeLocalID.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.lo: SALOMEDSImpl_AttributeTarget.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.lo `test -f 'SALOMEDSImpl_AttributeTarget.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTarget.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTarget.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTarget.lo `test -f 'SALOMEDSImpl_AttributeTarget.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTarget.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.lo: SALOMEDSImpl_AttributeTableOfInteger.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.lo `test -f 'SALOMEDSImpl_AttributeTableOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTableOfInteger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTableOfInteger.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfInteger.lo `test -f 'SALOMEDSImpl_AttributeTableOfInteger.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTableOfInteger.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.lo: SALOMEDSImpl_AttributeTableOfReal.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.lo `test -f 'SALOMEDSImpl_AttributeTableOfReal.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTableOfReal.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTableOfReal.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfReal.lo `test -f 'SALOMEDSImpl_AttributeTableOfReal.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTableOfReal.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.lo: SALOMEDSImpl_AttributeTableOfString.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.lo `test -f 'SALOMEDSImpl_AttributeTableOfString.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTableOfString.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTableOfString.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTableOfString.lo `test -f 'SALOMEDSImpl_AttributeTableOfString.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTableOfString.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.lo: SALOMEDSImpl_AttributeStudyProperties.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.lo `test -f 'SALOMEDSImpl_AttributeStudyProperties.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeStudyProperties.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeStudyProperties.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeStudyProperties.lo `test -f 'SALOMEDSImpl_AttributeStudyProperties.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeStudyProperties.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.lo: SALOMEDSImpl_AttributePythonObject.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.lo `test -f 'SALOMEDSImpl_AttributePythonObject.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributePythonObject.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributePythonObject.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributePythonObject.lo `test -f 'SALOMEDSImpl_AttributePythonObject.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributePythonObject.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.lo: SALOMEDSImpl_AttributeReal.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.lo `test -f 'SALOMEDSImpl_AttributeReal.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeReal.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeReal.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeReal.lo `test -f 'SALOMEDSImpl_AttributeReal.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeReal.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.lo: SALOMEDSImpl_AttributeInteger.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.lo `test -f 'SALOMEDSImpl_AttributeInteger.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeInteger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeInteger.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeInteger.lo `test -f 'SALOMEDSImpl_AttributeInteger.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeInteger.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.lo: SALOMEDSImpl_AttributeUserID.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.lo `test -f 'SALOMEDSImpl_AttributeUserID.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeUserID.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeUserID.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeUserID.lo `test -f 'SALOMEDSImpl_AttributeUserID.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeUserID.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.lo: SALOMEDSImpl_AttributeTreeNode.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.lo `test -f 'SALOMEDSImpl_AttributeTreeNode.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTreeNode.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeTreeNode.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeTreeNode.lo `test -f 'SALOMEDSImpl_AttributeTreeNode.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeTreeNode.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.lo: SALOMEDSImpl_AttributeName.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.lo `test -f 'SALOMEDSImpl_AttributeName.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeName.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeName.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeName.lo `test -f 'SALOMEDSImpl_AttributeName.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeName.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.lo: SALOMEDSImpl_AttributeComment.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.lo `test -f 'SALOMEDSImpl_AttributeComment.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeComment.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeComment.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeComment.lo `test -f 'SALOMEDSImpl_AttributeComment.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeComment.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.lo: SALOMEDSImpl_AttributeReference.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.lo `test -f 'SALOMEDSImpl_AttributeReference.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeReference.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeReference.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeReference.lo `test -f 'SALOMEDSImpl_AttributeReference.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeReference.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.lo: SALOMEDSImpl_AttributeParameter.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.lo `test -f 'SALOMEDSImpl_AttributeParameter.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeParameter.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeParameter.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeParameter.lo `test -f 'SALOMEDSImpl_AttributeParameter.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeParameter.cxx libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.lo: SALOMEDSImpl_AttributeString.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.lo `test -f 'SALOMEDSImpl_AttributeString.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeString.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_AttributeString.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_AttributeString.lo `test -f 'SALOMEDSImpl_AttributeString.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_AttributeString.cxx libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.lo: SALOMEDSImpl_ChildNodeIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.lo `test -f 'SALOMEDSImpl_ChildNodeIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_ChildNodeIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_ChildNodeIterator.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_ChildNodeIterator.lo `test -f 'SALOMEDSImpl_ChildNodeIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_ChildNodeIterator.cxx libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.lo: SALOMEDSImpl_UseCaseBuilder.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.lo `test -f 'SALOMEDSImpl_UseCaseBuilder.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_UseCaseBuilder.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_UseCaseBuilder.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_UseCaseBuilder.lo `test -f 'SALOMEDSImpl_UseCaseBuilder.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_UseCaseBuilder.cxx libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.lo: SALOMEDSImpl_UseCaseIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.lo `test -f 'SALOMEDSImpl_UseCaseIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_UseCaseIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_UseCaseIterator.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_UseCaseIterator.lo `test -f 'SALOMEDSImpl_UseCaseIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_UseCaseIterator.cxx libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.lo: SALOMEDSImpl_SComponentIterator.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.lo `test -f 'SALOMEDSImpl_SComponentIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_SComponentIterator.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_SComponentIterator.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_SComponentIterator.lo `test -f 'SALOMEDSImpl_SComponentIterator.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_SComponentIterator.cxx libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.lo: SALOMEDSImpl_StudyBuilder.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.lo `test -f 'SALOMEDSImpl_StudyBuilder.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_StudyBuilder.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_StudyBuilder.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_StudyBuilder.lo `test -f 'SALOMEDSImpl_StudyBuilder.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_StudyBuilder.cxx libSalomeDSImpl_la-SALOMEDSImpl_Study.lo: SALOMEDSImpl_Study.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_Study.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Study.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_Study.lo `test -f 'SALOMEDSImpl_Study.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_Study.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Study.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_Study.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_Study.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_Study.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_Study.lo `test -f 'SALOMEDSImpl_Study.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_Study.cxx libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.lo: SALOMEDSImpl_StudyManager.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.lo `test -f 'SALOMEDSImpl_StudyManager.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_StudyManager.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_StudyManager.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_StudyManager.lo `test -f 'SALOMEDSImpl_StudyManager.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_StudyManager.cxx libSalomeDSImpl_la-SALOMEDSImpl_IParameters.lo: SALOMEDSImpl_IParameters.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_IParameters.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_IParameters.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_IParameters.lo `test -f 'SALOMEDSImpl_IParameters.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_IParameters.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_IParameters.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_IParameters.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_IParameters.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_IParameters.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_IParameters.lo `test -f 'SALOMEDSImpl_IParameters.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_IParameters.cxx libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.lo: SALOMEDSImpl_TMPFile.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.lo `test -f 'SALOMEDSImpl_TMPFile.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_TMPFile.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_TMPFile.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_TMPFile.lo `test -f 'SALOMEDSImpl_TMPFile.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_TMPFile.cxx libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.lo: SALOMEDSImpl_GenericVariable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.lo `test -f 'SALOMEDSImpl_GenericVariable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_GenericVariable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_GenericVariable.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_GenericVariable.lo `test -f 'SALOMEDSImpl_GenericVariable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_GenericVariable.cxx libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.lo: SALOMEDSImpl_ScalarVariable.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.lo -MD -MP -MF $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.Tpo -c -o libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.lo `test -f 'SALOMEDSImpl_ScalarVariable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_ScalarVariable.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.Tpo $(DEPDIR)/libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImpl_ScalarVariable.cxx' object='libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeDSImpl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeDSImpl_la-SALOMEDSImpl_ScalarVariable.lo `test -f 'SALOMEDSImpl_ScalarVariable.cxx' || echo '$(srcdir)/'`SALOMEDSImpl_ScalarVariable.cxx testDS-testDS.o: testDS.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testDS-testDS.o -MD -MP -MF $(DEPDIR)/testDS-testDS.Tpo -c -o testDS-testDS.o `test -f 'testDS.cxx' || echo '$(srcdir)/'`testDS.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/testDS-testDS.Tpo $(DEPDIR)/testDS-testDS.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='testDS.cxx' object='testDS-testDS.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testDS-testDS.o `test -f 'testDS.cxx' || echo '$(srcdir)/'`testDS.cxx testDS-testDS.obj: testDS.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testDS-testDS.obj -MD -MP -MF $(DEPDIR)/testDS-testDS.Tpo -c -o testDS-testDS.obj `if test -f 'testDS.cxx'; then $(CYGPATH_W) 'testDS.cxx'; else $(CYGPATH_W) '$(srcdir)/testDS.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/testDS-testDS.Tpo $(DEPDIR)/testDS-testDS.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='testDS.cxx' object='testDS-testDS.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testDS_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testDS-testDS.obj `if test -f 'testDS.cxx'; then $(CYGPATH_W) 'testDS.cxx'; else $(CYGPATH_W) '$(srcdir)/testDS.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeComment.cxx000077500000000000000000000067261177004724000252430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeComment.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeComment.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeComment::GetID () { static std::string CommentID ("7AF2F7CC-1CA2-4476-BE95-8ACC996BC7B9"); return CommentID; } SALOMEDSImpl_AttributeComment* SALOMEDSImpl_AttributeComment::Set (const DF_Label& L, const std::string& Val) { SALOMEDSImpl_AttributeComment* A = NULL; if (!(A=(SALOMEDSImpl_AttributeComment*)L.FindAttribute(SALOMEDSImpl_AttributeComment::GetID()))) { A = new SALOMEDSImpl_AttributeComment(); L.AddAttribute(A); } A->SetValue(Val); return A; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeComment::SetValue (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeComment::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeComment::NewEmpty () const { return new SALOMEDSImpl_AttributeComment(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeComment::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeComment::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeComment.hxx000077500000000000000000000040431177004724000252360ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeComment_HeaderFile #define _SALOMEDSImpl_AttributeComment_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeComment : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: static const std::string& GetID() ; SALOMEDSImpl_AttributeComment() :SALOMEDSImpl_GenericAttribute("AttributeComment") {} static SALOMEDSImpl_AttributeComment* Set(const DF_Label& L, const std::string& Val); void SetValue (const std::string& S); std::string Value() const { return myString; } virtual std::string Save() { return myString; } virtual void Load(const std::string& theValue) { myString = theValue; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeComment() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeDrawable.cxx000077500000000000000000000077201177004724000253550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeDrawable.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeDrawable.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeDrawable::GetID () { static std::string SALOMEDSImpl_AttributeDrawableID ("12837184-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeDrawableID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeDrawable* SALOMEDSImpl_AttributeDrawable::Set (const DF_Label& L, const int value) { SALOMEDSImpl_AttributeDrawable* A = NULL; if (!(A=(SALOMEDSImpl_AttributeDrawable*)L.FindAttribute(SALOMEDSImpl_AttributeDrawable::GetID()))) { A = new SALOMEDSImpl_AttributeDrawable(); L.AddAttribute(A); } A->SetDrawable (value); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeDrawable::SALOMEDSImpl_AttributeDrawable() :SALOMEDSImpl_GenericAttribute("AttributeDrawable") { myValue = 0; } //======================================================================= //function : SetDrawable //purpose : //======================================================================= void SALOMEDSImpl_AttributeDrawable::SetDrawable(const int theValue) { CheckLocked(); Backup(); (theValue!=0)?myValue=1:myValue=0; SetModifyFlag(); } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeDrawable::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeDrawable::NewEmpty () const { return new SALOMEDSImpl_AttributeDrawable(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeDrawable::Restore(DF_Attribute* with) { myValue = dynamic_cast(with)->IsDrawable (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeDrawable::Paste (DF_Attribute* into) { dynamic_cast(into)->SetDrawable (myValue); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeDrawable.hxx000077500000000000000000000040271177004724000253570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeDrawable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeDrawable_HeaderFile #define _SALOMEDSImpl_AttributeDrawable_HeaderFile #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeDrawable : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: virtual std::string Save() { return (myValue == 0)?(char*)"0":(char*)"1"; } virtual void Load(const std::string& theValue) { (theValue == "0")?myValue=0:myValue=1; } static const std::string& GetID() ; static SALOMEDSImpl_AttributeDrawable* Set(const DF_Label& label,const int value) ; void SetDrawable(const int theValue); int IsDrawable() const { return myValue; } SALOMEDSImpl_AttributeDrawable(); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeDrawable() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeExpandable.cxx000077500000000000000000000100671177004724000256750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeExpandable.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeExpandable.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeExpandable::GetID () { static std::string SALOMEDSImpl_AttributeExpandableID ("12837185-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeExpandableID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeExpandable* SALOMEDSImpl_AttributeExpandable::Set (const DF_Label& L, const int value) { SALOMEDSImpl_AttributeExpandable* A = NULL; if (!(A=(SALOMEDSImpl_AttributeExpandable*)L.FindAttribute(SALOMEDSImpl_AttributeExpandable::GetID()))) { A = new SALOMEDSImpl_AttributeExpandable(); L.AddAttribute(A); } A->SetExpandable(value); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeExpandable::SALOMEDSImpl_AttributeExpandable() :SALOMEDSImpl_GenericAttribute("AttributeExpandable") { myValue = 1; } //======================================================================= //function : SetExpandable //purpose : //======================================================================= void SALOMEDSImpl_AttributeExpandable::SetExpandable(const int theValue) { CheckLocked(); Backup(); (theValue!=0)?myValue=1:myValue=0; SetModifyFlag(); //VSR: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeExpandable::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeExpandable::NewEmpty () const { return new SALOMEDSImpl_AttributeExpandable(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeExpandable::Restore(DF_Attribute* with) { myValue = dynamic_cast(with)->IsExpandable (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeExpandable::Paste (DF_Attribute* into) { dynamic_cast(into)->SetExpandable (myValue); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeExpandable.hxx000077500000000000000000000040511177004724000256760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeExpandable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeExpandable_HeaderFile #define _SALOMEDSImpl_AttributeExpandable_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeExpandable : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: virtual std::string Save() { return (myValue == 0)?(char*)"0":(char*)"1"; } virtual void Load(const std::string& theValue) { (theValue == "0")?myValue=0:myValue=1; } static const std::string& GetID() ; static SALOMEDSImpl_AttributeExpandable* Set(const DF_Label& label,const int value) ; SALOMEDSImpl_AttributeExpandable(); void SetExpandable(const int value); int IsExpandable() const { return myValue; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeExpandable() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeExternalFileDef.cxx000077500000000000000000000102051177004724000266250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeExternalFileDef.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeExternalFileDef.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeExternalFileDef::GetID () { static std::string SALOMEDSImpl_AttributeExternalFileDefID ("7123AD4C-ACDB-4e3a-8FDC-70EA164D2CBE"); return SALOMEDSImpl_AttributeExternalFileDefID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeExternalFileDef* SALOMEDSImpl_AttributeExternalFileDef::Set (const DF_Label& L, const std::string& S) { SALOMEDSImpl_AttributeExternalFileDef* A = NULL; if (!(A=(SALOMEDSImpl_AttributeExternalFileDef*)L.FindAttribute(SALOMEDSImpl_AttributeExternalFileDef::GetID()))) { A = new SALOMEDSImpl_AttributeExternalFileDef(); L.AddAttribute(A); } A->SetValue (S); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeExternalFileDef::SALOMEDSImpl_AttributeExternalFileDef() :SALOMEDSImpl_GenericAttribute("AttributeExternalFileDef") { } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeExternalFileDef::SetValue (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeExternalFileDef::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeExternalFileDef::NewEmpty () const { return new SALOMEDSImpl_AttributeExternalFileDef(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeExternalFileDef::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeExternalFileDef::Paste (DF_Attribute* into) { SALOMEDSImpl_AttributeExternalFileDef* anAttr = dynamic_cast(into); anAttr->SetValue(myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeExternalFileDef.hxx000077500000000000000000000037141177004724000266410ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOMEDSImpl_AttributeExternalFileDef_HeaderFile #define _SALOMEDSImpl_AttributeExternalFileDef_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeExternalFileDef : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: static const std::string& GetID() ; static SALOMEDSImpl_AttributeExternalFileDef* Set(const DF_Label& label, const std::string& Name); SALOMEDSImpl_AttributeExternalFileDef(); void SetValue(const std::string& value); std::string Value() const { return myString; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeExternalFileDef() {} virtual std::string Save() { return myString; } virtual void Load(const std::string& theValue) { myString = theValue; } }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeFileType.cxx000077500000000000000000000077611177004724000253620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeFileType.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeFileType.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeFileType::GetID () { static std::string SALOMEDSImpl_AttributeFileTypeID ("0181B525-3F15-4ab2-9DE3-5E2F54B5F340"); return SALOMEDSImpl_AttributeFileTypeID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeFileType* SALOMEDSImpl_AttributeFileType::Set (const DF_Label& L, const std::string& S) { SALOMEDSImpl_AttributeFileType* A = NULL; if (!(A=(SALOMEDSImpl_AttributeFileType*)L.FindAttribute(SALOMEDSImpl_AttributeFileType::GetID()))) { A = new SALOMEDSImpl_AttributeFileType(); L.AddAttribute(A); } A->SetValue (S); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeFileType::SALOMEDSImpl_AttributeFileType() :SALOMEDSImpl_GenericAttribute("AttributeFileType") { } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeFileType::SetValue (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeFileType::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeFileType::NewEmpty () const { return new SALOMEDSImpl_AttributeFileType(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeFileType::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeFileType::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue (myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeFileType.hxx000077500000000000000000000036561177004724000253660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOMEDSImpl_AttributeFileType_HeaderFile #define _SALOMEDSImpl_AttributeFileType_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeFileType : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: static const std::string& GetID() ; static SALOMEDSImpl_AttributeFileType* Set(const DF_Label& label, const std::string& Name) ; SALOMEDSImpl_AttributeFileType(); void SetValue(const std::string& value); std::string Value() const { return myString; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeFileType() {} virtual std::string Save() { return myString; } virtual void Load(const std::string& theValue) { myString = theValue; } }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeFlags.cxx000077500000000000000000000114241177004724000246640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeFlags.cxx // Author : Sergey LITONIN // Module : SALOME // #include "SALOMEDSImpl_AttributeFlags.hxx" /* Class : SALOMEDSImpl_AttributeFlags Description : This class is intended for storing different object attributes that have only two states (0 and 1). */ //======================================================================= //function : SALOMEDSImpl_AttributeFlags::GetID //purpose : Get GUID of this attribute //======================================================================= const std::string& SALOMEDSImpl_AttributeFlags::GetID () { static std::string SALOMEDSImpl_AttributeFlagsID( "866EEC9F-A517-4cb4-88E6-E208DB8FC96F" ); return SALOMEDSImpl_AttributeFlagsID; } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::Set //purpose : Set value of the attribute //======================================================================= SALOMEDSImpl_AttributeFlags* SALOMEDSImpl_AttributeFlags::Set(const DF_Label& L, const int value ) { SALOMEDSImpl_AttributeFlags* A = NULL; if ( !(A=(SALOMEDSImpl_AttributeFlags*)L.FindAttribute(SALOMEDSImpl_AttributeFlags::GetID())) ) { A = new SALOMEDSImpl_AttributeFlags(); L.AddAttribute( A ); } A->Set( value ); return A; } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::SALOMEDSImpl_AttributeFlags //purpose : Constructor //======================================================================= SALOMEDSImpl_AttributeFlags::SALOMEDSImpl_AttributeFlags() :SALOMEDSImpl_GenericAttribute("AttributeFlags") { myValue = 0; } SALOMEDSImpl_AttributeFlags::~SALOMEDSImpl_AttributeFlags() { } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::ID //purpose : Get GUID of this attribute //======================================================================= const std::string& SALOMEDSImpl_AttributeFlags::ID () const { return GetID(); } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::NewEmpty //purpose : Create new empty attribute //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeFlags::NewEmpty () const { return new SALOMEDSImpl_AttributeFlags(); } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::Restore //purpose : Assign given value to the attribute //======================================================================= void SALOMEDSImpl_AttributeFlags::Restore( DF_Attribute* with ) { myValue = dynamic_cast( with )->Get(); return; } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::Paste //purpose : Assign internal value to the given attribute //======================================================================= void SALOMEDSImpl_AttributeFlags::Paste( DF_Attribute* into) { dynamic_cast( into )->Set( myValue ); } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::Set //purpose : Set value //======================================================================= void SALOMEDSImpl_AttributeFlags::Set( const int v ) { Backup(); myValue=v; } //======================================================================= //function : SALOMEDSImpl_AttributeFlags::Get //purpose : GetValue //======================================================================= int SALOMEDSImpl_AttributeFlags::Get() const { return myValue; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeFlags.hxx000077500000000000000000000040511177004724000246670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeFlags.hxx // Author : Sergey LITONIN // Module : SALOME // #ifndef SALOMEDSImpl_AttributeFlags_HeaderFile #define SALOMEDSImpl_AttributeFlags_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" /* Class : SALOMEDSImpl_AttributeFlags Description : This class is intended for storing different object attributes that have only two states (0 and 1). */ class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeFlags : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: static const std::string& GetID() ; static SALOMEDSImpl_AttributeFlags* Set(const DF_Label&, const int theValue ); SALOMEDSImpl_AttributeFlags(); virtual ~SALOMEDSImpl_AttributeFlags(); const std::string& ID() const; void Restore( DF_Attribute* with ); DF_Attribute* NewEmpty() const; void Paste( DF_Attribute* into); void Set( const int ); int Get() const; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeGraphic.cxx000077500000000000000000000130011177004724000251760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeGraphic.cxx // Author : Sergey LITONIN // Module : SALOME // #include "SALOMEDSImpl_AttributeGraphic.hxx" #include "DF_Attribute.hxx" /* Class : SALOMEDSImpl_AttributeGraphic Description : This class is intended for storing information about graphic representation of objects in dirrent views */ //======================================================================= //function : GetID //purpose : Get GUID of this attribute //======================================================================= const std::string& SALOMEDSImpl_AttributeGraphic::GetID() { static std::string SALOMEDSImpl_AttributeGraphicID( "F17AE8F0-E354-4d6f-8E42-38385C36E67E" ); return SALOMEDSImpl_AttributeGraphicID; } //======================================================================= //function : SALOMEDSImpl_AttributeGraphic //purpose : Empty Constructor //======================================================================= SALOMEDSImpl_AttributeGraphic::SALOMEDSImpl_AttributeGraphic() :SALOMEDSImpl_GenericAttribute("AttributeGraphic") { } //======================================================================= //function : ~SALOMEDSImpl_AttributeGraphic //purpose : Destructor //======================================================================= SALOMEDSImpl_AttributeGraphic::~SALOMEDSImpl_AttributeGraphic() { } //======================================================================= //function : SetVisibility //purpose : Set visibility of object in given view //======================================================================= void SALOMEDSImpl_AttributeGraphic::SetVisibility(const int theViewId, const bool theValue ) { if ( myVisibility.find( theViewId ) != myVisibility.end() && myVisibility[theViewId] == theValue ) return; Backup(); myVisibility[ theViewId ] = theValue ? 1 : 0; } //======================================================================= //function : Get //purpose : Get visibility of object in given view //======================================================================= bool SALOMEDSImpl_AttributeGraphic::GetVisibility(const int theViewId ) { bool isVisible = false; if(myVisibility.find( theViewId )!=myVisibility.end()) isVisible = (bool)myVisibility[theViewId]; else isVisible = false; return isVisible; } //======================================================================= //function : ID //purpose : Get GUID of this attribute //======================================================================= const std::string& SALOMEDSImpl_AttributeGraphic::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : Create new empty attribute //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeGraphic::NewEmpty () const { return new SALOMEDSImpl_AttributeGraphic (); } //======================================================================= //function : SetVisibility //purpose : Set visibility of object in all views //======================================================================= void SALOMEDSImpl_AttributeGraphic::SetVisibility( const std::map& theMap ) { myVisibility = theMap; } //======================================================================= //function : SetVisibility //purpose : Get visibility of object in all views //======================================================================= const std::map& SALOMEDSImpl_AttributeGraphic::GetVisibility() { return myVisibility; } //======================================================================= //function : Restore //purpose : Restore value of attribute with value of theWith one //======================================================================= void SALOMEDSImpl_AttributeGraphic::Restore( DF_Attribute* theWith ) { SALOMEDSImpl_AttributeGraphic* anAttr = dynamic_cast( theWith ); if ( anAttr ) SetVisibility( anAttr->GetVisibility() ); } //======================================================================= //function : Paste //purpose : Paste value of current attribute to the value of entry one //======================================================================= void SALOMEDSImpl_AttributeGraphic::Paste( DF_Attribute* theInto) { SALOMEDSImpl_AttributeGraphic* anAttr = dynamic_cast( theInto ); if ( anAttr ) anAttr->SetVisibility( myVisibility ); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeGraphic.hxx000077500000000000000000000043521177004724000252140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeGraphic.hxx // Author : Sergey LITONIN // Module : SALOME // #ifndef SALOMEDSImpl_AttributeGraphic_HeaderFile #define SALOMEDSImpl_AttributeGraphic_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include /* Class : SALOMEDSImpl_AttributeGraphic Description : This class is intended for storing information about graphic representation of objects in dirrent views */ class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeGraphic : public SALOMEDSImpl_GenericAttribute { public: SALOMEDSImpl_AttributeGraphic(); ~SALOMEDSImpl_AttributeGraphic(); static const std::string& GetID() ; void SetVisibility( const int, const bool ); bool GetVisibility( const int ); const std::string& ID() const; void Restore( DF_Attribute* theWith ); DF_Attribute* NewEmpty() const; void Paste( DF_Attribute* theInto); void SetVisibility( const std::map& ); const std::map& GetVisibility(); private: std::map myVisibility; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeIOR.cxx000077500000000000000000000134271177004724000242660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeIOR.hxx" #include "SALOMEDSImpl_Study.hxx" //to disable automatic genericobj management comment the following line #define WITHGENERICOBJ #ifdef WITHGENERICOBJ #include "SALOME_GenericObj_i.hh" static CORBA::ORB_var getORB() { int argc=0; return CORBA::ORB_init(argc,0); } void IORGenericObjDecref(const std::string& anIOR) { if(anIOR=="")return; CORBA::Object_var obj; SALOME::GenericObj_var gobj; try { obj = getORB()->string_to_object(anIOR.c_str()); if(obj->_non_existent())return; gobj = SALOME::GenericObj::_narrow(obj); if(! CORBA::is_nil(gobj) ) { gobj->UnRegister(); } } catch(const CORBA::Exception& e) { } } void IORGenericObjIncref(const std::string& anIOR) { CORBA::Object_var obj; SALOME::GenericObj_var gobj; try { obj = getORB()->string_to_object(anIOR.c_str()); if(obj->_non_existent())return; gobj = SALOME::GenericObj::_narrow(obj); if(! CORBA::is_nil(gobj) ) { gobj->Register(); } } catch(const CORBA::Exception& e) { } } #else void IORGenericObjDecref(const std::string& anIOR) {} void IORGenericObjIncref(const std::string& anIOR) {} #endif //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeIOR::GetID () { static std::string SALOMEDSImpl_AttributeIORID ("92888E01-7074-11d5-A690-0800369C8A03"); return SALOMEDSImpl_AttributeIORID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeIOR* SALOMEDSImpl_AttributeIOR::Set (const DF_Label& L, const std::string& S) { SALOMEDSImpl_AttributeIOR* A = NULL; if (!(A=(SALOMEDSImpl_AttributeIOR*)L.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { A = new SALOMEDSImpl_AttributeIOR(); L.AddAttribute(A); } A->SetValue(S); return A; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeIOR::SetValue(const std::string& theValue) { CheckLocked(); SALOMEDSImpl_Study* study=SALOMEDSImpl_Study::GetStudy(Label()); Backup(); //remove IOR entry in study if(theValue != myString) { IORGenericObjIncref(theValue); IORGenericObjDecref(myString); study->DeleteIORLabelMapItem(myString); } myString = theValue; //add IOR entry in study SALOMEDSImpl_Study::IORUpdated(this); //Reason = 5 means that IOR attribute updated //Used in the gui module to detect that IOR attribure was assigned to the object SetModifyFlag(5); } //======================================================================= //function : Value //purpose : //======================================================================= std::string SALOMEDSImpl_AttributeIOR::Value() const { return myString; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeIOR::SALOMEDSImpl_AttributeIOR() :SALOMEDSImpl_GenericAttribute("AttributeIOR") { } SALOMEDSImpl_AttributeIOR::~SALOMEDSImpl_AttributeIOR() { IORGenericObjDecref(myString); } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeIOR::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeIOR::NewEmpty () const { return new SALOMEDSImpl_AttributeIOR(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeIOR::Restore( DF_Attribute* with) { myString = dynamic_cast(with)->Value(); return; } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeIOR::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeIOR.hxx000077500000000000000000000035241177004724000242700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeIOR_HeaderFile #define _SALOMEDSImpl_AttributeIOR_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeIOR : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: static const std::string& GetID() ; static SALOMEDSImpl_AttributeIOR* Set(const DF_Label& label, const std::string& IOR); SALOMEDSImpl_AttributeIOR(); const std::string& ID() const; void SetValue(const std::string& theValue); std::string Value() const ; void Restore(DF_Attribute* with); DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeIOR() ; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeInteger.cxx000077500000000000000000000103121177004724000252200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeInteger.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeInteger.hxx" #include //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeInteger::GetID () { static std::string IntegerID ("8CC3E213-C9B4-47e4-8496-DD5E62E22018"); return IntegerID; } SALOMEDSImpl_AttributeInteger* SALOMEDSImpl_AttributeInteger::Set (const DF_Label& L, int Val) { SALOMEDSImpl_AttributeInteger* A = NULL; if (!(A = (SALOMEDSImpl_AttributeInteger*)L.FindAttribute(SALOMEDSImpl_AttributeInteger::GetID()))) { A = new SALOMEDSImpl_AttributeInteger(); L.AddAttribute(A); } A->SetValue(Val); return A; } //======================================================================= //function : Value //purpose : //======================================================================= int SALOMEDSImpl_AttributeInteger::Value() const { return myValue; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeInteger::SetValue(const int v) { if(myValue == v) return; Backup(); myValue = v; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeInteger::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeInteger::NewEmpty () const { return new SALOMEDSImpl_AttributeInteger(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeInteger::Restore(DF_Attribute* With) { myValue = dynamic_cast(With)->Value(); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeInteger::Paste (DF_Attribute* Into) { dynamic_cast(Into)->SetValue(myValue); } //======================================================================= //function : Save //purpose : //======================================================================= std::string SALOMEDSImpl_AttributeInteger::Save() { char buffer[128]; sprintf(buffer, "%d", myValue); return std::string(buffer); } //======================================================================= //function : Load //purpose : //======================================================================= void SALOMEDSImpl_AttributeInteger::Load(const std::string& theValue) { myValue = atoi(theValue.c_str()); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeInteger.hxx000077500000000000000000000036751177004724000252430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeInteger_HeaderFile #define _SALOMEDSImpl_AttributeInteger_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeInteger : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: static const std::string& GetID() ; SALOMEDSImpl_AttributeInteger():SALOMEDSImpl_GenericAttribute("AttributeInteger") {} static SALOMEDSImpl_AttributeInteger* Set (const DF_Label& L, int Val); void SetValue(const int theVal); int Value() const; virtual std::string Save(); virtual void Load(const std::string& theValue); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeInteger() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeLocalID.cxx000077500000000000000000000110511177004724000250730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeLocalID.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeLocalID.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeLocalID::GetID () { static std::string SALOMEDSImpl_AttributeLocalID ("12837196-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeLocalID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeLocalID* SALOMEDSImpl_AttributeLocalID::Set (const DF_Label& L, const int value) { SALOMEDSImpl_AttributeLocalID* A = NULL; if (!(A=(SALOMEDSImpl_AttributeLocalID*)L.FindAttribute(SALOMEDSImpl_AttributeLocalID::GetID()))) { A = new SALOMEDSImpl_AttributeLocalID(); L.AddAttribute(A); } A->SetValue(value); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeLocalID::SALOMEDSImpl_AttributeLocalID() :SALOMEDSImpl_GenericAttribute("AttributeLocalID") { myValue = 0; } //======================================================================= //function : Set //purpose : //======================================================================= void SALOMEDSImpl_AttributeLocalID::SetValue(const int theValue) { CheckLocked(); Backup(); myValue = theValue; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeLocalID::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeLocalID::NewEmpty () const { return new SALOMEDSImpl_AttributeLocalID(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeLocalID::Restore(DF_Attribute* with) { myValue = dynamic_cast(with)->Value(); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeLocalID::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myValue); } //======================================================================= //function : Save //purpose : //======================================================================= std::string SALOMEDSImpl_AttributeLocalID::Save() { char buffer[128]; sprintf(buffer, "%d", myValue); return std::string(buffer); } //======================================================================= //function : Load //purpose : //======================================================================= void SALOMEDSImpl_AttributeLocalID::Load(const std::string& theValue) { myValue = atoi(theValue.c_str()); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeLocalID.hxx000077500000000000000000000036441177004724000251110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeLocalID.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeLocalID_HeaderFile #define _SALOMEDSImpl_AttributeLocalID_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeLocalID : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: virtual std::string Save(); virtual void Load(const std::string& theValue); static const std::string& GetID() ; static SALOMEDSImpl_AttributeLocalID* Set(const DF_Label& label,const int value) ; void SetValue(const int value); int Value() const { return myValue; } SALOMEDSImpl_AttributeLocalID(); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute*); ~SALOMEDSImpl_AttributeLocalID() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeName.cxx000077500000000000000000000066161177004724000245170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeName.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeName.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeName::GetID () { static std::string NameID ("8650000D-63A0-4651-B621-CC95C9308598"); return NameID; } SALOMEDSImpl_AttributeName* SALOMEDSImpl_AttributeName::Set (const DF_Label& L, const std::string& Val) { SALOMEDSImpl_AttributeName* A = NULL; if (!(A=(SALOMEDSImpl_AttributeName*)L.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) { A = new SALOMEDSImpl_AttributeName(); L.AddAttribute(A); } A->SetValue(Val); return A; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeName::SetValue (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeName::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeName::NewEmpty () const { return new SALOMEDSImpl_AttributeName(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeName::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeName::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeName.hxx000077500000000000000000000040221177004724000245110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeName_HeaderFile #define _SALOMEDSImpl_AttributeName_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeName : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: static const std::string& GetID() ; SALOMEDSImpl_AttributeName():SALOMEDSImpl_GenericAttribute("AttributeName") {} static SALOMEDSImpl_AttributeName* Set (const DF_Label& L, const std::string& Val); void SetValue(const std::string& theVal); std::string Value() const { return myString; } virtual std::string Save() { return myString; } virtual void Load(const std::string& theValue) { myString = theValue; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeName() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeOpened.cxx000077500000000000000000000075441177004724000250520ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeOpened.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeOpened.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeOpened::GetID () { static std::string SALOMEDSImpl_AttributeOpenedID ("12837186-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeOpenedID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeOpened* SALOMEDSImpl_AttributeOpened::Set (const DF_Label& L, const int value) { SALOMEDSImpl_AttributeOpened* A = NULL; if (!(A=(SALOMEDSImpl_AttributeOpened*)L.FindAttribute(SALOMEDSImpl_AttributeOpened::GetID()))) { A = new SALOMEDSImpl_AttributeOpened(); L.AddAttribute(A); } A->SetOpened (value); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeOpened::SALOMEDSImpl_AttributeOpened() :SALOMEDSImpl_GenericAttribute("AttributeOpened") { myValue = 0; } //======================================================================= //function : SetOpened //purpose : //======================================================================= void SALOMEDSImpl_AttributeOpened::SetOpened(const int theValue) { Backup(); (theValue!=0)?myValue=1:myValue=0; } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeOpened::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeOpened::NewEmpty () const { return new SALOMEDSImpl_AttributeOpened(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeOpened::Restore(DF_Attribute* with) { myValue = dynamic_cast(with)->IsOpened (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeOpened::Paste (DF_Attribute* into) { dynamic_cast(into)->SetOpened (myValue); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeOpened.hxx000077500000000000000000000040071177004724000250460ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeOpened.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeOpened_HeaderFile #define _SALOMEDSImpl_AttributeOpened_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeOpened : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: virtual std::string Save() { return (myValue == 0)?(char*)"0":(char*)"1"; } virtual void Load(const std::string& theValue) { (theValue == "0")?myValue=0:myValue=1; } static const std::string& GetID() ; static SALOMEDSImpl_AttributeOpened* Set(const DF_Label& label,const int value) ; SALOMEDSImpl_AttributeOpened(); void SetOpened(const int value); int IsOpened() const { return myValue; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeOpened() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeParameter.cxx000077500000000000000000000536431177004724000255610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeParameter.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeParameter.hxx" #include #include #include #include // Purpose: Each character in the string is replaced by 3 characters: '%' and hex number // of the character (2 characters) std::string convertString(const std::string& S) { int length = S.size(); const char *s = S.c_str(); char *c = new char[3], *buffer = new char[length*3+1]; buffer[length*3] = (char)0; for(int i = 0, pos = 0; i& theArray) { CheckLocked(); if(theID.size() == 0) return; Backup(); _realarrays[theID] = theArray; SetModifyFlag(); } //======================================================================= /*! * Function : GetRealArray * Purpose : Returns double values associated with the ID */ //======================================================================= std::vector SALOMEDSImpl_AttributeParameter::GetRealArray(const std::string& theID) { if(!IsSet(theID, PT_REALARRAY)) throw DFexception("Invalid ID"); return _realarrays[theID]; } //======================================================================= /*! * Function : SetIntArray * Purpose : Associates an array of int values with the given ID */ //======================================================================= void SALOMEDSImpl_AttributeParameter::SetIntArray(const std::string& theID, const std::vector& theArray) { CheckLocked(); if(theID.size() == 0) return; Backup(); _intarrays[theID] = theArray; SetModifyFlag(); } //======================================================================= /*! * Function : GetIntArray * Purpose : Returns int values associated with the ID */ //======================================================================= std::vector SALOMEDSImpl_AttributeParameter::GetIntArray(const std::string& theID) { if(!IsSet(theID, PT_INTARRAY)) throw DFexception("Invalid ID"); return _intarrays[theID]; } //======================================================================= /*! * Function : SetStrArray * Purpose : Associates an array of string values with the given ID */ //======================================================================= void SALOMEDSImpl_AttributeParameter::SetStrArray(const std::string& theID, const std::vector& theArray) { CheckLocked(); if(theID.size() == 0) return; Backup(); _strarrays[theID] = theArray; SetModifyFlag(); } //======================================================================= /*! * Function : GetStrArray * Purpose : Returns string values associated with the ID */ //======================================================================= std::vector SALOMEDSImpl_AttributeParameter::GetStrArray(const std::string& theID) { if(!IsSet(theID, PT_STRARRAY)) throw DFexception("Invalid ID"); return _strarrays[theID]; } //======================================================================= /*! * Function : IsSet * Purpose : Returns true if for the ID of given type was assigned \n * a value in the attribute */ //======================================================================= bool SALOMEDSImpl_AttributeParameter::IsSet(const std::string& theID, const Parameter_Types theType) { switch(theType) { case PT_INTEGER: { if(_ints.find(theID) != _ints.end()) return true; break; } case PT_REAL: { if(_reals.find(theID) != _reals.end()) return true; break; } case PT_BOOLEAN: { if(_bools.find(theID) != _bools.end()) return true; break; } case PT_STRING: { if(_strings.find(theID) != _strings.end()) return true; break; } case PT_REALARRAY: { if(_realarrays.find(theID) != _realarrays.end()) return true; break; } case PT_INTARRAY: { if(_intarrays.find(theID) != _intarrays.end()) return true; break; } case PT_STRARRAY: { if(_strarrays.find(theID) != _strarrays.end()) return true; break; } default: return false; } return false; } //======================================================================= /*! * Function : RemoveID * Purpose : Removes a parameter with given ID */ //======================================================================= bool SALOMEDSImpl_AttributeParameter::RemoveID(const std::string& theID, const Parameter_Types theType) { Backup(); SetModifyFlag(); switch(theType) { case PT_INTEGER: { if(_ints.erase(theID)) return true; break; } case PT_REAL: { if(_reals.erase(theID)) return true; break; } case PT_BOOLEAN: { if(_bools.erase(theID)) return true; break; } case PT_STRING: { if(_strings.erase(theID)) return true; break; } case PT_REALARRAY: { if(_realarrays.erase(theID)) return true; break; } case PT_INTARRAY: { if(_intarrays.erase(theID)) return true; break; } case PT_STRARRAY: { if(_strarrays.erase(theID)) return true; break; } default: return false; } return false; } //======================================================================= /*! * Function : GetFather * Purpose : Returns a father attribute for this attribute */ //======================================================================= SALOMEDSImpl_AttributeParameter* SALOMEDSImpl_AttributeParameter::GetFather() { SALOMEDSImpl_AttributeParameter* aFather; DF_Label L = Label(); if(L.IsRoot()) return aFather; while(!L.IsRoot()) { L = L.Father(); if((aFather=(SALOMEDSImpl_AttributeParameter*)L.FindAttribute(SALOMEDSImpl_AttributeParameter::GetID()))) break; } return aFather; } //======================================================================= /*! * Function : HasFather * Purpose : Returns True if the attribute has a father attribute */ //======================================================================= bool SALOMEDSImpl_AttributeParameter::HasFather() { DF_Label L = Label(); if(L.IsRoot()) return false; while(!L.IsRoot()) { L = L.Father(); if(L.IsAttribute(SALOMEDSImpl_AttributeParameter::GetID())) return true; } return false; } //======================================================================= /*! * Function : IsRoot * Purpose : Returns True is the attribute is highest in an hierachy */ //======================================================================= bool SALOMEDSImpl_AttributeParameter::IsRoot() { return ((HasFather())?false:true); } //======================================================================= /*! * Function : Clear * Purpose : Clears the content of the attribute */ //======================================================================= void SALOMEDSImpl_AttributeParameter::Clear() { Backup(); _ints.clear(); _reals.clear(); _bools.clear(); _strings.clear(); _realarrays.clear(); _intarrays.clear(); _strarrays.clear(); SetModifyFlag(); } //======================================================================= /*! * Function : GetIDs * Purpose : Returns an array of all ID's of the given type */ //======================================================================= std::vector SALOMEDSImpl_AttributeParameter::GetIDs(const Parameter_Types theType) { std::vector anArray; int i = 0; switch(theType) { case PT_INTEGER: { if(_ints.size()) { anArray.resize(_ints.size()); for(std::map::const_iterator p = _ints.begin(); p != _ints.end(); p++, i++) anArray[i] = p->first; } break; } case PT_REAL: { if(_reals.size()) { anArray.resize(_reals.size()); for(std::map::const_iterator p = _reals.begin(); p != _reals.end(); p++, i++) anArray[i] = p->first; } break; } case PT_BOOLEAN: { if(_bools.size()) { anArray.resize(_bools.size()); for(std::map::const_iterator p = _bools.begin(); p != _bools.end(); p++, i++) anArray[i] = p->first; } break; } case PT_STRING: { if(_strings.size()) { anArray.resize(_strings.size()); for(std::map::const_iterator p = _strings.begin(); p!= _strings.end(); p++) anArray[i] = p->first; } break; } case PT_REALARRAY: { if(_realarrays.size()) { anArray.resize(_realarrays.size()); for(std::map< std::string, std::vector >::const_iterator p = _realarrays.begin(); p!= _realarrays.end(); p++) anArray[i] = p->first; } break; } case PT_INTARRAY: { if(_intarrays.size()) { anArray.resize(_intarrays.size()); for(std::map< std::string, std::vector >::const_iterator p = _intarrays.begin(); p!= _intarrays.end(); p++) anArray[i] = p->first; } break; } case PT_STRARRAY: { if(_strarrays.size()) { anArray.resize(_strarrays.size()); for(std::map< std::string, std::vector >::const_iterator p = _strarrays.begin(); p!= _strarrays.end(); p++) anArray[i] = p->first; } break; } default: return anArray; } return anArray; } //======================================================================= /*! * Function : ID * Purpose : Rteurns an GUID of the attribute */ //======================================================================= const std::string& SALOMEDSImpl_AttributeParameter::ID () const { return GetID(); } DF_Attribute* SALOMEDSImpl_AttributeParameter::NewEmpty () const { return new SALOMEDSImpl_AttributeParameter(); } //======================================================================= /*! * Function : Restore * Purpose : Restors the content of the attribute from another */ //======================================================================= void SALOMEDSImpl_AttributeParameter::Restore(DF_Attribute* with) { SALOMEDSImpl_AttributeParameter* A = dynamic_cast(with); _ints.clear(); _reals.clear(); _bools.clear(); _strings.clear(); _realarrays.clear(); _intarrays.clear(); _strarrays.clear(); for(std::map::const_iterator p = A->_ints.begin(); p!= A->_ints.end(); p++) if(p->first.size()) _ints[p->first] = p->second; for(std::map::const_iterator p = A->_reals.begin(); p!= A->_reals.end(); p++) if(p->first.size()) _reals[p->first] = p->second; for(std::map::const_iterator p = A->_bools.begin(); p!= A->_bools.end(); p++) if(p->first.size()) _bools[p->first] = p->second; for(std::map::const_iterator p = A->_strings.begin(); p!= A->_strings.end(); p++) if(p->first.size()) _strings[p->first] = p->second; for(std::map< std::string,std::vector >::const_iterator p = A->_realarrays.begin(); p!= A->_realarrays.end(); p++) if(p->first.size()) _realarrays[p->first] = p->second; for(std::map< std::string,std::vector >::const_iterator p = A->_intarrays.begin(); p!= A->_intarrays.end(); p++) if(p->first.size()) _intarrays[p->first] = p->second; for(std::map< std::string,std::vector >::const_iterator p = A->_strarrays.begin(); p!= A->_strarrays.end(); p++) if(p->first.size()) _strarrays[p->first] = p->second; } //======================================================================= /*! * Function : Paste * Purpose : Pastes the content of attribute to another */ //======================================================================= void SALOMEDSImpl_AttributeParameter::Paste (DF_Attribute* into) { into->Restore(this); } //======================================================================= /*! * Function : Save * Purpose : Saves a content of the attribute as a string */ //======================================================================= std::string SALOMEDSImpl_AttributeParameter::Save() { std::ostringstream buffer; char *tmpBuffer = new char[255]; buffer << _ints.size() << " "; for(std::map::const_iterator p = _ints.begin(); p != _ints.end(); p++) { buffer << convertString(p->first) << " " << p->second << " "; } buffer << _reals.size() << " "; for(std::map::const_iterator p =_reals.begin(); p != _reals.end(); p++) { sprintf(tmpBuffer, "%.64e", p->second); buffer << convertString(p->first) << " " << tmpBuffer << " "; } buffer << _bools.size() << " "; for(std::map::const_iterator p = _bools.begin(); p != _bools.end(); p++) { buffer << convertString(p->first) << " " << p->second << " "; } buffer << _strings.size() << " "; for(std::map::const_iterator p = _strings.begin(); p != _strings.end(); p++) { buffer << convertString(p->first) << " " << convertString(p->second) << " "; } buffer << _realarrays.size() << " "; for(std::map< std::string,std::vector >::const_iterator p = _realarrays.begin(); p != _realarrays.end(); p++) { std::vector v(p->second); sprintf(tmpBuffer, " %s %d ", convertString(p->first).c_str(), v.size()); buffer << tmpBuffer; for(int i = 0; i >::const_iterator p = _intarrays.begin(); p != _intarrays.end(); p++) { std::vector v(p->second); sprintf(tmpBuffer, " %s %d ", convertString(p->first).c_str(), v.size()); buffer << tmpBuffer; for(int i = 0; i >::const_iterator p = _strarrays.begin(); p != _strarrays.end(); p++) { std::vector v(p->second); sprintf(tmpBuffer, " %s %d ", convertString(p->first).c_str(), v.size()); buffer << tmpBuffer; for(int i = 0; i> size; for(int i = 1; i<=size; i++) { buffer >> id >> val; _ints[restoreString(id)] = val; } buffer >> size; for(int i = 1; i<=size; i++) { buffer >> id >> val2; _reals[restoreString(id)] = val2; } buffer >> size; for(int i = 1; i<=size; i++) { buffer >> id >> val; _bools[restoreString(id)] = val; } buffer >> size; for(int i = 1; i<=size; i++) { buffer >> id >> s; _strings[restoreString(id)] = restoreString(s); } buffer >> size; for(int i = 1; i<=size; i++) { buffer >> id >> val; std::vector v; v.resize(val); for(int j = 0; j> val2; v[j] = val2; } _realarrays[restoreString(id)] = v; } buffer >> size; for(int i = 1; i<=size; i++) { buffer >> id >> val; std::vector v; v.resize(val); for(int j = 0; j> ival; v[j] = ival; } _intarrays[restoreString(id)] = v; } buffer >> size; for(int i = 1; i<=size; i++) { buffer >> id >> val; std::vector v; v.resize(val); for(int j = 0; j> s; v[j] = restoreString(s); } _strarrays[restoreString(id)] = v; } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeParameter.hxx000077500000000000000000000102501177004724000255510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeParameter_HeaderFile #define _SALOMEDSImpl_AttributeParameter_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include #include #include enum Parameter_Types {PT_INTEGER, PT_REAL, PT_BOOLEAN, PT_STRING, PT_REALARRAY, PT_INTARRAY, PT_STRARRAY}; /*! Class: SALOMEDSImpl_AttributeParameter Description : AttributeParameter is a universal container of basic types */ class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeParameter : public SALOMEDSImpl_GenericAttribute { private: std::map _ints; std::map _reals; std::map _strings; std::map _bools; std::map< std::string, std::vector > _realarrays; std::map< std::string, std::vector > _intarrays; std::map< std::string, std::vector > _strarrays; public: static const std::string& GetID() ; SALOMEDSImpl_AttributeParameter():SALOMEDSImpl_GenericAttribute("AttributeParameter") {} static SALOMEDSImpl_AttributeParameter* Set (const DF_Label& L); void SetInt(const std::string& theID, const int& theValue); int GetInt(const std::string& theID); void SetReal(const std::string& theID, const double& theValue); double GetReal(const std::string& theID); void SetString(const std::string& theID, const std::string& theValue); std::string GetString(const std::string& theID); void SetBool(const std::string& theID, const bool& theValue); bool GetBool(const std::string& theID); void SetRealArray(const std::string& theID, const std::vector& theArray); std::vector GetRealArray(const std::string& theID); void SetIntArray(const std::string& theID, const std::vector& theArray); std::vector GetIntArray(const std::string& theID); void SetStrArray(const std::string& theID, const std::vector& theArray); std::vector GetStrArray(const std::string& theID); bool IsSet(const std::string& theID, const Parameter_Types theType); bool RemoveID(const std::string& theID, const Parameter_Types theType); SALOMEDSImpl_AttributeParameter* GetFather(); bool HasFather(); bool IsRoot(); std::vector GetIDs(const Parameter_Types theType); void Clear(); virtual std::string Save(); virtual void Load(const std::string& theValue); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeParameter() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributePersistentRef.cxx000077500000000000000000000101501177004724000264200ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributePersistentRef.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributePersistentRef.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributePersistentRef::GetID () { static std::string SALOMEDSImpl_AttributePersistentRefID ("92888E06-7074-11d5-A690-0800369C8A03"); return SALOMEDSImpl_AttributePersistentRefID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributePersistentRef* SALOMEDSImpl_AttributePersistentRef::Set (const DF_Label& L, const std::string& S) { SALOMEDSImpl_AttributePersistentRef* A = NULL; if (!(A=(SALOMEDSImpl_AttributePersistentRef*)L.FindAttribute(SALOMEDSImpl_AttributePersistentRef::GetID()))) { A = new SALOMEDSImpl_AttributePersistentRef(); L.AddAttribute(A); } A->SetValue (S); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributePersistentRef::SALOMEDSImpl_AttributePersistentRef() :SALOMEDSImpl_GenericAttribute("AttributePersistentRef") { } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributePersistentRef::ID () const { return GetID(); } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributePersistentRef::SetValue (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributePersistentRef::NewEmpty () const { return new SALOMEDSImpl_AttributePersistentRef(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributePersistentRef::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributePersistentRef::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributePersistentRef.hxx000077500000000000000000000040551177004724000264340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributePersistentRef.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributePersistentRef_HeaderFile #define _SALOMEDSImpl_AttributePersistentRef_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributePersistentRef : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: virtual std::string Save() { return myString; } virtual void Load(const std::string& theValue) { myString = theValue; } static const std::string& GetID() ; static SALOMEDSImpl_AttributePersistentRef* Set(const DF_Label& label, const std::string& value) ; SALOMEDSImpl_AttributePersistentRef(); const std::string& ID() const; void SetValue(const std::string& value); std::string Value() const { return myString; } void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributePersistentRef() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributePixMap.cxx000077500000000000000000000077351177004724000250400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributePixMap.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributePixMap.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributePixMap::GetID () { static std::string SALOMEDSImpl_AttributePixMapID ("12837187-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributePixMapID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributePixMap* SALOMEDSImpl_AttributePixMap::Set (const DF_Label& L, const std::string& S) { SALOMEDSImpl_AttributePixMap* A = NULL; if (!(A=(SALOMEDSImpl_AttributePixMap*)L.FindAttribute(SALOMEDSImpl_AttributePixMap::GetID()))) { A = new SALOMEDSImpl_AttributePixMap(); L.AddAttribute(A); } A->SetPixMap (S); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributePixMap::SALOMEDSImpl_AttributePixMap() :SALOMEDSImpl_GenericAttribute("AttributePixMap") { myString = "None"; } //======================================================================= //function : SetPixMap //purpose : //======================================================================= void SALOMEDSImpl_AttributePixMap::SetPixMap (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributePixMap::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributePixMap::NewEmpty () const { return new SALOMEDSImpl_AttributePixMap(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributePixMap::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->GetPixMap (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributePixMap::Paste (DF_Attribute* into) { dynamic_cast(into)->SetPixMap (myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributePixMap.hxx000077500000000000000000000040761177004724000250400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributePixMap.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributePixMap_HeaderFile #define _SALOMEDSImpl_AttributePixMap_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributePixMap : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: virtual std::string Save() { return myString; } virtual void Load(const std::string& theValue) { myString = theValue; } static const std::string& GetID() ; static SALOMEDSImpl_AttributePixMap* Set(const DF_Label& label, const std::string& string) ; SALOMEDSImpl_AttributePixMap(); const std::string& ID() const; void SetPixMap(const std::string& value); std::string GetPixMap() const { return myString; } bool HasPixMap() const { return (myString != "None"); } void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributePixMap() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributePythonObject.cxx000077500000000000000000000066321177004724000262450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributePythonObject.cxx // Author : Michael Ponikarov // Module : SALOME // #include "SALOMEDSImpl_AttributePythonObject.hxx" const std::string& SALOMEDSImpl_AttributePythonObject::GetID() { static std::string SALOMEDSImpl_AttributePythonObjectID ("128371A3-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributePythonObjectID; } SALOMEDSImpl_AttributePythonObject* SALOMEDSImpl_AttributePythonObject::Set(const DF_Label& label) { SALOMEDSImpl_AttributePythonObject* A = NULL; if (!(A = (SALOMEDSImpl_AttributePythonObject*)label.FindAttribute(SALOMEDSImpl_AttributePythonObject::GetID()))) { A = new SALOMEDSImpl_AttributePythonObject(); label.AddAttribute(A); } return A; } SALOMEDSImpl_AttributePythonObject::SALOMEDSImpl_AttributePythonObject() :SALOMEDSImpl_GenericAttribute("AttributePythonObject") { myIsScript = false; } void SALOMEDSImpl_AttributePythonObject::SetObject(const std::string& theSequence, const bool theScript) { CheckLocked(); Backup(); mySequence = theSequence; myIsScript = theScript; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributePythonObject::GetObject() const { return mySequence; } bool SALOMEDSImpl_AttributePythonObject::IsScript() const { return myIsScript; } int SALOMEDSImpl_AttributePythonObject::GetLength() const { return mySequence.size(); } const std::string& SALOMEDSImpl_AttributePythonObject::ID() const { return GetID(); } void SALOMEDSImpl_AttributePythonObject::Restore(DF_Attribute* with) { SALOMEDSImpl_AttributePythonObject* anObj = dynamic_cast(with); SetObject(anObj->GetObject(),anObj->IsScript()); } DF_Attribute* SALOMEDSImpl_AttributePythonObject::NewEmpty() const { return new SALOMEDSImpl_AttributePythonObject(); } void SALOMEDSImpl_AttributePythonObject::Paste(DF_Attribute* into) { SALOMEDSImpl_AttributePythonObject* anObj = dynamic_cast(into); anObj->SetObject(GetObject(),IsScript()); } std::string SALOMEDSImpl_AttributePythonObject::Save() { std::string aString = GetObject(); std::string aResult = IsScript()?"s":"n"; aResult += aString; return aResult; } void SALOMEDSImpl_AttributePythonObject::Load(const std::string& value) { char* aString = (char*)value.c_str(); SetObject(aString + 1, aString[0]=='s'); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributePythonObject.hxx000077500000000000000000000041271177004724000262470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributePythonObject.hxx // Author : Michael Ponikarov // Module : SALOME // #ifndef _SALOMEDSImpl_AttributePythonObject_HeaderFile #define _SALOMEDSImpl_AttributePythonObject_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include "SALOMEDSImpl_GenericAttribute.hxx" #ifdef GetObject #undef GetObject #endif class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributePythonObject : public SALOMEDSImpl_GenericAttribute { public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID() ; static SALOMEDSImpl_AttributePythonObject* Set(const DF_Label& label) ; SALOMEDSImpl_AttributePythonObject(); void SetObject(const std::string& theSequence, const bool theScript) ; std::string GetObject() const; bool IsScript() const; int GetLength() const; const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributePythonObject() {} private: std::string mySequence; bool myIsScript; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeReal.cxx000077500000000000000000000076621177004724000245240ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeReal.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeReal.hxx" #include //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeReal::GetID () { static std::string realID ("1D1992F0-56F4-46b4-8065-CDEA68061CAB"); return realID; } SALOMEDSImpl_AttributeReal* SALOMEDSImpl_AttributeReal::Set (const DF_Label& L, const double& Val) { SALOMEDSImpl_AttributeReal* A = NULL; if (!(A=(SALOMEDSImpl_AttributeReal*)L.FindAttribute(SALOMEDSImpl_AttributeReal::GetID()))) { A = new SALOMEDSImpl_AttributeReal(); L.AddAttribute(A); } A->SetValue(Val); return A; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeReal::SetValue(const double& v) { CheckLocked(); if( myValue == v) return; Backup(); myValue = v; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeReal::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeReal::NewEmpty () const { return new SALOMEDSImpl_AttributeReal(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeReal::Restore(DF_Attribute* with) { myValue = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeReal::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myValue); } //======================================================================= //function : Save //purpose : //======================================================================= std::string SALOMEDSImpl_AttributeReal::Save() { char buffer[255]; sprintf(buffer, "%.64e", myValue); return std::string(buffer); } //======================================================================= //function : Load //purpose : //======================================================================= void SALOMEDSImpl_AttributeReal::Load(const std::string& theValue) { myValue = atof(theValue.c_str()); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeReal.hxx000077500000000000000000000037141177004724000245230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeReal_HeaderFile #define _SALOMEDSImpl_AttributeReal_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeReal : public SALOMEDSImpl_GenericAttribute { private: double myValue; public: static const std::string& GetID() ; SALOMEDSImpl_AttributeReal():SALOMEDSImpl_GenericAttribute("AttributeReal") {} static SALOMEDSImpl_AttributeReal* Set (const DF_Label& L, const double& Val); void SetValue(const double& theVal); double Value() const { return myValue; } virtual std::string Save(); virtual void Load(const std::string& theValue); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeReal() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeReference.cxx000077500000000000000000000073011177004724000255250ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeReference.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeReference.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeReference::GetID () { static std::string refID ("D913E0B3-0A9F-4ea6-9480-18A9B72D9D86"); return refID; } SALOMEDSImpl_AttributeReference* SALOMEDSImpl_AttributeReference::Set(const DF_Label& theLabel, const DF_Label& theRefLabel) { SALOMEDSImpl_AttributeReference* A = NULL; if (!(A=(SALOMEDSImpl_AttributeReference*)theLabel.FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { A = new SALOMEDSImpl_AttributeReference(); theLabel.AddAttribute(A); } A->Set(theRefLabel); return A; } //======================================================================= //function : Set //purpose : //======================================================================= void SALOMEDSImpl_AttributeReference::Set(const DF_Label& Origin) { CheckLocked(); if(myLabel == Origin) return; Backup(); myLabel = Origin; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeReference::ID () const { return GetID(); } std::string SALOMEDSImpl_AttributeReference::Save() { return myLabel.Entry(); } void SALOMEDSImpl_AttributeReference::Load(const std::string& value) { myLabel = DF_Label::Label(Label(), value, true); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeReference::NewEmpty () const { return new SALOMEDSImpl_AttributeReference(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeReference::Restore(DF_Attribute* With) { myLabel = dynamic_cast(With)->Get (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeReference::Paste (DF_Attribute* Into) { dynamic_cast(Into)->Set(myLabel); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeReference.hxx000077500000000000000000000040061177004724000255310ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeReference_HeaderFile #define _SALOMEDSImpl_AttributeReference_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeReference : public SALOMEDSImpl_GenericAttribute { private: DF_Label myLabel; public: static const std::string& GetID() ; SALOMEDSImpl_AttributeReference():SALOMEDSImpl_GenericAttribute("AttributeReference") {} static SALOMEDSImpl_AttributeReference* Set(const DF_Label& theLabel, const DF_Label& theRefLabel); void Set(const DF_Label& theLabel); DF_Label Get() const { return myLabel; } virtual std::string Save(); virtual void Load(const std::string& theValue); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeReference() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeSelectable.cxx000077500000000000000000000077271177004724000257060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeSelectable.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeSelectable.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeSelectable::GetID () { static std::string SALOMEDSImpl_AttributeSelectableID ("12837188-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeSelectableID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeSelectable* SALOMEDSImpl_AttributeSelectable::Set (const DF_Label& L, const int value) { SALOMEDSImpl_AttributeSelectable* A = NULL; if (!(A=(SALOMEDSImpl_AttributeSelectable*)L.FindAttribute(SALOMEDSImpl_AttributeSelectable::GetID()))) { A = new SALOMEDSImpl_AttributeSelectable(); L.AddAttribute(A); } A->SetSelectable (value); return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeSelectable::SALOMEDSImpl_AttributeSelectable() :SALOMEDSImpl_GenericAttribute("AttributeSelectable") { myValue = 1; } //======================================================================= //function : SetSelectable //purpose : //======================================================================= void SALOMEDSImpl_AttributeSelectable::SetSelectable(const int theValue) { Backup(); (theValue!=0)?myValue=1:myValue=0; } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeSelectable::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeSelectable::NewEmpty () const { return new SALOMEDSImpl_AttributeSelectable(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeSelectable::Restore(DF_Attribute* with) { myValue = dynamic_cast(with)->IsSelectable (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeSelectable::Paste (DF_Attribute* into) { dynamic_cast(into)->SetSelectable (myValue); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeSelectable.hxx000077500000000000000000000040511177004724000256760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeSelectable.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeSelectable_HeaderFile #define _SALOMEDSImpl_AttributeSelectable_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeSelectable : public SALOMEDSImpl_GenericAttribute { private: int myValue; public: virtual std::string Save() { return (myValue == 0)?(char*)"0":(char*)"1"; } virtual void Load(const std::string& theValue) { (theValue == "0")?myValue=0:myValue=1; } static const std::string& GetID() ; static SALOMEDSImpl_AttributeSelectable* Set(const DF_Label& label,const int value) ; SALOMEDSImpl_AttributeSelectable(); void SetSelectable(const int value); int IsSelectable() const { return myValue; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeSelectable() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeSequenceOfInteger.cxx000077500000000000000000000136161177004724000272100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeSequenceOfInteger.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx" #include //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeSequenceOfInteger::GetID () { static std::string SALOMEDSImpl_AttributeSequenceOfIntegerID ("12837182-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeSequenceOfIntegerID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeSequenceOfInteger* SALOMEDSImpl_AttributeSequenceOfInteger::Set (const DF_Label& L) { SALOMEDSImpl_AttributeSequenceOfInteger* A = NULL; if (!(A = (SALOMEDSImpl_AttributeSequenceOfInteger*)L.FindAttribute(SALOMEDSImpl_AttributeSequenceOfInteger::GetID()))) { A = new SALOMEDSImpl_AttributeSequenceOfInteger(); L.AddAttribute(A); } return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeSequenceOfInteger::SALOMEDSImpl_AttributeSequenceOfInteger() :SALOMEDSImpl_GenericAttribute("AttributeSequenceOfInteger") {} //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeSequenceOfInteger::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeSequenceOfInteger::NewEmpty () const { return new SALOMEDSImpl_AttributeSequenceOfInteger(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeSequenceOfInteger::Restore(DF_Attribute* with) { SALOMEDSImpl_AttributeSequenceOfInteger* anSeq = dynamic_cast(with); myValue.clear(); for(int i = 0, len = anSeq->Length(); imyValue[i]); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeSequenceOfInteger::Paste (DF_Attribute* into) { dynamic_cast(into)->Assign(myValue); } void SALOMEDSImpl_AttributeSequenceOfInteger::Assign(const std::vector& other) { CheckLocked(); Backup(); myValue = other; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeSequenceOfInteger::ChangeValue(const int Index,const int Value) { CheckLocked(); Backup(); if(Index <= 0 || Index > myValue.size()) throw DFexception("Out of range"); myValue[Index-1] = Value; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeSequenceOfInteger::Add(const int Value) { CheckLocked(); Backup(); myValue.push_back(Value); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeSequenceOfInteger::Remove(const int Index) { CheckLocked(); Backup(); if(Index <= 0 || Index > myValue.size()) throw DFexception("Out of range"); typedef std::vector::iterator VI; int i = 1; for(VI p = myValue.begin(); p!=myValue.end(); p++, i++) { if(i == Index) { myValue.erase(p); break; } } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } int SALOMEDSImpl_AttributeSequenceOfInteger::Length() { return myValue.size(); } int SALOMEDSImpl_AttributeSequenceOfInteger::Value(const int Index) { if(Index <= 0 || Index > myValue.size()) throw DFexception("Out of range"); return myValue[Index-1]; } std::string SALOMEDSImpl_AttributeSequenceOfInteger::Save() { int aLength = Length(); char* aResult = new char[aLength * 25]; aResult[0] = 0; int aPosition = 0; for (int i = 1; i <= aLength; i++) { sprintf(aResult + aPosition , "%d ", Value(i)); aPosition += strlen(aResult + aPosition); } std::string ret(aResult); delete aResult; return ret; } void SALOMEDSImpl_AttributeSequenceOfInteger::Load(const std::string& value) { char* aCopy = (char*)value.c_str(); char* adr = strtok(aCopy, " "); while (adr) { int l = atol(adr); Add(l); adr = strtok(NULL, " "); } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeSequenceOfInteger.hxx000077500000000000000000000042611177004724000272110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeSequenceOfInteger.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeSequenceOfInteger_HeaderFile #define _SALOMEDSImpl_AttributeSequenceOfInteger_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeSequenceOfInteger : public SALOMEDSImpl_GenericAttribute { public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID() ; static SALOMEDSImpl_AttributeSequenceOfInteger* Set(const DF_Label& label) ; SALOMEDSImpl_AttributeSequenceOfInteger(); void Assign(const std::vector& other) ; void ChangeValue(const int Index,const int Value) ; void Add(const int value) ; int Value(const int Index) ; void Remove(const int Index) ; int Length() ; const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeSequenceOfInteger() {} const std::vector& Array() { return myValue; } private: std::vector myValue; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeSequenceOfReal.cxx000077500000000000000000000137051177004724000264750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeSequenceOfReal.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeSequenceOfReal.hxx" #include //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeSequenceOfReal::GetID () { static std::string SALOMEDSImpl_AttributeSequenceOfRealID ("12837183-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeSequenceOfRealID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeSequenceOfReal* SALOMEDSImpl_AttributeSequenceOfReal::Set (const DF_Label& L) { SALOMEDSImpl_AttributeSequenceOfReal* A = NULL; if (!(A=(SALOMEDSImpl_AttributeSequenceOfReal*)L.FindAttribute(SALOMEDSImpl_AttributeSequenceOfReal::GetID()))) { A = new SALOMEDSImpl_AttributeSequenceOfReal(); L.AddAttribute(A); } return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeSequenceOfReal::SALOMEDSImpl_AttributeSequenceOfReal() :SALOMEDSImpl_GenericAttribute("AttributeSequenceOfReal") { myValue.clear(); } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeSequenceOfReal::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeSequenceOfReal::NewEmpty () const { return new SALOMEDSImpl_AttributeSequenceOfReal(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeSequenceOfReal::Restore(DF_Attribute* with) { SALOMEDSImpl_AttributeSequenceOfReal* anSeq = dynamic_cast(with); myValue.clear(); for(int i = 0, len = anSeq->Length(); imyValue[i]); return; } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeSequenceOfReal::Paste (DF_Attribute* into) { dynamic_cast(into)->Assign(myValue); } void SALOMEDSImpl_AttributeSequenceOfReal::Assign(const std::vector& other) { CheckLocked(); Backup(); myValue = other; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeSequenceOfReal::ChangeValue(const int Index,const double& Value) { CheckLocked(); Backup(); if(Index <= 0 || Index > myValue.size()) throw DFexception("Out of range"); myValue[Index-1] = Value; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeSequenceOfReal::Add(const double& Value) { CheckLocked(); Backup(); myValue.push_back(Value); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeSequenceOfReal::Remove(const int Index) { CheckLocked(); Backup(); if(Index <= 0 || Index > myValue.size()) throw DFexception("Out of range"); typedef std::vector::iterator VI; int i = 1; for(VI p = myValue.begin(); p!=myValue.end(); p++, i++) { if(i == Index) { myValue.erase(p); break; } } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } int SALOMEDSImpl_AttributeSequenceOfReal::Length() { return myValue.size(); } double SALOMEDSImpl_AttributeSequenceOfReal::Value(const int Index) { if(Index <= 0 || Index > myValue.size()) throw DFexception("Out of range"); return myValue[Index-1]; } std::string SALOMEDSImpl_AttributeSequenceOfReal::Save() { int aLength = Length(); char* aResult = new char[aLength * 127]; aResult[0] = 0; int aPosition = 0; for (int i = 1; i <= aLength; i++) { sprintf(aResult + aPosition , "%.64e ", Value(i)); aPosition += strlen(aResult + aPosition); } std::string ret(aResult); delete aResult; return ret; } void SALOMEDSImpl_AttributeSequenceOfReal::Load(const std::string& value) { char* aCopy = (char*)value.c_str(); char* adr = strtok(aCopy, " "); char *err = NULL; while (adr) { double r = strtod(adr, &err); Add(r); adr = strtok(NULL, " "); } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeSequenceOfReal.hxx000077500000000000000000000042631177004724000265010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeSequenceOfReal.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeSequenceOfReal_HeaderFile #define _SALOMEDSImpl_AttributeSequenceOfReal_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeSequenceOfReal : public SALOMEDSImpl_GenericAttribute { public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID() ; static SALOMEDSImpl_AttributeSequenceOfReal* Set(const DF_Label& label) ; SALOMEDSImpl_AttributeSequenceOfReal(); void Assign(const std::vector& other) ; void ChangeValue(const int Index,const double& Value) ; void Add(const double& Value) ; double Value(const int Index) ; void Remove(const int Index) ; int Length() ; const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeSequenceOfReal() {} const std::vector& Array() { return myValue; } private: std::vector myValue; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.cxx000077500000000000000000000067031177004724000251020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeString.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeString.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeString::GetID () { static std::string CommentID ("1808A12F-AD0E-4a6a-B58A-395DCF469FE9"); return CommentID; } SALOMEDSImpl_AttributeString* SALOMEDSImpl_AttributeString::Set (const DF_Label& L, const std::string& Val) { SALOMEDSImpl_AttributeString* A = NULL; if (!(A=(SALOMEDSImpl_AttributeString*)L.FindAttribute(SALOMEDSImpl_AttributeString::GetID()))) { A = new SALOMEDSImpl_AttributeString(); L.AddAttribute(A); } A->SetValue(Val); return A; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeString::SetValue (const std::string& S) { CheckLocked(); if(myString == S) return; Backup(); myString = S; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeString::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeString::NewEmpty () const { return new SALOMEDSImpl_AttributeString(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeString::Restore(DF_Attribute* with) { myString = dynamic_cast(with)->Value (); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeString::Paste (DF_Attribute* into) { dynamic_cast(into)->SetValue(myString); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeString.hxx000077500000000000000000000042231177004724000251020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeIOR.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeString_HeaderFile #define _SALOMEDSImpl_AttributeString_HeaderFile #include "DF_Attribute.hxx" #include #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSImpl_AttributeString : public SALOMEDSImpl_GenericAttribute { private: std::string myString; public: Standard_EXPORT static const std::string& GetID() ; Standard_EXPORT SALOMEDSImpl_AttributeString() :SALOMEDSImpl_GenericAttribute("AttributeString") {} Standard_EXPORT static SALOMEDSImpl_AttributeString* Set(const DF_Label& L, const std::string& Val); Standard_EXPORT void SetValue (const std::string& S); Standard_EXPORT std::string Value() const { return myString; } Standard_EXPORT virtual std::string Save() { return myString; } Standard_EXPORT virtual void Load(const std::string& theValue) { myString = theValue; } Standard_EXPORT const std::string& ID() const; Standard_EXPORT void Restore(DF_Attribute* with) ; Standard_EXPORT DF_Attribute* NewEmpty() const; Standard_EXPORT void Paste(DF_Attribute* into); Standard_EXPORT ~SALOMEDSImpl_AttributeString() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeStudyProperties.cxx000077500000000000000000000260021177004724000270130ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeStudyProperties.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include const std::string& SALOMEDSImpl_AttributeStudyProperties::GetID() { static std::string SALOMEDSImpl_AttributeStudyPropertiesID ("128371A2-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeStudyPropertiesID; } SALOMEDSImpl_AttributeStudyProperties* SALOMEDSImpl_AttributeStudyProperties::Set(const DF_Label& label) { SALOMEDSImpl_AttributeStudyProperties* A = NULL; if (!(A=(SALOMEDSImpl_AttributeStudyProperties*)label.FindAttribute(SALOMEDSImpl_AttributeStudyProperties::GetID()))) { A = new SALOMEDSImpl_AttributeStudyProperties(); label.AddAttribute(A); } return A; } SALOMEDSImpl_AttributeStudyProperties::SALOMEDSImpl_AttributeStudyProperties() :SALOMEDSImpl_GenericAttribute("AttributeStudyProperties") { myLocked = false; myLockChanged = false; Init(); } void SALOMEDSImpl_AttributeStudyProperties::Init() { myUserName.clear(); myMinute.clear(); myHour.clear(); myDay.clear(); myMonth.clear(); myYear.clear(); myMode = 0; // none } void SALOMEDSImpl_AttributeStudyProperties::SetModification(const std::string& theUserName, const int theMinute, const int theHour, const int theDay, const int theMonth, const int theYear) { if (theMinute<0 || theMinute>60 || theHour<0 || theHour>24 || theDay<0 || theDay>31 || theMonth<0 || theMonth>12) return; CheckLocked(); Backup(); myUserName.push_back(theUserName); myMinute.push_back(theMinute); myHour.push_back(theHour); myDay.push_back(theDay); myMonth.push_back(theMonth); myYear.push_back(theYear); } void SALOMEDSImpl_AttributeStudyProperties::GetModifications (std::vector& theUserNames, std::vector& theMinutes, std::vector& theHours, std::vector& theDays, std::vector& theMonths, std::vector& theYears) const { theUserNames = myUserName; theMinutes = myMinute; theHours = myHour; theDays = myDay; theMonths = myMonth; theYears = myYear; } std::string SALOMEDSImpl_AttributeStudyProperties::GetCreatorName() const { if (myUserName.size() == 0) return std::string(""); return myUserName[0]; } bool SALOMEDSImpl_AttributeStudyProperties::GetCreationDate (int& theMinute, int& theHour, int& theDay, int& theMonth, int& theYear) const { if (myMinute.size() != 0) { theMinute = myMinute[0]; theHour = myHour[0]; theDay = myDay[0]; theMonth = myMonth[0]; theYear = myYear[0]; return true; } return false; } void SALOMEDSImpl_AttributeStudyProperties::ChangeCreatorName(const std::string& theName) { if (myUserName.size() > 0) { CheckLocked(); Backup(); myUserName[0] = theName; } } void SALOMEDSImpl_AttributeStudyProperties::SetCreationMode(const int theMode) { CheckLocked(); Backup(); myMode = theMode; } int SALOMEDSImpl_AttributeStudyProperties::GetCreationMode() const { return myMode; } void SALOMEDSImpl_AttributeStudyProperties::SetModified(const int theModified) { myModified = theModified; } bool SALOMEDSImpl_AttributeStudyProperties::IsModified() const { return (myModified != 0); } int SALOMEDSImpl_AttributeStudyProperties::GetModified() const { return myModified; } void SALOMEDSImpl_AttributeStudyProperties::SetLocked(const bool theLocked) { // Backup(); if (myLocked != theLocked) { myLockChanged = true; myLocked = theLocked; } } bool SALOMEDSImpl_AttributeStudyProperties::IsLocked() const { return myLocked; } bool SALOMEDSImpl_AttributeStudyProperties::IsLockChanged(const bool theErase) { if (!myLockChanged) return false; if (theErase) myLockChanged = false; return true; } const std::string& SALOMEDSImpl_AttributeStudyProperties::ID() const { return GetID(); } void SALOMEDSImpl_AttributeStudyProperties::Restore(DF_Attribute* with) { SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(with); Init(); std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; aProp->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); for (int i = 0, len = aNames.size(); i < len; i++) { myUserName.push_back(aNames[i]); myMinute.push_back(aMinutes[i]); myHour.push_back(aHours[i]); myDay.push_back(aDays[i]); myMonth.push_back(aMonths[i]); myYear.push_back(aYears[i]); } myMode = aProp->GetCreationMode(); // myModified = aProp->GetModified(); // myLocked = aProp->IsLocked(); } DF_Attribute* SALOMEDSImpl_AttributeStudyProperties::NewEmpty() const { return new SALOMEDSImpl_AttributeStudyProperties(); } void SALOMEDSImpl_AttributeStudyProperties::Paste(DF_Attribute* into) { SALOMEDSImpl_AttributeStudyProperties* aProp = dynamic_cast(into); aProp->Init(); int i; for(i = 0; i < myUserName.size(); i++) { aProp->SetModification(myUserName[i], myMinute[i], myHour[i], myDay[i], myMonth[i], myYear[i]); } aProp->SetCreationMode(myMode); // aProp->SetModified(myModified); // aProp->SetLocked(myLocked); } std::string SALOMEDSImpl_AttributeStudyProperties::Save() { std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); int aLength, anIndex, unitsSize = 0, commentSize = 0;; for (aLength = 0, anIndex = aNames.size()-1; anIndex >= 0; anIndex--) aLength += aNames[anIndex].size() + 1; std::string units = GetUnits(); std::string comment = GetComment(); unitsSize = units.size(); commentSize = comment.size(); char* aProperty = new char[3 + aLength + 12 * aNames.size() + 1 + unitsSize + 1 + commentSize]; char crMode = (char)GetCreationMode(); sprintf(aProperty,"%c%c", crMode, IsLocked()?'l':'u'); aLength = aNames.size(); int a = 2; for (anIndex = 0; anIndex < aLength; anIndex++) { sprintf(&(aProperty[a]),"%2d%2d%2d%2d%4d%s", (int)(aMinutes[anIndex]), (int)(aHours[anIndex]), (int)(aDays[anIndex]), (int)(aMonths[anIndex]), (int)(aYears[anIndex]), (char*)(aNames[anIndex].c_str())); a = strlen(aProperty); aProperty[a++] = 1; } //Write delimeter of the section to define end of the modifications section aProperty[a++] = 30; //Write units if need if(units.size() > 0) { sprintf(&(aProperty[a]),"%s",units.c_str()); a = strlen(aProperty); } aProperty[a++] = 1; //delimeter of the units and comments //Write comments if need if(comment.size() > 0) { sprintf(&(aProperty[a]),"%s",comment.c_str()); a = strlen(aProperty); a++; } aProperty[a] = 0; std::string prop(aProperty); delete aProperty; return prop; } void SALOMEDSImpl_AttributeStudyProperties::SetUnits(const std::string& theUnits) { if(myUnits == theUnits) return; myUnits = theUnits; } std::string SALOMEDSImpl_AttributeStudyProperties::GetUnits() { return myUnits; } void SALOMEDSImpl_AttributeStudyProperties::SetComment(const std::string& theComment) { if(myComment == theComment) return; myComment = theComment; } std::string SALOMEDSImpl_AttributeStudyProperties::GetComment() { return myComment; } void SALOMEDSImpl_AttributeStudyProperties::Load(const std::string& value) { char* aCopy = (char*)value.c_str(); int crMode = (int)aCopy[0]; SetCreationMode(crMode); int anIndex; for (anIndex = 2; anIndex + 2 < value.size() ;) { char str[10]; int aMinute, aHour, aDay, aMonth, aYear; str[0] = aCopy[anIndex++]; str[1] = aCopy[anIndex++]; str[2] = 0; aMinute = atoi(str); str[0] = aCopy[anIndex++]; str[1] = aCopy[anIndex++]; aHour = atoi(str); str[0] = aCopy[anIndex++]; str[1] = aCopy[anIndex++]; aDay = atoi(str); str[0] = aCopy[anIndex++]; str[1] = aCopy[anIndex++]; aMonth = atoi(str); str[0] = aCopy[anIndex++]; str[1] = aCopy[anIndex++]; str[2] = aCopy[anIndex++]; str[3] = aCopy[anIndex++]; str[4] = 0; aYear = atoi(str); int aNameSize; for(aNameSize = 0; aCopy[anIndex+aNameSize]!=1; aNameSize++); char *aName = new char[aNameSize+1]; strncpy(aName, &(aCopy[anIndex]), aNameSize); aName[aNameSize] = 0; SetModification(aName,aMinute,aHour,aDay,aMonth,aYear); delete [] (aName); anIndex += aNameSize + 1; //Check end of the modifications section if(anIndex < value.size() && aCopy[anIndex] == 30) break; } //Case then study contains units and comment properties if( anIndex < value.size() ) { anIndex++; //skip the delimeter of the sections: char(30) int unitsSize; for(unitsSize = 0; aCopy[anIndex+unitsSize] != 1; unitsSize++); if(unitsSize > 0) { char *anUnits = new char[unitsSize+1]; strncpy(anUnits, &(aCopy[anIndex]), unitsSize); anUnits[unitsSize] = 0; SetUnits(anUnits); delete [] (anUnits); } anIndex += unitsSize + 1; int commentSize; for(commentSize = 0; aCopy[anIndex+commentSize] != 0; commentSize++); if(commentSize > 0) { char *aComment = new char[commentSize+1]; strncpy(aComment, &(aCopy[anIndex]), commentSize); aComment[commentSize] = 0; SetComment(aComment); delete [] (aComment); } anIndex += commentSize; } if (aCopy[1] == 'l') { SetLocked(true); } SetModified(0); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeStudyProperties.hxx000077500000000000000000000065461177004724000270330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeStudyProperties.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeStudyProperties_HeaderFile #define _SALOMEDSImpl_AttributeStudyProperties_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeStudyProperties : public SALOMEDSImpl_GenericAttribute { public: SALOMEDSImpl_AttributeStudyProperties(); ~SALOMEDSImpl_AttributeStudyProperties() {} static const std::string& GetID(); const std::string& ID() const; static SALOMEDSImpl_AttributeStudyProperties* Set(const DF_Label& label); void Init(); virtual std::string Save(); virtual void Load(const std::string&); void SetModification(const std::string& theUserName, const int theMinute, const int theHour, const int theDay, const int theMonth, const int theYear); void GetModifications(std::vector& theUserNames, std::vector& theMinutes, std::vector& theHours, std::vector& theDays, std::vector& theMonths, std::vector& theYears) const; std::string GetCreatorName() const; bool GetCreationDate(int& theMinute, int& theHour, int& theDay, int& theMonth, int& theYear) const; void ChangeCreatorName(const std::string& theUserName); void SetUnits(const std::string& theUnits); std::string GetUnits(); void SetComment(const std::string& theComment); std::string GetComment(); void SetCreationMode(const int theMode); int GetCreationMode() const; void SetModified(const int theModified); bool IsModified() const; int GetModified() const; void SetLocked(const bool theLocked); bool IsLocked() const; bool IsLockChanged(const bool theErase); void Restore(DF_Attribute* with); DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); private: std::vector myUserName; std::vector myMinute; std::vector myHour; std::vector myDay; std::vector myMonth; std::vector myYear; std::string myUnits; std::string myComment; int myMode; int myModified; bool myLocked; bool myLockChanged; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTable.hxx000077500000000000000000000100601177004724000246570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTable.hxx // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // #ifndef _SALOMEDSImpl_AttributeTable_HeaderFile #define _SALOMEDSImpl_AttributeTable_HeaderFile #include "SALOMEDSImpl_Defines.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTable { public: //! Sort order typedef enum { AscendingOrder, //!< The items are sorted ascending DescendingOrder, //!< The items are sorted descending } SortOrder; //! Sort policy (specifies how empty cells are taken into account when sorting) typedef enum { EmptyLowest, //!< Empty cells are considered as lowest values EmptyHighest, //!< Empty cells are considered as highest values EmptyFirst, //!< Empty cells are always first EmptyLast, //!< Empty cells are always last EmptyIgnore, //!< Empty cells are ignored (stay at initial positions) } SortPolicy; }; template class TableSorter { TTable* myTable; SALOMEDSImpl_AttributeTable::SortOrder mySortOrder; SALOMEDSImpl_AttributeTable::SortPolicy mySortPolicy; int myIndex; bool myIsRow; public: TableSorter( TTable* table, SALOMEDSImpl_AttributeTable::SortOrder so, SALOMEDSImpl_AttributeTable::SortPolicy sp, int index, bool sortRow) : myTable( table ), mySortOrder( so ), mySortPolicy( sp ), myIndex( index ), myIsRow( sortRow ) {} bool operator() ( int idx1, int idx2 ) { bool hasValue1 = myIsRow ? myTable->HasValue( myIndex, idx1 ) : myTable->HasValue( idx1, myIndex ); bool hasValue2 = myIsRow ? myTable->HasValue( myIndex, idx2 ) : myTable->HasValue( idx2, myIndex ); if ( !hasValue1 && !hasValue2 ) { return false; } else if ( !hasValue1 || !hasValue2 ) { switch ( mySortPolicy ) { case SALOMEDSImpl_AttributeTable::EmptyLowest: return (!hasValue1) ? (mySortOrder == SALOMEDSImpl_AttributeTable::AscendingOrder) : (mySortOrder == SALOMEDSImpl_AttributeTable::DescendingOrder); case SALOMEDSImpl_AttributeTable::EmptyHighest: return (!hasValue1) ? (mySortOrder != SALOMEDSImpl_AttributeTable::AscendingOrder) : (mySortOrder != SALOMEDSImpl_AttributeTable::DescendingOrder); case SALOMEDSImpl_AttributeTable::EmptyFirst: return (!hasValue1); case SALOMEDSImpl_AttributeTable::EmptyLast: return hasValue1; case SALOMEDSImpl_AttributeTable::EmptyIgnore: default: // should not go here return false; } } else { if ( myIsRow ) { return mySortOrder == SALOMEDSImpl_AttributeTable::AscendingOrder ? myTable->GetValue( myIndex, idx1 ) < myTable->GetValue( myIndex, idx2 ) : myTable->GetValue( myIndex, idx2 ) < myTable->GetValue( myIndex, idx1 ); } else { return mySortOrder == SALOMEDSImpl_AttributeTable::AscendingOrder ? myTable->GetValue( idx1, myIndex ) < myTable->GetValue( idx2, myIndex ) : myTable->GetValue( idx2, myIndex ) < myTable->GetValue( idx1, myIndex ); } } } }; #endif // _SALOMEDSImpl_AttributeTable_HeaderFile salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfInteger.cxx000077500000000000000000000551311177004724000264650ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTableOfInteger.cxx // Author : Michael Ponikarov // Module : SALOME // #include "SALOMEDSImpl_AttributeTableOfInteger.hxx" #include #include #define SEPARATOR '\1' typedef std::map::const_iterator MI; static std::string getUnit(std::string theString) { std::string aString(theString); int aPos = aString.find(SEPARATOR); if(aPos <= 0 || aPos == aString.size() ) return std::string(); return aString.substr(aPos+1, aString.size()); } static std::string getTitle(std::string theString) { std::string aString(theString); int aPos = aString.find(SEPARATOR); if(aPos < 1) return aString; if(aPos == 0) return std::string(); return aString.substr(0, aPos); } const std::string& SALOMEDSImpl_AttributeTableOfInteger::GetID() { static std::string SALOMEDSImpl_AttributeTableOfIntegerID ("128371A0-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeTableOfIntegerID; } SALOMEDSImpl_AttributeTableOfInteger* SALOMEDSImpl_AttributeTableOfInteger::Set(const DF_Label& label) { SALOMEDSImpl_AttributeTableOfInteger* A = NULL; if (!(A=(SALOMEDSImpl_AttributeTableOfInteger*)label.FindAttribute(SALOMEDSImpl_AttributeTableOfInteger::GetID()))) { A = new SALOMEDSImpl_AttributeTableOfInteger(); label.AddAttribute(A); } return A; } SALOMEDSImpl_AttributeTableOfInteger::SALOMEDSImpl_AttributeTableOfInteger() :SALOMEDSImpl_GenericAttribute("AttributeTableOfInteger") { myNbRows = 0; myNbColumns = 0; } void SALOMEDSImpl_AttributeTableOfInteger::SetNbColumns(const int theNbColumns) { CheckLocked(); Backup(); std::map aMap; aMap = myTable; myTable.clear(); for(MI p = aMap.begin(); p != aMap.end(); p++) { int aRow = (int)(p->first/myNbColumns) + 1; int aCol = (int)(p->first - myNbColumns*(aRow-1)); if(aCol == 0) { aCol = myNbColumns; aRow--; } if(aCol > theNbColumns) continue; int aKey = (aRow-1)*theNbColumns+aCol; myTable[aKey] = p->second; } myNbColumns = theNbColumns; while (myCols.size() < myNbColumns) { // append empty columns titles myCols.push_back(std::string("")); } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfInteger::SetTitle(const std::string& theTitle) { CheckLocked(); Backup(); myTitle = theTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributeTableOfInteger::GetTitle() const { return myTitle; } void SALOMEDSImpl_AttributeTableOfInteger::SetRowData(const int theRow, const std::vector& theData) { CheckLocked(); if(theData.size() > myNbColumns) SetNbColumns(theData.size()); Backup(); while (myRows.size() < theRow) { // append new row titles myRows.push_back(std::string("")); } int i, aShift = (theRow-1)*myNbColumns, aLength = theData.size(); for(i = 1; i <= aLength; i++) { myTable[aShift + i] = theData[i-1]; } if(theRow > myNbRows) myNbRows = theRow; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetRowData(const int theRow) { std::vector aSeq; int i, aShift = (theRow-1)*myNbColumns; for(i = 1; i <= myNbColumns; i++) { if(myTable.find(aShift+i) != myTable.end()) aSeq.push_back(myTable[aShift+i]); else aSeq.push_back(0); } return aSeq; } void SALOMEDSImpl_AttributeTableOfInteger::SetRowTitle(const int theRow, const std::string& theTitle) { CheckLocked(); Backup(); std::string aTitle(theTitle), aUnit = GetRowUnit(theRow); if(aUnit.size()>0) { aTitle += SEPARATOR; aTitle += aUnit; } myRows[theRow-1] = aTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfInteger::SetRowUnit(const int theRow, const std::string& theUnit) { CheckLocked(); Backup(); std::string aTitle = GetRowTitle(theRow); aTitle += SEPARATOR; aTitle += theUnit; myRows[theRow-1] = aTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfInteger::SetRowUnits(const std::vector& theUnits) { if (theUnits.size() != GetNbRows()) throw DFexception("Invalid number of rows"); int aLength = theUnits.size(), i; for(i = 1; i <= aLength; i++) SetRowUnit(i, theUnits[i-1]); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetRowUnits() { std::vector aSeq; int aLength = myRows.size(), i; for(i=0; i& theTitles) { if (theTitles.size() != GetNbRows()) throw DFexception("Invalid number of rows"); int aLength = theTitles.size(), i; for(i = 1; i <= aLength; i++) SetRowTitle(i, theTitles[i-1]); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetRowTitles() { std::vector aSeq; int aLength = myRows.size(), i; for(i=0; i& theData) { CheckLocked(); if(theColumn > myNbColumns) SetNbColumns(theColumn); Backup(); int i, aLength = theData.size(); for(i = 1; i <= aLength; i++) { myTable[myNbColumns*(i-1)+theColumn] = theData[i-1]; } if(aLength > myNbRows) { myNbRows = aLength; while (myRows.size() < myNbRows) { // append empty row titles myRows.push_back(std::string("")); } } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetColumnData(const int theColumn) { std::vector aSeq; int i, anIndex; for(i = 1; i <= myNbRows; i++) { anIndex = myNbColumns*(i-1) + theColumn; if(myTable.find(anIndex) != myTable.end()) aSeq.push_back(myTable[anIndex]); else aSeq.push_back(0); } return aSeq; } void SALOMEDSImpl_AttributeTableOfInteger::SetColumnTitle(const int theColumn, const std::string& theTitle) { CheckLocked(); Backup(); while(myCols.size() < theColumn) myCols.push_back(std::string("")); myCols[theColumn-1] = theTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributeTableOfInteger::GetColumnTitle(const int theColumn) const { if(myCols.empty()) return ""; if(myCols.size() < theColumn) return ""; return myCols[theColumn-1]; } void SALOMEDSImpl_AttributeTableOfInteger::SetColumnTitles(const std::vector& theTitles) { if (theTitles.size() != myNbColumns) throw DFexception("Invalid number of columns"); int aLength = theTitles.size(), i; for(i = 0; i < aLength; i++) myCols[i] = theTitles[i]; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetColumnTitles() { std::vector aSeq; int aLength = myCols.size(), i; for(i=0; i myNbColumns) SetNbColumns(theColumn); int anIndex = (theRow-1)*myNbColumns + theColumn; myTable[anIndex] = theValue; if(theRow > myNbRows) { while (myRows.size() < theRow) { // append empty row titles myRows.push_back(std::string("")); } myNbRows = theRow; } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } bool SALOMEDSImpl_AttributeTableOfInteger::HasValue(const int theRow, const int theColumn) { if(theRow > myNbRows || theRow < 1) return false; if(theColumn > myNbColumns || theColumn < 1) return false; int anIndex = (theRow-1)*myNbColumns + theColumn; return (myTable.find(anIndex) != myTable.end()); } int SALOMEDSImpl_AttributeTableOfInteger::GetValue(const int theRow, const int theColumn) { if(theRow > myNbRows || theRow < 1) throw DFexception("Invalid cell index"); if(theColumn > myNbColumns || theColumn < 1) throw DFexception("Invalid cell index"); int anIndex = (theRow-1)*myNbColumns + theColumn; if(myTable.find(anIndex) != myTable.end()) return myTable[anIndex]; throw DFexception("Invalid cell index"); return 0; } void SALOMEDSImpl_AttributeTableOfInteger::RemoveValue(const int theRow, const int theColumn) { CheckLocked(); if(theRow > myNbRows || theRow < 1) throw DFexception("Invalid cell index"); if(theColumn > myNbColumns || theColumn < 1) throw DFexception("Invalid cell index"); int anIndex = (theRow-1)*myNbColumns + theColumn; if (myTable.find(anIndex) != myTable.end()) { //Backup(); myTable.erase(anIndex); SetModifyFlag(); // table is modified } } const std::string& SALOMEDSImpl_AttributeTableOfInteger::ID() const { return GetID(); } void SALOMEDSImpl_AttributeTableOfInteger::Restore(DF_Attribute* with) { int anIndex; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(with); if(!aTable) throw DFexception("Can't Restore from a null attribute"); myTable.clear(); myCols.clear(); myRows.clear(); myTable = aTable->myTable; myNbRows = aTable->myNbRows; myNbColumns = aTable->myNbColumns; myTitle = aTable->myTitle; for(anIndex = 1; anIndex <= aTable->GetNbRows();anIndex++) myRows.push_back(aTable->GetRowTitle(anIndex)); for(anIndex = 1; anIndex <= aTable->GetNbColumns(); anIndex++) myCols.push_back(aTable->GetColumnTitle(anIndex)); } DF_Attribute* SALOMEDSImpl_AttributeTableOfInteger::NewEmpty() const { return new SALOMEDSImpl_AttributeTableOfInteger(); } void SALOMEDSImpl_AttributeTableOfInteger::Paste(DF_Attribute* into) { int anIndex; SALOMEDSImpl_AttributeTableOfInteger* aTable = dynamic_cast(into); if(!aTable) throw DFexception("Can't Paste into a null attribute"); aTable->myTable.clear(); aTable->myCols.clear(); aTable->myRows.clear(); aTable->myTable = myTable; aTable->myTitle = myTitle; aTable->myNbRows = myNbRows; aTable->myNbColumns = myNbColumns; for(anIndex = 1; anIndex <= GetNbRows();anIndex++) aTable->myRows.push_back(GetRowTitle(anIndex)); for(anIndex = 1; anIndex <= GetNbColumns(); anIndex++) aTable->myCols.push_back(GetColumnTitle(anIndex)); } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetSetRowIndices(const int theRow) { std::vector aSeq; int i, aShift = myNbColumns*(theRow-1); for(i = 1; i <= myNbColumns; i++) { if(myTable.find(aShift + i) != myTable.end()) aSeq.push_back(i); } return aSeq; } std::vector SALOMEDSImpl_AttributeTableOfInteger::GetSetColumnIndices(const int theColumn) { std::vector aSeq; int i, anIndex; for(i = 1; i <= myNbRows; i++) { anIndex = myNbColumns*(i-1)+theColumn; if(myTable.find(anIndex) != myTable.end()) aSeq.push_back(i); } return aSeq; } std::string SALOMEDSImpl_AttributeTableOfInteger::Save() { std::string aString; char* buffer = new char[1024]; int i, j, l; //Title l = myTitle.size(); sprintf(buffer, "%d\n", l); aString+=buffer; for(i=0; ifirst, p->second); aString += buffer; } delete []buffer; return aString; } void SALOMEDSImpl_AttributeTableOfInteger::Load(const std::string& value) { std::vector v; int i, j, l, pos, aSize = (int)value.size(); for(i = 0, pos = 0; i SALOMEDSImpl_AttributeTableOfInteger::SortRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theRow > 0 && theRow <= myNbRows ) { std::vector indices( myNbColumns ); int cnt = 0; for ( int i = 0; i < myNbColumns; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(theRow, i+1) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theRow, true ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbColumns ); cnt = 0; for( int i = 0; i < myNbColumns; i++ ) other[i] = HasValue(theRow, i+1) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int col = 0; col < indices.size(); col++ ) { int idx = indices[col]; if ( col+1 == idx ) continue; SwapCells(theRow, col+1, theRow, idx); int idx1 = 0; for ( int i = col+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == col+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapCells() } return result; } std::vector SALOMEDSImpl_AttributeTableOfInteger::SortColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theColumn > 0 && theColumn <= myNbColumns ) { std::vector indices( myNbRows ); int cnt = 0; for ( int i = 0; i < myNbRows; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(i+1, theColumn) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theColumn, false ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbRows ); cnt = 0; for( int i = 0; i < myNbRows; i++ ) other[i] = HasValue(i+1, theColumn) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int row = 0; row < indices.size(); row++ ) { int idx = indices[row]; if ( row+1 == idx ) continue; SwapCells(row+1, theColumn, idx, theColumn); int idx1 = 0; for ( int i = row+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == row+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapCells() } return result; } std::vector SALOMEDSImpl_AttributeTableOfInteger::SortByRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theRow > 0 && theRow <= myNbRows ) { std::vector indices( myNbColumns ); int cnt = 0; for ( int i = 0; i < myNbColumns; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(theRow, i+1) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theRow, true ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbColumns ); cnt = 0; for( int i = 0; i < myNbColumns; i++ ) other[i] = HasValue(theRow, i+1) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int col = 0; col < indices.size(); col++ ) { int idx = indices[col]; if ( col+1 == idx ) continue; SwapColumns(col+1, idx); int idx1 = 0; for ( int i = col+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == col+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapColumns() } return result; } std::vector SALOMEDSImpl_AttributeTableOfInteger::SortByColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theColumn > 0 && theColumn <= myNbColumns ) { std::vector indices( myNbRows ); int cnt = 0; for ( int i = 0; i < myNbRows; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(i+1, theColumn) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theColumn, false ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbRows ); cnt = 0; for( int i = 0; i < myNbRows; i++ ) other[i] = HasValue(i+1, theColumn) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int row = 0; row < indices.size(); row++ ) { int idx = indices[row]; if ( row+1 == idx ) continue; SwapRows(row+1, idx); int idx1 = 0; for ( int i = row+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == row+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapRows() } return result; } void SALOMEDSImpl_AttributeTableOfInteger::SwapCells(const int theRow1, const int theColumn1, const int theRow2, const int theColumn2) { CheckLocked(); if (theRow1 > myNbRows || theRow1 < 1) throw DFexception("Invalid cell index"); if (theRow2 > myNbRows || theRow2 < 1) throw DFexception("Invalid cell index"); if (theColumn1 > myNbColumns || theColumn1 < 1) throw DFexception("Invalid cell index"); if (theColumn2 > myNbColumns || theColumn2 < 1) throw DFexception("Invalid cell index"); int anIndex1 = (theRow1-1)*myNbColumns + theColumn1; int anIndex2 = (theRow2-1)*myNbColumns + theColumn2; bool hasValue1 = myTable.find(anIndex1) != myTable.end(); bool hasValue2 = myTable.find(anIndex2) != myTable.end(); if (!hasValue1 && !hasValue2) return; // nothing changed int value1 = hasValue1 ? myTable[anIndex1] : 0; int value2 = hasValue2 ? myTable[anIndex2] : 0; if (hasValue1 && hasValue2 && value1 == value2) return; // nothing changed if (hasValue1) myTable[anIndex2] = value1; else myTable.erase(anIndex2); if (hasValue2) myTable[anIndex1] = value2; else myTable.erase(anIndex1); SetModifyFlag(); // table is modified } void SALOMEDSImpl_AttributeTableOfInteger::SwapRows(const int theRow1, const int theRow2) { CheckLocked(); for (int i = 1; i <= myNbColumns; i++) SwapCells(theRow1, i, theRow2, i); // swap row titles std::string tmp = myRows[theRow1-1]; myRows[theRow1-1] = myRows[theRow2-1]; myRows[theRow2-1] = tmp; // no need for SetModifyFlag(), since it is done by SwapCells() } void SALOMEDSImpl_AttributeTableOfInteger::SwapColumns(const int theColumn1, const int theColumn2) { CheckLocked(); for (int i = 1; i <= myNbRows; i++) SwapCells(i, theColumn1, i, theColumn2); // swap column titles std::string tmp = myCols[theColumn1-1]; myCols[theColumn1-1] = myCols[theColumn2-1]; myCols[theColumn2-1] = tmp; // no need for SetModifyFlag(), since it is done by SwapCells() } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfInteger.hxx000077500000000000000000000115541177004724000264730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDSImpl : data structure of SALOME and sources of Salome data server // File : SALOMEDSImpl_AttributeTableOfInteger.hxx // Author : Michael Ponikarov // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTableOfInteger_HeaderFile #define _SALOMEDSImpl_AttributeTableOfInteger_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTable.hxx" #include #include #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTableOfInteger : public SALOMEDSImpl_GenericAttribute, public SALOMEDSImpl_AttributeTable { public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID(); static SALOMEDSImpl_AttributeTableOfInteger* Set(const DF_Label& label); SALOMEDSImpl_AttributeTableOfInteger(); void SetNbColumns(const int theNbColumns); void SetTitle(const std::string& theTitle); std::string GetTitle() const; void SetRowData(const int theRow, const std::vector& theData); std::vector GetRowData(const int theRow); void SetRowTitle(const int theRow, const std::string& theTitle); void SetRowUnit(const int theRow, const std::string& theUnit); std::string GetRowUnit(const int theRow) const; void SetRowUnits(const std::vector& theUnits); std::vector GetRowUnits(); void SetRowTitles(const std::vector& theTitles); std::vector GetRowTitles(); std::string GetRowTitle(const int theRow) const; void SetColumnData(const int theColumn, const std::vector& theData); std::vector GetColumnData(const int theColumn); void SetColumnTitle(const int theColumn, const std::string& theTitle); std::string GetColumnTitle(const int theColumn) const; void SetColumnTitles(const std::vector& theTitles); std::vector GetColumnTitles(); int GetNbRows() const; int GetNbColumns() const; void PutValue(const int theValue, const int theRow, const int theColumn); bool HasValue(const int theRow, const int theColumn); int GetValue(const int theRow, const int theColumn); void RemoveValue(const int theRow, const int theColumn); const std::string& ID() const; void Restore(DF_Attribute* with); DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); std::vector GetSetRowIndices(const int theRow); std::vector GetSetColumnIndices(const int theColumn); std::vector SortRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortByRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortByColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy); void SwapCells(const int theRow1, const int theColumn1, const int theRow2, const int theColumn2); void SwapRows(const int theRow1, const int theRow2); void SwapColumns(const int theColumn1, const int theColumn2); ~SALOMEDSImpl_AttributeTableOfInteger() {} private: std::map myTable; std::string myTitle; std::vector myRows; std::vector myCols; int myNbRows; int myNbColumns; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfReal.cxx000077500000000000000000000545641177004724000257640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTableOfReal.cxx // Author : Michael Ponikarov // Module : SALOME // #include "SALOMEDSImpl_AttributeTableOfReal.hxx" #include #include #define SEPARATOR '\1' typedef std::map::const_iterator MI; static std::string getUnit(const std::string& theString) { std::string aString(theString); int aPos = aString.find(SEPARATOR); return aPos < 0 || aPos == aString.size()-1 ? std::string() : aString.substr(aPos+1, aString.size()); } static std::string getTitle(const std::string& theString) { std::string aString(theString); int aPos = aString.find(SEPARATOR); return aPos < 0 ? aString :aString.substr(0, aPos); } const std::string& SALOMEDSImpl_AttributeTableOfReal::GetID() { static std::string SALOMEDSImpl_AttributeTableOfRealID ("128371A1-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeTableOfRealID; } SALOMEDSImpl_AttributeTableOfReal* SALOMEDSImpl_AttributeTableOfReal::Set(const DF_Label& label) { SALOMEDSImpl_AttributeTableOfReal* A = NULL; if (!(A=(SALOMEDSImpl_AttributeTableOfReal*)label.FindAttribute(SALOMEDSImpl_AttributeTableOfReal::GetID()))) { A = new SALOMEDSImpl_AttributeTableOfReal(); label.AddAttribute(A); } return A; } SALOMEDSImpl_AttributeTableOfReal::SALOMEDSImpl_AttributeTableOfReal() :SALOMEDSImpl_GenericAttribute("AttributeTableOfReal") { myNbRows = 0; myNbColumns = 0; } void SALOMEDSImpl_AttributeTableOfReal::SetNbColumns(const int theNbColumns) { CheckLocked(); Backup(); std::map aMap; aMap = myTable; myTable.clear(); for(MI p = aMap.begin(); p != aMap.end(); p++) { int aRow = (int)(p->first/myNbColumns) + 1; int aCol = (int)(p->first - myNbColumns*(aRow-1)); if(aCol == 0) { aCol = myNbColumns; aRow--; } if(aCol > theNbColumns) continue; int aKey = (aRow-1)*theNbColumns+aCol; myTable[aKey] = p->second; } myNbColumns = theNbColumns; while (myCols.size() < myNbColumns) { // append empty columns titles myCols.push_back(std::string("")); } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfReal::SetTitle(const std::string& theTitle) { CheckLocked(); Backup(); myTitle = theTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributeTableOfReal::GetTitle() const { return myTitle; } void SALOMEDSImpl_AttributeTableOfReal::SetRowData(const int theRow, const std::vector& theData) { CheckLocked(); if(theData.size() > myNbColumns) SetNbColumns(theData.size()); Backup(); while (myRows.size() < theRow) { // append new row titles myRows.push_back(std::string("")); } int i, aShift = (theRow-1)*myNbColumns, aLength = theData.size(); for(i = 1; i <= aLength; i++) { myTable[aShift + i] = theData[i-1]; } if(theRow > myNbRows) myNbRows = theRow; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfReal::GetRowData(const int theRow) { std::vector aSeq; int i, aShift = (theRow-1)*myNbColumns; for(i = 1; i <= myNbColumns; i++) { if(myTable.find(aShift+i) != myTable.end()) aSeq.push_back(myTable[aShift+i]); else aSeq.push_back(0.); } return aSeq; } void SALOMEDSImpl_AttributeTableOfReal::SetRowTitle(const int theRow, const std::string& theTitle) { CheckLocked(); Backup(); std::string aTitle(theTitle), aUnit = GetRowUnit(theRow); if(aUnit.size()>0) { aTitle += SEPARATOR; aTitle += aUnit; } myRows[theRow-1] = aTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfReal::SetRowUnit(const int theRow, const std::string& theUnit) { CheckLocked(); Backup(); std::string aTitle = GetRowTitle(theRow); aTitle += SEPARATOR; aTitle += theUnit; myRows[theRow-1] = aTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfReal::SetRowUnits(const std::vector& theUnits) { if (theUnits.size() != GetNbRows()) throw DFexception("Invalid number of rows"); int aLength = theUnits.size(), i; for(i = 1; i <= aLength; i++) SetRowUnit(i, theUnits[i-1]); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfReal::GetRowUnits() { std::vector aSeq; int aLength = myRows.size(), i; for(i=0; i& theTitles) { if (theTitles.size() != GetNbRows()) throw DFexception("Invalid number of rows"); int aLength = theTitles.size(), i; for(i = 1; i <= aLength; i++) SetRowTitle(i, theTitles[i-1]); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfReal::GetRowTitles() { std::vector aSeq; int aLength = myRows.size(), i; for(i=0; i& theData) { CheckLocked(); if(theColumn > myNbColumns) SetNbColumns(theColumn); Backup(); int i, aLength = theData.size(); for(i = 1; i <= aLength; i++) { myTable[myNbColumns*(i-1)+theColumn] = theData[i-1]; } if(aLength > myNbRows) { myNbRows = aLength; while (myRows.size() < myNbRows) { // append empty row titles myRows.push_back(std::string("")); } } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfReal::GetColumnData(const int theColumn) { std::vector aSeq; int i, anIndex; for(i = 1; i <= myNbRows; i++) { anIndex = myNbColumns*(i-1) + theColumn; if(myTable.find(anIndex) != myTable.end()) aSeq.push_back(myTable[anIndex]); else aSeq.push_back(0.); } return aSeq; } void SALOMEDSImpl_AttributeTableOfReal::SetColumnTitle(const int theColumn, const std::string& theTitle) { CheckLocked(); Backup(); while(myCols.size() < theColumn) myCols.push_back(std::string("")); myCols[theColumn-1] = theTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributeTableOfReal::GetColumnTitle(const int theColumn) const { if(myCols.empty()) return ""; if(myCols.size() < theColumn) return ""; return myCols[theColumn-1]; } void SALOMEDSImpl_AttributeTableOfReal::SetColumnTitles(const std::vector& theTitles) { if (theTitles.size() != myNbColumns) throw DFexception("Invalid number of columns"); int aLength = theTitles.size(), i; for(i = 0; i < aLength; i++) myCols[i] = theTitles[i]; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfReal::GetColumnTitles() { std::vector aSeq; int aLength = myCols.size(), i; for(i=0; i myNbColumns) SetNbColumns(theColumn); int anIndex = (theRow-1)*myNbColumns + theColumn; myTable[anIndex] = theValue; if(theRow > myNbRows) { while (myRows.size() < theRow) { // append empty row titles myRows.push_back(std::string("")); } myNbRows = theRow; } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } bool SALOMEDSImpl_AttributeTableOfReal::HasValue(const int theRow, const int theColumn) { if(theRow > myNbRows || theRow < 1) return false; if(theColumn > myNbColumns || theColumn < 1) return false; int anIndex = (theRow-1)*myNbColumns + theColumn; return (myTable.find(anIndex) != myTable.end()); } double SALOMEDSImpl_AttributeTableOfReal::GetValue(const int theRow, const int theColumn) { if(theRow > myNbRows || theRow < 1) throw DFexception("Invalid cell index"); if(theColumn > myNbColumns || theColumn < 1) throw DFexception("Invalid cell index"); int anIndex = (theRow-1)*myNbColumns + theColumn; if(myTable.find(anIndex) != myTable.end()) return myTable[anIndex]; throw DFexception("Invalid cell index"); return 0.; } void SALOMEDSImpl_AttributeTableOfReal::RemoveValue(const int theRow, const int theColumn) { CheckLocked(); if(theRow > myNbRows || theRow < 1) throw DFexception("Invalid cell index"); if(theColumn > myNbColumns || theColumn < 1) throw DFexception("Invalid cell index"); int anIndex = (theRow-1)*myNbColumns + theColumn; if (myTable.find(anIndex) != myTable.end()) { //Backup(); myTable.erase(anIndex); SetModifyFlag(); // table is modified } } const std::string& SALOMEDSImpl_AttributeTableOfReal::ID() const { return GetID(); } void SALOMEDSImpl_AttributeTableOfReal::Restore(DF_Attribute* with) { int anIndex; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(with); if(!aTable) throw DFexception("Can't Restore from a null attribute"); myTable.clear(); myCols.clear(); myRows.clear(); myTable = aTable->myTable; myNbRows = aTable->myNbRows; myNbColumns = aTable->myNbColumns; myTitle = aTable->myTitle; for(anIndex = 1; anIndex <= aTable->GetNbRows();anIndex++) myRows.push_back(aTable->GetRowTitle(anIndex)); for(anIndex = 1; anIndex <= aTable->GetNbColumns(); anIndex++) myCols.push_back(aTable->GetColumnTitle(anIndex)); } DF_Attribute* SALOMEDSImpl_AttributeTableOfReal::NewEmpty() const { return new SALOMEDSImpl_AttributeTableOfReal(); } void SALOMEDSImpl_AttributeTableOfReal::Paste(DF_Attribute* into) { int anIndex; SALOMEDSImpl_AttributeTableOfReal* aTable = dynamic_cast(into); if(!aTable) throw DFexception("Can't Paste into a null attribute"); aTable->myTable.clear(); aTable->myCols.clear(); aTable->myRows.clear(); aTable->myTable = myTable; aTable->myTitle = myTitle; aTable->myNbRows = myNbRows; aTable->myNbColumns = myNbColumns; for(anIndex = 1; anIndex <= GetNbRows();anIndex++) aTable->myRows.push_back(GetRowTitle(anIndex)); for(anIndex = 1; anIndex <= GetNbColumns(); anIndex++) aTable->myCols.push_back(GetColumnTitle(anIndex)); } std::vector SALOMEDSImpl_AttributeTableOfReal::GetSetRowIndices(const int theRow) { std::vector aSeq; int i, aShift = myNbColumns*(theRow-1); for(i = 1; i <= myNbColumns; i++) { if(myTable.find(aShift + i) != myTable.end()) aSeq.push_back(i); } return aSeq; } std::vector SALOMEDSImpl_AttributeTableOfReal::GetSetColumnIndices(const int theColumn) { std::vector aSeq; int i, anIndex; for(i = 1; i <= myNbRows; i++) { anIndex = myNbColumns*(i-1)+theColumn; if(myTable.find(anIndex) != myTable.end()) aSeq.push_back(i); } return aSeq; } std::string SALOMEDSImpl_AttributeTableOfReal::Save() { std::string aString; char* buffer = new char[1024]; int i, j, l; //Title l = myTitle.size(); sprintf(buffer, "%d\n", l); aString+=buffer; for(i=0; ifirst, p->second); aString += buffer; } delete []buffer; return aString; } void SALOMEDSImpl_AttributeTableOfReal::Load(const std::string& value) { std::vector v; int i, j, l, pos, aSize = (int)value.size(); for(i = 0, pos = 0; i SALOMEDSImpl_AttributeTableOfReal::SortRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theRow > 0 && theRow <= myNbRows ) { std::vector indices( myNbColumns ); int cnt = 0; for ( int i = 0; i < myNbColumns; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(theRow, i+1) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theRow, true ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbColumns ); cnt = 0; for( int i = 0; i < myNbColumns; i++ ) other[i] = HasValue(theRow, i+1) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int col = 0; col < indices.size(); col++ ) { int idx = indices[col]; if ( col+1 == idx ) continue; SwapCells(theRow, col+1, theRow, idx); int idx1 = 0; for ( int i = col+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == col+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapCells() } return result; } std::vector SALOMEDSImpl_AttributeTableOfReal::SortColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theColumn > 0 && theColumn <= myNbColumns ) { std::vector indices( myNbRows ); int cnt = 0; for ( int i = 0; i < myNbRows; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(i+1, theColumn) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theColumn, false ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbRows ); cnt = 0; for( int i = 0; i < myNbRows; i++ ) other[i] = HasValue(i+1, theColumn) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int row = 0; row < indices.size(); row++ ) { int idx = indices[row]; if ( row+1 == idx ) continue; SwapCells(row+1, theColumn, idx, theColumn); int idx1 = 0; for ( int i = row+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == row+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapCells() } return result; } std::vector SALOMEDSImpl_AttributeTableOfReal::SortByRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theRow > 0 && theRow <= myNbRows ) { std::vector indices( myNbColumns ); int cnt = 0; for ( int i = 0; i < myNbColumns; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(theRow, i+1) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theRow, true ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbColumns ); cnt = 0; for( int i = 0; i < myNbColumns; i++ ) other[i] = HasValue(theRow, i+1) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int col = 0; col < indices.size(); col++ ) { int idx = indices[col]; if ( col+1 == idx ) continue; SwapColumns(col+1, idx); int idx1 = 0; for ( int i = col+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == col+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapColumns() } return result; } std::vector SALOMEDSImpl_AttributeTableOfReal::SortByColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theColumn > 0 && theColumn <= myNbColumns ) { std::vector indices( myNbRows ); int cnt = 0; for ( int i = 0; i < myNbRows; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(i+1, theColumn) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theColumn, false ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbRows ); cnt = 0; for( int i = 0; i < myNbRows; i++ ) other[i] = HasValue(i+1, theColumn) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int row = 0; row < indices.size(); row++ ) { int idx = indices[row]; if ( row+1 == idx ) continue; SwapRows(row+1, idx); int idx1 = 0; for ( int i = row+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == row+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapRows() } return result; } void SALOMEDSImpl_AttributeTableOfReal::SwapCells(const int theRow1, const int theColumn1, const int theRow2, const int theColumn2) { CheckLocked(); if (theRow1 > myNbRows || theRow1 < 1) throw DFexception("Invalid cell index"); if (theRow2 > myNbRows || theRow2 < 1) throw DFexception("Invalid cell index"); if (theColumn1 > myNbColumns || theColumn1 < 1) throw DFexception("Invalid cell index"); if (theColumn2 > myNbColumns || theColumn2 < 1) throw DFexception("Invalid cell index"); int anIndex1 = (theRow1-1)*myNbColumns + theColumn1; int anIndex2 = (theRow2-1)*myNbColumns + theColumn2; bool hasValue1 = myTable.find(anIndex1) != myTable.end(); bool hasValue2 = myTable.find(anIndex2) != myTable.end(); if (!hasValue1 && !hasValue2) return; // nothing changed double value1 = hasValue1 ? myTable[anIndex1] : 0; double value2 = hasValue2 ? myTable[anIndex2] : 0; if (hasValue1 && hasValue2 && value1 == value2) return; // nothing changed if (hasValue1) myTable[anIndex2] = value1; else myTable.erase(anIndex2); if (hasValue2) myTable[anIndex1] = value2; else myTable.erase(anIndex1); SetModifyFlag(); // table is modified } void SALOMEDSImpl_AttributeTableOfReal::SwapRows(const int theRow1, const int theRow2) { CheckLocked(); for (int i = 1; i <= myNbColumns; i++) SwapCells(theRow1, i, theRow2, i); // swap row titles std::string tmp = myRows[theRow1-1]; myRows[theRow1-1] = myRows[theRow2-1]; myRows[theRow2-1] = tmp; // no need for SetModifyFlag(), since it is done by SwapCells() } void SALOMEDSImpl_AttributeTableOfReal::SwapColumns(const int theColumn1, const int theColumn2) { CheckLocked(); for (int i = 1; i <= myNbRows; i++) SwapCells(i, theColumn1, i, theColumn2); // swap column titles std::string tmp = myCols[theColumn1-1]; myCols[theColumn1-1] = myCols[theColumn2-1]; myCols[theColumn2-1] = tmp; // no need for SetModifyFlag(), since it is done by SwapCells() } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfReal.hxx000077500000000000000000000115371177004724000257620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDSImpl : data structure of SALOME and sources of Salome data server // File : SALOMEDSImpl_AttributeTableOfReal.hxx // Author : Michael Ponikarov // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTableOfReal_HeaderFile #define _SALOMEDSImpl_AttributeTableOfReal_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTable.hxx" #include #include #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTableOfReal : public SALOMEDSImpl_GenericAttribute, public SALOMEDSImpl_AttributeTable { public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID(); static SALOMEDSImpl_AttributeTableOfReal* Set(const DF_Label& label); SALOMEDSImpl_AttributeTableOfReal(); void SetNbColumns(const int theNbColumns); void SetTitle(const std::string& theTitle); std::string GetTitle() const; void SetRowData(const int theRow, const std::vector& theData); std::vector GetRowData(const int theRow); void SetRowTitle(const int theRow, const std::string& theTitle); void SetRowUnit(const int theRow, const std::string& theUnit); std::string GetRowUnit(const int theRow) const; void SetRowUnits(const std::vector& theUnits); std::vector GetRowUnits(); void SetRowTitles(const std::vector& theTitles); std::vector GetRowTitles(); std::string GetRowTitle(const int theRow) const; void SetColumnData(const int theColumn, const std::vector& theData); std::vector GetColumnData(const int theColumn); void SetColumnTitle(const int theColumn, const std::string& theTitle); void SetColumnTitles(const std::vector& theTitles); std::vector GetColumnTitles(); std::string GetColumnTitle(const int theColumn) const; int GetNbRows() const; int GetNbColumns() const; void PutValue(const double& theValue, const int theRow, const int theColumn); bool HasValue(const int theRow, const int theColumn); double GetValue(const int theRow, const int theColumn); void RemoveValue(const int theRow, const int theColumn); const std::string& ID() const; void Restore(DF_Attribute* with); DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); std::vector GetSetRowIndices(const int theRow); std::vector GetSetColumnIndices(const int theColumn); std::vector SortRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortByRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortByColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy); void SwapCells(const int theRow1, const int theColumn1, const int theRow2, const int theColumn2); void SwapRows(const int theRow1, const int theRow2); void SwapColumns(const int theColumn1, const int theColumn2); ~SALOMEDSImpl_AttributeTableOfReal() {} private: std::map myTable; std::string myTitle; std::vector myRows; std::vector myCols; int myNbRows; int myNbColumns; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfString.cxx000077500000000000000000000556751177004724000263530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTableOfString.cxx // Author : Sergey Ruin // Module : SALOME // #include "SALOMEDSImpl_AttributeTableOfString.hxx" #include #include #define SEPARATOR '\1' typedef std::map::const_iterator MI; static std::string getUnit(std::string theString) { std::string aString(theString); int aPos = aString.find(SEPARATOR); if(aPos <= 0 || aPos == aString.size() ) return std::string(); return aString.substr(aPos+1, aString.size()); } static std::string getTitle(std::string theString) { std::string aString(theString); int aPos = aString.find(SEPARATOR); if(aPos < 1) return aString; if(aPos == 0) return std::string(); return aString.substr(0, aPos); } const std::string& SALOMEDSImpl_AttributeTableOfString::GetID() { static std::string SALOMEDSImpl_AttributeTableOfStringID ("128371A4-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeTableOfStringID; } SALOMEDSImpl_AttributeTableOfString* SALOMEDSImpl_AttributeTableOfString::Set(const DF_Label& label) { SALOMEDSImpl_AttributeTableOfString* A = NULL; if (!(A=(SALOMEDSImpl_AttributeTableOfString*)label.FindAttribute(SALOMEDSImpl_AttributeTableOfString::GetID()))) { A = new SALOMEDSImpl_AttributeTableOfString(); label.AddAttribute(A); } return A; } SALOMEDSImpl_AttributeTableOfString::SALOMEDSImpl_AttributeTableOfString() :SALOMEDSImpl_GenericAttribute("AttributeTableOfString") { myNbRows = 0; myNbColumns = 0; } void SALOMEDSImpl_AttributeTableOfString::SetNbColumns(const int theNbColumns) { CheckLocked(); Backup(); std::map aMap; aMap = myTable; myTable.clear(); for(MI p = aMap.begin(); p!=aMap.end(); p++) { int aRow = (int)(p->first/myNbColumns) + 1; int aCol = (int)(p->first - myNbColumns*(aRow-1)); if(aCol == 0) { aCol = myNbColumns; aRow--; } if(aCol > theNbColumns) continue; int aKey = (aRow-1)*theNbColumns+aCol; myTable[aKey] = p->second; } myNbColumns = theNbColumns; while (myCols.size() < myNbColumns) { // append empty columns titles myCols.push_back(std::string("")); } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfString::SetRowTitle(const int theRow, const std::string& theTitle) { CheckLocked(); Backup(); std::string aTitle(theTitle), aUnit = GetRowUnit(theRow); if(aUnit.size()>0) { aTitle += SEPARATOR; aTitle += aUnit; } myRows[theRow-1] = aTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfString::SetRowUnit(const int theRow, const std::string& theUnit) { CheckLocked(); Backup(); std::string aTitle = GetRowTitle(theRow); aTitle += SEPARATOR; aTitle += theUnit; myRows[theRow-1] = aTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfString::SetRowUnits(const std::vector& theUnits) { if (theUnits.size() != GetNbRows()) throw DFexception("Invalid number of rows"); int aLength = theUnits.size(), i; for(i = 1; i <= aLength; i++) SetRowUnit(i, theUnits[i-1]); } std::vector SALOMEDSImpl_AttributeTableOfString::GetRowUnits() { std::vector aSeq; int aLength = myRows.size(), i; for(i=0; i& theTitles) { if (theTitles.size() != GetNbRows()) throw DFexception("Invalid number of rows"); int aLength = theTitles.size(), i; for(i = 1; i <= aLength; i++) SetRowTitle(i, theTitles[i-1]); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfString::GetRowTitles() { std::vector aSeq; int aLength = myRows.size(), i; for(i=0; i& theData) { CheckLocked(); if(theData.size() > myNbColumns) SetNbColumns(theData.size()); Backup(); while (myRows.size() < theRow) { // append new row titles myRows.push_back(std::string("")); } int i, aShift = (theRow-1)*myNbColumns, aLength = theData.size(); for(i = 1; i <= aLength; i++) { myTable[aShift + i] = theData[i-1]; } if(theRow > myNbRows) myNbRows = theRow; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } void SALOMEDSImpl_AttributeTableOfString::SetTitle(const std::string& theTitle) { CheckLocked(); Backup(); myTitle = theTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributeTableOfString::GetTitle() const { return myTitle; } std::vector SALOMEDSImpl_AttributeTableOfString::GetRowData(const int theRow) { std::vector aSeq; int i, aShift = (theRow-1)*myNbColumns; for(i = 1; i <= myNbColumns; i++) { if(myTable.find(aShift+i) != myTable.end()) aSeq.push_back(myTable[aShift+i]); else aSeq.push_back(""); } return aSeq; } void SALOMEDSImpl_AttributeTableOfString::SetColumnData(const int theColumn, const std::vector& theData) { CheckLocked(); if(theColumn > myNbColumns) SetNbColumns(theColumn); Backup(); int i, aLength = theData.size(); for(i = 1; i <= aLength; i++) { myTable[myNbColumns*(i-1)+theColumn] = theData[i-1]; } if(aLength > myNbRows) { myNbRows = aLength; while (myRows.size() < myNbRows) { // append empty row titles myRows.push_back(std::string("")); } } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfString::GetColumnData(const int theColumn) { std::vector aSeq; int i, anIndex; for(i = 1; i <= myNbRows; i++) { anIndex = myNbColumns*(i-1) + theColumn; if(myTable.find(anIndex) != myTable.end()) aSeq.push_back(myTable[anIndex]); else aSeq.push_back(""); } return aSeq; } void SALOMEDSImpl_AttributeTableOfString::SetColumnTitle(const int theColumn, const std::string& theTitle) { CheckLocked(); Backup(); while(myCols.size() < theColumn) myCols.push_back(std::string("")); myCols[theColumn-1] = theTitle; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::string SALOMEDSImpl_AttributeTableOfString::GetColumnTitle(const int theColumn) const { if(myCols.empty()) return ""; if(myCols.size() < theColumn) return ""; return myCols[theColumn-1]; } void SALOMEDSImpl_AttributeTableOfString::SetColumnTitles(const std::vector& theTitles) { if (theTitles.size() != myNbColumns) throw DFexception("Invalid number of columns"); int aLength = theTitles.size(), i; for(i = 0; i < aLength; i++) myCols[i] = theTitles[i]; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } std::vector SALOMEDSImpl_AttributeTableOfString::GetColumnTitles() { std::vector aSeq; int aLength = myCols.size(), i; for(i=0; i myNbColumns) SetNbColumns(theColumn); int anIndex = (theRow-1)*myNbColumns + theColumn; myTable[anIndex] = theValue; if(theRow > myNbRows) { while (myRows.size() < theRow) { // append empty row titles myRows.push_back(std::string("")); } myNbRows = theRow; } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } bool SALOMEDSImpl_AttributeTableOfString::HasValue(const int theRow, const int theColumn) { if(theRow > myNbRows || theRow < 1) return false; if(theColumn > myNbColumns || theColumn < 1) return false; int anIndex = (theRow-1)*myNbColumns + theColumn; return (myTable.find(anIndex) != myTable.end()); } std::string SALOMEDSImpl_AttributeTableOfString::GetValue(const int theRow, const int theColumn) { if(theRow > myNbRows || theRow < 1) throw DFexception("Invalid cell index"); if(theColumn > myNbColumns || theColumn < 1) throw DFexception("Invalid cell index"); int anIndex = (theRow-1)*myNbColumns + theColumn; if(myTable.find(anIndex) != myTable.end()) return myTable[anIndex]; throw DFexception("Invalid cell index"); return ""; } void SALOMEDSImpl_AttributeTableOfString::RemoveValue(const int theRow, const int theColumn) { CheckLocked(); if(theRow > myNbRows || theRow < 1) throw DFexception("Invalid cell index"); if(theColumn > myNbColumns || theColumn < 1) throw DFexception("Invalid cell index"); int anIndex = (theRow-1)*myNbColumns + theColumn; if (myTable.find(anIndex) != myTable.end()) { //Backup(); myTable.erase(anIndex); SetModifyFlag(); // table is modified } } const std::string& SALOMEDSImpl_AttributeTableOfString::ID() const { return GetID(); } void SALOMEDSImpl_AttributeTableOfString::Restore(DF_Attribute* with) { int anIndex; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(with); myTable.clear(); myCols.clear(); myRows.clear(); myTable = aTable->myTable; myNbRows = aTable->myNbRows; myNbColumns = aTable->myNbColumns; myTitle = aTable->myTitle; for(anIndex = 1; anIndex <= aTable->GetNbRows();anIndex++) myRows.push_back(aTable->GetRowTitle(anIndex)); for(anIndex = 1; anIndex <= aTable->GetNbColumns(); anIndex++) myCols.push_back(aTable->GetColumnTitle(anIndex)); } DF_Attribute* SALOMEDSImpl_AttributeTableOfString::NewEmpty() const { return new SALOMEDSImpl_AttributeTableOfString(); } void SALOMEDSImpl_AttributeTableOfString::Paste(DF_Attribute* into) { int anIndex; SALOMEDSImpl_AttributeTableOfString* aTable = dynamic_cast(into); aTable->myTable.clear(); aTable->myCols.clear(); aTable->myRows.clear(); aTable->myTable = myTable; aTable->myTitle = myTitle; aTable->myNbRows = myNbRows; aTable->myNbColumns = myNbColumns; for(anIndex = 1; anIndex <= GetNbRows();anIndex++) aTable->myRows.push_back(GetRowTitle(anIndex)); for(anIndex = 1; anIndex <= GetNbColumns(); anIndex++) aTable->myCols.push_back(GetColumnTitle(anIndex)); } std::vector SALOMEDSImpl_AttributeTableOfString::GetSetRowIndices(const int theRow) { std::vector aSeq; int i, aShift = myNbColumns*(theRow-1); for(i = 1; i <= myNbColumns; i++) { if(myTable.find(aShift + i) != myTable.end()) aSeq.push_back(i); } return aSeq; } std::vector SALOMEDSImpl_AttributeTableOfString::GetSetColumnIndices(const int theColumn) { std::vector aSeq; int i, anIndex; for(i = 1; i <= myNbRows; i++) { anIndex = myNbColumns*(i-1)+theColumn; if(myTable.find(anIndex) != myTable.end()) aSeq.push_back(i); } return aSeq; } std::string SALOMEDSImpl_AttributeTableOfString::Save() { std::string aString; char* buffer = new char[1024]; int i, j, l; //Title l = myTitle.size(); sprintf(buffer, "%d\n", l); aString+=buffer; for(i=0; isecond.size()) { // check empty string in the value table sprintf(buffer, "%d\n", p->first); aString += buffer; unsigned long aValueSize = p->second.size(); sprintf(buffer, "%ld\n", aValueSize); aString +=buffer; aString += p->second; aString += '\n'; } else { // write index only of kind: "0key"; "05", for an example sprintf(buffer, "0%d\n", p->first); aString+=buffer; } } delete []buffer; return aString; } void SALOMEDSImpl_AttributeTableOfString::Load(const std::string& value) { std::vector v; int i, j, l, pos, aSize = (int)value.size(); for(i = 0, pos = 0; i SALOMEDSImpl_AttributeTableOfString::SortRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theRow > 0 && theRow <= myNbRows ) { std::vector indices( myNbColumns ); int cnt = 0; for ( int i = 0; i < myNbColumns; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(theRow, i+1) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theRow, true ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbColumns ); cnt = 0; for( int i = 0; i < myNbColumns; i++ ) other[i] = HasValue(theRow, i+1) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int col = 0; col < indices.size(); col++ ) { int idx = indices[col]; if ( col+1 == idx ) continue; SwapCells(theRow, col+1, theRow, idx); int idx1 = 0; for ( int i = col+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == col+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapCells() } return result; } std::vector SALOMEDSImpl_AttributeTableOfString::SortColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theColumn > 0 && theColumn <= myNbColumns ) { std::vector indices( myNbRows ); int cnt = 0; for ( int i = 0; i < myNbRows; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(i+1, theColumn) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theColumn, false ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbRows ); cnt = 0; for( int i = 0; i < myNbRows; i++ ) other[i] = HasValue(i+1, theColumn) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int row = 0; row < indices.size(); row++ ) { int idx = indices[row]; if ( row+1 == idx ) continue; SwapCells(row+1, theColumn, idx, theColumn); int idx1 = 0; for ( int i = row+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == row+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapCells() } return result; } std::vector SALOMEDSImpl_AttributeTableOfString::SortByRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theRow > 0 && theRow <= myNbRows ) { std::vector indices( myNbColumns ); int cnt = 0; for ( int i = 0; i < myNbColumns; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(theRow, i+1) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theRow, true ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbColumns ); cnt = 0; for( int i = 0; i < myNbColumns; i++ ) other[i] = HasValue(theRow, i+1) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int col = 0; col < indices.size(); col++ ) { int idx = indices[col]; if ( col+1 == idx ) continue; SwapColumns(col+1, idx); int idx1 = 0; for ( int i = col+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == col+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapColumns() } return result; } std::vector SALOMEDSImpl_AttributeTableOfString::SortByColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy ) { CheckLocked(); std::vector result; if ( theColumn > 0 && theColumn <= myNbColumns ) { std::vector indices( myNbRows ); int cnt = 0; for ( int i = 0; i < myNbRows; i++ ) { if ( sortPolicy != EmptyIgnore || HasValue(i+1, theColumn) ) { indices[cnt++] = i+1; } } indices.resize(cnt); TableSorter sorter( this, sortOrder, sortPolicy, theColumn, false ); std::stable_sort( indices.begin(), indices.end(), sorter ); if ( sortPolicy == EmptyIgnore ) { std::vector other( myNbRows ); cnt = 0; for( int i = 0; i < myNbRows; i++ ) other[i] = HasValue(i+1, theColumn) ? indices[cnt++] : i+1; indices = other; } result = indices; for ( int row = 0; row < indices.size(); row++ ) { int idx = indices[row]; if ( row+1 == idx ) continue; SwapRows(row+1, idx); int idx1 = 0; for ( int i = row+1; i < indices.size() && idx1 == 0; i++) if ( indices[i] == row+1 ) idx1 = i; indices[idx1] = idx; } // no need for SetModifyFlag(), since it is done by SwapRows() } return result; } void SALOMEDSImpl_AttributeTableOfString::SwapCells(const int theRow1, const int theColumn1, const int theRow2, const int theColumn2) { CheckLocked(); if (theRow1 > myNbRows || theRow1 < 1) throw DFexception("Invalid cell index"); if (theRow2 > myNbRows || theRow2 < 1) throw DFexception("Invalid cell index"); if (theColumn1 > myNbColumns || theColumn1 < 1) throw DFexception("Invalid cell index"); if (theColumn2 > myNbColumns || theColumn2 < 1) throw DFexception("Invalid cell index"); int anIndex1 = (theRow1-1)*myNbColumns + theColumn1; int anIndex2 = (theRow2-1)*myNbColumns + theColumn2; bool hasValue1 = myTable.find(anIndex1) != myTable.end(); bool hasValue2 = myTable.find(anIndex2) != myTable.end(); if (!hasValue1 && !hasValue2) return; // nothing changed std::string value1 = hasValue1 ? myTable[anIndex1] : 0; std::string value2 = hasValue2 ? myTable[anIndex2] : 0; if (hasValue1 && hasValue2 && value1 == value2) return; // nothing changed if (hasValue1) myTable[anIndex2] = value1; else myTable.erase(anIndex2); if (hasValue2) myTable[anIndex1] = value2; else myTable.erase(anIndex1); SetModifyFlag(); // table is modified } void SALOMEDSImpl_AttributeTableOfString::SwapRows(const int theRow1, const int theRow2) { CheckLocked(); for (int i = 1; i <= myNbColumns; i++) SwapCells(theRow1, i, theRow2, i); // swap row titles std::string tmp = myRows[theRow1-1]; myRows[theRow1-1] = myRows[theRow2-1]; myRows[theRow2-1] = tmp; // no need for SetModifyFlag(), since it is done by SwapCells() } void SALOMEDSImpl_AttributeTableOfString::SwapColumns(const int theColumn1, const int theColumn2) { CheckLocked(); for (int i = 1; i <= myNbRows; i++) SwapCells(i, theColumn1, i, theColumn2); // swap column titles std::string tmp = myCols[theColumn1-1]; myCols[theColumn1-1] = myCols[theColumn2-1]; myCols[theColumn2-1] = tmp; // no need for SetModifyFlag(), since it is done by SwapCells() } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfString.hxx000077500000000000000000000116031177004724000263370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDSImpl : data structure of SALOME and sources of Salome data server // File : SALOMEDSImpl_AttributeTableOfString.hxx // Author : Sergey Ruin // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTableOfString_HeaderFile #define _SALOMEDSImpl_AttributeTableOfString_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Label.hxx" #include "DF_Attribute.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeTable.hxx" #include #include #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTableOfString : public SALOMEDSImpl_GenericAttribute, public SALOMEDSImpl_AttributeTable { public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID(); static SALOMEDSImpl_AttributeTableOfString* Set(const DF_Label& label); SALOMEDSImpl_AttributeTableOfString(); void SetNbColumns(const int theNbColumns); void SetTitle(const std::string& theTitle); std::string GetTitle() const; void SetRowData(const int theRow, const std::vector& theData); std::vector GetRowData(const int theRow); void SetRowTitle(const int theRow, const std::string& theTitle); void SetRowUnit(const int theRow, const std::string& theUnit); std::string GetRowUnit(const int theRow) const; void SetRowUnits(const std::vector& theUnits); std::vector GetRowUnits(); void SetRowTitles(const std::vector& theTitles); std::vector GetRowTitles(); std::string GetRowTitle(const int theRow) const; void SetColumnData(const int theColumn, const std::vector& theData); std::vector GetColumnData(const int theColumn); void SetColumnTitle(const int theColumn, const std::string& theTitle); std::string GetColumnTitle(const int theColumn) const; void SetColumnTitles(const std::vector& theTitles); std::vector GetColumnTitles(); int GetNbRows() const; int GetNbColumns() const; void PutValue(const std::string& theValue, const int theRow, const int theColumn); bool HasValue(const int theRow, const int theColumn); std::string GetValue(const int theRow, const int theColumn); void RemoveValue(const int theRow, const int theColumn); const std::string& ID() const; void Restore(DF_Attribute* with); DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); std::vector GetSetRowIndices(const int theRow); std::vector GetSetColumnIndices(const int theColumn); std::vector SortRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortByRow(const int theRow, SortOrder sortOrder, SortPolicy sortPolicy); std::vector SortByColumn(const int theColumn, SortOrder sortOrder, SortPolicy sortPolicy); void SwapCells(const int theRow1, const int theColumn1, const int theRow2, const int theColumn2); void SwapRows(const int theRow1, const int theRow2); void SwapColumns(const int theColumn1, const int theColumn2); ~SALOMEDSImpl_AttributeTableOfString() {} private: std::map myTable; std::string myTitle; std::vector myRows; std::vector myCols; int myNbRows; int myNbColumns; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTarget.cxx000077500000000000000000000134361177004724000250630ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTarget.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeTarget.hxx" #include "SALOMEDSImpl_AttributeReference.hxx" #include "SALOMEDSImpl_Study.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeTarget::GetID () { static std::string SALOMEDSImpl_AttributeTargetID ("12837197-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeTargetID; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_AttributeTarget* SALOMEDSImpl_AttributeTarget::Set (const DF_Label& L) { SALOMEDSImpl_AttributeTarget* A = NULL; if (!(A=(SALOMEDSImpl_AttributeTarget*)L.FindAttribute(SALOMEDSImpl_AttributeTarget::GetID()))) { A = new SALOMEDSImpl_AttributeTarget(); L.AddAttribute(A); } return A; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeTarget::SALOMEDSImpl_AttributeTarget() :SALOMEDSImpl_GenericAttribute("AttributeTarget") { } void SALOMEDSImpl_AttributeTarget::SetRelation(const std::string& theRelation) { CheckLocked(); if(myRelation == theRelation) return; Backup(); myRelation = theRelation; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : Add //purpose : //======================================================================= void SALOMEDSImpl_AttributeTarget::Add(const SALOMEDSImpl_SObject& theSO) { Backup(); DF_Label aRefLabel = theSO.GetLabel(); SALOMEDSImpl_AttributeReference* aReference; if ((aReference=(SALOMEDSImpl_AttributeReference*)aRefLabel.FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { myVariables[aRefLabel.Entry()]=aReference; } SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : Get //purpose : //======================================================================= std::vector SALOMEDSImpl_AttributeTarget::Get() { std::vector aSeq; for (std::map< std::string , DF_Attribute* >::iterator iter = myVariables.begin(); iter != myVariables.end(); ++iter) aSeq.push_back( SALOMEDSImpl_Study::SObject(iter->second->Label())); return aSeq; } //======================================================================= //function : Remove //purpose : //======================================================================= void SALOMEDSImpl_AttributeTarget::Remove(const SALOMEDSImpl_SObject& theSO) { Backup(); DF_Label aRefLabel = theSO.GetLabel(); myVariables.erase(aRefLabel.Entry()); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeTarget::ID () const { return GetID(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeTarget::Restore(DF_Attribute* With) { SALOMEDSImpl_AttributeTarget* REL = dynamic_cast(With); myRelation = REL->GetRelation(); myVariables.clear(); for (std::map< std::string , DF_Attribute* >::iterator iter = REL->myVariables.begin(); iter != REL->myVariables.end(); ++iter){ myVariables[iter->first]=iter->second; } } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeTarget::NewEmpty() const { return new SALOMEDSImpl_AttributeTarget(); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeTarget::Paste(DF_Attribute* into) { SALOMEDSImpl_AttributeTarget* REL = dynamic_cast(into); REL->SetRelation(myRelation); REL->myVariables.clear(); for (std::map< std::string , DF_Attribute* >::iterator iter = myVariables.begin(); iter != myVariables.end(); ++iter){ REL->myVariables[iter->first]=iter->second; } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTarget.hxx000077500000000000000000000042541177004724000250660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTarget.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTarget_HeaderFile #define _SALOMEDSImpl_AttributeTarget_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_SObject.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTarget : public SALOMEDSImpl_GenericAttribute { private: std::string myRelation; std::map< std::string , DF_Attribute* > myVariables; public: static const std::string& GetID() ; static SALOMEDSImpl_AttributeTarget* Set(const DF_Label& label) ; SALOMEDSImpl_AttributeTarget(); void Add(const SALOMEDSImpl_SObject& theSO); std::vector Get(); void Remove(const SALOMEDSImpl_SObject& theSO); std::string GetRelation() { return myRelation; } void SetRelation(const std::string& theRelation); std::map< std::string , DF_Attribute* >& GetVariables() { return myVariables; } const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeTarget() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTextColor.cxx000077500000000000000000000113541177004724000255550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTextColor.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeTextColor.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeTextColor::GetID () { static std::string SALOMEDSImpl_AttributeTextColorID ("12837189-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeTextColorID; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeTextColor::SALOMEDSImpl_AttributeTextColor() :SALOMEDSImpl_GenericAttribute("AttributeTextColor") { myValue.clear(); myValue.push_back(0.); myValue.push_back(0.); myValue.push_back(0.); } //======================================================================= //function : SetTextColor //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextColor::SetTextColor(const double& R, const double& G, const double& B) { CheckLocked(); Backup(); myValue[0] = R; myValue[1] = G; myValue[2] = B; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : TextColor //purpose : //======================================================================= std::vector SALOMEDSImpl_AttributeTextColor::TextColor() { return myValue; } //======================================================================= //function : ChangeArray //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextColor::ChangeArray(const std::vector& newArray) { Backup(); for(int i = 0; i < 3; i++) myValue[i] = newArray[i]; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeTextColor::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeTextColor::NewEmpty () const { return new SALOMEDSImpl_AttributeTextColor(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextColor::Restore(DF_Attribute* with) { ChangeArray( dynamic_cast(with)->TextColor ()); return; } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextColor::Paste (DF_Attribute* into) { dynamic_cast(into)->ChangeArray (myValue); } std::string SALOMEDSImpl_AttributeTextColor::Save() { char *Val = new char[75]; sprintf(Val, "%f %f %f", (float)myValue[0], (float)myValue[1], (float)myValue[2]); std::string ret(Val); delete Val; return ret; } void SALOMEDSImpl_AttributeTextColor::Load(const std::string& value) { float r, g, b; sscanf(value.c_str(), "%f %f %f", &r, &g, &b); myValue[0] = r; myValue[1] = g; myValue[2] = b; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTextColor.hxx000077500000000000000000000037221177004724000255620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTextColor.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTextColor_HeaderFile #define _SALOMEDSImpl_AttributeTextColor_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTextColor : public SALOMEDSImpl_GenericAttribute { private: std::vector myValue; public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID() ; SALOMEDSImpl_AttributeTextColor(); const std::string& ID() const; void SetTextColor(const double& R, const double& G, const double& B); std::vector TextColor(); void ChangeArray(const std::vector& newArray); void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste( DF_Attribute* into); ~SALOMEDSImpl_AttributeTextColor() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTextHighlightColor.cxx000077500000000000000000000121331177004724000274010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTextHighlightColor.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx" //======================================================================= //function : GetID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeTextHighlightColor::GetID () { static std::string SALOMEDSImpl_AttributeTextHighlightColorID ("12837190-8F52-11d6-A8A3-0001021E8C7F"); return SALOMEDSImpl_AttributeTextHighlightColorID; } //======================================================================= //function : constructor //purpose : //======================================================================= SALOMEDSImpl_AttributeTextHighlightColor::SALOMEDSImpl_AttributeTextHighlightColor() :SALOMEDSImpl_GenericAttribute("AttributeTextHighlightColor") { myValue.clear(); myValue.push_back(0.0); myValue.push_back(0.0); myValue.push_back(0.0); } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeTextHighlightColor::ID () const { return GetID(); } //======================================================================= //function : SetTextHighlightColor //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextHighlightColor::SetTextHighlightColor(const double& R, const double& G, const double& B) { CheckLocked(); Backup(); myValue[0] = R; myValue[1] = G; myValue[2] = B; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : TextHighlightColor //purpose : //======================================================================= std::vector SALOMEDSImpl_AttributeTextHighlightColor::TextHighlightColor() { return myValue; } //======================================================================= //function : ChangeArray //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextHighlightColor::ChangeArray(const std::vector& newArray) { Backup(); for(int i = 0; i < 3; i++) myValue[i] = newArray[i]; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeTextHighlightColor::NewEmpty () const { return new SALOMEDSImpl_AttributeTextHighlightColor(); } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextHighlightColor::Restore(DF_Attribute* with) { ChangeArray(dynamic_cast(with)->TextHighlightColor());; return; } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeTextHighlightColor::Paste (DF_Attribute* into) { dynamic_cast(into)->ChangeArray (myValue); } std::string SALOMEDSImpl_AttributeTextHighlightColor::Save() { char *Val = new char[75]; sprintf(Val, "%f %f %f", (float)myValue[0], (float)myValue[1], (float)myValue[2]); std::string ret(Val); delete Val; return ret; } void SALOMEDSImpl_AttributeTextHighlightColor::Load(const std::string& value) { float r, g, b; sscanf(value.c_str(), "%f %f %f", &r, &g, &b); myValue[0] = r; myValue[1] = g; myValue[2] = b; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTextHighlightColor.hxx000077500000000000000000000040261177004724000274100ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTextHighlightColor.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTextHighlightColor_HeaderFile #define _SALOMEDSImpl_AttributeTextHighlightColor_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTextHighlightColor : public SALOMEDSImpl_GenericAttribute { private: std::vector myValue; public: virtual std::string Save(); virtual void Load(const std::string&); static const std::string& GetID() ; SALOMEDSImpl_AttributeTextHighlightColor(); void SetTextHighlightColor(const double& R, const double& G, const double& B); std::vector TextHighlightColor(); void ChangeArray(const std::vector& newArray); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeTextHighlightColor() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTreeNode.cxx000077500000000000000000000376111177004724000253430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTreeNode.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeTreeNode.hxx" #include const std::string& SALOMEDSImpl_AttributeTreeNode::GetDefaultTreeID() { static std::string TreeNodeID ("0E1C36E6-379B-4d90-AC37-17A14310E648"); return TreeNodeID; } SALOMEDSImpl_AttributeTreeNode::SALOMEDSImpl_AttributeTreeNode() :SALOMEDSImpl_GenericAttribute("AttributeTreeNode"), myFather(NULL), myPrevious(NULL), myNext(NULL), myFirst(NULL) {} SALOMEDSImpl_AttributeTreeNode* SALOMEDSImpl_AttributeTreeNode::Set (const DF_Label& L, const std::string& ID) { SALOMEDSImpl_AttributeTreeNode* TN = NULL; if (!(TN=(SALOMEDSImpl_AttributeTreeNode*)L.FindAttribute(ID))) { TN = new SALOMEDSImpl_AttributeTreeNode (); TN->SetTreeID(ID); L.AddAttribute(TN); } return TN; } //======================================================================= //TreeNode : ID //purpose : Returns GUID of the TreeNode //======================================================================= const std::string& SALOMEDSImpl_AttributeTreeNode::ID() const { return myTreeID; } //======================================================================= //function : Append //purpose : Add as last child of me //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::Append (SALOMEDSImpl_AttributeTreeNode* TN) { CheckLocked(); if (!(TN->ID() == myTreeID)) throw DFexception("SALOMEDSImpl_AttributeTreeNode::Append : uncompatible GUID"); if(TN->Label() == Label()) throw DFexception("Attempt of self linking"); TN->SetNext(NULL); // Deconnects from next. // Find the last if (!HasFirst()) { SetFirst(TN); TN->SetPrevious(NULL); // Deconnects from previous. } else { SALOMEDSImpl_AttributeTreeNode* Last = GetFirst(); while (Last && Last->HasNext()) { Last = Last->GetNext(); } Last->SetNext(TN); TN->SetPrevious(Last); } // Set Father TN->SetFather(this); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved return (TN); } //======================================================================= //function : Prepend //purpose : Add as first child of me //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::Prepend (SALOMEDSImpl_AttributeTreeNode* TN) { CheckLocked(); if (!(TN->ID() == myTreeID) ) throw DFexception("SALOMEDSImpl_AttributeTreeNode::Prepend : uncompatible GUID"); if(TN->Label() == Label()) throw DFexception("Attempt of self linking"); TN->SetPrevious(NULL); if (HasFirst()) { TN->SetNext(GetFirst()); GetFirst()->SetPrevious(TN); } else { TN->SetNext(NULL); } TN->SetFather(this); SetFirst(TN); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved return (TN); } //======================================================================= //function : InsertBefore //purpose : Inserts the TreeNode before me //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::InsertBefore (SALOMEDSImpl_AttributeTreeNode* TN) { CheckLocked(); if (!(TN->ID() == myTreeID) ) throw DFexception("SALOMEDSImpl_AttributeTreeNode::InsertBefore : uncompatible GUID"); if(TN->Label() == Label()) throw DFexception("Attempt of self linking"); TN->SetFather(GetFather()); TN->SetPrevious(GetPrevious()); TN->SetNext(this); if (!HasPrevious()) GetFather()->SetFirst(TN); else GetPrevious()->SetNext(TN); SetPrevious(TN); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved return (TN); } //======================================================================= //function : InsertAfter //purpose : Inserts the TreeNode after me //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::InsertAfter (SALOMEDSImpl_AttributeTreeNode* TN) { CheckLocked(); if(TN->Label() == Label()) throw DFexception("Attempt of self linking"); if (!(TN->ID() == myTreeID) ) throw DFexception("SALOMEDSImpl_AttributeTreeNode::InsertAfter : uncompatible GUID"); TN->SetFather(GetFather()); TN->SetPrevious(this); TN->SetNext(GetNext()); if (HasNext()) GetNext()->SetPrevious(TN); SetNext(TN); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved return (TN); } //======================================================================= //function : Remove //purpose : Removees the function from the function tree //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::Remove () { CheckLocked(); if (IsRoot()) return true; if (!HasPrevious()) GetFather()->SetFirst(GetNext()); else GetPrevious()->SetNext(GetNext()); if (HasNext()) { if (HasPrevious()) GetNext()->SetPrevious(GetPrevious()); else GetNext()->SetPrevious(NULL); } else { if (HasPrevious()) GetPrevious()->SetNext(NULL); } if (GetFather()->HasFirst()) { if (this == GetFather()->GetFirst()) { if (HasNext()) { GetFather()->SetFirst(GetNext()); } else GetFather()->SetFirst(NULL); } } SetFather(NULL); SetNext(NULL); SetPrevious(NULL); SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved return true; } //======================================================================= //function : Depth //purpose : //======================================================================= int SALOMEDSImpl_AttributeTreeNode::Depth () const { int depth = 0; SALOMEDSImpl_AttributeTreeNode* current = (SALOMEDSImpl_AttributeTreeNode*)this; while (current) { depth++; current = current->GetFather(); } return depth; } //======================================================================= //function : SetTreeID //purpose : Finds or creates a TreeNode attribute with explicit ID // : a driver for it //======================================================================= void SALOMEDSImpl_AttributeTreeNode::SetTreeID (const std::string& explicitID) { myTreeID = explicitID; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : IsAscendant //purpose : //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::IsAscendant (const SALOMEDSImpl_AttributeTreeNode* ofTN) const { return ofTN->IsDescendant(this); } //======================================================================= //function : IsDescendant //purpose : //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::IsDescendant (const SALOMEDSImpl_AttributeTreeNode* ofTN) const { SALOMEDSImpl_AttributeTreeNode* current = (SALOMEDSImpl_AttributeTreeNode*)this; while (current) { if (current->GetFather() == ofTN) return true; current = current->GetFather(); } return false; } //======================================================================= //function : IsFather //purpose : //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::IsFather (const SALOMEDSImpl_AttributeTreeNode* ofTN) const { return (ofTN->GetFather() == this); } //======================================================================= //function : IsChild //purpose : //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::IsChild (const SALOMEDSImpl_AttributeTreeNode* ofTN) const { return (myFather == ofTN); } //======================================================================= //TreeNode : IsRoot //purpose : Returns Standard_True if the TreeNode is not attached to a // TreeNode tree or hasn't an Father. //======================================================================= bool SALOMEDSImpl_AttributeTreeNode::IsRoot() const { if (!myFather && !myPrevious && !myNext) return true; return false; } //======================================================================= //TreeNode : Root //purpose : Returns the TreeNode which has no Father //======================================================================= SALOMEDSImpl_AttributeTreeNode* SALOMEDSImpl_AttributeTreeNode::Root() const { SALOMEDSImpl_AttributeTreeNode* O = (SALOMEDSImpl_AttributeTreeNode*)this; while (O && O->HasFather()) O = O->GetFather(); return O; } //======================================================================= //TreeNode : SetFather //purpose : Sets the TreeNode F as Father of me //======================================================================= void SALOMEDSImpl_AttributeTreeNode::SetFather(const SALOMEDSImpl_AttributeTreeNode* F) { CheckLocked(); Backup(); myFather = (SALOMEDSImpl_AttributeTreeNode*)F; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //TreeNode : SetNext //purpose : Sets the TreeNode F next to me //======================================================================= void SALOMEDSImpl_AttributeTreeNode::SetNext(const SALOMEDSImpl_AttributeTreeNode* F) { CheckLocked(); Backup(); myNext = (SALOMEDSImpl_AttributeTreeNode*)F; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //TreeNode : SetPrevious //purpose : Sets the TreeNode F previous to me //======================================================================= void SALOMEDSImpl_AttributeTreeNode::SetPrevious(const SALOMEDSImpl_AttributeTreeNode* F) { CheckLocked(); Backup(); myPrevious = (SALOMEDSImpl_AttributeTreeNode*)F; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //TreeNode : SetFirst //purpose : Sets the TreeNode F as first in the TreeNode tree //======================================================================= void SALOMEDSImpl_AttributeTreeNode::SetFirst(const SALOMEDSImpl_AttributeTreeNode* F) { CheckLocked(); Backup(); myFirst = (SALOMEDSImpl_AttributeTreeNode*)F; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //TreeNode : AfterAddition //purpose : Connects the TreeNode to the tree. //======================================================================= void SALOMEDSImpl_AttributeTreeNode::AfterAddition() { if (myPrevious) { myPrevious->SetNext(this); } else if (myFather) { myFather->SetFirst(this); } if (myNext) { myNext->SetPrevious(this); } } //======================================================================= //TreeNode : BeforeForget //purpose : Disconnect the TreeNode from the tree. //======================================================================= void SALOMEDSImpl_AttributeTreeNode::BeforeForget() { Remove(); while (HasFirst()) GetFirst()->Remove(); } //======================================================================= //TreeNode : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeTreeNode::Restore(DF_Attribute* other) { SALOMEDSImpl_AttributeTreeNode* F = dynamic_cast(other); myFather = F->myFather; myPrevious = F->myPrevious; myNext = F->myNext; myFirst = F->myFirst; myTreeID = F->myTreeID; } //======================================================================= //TreeNode : Paste //purpose : Method for Copy mechanism //======================================================================= void SALOMEDSImpl_AttributeTreeNode::Paste(DF_Attribute* into) { SALOMEDSImpl_AttributeTreeNode* intof = dynamic_cast(into); intof->SetFather(myFather); intof->SetNext(myNext); intof->SetPrevious(myPrevious); intof->SetFirst(myFirst); intof->SetTreeID(myTreeID); } //======================================================================= //TreeNode : NewEmpty //purpose : Returns new empty TreeNode attribute //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeTreeNode::NewEmpty() const { SALOMEDSImpl_AttributeTreeNode* T = new SALOMEDSImpl_AttributeTreeNode(); T->SetTreeID(myTreeID); return T; } std::string SALOMEDSImpl_AttributeTreeNode::Type() { char* aNodeName = new char[127]; sprintf(aNodeName, "AttributeTreeNodeGUID%s", ID().c_str()); std::string ret(aNodeName); delete [] aNodeName; return ret; } std::string SALOMEDSImpl_AttributeTreeNode::Save() { std::string aFather, aPrevious, aNext, aFirst; if (HasFather()) aFather = GetFather()->Label().Entry(); else aFather = "!"; if (HasPrevious()) aPrevious = GetPrevious()->Label().Entry(); else aPrevious = "!"; if (HasNext()) aNext = GetNext()->Label().Entry(); else aNext = "!"; if (HasFirst()) aFirst = GetFirst()->Label().Entry(); else aFirst = "!"; int aLength = 4; aLength += aFather.size() + aPrevious.size() + aNext.size() + aFirst.size(); char* aResult = new char[aLength]; sprintf(aResult, "%s %s %s %s", aFather.c_str(), aPrevious.c_str(), aNext.c_str(), aFirst.c_str()); std::string ret(aResult); delete [] aResult; return ret; } void SALOMEDSImpl_AttributeTreeNode::Load(const std::string& value) { char* aCopy = (char*)value.c_str(); char* adr = strtok(aCopy, " "); DF_Label aLabel; SALOMEDSImpl_AttributeTreeNode* aDepNode = NULL; if (adr && adr[0] != '!') { aLabel = DF_Label::Label(Label(), adr, true); if (!(aDepNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(ID()))) aDepNode = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, ID()); SetFather(aDepNode); } adr = strtok(NULL, " "); if (adr && adr[0] != '!') { aLabel = DF_Label::Label(Label(), adr, true); if (!(aDepNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(ID()))) aDepNode = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, ID()); SetPrevious(aDepNode); } adr = strtok(NULL, " "); if (adr && adr[0] != '!') { aLabel = DF_Label::Label(Label(), adr, true); if (!(aDepNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(ID()))) aDepNode = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, ID()); SetNext(aDepNode); } adr = strtok(NULL, " "); if (adr && adr[0] != '!') { aLabel = DF_Label::Label(Label(), adr, true); if (!(aDepNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(ID()))) aDepNode = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, ID()); SetFirst(aDepNode); } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeTreeNode.hxx000077500000000000000000000070771177004724000253530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeTreeNode.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeTreeNode_HeaderFile #define _SALOMEDSImpl_AttributeTreeNode_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeTreeNode : public SALOMEDSImpl_GenericAttribute { public: const static std::string& GetDefaultTreeID(); static SALOMEDSImpl_AttributeTreeNode* Set(const DF_Label& L, const std::string& ID); SALOMEDSImpl_AttributeTreeNode(); void SetFather(const SALOMEDSImpl_AttributeTreeNode* value); void SetPrevious(const SALOMEDSImpl_AttributeTreeNode* value); void SetNext(const SALOMEDSImpl_AttributeTreeNode* value); void SetFirst(const SALOMEDSImpl_AttributeTreeNode* value); void SetTreeID(const std::string& value); bool Append(SALOMEDSImpl_AttributeTreeNode* value); bool Prepend(SALOMEDSImpl_AttributeTreeNode* value); bool Remove(); bool InsertBefore(SALOMEDSImpl_AttributeTreeNode* value); bool InsertAfter(SALOMEDSImpl_AttributeTreeNode* value); SALOMEDSImpl_AttributeTreeNode* GetFather() const { return myFather; } SALOMEDSImpl_AttributeTreeNode* GetPrevious() const { return myPrevious; } SALOMEDSImpl_AttributeTreeNode* GetNext() const { return myNext; } SALOMEDSImpl_AttributeTreeNode* GetFirst() const { return myFirst; } bool HasFather() { return (myFather); } bool HasPrevious() { return (myPrevious); } bool HasNext() {return (myNext); } bool HasFirst() { return (myFirst); } const std::string& GetTreeID() { return ID(); } int Depth() const; bool IsRoot() const ; SALOMEDSImpl_AttributeTreeNode* Root() const; bool IsAscendant (const SALOMEDSImpl_AttributeTreeNode* ofTN) const; bool IsDescendant(const SALOMEDSImpl_AttributeTreeNode* value) const; bool IsFather(const SALOMEDSImpl_AttributeTreeNode* value) const; bool IsChild(const SALOMEDSImpl_AttributeTreeNode* value) const; virtual std::string Save(); virtual void Load(const std::string&); virtual std::string Type(); const std::string& ID() const; void Restore(DF_Attribute* with) ; void Paste(DF_Attribute* into); DF_Attribute* NewEmpty() const; ~SALOMEDSImpl_AttributeTreeNode() {;} virtual void AfterAddition(); virtual void BeforeForget(); private: std::string myTreeID; SALOMEDSImpl_AttributeTreeNode* myFather; SALOMEDSImpl_AttributeTreeNode* myPrevious; SALOMEDSImpl_AttributeTreeNode* myNext; SALOMEDSImpl_AttributeTreeNode* myFirst; friend class SALOMEDSImpl_ChildNodeIterator; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeUserID.cxx000077500000000000000000000067521177004724000247730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeUAttribute.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_AttributeUserID.hxx" #include "Basics_Utils.hxx" std::string SALOMEDSImpl_AttributeUserID::DefaultID() { return Kernel_Utils::GetGUID(Kernel_Utils::DefUserID); } SALOMEDSImpl_AttributeUserID* SALOMEDSImpl_AttributeUserID::Set (const DF_Label& L, const std::string& ID) { SALOMEDSImpl_AttributeUserID* A = NULL; if (!(A=(SALOMEDSImpl_AttributeUserID*)L.FindAttribute(ID))) { A = new SALOMEDSImpl_AttributeUserID(); A->SetValue(ID); L.AddAttribute(A); } return A; } //======================================================================= //function : ID //purpose : //======================================================================= const std::string& SALOMEDSImpl_AttributeUserID::ID() const { return myID; } //======================================================================= //function : SetValue //purpose : //======================================================================= void SALOMEDSImpl_AttributeUserID::SetValue( const std::string& guid) { CheckLocked(); if(myID == guid) return; Backup(); myID = guid; SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved } //======================================================================= //function : NewEmpty //purpose : //======================================================================= DF_Attribute* SALOMEDSImpl_AttributeUserID::NewEmpty () const { SALOMEDSImpl_AttributeUserID* A = new SALOMEDSImpl_AttributeUserID(); A->SetValue(myID); return A; } //======================================================================= //function : Restore //purpose : //======================================================================= void SALOMEDSImpl_AttributeUserID::Restore(DF_Attribute* with) { SALOMEDSImpl_AttributeUserID* A = dynamic_cast(with); SetValue( A->ID() ); } //======================================================================= //function : Paste //purpose : //======================================================================= void SALOMEDSImpl_AttributeUserID::Paste (DF_Attribute* into) { SALOMEDSImpl_AttributeUserID* A = dynamic_cast(into); A->SetValue( myID ); } std::string SALOMEDSImpl_AttributeUserID::Type() { char* aUAttrName = new char[127]; sprintf(aUAttrName, "AttributeUserID_%s",ID().c_str()); std::string ret(aUAttrName); delete aUAttrName; return ret; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_AttributeUserID.hxx000077500000000000000000000037011177004724000247670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_AttributeUAttribute.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef _SALOMEDSImpl_AttributeUserID_HeaderFile #define _SALOMEDSImpl_AttributeUserID_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include #include "SALOMEDSImpl_GenericAttribute.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AttributeUserID : public SALOMEDSImpl_GenericAttribute { private: std::string myID; public: SALOMEDSImpl_AttributeUserID():SALOMEDSImpl_GenericAttribute("AttributeUserID") {} static SALOMEDSImpl_AttributeUserID* Set (const DF_Label& L, const std::string& ID); static std::string DefaultID(); const std::string& Value() const { return ID(); } void SetValue(const std::string& value); virtual std::string Type(); const std::string& ID() const; void Restore(DF_Attribute* with) ; DF_Attribute* NewEmpty() const; void Paste(DF_Attribute* into); ~SALOMEDSImpl_AttributeUserID() {} }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Attributes.hxx000077500000000000000000000174501177004724000241040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Attributes.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_ATTRIBUTES__H__ #define __SALOMEDSIMPL_ATTRIBUTES__H__ #include "SALOMEDSImpl_Defines.hxx" #include class SALOMEDSIMPL_EXPORT LockProtection { public : LockProtection(const char *message) { std::cerr << message << std::endl; } }; #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_AttributeName.hxx" #include "SALOMEDSImpl_AttributeComment.hxx" #include "SALOMEDSImpl_AttributeInteger.hxx" #include "SALOMEDSImpl_AttributeReal.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" #include "SALOMEDSImpl_AttributeUserID.hxx" #include "SALOMEDSImpl_AttributeReference.hxx" #include "SALOMEDSImpl_AttributeSequenceOfReal.hxx" #include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" #include "SALOMEDSImpl_AttributePersistentRef.hxx" #include "SALOMEDSImpl_AttributeDrawable.hxx" #include "SALOMEDSImpl_AttributeSelectable.hxx" #include "SALOMEDSImpl_AttributeExpandable.hxx" #include "SALOMEDSImpl_AttributeOpened.hxx" #include "SALOMEDSImpl_AttributeTextColor.hxx" #include "SALOMEDSImpl_AttributeTextHighlightColor.hxx" #include "SALOMEDSImpl_AttributePixMap.hxx" #include "SALOMEDSImpl_AttributeLocalID.hxx" #include "SALOMEDSImpl_AttributeTarget.hxx" #include "SALOMEDSImpl_AttributeTableOfInteger.hxx" #include "SALOMEDSImpl_AttributeTableOfReal.hxx" #include "SALOMEDSImpl_AttributeTableOfString.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include "SALOMEDSImpl_AttributePythonObject.hxx" #include "SALOMEDSImpl_AttributeExternalFileDef.hxx" #include "SALOMEDSImpl_AttributeFileType.hxx" #include "SALOMEDSImpl_AttributeFlags.hxx" #include "SALOMEDSImpl_AttributeGraphic.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_AttributeString.hxx" #define __AttributeTypeToGUIDForSObject \ if(theType == "AttributeReal") return SALOMEDSImpl_AttributeReal::GetID(); \ if(theType == "AttributeInteger") return SALOMEDSImpl_AttributeInteger::GetID(); \ if(theType == "AttributeSequenceOfReal") return SALOMEDSImpl_AttributeSequenceOfReal::GetID(); \ if(theType == "AttributeSequenceOfInteger") return SALOMEDSImpl_AttributeSequenceOfInteger::GetID(); \ if(theType == "AttributeName") return SALOMEDSImpl_AttributeName::GetID(); \ if(theType == "AttributeComment") return SALOMEDSImpl_AttributeComment::GetID(); \ if(theType == "AttributeIOR") return SALOMEDSImpl_AttributeIOR::GetID(); \ if(theType == "AttributePersistentRef") return SALOMEDSImpl_AttributePersistentRef::GetID(); \ if(theType == "AttributeDrawable") return SALOMEDSImpl_AttributeDrawable::GetID(); \ if(theType == "AttributeSelectable") return SALOMEDSImpl_AttributeSelectable::GetID(); \ if(theType == "AttributeExpandable") return SALOMEDSImpl_AttributeExpandable::GetID(); \ if(theType == "AttributeOpened") return SALOMEDSImpl_AttributeOpened::GetID(); \ if(theType == "AttributeTextColor") return SALOMEDSImpl_AttributeTextColor::GetID(); \ if(theType == "AttributeTextHighlightColor") return SALOMEDSImpl_AttributeTextHighlightColor::GetID(); \ if(theType == "AttributePixMap") return SALOMEDSImpl_AttributePixMap::GetID(); \ if(theType == "AttributeLocalID") return SALOMEDSImpl_AttributeLocalID::GetID(); \ if(theType == "AttributeTarget") return SALOMEDSImpl_AttributeTarget::GetID(); \ if(theType == "AttributeTableOfInteger") return SALOMEDSImpl_AttributeTableOfInteger::GetID(); \ if(theType == "AttributeTableOfReal") return SALOMEDSImpl_AttributeTableOfReal::GetID(); \ if(theType == "AttributeTableOfString") return SALOMEDSImpl_AttributeTableOfString::GetID(); \ if(theType == "AttributeStudyProperties") return SALOMEDSImpl_AttributeStudyProperties::GetID(); \ if(theType == "AttributePythonObject") return SALOMEDSImpl_AttributePythonObject::GetID(); \ if(theType == "AttributeUserID") return std::string("FFFFFFFF-D9CD-11d6-945D-1050DA506788"); \ if(theType == "AttributeExternalFileDef") return SALOMEDSImpl_AttributeExternalFileDef::GetID(); \ if(theType == "AttributeFileType") return SALOMEDSImpl_AttributeFileType::GetID(); \ if(theType == "AttributeFlags") return SALOMEDSImpl_AttributeFlags::GetID(); \ if(theType == "AttributeGraphic") return SALOMEDSImpl_AttributeGraphic::GetID(); \ if(theType == "AttributeReference") return SALOMEDSImpl_AttributeReference::GetID(); \ if(theType == "AttributeParameter") return SALOMEDSImpl_AttributeParameter::GetID(); \ if(theType == "AttributeString") return SALOMEDSImpl_AttributeString::GetID(); #define __FindOrCreateAttributeLocked(ClassName) if (strcmp(aTypeOfAttribute.c_str(), #ClassName) == 0) { \ SALOMEDSImpl_##ClassName* anAttr; \ if (!(anAttr=(SALOMEDSImpl_##ClassName*)Lab.FindAttribute(SALOMEDSImpl_##ClassName::GetID()))) { \ CheckLocked(); \ anAttr = new SALOMEDSImpl_##ClassName; \ Lab.AddAttribute(anAttr); \ } \ return anAttr; \ } #define __FindOrCreateAttribute(ClassName) if (strcmp(aTypeOfAttribute.c_str(), #ClassName) == 0) { \ SALOMEDSImpl_##ClassName* anAttr; \ if (!(anAttr=(SALOMEDSImpl_##ClassName*)Lab.FindAttribute(SALOMEDSImpl_##ClassName::GetID()))) { \ anAttr = new SALOMEDSImpl_##ClassName; \ Lab.AddAttribute(anAttr); \ } \ return anAttr; \ } #define __FindOrCreateAttributeForBuilder \ __FindOrCreateAttributeLocked(AttributeReal) \ __FindOrCreateAttributeLocked(AttributeInteger) \ __FindOrCreateAttributeLocked(AttributeSequenceOfReal) \ __FindOrCreateAttributeLocked(AttributeSequenceOfInteger) \ __FindOrCreateAttributeLocked(AttributeName) \ __FindOrCreateAttributeLocked(AttributeComment) \ __FindOrCreateAttributeLocked(AttributeIOR) \ __FindOrCreateAttributeLocked(AttributePixMap) \ __FindOrCreateAttributeLocked(AttributeLocalID) \ __FindOrCreateAttributeLocked(AttributeTableOfInteger) \ __FindOrCreateAttributeLocked(AttributeTableOfReal) \ __FindOrCreateAttributeLocked(AttributeTableOfString) \ __FindOrCreateAttributeLocked(AttributePythonObject) \ __FindOrCreateAttributeLocked(AttributeParameter) \ __FindOrCreateAttributeLocked(AttributeString) \ __FindOrCreateAttribute(AttributePersistentRef) \ __FindOrCreateAttribute(AttributeDrawable) \ __FindOrCreateAttribute(AttributeSelectable) \ __FindOrCreateAttribute(AttributeExpandable) \ __FindOrCreateAttribute(AttributeOpened) \ __FindOrCreateAttribute(AttributeTextColor) \ __FindOrCreateAttribute(AttributeTextHighlightColor) \ __FindOrCreateAttribute(AttributeTarget) \ __FindOrCreateAttribute(AttributeStudyProperties) \ __FindOrCreateAttribute(AttributeExternalFileDef) \ __FindOrCreateAttribute(AttributeFileType) \ __FindOrCreateAttribute(AttributeFlags) \ __FindOrCreateAttribute(AttributeGraphic) #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Callback.cxx000077500000000000000000000021131177004724000234330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Callback.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_Callback.hxx" salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Callback.hxx000077500000000000000000000040371177004724000234470ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Callback.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_CALLBACK_H__ #define __SALOMEDSIMPL_CALLBACK_H__ #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_Callback { private: SALOMEDSImpl_UseCaseBuilder* _builder; public: SALOMEDSImpl_Callback(SALOMEDSImpl_UseCaseBuilder* builder) { _builder = builder; } virtual void OnAddSObject(const SALOMEDSImpl_SObject& theObject) { if(_builder != NULL && theObject) _builder->Append(theObject); } virtual void OnRemoveSObject(const SALOMEDSImpl_SObject& theObject) { if(_builder != NULL && theObject) _builder->Remove(theObject); } }; class SALOMEDSIMPL_EXPORT SALOMEDSImpl_AbstractCallback { public: virtual bool addSO_Notification(const SALOMEDSImpl_SObject& theSObject){return false;}; virtual bool removeSO_Notification(const SALOMEDSImpl_SObject& theSObject){return false;}; virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject, int reason ){return false;}; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_ChildIterator.cxx000077500000000000000000000046231177004724000245040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_ChildIterator.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_ChildIterator.hxx" #include "SALOMEDSImpl_Study.hxx" SALOMEDSImpl_ChildIterator::SALOMEDSImpl_ChildIterator(const SALOMEDSImpl_SObject& theSO) { _so = theSO; _it = DF_ChildIterator(_so.GetLabel()); } SALOMEDSImpl_ChildIterator::SALOMEDSImpl_ChildIterator(const DF_Label& theLabel) { _so = SALOMEDSImpl_Study::SObject(theLabel); _it = DF_ChildIterator(theLabel); } void SALOMEDSImpl_ChildIterator::Init() { if(_so) _it.Init(_so.GetLabel(), false); } void SALOMEDSImpl_ChildIterator::Init(const DF_Label& theLabel) { _it.Init(theLabel, false); } void SALOMEDSImpl_ChildIterator::InitEx(bool theAllLevels) { if(_so) _it.Init(_so.GetLabel(), theAllLevels); } void SALOMEDSImpl_ChildIterator::InitEx(const DF_Label& theLabel, bool theAllLevels) { _it.Init(theLabel, theAllLevels); } bool SALOMEDSImpl_ChildIterator::More() { return _it.More(); } void SALOMEDSImpl_ChildIterator::Next() { _it.Next(); } SALOMEDSImpl_SObject SALOMEDSImpl_ChildIterator::Value() { if(!_so) return SALOMEDSImpl_SObject(); return SALOMEDSImpl_Study::SObject(_it.Value()); } DF_Label SALOMEDSImpl_ChildIterator::Label() { return _it.Value(); } SALOMEDSImpl_ChildIterator* SALOMEDSImpl_ChildIterator::GetPersistentCopy() const { SALOMEDSImpl_ChildIterator* itr = new SALOMEDSImpl_ChildIterator(); itr->_it = _it; itr->_so = _so; return itr; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_ChildIterator.hxx000077500000000000000000000036511177004724000245110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_ChildIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSImpl_CHILDITERATOR_H__ #define __SALOMEDSImpl_CHILDITERATOR_H__ #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "DF_ChildIterator.hxx" #include "DF_Label.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_ChildIterator { private: DF_ChildIterator _it; SALOMEDSImpl_SObject _so; public: SALOMEDSImpl_ChildIterator() {} SALOMEDSImpl_ChildIterator(const SALOMEDSImpl_SObject& theSO); SALOMEDSImpl_ChildIterator(const DF_Label& theLabel); ~SALOMEDSImpl_ChildIterator() {}; virtual void Init(); virtual void Init(const DF_Label& theLabel); virtual void InitEx(bool theAllLevels); virtual void InitEx(const DF_Label& theLabel, bool theAllLevels); virtual bool More(); virtual void Next(); virtual SALOMEDSImpl_SObject Value(); virtual DF_Label Label(); SALOMEDSImpl_ChildIterator* GetPersistentCopy() const; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_ChildNodeIterator.cxx000077500000000000000000000066211177004724000253120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: SALOMEDSImpl_ChildNodeIterator.cxx // Created: Wed Jan 26 16:43:08 2000 // Author: Denis PASCAL // // #include "SALOMEDSImpl_ChildNodeIterator.hxx" #define ChildNodeIterator_UpToBrother \ { \ while (myNode && (myNode->Depth() > myFirstLevel) && myNode->myNext == NULL) \ myNode = myNode->myFather; \ if (myNode && (myNode->Depth() > myFirstLevel) && myNode->myFather != NULL) \ myNode = myNode->myNext; \ else \ myNode = NULL; \ } //======================================================================= //function : SALOMEDSImpl_ChildNodeIterator //purpose : //======================================================================= SALOMEDSImpl_ChildNodeIterator::SALOMEDSImpl_ChildNodeIterator() : myFirstLevel(0) {} //======================================================================= //function : SALOMEDSImpl_ChildNodeIterator //purpose : //======================================================================= SALOMEDSImpl_ChildNodeIterator::SALOMEDSImpl_ChildNodeIterator (const SALOMEDSImpl_AttributeTreeNode* aNode, const bool allLevels) : myNode(aNode->myFirst), myFirstLevel(allLevels ? aNode->Depth() : -1) {} //======================================================================= //function : Initialize //purpose : //======================================================================= void SALOMEDSImpl_ChildNodeIterator::Initialize(const SALOMEDSImpl_AttributeTreeNode* aNode, const bool allLevels) { myNode = aNode->myFirst; myFirstLevel = allLevels ? aNode->Depth() : -1; } //======================================================================= //function : Next //purpose : //======================================================================= void SALOMEDSImpl_ChildNodeIterator::Next() { if (myFirstLevel == -1) { myNode = myNode->myNext; } else { if (myNode->myFirst != NULL) myNode = myNode->myFirst; else ChildNodeIterator_UpToBrother; } } //======================================================================= //function : NextBrother //purpose : //======================================================================= void SALOMEDSImpl_ChildNodeIterator::NextBrother() { if (myNode->myNext != NULL) myNode = myNode->myNext; else ChildNodeIterator_UpToBrother; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_ChildNodeIterator.hxx000077500000000000000000000032701177004724000253140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOMEDSImpl_ChildNodeIterator_HeaderFile #define _SALOMEDSImpl_ChildNodeIterator_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_ChildNodeIterator { public: SALOMEDSImpl_ChildNodeIterator(); SALOMEDSImpl_ChildNodeIterator(const SALOMEDSImpl_AttributeTreeNode* aTreeNode, const bool allLevels = false); void Initialize(const SALOMEDSImpl_AttributeTreeNode* aTreeNode, const bool allLevels = false) ; bool More() const { return (myNode); } void Next() ; void NextBrother() ; SALOMEDSImpl_AttributeTreeNode* Value() const { return myNode; } private: SALOMEDSImpl_AttributeTreeNode* myNode; int myFirstLevel; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Defines.hxx000077500000000000000000000023621177004724000233270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Defines.hxx // Author : Alexander A. BORODIN // Module : KERNEL // #ifndef _SALOMEDSImpl_Defines_HXX_ #define _SALOMEDSImpl_Defines_HXX_ #ifdef WIN32 # if defined SALOMEDSIMPL_EXPORTS || defined SalomeDSImpl_EXPORTS # define SALOMEDSIMPL_EXPORT __declspec( dllexport ) # else # define SALOMEDSIMPL_EXPORT __declspec( dllimport ) # endif #else # define SALOMEDSIMPL_EXPORT #endif #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Driver.hxx000077500000000000000000000064301177004724000232050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOMEDSIMPL_DRIVER_H__ #define __SALOMEDSIMPL_DRIVER_H__ #include "SALOMEDSImpl_Defines.hxx" #include #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_TMPFile.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_Driver { public: virtual std::string GetIOR() = 0; virtual SALOMEDSImpl_TMPFile* Save(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL, long& theStreamLength, bool isMultiFile) = 0; virtual SALOMEDSImpl_TMPFile* SaveASCII(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL, long& theStreamLength, bool isMultiFile) = 0; virtual bool Load(const SALOMEDSImpl_SComponent& theComponent, const unsigned char* theStream, const long theStreamLength, const std::string& theURL, bool isMultiFile) = 0; virtual bool LoadASCII(const SALOMEDSImpl_SComponent& theComponent, const unsigned char* theStream, const long theStreamLength, const std::string& theURL, bool isMultiFile) = 0; virtual void Close(const SALOMEDSImpl_SComponent& theComponent) = 0; virtual std::string ComponentDataType() = 0; virtual std::string IORToLocalPersistentID(const SALOMEDSImpl_SObject& theSObject, const std::string& IORString, bool isMultiFile, bool isASCII) = 0; virtual std::string LocalPersistentIDToIOR(const SALOMEDSImpl_SObject& theSObject, const std::string& aLocalPersistentID, bool isMultiFile, bool isASCII) = 0; virtual bool CanCopy(const SALOMEDSImpl_SObject& theObject) = 0; virtual SALOMEDSImpl_TMPFile* CopyFrom(const SALOMEDSImpl_SObject& theObject, int& theObjectID, long& theStreamLength) = 0; virtual bool CanPaste(const std::string& theComponentName, int theObjectID) = 0; virtual std::string PasteInto(const unsigned char* theStream, const long theStreamLength, int theObjectID, const SALOMEDSImpl_SObject& theObject) = 0; virtual SALOMEDSImpl_TMPFile* DumpPython(SALOMEDSImpl_Study* theStudy, bool isPublished, bool isMultiFile, bool& isValidScript, long& theStreamLength) = 0; }; class SALOMEDSImpl_DriverFactory { public: virtual SALOMEDSImpl_Driver* GetDriverByType(const std::string& theComponentType) = 0; virtual SALOMEDSImpl_Driver* GetDriverByIOR(const std::string& theIOR) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_GenericAttribute.cxx000077500000000000000000000055311177004724000252060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_GenericAttribute.hxx // Author : SERGEY_RUIN // Module : SALOME // #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" std::string SALOMEDSImpl_GenericAttribute::Impl_GetType(DF_Attribute* theAttr) { SALOMEDSImpl_GenericAttribute* ga = dynamic_cast(theAttr); if (ga) return ga->Type(); return ""; } std::string SALOMEDSImpl_GenericAttribute::Impl_GetClassType(DF_Attribute* theAttr) { SALOMEDSImpl_GenericAttribute* ga = dynamic_cast(theAttr); if (ga) return ga->GetClassType(); return ""; } void SALOMEDSImpl_GenericAttribute::Impl_CheckLocked(DF_Attribute* theAttr) { SALOMEDSImpl_GenericAttribute* ga = dynamic_cast(theAttr); ga->CheckLocked(); } std::string SALOMEDSImpl_GenericAttribute::Type() { return _type; } void SALOMEDSImpl_GenericAttribute::CheckLocked() { DF_Label aLabel = Label(); if(aLabel.IsNull()) return; SALOMEDSImpl_Study* aStudy = SALOMEDSImpl_Study::GetStudy(aLabel); if(!aStudy) return; if(aStudy->IsLocked()) { aStudy->_errorCode = "LockProtection"; throw LockProtection("LockProtection"); } } SALOMEDSImpl_SObject SALOMEDSImpl_GenericAttribute::GetSObject() { SALOMEDSImpl_SObject so; DF_Label aLabel = Label(); if(aLabel.IsNull()) return so; return SALOMEDSImpl_Study::SObject(aLabel); } /*! * Set modification flag of the Attribute. * param reason reason of the modification (by default equal to 0) */ void SALOMEDSImpl_GenericAttribute::SetModifyFlag(int reason) { DF_Label aLabel = Label(); if(aLabel.IsNull()) return; SALOMEDSImpl_Study* aStudy = SALOMEDSImpl_Study::GetStudy(aLabel); if(aStudy) aStudy->modifySO_Notification(GetSObject(), reason); if(aStudy) aStudy->Modify(); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_GenericAttribute.hxx000077500000000000000000000036331177004724000252140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_GenericAttribute.hxx // Author : SERGEY_RUIN // Module : SALOME // #ifndef _GENERICIMPL_ATTRIBUTE_HXX_ #define _GENERICIMPL_ATTRIBUTE_HXX_ #include "SALOMEDSImpl_Defines.hxx" #include "DF_Label.hxx" #include "DF_Attribute.hxx" #include #include "SALOMEDSImpl_SObject.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_GenericAttribute: public DF_Attribute { protected: std::string _type; //This field must be filled in each attribute that inherits from this class. public: SALOMEDSImpl_GenericAttribute(const std::string& theType) :_type(theType) {} virtual std::string Type(); virtual void CheckLocked(); std::string GetClassType() { return _type; } SALOMEDSImpl_SObject GetSObject(); void SetModifyFlag(int reason = 0); static std::string Impl_GetType(DF_Attribute* theAttr); static std::string Impl_GetClassType(DF_Attribute* theAttr); static void Impl_CheckLocked(DF_Attribute* theAttr); }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_GenericVariable.cxx000077500000000000000000000111671177004724000247720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_GenericVariable.cxx // Author : Roman NIKOLAEV, Open CASCADE S.A.S. // Module : SALOME // #include "SALOMEDSImpl_GenericVariable.hxx" #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_Study.hxx" #include //============================================================================ /*! Function : SALOMEDSImpl_GenericVariable * Purpose : */ //============================================================================ SALOMEDSImpl_GenericVariable:: SALOMEDSImpl_GenericVariable(SALOMEDSImpl_GenericVariable::VariableTypes theType, const std::string& theName): _type(theType), _name(theName) {} //============================================================================ /*! Function : ~SALOMEDSImpl_GenericVariable * Purpose : */ //============================================================================ SALOMEDSImpl_GenericVariable::~SALOMEDSImpl_GenericVariable() {} //============================================================================ /*! Function : Type * Purpose : */ //============================================================================ SALOMEDSImpl_GenericVariable::VariableTypes SALOMEDSImpl_GenericVariable::Type() const { return _type; } //============================================================================ /*! Function : Name * Purpose : */ //============================================================================ std::string SALOMEDSImpl_GenericVariable::Name() const { return _name; } //============================================================================ /*! Function : setType * Purpose : */ //============================================================================ bool SALOMEDSImpl_GenericVariable::setType(const SALOMEDSImpl_GenericVariable::VariableTypes theType) { if(_type == theType) return false; _type = theType; return true; } //============================================================================ /*! Function : setName * Purpose : */ //============================================================================ bool SALOMEDSImpl_GenericVariable::setName(const std::string& theName) { if(_name.compare(theName) == 0) return false; _name = theName; return true; } //============================================================================ /*! Function : String2VariableType * Purpose : */ //============================================================================ SALOMEDSImpl_GenericVariable::VariableTypes SALOMEDSImpl_GenericVariable::String2VariableType(const std::string& theStrType) { return(SALOMEDSImpl_GenericVariable::VariableTypes)atoi((char*)theStrType.c_str()); } //============================================================================ /*! Function : Save * Purpose : */ //============================================================================ std::string SALOMEDSImpl_GenericVariable::Save() const { return std::string(); } //============================================================================ /*! Function : SaveToScript * Purpose : */ //============================================================================ std::string SALOMEDSImpl_GenericVariable::SaveToScript() const { return std::string(); } //============================================================================ /*! Function : SaveType * Purpose : */ //============================================================================ std::string SALOMEDSImpl_GenericVariable::SaveType() const { return std::string(); } //============================================================================ /*! Function : Load * Purpose : */ //============================================================================ void SALOMEDSImpl_GenericVariable::Load(const std::string& theStrValue) { } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_GenericVariable.hxx000077500000000000000000000036511177004724000247760ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_GenericVariable.hxx // Author : Roman NIKOLAEV, Open CASCADE S.A.S. // Module : SALOME // #ifndef _GENERICIMPL_VARIABLE_HXX_ #define _GENERICIMPL_VARIABLE_HXX_ #include "SALOMEDSImpl_Defines.hxx" #include //This is base class for all variable of the Salome notebook class SALOMEDSIMPL_EXPORT SALOMEDSImpl_GenericVariable { public: //Supported types of the nootebook variables enum VariableTypes{REAL_VAR, INTEGER_VAR, BOOLEAN_VAR, STRING_VAR}; SALOMEDSImpl_GenericVariable(VariableTypes theType, const std::string& theName); ~SALOMEDSImpl_GenericVariable(); VariableTypes Type() const; std::string Name() const; static VariableTypes String2VariableType(const std::string& theStrType); bool setType(const VariableTypes theType); bool setName(const std::string& theName); virtual std::string Save() const; virtual std::string SaveToScript() const; virtual std::string SaveType() const; virtual void Load(const std::string& theStrValue); private: VariableTypes _type; std::string _name; }; #endif //_GENERICIMPL_VARIABLE_HXX_ salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_IParameters.cxx000077500000000000000000000303611177004724000241610ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEDSImpl_IParameters.hxx" #include #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_ChildIterator.hxx" #define _AP_LISTS_LIST_ "AP_LISTS_LIST" #define _AP_ENTRIES_LIST_ "AP_ENTRIES_LIST" #define _AP_PROPERTIES_LIST_ "AP_PROPERTIES_LIST" #define _AP_DUMP_PYTHON_ "AP_DUMP_PYTHON" #define _PT_ID_ "_PT_OBJECT_ID_" /*! Constructor */ SALOMEDSImpl_IParameters::SALOMEDSImpl_IParameters(SALOMEDSImpl_AttributeParameter* ap) { if(!ap) return; _ap = ap; SALOMEDSImpl_SObject so = _ap->GetSObject(); _study = so.GetStudy(); } SALOMEDSImpl_IParameters::~SALOMEDSImpl_IParameters() { _compNames.clear(); } int SALOMEDSImpl_IParameters::append(const std::string& listName, const std::string& value) { if(!_ap) return -1; std::vector v; if(!_ap->IsSet(listName, PT_STRARRAY)) { if(!_ap->IsSet(_AP_LISTS_LIST_, PT_STRARRAY)) _ap->SetStrArray(_AP_LISTS_LIST_, v); if(listName != _AP_ENTRIES_LIST_ && listName != _AP_PROPERTIES_LIST_) { append(_AP_LISTS_LIST_, listName); } _ap->SetStrArray(listName, v); } v = _ap->GetStrArray(listName); v.push_back(value); _ap->SetStrArray(listName, v); return (v.size()-1); } int SALOMEDSImpl_IParameters::nbValues(const std::string& listName) { if(!_ap) return -1; if(!_ap->IsSet(listName, PT_STRARRAY)) return 0; std::vector v = _ap->GetStrArray(listName); return v.size(); } std::vector SALOMEDSImpl_IParameters::getValues(const std::string& listName) { std::vector v; if(!_ap) return v; if(!_ap->IsSet(listName, PT_STRARRAY)) return v; return _ap->GetStrArray(listName); } std::string SALOMEDSImpl_IParameters::getValue(const std::string& listName, int index) { if(!_ap) return ""; if(!_ap->IsSet(listName, PT_STRARRAY)) return ""; std::vector v = _ap->GetStrArray(listName); if(index >= v.size()) return ""; return v[index]; } std::vector SALOMEDSImpl_IParameters::getLists() { std::vector v; if(!_ap->IsSet(_AP_LISTS_LIST_, PT_STRARRAY)) return v; return _ap->GetStrArray(_AP_LISTS_LIST_); } void SALOMEDSImpl_IParameters::setParameter(const std::string& entry, const std::string& parameterName, const std::string& value) { if(!_ap) return; std::vector v; if(!_ap->IsSet(entry, PT_STRARRAY)) { append(_AP_ENTRIES_LIST_, entry); //Add the entry to the internal list of entries _ap->SetStrArray(entry, v); } v = _ap->GetStrArray(entry); v.push_back(parameterName); v.push_back(value); _ap->SetStrArray(entry, v); } std::string SALOMEDSImpl_IParameters::getParameter(const std::string& entry, const std::string& parameterName) { if(!_ap) return ""; if(!_ap->IsSet(entry, PT_STRARRAY)) return ""; std::vector v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 0; i v; if(!_ap->IsSet(entry, PT_STRARRAY)) { append(_AP_ENTRIES_LIST_, entry); //Add the entry to the internal list of entries _ap->SetStrArray(entry, v); } v = _ap->GetStrArray(entry); v.push_back(_PT_ID_); v.push_back(value); _ap->SetStrArray(entry, v); } std::string SALOMEDSImpl_IParameters::getIdParameter(const std::string& entry) { if(!_ap) return ""; if(!_ap->IsSet(entry, PT_STRARRAY)) return ""; std::vector v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 0; i SALOMEDSImpl_IParameters::getAllParameterNames(const std::string& entry) { std::vector v, names; if(!_ap) return v; if(!_ap->IsSet(entry, PT_STRARRAY)) return v; v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 0; i SALOMEDSImpl_IParameters::getAllParameterValues(const std::string& entry) { std::vector v, values; if(!_ap) return v; if(!_ap->IsSet(entry, PT_STRARRAY)) return v; v = _ap->GetStrArray(entry); int length = v.size(); for(int i = 1; iIsSet(entry, PT_STRARRAY)) return -1; return _ap->GetStrArray(entry).size()/2; } std::vector SALOMEDSImpl_IParameters::getEntries() { std::vector v; if(!_ap) return v; if(!_ap->IsSet(_AP_ENTRIES_LIST_, PT_STRARRAY)) return v; return _ap->GetStrArray(_AP_ENTRIES_LIST_); } void SALOMEDSImpl_IParameters::setProperty(const std::string& name, const std::string& value) { if(!_ap) return; if(!_ap->IsSet(name, PT_STRING)) { append(_AP_PROPERTIES_LIST_, name); //Add the property to the internal list of properties } _ap->SetString(name, value); } std::string SALOMEDSImpl_IParameters::getProperty(const std::string& name) { if(!_ap) return ""; if(!_ap->IsSet(name, PT_STRING)) return ""; return _ap->GetString(name); } std::vector SALOMEDSImpl_IParameters::getProperties() { std::vector v; if(!_ap) return v; if(!_ap->IsSet(_AP_PROPERTIES_LIST_, PT_STRARRAY)) return v; return _ap->GetStrArray(_AP_PROPERTIES_LIST_); } std::string SALOMEDSImpl_IParameters::decodeEntry(const std::string& entry) { if(!_study) return entry; int pos = entry.rfind("_"); if(pos < 0 || pos >= entry.size()) return entry; std::string compName(entry, 0, pos), compID, tail(entry, pos+1, entry.length()-1); if(_compNames.find(compName) == _compNames.end()) { SALOMEDSImpl_SObject so = _study->FindComponent(compName); if(!so) return entry; compID = so.GetID(); _compNames[compName] = compID; } else compID = _compNames[compName]; std::string newEntry(compID); newEntry += (":"+tail); return newEntry; } bool SALOMEDSImpl_IParameters::isDumpPython(SALOMEDSImpl_Study* study, const std::string& theID) { std::string anID; if(theID == "") anID = getDefaultVisualComponent(); else anID = theID; SALOMEDSImpl_AttributeParameter* ap = study->GetCommonParameters((char*)anID.c_str(), 0); if(!ap) return false; if(!ap->IsSet(_AP_DUMP_PYTHON_, PT_BOOLEAN)) return false; return (bool)ap->GetBool(_AP_DUMP_PYTHON_); } int SALOMEDSImpl_IParameters::getLastSavePoint(SALOMEDSImpl_Study* study, const std::string& theID) { std::string anID; if(theID == "") anID = getDefaultVisualComponent(); else anID = theID; SALOMEDSImpl_SObject so = study->FindComponent(anID); if(!so) return -1; SALOMEDSImpl_StudyBuilder* builder = study->NewBuilder(); SALOMEDSImpl_ChildIterator anIter = study->NewChildIterator( so ); int tag = -1; for(; anIter.More(); anIter.Next()) { SALOMEDSImpl_SObject val( anIter.Value() ); DF_Attribute* genAttr; if(builder->FindAttribute(val, genAttr, "AttributeParameter")) tag = val.Tag(); } return tag; } std::string SALOMEDSImpl_IParameters::getStudyScript(SALOMEDSImpl_Study* study, int savePoint, const std::string& theID) { std::string anID; if(theID == "") anID = getDefaultVisualComponent(); else anID = theID; SALOMEDSImpl_AttributeParameter* ap = study->GetCommonParameters((char*)anID.c_str(), savePoint); SALOMEDSImpl_IParameters ip(ap); std::string dump(""); dump += "import iparameters\n"; dump += "ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters(\""+anID+"\", 1), True)\n\n"; std::vector v = ip.getProperties(); if(v.size() > 0) { dump += "#Set up visual properties:\n"; for(int i = 0; i 0) { dump += "#Set up lists:\n"; for(int i = 0; i lst = ip.getValues(v[i]); dump += "# fill list "+v[i]+"\n"; for(int j = 0; j < lst.size(); j++) { if (lst[j].find('\"') == -1) dump += "ipar.append(\""+v[i]+"\", \""+lst[j]+"\")\n"; else dump += "ipar.append(\""+v[i]+"\", \"\"\""+lst[j]+"\"\"\")\n"; } } } return dump; } std::string SALOMEDSImpl_IParameters::getDefaultScript(SALOMEDSImpl_Study* study, const std::string& moduleName, const std::string& shift, const std::string& theID) { std::string anID; if(theID == "") anID = getDefaultVisualComponent(); else anID = theID; std::string dump(""); int savePoint = SALOMEDSImpl_IParameters::getLastSavePoint(study, anID); if(savePoint < 0) return dump; SALOMEDSImpl_IParameters ip = SALOMEDSImpl_IParameters(study->GetCommonParameters(anID.c_str(), savePoint)); if(!isDumpPython(study)) return dump; SALOMEDSImpl_AttributeParameter* ap = study->GetModuleParameters(anID.c_str(), moduleName.c_str(), savePoint); ip = SALOMEDSImpl_IParameters(ap); dump += shift +"import iparameters\n"; dump += shift + "ipar = iparameters.IParameters(theStudy.GetModuleParameters(\""+anID+"\", \""+moduleName+"\", 1))\n\n"; std::vector v = ip.getProperties(); if(v.size() > 0) { dump += shift +"#Set up visual properties:\n"; for(int i = 0; i 0) { dump += shift +"#Set up lists:\n"; for(int i = 0; i lst = ip.getValues(v[i]); dump += shift +"# fill list "+v[i]+"\n"; for(int j = 0; j < lst.size(); j++) dump += shift +"ipar.append(\""+v[i]+"\", \""+lst[j]+"\")\n"; } } v = ip.getEntries(); if(v.size() > 0) { dump += shift + "#Set up entries:\n"; for(int i = 0; i names = ip.getAllParameterNames(v[i]); std::vector values = ip.getAllParameterValues(v[i]); std::string decodedEntry = ip.decodeEntry(v[i]); SALOMEDSImpl_SObject so = study->FindObjectID(decodedEntry); std::string so_name(""); if(so) so_name = so.GetName(); //Try to find id parameter std::vector::iterator it = std::find(names.begin(), names.end(), _PT_ID_ ); bool hasId = it != names.end(); bool onlyId = hasId && names.size() == 1; if(!onlyId) { dump += shift + "# set up entry " + v[i] +" ("+so_name+")" + " parameters" + "\n"; if(hasId) { int idIndex = std::distance(names.begin(), it); dump += shift + "objId = " + values[idIndex] + "\n"; } for(int j = 0; j < names.size() && j < values.size(); j++) { if(names[j] == _PT_ID_) continue; if(hasId) dump += shift + "ipar.setParameter(" + "objId" + ", \"" + names[j] + "\", \"" + values[j] + "\")\n"; else dump += shift + "ipar.setParameter(\"" + v[i] + "\", \"" + names[j] + "\", \"" + values[j] + "\")\n"; } } } } return dump; } std::string SALOMEDSImpl_IParameters::getDefaultVisualComponent() { return "Interface Applicative"; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_IParameters.hxx000077500000000000000000000113731177004724000241700ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef SALOMEDSImpl_IParameters_H #define SALOMEDSImpl_IParameters_H #include "SALOMEDSImpl_Defines.hxx" #include #include #include #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_Study.hxx" /*! Class which an interface to store the parameters of the objects */ class SALOMEDSIMPL_EXPORT SALOMEDSImpl_IParameters { public: SALOMEDSImpl_IParameters(SALOMEDSImpl_AttributeParameter* ap); virtual ~SALOMEDSImpl_IParameters(); /*! Appends a string value to a named list. Returns a number of the added value. Note: the name of the list MUST be unique */ virtual int append(const std::string& listName, const std::string& value); /*! Returns a number elements in the list */ virtual int nbValues(const std::string& listName); /*! Returns a list of values in the list */ virtual std::vector getValues(const std::string& listName); /*! Returns a value with given %index, where %index is in range [0:nbValues-1] */ virtual std::string getValue(const std::string& listName, int index); /*! Returns a list all entries lists */ virtual std::vector getLists(); /*! Sets a new named parameter value for the given entry */ virtual void setParameter(const std::string& entry, const std::string& parameterName, const std::string& value); /*! Gets a named parameter value for the given entry */ virtual std::string getParameter(const std::string& entry, const std::string& parameterName); /*! Sets an id parameter value for the given entry. */ virtual void setIdParameter(const std::string& entry, const std::string& value); /*! Gets an id parameter value for the given entry */ virtual std::string getIdParameter(const std::string& entry); /*! Returns all parameter names of the given entry */ virtual std::vector getAllParameterNames(const std::string& entry); /*! Returns all parameter values of the given entry */ virtual std::vector getAllParameterValues(const std::string& entry); /*! Returns a number of parameters of the given entry */ virtual int getNbParameters(const std::string& entry); /*! Returns a list all entries */ virtual std::vector getEntries(); /*! Sets a global named property value */ virtual void setProperty(const std::string& name, const std::string& value); /*! Gets a value of global named property */ virtual std::string getProperty(const std::string& name); /*! Returns a list all properties */ virtual std::vector getProperties(); /*! Returns decoded entry that is an absolute entry */ virtual std::string decodeEntry(const std::string& entry); /*! Returns whether there is the dumping visual parameters */ static bool isDumpPython(SALOMEDSImpl_Study* study, const std::string& theID = ""); /*! Returns an ID of the last save point */ static int getLastSavePoint(SALOMEDSImpl_Study* study, const std::string& theID = ""); /*! Returns a Python script for the study, which sets up visual parameters */ static std::string getStudyScript(SALOMEDSImpl_Study* study, int savePoint, const std::string& theID = ""); /*! Returns a default Python script that set ups visual parameters for the given module shift is a string that contain spaces to make valid Python script indentaion */ static std::string getDefaultScript(SALOMEDSImpl_Study* study, const std::string& moduleName, const std::string& shift, const std::string& theID = ""); /*! Returns a default name of the component where the visula parameters are stored. */ static std::string getDefaultVisualComponent(); private: SALOMEDSImpl_AttributeParameter* _ap; SALOMEDSImpl_Study* _study; std::map _compNames; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_SComponent.cxx000077500000000000000000000103471177004724000240340ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_SComponent.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_AttributeComment.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" //============================================================================ /*! Function : Empty constructor * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent::SALOMEDSImpl_SComponent() { } //============================================================================ /*! Function : Copy constructor * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent::SALOMEDSImpl_SComponent(const SALOMEDSImpl_SComponent& theSCO) { _lab = theSCO._lab; _value = theSCO._value; _type = theSCO._type; _name = theSCO._name; } //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent::SALOMEDSImpl_SComponent(const DF_Label& theLabel) :SALOMEDSImpl_SObject(theLabel) { } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent::~SALOMEDSImpl_SComponent() { } //============================================================================ /*! Function : ComponentDataType * Purpose : */ //============================================================================ std::string SALOMEDSImpl_SComponent::ComponentDataType() { std::string res = ""; SALOMEDSImpl_AttributeComment* type; if ( (type = (SALOMEDSImpl_AttributeComment*)_lab.FindAttribute(SALOMEDSImpl_AttributeComment::GetID())) ) { res = type->Value(); } return res; } //============================================================================ /*! Function : ComponentIOR * Purpose : */ //============================================================================ bool SALOMEDSImpl_SComponent::ComponentIOR(std::string& IOR) { SALOMEDSImpl_AttributeIOR* ior; if (!(ior = (SALOMEDSImpl_AttributeIOR*)_lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID())) ) return false; IOR = ior->Value(); return true; } //============================================================================ /*! Function : IsA * Purpose : */ //============================================================================ bool SALOMEDSImpl_SComponent::IsA(const DF_Label& theLabel) { // scomponent must contain comment and belong to the 2th depth label if ( theLabel.IsAttribute(SALOMEDSImpl_AttributeComment::GetID()) && theLabel.Depth() == 2) { return true; } return false; } //============================================================================ /*! Function : GetPersistentCopy * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent* SALOMEDSImpl_SComponent::GetPersistentCopy() const { SALOMEDSImpl_SComponent* sco = new SALOMEDSImpl_SComponent; sco->_lab = _lab; sco->_name = _name; sco->_type = _type; sco->_value = _value; return sco; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_SComponent.hxx000077500000000000000000000034751177004724000240450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_SComponent.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_SCOMPONENT_H__ #define __SALOMEDSIMPL_SCOMPONENT_H__ //SALOMEDSImpl headers #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_SObject.hxx" // std C++ headers #include #include #include "DF_Label.hxx" #include "SALOMEDSImpl_SObject.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_SComponent : public virtual SALOMEDSImpl_SObject { public: SALOMEDSImpl_SComponent(); SALOMEDSImpl_SComponent(const SALOMEDSImpl_SComponent& theSCO); SALOMEDSImpl_SComponent(const DF_Label& lab); ~SALOMEDSImpl_SComponent(); virtual std::string ComponentDataType(); virtual bool ComponentIOR(std::string& theID); static bool IsA(const DF_Label& theLabel); SALOMEDSImpl_SComponent* GetPersistentCopy() const; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_SComponentIterator.cxx000077500000000000000000000060051177004724000255420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_SComponentIterator.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_SComponentIterator.hxx" #include "SALOMEDSImpl_Study.hxx" //============================================================================ /*! Function : constructor * */ //============================================================================ SALOMEDSImpl_SComponentIterator::SALOMEDSImpl_SComponentIterator(DF_Document* theDocument) { _lab = theDocument->Main(); _it.Init (_lab); } //============================================================================ /*! Function : Init * */ //============================================================================ void SALOMEDSImpl_SComponentIterator::Init() { _it.Init (_lab); } //============================================================================ /*! Function : More * */ //============================================================================ bool SALOMEDSImpl_SComponentIterator::More() { if (!_it.More()) return false; DF_Label L = _it.Value(); return SALOMEDSImpl_SComponent::IsA(L); } //============================================================================ /*! Function : Next */ //============================================================================ void SALOMEDSImpl_SComponentIterator::Next() { _it.Next(); } //============================================================================ /*! Function : Value * */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_SComponentIterator::Value() { return SALOMEDSImpl_Study::SComponent(_it.Value()); } //============================================================================ /*! Function : GetPersistentCopy */ //============================================================================ SALOMEDSImpl_SComponentIterator* SALOMEDSImpl_SComponentIterator::GetPersistentCopy() const { SALOMEDSImpl_SComponentIterator* itr = new SALOMEDSImpl_SComponentIterator(); itr->_lab = _lab; itr->_it = _it; return itr; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_SComponentIterator.hxx000077500000000000000000000037141177004724000255530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_SComponentIterator_i.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_SCOMPONENTITERATOR_H__ #define __SALOMEDSIMPL_SCOMPONENTITERATOR_H__ //SALOMEDSImpl headers #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "DF_ChildIterator.hxx" #include "DF_Label.hxx" #include "DF_Document.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_SComponentIterator { private: DF_ChildIterator _it; DF_Label _lab; public: SALOMEDSImpl_SComponentIterator(const SALOMEDSImpl_SComponentIterator& theIterator) { _it = theIterator._it; _lab = theIterator._lab; } SALOMEDSImpl_SComponentIterator() {}; SALOMEDSImpl_SComponentIterator(DF_Document* theDocument); ~SALOMEDSImpl_SComponentIterator() {}; virtual void Init(); virtual bool More(); virtual void Next(); virtual SALOMEDSImpl_SComponent Value(); SALOMEDSImpl_SComponentIterator* GetPersistentCopy() const; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_SObject.cxx000077500000000000000000000226561177004724000233060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDSImpl_SObject.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_Study.hxx" #include #include //============================================================================ /*! Function : empty constructor * Purpose : */ //============================================================================ SALOMEDSImpl_SObject::SALOMEDSImpl_SObject() { } //============================================================================ /*! Function : copy constructor * Purpose : */ //============================================================================ SALOMEDSImpl_SObject::SALOMEDSImpl_SObject(const SALOMEDSImpl_SObject& theSObject) { _lab = theSObject._lab; _value = theSObject._value; _type = theSObject._type; _name = theSObject._name; } //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDSImpl_SObject::SALOMEDSImpl_SObject(const DF_Label& theLabel) :_lab(theLabel) { _value = ""; _type = ""; _name = ""; } //============================================================================ /*! Function : Desctructor * Purpose : */ //============================================================================ SALOMEDSImpl_SObject::~SALOMEDSImpl_SObject() { } //============================================================================ /*! Function : GetID * Purpose : */ //============================================================================ std::string SALOMEDSImpl_SObject::GetID() const { return _lab.Entry(); } //============================================================================ /*! Function : GetFatherComponent * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_SObject::GetFatherComponent() const { SALOMEDSImpl_SComponent sco; DF_Label LF = _lab; while (!SALOMEDSImpl_SComponent::IsA(LF) && !LF.IsRoot()) { LF = LF.Father(); } if(LF.IsRoot()) return sco; return GetStudy()->GetSComponent(LF); } //============================================================================ /*! Function : GetFather * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_SObject::GetFather() const { return GetStudy()->GetSObject(_lab.Father()); } //============================================================================ /*! Function : GetStudy * Purpose : */ //============================================================================ SALOMEDSImpl_Study* SALOMEDSImpl_SObject::GetStudy() const { return SALOMEDSImpl_Study::GetStudy(_lab); } //============================================================================ /*! Function : FindAttribute * Purpose : Find attribute of given type on this SObject */ //============================================================================ bool SALOMEDSImpl_SObject::FindAttribute(DF_Attribute*& theAttribute, const std::string& theTypeOfAttribute) const { if(_lab.IsNull()) return false; std::string aGUID = GetGUID(theTypeOfAttribute); if ((theAttribute = _lab.FindAttribute(aGUID))) return true; return false; } //============================================================================ /*! Function : GetAllAttributes * Purpose : Returns list of all attributes for this sobject */ //============================================================================ std::vector SALOMEDSImpl_SObject::GetAllAttributes() const { std::vector va1, va = _lab.GetAttributes(); for(int i = 0, len = va.size(); i(va[i]); if(ga && ga->Type() != std::string("AttributeReference")) va1.push_back(va[i]); } return va1; } //============================================================================ /*! Function : ReferencedObject * Purpose : */ //============================================================================ bool SALOMEDSImpl_SObject::ReferencedObject(SALOMEDSImpl_SObject& theObject) const { SALOMEDSImpl_AttributeReference* Ref; if (!(Ref=(SALOMEDSImpl_AttributeReference*)_lab.FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) return false; theObject = GetStudy()->GetSObject(Ref->Get()); return true; } //============================================================================ /*! Function : FindSubObject * Purpose : */ //============================================================================ bool SALOMEDSImpl_SObject::FindSubObject(int theTag, SALOMEDSImpl_SObject& theObject) { DF_Label L = _lab.FindChild(theTag, false); if (L.IsNull()) return false; theObject = GetStudy()->GetSObject(L); return true; } //============================================================================ /*! Function : GetName * Purpose : */ //============================================================================ std::string SALOMEDSImpl_SObject::GetName() const { std::string aStr = ""; SALOMEDSImpl_AttributeName* aName; if ((aName=(SALOMEDSImpl_AttributeName*)_lab.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) { aStr =aName->Value(); } return aStr; } //============================================================================ /*! Function : GetComment * Purpose : */ //============================================================================ std::string SALOMEDSImpl_SObject::GetComment() const { std::string aStr = ""; SALOMEDSImpl_AttributeComment* aComment; if ((aComment=(SALOMEDSImpl_AttributeComment*)_lab.FindAttribute(SALOMEDSImpl_AttributeComment::GetID()))) { aStr = aComment->Value(); } return aStr; } //============================================================================ /*! Function : GetIOR * Purpose : */ //============================================================================ std::string SALOMEDSImpl_SObject::GetIOR() const { std::string aStr = ""; SALOMEDSImpl_AttributeIOR* anIOR; if ((anIOR=(SALOMEDSImpl_AttributeIOR*)_lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { aStr = dynamic_cast(anIOR)->Value(); } return aStr; } std::string SALOMEDSImpl_SObject::GetGUID(const std::string& theType) { __AttributeTypeToGUIDForSObject if (strncmp(theType.c_str(), "AttributeTreeNodeGUID",21) == 0) { return theType.substr(21, theType.size()); } if (strncmp(theType.c_str(), "AttributeUserID",15) == 0) { return theType.substr(15, theType.size()); } return ""; } //============================================================================ /*! Function : SALOMEDSImpl_SComponent * Purpose : */ //============================================================================ SALOMEDSImpl_SObject::operator SALOMEDSImpl_SComponent() const { SALOMEDSImpl_SComponent sco; sco._lab = _lab; sco._name = _name; sco._type = _type; sco._value = _value; return sco; } //============================================================================ /*! Function : GetPersistentCopy * Purpose : */ //============================================================================ SALOMEDSImpl_SObject* SALOMEDSImpl_SObject::GetPersistentCopy() const { SALOMEDSImpl_SObject* so = new SALOMEDSImpl_SObject; so->_lab = _lab; so->_name = _name; so->_type = _type; so->_value = _value; return so; } //============================================================================ /*! Function : IsComponent * Purpose : */ //============================================================================ bool SALOMEDSImpl_SObject::IsComponent() const { return SALOMEDSImpl_SComponent::IsA(_lab); } void SALOMEDSImpl_SObject::SetAttrString(const std::string& name, const std::string& value) { if(name=="AttributeName")SALOMEDSImpl_AttributeName::Set(GetLabel(), value); else if(name=="AttributeIOR")SALOMEDSImpl_AttributeIOR::Set(GetLabel(), value); else if(name=="AttributeString")SALOMEDSImpl_AttributeString::Set(GetLabel(), value); else if(name=="AttributePixMap")SALOMEDSImpl_AttributePixMap::Set(GetLabel(), value); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_SObject.hxx000077500000000000000000000056131177004724000233050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_SObject.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_SOBJECT_H__ #define __SALOMEDSIMPL_SOBJECT_H__ #include "SALOMEDSImpl_Defines.hxx" #include "DF_Label.hxx" #include "DF_Attribute.hxx" #include #include class SALOMEDSImpl_SComponent; class SALOMEDSImpl_Study; class SALOMEDSIMPL_EXPORT SALOMEDSImpl_SObject { protected: DF_Label _lab; std::string _name; std::string _value; std::string _type; public: SALOMEDSImpl_SObject(); SALOMEDSImpl_SObject(const DF_Label& theLabel); SALOMEDSImpl_SObject(const SALOMEDSImpl_SObject& theSObject); virtual ~SALOMEDSImpl_SObject(); virtual std::string GetID() const; virtual SALOMEDSImpl_SComponent GetFatherComponent() const; virtual SALOMEDSImpl_SObject GetFather() const ; virtual bool FindAttribute(DF_Attribute*& theAttribute, const std::string& theTypeOfAttribute) const; virtual bool ReferencedObject(SALOMEDSImpl_SObject& theObject) const ; virtual bool FindSubObject(int theTag, SALOMEDSImpl_SObject& theObject); virtual SALOMEDSImpl_Study* GetStudy() const; virtual std::string Name() const { return _name; } virtual void Name(const std::string& theName) { _name = theName; } virtual std::vector GetAllAttributes() const; virtual std::string GetName() const ; virtual std::string GetComment() const; virtual std::string GetIOR() const; virtual void SetAttrString(const std::string& name,const std::string& value); virtual int Tag() const { return _lab.Tag(); } virtual int Depth() const { return _lab.Depth(); } virtual DF_Label GetLabel() const { return _lab; } bool IsNull() const { return _lab.IsNull(); } bool IsComponent() const; operator SALOMEDSImpl_SComponent() const; operator bool () const { return !IsNull(); } SALOMEDSImpl_SObject* GetPersistentCopy() const; static std::string GetGUID(const std::string& theTypeOfAttribute); }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_ScalarVariable.cxx000077500000000000000000000140741177004724000246230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_ScalarVariable.cxx // Author : Roman NIKOLAEV, Open CASCADE S.A.S. // Module : SALOME // #include "SALOMEDSImpl_ScalarVariable.hxx" #include "SALOMEDSImpl_GenericVariable.hxx" #include "Basics_Utils.hxx" #include #include #include #define OLDSTUDY_COMPATIBILITY //============================================================================ /*! Function : SALOMEDSImpl_ScalarVariable * Purpose : */ //============================================================================ SALOMEDSImpl_ScalarVariable:: SALOMEDSImpl_ScalarVariable(SALOMEDSImpl_GenericVariable::VariableTypes type, const std::string& theName): SALOMEDSImpl_GenericVariable(type,theName) {} //============================================================================ /*! Function : ~SALOMEDSImpl_ScalarVariable() * Purpose : */ //============================================================================ SALOMEDSImpl_ScalarVariable::~SALOMEDSImpl_ScalarVariable(){} //============================================================================ /*! Function : * Purpose : */ //============================================================================ bool SALOMEDSImpl_ScalarVariable::setValue(const double theValue) { if(myValue == theValue) return false; myValue = theValue; return true; } //============================================================================ /*! Function : * Purpose : */ //============================================================================ bool SALOMEDSImpl_ScalarVariable::setStringValue(const std::string& theValue) { if(myStrValue == theValue) return false; myStrValue = theValue; return true; } //============================================================================ /*! Function : getValue() * Purpose : */ //============================================================================ double SALOMEDSImpl_ScalarVariable::getValue() const { return myValue; } //============================================================================ /*! Function : getStringValue() * Purpose : */ //============================================================================ std::string SALOMEDSImpl_ScalarVariable::getStringValue() const { return myStrValue; } //============================================================================ /*! Function : Save() * Purpose : */ //============================================================================ std::string SALOMEDSImpl_ScalarVariable::Save() const{ Kernel_Utils::Localizer loc; char buffer[255]; switch(Type()) { case SALOMEDSImpl_GenericVariable::REAL_VAR: { sprintf(buffer, "%.64e", myValue); break; } case SALOMEDSImpl_GenericVariable::BOOLEAN_VAR: case SALOMEDSImpl_GenericVariable::INTEGER_VAR: { sprintf(buffer, "%d", (int)myValue); break; } case SALOMEDSImpl_GenericVariable::STRING_VAR: { sprintf(buffer, "%s", myStrValue.c_str()); break; } default:break; } return std::string(buffer); } //============================================================================ /*! Function : SaveToScript() * Purpose : */ //============================================================================ std::string SALOMEDSImpl_ScalarVariable::SaveToScript() const { Kernel_Utils::Localizer loc; char buffer[255]; switch(Type()) { case SALOMEDSImpl_GenericVariable::REAL_VAR: { sprintf(buffer, "%g", myValue); break; } case SALOMEDSImpl_GenericVariable::INTEGER_VAR: { sprintf(buffer, "%d", (int)myValue); break; } case SALOMEDSImpl_GenericVariable::BOOLEAN_VAR: { sprintf(buffer, "%s", ((bool)myValue) ? "True" : "False"); break; } case SALOMEDSImpl_GenericVariable::STRING_VAR: { sprintf(buffer, "\"%s\"", myStrValue.c_str()); break; } default:break; } return std::string(buffer); } //============================================================================ /*! Function : SaveType() * Purpose : */ //============================================================================ std::string SALOMEDSImpl_ScalarVariable::SaveType() const{ char buffer[255]; sprintf(buffer, "%d", (int)Type()); return std::string(buffer); } //============================================================================ /*! Function : Load() * Purpose : */ //============================================================================ void SALOMEDSImpl_ScalarVariable::Load(const std::string& theStrValue) { Kernel_Utils::Localizer loc; std::string strCopy = theStrValue; if ( Type() == SALOMEDSImpl_GenericVariable::STRING_VAR ) { #ifdef OLDSTUDY_COMPATIBILITY if (strCopy.size() > 1 && strCopy[0] == '\"' && strCopy[strCopy.size()-1] == '\"') strCopy = strCopy.substr(1, strCopy.size()-2); #endif // OLDSTUDY_COMPATIBILITY setStringValue( strCopy ); } else { #ifdef OLDSTUDY_COMPATIBILITY int dotpos = strCopy.find(','); if (dotpos != std::string::npos) strCopy.replace(dotpos, 1, "."); #endif // OLDSTUDY_COMPATIBILITY double aValue = atof(strCopy.c_str()); setValue(aValue); } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_ScalarVariable.hxx000077500000000000000000000035151177004724000246260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_ScalarVariable.hxx // Author : Roman NIKOLAEV, Open CASCADE S.A.S. // Module : SALOME // #ifndef _SALOMEDSImpl_ScalarVariable_HeaderFile #define _SALOMEDSImpl_ScalarVariable_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_GenericVariable.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_ScalarVariable : public SALOMEDSImpl_GenericVariable { public: SALOMEDSImpl_ScalarVariable(SALOMEDSImpl_GenericVariable::VariableTypes theType, const std::string& theName); ~SALOMEDSImpl_ScalarVariable(); bool setValue(const double theValue); double getValue() const; bool setStringValue(const std::string& theValue); std::string getStringValue() const; virtual std::string Save() const; virtual std::string SaveToScript() const; virtual std::string SaveType() const; virtual void Load(const std::string& theStrValue); private: double myValue; std::string myStrValue; }; #endif //_SALOMEDSImpl_ScalarVariable_HeaderFile salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx000077500000000000000000001777311177004724000230720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Study.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_Study.hxx" #include #include #include #include "DF_Application.hxx" #include "DF_ChildIterator.hxx" #include "SALOMEDSImpl_ChildNodeIterator.hxx" #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_UseCaseIterator.hxx" #include "SALOMEDSImpl_AttributeReference.hxx" #include "SALOMEDSImpl_StudyHandle.hxx" #include "SALOMEDSImpl_Tool.hxx" #include "SALOMEDSImpl_IParameters.hxx" #include "SALOMEDSImpl_ScalarVariable.hxx" #include #include // comment out the following define to enable \t symbols in in the python dump files #define WITHOUT_TABS #define DIRECTORYID 16661 #define FILELOCALID 26662 #define FILEID "FILE: " #define VARIABLE_SEPARATOR ':' #define OPERATION_SEPARATOR '|' //============================================================================ /*! Function : SALOMEDSImpl_Study * Purpose : SALOMEDSImpl_Study constructor */ //============================================================================ SALOMEDSImpl_Study::SALOMEDSImpl_Study(const DF_Document* doc, const std::string& study_name) { _name = study_name; _doc = (DF_Document*)doc; _Saved = false ; _URL = ""; _StudyId = -1; _autoFill = false; _errorCode = ""; _useCaseBuilder = new SALOMEDSImpl_UseCaseBuilder(_doc); _builder = new SALOMEDSImpl_StudyBuilder(this); _cb = new SALOMEDSImpl_Callback(_useCaseBuilder); _notifier=0; //Put on the root label a StudyHandle attribute to store the address of this object //It will be used to retrieve the study object by DF_Label that belongs to the study SALOMEDSImpl_StudyHandle::Set(_doc->Main().Root(), this); } //============================================================================ /*! Function : ~SALOMEDSImpl_Study * Purpose : SALOMEDSImpl_Study destructor */ //============================================================================ SALOMEDSImpl_Study::~SALOMEDSImpl_Study() { delete _builder; delete _cb; delete _useCaseBuilder; } //============================================================================ /*! Function : GetPersistentReference * Purpose : Get persistent reference of study (idem URL()) */ //============================================================================ std::string SALOMEDSImpl_Study::GetPersistentReference() { _errorCode = ""; return URL(); } //============================================================================ /*! Function : GetTransientReference * Purpose : Get IOR of the Study (registred in Document in doc->Root) */ //============================================================================ std::string SALOMEDSImpl_Study::GetTransientReference() { _errorCode = ""; std::string IOR = ""; SALOMEDSImpl_AttributeIOR* Att; DF_Label _lab = _doc->Root(); if ((Att=(SALOMEDSImpl_AttributeIOR*)_lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { IOR = Att->Value(); } else { _errorCode = "IOR is empty"; } return IOR; } void SALOMEDSImpl_Study::SetTransientReference(const std::string& theIOR) { _errorCode = ""; SALOMEDSImpl_AttributeStudyProperties* aProp = GetProperties(); int aLocked = aProp->IsLocked(); if (aLocked) aProp->SetLocked(false); // Assign the value of the IOR in the study->root SALOMEDSImpl_AttributeIOR::Set(_doc->Main().Root(), theIOR); if (aLocked) aProp->SetLocked(true); } //============================================================================ /*! Function : IsEmpty * Purpose : Detect if study is empty */ //============================================================================ bool SALOMEDSImpl_Study::IsEmpty() { _errorCode = ""; if (!_doc) return true; return _doc->IsEmpty(); } //============================================================================ /*! Function : FindComponent * Purpose : Find a Component with ComponentDataType = aComponentName */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_Study::FindComponent (const std::string& aComponentName) { _errorCode = ""; bool _find = false; std::string name; SALOMEDSImpl_SComponentIterator itcomp = NewComponentIterator(); SALOMEDSImpl_SComponent compo; for (; itcomp.More(); itcomp.Next()) { SALOMEDSImpl_SComponent SC = itcomp.Value(); name = SC.ComponentDataType(); if(aComponentName == name) { _find = true; return SC; } } if(!_find) { _errorCode = "No component was found"; return compo; } return compo; } //============================================================================ /*! Function : FindComponentID * Purpose : Find a Component from it's ID */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_Study::FindComponentID(const std::string& aComponentID) { _errorCode = ""; // Iterate on each components defined in the study // Get the component ID and compare with aComponentID bool _find = false; std::string ID; SALOMEDSImpl_SComponent compo; SALOMEDSImpl_SComponentIterator itcomp = NewComponentIterator(); for (; itcomp.More(); itcomp.Next()) { SALOMEDSImpl_SComponent SC = itcomp.Value(); ID = SC.GetID(); if(aComponentID == ID) { // ComponentID found _find = true; compo = SC; } } if(!_find) { _errorCode = "No component was found"; compo = compo; } return compo; } //============================================================================ /*! Function : FindObject * Purpose : Find an Object with SALOMEDSImpl_Name = anObjectName */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::FindObject(const std::string& anObjectName) { _errorCode = ""; // Iterate to all components defined in the study // After testing the component name, iterate in all objects defined under // components (function _FindObject) bool _find = false; SALOMEDSImpl_SObject RefSO; SALOMEDSImpl_SComponentIterator it = NewComponentIterator(); for (; it.More();it.Next()){ if(!_find) { SALOMEDSImpl_SComponent SC = it.Value(); if (SC.GetName() == anObjectName) { _find = true; RefSO = SC; } if (!_find) RefSO = _FindObject(SC, anObjectName, _find); } } if(!RefSO) _errorCode = "No object was found"; return RefSO; } //============================================================================ /*! Function : FindObjectID * Purpose : Find an Object with ID = anObjectID */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::FindObjectID(const std::string& anObjectID) { _errorCode = ""; SALOMEDSImpl_SObject so; // Convert aSO->GetID in DF_Label. DF_Label Lab = DF_Label::Label(_doc->Main(), anObjectID, false); if (Lab.IsNull()) { _errorCode = "No label was found by ID"; return so; } return GetSObject(Lab); } //============================================================================ /*! Function : CreateObjectID * Purpose : Creates an Object with ID = anObjectID */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::CreateObjectID(const std::string& anObjectID) { _errorCode = ""; SALOMEDSImpl_SObject so; // Convert aSO->GetID in DF_Label. DF_Label Lab = DF_Label::Label(_doc->Main(), anObjectID, true); if (Lab.IsNull()) { _errorCode = "Can not create a label"; return so; } return GetSObject(Lab); } //============================================================================ /*! Function : FindObjectByName * Purpose : Find Objects with SALOMEDSImpl_Name = anObjectName in a Component * : with ComponentDataType = aComponentName */ //============================================================================ std::vector SALOMEDSImpl_Study::FindObjectByName(const std::string& anObjectName, const std::string& aComponentName) { _errorCode = ""; std::vector listSO; SALOMEDSImpl_SComponent compo = FindComponent(aComponentName) ; if ( !compo ) { _errorCode = "Can not find the component"; return listSO; } // Iterate on each object and subobject of the component // If objectName is found add it to the list of SObjects std::string childName ; std::string compoId = compo.GetID(); SALOMEDSImpl_ChildIterator it = NewChildIterator(compo); for ( ; it.More(); it.Next() ) { SALOMEDSImpl_SObject CSO = it.Value(); if ( CSO.GetName() == anObjectName ) { /* add to list */ listSO.push_back(CSO) ; } /* looks also for eventual children */ bool found = false ; CSO = _FindObject( CSO, anObjectName, found ) ; if( found) { listSO.push_back(CSO) ; } } return listSO; } //============================================================================ /*! Function : FindObjectIOR * Purpose : Find an Object with IOR = anObjectIOR */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::FindObjectIOR(const std::string& anObjectIOR) { _errorCode = ""; SALOMEDSImpl_SObject aResult ; // searching in the datamap for optimization std::map::iterator it=myIORLabels.find(anObjectIOR); if (it != myIORLabels.end()) { aResult = GetSObject(it->second); // 11 oct 2002: forbidden attributes must be checked here if (!aResult.GetLabel().IsAttribute(SALOMEDSImpl_AttributeIOR::GetID())) { myIORLabels.erase(anObjectIOR); aResult = SALOMEDSImpl_SObject(); } } if(!aResult) _errorCode = "No object was found"; return aResult; } //============================================================================ /*! Function : FindObjectByPath * Purpose : Find an Object by its path = thePath */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::FindObjectByPath(const std::string& thePath) { _errorCode = ""; std::string aPath(thePath), aToken; SALOMEDSImpl_SObject aSO; int aLength = aPath.size(); bool isRelative = false; if(aLength == 0) { //Empty path - return the current context return GetSObject(_current); } if(aPath[0] != '/') //Relative path isRelative = true; DF_ChildIterator anIterator; DF_Label aLabel; SALOMEDSImpl_AttributeName* anAttr; if(isRelative) { if(_current.IsNull()) return aSO; anIterator.Init(_current, false); } else { if(aPath.size() == 1 && aPath[0] == '/') { //Root return GetSObject(_doc->Main()); } anIterator.Init(_doc->Main(), false); } std::vector vs = SALOMEDSImpl_Tool::splitString(aPath, '/'); for(int i = 0, len = vs.size(); iValue() == aToken) { if(i == (len-1)) { //The searched label is found (no part of the path is left) return GetSObject(aLabel); } anIterator.Init(aLabel, false); break; } } } } if(!aSO) _errorCode = "No object was found"; return aSO; } //============================================================================ /*! Function : GetObjectPath * Purpose : */ //============================================================================ std::string SALOMEDSImpl_Study::GetObjectPath(const SALOMEDSImpl_SObject& theObject) { _errorCode = ""; std::string aPath(""); if(!theObject) { _errorCode = "Null object"; return aPath; } std::string aName = theObject.GetName(); if(!aName.empty() && aName != "" ) { std::string aValue("/"); aValue+=aName; aValue += aPath; aPath = aValue; SALOMEDSImpl_SObject aFather = theObject.GetFather(); if(aFather) { aName = aFather.GetName(); if(!aName.empty() && aName != "") { aValue = GetObjectPath(aFather); aPath = aValue + aPath; } } } return aPath; } //============================================================================ /*! Function : GetObjectPathByIOR * Purpose : */ //============================================================================ std::string SALOMEDSImpl_Study::GetObjectPathByIOR(const std::string& theIOR) { _errorCode = ""; std::string aPath; SALOMEDSImpl_SObject so = FindObjectIOR(theIOR); if(!so) { _errorCode = "No SObject was found by IOR"; return aPath; } return GetObjectPath(so); } //============================================================================ /*! Function : SetContext * Purpose : Sets the current context */ //============================================================================ bool SALOMEDSImpl_Study::SetContext(const std::string& thePath) { _errorCode = ""; if(thePath.empty()) { _errorCode = "InvalidPath"; return false; } std::string aPath(thePath), aContext(""); bool isInvalid = false; SALOMEDSImpl_SObject aSO; if(aPath[0] != '/') { //Relative path aContext = GetContext(); aContext += '/'; aContext += aPath; } else aContext = aPath; try { aSO = FindObjectByPath(aContext); } catch( ... ) { isInvalid = true; } if(isInvalid || !aSO) { _errorCode = "InvalidContext"; return false; } DF_Label aLabel = aSO.GetLabel(); if(aLabel.IsNull()) { _errorCode = "InvalidContext"; return false; } else _current = aLabel; //Set the current context return true; } //============================================================================ /*! Function : GetContext * Purpose : Gets the current context */ //============================================================================ std::string SALOMEDSImpl_Study::GetContext() { _errorCode = ""; if(_current.IsNull()) { _errorCode = "InvaidContext"; return ""; } SALOMEDSImpl_SObject so = GetSObject(_current); return GetObjectPath(so); } //============================================================================ /*! Function : GetObjectNames * Purpose : method to get all object names in the given context (or in the current context, if 'theContext' is empty) */ //============================================================================ std::vector SALOMEDSImpl_Study::GetObjectNames(const std::string& theContext) { _errorCode = ""; std::vector aResultSeq; DF_Label aLabel; if (theContext.empty()) { aLabel = _current; } else { DF_Label aTmp = _current; SetContext(theContext); aLabel = _current; _current = aTmp; } if (aLabel.IsNull()) { _errorCode = "InvalidContext"; return aResultSeq; } DF_ChildIterator anIter (aLabel, true); // iterate all subchildren at all sublevels for (; anIter.More(); anIter.Next()) { DF_Label aLabel = anIter.Value(); SALOMEDSImpl_AttributeName* aName; if ((aName=(SALOMEDSImpl_AttributeName*)aLabel.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) aResultSeq.push_back(aName->Value()); } return aResultSeq; } //============================================================================ /*! Function : GetDirectoryNames * Purpose : method to get all directory names in the given context (or in the current context, if 'theContext' is empty) */ //============================================================================ std::vector SALOMEDSImpl_Study::GetDirectoryNames(const std::string& theContext) { _errorCode = ""; std::vector aResultSeq; DF_Label aLabel; if (theContext.empty()) { aLabel = _current; } else { DF_Label aTmp = _current; SetContext(theContext); aLabel = _current; _current = aTmp; } if (aLabel.IsNull()) { _errorCode = "InvalidContext"; return aResultSeq; } DF_ChildIterator anIter (aLabel, true); // iterate first-level children at all sublevels for (; anIter.More(); anIter.Next()) { DF_Label aLabel = anIter.Value(); SALOMEDSImpl_AttributeLocalID* anID; if ((anID=(SALOMEDSImpl_AttributeLocalID*)aLabel.FindAttribute(SALOMEDSImpl_AttributeLocalID::GetID()))) { if (anID->Value() == DIRECTORYID) { SALOMEDSImpl_AttributeName* aName; if ((aName=(SALOMEDSImpl_AttributeName*)aLabel.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) { aResultSeq.push_back(aName->Value()); } } } } return aResultSeq; } //============================================================================ /*! Function : GetFileNames * Purpose : method to get all file names in the given context (or in the current context, if 'theContext' is empty) */ //============================================================================ std::vector SALOMEDSImpl_Study::GetFileNames(const std::string& theContext) { _errorCode = ""; std::vector aResultSeq; DF_Label aLabel; if (theContext.empty()) { aLabel = _current; } else { DF_Label aTmp = _current; SetContext(theContext); aLabel = _current; _current = aTmp; } if (aLabel.IsNull()) { _errorCode = "InvalidContext"; return aResultSeq; } DF_ChildIterator anIter (aLabel, true); // iterate all subchildren at all sublevels for (; anIter.More(); anIter.Next()) { DF_Label aLabel = anIter.Value(); SALOMEDSImpl_AttributeLocalID* anID; if ((anID=(SALOMEDSImpl_AttributeLocalID*)aLabel.FindAttribute(SALOMEDSImpl_AttributeLocalID::GetID()))) { if (anID->Value() == FILELOCALID) { SALOMEDSImpl_AttributePersistentRef* aName; if ((aName=(SALOMEDSImpl_AttributePersistentRef*)aLabel.FindAttribute(SALOMEDSImpl_AttributePersistentRef::GetID()))) { std::string aFileName = aName->Value(); if (aFileName.size() > 0) aResultSeq.push_back(aFileName.substr(strlen(FILEID), aFileName.size())); } } } } return aResultSeq; } //============================================================================ /*! Function : GetComponentNames * Purpose : method to get all components names */ //============================================================================ std::vector SALOMEDSImpl_Study::GetComponentNames(const std::string& theContext) { _errorCode = ""; std::vector aResultSeq; DF_ChildIterator anIter(_doc->Main(), false); // iterate all subchildren at first level for(; anIter.More(); anIter.Next()) { DF_Label aLabel = anIter.Value(); SALOMEDSImpl_AttributeName* aName; if ((aName=(SALOMEDSImpl_AttributeName*)aLabel.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) aResultSeq.push_back(aName->Value()); } return aResultSeq; } //============================================================================ /*! Function : NewChildIterator * Purpose : Create a ChildIterator from an SObject */ //============================================================================ SALOMEDSImpl_ChildIterator SALOMEDSImpl_Study::NewChildIterator(const SALOMEDSImpl_SObject& aSO) { _errorCode = ""; return SALOMEDSImpl_ChildIterator(aSO); } //============================================================================ /*! Function : NewComponentIterator * Purpose : Create a SComponentIterator */ //============================================================================ SALOMEDSImpl_SComponentIterator SALOMEDSImpl_Study::NewComponentIterator() { _errorCode = ""; return SALOMEDSImpl_SComponentIterator(_doc); } //============================================================================ /*! Function : NewBuilder * Purpose : Create a StudyBuilder */ //============================================================================ SALOMEDSImpl_StudyBuilder* SALOMEDSImpl_Study::NewBuilder() { _errorCode = ""; if(_autoFill) { _builder->SetOnAddSObject(_cb); _builder->SetOnRemoveSObject(_cb); } return _builder; } //============================================================================ /*! Function : Name * Purpose : get study name */ //============================================================================ std::string SALOMEDSImpl_Study::Name() { _errorCode = ""; return _name; } //============================================================================ /*! Function : Name * Purpose : set study name */ //============================================================================ void SALOMEDSImpl_Study::Name(const std::string& name) { _errorCode = ""; _name = name; } //============================================================================ /*! Function : IsSaved * Purpose : get if study has been saved */ //============================================================================ bool SALOMEDSImpl_Study::IsSaved() { _errorCode = ""; return _Saved; } //============================================================================ /*! Function : IsSaved * Purpose : set if study has been saved */ //============================================================================ void SALOMEDSImpl_Study::IsSaved(bool save) { _errorCode = ""; _Saved = save; if(save) _doc->SetModified(false); } //============================================================================ /*! Function : IsModified * Purpose : Detect if a Study has been modified since it has been saved */ //============================================================================ bool SALOMEDSImpl_Study::IsModified() { _errorCode = ""; // True if is modified if (_doc && _doc->IsModified()) return true; return false; } //============================================================================ /*! Function : URL * Purpose : get URL of the study (persistent reference of the study) */ //============================================================================ std::string SALOMEDSImpl_Study::URL() { _errorCode = ""; return _URL; } //============================================================================ /*! Function : URL * Purpose : set URL of the study (persistent reference of the study) */ //============================================================================ void SALOMEDSImpl_Study::URL(const std::string& url) { _errorCode = ""; _URL = url; /*jfa: Now name of SALOMEDS study will correspond to name of SalomeApp study std::string tmp(_URL); char *aName = (char*)tmp.ToCString(); char *adr = strtok(aName, "/"); while (adr) { aName = adr; adr = strtok(NULL, "/"); } Name(aName);*/ Name(url); } //============================================================================ /*! Function : _FindObject * Purpose : Find an Object with SALOMEDSImpl_Name = anObjectName */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::_FindObject(const SALOMEDSImpl_SObject& SO, const std::string& theObjectName, bool& _find) { SALOMEDSImpl_SObject RefSO; if(!SO) return RefSO; // Iterate on each objects and subobjects of the component // If objectName find, stop the loop and get the object reference SALOMEDSImpl_AttributeName* anAttr; std::string soid = SO.GetID(); DF_ChildIterator it(SO.GetLabel()); for (; it.More(); it.Next()){ if(!_find) { if ((anAttr=(SALOMEDSImpl_AttributeName*)it.Value().FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) { std::string Val(anAttr->Value()); if (Val == theObjectName) { RefSO = GetSObject(it.Value()); _find = true; } } if (!_find) RefSO = _FindObject(GetSObject(it.Value()), theObjectName, _find); } } return RefSO; } //============================================================================ /*! Function : _FindObjectIOR * Purpose : Find an Object with SALOMEDSImpl_IOR = anObjectIOR */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::_FindObjectIOR(const SALOMEDSImpl_SObject& SO, const std::string& theObjectIOR, bool& _find) { SALOMEDSImpl_SObject RefSO, aSO; if(!SO) return RefSO; // Iterate on each objects and subobjects of the component // If objectName find, stop the loop and get the object reference SALOMEDSImpl_AttributeIOR* anAttr; DF_ChildIterator it(SO.GetLabel()); for (; it.More();it.Next()){ if(!_find) { if ((anAttr=(SALOMEDSImpl_AttributeIOR*)it.Value().FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { std::string Val(anAttr->Value()); if (Val == theObjectIOR) { RefSO = GetSObject(it.Value()); _find = true; } } aSO = GetSObject(it.Value()); if (!_find) RefSO = _FindObjectIOR(aSO, theObjectIOR, _find); } } return RefSO; } //============================================================================ /*! Function : _GetNoteBookAccessor * Purpose : Find an Object with SALOMEDSImpl_IOR = anObjectIOR */ //============================================================================ std::string SALOMEDSImpl_Study::_GetNoteBookAccessor(){ return std::string("notebook"); } //============================================================================ /*! Function : _GetStudyVariablesScript * Purpose : */ //============================================================================ std::string SALOMEDSImpl_Study::_GetStudyVariablesScript() { std::string dump(""); if(myNoteBookVars.empty()) return dump; Kernel_Utils::Localizer loc; dump += "####################################################\n"; dump += "## Begin of NoteBook variables section ##\n"; dump += "####################################################\n"; std::string set_method = _GetNoteBookAccessor()+".set("; std::string varName; std::string varValue; for(int i = 0 ; i < myNoteBookVars.size();i++ ) { varName = myNoteBookVars[i]->Name(); varValue = myNoteBookVars[i]->SaveToScript(); dump+=set_method+"\""+varName+"\", "+varValue+")\n"; } dump += "####################################################\n"; dump += "## End of NoteBook variables section ##\n"; dump += "####################################################\n"; return dump; } //============================================================================ /*! Function : _GetNoteBookAccess * Purpose : */ //============================================================================ std::string SALOMEDSImpl_Study::_GetNoteBookAccess() { std::string accessor = _GetNoteBookAccessor(); std::string notebook = "import salome_notebook\n"; notebook += accessor+" = salome_notebook."+accessor + "\n"; return notebook; } bool SALOMEDSImpl_Study::IsLocked() { _errorCode = ""; return GetProperties()->IsLocked(); } int SALOMEDSImpl_Study::StudyId() { _errorCode = ""; return _StudyId; } void SALOMEDSImpl_Study::StudyId(int id) { _errorCode = ""; _StudyId = id; } void SALOMEDSImpl_Study::UpdateIORLabelMap(const std::string& anIOR,const std::string& anEntry) { _errorCode = ""; DF_Label aLabel = DF_Label::Label(_doc->Main(), anEntry, true); std::map::iterator it=myIORLabels.find(anIOR); if (it != myIORLabels.end()) myIORLabels.erase(it); myIORLabels[anIOR] = aLabel; } void SALOMEDSImpl_Study::DeleteIORLabelMapItem(const std::string& anIOR) { std::map::iterator it=myIORLabels.find(anIOR); if (it != myIORLabels.end()) { //remove the ior entry and decref the genericobj (if it's one) myIORLabels.erase(it); } } SALOMEDSImpl_Study* SALOMEDSImpl_Study::GetStudy(const DF_Label& theLabel) { SALOMEDSImpl_StudyHandle* Att; if ((Att=(SALOMEDSImpl_StudyHandle*)theLabel.Root().FindAttribute(SALOMEDSImpl_StudyHandle::GetID()))) { return Att->Get(); } return NULL; } SALOMEDSImpl_SObject SALOMEDSImpl_Study::SObject(const DF_Label& theLabel) { return GetStudy(theLabel)->GetSObject(theLabel); } SALOMEDSImpl_SComponent SALOMEDSImpl_Study::SComponent(const DF_Label& theLabel) { return GetStudy(theLabel)->GetSComponent(theLabel); } void SALOMEDSImpl_Study::IORUpdated(const SALOMEDSImpl_AttributeIOR* theAttribute) { std::string aString = theAttribute->Label().Entry(); GetStudy(theAttribute->Label())->UpdateIORLabelMap(theAttribute->Value(), aString); } std::vector SALOMEDSImpl_Study::FindDependances(const SALOMEDSImpl_SObject& anObject) { _errorCode = ""; std::vector aSeq; SALOMEDSImpl_AttributeTarget* aTarget; if ((aTarget=(SALOMEDSImpl_AttributeTarget*)anObject.GetLabel().FindAttribute(SALOMEDSImpl_AttributeTarget::GetID()))) { return aTarget->Get(); } return aSeq; } SALOMEDSImpl_AttributeStudyProperties* SALOMEDSImpl_Study::GetProperties() { _errorCode = ""; return SALOMEDSImpl_AttributeStudyProperties::Set(_doc->Main()); } std::string SALOMEDSImpl_Study::GetLastModificationDate() { _errorCode = ""; SALOMEDSImpl_AttributeStudyProperties* aProp = GetProperties(); std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; aProp->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); int aLastIndex = aNames.size()-1; char aResult[20]; sprintf(aResult, "%2.2d/%2.2d/%4.4d %2.2d:%2.2d", (int)(aDays[aLastIndex]),(int)(aMonths[aLastIndex]), (int)(aYears[aLastIndex]), (int)(aHours[aLastIndex]), (int)(aMinutes[aLastIndex])); std::string aResStr (aResult); return aResStr; } std::vector SALOMEDSImpl_Study::GetModificationsDate() { _errorCode = ""; SALOMEDSImpl_AttributeStudyProperties* aProp = GetProperties(); std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; aProp->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); int anIndex, aLength = aNames.size(); std::vector aDates; for (anIndex = 1; anIndex < aLength; anIndex++) { char aDate[20]; sprintf(aDate, "%2.2d/%2.2d/%4.4d %2.2d:%2.2d", (int)(aDays[anIndex]), (int)(aMonths[anIndex]), (int)(aYears[anIndex]), (int)(aHours[anIndex]), (int)(aMinutes[anIndex])); aDates.push_back(aDate); } return aDates; } //============================================================================ /*! Function : GetUseCaseBuilder * Purpose : Returns a UseCase builder */ //============================================================================ SALOMEDSImpl_UseCaseBuilder* SALOMEDSImpl_Study::GetUseCaseBuilder() { _errorCode = ""; return _useCaseBuilder; } //============================================================================ /*! Function : Close * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::Close() { _errorCode = ""; _doc->GetApplication()->Close(_doc); _doc = NULL; _mapOfSO.clear(); _mapOfSCO.clear(); } //============================================================================ /*! Function : GetSComponent * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_Study::GetSComponent(const std::string& theEntry) { SALOMEDSImpl_SComponent aSCO; if(_mapOfSCO.find(theEntry) != _mapOfSCO.end()) aSCO = _mapOfSCO[theEntry]; else { DF_Label aLabel = DF_Label::Label(_doc->Main(), theEntry); aSCO = SALOMEDSImpl_SComponent(aLabel); _mapOfSCO[theEntry] = aSCO; } return aSCO; } //============================================================================ /*! Function : GetSComponent * Purpose : */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_Study::GetSComponent(const DF_Label& theLabel) { return SALOMEDSImpl_SComponent(theLabel); } //============================================================================ /*! Function : GetSObject * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::GetSObject(const std::string& theEntry) { SALOMEDSImpl_SObject aSO; std::map::iterator it=_mapOfSO.find(theEntry); if(it != _mapOfSO.end()) aSO = it->second; else { DF_Label aLabel = DF_Label::Label(_doc->Main(), theEntry); aSO = SALOMEDSImpl_SObject(aLabel); _mapOfSO[theEntry] = aSO; } return aSO; } //============================================================================ /*! Function : GetSObject * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_Study::GetSObject(const DF_Label& theLabel) { return SALOMEDSImpl_SObject(theLabel); } //============================================================================ /*! Function : GetAttribute * Purpose : */ //============================================================================ DF_Attribute* SALOMEDSImpl_Study::GetAttribute(const std::string& theEntry, const std::string& theType) { SALOMEDSImpl_SObject aSO = GetSObject(theEntry); DF_Attribute* anAttr; aSO.FindAttribute(anAttr, theType); return anAttr; } //! number of spaces for indentation in Python dump files (to replace \t symbols) static const int indent_size = 2; static std::string replace_tabs( const std::string& in ) { std::string out = in; #ifdef WITHOUT_TABS size_t pos = out.find( '\t' ); while ( pos != std::string::npos ) { out.replace( pos, 1, indent_size, ' ' ); pos = out.find( '\t' ); } #endif return out; } static std::string GetComponentHeader(const char* theComponentName) { std::stringstream txt; txt << "###" << std::endl; txt << "### " << theComponentName << " component" << std::endl; txt << "###" << std::endl; return txt.str(); } //============================================================================ /*! Function : DumpStudy * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::DumpStudy(const std::string& thePath, const std::string& theBaseName, bool isPublished, bool isMultiFile, SALOMEDSImpl_DriverFactory* theFactory) { _errorCode = ""; if(theFactory == NULL) { _errorCode = "Null factory for creation of Engines"; return false; } std::vector aSeq; std::string aCompType, aFactoryType; //Build a list of all components in the Study SALOMEDSImpl_SComponentIterator itcomponent = NewComponentIterator(); for (; itcomponent.More(); itcomponent.Next()) { SALOMEDSImpl_SComponent sco = itcomponent.Value(); aCompType = sco.ComponentDataType(); //GEOM and MED are independent components if (aCompType == "GEOM" || aCompType == "MED") aSeq.insert(aSeq.begin(), aCompType); else aSeq.push_back(aCompType); } #ifdef WIN32 std::string aFileName = thePath + std::string("\\") + theBaseName + std::string(".py"); #else std::string aFileName = thePath + std::string("/") + theBaseName + std::string(".py"); #endif //Create a file that will contain a main Study script std::fstream fp; fp.open(aFileName.c_str(), std::ios::out); #ifdef WIN32 bool isOpened = fp.is_open(); #else bool isOpened = fp.rdbuf()->is_open(); #endif if(!isOpened) { _errorCode = std::string("Can't create a file ")+aFileName; return false; } std::stringstream sfp; std::string aBatchModeScript = "salome"; //Output to the main Study script required Python modules import, //set sys.path and add a creation of the study. // dump header sfp << GetDumpStudyComment() << std::endl; // global imports sfp << "import sys" << std::endl; sfp << "import " << aBatchModeScript << std::endl << std::endl; // initialization function sfp << aBatchModeScript << ".salome_init()" << std::endl; if ( !isMultiFile ) sfp << "theStudy = salome.myStudy" < 0) { sfp << SALOMEDSImpl_IParameters::getStudyScript(this, lastSavePoint) << std::endl << std::endl; } } std::vector aSeqOfFileNames; // dump all components and create the components specific scripts bool isOk = true; int aLength = aSeq.size(); for(int i = 1; i <= aLength; i++) { aCompType = aSeq[i-1]; SALOMEDSImpl_SComponent sco = FindComponent(aCompType); SALOMEDSImpl_Driver* aDriver = NULL; // if there is an associated Engine call its method for saving std::string IOREngine; try { if (!sco.ComponentIOR(IOREngine)) { if (!aCompType.empty()) { aDriver = theFactory->GetDriverByType(aCompType); if (aDriver != NULL) { SALOMEDSImpl_StudyBuilder* SB = NewBuilder(); if(!SB->LoadWith(sco, aDriver)) { _errorCode = SB->GetErrorCode(); return false; } } else continue; } } else { aDriver = theFactory->GetDriverByIOR(IOREngine); } } catch(...) { _errorCode = "Can not restore information to dump it"; return false; } if(aDriver == NULL) continue; bool isValidScript; long aStreamLength = 0; SALOMEDSImpl_TMPFile* aStream = aDriver->DumpPython(this, isPublished, isMultiFile, isValidScript, aStreamLength); if ( !isValidScript ) isOk = false; std::stringstream sfp2; //Output the Python script generated by the component in the newly created file. if ( isMultiFile ) sfp2 << GetDumpStudyComment( aCompType.c_str() ) << std::endl; else sfp2 << GetComponentHeader( aCompType.c_str() ) << std::endl; sfp2 << aStream->Data(); if ( isMultiFile ) { //Create a file that will contain the component specific script std::fstream fp2; #ifdef WIN32 aFileName=thePath+std::string("\\"); #else aFileName=thePath+std::string("/"); #endif std::string aScriptName; aScriptName += theBaseName; aScriptName += "_"; aScriptName += aCompType; aFileName += aScriptName+ std::string(".py"); aSeqOfFileNames.push_back(aFileName); fp2.open(aFileName.c_str(), std::ios::out); #ifdef WIN32 isOpened = fp2.is_open(); #else isOpened = fp2.rdbuf()->is_open(); #endif if(!isOpened) { _errorCode = std::string("Can't create a file ")+aFileName; SALOMEDSImpl_Tool::RemoveTemporaryFiles(thePath, aSeqOfFileNames, false); return false; } // replace '\t' symbols fp2 << replace_tabs( sfp2.str() ); fp2.close(); //Add to the main script a call to RebuildData of the generated by the component the Python script sfp << "import " << aScriptName << std::endl; sfp << aScriptName << ".RebuildData(" << aBatchModeScript << ".myStudy)" << std::endl; } else sfp << sfp2.str(); if(aStream) delete aStream; } sfp << std::endl; sfp << "if salome.sg.hasDesktop():" << std::endl; sfp << "\tsalome.sg.updateObjBrowser(1)" << std::endl; if(isDumpVisuals) { //Output the call to Session's method restoreVisualState sfp << "\tiparameters.getSession().restoreVisualState(1)" << std::endl; } // replace '\t' symbols fp << replace_tabs( sfp.str() ); fp.close(); return isOk; } //======================================================================= //function : GetDumpStudyComment //purpose : return a header comment for a DumpStudy script //======================================================================= std::string SALOMEDSImpl_Study::GetDumpStudyComment(const char* theComponentName) { std::stringstream txt; txt << "# -*- coding: iso-8859-1 -*-" << std::endl << std::endl; txt << "###" << std::endl; txt << "### This file is generated automatically by SALOME v" << KERNEL_VERSION_STR << " with dump python functionality"; if ( theComponentName ) txt << " (" << theComponentName << " component)"; txt << std::endl; txt << "###" << std::endl; return txt.str(); } void dumpSO(const SALOMEDSImpl_SObject& theSO, std::fstream& fp, const std::string& Tab, SALOMEDSImpl_Study* theStudy); //============================================================================ /*! Function : dump * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::dump(const std::string& theFileName) { //Create a file that will contain a main Study script std::fstream fp; fp.open(theFileName.c_str(), std::ios::out); #ifdef WIN32 bool isOpened = fp.is_open(); #else bool isOpened = fp.rdbuf()->is_open(); #endif if(!isOpened) { _errorCode = std::string("Can't create a file ")+theFileName; std::cout << "### SALOMEDSImpl_Study::dump Error: " << _errorCode << std::endl; return; } SALOMEDSImpl_SObject aSO = FindObjectID("0:1"); fp << "0:1" << std::endl; SALOMEDSImpl_ChildIterator Itr = NewChildIterator(aSO); std::string aTab(" "); for(; Itr.More(); Itr.Next()) { dumpSO(Itr.Value(), fp, aTab, this); } fp.close(); } void dumpSO(const SALOMEDSImpl_SObject& theSO, std::fstream& fp, const std::string& Tab, SALOMEDSImpl_Study* theStudy) { std::string aTab(Tab), anID(theSO.GetID()); fp << aTab << anID << std::endl; std::vector attribs = theSO.GetLabel().GetAttributes(); for(int i = 0; i(attribs[i]); if(!anAttr) { continue; } std::string aType = anAttr->GetClassType(); fp << Tab << " -- " << aType; if(aType == std::string("AttributeReal")) { fp << " : " << dynamic_cast(anAttr)->Value(); } else if(aType == std::string("AttributeInteger")) { fp << " : " << dynamic_cast(anAttr)->Value(); } else if(aType == std::string("AttributeName")) { fp << " : " << dynamic_cast(anAttr)->Value(); } else if(aType == std::string("AttributeComment")) { fp << " : " << dynamic_cast(anAttr)->Value(); } else if(aType == std::string("AttributeReference")) { fp << " : " << dynamic_cast(anAttr)->Save(); } fp << std::endl; } SALOMEDSImpl_ChildIterator Itr = theStudy->NewChildIterator(theSO); std::string aNewTab(" "); aNewTab+=aTab; for(; Itr.More(); Itr.Next()) { dumpSO(Itr.Value(), fp, aNewTab, theStudy); } return; } void SALOMEDSImpl_Study::Modify() { _errorCode = ""; _doc->SetModified(true); } //============================================================================ /*! Function : * Purpose : */ //============================================================================ SALOMEDSImpl_AttributeParameter* SALOMEDSImpl_Study::GetCommonParameters(const char* theID, int theSavePoint) { if (theSavePoint < -1) return NULL; SALOMEDSImpl_StudyBuilder* builder = NewBuilder(); SALOMEDSImpl_SObject so = FindComponent((char*)theID); if (!so) so = builder->NewComponent((char*)theID); SALOMEDSImpl_AttributeParameter* attParam = NULL; if (theSavePoint == -1) { int ctag = 1; DF_Label savePointLabel = so.GetLabel().FindChild( ctag, /*create=*/0 ); DF_Label prevPointLabel; while ( !savePointLabel.IsNull() ) { ctag++; prevPointLabel = savePointLabel; savePointLabel = so.GetLabel().FindChild( ctag, /*create=*/0 ); } if ( !prevPointLabel.IsNull() ) so = GetSObject( prevPointLabel ); } if (theSavePoint > 0) { // Try to find SObject that contains attribute parameter ... DF_Label savePointLabel = so.GetLabel().FindChild( theSavePoint, /*create=*/0 ); if ( !savePointLabel.IsNull() ) so = GetSObject( savePointLabel ); else // ... if it does not exist - create a new one so = builder->NewObjectToTag( so, theSavePoint ); } DF_Attribute* A; if (so) { builder->FindAttribute(so, A, "AttributeParameter"); if ( !A ) { // first call of GetCommonParameters on "Interface Applicative" component A = builder->FindOrCreateAttribute(so, "AttributeParameter"); } attParam = dynamic_cast( A ); } return attParam; } //============================================================================ /*! Function : * Purpose : */ //============================================================================ SALOMEDSImpl_AttributeParameter* SALOMEDSImpl_Study::GetModuleParameters(const char* theID, const char* theModuleName, int theSavePoint) { if(theSavePoint < -1) return NULL; SALOMEDSImpl_AttributeParameter* main_ap = GetCommonParameters(theID, theSavePoint); SALOMEDSImpl_SObject main_so = main_ap->GetSObject(); SALOMEDSImpl_AttributeParameter* par = NULL; SALOMEDSImpl_ChildIterator it = NewChildIterator(main_so); std::string moduleName(theModuleName); for(; it.More(); it.Next()) { SALOMEDSImpl_SObject so(it.Value()); if((par=(SALOMEDSImpl_AttributeParameter*)so.GetLabel().FindAttribute(SALOMEDSImpl_AttributeParameter::GetID()))) { if(!par->IsSet("AP_MODULE_NAME", (Parameter_Types)3)) continue; //3 -> PT_STRING if(par->GetString("AP_MODULE_NAME") == moduleName) return par; } } SALOMEDSImpl_StudyBuilder* builder = NewBuilder(); SALOMEDSImpl_SObject so = builder->NewObject(main_so); par = dynamic_cast(builder->FindOrCreateAttribute(so, "AttributeParameter")); par->SetString("AP_MODULE_NAME", moduleName); return par; } //============================================================================ /*! Function : SetStudyLock * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::SetStudyLock(const char* theLockerID) { _lockers.push_back(theLockerID); } //============================================================================ /*! Function : IsStudyLocked * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::IsStudyLocked() { return (_lockers.size() > 0); } //============================================================================ /*! Function : UnLockStudy * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::UnLockStudy(const char* theLockerID) { std::vector::iterator vsI = _lockers.begin(); int length = _lockers.size(); bool isFound = false; std::string id(theLockerID); for(int i = 0; i SALOMEDSImpl_Study::GetLockerID() { return _lockers; } //============================================================================ /*! Function : SetVariable * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::SetVariable(const std::string& theVarName, const double theValue, const SALOMEDSImpl_GenericVariable::VariableTypes theType) { bool modified = false; SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); if( aGVar == NULL ) { SALOMEDSImpl_ScalarVariable* aSVar = new SALOMEDSImpl_ScalarVariable(theType, theVarName); aSVar->setValue(theValue); myNoteBookVars.push_back(aSVar); modified = true; } else { if(SALOMEDSImpl_ScalarVariable* aSVar = dynamic_cast(aGVar)) { modified = aSVar->setValue(theValue) || modified; modified = aSVar->setType(theType) || modified; } } if(modified) Modify(); } //============================================================================ /*! Function : SetStringVariable * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::SetStringVariable(const std::string& theVarName, const std::string& theValue, const SALOMEDSImpl_GenericVariable::VariableTypes theType) { bool modified = false; SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); if( aGVar == NULL ) { SALOMEDSImpl_ScalarVariable* aSVar = new SALOMEDSImpl_ScalarVariable(theType, theVarName); aSVar->setStringValue(theValue); myNoteBookVars.push_back(aSVar); modified = true; } else { if(SALOMEDSImpl_ScalarVariable* aSVar = dynamic_cast(aGVar)) { modified = aSVar->setStringValue(theValue) || modified; modified = aSVar->setType(theType) || modified; } } if(modified) Modify(); } //============================================================================ /*! Function : SetStringVariableAsDouble * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::SetStringVariableAsDouble(const std::string& theVarName, const double theValue, const SALOMEDSImpl_GenericVariable::VariableTypes theType) { SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); if(SALOMEDSImpl_ScalarVariable* aSVar = dynamic_cast(aGVar)) aSVar->setValue(theValue); } //============================================================================ /*! Function : GetReal * Purpose : */ //============================================================================ double SALOMEDSImpl_Study::GetVariableValue(const std::string& theVarName) { SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); if(aGVar != NULL ) if(SALOMEDSImpl_ScalarVariable* aSVar = dynamic_cast(aGVar)) return aSVar->getValue(); return 0; } //============================================================================ /*! Function : GetString * Purpose : */ //============================================================================ std::string SALOMEDSImpl_Study::GetStringVariableValue(const std::string& theVarName) { SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); if(aGVar != NULL ) if(SALOMEDSImpl_ScalarVariable* aSVar = dynamic_cast(aGVar)) return aSVar->getStringValue(); return 0; } //============================================================================ /*! Function : IsTypeOf * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::IsTypeOf(const std::string& theVarName, SALOMEDSImpl_GenericVariable:: VariableTypes theType) const { SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); if(aGVar != NULL ) return aGVar->Type() == theType; return false; } //============================================================================ /*! Function : IsVariable * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::IsVariable(const std::string& theVarName) const { SALOMEDSImpl_GenericVariable* aGVar = GetVariable(theVarName); return (aGVar != NULL); } //============================================================================ /*! Function : GetVariableNames * Purpose : */ //============================================================================ std::vector SALOMEDSImpl_Study::GetVariableNames() const { std::vector aResult; for(int i = 0; i < myNoteBookVars.size(); i++) aResult.push_back(myNoteBookVars[i]->Name()); return aResult; } //============================================================================ /*! Function : AddVariable * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::AddVariable(SALOMEDSImpl_GenericVariable* theVariable) { myNoteBookVars.push_back(theVariable); } //============================================================================ /*! Function : AddVariable * Purpose : */ //============================================================================ SALOMEDSImpl_GenericVariable* SALOMEDSImpl_Study::GetVariable(const std::string& theName) const { SALOMEDSImpl_GenericVariable* aResult = NULL; for(int i = 0; i < myNoteBookVars.size();i++) { if(theName.compare(myNoteBookVars[i]->Name()) == 0) { aResult = myNoteBookVars[i]; break; } } return aResult; } //============================================================================ /*! Function : RemoveVariable * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::RemoveVariable(const std::string& theVarName) { SALOMEDSImpl_GenericVariable* aVariable = GetVariable( theVarName ); if( !aVariable ) return false; std::string aValue = aVariable->SaveToScript(); ReplaceVariableAttribute( theVarName, aValue ); std::vector::iterator it = myNoteBookVars.begin(), itEnd = myNoteBookVars.end(); for( ; it != itEnd; it++ ) { SALOMEDSImpl_GenericVariable* aVariableRef = *it; if( aVariableRef && theVarName.compare( aVariableRef->Name() ) == 0 ) { myNoteBookVars.erase( it ); Modify(); break; } } return true; } //============================================================================ /*! Function : RenameVariable * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::RenameVariable(const std::string& theVarName, const std::string& theNewVarName) { SALOMEDSImpl_GenericVariable* aVariable = GetVariable( theVarName ); if( !aVariable ) return false; ReplaceVariableAttribute( theVarName, theNewVarName ); std::vector::iterator it = myNoteBookVars.begin(), itEnd = myNoteBookVars.end(); for( ; it != itEnd; it++ ) { SALOMEDSImpl_GenericVariable* aVariableRef = *it; if( aVariableRef && theVarName.compare( aVariableRef->Name() ) == 0 ) { aVariableRef->setName( theNewVarName ); Modify(); break; } } return true; } //============================================================================ /*! Function : IsVariableUsed * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::IsVariableUsed(const std::string& theVarName) { return FindVariableAttribute( theVarName ); } //============================================================================ /*! Function : FindVariableAttribute * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::FindVariableAttribute(SALOMEDSImpl_StudyBuilder* theStudyBuilder, SALOMEDSImpl_SObject theSObject, const std::string& theName) { SALOMEDSImpl_ChildIterator anIter = NewChildIterator( theSObject ); for( ; anIter.More(); anIter.Next() ) if( FindVariableAttribute( theStudyBuilder, anIter.Value(), theName ) ) return true; DF_Attribute* anAttr; if( theStudyBuilder->FindAttribute( theSObject, anAttr, "AttributeString" ) ) { if( SALOMEDSImpl_AttributeString* aStringAttr = ( SALOMEDSImpl_AttributeString* )anAttr ) { std::string aString = aStringAttr->Value(); std::vector< std::vector > aSections = ParseVariables( aString ); for( int i = 0, n = aSections.size(); i < n; i++ ) { std::vector aVector = aSections[i]; for( int j = 0, m = aVector.size(); j < m; j++ ) { std::string aStr = aVector[j]; if( aStr.compare( theName ) == 0 ) return true; } } } } return false; } //============================================================================ /*! Function : FindVariableAttribute * Purpose : */ //============================================================================ bool SALOMEDSImpl_Study::FindVariableAttribute(const std::string& theName) { SALOMEDSImpl_StudyBuilder* aStudyBuilder = NewBuilder(); SALOMEDSImpl_SComponentIterator aCompIter = NewComponentIterator(); for( ; aCompIter.More(); aCompIter.Next() ) { SALOMEDSImpl_SObject aComp = aCompIter.Value(); if( FindVariableAttribute( aStudyBuilder, aComp, theName ) ) return true; } return false; } //============================================================================ /*! Function : ReplaceVariableAttribute * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::ReplaceVariableAttribute(SALOMEDSImpl_StudyBuilder* theStudyBuilder, SALOMEDSImpl_SObject theSObject, const std::string& theSource, const std::string& theDest) { SALOMEDSImpl_ChildIterator anIter = NewChildIterator( theSObject ); for( ; anIter.More(); anIter.Next() ) ReplaceVariableAttribute( theStudyBuilder, anIter.Value(), theSource, theDest ); DF_Attribute* anAttr; if( theStudyBuilder->FindAttribute( theSObject, anAttr, "AttributeString" ) ) { if( SALOMEDSImpl_AttributeString* aStringAttr = ( SALOMEDSImpl_AttributeString* )anAttr ) { bool isChanged = false; std::string aNewString, aCurrentString = aStringAttr->Value(); std::vector< std::vector > aSections = ParseVariables( aCurrentString ); for( int i = 0, n = aSections.size(); i < n; i++ ) { std::vector aVector = aSections[i]; for( int j = 0, m = aVector.size(); j < m; j++ ) { std::string aStr = aVector[j]; if( aStr.compare( theSource ) == 0 ) { isChanged = true; aStr = theDest; } aNewString.append( aStr ); if( j != m - 1 ) aNewString.append( ":" ); } if( i != n - 1 ) aNewString.append( "|" ); } if( isChanged ) aStringAttr->SetValue( aNewString ); } } } //============================================================================ /*! Function : ReplaceVariableAttribute * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::ReplaceVariableAttribute(const std::string& theSource, const std::string& theDest) { SALOMEDSImpl_StudyBuilder* aStudyBuilder = NewBuilder(); SALOMEDSImpl_SComponentIterator aCompIter = NewComponentIterator(); for( ; aCompIter.More(); aCompIter.Next() ) { SALOMEDSImpl_SObject aComp = aCompIter.Value(); ReplaceVariableAttribute( aStudyBuilder, aComp, theSource, theDest ); } } //============================================================================ /*! Function : ParseVariables * Purpose : */ //============================================================================ std::vector< std::vector< std::string > > SALOMEDSImpl_Study::ParseVariables(const std::string& theVariables) const { return SALOMEDSImpl_Tool::splitStringWithEmpty( theVariables, OPERATION_SEPARATOR, VARIABLE_SEPARATOR ); } //============================================================================ /*! Function : EnableUseCaseAutoFilling * Purpose : */ //============================================================================ void SALOMEDSImpl_Study::EnableUseCaseAutoFilling(bool isEnabled) { _errorCode = ""; _autoFill = isEnabled; if(isEnabled) { _builder->SetOnAddSObject(_cb); _builder->SetOnRemoveSObject(_cb); } else { _builder->SetOnAddSObject(NULL); _builder->SetOnRemoveSObject(NULL); } } //============================================================================ /*! Function : GetIORs * Purpose : */ //============================================================================ std::vector SALOMEDSImpl_Study::GetIORs() { std::vector anIORs; std::map::const_iterator MI; for(MI = myIORLabels.begin(); MI!=myIORLabels.end(); MI++) anIORs.push_back(MI->first); return anIORs; } //============================================================================ /*! Function : addSO_Notification * Purpose : This function tells all the observers that a SO has been added */ //============================================================================ bool SALOMEDSImpl_Study::addSO_Notification (const SALOMEDSImpl_SObject& theSObject) { if(_notifier) return _notifier->addSO_Notification(theSObject); else return false; } //============================================================================ /*! Function : removeSO_Notification * Purpose : This function tells all the observers that a SO has been removed */ //============================================================================ bool SALOMEDSImpl_Study::removeSO_Notification (const SALOMEDSImpl_SObject& theSObject) { if(_notifier) return _notifier->removeSO_Notification(theSObject); else return false; } //============================================================================ /*! Function : modifySO_Notification * Purpose : This function tells all the observers that a SO has been modified and pass the mofification reason */ //============================================================================ bool SALOMEDSImpl_Study::modifySO_Notification (const SALOMEDSImpl_SObject& theSObject, int reason) { if(_notifier) return _notifier->modifySO_Notification(theSObject, reason); else return false; } //============================================================================ /*! Function : setNotifier * Purpose : register a notifier */ //============================================================================ void SALOMEDSImpl_Study::setNotifier(SALOMEDSImpl_AbstractCallback* notifier) { _notifier=notifier; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Study.hxx000077500000000000000000000304101177004724000230550ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Study.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_STUDY_I_H__ #define __SALOMEDSIMPL_STUDY_I_H__ // std C++ headers #include #include #include #include #include "DF_Document.hxx" #include "DF_Label.hxx" #include //SALOMEDSImpl headers #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_SComponentIterator.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" #include "SALOMEDSImpl_AttributeStudyProperties.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_Callback.hxx" #include "SALOMEDSImpl_Driver.hxx" #include "SALOMEDSImpl_ChildIterator.hxx" #include "SALOMEDSImpl_GenericVariable.hxx" class SALOMEDSImpl_StudyManager; class SALOMEDSImpl_GenericAttribute; class SALOMEDSIMPL_EXPORT SALOMEDSImpl_Study { private: std::string _name; DF_Document* _doc; // Document bool _Saved; // True if the Study is saved std::string _URL; //URL of the persistent reference of the study int _StudyId; DF_Label _current; bool _autoFill; std::string _errorCode; std::vector _lockers; SALOMEDSImpl_Callback* _cb; SALOMEDSImpl_StudyBuilder* _builder; SALOMEDSImpl_UseCaseBuilder* _useCaseBuilder; SALOMEDSImpl_AbstractCallback* _notifier; std::map _mapOfSO; std::map _mapOfSCO; std::map myIORLabels; std::vector myNoteBookVars; SALOMEDSImpl_SObject _FindObject(const SALOMEDSImpl_SObject& SO, const std::string& anObjectName, bool& _find); SALOMEDSImpl_SObject _FindObjectIOR(const SALOMEDSImpl_SObject& SO, const std::string& anObjectIOR, bool& _find); std::string _GetStudyVariablesScript(); std::string _GetNoteBookAccessor(); std::string _GetNoteBookAccess(); public: static SALOMEDSImpl_Study* GetStudy(const DF_Label& theLabel); static SALOMEDSImpl_SObject SObject(const DF_Label& theLabel); static SALOMEDSImpl_SComponent SComponent(const DF_Label& theLabel); static void IORUpdated(const SALOMEDSImpl_AttributeIOR* theAttribute); //! standard constructor SALOMEDSImpl_Study(const DF_Document*, const std::string& study_name); //! standard destructor virtual ~SALOMEDSImpl_Study(); //! method to Get persistent reference of study (idem URL()) virtual std::string GetPersistentReference(); //! method to Get transient reference of study virtual std::string GetTransientReference(); virtual void SetTransientReference(const std::string& theIOR); //! method to detect if a study is empty virtual bool IsEmpty(); //! method to Find a Component with ComponentDataType = aComponentName virtual SALOMEDSImpl_SComponent FindComponent (const std::string& aComponentName); //! method to Find a Component Find a Component from it's ID virtual SALOMEDSImpl_SComponent FindComponentID(const std::string& aComponentID); //! method to Find an Object with SALOMEDSImpl::Name = anObjectName virtual SALOMEDSImpl_SObject FindObject(const std::string& anObjectName); //! method to Find Object(s) with SALOMEDSImpl::Name=anObjectName in a component with ComponentDataType = aComponentName virtual std::vector FindObjectByName( const std::string& anObjectName, const std::string& aComponentName ) ; //! method to Find an Object with ID = anObjectID virtual SALOMEDSImpl_SObject FindObjectID(const std::string& anObjectID); //! method to Create an Object with ID = anObjectID virtual SALOMEDSImpl_SObject CreateObjectID(const std::string& anObjectID); //! method to Find an Object with ID = anObjectIOR virtual SALOMEDSImpl_SObject FindObjectIOR(const std::string& anObjectIOR); //! method to Find an Object by its path virtual SALOMEDSImpl_SObject FindObjectByPath(const std::string& thePath); //! method to get a path of SObject virtual std::string GetObjectPath(const SALOMEDSImpl_SObject& theObject); std::string GetObjectPathByIOR(const std::string& theIOR); //! method to set a context: root ('/') is UserData component virtual bool SetContext(const std::string& thePath); //! method to get a context virtual std::string GetContext(); //! method to get all object names in the given context (or in the current context, if 'theContext' is empty) virtual std::vector GetObjectNames(const std::string& theContext); //! method to get all directory names in the given context (or in the current context, if 'theContext' is empty) virtual std::vector GetDirectoryNames(const std::string& theContext); //! method to get all file names in the given context (or in the current context, if 'theContext' is empty) virtual std::vector GetFileNames(const std::string& theContext); //! method to get all components names virtual std::vector GetComponentNames(const std::string& theContext); //! method to Create a ChildIterator from an SObject virtual SALOMEDSImpl_ChildIterator NewChildIterator(const SALOMEDSImpl_SObject& aSO); //! method to Create a SComponentIterator virtual SALOMEDSImpl_SComponentIterator NewComponentIterator(); //! method to Create a StudyBuilder virtual SALOMEDSImpl_StudyBuilder* NewBuilder(); //! method to get study name virtual std::string Name(); //! method to set study name virtual void Name(const std::string& name); //! method to get if study has been saved virtual bool IsSaved(); //! method to set if study has been saved virtual void IsSaved(bool save); //! method to Detect if a Study has been modified since it has been saved virtual bool IsModified(); //! method to get URL of the study (idem GetPersistentReference) virtual std::string URL(); //! method to set URL of the study virtual void URL(const std::string& url); virtual bool IsLocked(); virtual int StudyId(); virtual void StudyId(int id); virtual void DeleteIORLabelMapItem(const std::string& anIOR); virtual void UpdateIORLabelMap(const std::string& anIOR, const std::string& aLabel); virtual std::vector FindDependances(const SALOMEDSImpl_SObject& anObject); virtual SALOMEDSImpl_AttributeStudyProperties* GetProperties(); virtual std::string GetLastModificationDate(); virtual std::vector GetModificationsDate(); virtual SALOMEDSImpl_UseCaseBuilder* GetUseCaseBuilder(); virtual void Close(); void EnableUseCaseAutoFilling(bool isEnabled); virtual std::string GetErrorCode() { return _errorCode; } virtual bool IsError() { return _errorCode != ""; } virtual SALOMEDSImpl_SComponent GetSComponent(const std::string& theEntry); virtual SALOMEDSImpl_SComponent GetSComponent(const DF_Label& theLabel); virtual SALOMEDSImpl_SObject GetSObject(const std::string& theEntry); virtual SALOMEDSImpl_SObject GetSObject(const DF_Label& theEntryLabel); virtual DF_Attribute* GetAttribute(const std::string& theEntry, const std::string& theType); virtual bool HasCurrentContext() { return !_current.IsNull(); } virtual bool DumpStudy(const std::string& thePath, const std::string& theBaseName, bool isPublished, bool isMultiFile, SALOMEDSImpl_DriverFactory* theFactory); static std::string GetDumpStudyComment(const char* theComponentName = 0); virtual DF_Document* GetDocument() { return _doc; } //The method dump creates a txt file that contain a dump of the study, for debug use void dump(const std::string& theFileName); //This method marks the study as being modified void Modify(); SALOMEDSImpl_AttributeParameter* GetCommonParameters(const char* theID, int theSavePoint); SALOMEDSImpl_AttributeParameter* GetModuleParameters(const char* theID, const char* theModuleName, int theSavePoint); //Locks the study, theLockerID is identificator of the of the one who locked the study for ex. IOR void SetStudyLock(const char* theLockerID); //Returns True if the study is locked bool IsStudyLocked(); //Unlocks the study void UnLockStudy(const char* theLockerID); //Returns an ID of the study locker std::vector GetLockerID(); //Managing of variables void SetVariable(const std::string& theVarName, const double theValue, const SALOMEDSImpl_GenericVariable::VariableTypes); void SetStringVariable(const std::string& theVarName, const std::string& theValue, const SALOMEDSImpl_GenericVariable::VariableTypes); void SetStringVariableAsDouble(const std::string& theVarName, const double theValue, const SALOMEDSImpl_GenericVariable::VariableTypes); double GetVariableValue(const std::string& theVarName); std::string GetStringVariableValue(const std::string& theVarName); bool IsTypeOf(const std::string& theVarName, SALOMEDSImpl_GenericVariable::VariableTypes theType) const; bool IsVariable(const std::string& theVarName) const; std::vector GetVariableNames() const; void AddVariable(SALOMEDSImpl_GenericVariable* theVariable); SALOMEDSImpl_GenericVariable* GetVariable(const std::string& theName) const; bool RemoveVariable(const std::string& theVarName); bool RenameVariable(const std::string& theVarName, const std::string& theNewVarName); bool IsVariableUsed(const std::string& theVarName); bool FindVariableAttribute(SALOMEDSImpl_StudyBuilder* theStudyBuilder, SALOMEDSImpl_SObject theSObject, const std::string& theName); bool FindVariableAttribute(const std::string& theName); void ReplaceVariableAttribute(SALOMEDSImpl_StudyBuilder* theStudyBuilder, SALOMEDSImpl_SObject theSObject, const std::string& theSource, const std::string& theDest); void ReplaceVariableAttribute(const std::string& theSource, const std::string& theDest); std::vector< std::vector > ParseVariables(const std::string& theVariables) const; //Returns a callback SALOMEDSImpl_Callback* GetCallback() { return _cb; } //Returns a list of IOR's stored in the study std::vector GetIORs(); // Notification mechanism virtual bool addSO_Notification(const SALOMEDSImpl_SObject& theSObject); virtual bool removeSO_Notification(const SALOMEDSImpl_SObject& theSObject); virtual bool modifySO_Notification(const SALOMEDSImpl_SObject& theSObject, int reason); virtual void setNotifier(SALOMEDSImpl_AbstractCallback* notifier); friend class SALOMEDSImpl_StudyManager; friend class SALOMEDSImpl_GenericAttribute; friend class SALOMEDSImpl_GenericVariable; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_StudyBuilder.cxx000077500000000000000000000771521177004724000243750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_StudyBuilder.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_Tool.hxx" #include "SALOMEDSImpl_ChildNodeIterator.hxx" #include "DF_ChildIterator.hxx" #include "DF_Label.hxx" #include #include #include #define USE_CASE_LABEL_TAG 2 #define DIRECTORYID 16661 #define FILELOCALID 26662 static void Translate_persistentID_to_IOR(DF_Label& Lab, SALOMEDSImpl_Driver* driver, bool isMultiFile, bool isASCII); //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDSImpl_StudyBuilder::SALOMEDSImpl_StudyBuilder(const SALOMEDSImpl_Study* theOwner) { _errorCode = ""; _callbackOnAdd=NULL; _callbackOnRemove = NULL; _study = (SALOMEDSImpl_Study*)theOwner; _doc = _study->GetDocument(); } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDSImpl_StudyBuilder::~SALOMEDSImpl_StudyBuilder() {} //============================================================================ /*! Function : NewComponent * Purpose : Create a new component (Scomponent) */ //============================================================================ SALOMEDSImpl_SComponent SALOMEDSImpl_StudyBuilder::NewComponent(const std::string& DataType) { _errorCode = ""; CheckLocked(); SALOMEDSImpl_SComponent sco; if(DataType.size() == 0) return sco; //Always create component under main label. DF_Label L = _doc->Main(); DF_Label NL = L.NewChild(); SALOMEDSImpl_AttributeComment::Set(NL, DataType); SALOMEDSImpl_SComponent so = _study->GetSComponent (NL); if(_callbackOnAdd) _callbackOnAdd->OnAddSObject(so); _study->addSO_Notification(so); _doc->SetModified(true); return so; } //============================================================================ /*! Function : DefineComponentInstance * Purpose : Add IOR attribute of a Scomponent */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::DefineComponentInstance(const SALOMEDSImpl_SComponent& aComponent, const std::string& IOR) { _errorCode = ""; CheckLocked(); if(!aComponent || IOR.empty()) { _errorCode = "Invalid arguments"; return false; } //add IOR definition SALOMEDSImpl_AttributeIOR::Set(aComponent.GetLabel(), IOR); return true; } //============================================================================ /*! Function : RemoveComponent * Purpose : Delete a Scomponent */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::RemoveComponent(const SALOMEDSImpl_SComponent& aComponent) { _errorCode = ""; CheckLocked(); return RemoveObject(aComponent); } //============================================================================ /*! Function : NewObject * Purpose : Create a new SObject */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_StudyBuilder::NewObject(const SALOMEDSImpl_SObject& theFatherObject) { _errorCode = ""; CheckLocked(); //Find label of father DF_Label Lab = theFatherObject.GetLabel(); //Create a new label DF_Label NewLab = Lab.NewChild(); SALOMEDSImpl_SObject so = _study->GetSObject(NewLab); if(_callbackOnAdd) _callbackOnAdd->OnAddSObject(so); _study->addSO_Notification(so); _doc->SetModified(true); return so; } //============================================================================ /*! Function : NewObjectToTag * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_StudyBuilder::NewObjectToTag(const SALOMEDSImpl_SObject& theFatherObject, const int theTag) { _errorCode = ""; CheckLocked(); //Find label of father DF_Label Lab = theFatherObject.GetLabel(); //Create or find label DF_Label NewLab = Lab.FindChild(theTag, 1); SALOMEDSImpl_SObject so = _study->GetSObject(NewLab); if(_callbackOnAdd) _callbackOnAdd->OnAddSObject(so); _study->addSO_Notification(so); _doc->SetModified(true); return so; } //============================================================================ /*! Function : RemoveObject * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::RemoveObject(const SALOMEDSImpl_SObject& anObject) { _errorCode = ""; CheckLocked(); if(!anObject) { _errorCode = "Null object"; return false; } if(_callbackOnRemove) _callbackOnRemove->OnRemoveSObject(anObject); DF_Label Lab = anObject.GetLabel(); SALOMEDSImpl_AttributeReference* aReference = NULL; if ((aReference=(SALOMEDSImpl_AttributeReference*)Lab.FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { SALOMEDSImpl_AttributeTarget* aTarget = NULL; if ((aTarget=(SALOMEDSImpl_AttributeTarget*)aReference->Get().FindAttribute(SALOMEDSImpl_AttributeTarget::GetID()))) aTarget->Remove(SALOMEDSImpl_Study::SObject(Lab)); } SALOMEDSImpl_AttributeIOR* anAttr = NULL; //Remove from IORLabel map if ((anAttr=(SALOMEDSImpl_AttributeIOR*)Lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { _study->DeleteIORLabelMapItem(anAttr->Value()); } Lab.ForgetAllAttributes(); _doc->SetModified(true); _study->removeSO_Notification(anObject); return true; } //============================================================================ /*! Function : RemoveObjectWithChildren * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::RemoveObjectWithChildren(const SALOMEDSImpl_SObject& anObject) { _errorCode = ""; CheckLocked(); if(!anObject) { _errorCode = "Null object"; return false; } if(_callbackOnRemove) _callbackOnRemove->OnRemoveSObject(anObject); DF_Label Lab = anObject.GetLabel(); SALOMEDSImpl_AttributeReference* aReference = NULL; if ((aReference=(SALOMEDSImpl_AttributeReference*)Lab.FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { SALOMEDSImpl_AttributeTarget* aTarget = NULL; if ((aTarget=(SALOMEDSImpl_AttributeTarget*)aReference->Get().FindAttribute(SALOMEDSImpl_AttributeTarget::GetID()))) aTarget->Remove(SALOMEDSImpl_Study::SObject(Lab)); } SALOMEDSImpl_AttributeIOR* anAttr = NULL; //Remove from IORLabel map if ((anAttr=(SALOMEDSImpl_AttributeIOR*)Lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { _study->DeleteIORLabelMapItem(anAttr->Value()); } DF_ChildIterator it(Lab, true); for(;it.More();it.Next()) { DF_Label aLabel = it.Value(); if ((aReference=(SALOMEDSImpl_AttributeReference*)aLabel.FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { SALOMEDSImpl_AttributeTarget* aTarget = NULL; if ((aTarget=(SALOMEDSImpl_AttributeTarget*)aReference->Get().FindAttribute(SALOMEDSImpl_AttributeTarget::GetID()))) aTarget->Remove(SALOMEDSImpl_Study::SObject(aLabel)); } SALOMEDSImpl_AttributeIOR* anAttr = NULL; //Remove from IORLabel map if ((anAttr=(SALOMEDSImpl_AttributeIOR*)aLabel.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { _study->DeleteIORLabelMapItem(anAttr->Value()); } } Lab.ForgetAllAttributes(true); _doc->SetModified(true); _study->removeSO_Notification(anObject); return true; } //============================================================================ /*! Function : LoadWith * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::LoadWith(const SALOMEDSImpl_SComponent& anSCO, SALOMEDSImpl_Driver* aDriver) { _errorCode = ""; DF_Label Lab = anSCO.GetLabel(); SALOMEDSImpl_AttributePersistentRef* Att = NULL; //Find the current Url of the study if ((Att=(SALOMEDSImpl_AttributePersistentRef*)_doc->Main().FindAttribute(SALOMEDSImpl_AttributePersistentRef::GetID()))) { int aLocked = _study->GetProperties()->IsLocked(); if (aLocked) _study->GetProperties()->SetLocked(false); std::string Res(Att->Value()); std::string aHDFPath(Res); SALOMEDSImpl_AttributeComment* type = NULL; std::string DataType; if ((type=(SALOMEDSImpl_AttributeComment*)Lab.FindAttribute(SALOMEDSImpl_AttributeComment::GetID()))) DataType = type->Value(); // associate the driver to the SComponent if(aDriver == NULL) { _errorCode = "Driver is null"; return false; } // mpv 06.03.2003: SAL1927 - if component data if already loaded, it is not necessary to do it again SALOMEDSImpl_AttributeIOR* attrIOR = NULL; if ((attrIOR=(SALOMEDSImpl_AttributeIOR*)Lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { if (aLocked) _study->GetProperties()->SetLocked(true); return true; } DefineComponentInstance (anSCO, aDriver->GetIOR()); std::string aHDFUrl; bool isASCII = false; if (HDFascii::isASCII(aHDFPath.c_str())) { isASCII = true; aHDFUrl = HDFascii::ConvertFromASCIIToHDF(aHDFPath.c_str()); aHDFUrl += "hdf_from_ascii.hdf"; } else { aHDFUrl = aHDFPath; } //Open the Study HDF file HDFfile *hdf_file = new HDFfile((char*)aHDFUrl.c_str()); char aMultifileState[2]; char ASCIIfileState[2]; bool hasModuleData = false; try { std::string scoid = anSCO.GetID(); hdf_file->OpenOnDisk(HDF_RDONLY); HDFgroup *hdf_group = new HDFgroup("DATACOMPONENT",hdf_file); hdf_group->OpenOnDisk(); HDFgroup *hdf_sco_group = new HDFgroup((char*)scoid.c_str(), hdf_group); hdf_sco_group->OpenOnDisk(); hasModuleData = true; unsigned char* aStreamFile = NULL; int aStreamSize = 0; if (hdf_sco_group->ExistInternalObject("FILE_STREAM")) { HDFdataset *hdf_dataset = new HDFdataset("FILE_STREAM", hdf_sco_group); hdf_dataset->OpenOnDisk(); aStreamSize = hdf_dataset->GetSize(); aStreamFile = new unsigned char[aStreamSize]; if(aStreamFile == NULL) throw HDFexception("Unable to open dataset FILE_STREAM"); hdf_dataset->ReadFromDisk(aStreamFile); hdf_dataset->CloseOnDisk(); hdf_dataset = 0; } else aStreamFile = NULL; HDFdataset *multifile_hdf_dataset = new HDFdataset("MULTIFILE_STATE", hdf_sco_group); multifile_hdf_dataset->OpenOnDisk(); multifile_hdf_dataset->ReadFromDisk(aMultifileState); HDFdataset *ascii_hdf_dataset = new HDFdataset("ASCII_STATE", hdf_sco_group); ascii_hdf_dataset->OpenOnDisk(); ascii_hdf_dataset->ReadFromDisk(ASCIIfileState); std::string aDir = SALOMEDSImpl_Tool::GetDirFromPath(Res); bool aResult = true; if(aStreamFile && aStreamSize > 0 ) { aResult = (ASCIIfileState[0]=='A')? aDriver->LoadASCII(anSCO, aStreamFile, aStreamSize, aDir.c_str(), aMultifileState[0]=='M'): aDriver->Load(anSCO, aStreamFile, aStreamSize, aDir.c_str(), aMultifileState[0]=='M'); } if(aStreamFile != NULL) delete []aStreamFile; if(!aResult) { RemoveAttribute( anSCO, "AttributeIOR" ); _errorCode = "Can't load component"; throw HDFexception("Unable to load component"); } //if(aDir != NULL) delete []aDir; multifile_hdf_dataset->CloseOnDisk(); multifile_hdf_dataset = 0; ascii_hdf_dataset->CloseOnDisk(); ascii_hdf_dataset = 0; hdf_sco_group->CloseOnDisk(); hdf_sco_group = 0; hdf_group->CloseOnDisk(); hdf_group = 0; hdf_file->CloseOnDisk(); delete hdf_file; if (isASCII) { std::vector aFilesToRemove; aFilesToRemove.push_back("hdf_from_ascii.hdf"); SALOMEDSImpl_Tool::RemoveTemporaryFiles(SALOMEDSImpl_Tool::GetDirFromPath(aHDFUrl), aFilesToRemove, true); } } catch (HDFexception) { delete hdf_file; if (isASCII) { std::vector aFilesToRemove; aFilesToRemove.push_back(aHDFUrl); SALOMEDSImpl_Tool::RemoveTemporaryFiles(SALOMEDSImpl_Tool::GetDirFromPath(aHDFUrl), aFilesToRemove, true); } if (aLocked) _study->GetProperties()->SetLocked(true); if (!hasModuleData) return true; _errorCode = "No persistent file"; return false; } try { Translate_persistentID_to_IOR (Lab, aDriver, aMultifileState[0]=='M', ASCIIfileState[0] == 'A'); } catch(...) { _errorCode = "Can not convert persistent IDs to IORs"; return false; } if (aLocked) _study->GetProperties()->SetLocked(true); } else { _errorCode = "No persistent file"; } return true; } //============================================================================ /*! Function : Load * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::Load(const SALOMEDSImpl_SObject& sco) { _errorCode = "Not implemented"; return false; } //============================================================================ /*! Function : FindOrCreateAttribute * Purpose : Add attribute of given type to SObject, if there is attribute of such type, returns * existing one */ //============================================================================ DF_Attribute* SALOMEDSImpl_StudyBuilder::FindOrCreateAttribute(const SALOMEDSImpl_SObject& anObject, const std::string& aTypeOfAttribute) { _errorCode = ""; if(!anObject) { _errorCode = "Invalid arguments"; return NULL; } DF_Label Lab = anObject.GetLabel(); if(Lab.IsNull()) { _errorCode = "Null label"; return NULL; } _doc->SetModified(true); //The macro adds all necessary checks for standardly behaiving attributes __FindOrCreateAttributeForBuilder //Add checks for TreeNode and UserID attributes if (strncmp(aTypeOfAttribute.c_str(), "AttributeTreeNode",17) == 0 ) { std::string aTreeNodeGUID; if (strcmp(aTypeOfAttribute.c_str(), "AttributeTreeNode") == 0) { aTreeNodeGUID = SALOMEDSImpl_AttributeTreeNode::GetDefaultTreeID(); } else { aTreeNodeGUID = aTypeOfAttribute.substr(21, aTypeOfAttribute.size()); // create tree node GUID by name } SALOMEDSImpl_AttributeTreeNode* anAttr = NULL; if (!(anAttr=(SALOMEDSImpl_AttributeTreeNode*)Lab.FindAttribute(aTreeNodeGUID))) { CheckLocked(); anAttr = SALOMEDSImpl_AttributeTreeNode::Set(Lab, aTreeNodeGUID); } return anAttr; } if (strncmp(aTypeOfAttribute.c_str(), "AttributeUserID",15) == 0 ) { std::string aUserGUID; if (strcmp(aTypeOfAttribute.c_str(), "AttributeUserID") == 0) { aUserGUID = SALOMEDSImpl_AttributeUserID::DefaultID(); } else { aUserGUID = aTypeOfAttribute.substr(15, aTypeOfAttribute.size()); // create tree node GUID by name } SALOMEDSImpl_AttributeUserID* anAttr = NULL; if (!(anAttr=(SALOMEDSImpl_AttributeUserID*)Lab.FindAttribute(aUserGUID))) { CheckLocked(); anAttr = SALOMEDSImpl_AttributeUserID::Set(Lab, aUserGUID); } return anAttr; } _errorCode = "Can not create an attribute"; return NULL; } //============================================================================ /*! Function : FindAttribute * Purpose : Find attribute of given type assigned SObject, returns Standard_True if it is found */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::FindAttribute(const SALOMEDSImpl_SObject& anObject, DF_Attribute*& anAttribute, const std::string& aTypeOfAttribute) { _errorCode = ""; if(!anObject) { _errorCode = "Invalid arguments"; return false; } DF_Label Lab = anObject.GetLabel(); if ((anAttribute=Lab.FindAttribute(SALOMEDSImpl_SObject::GetGUID(aTypeOfAttribute)))) { // commented out because NO MODIFICATION is done to attributes when calling FindAttribute() // _doc->Modify(); return true; } return false; } //============================================================================ /*! Function : RemoveAttribute * Purpose : Remove attribute of given type assigned SObject */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::RemoveAttribute(const SALOMEDSImpl_SObject& anObject, const std::string& aTypeOfAttribute) { _errorCode = ""; CheckLocked(); if(!anObject) { _errorCode = "Invalid arguments"; return false; } DF_Label Lab = anObject.GetLabel(); if (aTypeOfAttribute == std::string("AttributeIOR")) { // Remove from IORLabel map SALOMEDSImpl_AttributeIOR* anAttr = NULL; if ((anAttr=(SALOMEDSImpl_AttributeIOR*)Lab.FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { _study->DeleteIORLabelMapItem(anAttr->Value()); } } Lab.ForgetAttribute (SALOMEDSImpl_SObject::GetGUID(aTypeOfAttribute)); _doc->SetModified(true); _study->modifySO_Notification(anObject,0); return true; } //============================================================================ /*! Function : Addreference * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::Addreference(const SALOMEDSImpl_SObject& me, const SALOMEDSImpl_SObject& theReferencedObject) { _errorCode = ""; if(!me || !theReferencedObject) { _errorCode = "Invalid arguments"; return false; } CheckLocked(); DF_Label Lab = me.GetLabel(); DF_Label RefLab = theReferencedObject.GetLabel(); SALOMEDSImpl_AttributeReference::Set(Lab,RefLab); SALOMEDSImpl_AttributeTarget::Set(RefLab)->Add(SALOMEDSImpl_Study::SObject(Lab)); if(_callbackOnRemove && Lab.IsDescendant(_doc->Main())) _callbackOnRemove->OnRemoveSObject(me); return true; } //============================================================================ /*! Function : RemoveReference * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::RemoveReference(const SALOMEDSImpl_SObject& me) { _errorCode = ""; SALOMEDSImpl_SObject theReferencedObject; if(!me.ReferencedObject(theReferencedObject)) return false; //No reference is found CheckLocked(); DF_Label Lab = me.GetLabel(); //SRN: 30 Aug, 2004 : fix from Ecole l'ete version DF_Label RefLab = theReferencedObject.GetLabel(); SALOMEDSImpl_AttributeTarget* aTarget = NULL; if((aTarget=(SALOMEDSImpl_AttributeTarget*)RefLab.FindAttribute(SALOMEDSImpl_AttributeTarget::GetID()))) { aTarget->Remove(SALOMEDSImpl_Study::SObject(Lab)); } Lab.ForgetAttribute(SALOMEDSImpl_AttributeReference::GetID()); _doc->SetModified(true); return true; } //============================================================================ /*! Function : AddDirectory * Purpose : adds a new directory with a path = thePath */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::AddDirectory(const std::string& thePath) { _errorCode = ""; CheckLocked(); if(thePath.empty()) { _errorCode = "Invalid path"; return false; } std::string aPath(thePath), aContext(""), aFatherPath; DF_Label aLabel; SALOMEDSImpl_SObject anObject; try { anObject = _study->FindObjectByPath(thePath); //Check if the directory already exists } catch(...) { } if(anObject) { _errorCode = "StudyNameAlreadyUsed"; return false; } if(aPath[0] != '/') { //Relative path aPath.insert(aPath.begin(), '/'); aPath = _study->GetContext() + aPath; } std::vector vs = SALOMEDSImpl_Tool::splitString(aPath, '/'); if(vs.size() == 1) aFatherPath = "/"; else { for(int i = 0, len = vs.size()-1; iFindObjectByPath(aFatherPath); //Check if the father directory exists } catch(...) { ; } if(!anObject) { _errorCode = "StudyInvalidDirectory"; return false; } SALOMEDSImpl_SObject aNewObject = NewObject(anObject); aLabel = aNewObject.GetLabel(); if(aLabel.IsNull()) { _errorCode = "StudyInvalidComponent"; return false; } SALOMEDSImpl_AttributeName::Set(aLabel, vs.back()); //Set LocalID attribute to identify the directory object SALOMEDSImpl_AttributeLocalID::Set(aLabel, DIRECTORYID); _doc->SetModified(true); return true; } //============================================================================ /*! Function : SetGUID * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::SetGUID(const SALOMEDSImpl_SObject& anObject, const std::string& theGUID) { _errorCode = ""; CheckLocked(); if(!anObject) { _errorCode = "Invalid arguments"; return false; } DF_Label aLabel = anObject.GetLabel(); SALOMEDSImpl_AttributeUserID::Set(aLabel, theGUID); _doc->SetModified(true); return true; } //============================================================================ /*! Function : IsGUID * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::IsGUID(const SALOMEDSImpl_SObject& anObject, const std::string& theGUID) { _errorCode = ""; if(!anObject) { _errorCode = "Invalid arguments"; return false; } DF_Label aLabel = anObject.GetLabel(); return aLabel.IsAttribute(theGUID); } //============================================================================ /*! Function : NewCommand * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::NewCommand() { _errorCode = ""; // mpv: for SAL2114 - unset "lock changed" flag at the operation start _study->GetProperties()->IsLockChanged(true); //Not implemented } //============================================================================ /*! Function : CommitCommand * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::CommitCommand() { _errorCode = ""; SALOMEDSImpl_AttributeStudyProperties* anAttr = _study->GetProperties(); if (anAttr->IsLocked() && !anAttr->IsLockChanged(true)) { _errorCode = "LockProtection"; throw LockProtection("LockProtection"); } else { int aModif = anAttr->GetModified(); if (aModif < 0) aModif = 1000; // if user make undo and then - new transaction "modify" will never be zero anAttr->SetModified(aModif+1); } //Not implemented _doc->SetModified(true); } //============================================================================ /*! Function : HasOpenCommand * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::HasOpenCommand() { _errorCode = ""; //Not implememnted return false; } //============================================================================ /*! Function : AbortCommand * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::AbortCommand() { _errorCode = ""; //Not implemented } //============================================================================ /*! Function : Undo * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::Undo() { //Not implemented _errorCode = ""; SALOMEDSImpl_AttributeStudyProperties* anAttr = _study->GetProperties(); if (anAttr->IsLocked()) { _errorCode = "LockProtection"; throw LockProtection("LockProtection"); } else { anAttr->SetModified(anAttr->GetModified()-1); } _doc->SetModified(true); } //============================================================================ /*! Function : Redo * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::Redo() { _errorCode = ""; SALOMEDSImpl_AttributeStudyProperties* anAttr = _study->GetProperties(); if (anAttr->IsLocked()) { _errorCode = "LockProtection"; throw LockProtection("LockProtection"); } else { anAttr->SetModified(anAttr->GetModified()+1); } //Not implemented _doc->SetModified(true); } //============================================================================ /*! Function : GetAvailableUndos * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::GetAvailableUndos() { _errorCode = ""; return false; } //============================================================================ /*! Function : GetAvailableRedos * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::GetAvailableRedos() { _errorCode = ""; return false; } //============================================================================ /*! Function : UndoLimit * Purpose : */ //============================================================================ int SALOMEDSImpl_StudyBuilder::UndoLimit() { _errorCode = ""; return 1; } //============================================================================ /*! Function : UndoLimit * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::UndoLimit(int n) { _errorCode = ""; CheckLocked(); //Not implemented } //============================================================================ /*! Function : SetOnAddSObject * Purpose : */ //============================================================================ SALOMEDSImpl_Callback* SALOMEDSImpl_StudyBuilder::SetOnAddSObject(const SALOMEDSImpl_Callback* theCallback) { _errorCode = ""; SALOMEDSImpl_Callback* aRet = _callbackOnAdd; _callbackOnAdd = (SALOMEDSImpl_Callback*)theCallback; return aRet; } //============================================================================ /*! Function : SetOnNewSObject * Purpose : */ //============================================================================ SALOMEDSImpl_Callback* SALOMEDSImpl_StudyBuilder::SetOnRemoveSObject(const SALOMEDSImpl_Callback* theCallback) { _errorCode = ""; SALOMEDSImpl_Callback* aRet = _callbackOnRemove; _callbackOnRemove = (SALOMEDSImpl_Callback*)theCallback; return aRet; } //============================================================================ /*! Function : CheckLocked * Purpose : */ //============================================================================ void SALOMEDSImpl_StudyBuilder::CheckLocked() { _errorCode = ""; if (HasOpenCommand()) return; SALOMEDSImpl_AttributeStudyProperties* anAttr = _study->GetProperties(); if (anAttr->IsLocked()) { _errorCode = "LockProtection"; throw LockProtection("LockProtection"); } } //============================================================================ /*! Function : SetName * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::SetName(const SALOMEDSImpl_SObject& theSO, const std::string& theValue) { _errorCode = ""; CheckLocked(); if(!theSO) { _errorCode = "Invalid arguments"; return false; } SALOMEDSImpl_AttributeName::Set(theSO.GetLabel(), theValue); _doc->SetModified(true); return true; } //============================================================================ /*! Function : SetComment * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::SetComment(const SALOMEDSImpl_SObject& theSO, const std::string& theValue) { _errorCode = ""; CheckLocked(); if(!theSO) { _errorCode = "Invalid arguments"; return false; } SALOMEDSImpl_AttributeComment::Set(theSO.GetLabel(), theValue); _doc->SetModified(true); return true; } //============================================================================ /*! Function : SetIOR * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyBuilder::SetIOR(const SALOMEDSImpl_SObject& theSO, const std::string& theValue) { _errorCode = ""; CheckLocked(); if(!theSO) { _errorCode = "Invalid arguments"; return false; } SALOMEDSImpl_AttributeIOR::Set(theSO.GetLabel(), theValue); _doc->SetModified(true); return true; } //============================================================================ /*! Function : Translate_persistentID_to_IOR * Purpose : */ //============================================================================ static void Translate_persistentID_to_IOR(DF_Label& Lab, SALOMEDSImpl_Driver* driver, bool isMultiFile, bool isASCII) { if(driver == NULL) return; DF_ChildIterator itchild (Lab); for (; itchild.More(); itchild.Next()) { DF_Label current = itchild.Value(); SALOMEDSImpl_AttributePersistentRef* Att = NULL; if ((Att=(SALOMEDSImpl_AttributePersistentRef*)current.FindAttribute(SALOMEDSImpl_AttributePersistentRef::GetID()))) { SALOMEDSImpl_AttributeLocalID* anID = NULL; if ((anID=(SALOMEDSImpl_AttributeLocalID*)current.FindAttribute(SALOMEDSImpl_AttributeLocalID::GetID()))) if (anID->Value() == FILELOCALID) continue; //SRN: This attribute store a file name, skip it std::string persist_ref = Att->Value(); SALOMEDSImpl_SObject so = SALOMEDSImpl_Study::SObject(current); std::string ior_string = driver->LocalPersistentIDToIOR(so, persist_ref, isMultiFile, isASCII); SALOMEDSImpl_AttributeIOR::Set (current, ior_string); } Translate_persistentID_to_IOR (current, driver, isMultiFile, isASCII); } } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_StudyBuilder.hxx000077500000000000000000000106461177004724000243750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_StudyBuilder.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSImpl_STUDYBUILDER_H__ #define __SALOMEDSImpl_STUDYBUILDER_H__ #include "SALOMEDSImpl_Defines.hxx" // std C++ headers #include #include #include #include "SALOMEDSImpl_Callback.hxx" #include "SALOMEDSImpl_Driver.hxx" class SALOMEDSImpl_Study; class SALOMEDSIMPL_EXPORT SALOMEDSImpl_StudyBuilder { private: DF_Document* _doc; SALOMEDSImpl_Study* _study; SALOMEDSImpl_Callback* _callbackOnAdd; SALOMEDSImpl_Callback* _callbackOnRemove; std::string _errorCode; public: SALOMEDSImpl_StudyBuilder(const SALOMEDSImpl_Study* theOwner); ~SALOMEDSImpl_StudyBuilder(); virtual SALOMEDSImpl_SComponent NewComponent(const std::string& ComponentDataType); virtual bool DefineComponentInstance (const SALOMEDSImpl_SComponent&, const std::string& ComponentIOR); virtual bool RemoveComponent(const SALOMEDSImpl_SComponent& aComponent); virtual SALOMEDSImpl_SObject NewObject(const SALOMEDSImpl_SObject& theFatherObject); virtual SALOMEDSImpl_SObject NewObjectToTag(const SALOMEDSImpl_SObject& theFatherObject, const int theTag); //! The methods adds a new subdirectory, the path can be absolute or relative (then the current context is used) virtual bool AddDirectory(const std::string& thePath); virtual bool LoadWith(const SALOMEDSImpl_SComponent& sco, SALOMEDSImpl_Driver* Engine); virtual bool Load(const SALOMEDSImpl_SObject& sco); virtual bool RemoveObject(const SALOMEDSImpl_SObject& anObject); virtual bool RemoveObjectWithChildren(const SALOMEDSImpl_SObject& anObject); virtual DF_Attribute* FindOrCreateAttribute(const SALOMEDSImpl_SObject& anObject, const std::string& aTypeOfAttribute); virtual bool FindAttribute(const SALOMEDSImpl_SObject& anObject, DF_Attribute*& anAttribute, const std::string& aTypeOfAttribute); virtual bool RemoveAttribute(const SALOMEDSImpl_SObject& anObject, const std::string& aTypeOfAttribute); virtual bool Addreference(const SALOMEDSImpl_SObject& me, const SALOMEDSImpl_SObject& thereferencedObject); virtual bool RemoveReference(const SALOMEDSImpl_SObject& me); virtual bool SetGUID(const SALOMEDSImpl_SObject& anObject, const std::string& theGUID); virtual bool IsGUID(const SALOMEDSImpl_SObject& anObject, const std::string& theGUID); virtual void NewCommand(); virtual void CommitCommand(); virtual bool HasOpenCommand(); virtual void AbortCommand(); virtual void Undo(); virtual void Redo(); bool GetAvailableUndos(); bool GetAvailableRedos(); bool IsSaved(); bool IsModified(); virtual int UndoLimit(); virtual void UndoLimit(const int); void CheckLocked(); virtual SALOMEDSImpl_Callback* SetOnAddSObject(const SALOMEDSImpl_Callback* theCallback); virtual SALOMEDSImpl_Callback* SetOnRemoveSObject(const SALOMEDSImpl_Callback* theCallback); virtual bool SetName(const SALOMEDSImpl_SObject& theSO, const std::string& theValue); virtual bool SetComment(const SALOMEDSImpl_SObject& theSO, const std::string& theValue); virtual bool SetIOR(const SALOMEDSImpl_SObject& theSO, const std::string& theValue); virtual std::string GetErrorCode() { return _errorCode; } virtual bool IsError() { return _errorCode != ""; } virtual SALOMEDSImpl_Study* GetOwner() { return _study; } }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_StudyHandle.cxx000077500000000000000000000076661177004724000242050ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_StudyHandle.cxx // Author : Sergey LITONIN // Module : SALOME // #include "SALOMEDSImpl_StudyHandle.hxx" /* Class : SALOMEDSImpl_StudyHandle Description : This class is intended for storing information about graphic representation of objects in dirrent views */ //======================================================================= //function : GetID //purpose : Get GUID of this attribute //======================================================================= const std::string& SALOMEDSImpl_StudyHandle::GetID() { static std::string SALOMEDSImpl_StudyHandleID( "050C9555-4BA8-49bf-8F1C-086F0469A40B" ); return SALOMEDSImpl_StudyHandleID; } //======================================================================= //function : SALOMEDSImpl_StudyHandle //purpose : Empty Constructor //======================================================================= SALOMEDSImpl_StudyHandle::SALOMEDSImpl_StudyHandle() { myHandle = NULL; } //======================================================================= //function : Set //purpose : //======================================================================= SALOMEDSImpl_StudyHandle* SALOMEDSImpl_StudyHandle::Set(const DF_Label& theLabel, SALOMEDSImpl_Study* theStudy) { SALOMEDSImpl_StudyHandle* A = NULL; if (!(A=(SALOMEDSImpl_StudyHandle*)theLabel.FindAttribute(GetID()))) { A = new SALOMEDSImpl_StudyHandle; theLabel.AddAttribute(A); } A->Set(theStudy); return A; } //======================================================================= //function : ID //purpose : Get GUID of this attribute //======================================================================= const std::string& SALOMEDSImpl_StudyHandle::ID () const { return GetID(); } //======================================================================= //function : NewEmpty //purpose : Create new empty attribute //======================================================================= DF_Attribute* SALOMEDSImpl_StudyHandle::NewEmpty () const { return new SALOMEDSImpl_StudyHandle (); } //======================================================================= //function : Restore //purpose : Restore value of attribute with value of theWith one //======================================================================= void SALOMEDSImpl_StudyHandle::Restore( DF_Attribute* theWith ) { SALOMEDSImpl_StudyHandle* anAttr = dynamic_cast( theWith ); if ( anAttr ) Set ( anAttr->Get() ); } //======================================================================= //function : Paste //purpose : Paste value of current attribute to the value of entry one //======================================================================= void SALOMEDSImpl_StudyHandle::Paste( DF_Attribute* theInto) { SALOMEDSImpl_StudyHandle* anAttr = dynamic_cast( theInto ); if ( anAttr ) anAttr->Set ( myHandle ); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_StudyHandle.hxx000077500000000000000000000041431177004724000241750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_StudyHandle.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef SALOMEDSImpl_StudyHandle_HeaderFile #define SALOMEDSImpl_StudyHandle_HeaderFile #include "SALOMEDSImpl_Defines.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" /* Class : SALOMEDSImpl_StudyHandle Description : PRIVATE: This class is intended for storing of the study handle */ #include "SALOMEDSImpl_Study.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_StudyHandle : public DF_Attribute { public: SALOMEDSImpl_StudyHandle(); ~SALOMEDSImpl_StudyHandle() {; } static SALOMEDSImpl_StudyHandle* Set(const DF_Label& theLabel, SALOMEDSImpl_Study* theStudy); static const std::string& GetID() ; void Set(SALOMEDSImpl_Study* theStudy) { myHandle = theStudy; } SALOMEDSImpl_Study* Get() { return myHandle; } const std::string& ID() const; void Restore( DF_Attribute* theWith ); DF_Attribute* NewEmpty() const; void Paste( DF_Attribute* theInto); private: SALOMEDSImpl_Study* myHandle; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_StudyManager.cxx000077500000000000000000001537431177004724000243620ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_StudyManager.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_StudyManager.hxx" #include "DF_ChildIterator.hxx" #include "HDFexplorer.hxx" #include "Basics_Utils.hxx" //Warning undef of Ascii Winwows define #ifdef WIN32 # undef GetUserName #endif #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_Tool.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" #include "SALOMEDSImpl_ScalarVariable.hxx" #include #include "HDFOI.hxx" #include #include #include #define USE_CASE_LABEL_ID "0:2" static void SaveAttributes(const SALOMEDSImpl_SObject& SO, HDFgroup *hdf_group_sobject); static void ReadAttributes(SALOMEDSImpl_Study*, const SALOMEDSImpl_SObject&, HDFdataset* ); static void BuildTree (SALOMEDSImpl_Study*, HDFgroup*); static void Translate_IOR_to_persistentID (const SALOMEDSImpl_SObject&, SALOMEDSImpl_Driver*, bool isMultiFile, bool isASCII); static void ReadNoteBookVariables(SALOMEDSImpl_Study* theStudy, HDFgroup* theGroup); //============================================================================ /*! Function : SALOMEDSImpl_StudyManager * Purpose : SALOMEDSImpl_StudyManager constructor */ //============================================================================ SALOMEDSImpl_StudyManager::SALOMEDSImpl_StudyManager() { _errorCode = ""; _appli = new DF_Application(); _IDcounter = 0; _clipboard = _appli->NewDocument("SALOME_STUDY"); } //============================================================================ /*! Function : ~SALOMEDSImpl_StudyManager * Purpose : SALOMEDSImpl_StudyManager destructor */ //============================================================================ SALOMEDSImpl_StudyManager::~SALOMEDSImpl_StudyManager() { _appli->Close(_clipboard); // Destroy application delete _appli; } //============================================================================ /*! Function : NewStudy * Purpose : Create a New Study of name study_name */ //==================================================T========================== SALOMEDSImpl_Study* SALOMEDSImpl_StudyManager::NewStudy(const std::string& study_name) { _errorCode = ""; DF_Document* Doc = _appli->NewDocument("SALOME_STUDY"); SALOMEDSImpl_Study* Study = new SALOMEDSImpl_Study(Doc, study_name); _IDcounter++; Study->StudyId( _IDcounter ); // set Study properties SALOMEDSImpl_AttributeStudyProperties* aProp = Study->GetProperties(); int month=0,day=0,year=0,hh=0,mn=0,ss=0; SALOMEDSImpl_Tool::GetSystemDate(year, month, day, hh, mn, ss); aProp->SetModification(SALOMEDSImpl_Tool::GetUserName(), mn, hh, day, month, year); aProp->SetCreationMode(1); //"from scratch" return Study; } //============================================================================ /*! Function : Open * Purpose : Open a Study from it's persistent reference */ //============================================================================ SALOMEDSImpl_Study* SALOMEDSImpl_StudyManager::Open(const std::string& aUrl) { // Set "C" locale temporarily to avoid possible localization problems Kernel_Utils::Localizer loc; _errorCode = ""; // open the HDFFile HDFfile *hdf_file =0; HDFgroup *hdf_group_study_structure =0; HDFgroup *hdf_notebook_vars = 0; char* aC_HDFUrl; std::string aHDFUrl; bool isASCII = false; if (HDFascii::isASCII(aUrl.c_str())) { isASCII = true; char* aResultPath = HDFascii::ConvertFromASCIIToHDF(aUrl.c_str()); if ( !aResultPath ) return NULL; aC_HDFUrl = new char[strlen(aResultPath) + 19]; sprintf(aC_HDFUrl, "%shdf_from_ascii.hdf", aResultPath); delete [] (aResultPath); aHDFUrl = aC_HDFUrl; delete [] aC_HDFUrl; } else { aHDFUrl = aUrl; } hdf_file = new HDFfile((char*)aHDFUrl.c_str()); try { hdf_file->OpenOnDisk(HDF_RDONLY);// mpv: was RDWR, but opened file can be write-protected too } catch (HDFexception) { char *eStr; eStr = new char[strlen(aUrl.c_str())+17]; sprintf(eStr,"Can't open file %s",aUrl.c_str()); delete [] eStr; _errorCode = std::string(eStr); return NULL; } // Temporary aStudyUrl in place of study name DF_Document* Doc = _appli->NewDocument("SALOME_STUDY"); SALOMEDSImpl_Study* Study = new SALOMEDSImpl_Study(Doc, aUrl); _IDcounter++; Study->StudyId( _IDcounter ); // Assign the value of the URL in the study object Study->URL (aUrl); SALOMEDSImpl_AttributePersistentRef::Set(Doc->Main(), aUrl); if (!hdf_file->ExistInternalObject("STUDY_STRUCTURE")) { _errorCode = "Study is empty"; return Study; } //Create the Structure of the Document hdf_group_study_structure = new HDFgroup("STUDY_STRUCTURE",hdf_file); try { BuildTree (Study, hdf_group_study_structure); } catch (HDFexception) { char *eStr = new char [strlen(aUrl.c_str())+17]; sprintf(eStr,"Can't open file %s", aUrl.c_str()); _errorCode = std::string(eStr); return NULL; } //Read and create notebook variables if(hdf_file->ExistInternalObject("NOTEBOOK_VARIABLES")) { hdf_notebook_vars = new HDFgroup("NOTEBOOK_VARIABLES",hdf_file); ReadNoteBookVariables(Study,hdf_notebook_vars); hdf_notebook_vars =0; //will be deleted by hdf_sco_group destructor } hdf_file->CloseOnDisk(); hdf_group_study_structure = new HDFgroup("STUDY_STRUCTURE",hdf_file); if (isASCII) { std::vector aFilesToRemove; aFilesToRemove.push_back("hdf_from_ascii.hdf"); SALOMEDSImpl_Tool::RemoveTemporaryFiles(SALOMEDSImpl_Tool::GetDirFromPath(aHDFUrl), aFilesToRemove, true); } delete hdf_file; // all related hdf objects will be deleted return Study; } //============================================================================ /*! Function : Close * Purpose : Close a study. * If the study hasn't been saved, ask the user to confirm the * close action without saving */ //============================================================================ void SALOMEDSImpl_StudyManager::Close(SALOMEDSImpl_Study* aStudy) { _errorCode = ""; if(!aStudy) { _errorCode = "Study is null"; return; } aStudy->Close(); DF_Document* doc=aStudy->GetDocument(); _appli->Close(doc); } //============================================================================ /*! Function : Save * Purpose : Save a Study to it's persistent reference */ //============================================================================ bool SALOMEDSImpl_StudyManager::Save(SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile) { _errorCode = ""; std::string url = aStudy->URL(); if (url.empty()) { _errorCode = "No path specified to save the study. Nothing done"; return false; } else { return Impl_SaveAs(url,aStudy, aFactory, theMultiFile, false); } return false; } bool SALOMEDSImpl_StudyManager::SaveASCII(SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile) { _errorCode = ""; std::string url = aStudy->URL(); if (url.empty()) { _errorCode = "No path specified to save the study. Nothing done"; return false; } else { return Impl_SaveAs(url,aStudy, aFactory, theMultiFile, true); } return false; } //============================================================================= /*! Function : SaveAs * Purpose : Save a study to the persistent reference aUrl */ //============================================================================ bool SALOMEDSImpl_StudyManager::SaveAs(const std::string& aUrl, SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile) { _errorCode = ""; return Impl_SaveAs(aUrl,aStudy, aFactory, theMultiFile, false); } bool SALOMEDSImpl_StudyManager::SaveAsASCII(const std::string& aUrl, SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile) { _errorCode = ""; return Impl_SaveAs(aUrl,aStudy, aFactory, theMultiFile, true); } //============================================================================ /*! Function : GetOpenStudies * Purpose : Get name list of open studies in the session */ //============================================================================ std::vector SALOMEDSImpl_StudyManager::GetOpenStudies() { _errorCode = ""; std::vector aList; int nbDocs = _appli->NbDocuments(); if(nbDocs == 0) { _errorCode = "No active study in this session"; return aList; } else { SALOMEDSImpl_Study* aStudy; std::vector ids = _appli->GetDocumentIDs(); for (int i = 0, len = ids.size(); iGetDocument(ids[i]); if(D == _clipboard) continue; aStudy = SALOMEDSImpl_Study::GetStudy(D->Main()); if(!aStudy) continue; aList.push_back(aStudy); } } return aList; } //============================================================================ /*! Function : GetStudyByName * Purpose : Get a study from its name */ //============================================================================ SALOMEDSImpl_Study* SALOMEDSImpl_StudyManager::GetStudyByName (const std::string& aStudyName) { _errorCode = ""; int nbDocs = _appli->NbDocuments(); if (nbDocs == 0) { _errorCode = "No active study in this session"; return NULL; } else { std::vector studies = GetOpenStudies(); for (int i = 0, len = studies.size(); iName() == aStudyName) return studies[i]; } } _errorCode = std::string("Found no study with the name ") + aStudyName; return NULL; } //============================================================================ /*! Function : GetStudyByID * Purpose : Get a study from its ID */ //============================================================================ SALOMEDSImpl_Study* SALOMEDSImpl_StudyManager::GetStudyByID(int aStudyID) { _errorCode = ""; int nbDocs = _appli->NbDocuments(); if (nbDocs == 0) { _errorCode = "No active study in this session"; return NULL; } else { std::vector studies = GetOpenStudies(); for (int i = 0, len = studies.size(); iStudyId() == aStudyID) return studies[i]; } } _errorCode = "Found no study with the given ID"; return NULL; } //============================================================================= /*! Function : _SaveProperties * Purpose : save the study properties in HDF file */ //============================================================================ bool SALOMEDSImpl_StudyManager::Impl_SaveProperties(SALOMEDSImpl_Study* aStudy, HDFgroup *hdf_group) { _errorCode = ""; HDFdataset *hdf_dataset = 0; hdf_size size[1]; hdf_int32 name_len; // add modifications list (user and date of save) SALOMEDSImpl_AttributeStudyProperties* aProp = aStudy->GetProperties(); int aLocked = aProp->IsLocked(); if (aLocked) aProp->SetLocked(false); int month=0,day=0,year=0,hh=0,mn=0,ss=0; SALOMEDSImpl_Tool::GetSystemDate(year, month, day, hh, mn, ss); aProp->SetModification(SALOMEDSImpl_Tool::GetUserName(), mn, hh, day, month, year); if (aLocked) aProp->SetLocked(true); std::vector aNames; std::vector aMinutes, aHours, aDays, aMonths, aYears; aProp->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears); std::string units = aProp->GetUnits(); std::string comment = aProp->GetComment(); int aLength = 0, anIndex, i, unitsSize = 0, commentSize = 0; for(i=1; i<=aNames.size(); i++) aLength += aNames[i-1].size() + 1; unitsSize = units.size(); commentSize = comment.size(); //string format: //locked flag, modified flag, //minutes, hours, day, months, year, user name, char(1), //minutes, hours, day, months, year, user name, char(1), //....................................................., //....................................................., //....................................................., //minutes, hours, day, months, year, user name, char(1), char(30) <- !!!! used to define end of section with modifications !!!! //units, char(1), comment, char(0) //string length: 1 byte = locked flag, 1 byte = modified flag, (12 + name length + 1) for each name and date, 1 byte (char(30) section delimeter) // unit length + 1, comment length, "zero" byte char* aProperty = new char[3 + aLength + 12 * aNames.size() + 1 + unitsSize + 1 + commentSize ]; sprintf(aProperty,"%c%c", (char)aProp->GetCreationMode(), (aProp->IsLocked())?'l':'u'); aLength = aNames.size(); int a = 2; for(anIndex = 0; anIndex 0) { sprintf(&(aProperty[a]),"%s",units.c_str()); a = strlen(aProperty); } aProperty[a++] = 1; //Write comments if need if(comment.size() > 0) { sprintf(&(aProperty[a]),"%s",comment.c_str()); a = strlen(aProperty); a++; } aProperty[a] = 0; name_len = (hdf_int32) a; size[0] = name_len + 1 ; hdf_dataset = new HDFdataset("AttributeStudyProperties",hdf_group,HDF_STRING,size,1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk(aProperty); hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_group destructor delete [] aProperty; aProp->SetModified(0); return true; } //============================================================================= /*! Function : _SaveAs * Purpose : save the study in HDF file */ //============================================================================ bool SALOMEDSImpl_StudyManager::Impl_SaveAs(const std::string& aStudyUrl, SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile, bool theASCII) { // Set "C" locale temporarily to avoid possible localization problems Kernel_Utils::Localizer loc; // HDF File will be composed of differents part : // * For each ComponentDataType, all data created by the component // Informations in data group hdf_group_datacomponent // * Study Structure -> Exactly what is contained in Document // Informations in data group hdf_group_study_structure _errorCode = ""; HDFfile *hdf_file=0; HDFgroup *hdf_group_study_structure =0; HDFgroup *hdf_sco_group =0; HDFgroup *hdf_sco_group2 =0; HDFgroup *hdf_notebook_vars =0; HDFgroup *hdf_notebook_var = 0; HDFgroup *hdf_group_datacomponent =0; HDFdataset *hdf_dataset =0; hdf_size size[1]; hdf_int32 name_len = 0; std::string component_name; if(!aStudy) { _errorCode = "Study is null"; return false; } // Store previous URL std::string anOldName = aStudy->Name(); //Create a temporary url to which the study is saved std::string aUrl = SALOMEDSImpl_Tool::GetTmpDir() + SALOMEDSImpl_Tool::GetNameFromPath(aStudyUrl); int aLocked = aStudy->GetProperties()->IsLocked(); if (aLocked) aStudy->GetProperties()->SetLocked(false); SALOMEDSImpl_StudyBuilder* SB= aStudy->NewBuilder(); std::map aMapTypeDriver; try { // mpv 15.12.2003: for saving components we have to load all data from all modules SALOMEDSImpl_SComponentIterator itcomponent1 = aStudy->NewComponentIterator(); for (; itcomponent1.More(); itcomponent1.Next()) { SALOMEDSImpl_SComponent sco = itcomponent1.Value(); // if there is an associated Engine call its method for saving std::string IOREngine; try { if (!sco.ComponentIOR(IOREngine)) { std::string aCompType = sco.GetComment(); if (!aCompType.empty()) { SALOMEDSImpl_Driver* aDriver = aFactory->GetDriverByType(aCompType); aMapTypeDriver[aCompType] = aDriver; if (aDriver != NULL) { if(!SB->LoadWith(sco, aDriver)) { _errorCode = SB->GetErrorCode(); return false; } } } } } catch(...) { _errorCode = "Can not restore information to resave it"; return false; } } // VSR: set URL to new file name // VSR: remember to set previous name if save operation fails aStudy->URL(aStudyUrl); // To change for Save // Do not have to do a new file but just a Open??? Rewrite all informations after erasing evrything?? hdf_file = new HDFfile((char*)aUrl.c_str()); hdf_file->CreateOnDisk(); //----------------------------------------------------------------------- // 1 - Create a groupe for each SComponent and Update the PersistanceRef //----------------------------------------------------------------------- hdf_group_datacomponent = new HDFgroup("DATACOMPONENT",hdf_file); hdf_group_datacomponent->CreateOnDisk(); SALOMEDSImpl_SComponentIterator itcomponent = aStudy->NewComponentIterator(); for (; itcomponent.More(); itcomponent.Next()) { SALOMEDSImpl_SComponent sco = itcomponent.Value(); std::string scoid = sco.GetID(); hdf_sco_group = new HDFgroup((char*)scoid.c_str(), hdf_group_datacomponent); hdf_sco_group->CreateOnDisk(); std::string componentDataType = sco.ComponentDataType(); std::string IOREngine; if (sco.ComponentIOR(IOREngine)) { SALOMEDSImpl_Driver* Engine = NULL; if(aMapTypeDriver.find(componentDataType) != aMapTypeDriver.end()) { // we have found the associated engine to write the data Engine = aMapTypeDriver[componentDataType]; } else { Engine = aFactory->GetDriverByIOR(IOREngine); } if (Engine != NULL) { SALOMEDSImpl_TMPFile* aStream = NULL; long length = 0; if (theASCII) aStream = Engine->SaveASCII(sco, SALOMEDSImpl_Tool::GetDirFromPath(aUrl), length, theMultiFile); else aStream = Engine->Save(sco, SALOMEDSImpl_Tool::GetDirFromPath(aUrl), length, theMultiFile); HDFdataset *hdf_dataset; hdf_size aHDFSize[1]; if(length > 0) { //The component saved some auxiliary files, then put them into HDF file aHDFSize[0] = length; HDFdataset *hdf_dataset = new HDFdataset("FILE_STREAM", hdf_sco_group, HDF_STRING, aHDFSize, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk(aStream->Data()); //Save the stream in the HDF file hdf_dataset->CloseOnDisk(); } if(aStream) delete aStream; // store multifile state aHDFSize[0] = 2; hdf_dataset = new HDFdataset("MULTIFILE_STATE", hdf_sco_group, HDF_STRING, aHDFSize, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void*)(theMultiFile?"M":"S")); // save: multi or single hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_AuxFiles destructor // store ASCII state aHDFSize[0] = 2; hdf_dataset = new HDFdataset("ASCII_STATE", hdf_sco_group, HDF_STRING, aHDFSize, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((void*)(theASCII?"A":"B")); // save: ASCII or BINARY hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_AuxFiles destructor // Creation of the persistance reference attribute Translate_IOR_to_persistentID (sco, Engine, theMultiFile, theASCII); } } hdf_sco_group->CloseOnDisk(); hdf_sco_group=0; // will be deleted by hdf_group_datacomponent destructor } hdf_group_datacomponent->CloseOnDisk(); hdf_group_datacomponent =0; // will be deleted by hdf_file destructor //----------------------------------------------------------------------- //3 - Write the Study Structure //----------------------------------------------------------------------- hdf_group_study_structure = new HDFgroup("STUDY_STRUCTURE",hdf_file); hdf_group_study_structure->CreateOnDisk(); // save component attributes SALOMEDSImpl_SComponentIterator itcomp = aStudy->NewComponentIterator(); for (; itcomp.More(); itcomp.Next()) { SALOMEDSImpl_SComponent SC = itcomp.Value(); std::string scid = SC.GetID(); hdf_sco_group2 = new HDFgroup((char*)scid.c_str(), hdf_group_study_structure); hdf_sco_group2->CreateOnDisk(); SaveAttributes(SC, hdf_sco_group2); // ComponentDataType treatment component_name = SC.ComponentDataType(); name_len = (hdf_int32)component_name.length(); size[0] = name_len +1 ; hdf_dataset = new HDFdataset("COMPONENTDATATYPE",hdf_sco_group2,HDF_STRING,size,1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((char*)component_name.c_str()); hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_group destructor Impl_SaveObject(SC, hdf_sco_group2); hdf_sco_group2->CloseOnDisk(); hdf_sco_group2=0; // will be deleted by hdf_group_study_structure destructor } //----------------------------------------------------------------------- //4 - Write the Study UseCases Structure //----------------------------------------------------------------------- SALOMEDSImpl_SObject aSO = aStudy->FindObjectID(USE_CASE_LABEL_ID); if (aSO) { HDFgroup *hdf_soo_group = new HDFgroup(USE_CASE_LABEL_ID,hdf_group_study_structure); hdf_soo_group->CreateOnDisk(); SaveAttributes(aSO, hdf_soo_group); Impl_SaveObject(aSO, hdf_soo_group); hdf_soo_group->CloseOnDisk(); hdf_soo_group=0; // will be deleted by hdf_group_study_structure destructor } //----------------------------------------------------------------------- //5 - Write the NoteBook Variables //----------------------------------------------------------------------- //5.1 Create group to store all note book variables hdf_notebook_vars = new HDFgroup("NOTEBOOK_VARIABLES",hdf_file); hdf_notebook_vars->CreateOnDisk(); std::string varValue; std::string varType; std::string varIndex; for(int i=0 ;i < aStudy->myNoteBookVars.size(); i++ ){ // For each variable create HDF group hdf_notebook_var = new HDFgroup((char*)aStudy->myNoteBookVars[i]->Name().c_str(),hdf_notebook_vars); hdf_notebook_var->CreateOnDisk(); // Save Variable type varType = aStudy->myNoteBookVars[i]->SaveType(); name_len = (hdf_int32) varType.length(); size[0] = name_len +1 ; hdf_dataset = new HDFdataset("VARIABLE_TYPE",hdf_notebook_var,HDF_STRING,size,1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((char*)varType.c_str()); hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_group destructor char buffer[256]; sprintf(buffer,"%d",i); varIndex= std::string(buffer); name_len = (hdf_int32) varIndex.length(); size[0] = name_len +1 ; hdf_dataset = new HDFdataset("VARIABLE_INDEX",hdf_notebook_var,HDF_STRING,size,1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((char*)varIndex.c_str()); hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_group destructor // Save Variable value varValue = aStudy->myNoteBookVars[i]->Save(); name_len = (hdf_int32) varValue.length(); size[0] = name_len +1 ; hdf_dataset = new HDFdataset("VARIABLE_VALUE",hdf_notebook_var,HDF_STRING,size,1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((char*)varValue.c_str()); hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_group destructor hdf_notebook_var->CloseOnDisk(); hdf_notebook_var = 0; //will be deleted by hdf_sco_group destructor } hdf_notebook_vars->CloseOnDisk(); hdf_notebook_vars = 0; //will be deleted by hdf_sco_group destructor if (aLocked) aStudy->GetProperties()->SetLocked(true); //----------------------------------------------------------------------- //6 - Write the Study Properties //----------------------------------------------------------------------- std::string study_name = aStudy->Name(); name_len = (hdf_int32) study_name.size(); size[0] = name_len +1 ; hdf_dataset = new HDFdataset("STUDY_NAME",hdf_group_study_structure,HDF_STRING,size,1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((char*)study_name.c_str()); hdf_dataset->CloseOnDisk(); hdf_dataset=0; // will be deleted by hdf_group_study_structure destructor Impl_SaveProperties(aStudy, hdf_group_study_structure); hdf_group_study_structure->CloseOnDisk(); hdf_file->CloseOnDisk(); hdf_group_study_structure =0; // will be deleted by hdf_file destructor delete hdf_file; // recursively deletes all hdf objects... } catch (HDFexception) { _errorCode = "HDFexception ! "; aStudy->URL( anOldName ); // VSR: restore previous url if operation is failed return false; } catch(std::exception& exc) { _errorCode = const_cast(exc.what()); aStudy->URL( anOldName ); // VSR: restore previous url if operation is failed return false; } catch(...) { _errorCode = "Unknown exception ! "; aStudy->URL( anOldName ); // VSR: restore previous url if operation is failed return false; } if (theASCII) { // save file in ASCII format HDFascii::ConvertFromHDFToASCII(aUrl.c_str(), true); } //Now it's necessary to copy files from the temporary directory to the user defined directory. // The easiest way to get a list of file in the temporary directory std::string aCmd, aTmpFileDir = SALOMEDSImpl_Tool::GetTmpDir(); std::string aTmpFile = aTmpFileDir +"files"; std::string aStudyTmpDir = SALOMEDSImpl_Tool::GetDirFromPath(aUrl); #ifdef WIN32 aCmd = "dir /B \"" + aStudyTmpDir +"\" > " + aTmpFile; #else aCmd ="ls -1 \"" + aStudyTmpDir +"\" > " + aTmpFile; #endif system(aCmd.c_str()); // Iterate and move files in the temporary directory FILE* fp = fopen(aTmpFile.c_str(), "rb"); if(!fp) { aStudy->URL( anOldName ); // VSR: restore previous url if operation is failed return false; } char* buffer = new char[2047]; int errors = 0; while(!feof(fp) && !errors) { if((fgets(buffer, 2046, fp)) == NULL) break; size_t aLen = strlen(buffer); if(buffer[aLen-1] == '\n') buffer[aLen-1] = char(0); #ifdef WIN32 aCmd = "move /Y \"" + aStudyTmpDir + std::string(buffer) + "\" \"" + SALOMEDSImpl_Tool::GetDirFromPath(aStudyUrl) +"\""; #else aCmd = "mv -f \"" + aStudyTmpDir + std::string(buffer) + "\" \"" + SALOMEDSImpl_Tool::GetDirFromPath(aStudyUrl)+"\""; #endif errors = system(aCmd.c_str()); } delete []buffer; fclose(fp); // Perform cleanup #ifdef WIN32 DeleteFileA(aTmpFile.c_str()); #else unlink(aTmpFile.c_str()); #endif #ifdef WIN32 RemoveDirectoryA(aTmpFileDir.c_str()); RemoveDirectoryA(aStudyTmpDir.c_str()); #else rmdir(aTmpFileDir.c_str()); rmdir(aStudyTmpDir.c_str()); #endif if ( !errors ) { // VSR: finally, if all is done without errors, mark study as Saved aStudy->IsSaved(true); } return !errors; } //============================================================================ /*! Function : Impl_SaveObject * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyManager::Impl_SaveObject(const SALOMEDSImpl_SObject& SC, HDFgroup *hdf_group_datatype) { _errorCode = ""; // Write in group hdf_group_datatype all informations of SObject SC // Iterative function to parse all SObjects under a SComponent HDFgroup *hdf_group_sobject = 0; DF_ChildIterator itchild(SC.GetLabel()); for (; itchild.More(); itchild.Next()) { // mpv: don't save empty labels std::vector attr = itchild.Value().GetAttributes(); if (attr.size() == 0) { //No attributes on the label DF_ChildIterator subchild(itchild.Value()); if (!subchild.More()) { continue; } subchild.Init(itchild.Value(), true); bool anEmpty = true; for (; subchild.More() && anEmpty; subchild.Next()) { std::vector attr2 = subchild.Value().GetAttributes(); if (attr2.size()) { anEmpty = false; //There are attributes on the child label break; } } if (anEmpty) continue; } SALOMEDSImpl_SObject SO = SALOMEDSImpl_Study::SObject(itchild.Value()); std::string scoid = SO.GetID(); hdf_group_sobject = new HDFgroup(scoid.c_str(), hdf_group_datatype); hdf_group_sobject->CreateOnDisk(); SaveAttributes(SO, hdf_group_sobject); Impl_SaveObject(SO, hdf_group_sobject); hdf_group_sobject->CloseOnDisk(); hdf_group_sobject =0; // will be deleted by father hdf object destructor } return true; } //============================================================================ /*! Function : Impl_SubstituteSlash * Purpose : */ //============================================================================ std::string SALOMEDSImpl_StudyManager::Impl_SubstituteSlash(const std::string& aUrl) { _errorCode = ""; std::string theUrl(aUrl); for(int i = 0; i_doc; } //============================================================================ /*! Function : CanCopy * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyManager::CanCopy(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* theEngine) { _errorCode = ""; SALOMEDSImpl_SComponent aComponent = theObject.GetFatherComponent(); if (!aComponent) return false; if (aComponent.GetLabel() == theObject.GetLabel()) return false; std::string IOREngine; if (!aComponent.ComponentIOR(IOREngine)) return false; if (theEngine == NULL) return false; return theEngine->CanCopy(theObject); } //============================================================================ /*! Function : CopyLabel * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyManager::CopyLabel(SALOMEDSImpl_Study* theSourceStudy, SALOMEDSImpl_Driver* theEngine, const int theSourceStartDepth, const DF_Label& theSource, const DF_Label& theDestinationMain) { _errorCode = ""; int a; DF_Label aTargetLabel = theDestinationMain; DF_Label aAuxTargetLabel = theDestinationMain.Father().FindChild(2); for(a = theSource.Depth() - theSourceStartDepth; a > 0 ; a--) { DF_Label aSourceLabel = theSource; for(int aNbFather = 1; aNbFather < a; aNbFather++) aSourceLabel = aSourceLabel.Father(); aTargetLabel = aTargetLabel.FindChild(aSourceLabel.Tag()); aAuxTargetLabel = aAuxTargetLabel.FindChild(aSourceLabel.Tag()); } // iterate attributes std::vector attrList = theSource.GetAttributes(); for(int i = 0, len = attrList.size(); i(anAttr)->Get(); std::string anEntry = aReferenced.Entry(); // store the value of name attribute of referenced label SALOMEDSImpl_AttributeName* aNameAttribute; if ((aNameAttribute=(SALOMEDSImpl_AttributeName*)aReferenced.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) { anEntry += " "; anEntry += aNameAttribute->Value(); } SALOMEDSImpl_AttributeComment::Set(aAuxTargetLabel, anEntry); continue; } if (type == std::string("AttributeIOR")) { // IOR => ID and TMPFile of Engine std::string anEntry = theSource.Entry(); SALOMEDSImpl_SObject aSO = theSourceStudy->FindObjectID(anEntry); int anObjID; long aLen; SALOMEDSImpl_TMPFile* aStream = theEngine->CopyFrom(aSO, anObjID, aLen); std::string aResStr(""); for(a = 0; a < aLen; a++) { aResStr += (char)(aStream->Get(a)); } if(aStream) delete aStream; SALOMEDSImpl_AttributeInteger::Set(aAuxTargetLabel, anObjID); SALOMEDSImpl_AttributeName::Set(aAuxTargetLabel, aResStr); continue; } DF_Attribute* aNewAttribute = anAttr->NewEmpty(); aTargetLabel.AddAttribute(aNewAttribute); anAttr->Paste(aNewAttribute); } return true; } //============================================================================ /*! Function : Copy * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyManager::Copy(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* theEngine) { _errorCode = ""; // adoptation for alliances datamodel copy: without IOR attributes !!! bool aStructureOnly; // copy only SObjects and attributes without component help aStructureOnly = !theObject.GetLabel().IsAttribute(SALOMEDSImpl_AttributeIOR::GetID()); // get component-engine SALOMEDSImpl_Study* aStudy = theObject.GetStudy(); // CAF document of current study usage DF_Document* aDocument = GetDocumentOfStudy(aStudy); if (!aDocument) { _errorCode = "Document is null"; return false; } //Clear the clipboard _clipboard->Main().Root().ForgetAllAttributes(true); _appli->Close(_clipboard); _clipboard = _appli->NewDocument("SALOME_STUDY"); // set component data type to the name attribute of root label if (!aStructureOnly) { SALOMEDSImpl_AttributeComment::Set(_clipboard->Main().Root(), theEngine->ComponentDataType()); } // set to the Root label integer attribute: study id SALOMEDSImpl_AttributeInteger::Set(_clipboard->Main().Root(), aStudy->StudyId()); // iterate all theObject's label children DF_Label aStartLabel = theObject.GetLabel(); int aSourceStartDepth = aStartLabel.Depth(); // copy main source label CopyLabel(aStudy, theEngine, aSourceStartDepth, aStartLabel, _clipboard->Main()); // copy all subchildren of the main source label (all levels) DF_ChildIterator anIterator(aStartLabel, true); for(; anIterator.More(); anIterator.Next()) { CopyLabel(aStudy, theEngine, aSourceStartDepth, anIterator.Value(), _clipboard->Main()); } return true; } //============================================================================ /*! Function : CanPaste * Purpose : */ //============================================================================ bool SALOMEDSImpl_StudyManager::CanPaste(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* theEngine) { _errorCode = ""; if (!_clipboard) { _errorCode = "Clipboard is null"; return false; } SALOMEDSImpl_AttributeComment* aCompName = NULL; if (!(aCompName=(SALOMEDSImpl_AttributeComment*)_clipboard->Main().Root().FindAttribute(SALOMEDSImpl_AttributeComment::GetID()))) { _errorCode = "Clipboard has no component type"; return false; } SALOMEDSImpl_AttributeInteger* anObjID; if (!(anObjID=(SALOMEDSImpl_AttributeInteger*)_clipboard->Main().Father().FindChild(2).FindAttribute(SALOMEDSImpl_AttributeInteger::GetID()))) { _errorCode = "Clipboard has no object id"; return false; } SALOMEDSImpl_SComponent aComponent = theObject.GetFatherComponent(); if (!aComponent) { _errorCode = "Object doesn't belong to component"; return false; } std::string IOREngine; if (!aComponent.ComponentIOR(IOREngine)) { _errorCode = "component has no IOR"; return false; } return theEngine->CanPaste(aCompName->Value(), anObjID->Value()); } //============================================================================ /*! Function : PasteLabel * Purpose : */ //============================================================================ DF_Label SALOMEDSImpl_StudyManager::PasteLabel(SALOMEDSImpl_Study* theDestinationStudy, SALOMEDSImpl_Driver* theEngine, const DF_Label& theSource, const DF_Label& theDestinationStart, const int theCopiedStudyID, const bool isFirstElement) { _errorCode = ""; // get corresponding source, target and auxiliary labels DF_Label aTargetLabel = theDestinationStart; DF_Label aAuxSourceLabel = theSource.Root().FindChild(2); int a; if (!isFirstElement) { for(a = theSource.Depth() - 1; a > 0 ; a--) { DF_Label aSourceLabel = theSource; for(int aNbFather = 1; aNbFather < a; aNbFather++) aSourceLabel = aSourceLabel.Father(); aTargetLabel = aTargetLabel.FindChild(aSourceLabel.Tag()); aAuxSourceLabel = aAuxSourceLabel.FindChild(aSourceLabel.Tag()); } SALOMEDSImpl_SObject so = theDestinationStudy->GetSObject(aTargetLabel); theDestinationStudy->addSO_Notification(so); } // check auxiliary label for TMPFile => IOR SALOMEDSImpl_AttributeName* aNameAttribute = NULL; if ((aNameAttribute=(SALOMEDSImpl_AttributeName*)aAuxSourceLabel.FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) { SALOMEDSImpl_AttributeInteger* anObjID = (SALOMEDSImpl_AttributeInteger*)aAuxSourceLabel.FindAttribute(SALOMEDSImpl_AttributeInteger::GetID()); SALOMEDSImpl_AttributeComment* aComponentName = (SALOMEDSImpl_AttributeComment*)theSource.Root().FindAttribute(SALOMEDSImpl_AttributeComment::GetID()); std::string aCompName = aComponentName->Value(); if (theEngine->CanPaste(aCompName, anObjID->Value())) { std::string aTMPStr = aNameAttribute->Value(); int aLen = aTMPStr.size(); unsigned char* aStream = NULL; if(aLen > 0) { aStream = new unsigned char[aLen+10]; for(a = 0; a < aLen; a++) { aStream[a] = aTMPStr[a]; } } std::string anEntry = aTargetLabel.Entry(); SALOMEDSImpl_SObject aPastedSO = theDestinationStudy->FindObjectID(anEntry); if (isFirstElement) { std::string aDestEntry = theEngine->PasteInto(aStream, aLen, anObjID->Value(), aPastedSO.GetFatherComponent()); aTargetLabel = DF_Label::Label(theDestinationStart, aDestEntry); } else theEngine->PasteInto(aStream, aLen, anObjID->Value(), aPastedSO); if(aStream != NULL) delete []aStream; } } // iterate attributes std::vector attrList = theSource.GetAttributes(); for(int i = 0, len = attrList.size(); iID())) { aTargetLabel.ForgetAttribute(anAttr->ID()); } DF_Attribute* aNewAttribute = anAttr->NewEmpty(); aTargetLabel.AddAttribute(aNewAttribute); anAttr->Paste(aNewAttribute); } // check auxiliary label for Comment => reference or name attribute of the referenced object SALOMEDSImpl_AttributeComment* aCommentAttribute = NULL; if ((aCommentAttribute=(SALOMEDSImpl_AttributeComment*)aAuxSourceLabel.FindAttribute(SALOMEDSImpl_AttributeComment::GetID()))) { char * anEntry = new char[aCommentAttribute->Value().size() + 1]; strcpy(anEntry, std::string(aCommentAttribute->Value()).c_str()); char* aNameStart = strchr(anEntry, ' '); if (aNameStart) { *aNameStart = '\0'; aNameStart++; } if (theCopiedStudyID == theDestinationStudy->StudyId()) { // if copy to the same study, reanimate reference DF_Label aRefLabel = DF_Label::Label(aTargetLabel, anEntry); SALOMEDSImpl_AttributeReference::Set(aTargetLabel, aRefLabel); // target attributes structure support SALOMEDSImpl_AttributeTarget::Set(aRefLabel)->Add(SALOMEDSImpl_Study::SObject(aTargetLabel)); } else { if (aNameStart) SALOMEDSImpl_AttributeName::Set(aTargetLabel, aNameStart); else SALOMEDSImpl_AttributeName::Set(aTargetLabel, std::string("Reference to:")+anEntry); } delete [] anEntry; } return aTargetLabel; } //============================================================================ /*! Function : Paste * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_StudyManager::Paste(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* theEngine) { _errorCode = ""; SALOMEDSImpl_SObject so; SALOMEDSImpl_Study* aStudy = theObject.GetStudy(); // if study is locked, then paste can't be done if (aStudy->GetProperties()->IsLocked()) { _errorCode = "LockProtection"; throw LockProtection("LockProtection"); } // if there is no component name, then paste only SObjects and attributes: without component help SALOMEDSImpl_AttributeComment* aComponentName = NULL; bool aStructureOnly = !(aComponentName=(SALOMEDSImpl_AttributeComment*)_clipboard->Main().Root().FindAttribute(SALOMEDSImpl_AttributeComment::GetID())); // get copied study ID SALOMEDSImpl_AttributeInteger* aStudyIDAttribute = NULL; if (!(aStudyIDAttribute=(SALOMEDSImpl_AttributeInteger*)_clipboard->Main().Root().FindAttribute(SALOMEDSImpl_AttributeInteger::GetID()))) { _errorCode = "No study ID was found"; return so; } int aCStudyID = aStudyIDAttribute->Value(); // CAF document of current study usage DF_Document* aDocument = GetDocumentOfStudy(aStudy); if (!aDocument) { _errorCode = "Document is null"; return so; } SALOMEDSImpl_SComponent aComponent = theObject.GetFatherComponent(); // fill root inserted SObject DF_Label aStartLabel; if (aStructureOnly) { DF_Label anObjectLabel = DF_Label::Label(aDocument->Main(), theObject.GetID()); aStartLabel = PasteLabel(aStudy, theEngine, _clipboard->Main(), anObjectLabel, aCStudyID, false); } else { DF_Label aComponentLabel = DF_Label::Label(aDocument->Main(), aComponent.GetID()); aStartLabel = PasteLabel(aStudy, theEngine, _clipboard->Main(), aComponentLabel, aCStudyID, true); } // paste all sublebels DF_ChildIterator anIterator(_clipboard->Main(), true); for(; anIterator.More(); anIterator.Next()) { PasteLabel(aStudy, theEngine, anIterator.Value(), aStartLabel, aCStudyID, false); } return SALOMEDSImpl_Study::SObject(aStartLabel); } //####################################################################################################### //# STATIC PRIVATE FUNCTIONS //####################################################################################################### //============================================================================ /*! Function : SaveAttributes * Purpose : Save attributes for object */ //============================================================================ static void SaveAttributes(const SALOMEDSImpl_SObject& aSO, HDFgroup *hdf_group_sobject) { hdf_size size[1]; std::vector attrList = aSO.GetLabel().GetAttributes(); DF_Attribute* anAttr = NULL; for(int i = 0, len = attrList.size(); iSave(); //cout << "Saving: " << aSO.GetID() << " type: "<< type<<"|" << endl; size[0] = (hdf_int32) strlen(aSaveStr.c_str()) + 1; HDFdataset *hdf_dataset = new HDFdataset((char*)type.c_str(), hdf_group_sobject, HDF_STRING,size, 1); hdf_dataset->CreateOnDisk(); hdf_dataset->WriteOnDisk((char*)aSaveStr.c_str()); hdf_dataset->CloseOnDisk(); hdf_dataset=0; //will be deleted by hdf_sco_group destructor } } //=========================================================================== //Function : ReadAttributes //=========================================================================== static void ReadAttributes(SALOMEDSImpl_Study* theStudy, const SALOMEDSImpl_SObject& aSO, HDFdataset* hdf_dataset) { hdf_dataset->OpenOnDisk(); DF_Attribute* anAttr = NULL; char* current_string = new char[hdf_dataset->GetSize()+1]; hdf_dataset->ReadFromDisk(current_string); //cout << "Reading attr type = " << hdf_dataset->GetName() << " SO = " << aSO.GetID() << endl; if (!strcmp(hdf_dataset->GetName(),"COMPONENTDATATYPE")) { anAttr = theStudy->NewBuilder()->FindOrCreateAttribute(aSO, "AttributeComment"); } else if (!strcmp(hdf_dataset->GetName(),"AttributeReference") || !strcmp(hdf_dataset->GetName(),"Reference")) { // Old format maintainance theStudy->NewBuilder()->Addreference(aSO, theStudy->CreateObjectID(current_string)); delete [] (current_string); hdf_dataset->CloseOnDisk(); return; } else { anAttr = theStudy->NewBuilder()->FindOrCreateAttribute(aSO, hdf_dataset->GetName()); } if (anAttr) { anAttr->Load(current_string); } delete [] (current_string); hdf_dataset->CloseOnDisk(); } //============================================================================ //Function : BuildlTree //============================================================================ static void BuildTree (SALOMEDSImpl_Study* theStudy, HDFgroup* hdf_current_group) { hdf_current_group->OpenOnDisk(); SALOMEDSImpl_SObject aSO; char* Entry = hdf_current_group->GetName(); if (strcmp(Entry,"STUDY_STRUCTURE") == 0) { aSO = theStudy->CreateObjectID("0:1"); } else { aSO = theStudy->CreateObjectID(Entry); } char name[HDF_NAME_MAX_LEN+1]; int nbsons = hdf_current_group->nInternalObjects(); for (int i=0; iInternalObjectIndentify(i,name); if (strncmp(name, "INTERNAL_COMPLEX",16) == 0) continue; hdf_object_type type = hdf_current_group->InternalObjectType(name); if (type == HDF_DATASET) { HDFdataset* new_dataset = new HDFdataset(name,hdf_current_group); ReadAttributes(theStudy,aSO,new_dataset); new_dataset = 0; // will be deleted by father destructor } else if (type == HDF_GROUP) { HDFgroup* new_group = new HDFgroup(name,hdf_current_group); BuildTree (theStudy, new_group); new_group = 0; // will be deleted by father destructor } } hdf_current_group->CloseOnDisk(); } //============================================================================ //Function : Translate_IOR_to_persistentID //============================================================================ static void Translate_IOR_to_persistentID (const SALOMEDSImpl_SObject& so, SALOMEDSImpl_Driver* engine, bool isMultiFile, bool isASCII) { DF_ChildIterator itchild(so.GetLabel()); std::string ior_string, persistent_string, curid; for (; itchild.More(); itchild.Next()) { SALOMEDSImpl_SObject current = SALOMEDSImpl_Study::SObject(itchild.Value()); SALOMEDSImpl_AttributeIOR* IOR = NULL; if ((IOR=(SALOMEDSImpl_AttributeIOR*)current.GetLabel().FindAttribute(SALOMEDSImpl_AttributeIOR::GetID()))) { ior_string = IOR->Value(); persistent_string = engine->IORToLocalPersistentID (current, ior_string, isMultiFile, isASCII); SALOMEDSImpl_AttributePersistentRef::Set(current.GetLabel(), persistent_string); } Translate_IOR_to_persistentID (current, engine, isMultiFile, isASCII); } } void ReadNoteBookVariables(SALOMEDSImpl_Study* theStudy, HDFgroup* theGroup) { if(!theGroup) return; HDFgroup* new_group =0; HDFdataset* new_dataset =0; char aVarName[HDF_NAME_MAX_LEN+1]; char *currentVarType = 0; char *currentVarValue = 0; char *currentVarIndex = 0; int order = 0; //Open HDF group with notebook variables theGroup->OpenOnDisk(); //Get Nb of variables int aNbVars = theGroup->nInternalObjects(); std::map aVarsMap; for( int iVar=0;iVar < aNbVars;iVar++ ) { theGroup->InternalObjectIndentify(iVar,aVarName); hdf_object_type type = theGroup->InternalObjectType(aVarName); if(type == HDF_GROUP) { //Read Variable new_group = new HDFgroup(aVarName,theGroup); new_group->OpenOnDisk(); //Read Type new_dataset = new HDFdataset("VARIABLE_TYPE",new_group); new_dataset->OpenOnDisk(); currentVarType = new char[new_dataset->GetSize()+1]; new_dataset->ReadFromDisk(currentVarType); new_dataset->CloseOnDisk(); new_dataset = 0; //will be deleted by hdf_sco_group destructor //Read Order if(new_group->ExistInternalObject("VARIABLE_INDEX")) { new_dataset = new HDFdataset("VARIABLE_INDEX",new_group); new_dataset->OpenOnDisk(); currentVarIndex = new char[new_dataset->GetSize()+1]; new_dataset->ReadFromDisk(currentVarIndex); new_dataset->CloseOnDisk(); new_dataset = 0; //will be deleted by hdf_sco_group destructor order = atoi(currentVarIndex); delete [] currentVarIndex; } else order = iVar; //Read Value new_dataset = new HDFdataset("VARIABLE_VALUE",new_group); new_dataset->OpenOnDisk(); currentVarValue = new char[new_dataset->GetSize()+1]; new_dataset->ReadFromDisk(currentVarValue); new_dataset->CloseOnDisk(); new_dataset = 0; //will be deleted by hdf_sco_group destructor new_group->CloseOnDisk(); new_group = 0; //will be deleted by hdf_sco_group destructor SALOMEDSImpl_GenericVariable::VariableTypes aVarType = SALOMEDSImpl_GenericVariable::String2VariableType(std::string(currentVarType)); delete [] currentVarType; //Create variable and add it in the study SALOMEDSImpl_GenericVariable* aVariable = new SALOMEDSImpl_ScalarVariable(aVarType,std::string(aVarName)); aVariable->Load(std::string(currentVarValue)); aVarsMap.insert(std::make_pair(order,aVariable)); delete [] currentVarValue; } } std::map::const_iterator it= aVarsMap.begin(); for(;it!=aVarsMap.end();it++) theStudy->AddVariable((*it).second); theGroup->CloseOnDisk(); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_StudyManager.hxx000077500000000000000000000112471177004724000243570ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_StudyManager.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSImpl_STUDYMANAGER_I_H__ #define __SALOMEDSImpl_STUDYMANAGER_I_H__ #include "SALOMEDSImpl_Defines.hxx" // std C++ headers #include #include #include #include "DF_Application.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_Driver.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include "DF_Document.hxx" class HDFgroup; class SALOMEDSIMPL_EXPORT SALOMEDSImpl_StudyManager { private: DF_Application* _appli; int _IDcounter; DF_Document* _clipboard; std::string _errorCode; public: //! standard constructor SALOMEDSImpl_StudyManager(); //! standard destructor virtual ~SALOMEDSImpl_StudyManager(); //! method to Create a New Study of name study_name virtual SALOMEDSImpl_Study* NewStudy(const std::string& study_name); //! method to Open a Study from it's persistent reference virtual SALOMEDSImpl_Study* Open(const std::string& aStudyUrl); //! method to close a Study virtual void Close(SALOMEDSImpl_Study* aStudy); //! method to save a Study virtual bool Save(SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile); virtual bool SaveASCII(SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile); //! method to save a Study to the persistent reference aUrl virtual bool SaveAs(const std::string& aUrl, SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile); virtual bool SaveAsASCII(const std::string& aUrl, SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile); //! method to Get name list of open studies in the session virtual std::vector GetOpenStudies(); //! method to get a Study from it's name virtual SALOMEDSImpl_Study* GetStudyByName(const std::string& aStudyName) ; //! method to get a Study from it's ID virtual SALOMEDSImpl_Study* GetStudyByID(int aStudyID) ; DF_Document* GetDocumentOfStudy(SALOMEDSImpl_Study* theStudy); DF_Document* GetClipboard() { return _clipboard; } bool CopyLabel(SALOMEDSImpl_Study* theSourceStudy, SALOMEDSImpl_Driver* theEngine, const int theSourceStartDepth, const DF_Label& theSource, const DF_Label& theDestinationMain); DF_Label PasteLabel(SALOMEDSImpl_Study* theDestinationStudy, SALOMEDSImpl_Driver* theEngine, const DF_Label& theSource, const DF_Label& theDestinationStart, const int theCopiedStudyID, const bool isFirstElement); virtual bool CanCopy(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* Engine); virtual bool Copy(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* Engine); virtual bool CanPaste(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* Engine); virtual SALOMEDSImpl_SObject Paste(const SALOMEDSImpl_SObject& theObject, SALOMEDSImpl_Driver* Engine); // _SaveAs private function called by Save and SaveAs virtual bool Impl_SaveAs(const std::string& aUrl, SALOMEDSImpl_Study* aStudy, SALOMEDSImpl_DriverFactory* aFactory, bool theMultiFile, bool theASCII); // _SaveObject private function called by _SaveAs virtual bool Impl_SaveObject(const SALOMEDSImpl_SObject& SC, HDFgroup *hdf_group_datatype); // _SubstituteSlash function called by Open and GetStudyByName virtual std::string Impl_SubstituteSlash(const std::string& aUrl); virtual bool Impl_SaveProperties(SALOMEDSImpl_Study* aStudy, HDFgroup *hdf_group); std::string GetErrorCode() { return _errorCode; } virtual bool IsError() { return _errorCode != ""; } }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_TMPFile.cxx000077500000000000000000000023541177004724000232060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server // File : SALOMEDSImpl_SObject.cxx // Author : Sergey RUIN // Module : SALOME // #include "SALOMEDSImpl_TMPFile.hxx" SALOMEDSImpl_TMPFile::TOctet* SALOMEDSImpl_TMPFile ::Data() { return &Get(0); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_TMPFile.hxx000077500000000000000000000024661177004724000232170ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __SALOMEDSIMPL_TMPFILE_H__ #define __SALOMEDSIMPL_TMPFILE_H__ #include "SALOMEDSImpl_Defines.hxx" #include "DF_definitions.hxx" struct SALOMEDSIMPL_EXPORT SALOMEDSImpl_TMPFile { typedef unsigned char TOctet; //typedef unsigned int size_t; virtual size_t Size() = 0; virtual TOctet* Data(); virtual TOctet& Get(size_t) = 0; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Tool.cxx000077500000000000000000000251641177004724000226670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Tool.cxx // Created : Mon Oct 21 16:24:34 2002 // Author : Sergey RUIN // Project : SALOME // Module : SALOMEDSImpl // #include #include #include #include #include #include #include #include "SALOMEDSImpl_Tool.hxx" #ifndef WIN32 #include #include #include #include #include #else #include #include //#include #include #endif bool Exists(const std::string thePath) { #ifdef WIN32 if ( GetFileAttributes ( thePath.c_str() ) == 0xFFFFFFFF ) { if ( GetLastError () == ERROR_FILE_NOT_FOUND ) { return false; } } #else int status = access ( thePath.c_str() , F_OK ); if (status != 0) return false; #endif return true; } //============================================================================ // function : GetTempDir // purpose : Return a temp directory to store created files like "/tmp/sub_dir/" //============================================================================ std::string SALOMEDSImpl_Tool::GetTmpDir() { //Find a temporary directory to store a file std::string aTmpDir; char *Tmp_dir = getenv("SALOME_TMP_DIR"); if(Tmp_dir != NULL) { aTmpDir = std::string(Tmp_dir); #ifdef WIN32 if(aTmpDir[aTmpDir.size()-1] != '\\') aTmpDir+='\\'; #else if(aTmpDir[aTmpDir.size()-1] != '/') aTmpDir+='/'; #endif } else { #ifdef WIN32 aTmpDir = std::string("C:\\"); #else aTmpDir = std::string("/tmp/"); #endif } srand((unsigned int)time(NULL)); int aRND = 999 + (int)(100000.0*rand()/(RAND_MAX+1.0)); //Get a random number to present a name of a sub directory char buffer[127]; sprintf(buffer, "%d", aRND); std::string aSubDir(buffer); if(aSubDir.size() <= 1) aSubDir = std::string("123409876"); aTmpDir += aSubDir; //Get RND sub directory std::string aDir = aTmpDir; if(Exists(aDir)) { for(aRND = 0; Exists(aDir); aRND++) { sprintf(buffer, "%d", aRND); aDir = aTmpDir+buffer; //Build a unique directory name } } #ifdef WIN32 if(aDir[aTmpDir.size()-1] != '\\') aDir+='\\'; #else if(aDir[aTmpDir.size()-1] != '/') aDir+='/'; #endif #ifdef WIN32 CreateDirectory(aDir.c_str(), NULL); #else mkdir(aDir.c_str(), 0x1ff); #endif return aDir; } //============================================================================ // function : RemoveTemporaryFiles // purpose : Removes files listed in theFileList //============================================================================ void SALOMEDSImpl_Tool::RemoveTemporaryFiles(const std::string& theDirectory, const std::vector& theFiles, const bool IsDirDeleted) { std::string aDirName = theDirectory; int i, aLength = theFiles.size(); for(i=1; i<=aLength; i++) { std::string aFile(aDirName); aFile += theFiles[i-1]; if(!Exists(aFile)) continue; #ifdef WIN32 DeleteFile(aFile.c_str()); #else unlink(aFile.c_str()); #endif } if(IsDirDeleted) { if(Exists(aDirName)) { #ifdef WIN32 RemoveDirectory(aDirName.c_str()); #else rmdir(aDirName.c_str()); #endif } } } //============================================================================ // function : GetNameFromPath // purpose : Returns the name by the path //============================================================================ std::string SALOMEDSImpl_Tool::GetNameFromPath(const std::string& thePath) { if (thePath.empty()) return ""; int pos = thePath.rfind('/'); if(pos >= 0) return thePath.substr(pos+1, thePath.size()); pos = thePath.rfind('\\'); if(pos >= 0) return thePath.substr(pos+1, thePath.size()); pos = thePath.rfind('|'); if(pos >= 0) return thePath.substr(pos+1, thePath.size()); return thePath; } //============================================================================ // function : GetDirFromPath // purpose : Returns the dir by the path //============================================================================ std::string SALOMEDSImpl_Tool::GetDirFromPath(const std::string& thePath) { #ifdef WIN32 std::string separator = "\\"; #else std::string separator = "/"; #endif std::string path; if (!thePath.empty()) { int pos = thePath.rfind('/'); if (pos < 0) pos = thePath.rfind('\\'); if (pos < 0) pos = thePath.rfind('|'); if (pos >= 0) path = thePath.substr(0, pos+1); else path = std::string(".") + separator; #ifdef WIN32 //Check if the only disk letter is given as path if (path.size() == 2 && path[1] == ':') path += separator; #endif while ( (pos=path.find('|')) >= 0 ) path.replace(pos, 1, separator); } return path; } //============================================================================ // function : // purpose : The functions returns a list of substring of initial string // divided by given separator //============================================================================ std::vector SALOMEDSImpl_Tool::splitString(const std::string& theValue, char separator) { std::vector vs; if(theValue[0] == separator && theValue.size() == 1) return vs; int pos = theValue.find(separator); if(pos < 0) { vs.push_back(theValue); return vs; } std::string s = theValue; if(s[0] == separator) s = s.substr(1, s.size()); while((pos = s.find(separator)) >= 0) { vs.push_back(s.substr(0, pos)); s = s.substr(pos+1, s.size()); } if(!s.empty() && s[0] != separator) vs.push_back(s); return vs; } //============================================================================ // function : // purpose : The functions returns a list of substring of initial string // divided by given separator include empty strings //============================================================================ std::vector treatRepetation(const std::string& theValue); std::vector treatRepetation(const std::string& theValue) { std::vector aResult; int pos = theValue.find(";*="); if(pos < 0 ) { aResult.push_back(theValue); return aResult; } std::string val(theValue.substr(0, pos)); std::string suffix(theValue.substr(pos+3)); int nb; std::istringstream tmp(suffix); tmp >> nb; for(int i=0; i SALOMEDSImpl_Tool::splitStringWithEmpty(const std::string& theValue, char sep) { std::vector aResult; if(theValue[0] == sep ) aResult.push_back(std::string()); int pos = theValue.find(sep); if(pos < 0 ) { if(sep == '|') { std::vector tmp = treatRepetation(theValue); std::copy(tmp.begin(), tmp.end(), std::back_insert_iterator< std::vector >(aResult)); } else aResult.push_back(theValue); return aResult; } std::string s = theValue; if(s[0] == sep) s = s.substr(1, s.size()); while((pos = s.find(sep)) >= 0) { if(sep == '|') { std::vector tmp = treatRepetation(s.substr(0, pos)); std::copy(tmp.begin(), tmp.end(), std::back_insert_iterator< std::vector >(aResult)); } else aResult.push_back(s.substr(0, pos)); s = s.substr(pos+1, s.size()); } if(!s.empty() && s[0] != sep) { if(sep == '|') { std::vector tmp = treatRepetation(s); std::copy(tmp.begin(), tmp.end(), std::back_insert_iterator< std::vector >(aResult)); } else aResult.push_back(s); } if(theValue[theValue.size()-1] == sep) aResult.push_back(std::string()); return aResult; } //============================================================================ // function : // purpose : The functions returns a list of lists of substrings of initial string // divided by two given separators include empty strings //============================================================================ std::vector< std::vector > SALOMEDSImpl_Tool::splitStringWithEmpty(const std::string& theValue, char sep1, char sep2) { std::vector< std::vector > aResult; if(theValue.size() > 0) { std::vector aSections = splitStringWithEmpty( theValue, sep1 ); for( int i = 0, n = aSections.size(); i < n; i++ ) aResult.push_back( splitStringWithEmpty( aSections[i], sep2 ) ); } return aResult; } void SALOMEDSImpl_Tool::GetSystemDate(int& year, int& month, int& day, int& hours, int& minutes, int& seconds) { #ifdef WIN32 SYSTEMTIME st; GetLocalTime ( &st ); month = st.wMonth; day = st.wDay; year = st.wYear; hours = st.wHour; minutes = st.wMinute; seconds = st.wSecond; #else struct tm transfert; struct timeval tval; struct timezone tzone; int status; status = gettimeofday( &tval, &tzone ); memcpy(&transfert, localtime((time_t *)&tval.tv_sec), sizeof(tm)); month = transfert.tm_mon + 1; day = transfert.tm_mday; year = transfert.tm_year + 1900; hours = transfert.tm_hour; minutes = transfert.tm_min ; seconds = transfert.tm_sec ; #endif } //Warning undef of Ascii Winwows define #ifdef WIN32 # undef GetUserName #endif std::string SALOMEDSImpl_Tool::GetUserName() { #ifdef WIN32 char* pBuff = new char[UNLEN + 1]; DWORD dwSize = UNLEN + 1; std::string retVal; ::GetUserNameA( pBuff, &dwSize ); std::string theTmpUserName(pBuff,(int)dwSize -1 ); retVal = theTmpUserName; delete [] pBuff; return retVal; #else struct passwd *infos; infos = getpwuid(getuid()); return std::string(infos->pw_name); #endif } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_Tool.hxx000077500000000000000000000064341177004724000226730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_Tool.hxx // Created : Mon Oct 21 16:24:50 2002 // Author : Sergey RUIN // Project : SALOME // Module : SALOMEDSImpl // #ifndef __SALOMEDSIMPL_TOOL_H__ #define __SALOMEDSIMPL_TOOL_H__ #include "SALOMEDSImpl_Defines.hxx" #include #include #include "DF_Label.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_Tool { public: // Returns the unique temporary directory, that is defined in SALOME_TMP_DIR if this variable is set // otherwise return /tmp/something/ for Unix or c:\something\ for WIN32 static std::string GetTmpDir(); // Removes files which are in , the files for deletion are listed in // if is true is also deleted if it is empty static void RemoveTemporaryFiles(const std::string& theDirectory, const std::vector& theFiles, const bool IsDirDeleted); // Returns the name by the path // for an example: if thePath = "/tmp/aaa/doc1.hdf" the function returns "doc1" static std::string GetNameFromPath(const std::string& thePath); // Returns the directory by the path // for an example: if thePath = "/tmp/aaa/doc1.hdf" the function returns "/tmp/aaa" static std::string GetDirFromPath(const std::string& thePath); //The functions returns a list of substring of initial string divided by given separator static std::vector splitString(const std::string& theValue, char separator); //The functions returns a list of substring of initial string divided by given separator, //include empty strings static std::vector splitStringWithEmpty(const std::string& theValue, char separator); //The functions returns a list of substring of initial string divided by given separator, //include empty strings static std::vector< std::vector > splitStringWithEmpty(const std::string& theValue, char separator1, char separator2); //Returns a system date static void GetSystemDate(int& year, int& month, int& day, int& hours, int& minutes, int& seconds); //Returns a name of the user static std::string GetUserName(); }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_UseCaseBuilder.cxx000077500000000000000000000366131177004724000246120ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_UseCaseBuilder.cxx // Author : Sergey RUIN // Module : SALOME #include "SALOMEDSImpl_UseCaseBuilder.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_Attributes.hxx" #include "DF_ChildIterator.hxx" #define USE_CASE_LABEL_TAG 2 #define USE_CASE_GUID "AA43BB12-D9CD-11d6-945D-0050DA506788" //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDSImpl_UseCaseBuilder::SALOMEDSImpl_UseCaseBuilder(DF_Document* theDocument) :_doc(theDocument) { if(!_doc) return; DF_Label aLabel = _doc->Main().Root().FindChild(USE_CASE_LABEL_TAG); //Iterate all use cases if(!(_root = (SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(std::string(USE_CASE_GUID)))) { _root = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, std::string(USE_CASE_GUID)); } SALOMEDSImpl_AttributeReference* aRef = NULL; if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { aRef = SALOMEDSImpl_AttributeReference::Set(_root->Label(), _root->Label()); } if(!aLabel.FindAttribute(SALOMEDSImpl_AttributeName::GetID())) { SALOMEDSImpl_AttributeName::Set(aLabel, "Use cases"); } } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDSImpl_UseCaseBuilder::~SALOMEDSImpl_UseCaseBuilder() { } //============================================================================ /*! Function : Append * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::Append(const SALOMEDSImpl_SObject& theObject) { if(!_root || !theObject) return false; DF_Label aLabel = theObject.GetLabel(); if(aLabel.IsNull()) return false; SALOMEDSImpl_AttributeTreeNode* aNode = NULL; SALOMEDSImpl_AttributeTreeNode* aCurrentNode = NULL; aNode = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, _root->ID()); aNode->Remove(); SALOMEDSImpl_AttributeReference* aRef; if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { aRef = SALOMEDSImpl_AttributeReference::Set(_root->Label(), _root->Label()); } DF_Label aCurrent = aRef->Get(); if(aCurrent.IsNull() || !(aCurrentNode=(SALOMEDSImpl_AttributeTreeNode*)aCurrent.FindAttribute(_root->ID()))) aCurrentNode = _root; aCurrentNode->Append(aNode); // Mantis issue 0020136: Drag&Drop in OB theObject.GetStudy()->addSO_Notification(theObject); return true; } //============================================================================ /*! Function : Remove * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::Remove(const SALOMEDSImpl_SObject& theObject) { if(!_root || !theObject) return false; DF_Label aLabel = theObject.GetLabel(); if(aLabel.IsNull()) return false; SALOMEDSImpl_AttributeTreeNode* aNode = NULL; if(!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) return false; aNode->Remove(); std::vector aList; aList.push_back(aNode); SALOMEDSImpl_AttributeReference* aRef = NULL; if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { aRef = SALOMEDSImpl_AttributeReference::Set(_root->Label(), _root->Label()); } DF_Label aCurrent = aRef->Get(); SALOMEDSImpl_ChildNodeIterator aChildItr(aNode, true); for(; aChildItr.More(); aChildItr.Next()) aList.push_back(aChildItr.Value()); for(int i = 0, len = aList.size(); iLabel() == aCurrent) { //The current node is removed aRef->Set(_root->Label()); //Reset the current node to the root } aList[i]->Label().ForgetAttribute(_root->ID()); } return true; } //============================================================================ /*! Function : AppendTo * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::AppendTo(const SALOMEDSImpl_SObject& theFather, const SALOMEDSImpl_SObject& theObject) { if(!_root || !theFather || !theObject) return false; DF_Label aFatherLabel = theFather.GetLabel(), aLabel = theObject.GetLabel(); if(aFatherLabel == aLabel) return false; SALOMEDSImpl_AttributeTreeNode *aFather = false, *aNode = false; if(aFatherLabel.IsNull()) return false; if(!(aFather=(SALOMEDSImpl_AttributeTreeNode*)aFatherLabel.FindAttribute(_root->ID()))) return false; if(aLabel.IsNull()) return false; if(!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) { aNode = SALOMEDSImpl_AttributeTreeNode::Set(aLabel, _root->ID()); } aNode->Remove(); bool ret = aFather->Append(aNode); // Mantis issue 0020136: Drag&Drop in OB theObject.GetStudy()->addSO_Notification(theObject); return ret; } //============================================================================ /*! Function : InsertBefore * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::InsertBefore(const SALOMEDSImpl_SObject& theFirst, const SALOMEDSImpl_SObject& theNext) { if(!_root || !theFirst || !theNext) return false; DF_Label aFirstLabel = theFirst.GetLabel(), aLabel= theNext.GetLabel(); if(aFirstLabel == aLabel) return false; SALOMEDSImpl_AttributeTreeNode *aFirstNode = NULL, *aNode = NULL; if(aFirstLabel.IsNull()) return false; if((aFirstNode=(SALOMEDSImpl_AttributeTreeNode*)aFirstLabel.FindAttribute(_root->ID()))) { aFirstNode->Remove(); aFirstLabel.ForgetAttribute(aFirstNode->ID()); } aFirstNode = SALOMEDSImpl_AttributeTreeNode::Set(aFirstLabel, _root->ID()); if(aLabel.IsNull()) return false; if(!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) return false; aFirstNode->Remove(); bool ret = aNode->InsertBefore(aFirstNode); // Mantis issue 0020136: Drag&Drop in OB theFirst.GetStudy()->addSO_Notification(theFirst); return ret; } //============================================================================ /*! Function : SetCurrentObject * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::SetCurrentObject(const SALOMEDSImpl_SObject& theObject) { if(!_root || !theObject) return false; DF_Label aLabel = theObject.GetLabel(); SALOMEDSImpl_AttributeTreeNode* aNode = NULL; if(aLabel.IsNull()) return false; if(!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) return false; SALOMEDSImpl_AttributeReference* aRef = NULL; if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { aRef = SALOMEDSImpl_AttributeReference::Set(_root->Label(), aNode->Label()); } aRef->Set(aNode->Label()); return true; } //============================================================================ /*! Function : SetRootCurrent * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::SetRootCurrent() { if(!_root) return false; SALOMEDSImpl_AttributeReference* aRef = NULL; if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) aRef = SALOMEDSImpl_AttributeReference::Set(_root->Label(), _root->Label()); aRef->Set(_root->Label()); return true; } //============================================================================ /*! Function : HasChildren * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::HasChildren(const SALOMEDSImpl_SObject& theObject) { if(!_root) return false; DF_Label aLabel; if (!theObject) aLabel = _root->Label(); else aLabel = theObject.GetLabel(); if(aLabel.IsNull()) return false; SALOMEDSImpl_AttributeTreeNode* aNode = NULL; if(!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) return false; return (aNode->GetFirst()); } //============================================================================ /*! Function : GetFather * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_UseCaseBuilder::GetFather(const SALOMEDSImpl_SObject& theObject) { SALOMEDSImpl_SObject so; if (!_root || !theObject) return so; DF_Label aLabel = theObject.GetLabel(); if (aLabel.IsNull()) return so; SALOMEDSImpl_AttributeTreeNode* aNode = NULL; if (!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) return so; SALOMEDSImpl_AttributeTreeNode* aFatherNode = aNode->GetFather(); if (!aFatherNode) return so; return aFatherNode->GetSObject(); } //============================================================================ /*! Function : SetName * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::SetName(const std::string& theName) { if(!_root) return false; SALOMEDSImpl_AttributeName* aNameAttrib = NULL; if (!(aNameAttrib=(SALOMEDSImpl_AttributeName*)_root->FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) aNameAttrib = SALOMEDSImpl_AttributeName::Set(_root->Label(), theName); aNameAttrib->SetValue(theName); return true; } //============================================================================ /*! Function : GetCurrentObject * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_UseCaseBuilder::GetCurrentObject() { SALOMEDSImpl_SObject so; if(!_root) return so; SALOMEDSImpl_AttributeReference* aRef = NULL; if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { aRef = SALOMEDSImpl_AttributeReference::Set(_root->Label(), _root->Label()); } DF_Label aCurrent = aRef->Get(); if(aCurrent.IsNull()) return so; return SALOMEDSImpl_Study::SObject(aCurrent); } //============================================================================ /*! Function : GetName * Purpose : */ //============================================================================ std::string SALOMEDSImpl_UseCaseBuilder::GetName() { std::string aString; if(!_root) return aString; SALOMEDSImpl_AttributeName* aName = NULL; if (!(aName=(SALOMEDSImpl_AttributeName*)_root->FindAttribute(SALOMEDSImpl_AttributeName::GetID()))) return aString; return aName->Value(); } //============================================================================ /*! Function : IsUseCase * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::IsUseCase(const SALOMEDSImpl_SObject& theObject) { if(!theObject) return false; DF_Label aFather, aLabel = theObject.GetLabel(); aFather = _doc->Main().Root().FindChild(USE_CASE_LABEL_TAG); if(aLabel.Father() == aFather) return true; return false; } //============================================================================ /*! Function : IsUseCaseNode * Purpose : */ //============================================================================ bool SALOMEDSImpl_UseCaseBuilder::IsUseCaseNode(const SALOMEDSImpl_SObject& theObject) { if(!_root) return false; DF_Label aLabel; if (!theObject) aLabel = _root->Label(); else aLabel = theObject.GetLabel(); if(aLabel.IsNull()) return false; SALOMEDSImpl_AttributeTreeNode* aNode = NULL; if(!(aNode=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(_root->ID()))) return false; return true; } //============================================================================ /*! Function : NewUseCase * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_UseCaseBuilder::AddUseCase(const std::string& theName) { std::string aBasicGUID(USE_CASE_GUID); //Create a use cases structure if it not exists SALOMEDSImpl_AttributeTreeNode *aFatherNode = NULL, *aNode = NULL; SALOMEDSImpl_AttributeInteger* anInteger = NULL; SALOMEDSImpl_AttributeReference* aRef = NULL; DF_Label aLabel = _doc->Main().Root().FindChild(USE_CASE_LABEL_TAG); if(!(aRef=(SALOMEDSImpl_AttributeReference*)_root->FindAttribute(SALOMEDSImpl_AttributeReference::GetID()))) { aRef = SALOMEDSImpl_AttributeReference::Set(aLabel, aLabel); } if(!(aFatherNode=(SALOMEDSImpl_AttributeTreeNode*)aRef->Get().FindAttribute(aBasicGUID))) { aFatherNode = SALOMEDSImpl_AttributeTreeNode::Set(aRef->Get(), aBasicGUID); } if(!(anInteger=(SALOMEDSImpl_AttributeInteger*)_root->FindAttribute(SALOMEDSImpl_AttributeInteger::GetID()))) { anInteger = SALOMEDSImpl_AttributeInteger::Set(aLabel, 0); } //Create a new use case anInteger->SetValue(anInteger->Value()+1); DF_Label aChild = aLabel.FindChild(anInteger->Value()); aNode = SALOMEDSImpl_AttributeTreeNode::Set(aChild, aBasicGUID); aNode->Remove(); aFatherNode->Append(aNode); SALOMEDSImpl_AttributeName::Set(aChild, theName); return SALOMEDSImpl_Study::SObject(aChild); } //============================================================================ /*! Function : GetUseCaseIterator * Purpose : Creates a new UseCase iterator, if anObject is null all use cases are iterated */ //============================================================================ SALOMEDSImpl_UseCaseIterator SALOMEDSImpl_UseCaseBuilder::GetUseCaseIterator(const SALOMEDSImpl_SObject& theObject) { DF_Label aLabel; if(theObject) { aLabel = theObject.GetLabel(); //Iterate only sub tree in the use case } else { aLabel = _doc->Main().Root().FindChild(USE_CASE_LABEL_TAG); //Iterate all use cases } return SALOMEDSImpl_UseCaseIterator(aLabel, USE_CASE_GUID, false); } SALOMEDSImpl_SObject SALOMEDSImpl_UseCaseBuilder::GetSObject(const std::string& theEntry) { DF_Label L = DF_Label::Label(_root->Label(), theEntry); return SALOMEDSImpl_Study::SObject(L); } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_UseCaseBuilder.hxx000077500000000000000000000053361177004724000246150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_UseCaseBuilder.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_USECaseBuilder_H__ #define __SALOMEDSIMPL_USECaseBuilder_H__ #include "SALOMEDSImpl_Defines.hxx" #include #include "DF_Document.hxx" #include "DF_Label.hxx" #include "SALOMEDSImpl_AttributeTreeNode.hxx" #include "SALOMEDSImpl_UseCaseIterator.hxx" class SALOMEDSIMPL_EXPORT SALOMEDSImpl_UseCaseBuilder { private: SALOMEDSImpl_AttributeTreeNode* _root; DF_Document* _doc; public: //! standard constructor SALOMEDSImpl_UseCaseBuilder(DF_Document* theDocument); //! standard destructor ~SALOMEDSImpl_UseCaseBuilder(); virtual bool Append(const SALOMEDSImpl_SObject& theObject); virtual bool Remove(const SALOMEDSImpl_SObject& theObject); virtual bool AppendTo(const SALOMEDSImpl_SObject& theFather, const SALOMEDSImpl_SObject& theObject); virtual bool InsertBefore(const SALOMEDSImpl_SObject& theFirst, const SALOMEDSImpl_SObject& theNext); virtual bool SetCurrentObject(const SALOMEDSImpl_SObject& theObject); virtual bool SetRootCurrent(); virtual bool HasChildren(const SALOMEDSImpl_SObject& theObject); virtual SALOMEDSImpl_SObject GetFather(const SALOMEDSImpl_SObject& theObject); virtual bool IsUseCase(const SALOMEDSImpl_SObject& theObject); virtual bool IsUseCaseNode(const SALOMEDSImpl_SObject& theObject); virtual bool SetName(const std::string& theName); virtual SALOMEDSImpl_SObject GetCurrentObject(); virtual std::string GetName(); virtual SALOMEDSImpl_SObject AddUseCase(const std::string& theName); virtual SALOMEDSImpl_UseCaseIterator GetUseCaseIterator(const SALOMEDSImpl_SObject& anObject); SALOMEDSImpl_SObject GetSObject(const std::string& theEntry); }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_UseCaseIterator.cxx000077500000000000000000000075661177004724000250220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_UseCaseIterator.cxx // Author : Serge RUIN // Module : SALOME // #include "SALOMEDSImpl_UseCaseIterator.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_Study.hxx" //============================================================================ /*! Function : empty constructor * Purpose : */ //============================================================================ SALOMEDSImpl_UseCaseIterator::SALOMEDSImpl_UseCaseIterator() { _node = NULL; } //============================================================================ /*! Function : constructor * Purpose : */ //============================================================================ SALOMEDSImpl_UseCaseIterator::SALOMEDSImpl_UseCaseIterator(const DF_Label& theLabel, const std::string& theGUID, const bool allLevels) :_guid(theGUID), _levels(allLevels) { if((_node = (SALOMEDSImpl_AttributeTreeNode*)theLabel.FindAttribute(_guid))) { _it.Initialize (_node, _levels); } } //============================================================================ /*! Function : destructor * Purpose : */ //============================================================================ SALOMEDSImpl_UseCaseIterator::~SALOMEDSImpl_UseCaseIterator() { } //============================================================================ /*! Function :Init * */ //============================================================================ void SALOMEDSImpl_UseCaseIterator::Init(bool allLevels) { _it.Initialize (_node, allLevels); } //============================================================================ /*! Function : More * */ //============================================================================ bool SALOMEDSImpl_UseCaseIterator::More() { return _it.More(); } //============================================================================ /*! Function : Next * */ //============================================================================ void SALOMEDSImpl_UseCaseIterator::Next() { _it.Next(); } //============================================================================ /*! Function : * Purpose : */ //============================================================================ SALOMEDSImpl_SObject SALOMEDSImpl_UseCaseIterator::Value() { DF_Label L = _it.Value()->Label(); return SALOMEDSImpl_Study::SObject(L); } //============================================================================ /*! Function : GetPersistentCopy * */ //============================================================================ SALOMEDSImpl_UseCaseIterator* SALOMEDSImpl_UseCaseIterator::GetPersistentCopy() const { SALOMEDSImpl_UseCaseIterator* itr = new SALOMEDSImpl_UseCaseIterator(); itr->_it = _it; itr->_node = _node; itr->_guid = _guid; itr->_levels = _levels; return itr; } salome-kernel-6.5.0/src/SALOMEDSImpl/SALOMEDSImpl_UseCaseIterator.hxx000077500000000000000000000037671177004724000250260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDSImpl_UseCaseIterator.hxx // Author : Sergey RUIN // Module : SALOME // #ifndef __SALOMEDSIMPL_USECASEITERATOR_H__ #define __SALOMEDSIMPL_USECASEITERATOR_H__ #include "SALOMEDSImpl_Defines.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "DF_ChildIterator.hxx" #include "SALOMEDSImpl_ChildNodeIterator.hxx" #include class SALOMEDSIMPL_EXPORT SALOMEDSImpl_UseCaseIterator { private: std::string _guid; bool _levels; SALOMEDSImpl_AttributeTreeNode* _node; SALOMEDSImpl_ChildNodeIterator _it; public: SALOMEDSImpl_UseCaseIterator(); //! standard constructor SALOMEDSImpl_UseCaseIterator(const DF_Label& theLabel, const std::string& theGUID, const bool allLevels); //! standard destructor ~SALOMEDSImpl_UseCaseIterator(); virtual void Init(bool); virtual bool More(); virtual void Next(); virtual SALOMEDSImpl_SObject Value(); SALOMEDSImpl_UseCaseIterator* GetPersistentCopy() const; }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/Test/000077500000000000000000000000001177004724000200215ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMEDSImpl/Test/Makefile.am000077500000000000000000000100741177004724000220620ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Paul RASCLE # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDSImpl/Test/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:30 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= SALOMEDSImplTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestSALOMEDSImpl.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/NamingService -I$(srcdir)/$(RPATH)/NamingService/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/ResourcesManager \ -I$(srcdir)/$(RPATH)/LifeCycleCORBA \ -I$(srcdir)/$(RPATH)/DF \ -I$(srcdir)/$(RPATH)/SALOMEDSImpl \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ @CPPUNIT_LIBS@ \ $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/DF/libDF.la \ $(RPATH)/SALOMEDSImpl/libSalomeDSImpl.la \ $(RPATH)/HDFPersist/libSalomeHDFPersist.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMEDSImplTest.la libSALOMEDSImplTest_la_SOURCES = SALOMEDSImplTest.cxx libSALOMEDSImplTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSALOMEDSImplTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMEDSImplTest_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestSALOMEDSImpl TestSALOMEDSImpl_SOURCES = TestSALOMEDSImpl.cxx TestSALOMEDSImpl_CPPFLAGS = $(COMMON_CPPFLAGS) TestSALOMEDSImpl_LDADD = \ libSALOMEDSImplTest.la ../libSalomeDSImpl.la \ $(RPATH)/NamingService/Test/libNamingServiceTest.la \ $(COMMON_LIBS) salome-kernel-6.5.0/src/SALOMEDSImpl/Test/Makefile.in000077500000000000000000001151761177004724000221040ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestSALOMEDSImpl$(EXEEXT) subdir = src/SALOMEDSImpl/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/DF/libDF.la $(RPATH)/SALOMEDSImpl/libSalomeDSImpl.la \ $(RPATH)/HDFPersist/libSalomeHDFPersist.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSALOMEDSImplTest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSALOMEDSImplTest_la_OBJECTS = \ libSALOMEDSImplTest_la-SALOMEDSImplTest.lo libSALOMEDSImplTest_la_OBJECTS = $(am_libSALOMEDSImplTest_la_OBJECTS) libSALOMEDSImplTest_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSALOMEDSImplTest_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_TestSALOMEDSImpl_OBJECTS = \ TestSALOMEDSImpl-TestSALOMEDSImpl.$(OBJEXT) TestSALOMEDSImpl_OBJECTS = $(am_TestSALOMEDSImpl_OBJECTS) TestSALOMEDSImpl_DEPENDENCIES = libSALOMEDSImplTest.la \ ../libSalomeDSImpl.la \ $(RPATH)/NamingService/Test/libNamingServiceTest.la \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSALOMEDSImplTest_la_SOURCES) \ $(TestSALOMEDSImpl_SOURCES) DIST_SOURCES = $(libSALOMEDSImplTest_la_SOURCES) \ $(TestSALOMEDSImpl_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Paul RASCLE # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMEDSImpl/Test/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:30 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMEDSImplTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestSALOMEDSImpl.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/NamingService -I$(srcdir)/$(RPATH)/NamingService/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test \ -I$(srcdir)/$(RPATH)/ResourcesManager \ -I$(srcdir)/$(RPATH)/LifeCycleCORBA \ -I$(srcdir)/$(RPATH)/DF \ -I$(srcdir)/$(RPATH)/SALOMEDSImpl \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ @CPPUNIT_LIBS@ \ $(RPATH)/Basics/libSALOMEBasics.la \ $(RPATH)/ResourcesManager/libSalomeResourcesManager.la \ $(RPATH)/Container/libSalomeContainer.la \ $(RPATH)/NamingService/libSalomeNS.la \ $(RPATH)/Registry/libRegistry.la \ $(RPATH)/Notification/libSalomeNotification.la \ $(RPATH)/Utils/Test/libUtilsTest.la \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/DF/libDF.la \ $(RPATH)/SALOMEDSImpl/libSalomeDSImpl.la \ $(RPATH)/HDFPersist/libSalomeHDFPersist.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMEDSImplTest.la libSALOMEDSImplTest_la_SOURCES = SALOMEDSImplTest.cxx libSALOMEDSImplTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSALOMEDSImplTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMEDSImplTest_la_LIBADD = $(COMMON_LIBS) TestSALOMEDSImpl_SOURCES = TestSALOMEDSImpl.cxx TestSALOMEDSImpl_CPPFLAGS = $(COMMON_CPPFLAGS) TestSALOMEDSImpl_LDADD = \ libSALOMEDSImplTest.la ../libSalomeDSImpl.la \ $(RPATH)/NamingService/Test/libNamingServiceTest.la \ $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMEDSImpl/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMEDSImpl/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSALOMEDSImplTest.la: $(libSALOMEDSImplTest_la_OBJECTS) $(libSALOMEDSImplTest_la_DEPENDENCIES) $(libSALOMEDSImplTest_la_LINK) -rpath $(libdir) $(libSALOMEDSImplTest_la_OBJECTS) $(libSALOMEDSImplTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestSALOMEDSImpl$(EXEEXT): $(TestSALOMEDSImpl_OBJECTS) $(TestSALOMEDSImpl_DEPENDENCIES) @rm -f TestSALOMEDSImpl$(EXEEXT) $(CXXLINK) $(TestSALOMEDSImpl_OBJECTS) $(TestSALOMEDSImpl_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMEDSImplTest_la-SALOMEDSImplTest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSALOMEDSImplTest_la-SALOMEDSImplTest.lo: SALOMEDSImplTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMEDSImplTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMEDSImplTest_la-SALOMEDSImplTest.lo -MD -MP -MF $(DEPDIR)/libSALOMEDSImplTest_la-SALOMEDSImplTest.Tpo -c -o libSALOMEDSImplTest_la-SALOMEDSImplTest.lo `test -f 'SALOMEDSImplTest.cxx' || echo '$(srcdir)/'`SALOMEDSImplTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMEDSImplTest_la-SALOMEDSImplTest.Tpo $(DEPDIR)/libSALOMEDSImplTest_la-SALOMEDSImplTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDSImplTest.cxx' object='libSALOMEDSImplTest_la-SALOMEDSImplTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMEDSImplTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMEDSImplTest_la-SALOMEDSImplTest.lo `test -f 'SALOMEDSImplTest.cxx' || echo '$(srcdir)/'`SALOMEDSImplTest.cxx TestSALOMEDSImpl-TestSALOMEDSImpl.o: TestSALOMEDSImpl.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDSImpl_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMEDSImpl-TestSALOMEDSImpl.o -MD -MP -MF $(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Tpo -c -o TestSALOMEDSImpl-TestSALOMEDSImpl.o `test -f 'TestSALOMEDSImpl.cxx' || echo '$(srcdir)/'`TestSALOMEDSImpl.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Tpo $(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMEDSImpl.cxx' object='TestSALOMEDSImpl-TestSALOMEDSImpl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDSImpl_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMEDSImpl-TestSALOMEDSImpl.o `test -f 'TestSALOMEDSImpl.cxx' || echo '$(srcdir)/'`TestSALOMEDSImpl.cxx TestSALOMEDSImpl-TestSALOMEDSImpl.obj: TestSALOMEDSImpl.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDSImpl_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMEDSImpl-TestSALOMEDSImpl.obj -MD -MP -MF $(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Tpo -c -o TestSALOMEDSImpl-TestSALOMEDSImpl.obj `if test -f 'TestSALOMEDSImpl.cxx'; then $(CYGPATH_W) 'TestSALOMEDSImpl.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMEDSImpl.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Tpo $(DEPDIR)/TestSALOMEDSImpl-TestSALOMEDSImpl.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMEDSImpl.cxx' object='TestSALOMEDSImpl-TestSALOMEDSImpl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMEDSImpl_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMEDSImpl-TestSALOMEDSImpl.obj `if test -f 'TestSALOMEDSImpl.cxx'; then $(CYGPATH_W) 'TestSALOMEDSImpl.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMEDSImpl.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMEDSImpl/Test/SALOMEDSImplTest.cxx000077500000000000000000000075061177004724000234510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMEDSImplTest.hxx" #include #include #include #include #include #include "utilities.h" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_StudyManager.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" #include "SALOMEDSImpl_GenericAttribute.hxx" // ============================================================================ /*! * Set up the environment */ // ============================================================================ void SALOMEDSImplTest::setUp() { } // ============================================================================ /*! * - delete trace classes */ // ============================================================================ void SALOMEDSImplTest::tearDown() { } // ============================================================================ /*! * Check setting int value */ // ============================================================================ void SALOMEDSImplTest::testAttributeParameter() { SALOMEDSImpl_StudyManager* sm = new SALOMEDSImpl_StudyManager(); SALOMEDSImpl_Study* study = sm->NewStudy("Test"); SALOMEDSImpl_AttributeParameter* _ap = study->GetCommonParameters("TestComp", 0); CPPUNIT_ASSERT(_ap); _ap->SetInt("IntValue", 1); CPPUNIT_ASSERT(_ap->IsSet("IntValue", PT_INTEGER)); CPPUNIT_ASSERT(_ap->GetInt("IntValue") == 1); _ap->SetReal("RealValue", 1.2); CPPUNIT_ASSERT(_ap->IsSet("RealValue", PT_REAL)); CPPUNIT_ASSERT(_ap->GetReal("RealValue") == 1.2); _ap->SetString("StringValue", "hello"); CPPUNIT_ASSERT(_ap->IsSet("StringValue", PT_STRING)); CPPUNIT_ASSERT(_ap->GetString("StringValue") == "hello"); _ap->SetBool("BoolValue", 0); CPPUNIT_ASSERT(_ap->IsSet("BoolValue", PT_BOOLEAN)); CPPUNIT_ASSERT(!_ap->GetBool("BoolValue")); _ap->SetBool("BoolValue", 0); CPPUNIT_ASSERT(_ap->IsSet("BoolValue", PT_BOOLEAN)); CPPUNIT_ASSERT(!_ap->GetBool("BoolValue")); std::vector intArray; intArray.push_back(0); intArray.push_back(1); _ap->SetIntArray("IntArray", intArray); CPPUNIT_ASSERT(_ap->IsSet("IntArray", PT_INTARRAY)); CPPUNIT_ASSERT(_ap->GetIntArray("IntArray")[0] == 0); CPPUNIT_ASSERT(_ap->GetIntArray("IntArray")[1] == 1); std::vector realArray; realArray.push_back(0.0); realArray.push_back(1.1); _ap->SetRealArray("RealArray", realArray); CPPUNIT_ASSERT(_ap->IsSet("RealArray", PT_REALARRAY)); CPPUNIT_ASSERT(_ap->GetRealArray("RealArray")[0] == 0.0); CPPUNIT_ASSERT(_ap->GetRealArray("RealArray")[1] == 1.1); std::vector strArray; strArray.push_back("hello"); strArray.push_back("world"); _ap->SetStrArray("StrArray", strArray); CPPUNIT_ASSERT(_ap->IsSet("StrArray", PT_STRARRAY)); CPPUNIT_ASSERT(_ap->GetStrArray("StrArray")[0] == "hello"); CPPUNIT_ASSERT(_ap->GetStrArray("StrArray")[1] == "world"); } salome-kernel-6.5.0/src/SALOMEDSImpl/Test/SALOMEDSImplTest.hxx000077500000000000000000000024721177004724000234530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _SALOMEDSImplTEST_HXX_ #define _SALOMEDSImplTEST_HXX_ #include class SALOMEDSImplTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( SALOMEDSImplTest ); CPPUNIT_TEST( testAttributeParameter ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testAttributeParameter(); }; #endif salome-kernel-6.5.0/src/SALOMEDSImpl/Test/TestSALOMEDSImpl.cxx000077500000000000000000000023601177004724000234420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all SALOMEDSImpl Test from basics until the present directory // #include "SALOMEDSImplTest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMEDSImplTest ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/SALOMEDSImpl/Test/TestSALOMEDSImpl.py000077500000000000000000000030201177004724000232620ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = runSalome.get_config() runSalome.set_env(args, modules_list, modules_root_dir) # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # execute Unit Test command = ['TestSALOMEDSImpl'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/SALOMEDSImpl/testDS.cxx000077500000000000000000000244661177004724000210530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //File: testDS.cxx //Author: Sergey RUIN // #include #include #include #include #include "DF_Document.hxx" #include "DF_Attribute.hxx" #include "DF_Label.hxx" #include "DF_ChildIterator.hxx" #include "SALOMEDSImpl_Attributes.hxx" #include "SALOMEDSImpl_StudyManager.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_StudyBuilder.hxx" #include "SALOMEDSImpl_SObject.hxx" #include "SALOMEDSImpl_SComponent.hxx" #include "SALOMEDSImpl_AttributeParameter.hxx" #include "SALOMEDSImpl_UseCaseBuilder.hxx" #include "SALOMEDSImpl_UseCaseIterator.hxx" //#include "SALOMEDSImpl_.hxx" int main (int argc, char * argv[]) { std::cout << "Test started " << std::endl; SALOMEDSImpl_StudyManager* aSM = new SALOMEDSImpl_StudyManager(); std::cout << "Manager is created " << std::endl; SALOMEDSImpl_Study* aStudy = aSM->NewStudy("SRN"); std::cout << "Study with id = " << aStudy->StudyId() << " is created " << std::endl; std::cout << "Check the study lock, locking" << std::endl; aStudy->SetStudyLock("SRN"); std::cout << "Is study locked = " << aStudy->IsStudyLocked() << std::endl; std::vector ids = aStudy->GetLockerID(); for(int i = 0; iUnLockStudy("SRN"); std::cout << "Is study locked = " << aStudy->IsStudyLocked() << std::endl; SALOMEDSImpl_StudyBuilder* aBuilder = aStudy->NewBuilder(); std::cout << "StudyBuilder is created " << std::endl; SALOMEDSImpl_SComponent aSC = aBuilder->NewComponent("TEST"); std::cout << "New component with type " << aSC.ComponentDataType() << " is created " << std::endl; SALOMEDSImpl_SObject aSO = aBuilder->NewObject(aSC); std::cout << "New SObject with ID = " << aSO.GetID() << " is created" << std::endl; std::cout << "An entry of newly created SO is " << aSO.GetLabel().Entry() << std::endl; SALOMEDSImpl_AttributeIOR* aIORA = SALOMEDSImpl_AttributeIOR::Set(aSO.GetLabel(), "ior1234"); std::cout << "New AttributeIOR is created, it contains " << dynamic_cast(aIORA)->Value() << std::endl; std::cout << "Attribute has type: " << aIORA->Type() << " and value: " << aIORA->Save() << std::endl; std::cout << "Just another way to create an attribute: official one :) " << std::endl; std::cout << "Is SO null : " << aSO.IsNull()<< std::endl; DF_Attribute* aTDFAttr = aBuilder->FindOrCreateAttribute(aSO, "AttributeName"); SALOMEDSImpl_AttributeName* aRN = dynamic_cast(aTDFAttr); aRN->SetValue("name_attribute"); std::cout << " The type = " << aRN->Type() << std::endl; std::cout << "Attribute has type: " << aRN->Type() << " and value: " << aRN->Save() << std::endl; std::cout << "Check GetObjectPath: " << aStudy->GetObjectPath(aSO) << std::endl; SALOMEDSImpl_SObject aSubSO = aBuilder->NewObject(aSO); aTDFAttr = aBuilder->FindOrCreateAttribute(aSubSO, "AttributeIOR"); SALOMEDSImpl_AttributeIOR* aIOR2 = dynamic_cast(aTDFAttr); aIOR2->SetValue("some ior"); aBuilder->Addreference(aSubSO, aSO); SALOMEDSImpl_SObject aRefObject; aSubSO.ReferencedObject(aRefObject); std::cout << "Check reference : ReferencedObject is " << aRefObject.GetID() << std::endl; std::cout << "Check : Remove object: " << std::endl; aBuilder->RemoveObject(aSubSO); std::cout << "Remove: done" << std::endl; std::cout << "Try invalid attribute creation" << std::endl; aTDFAttr = aBuilder->FindOrCreateAttribute(aSubSO, "invalid type"); std::cout << "Address of created attribute : " << aTDFAttr << std::endl; std::cout << "Check AttributeUserID" << std::endl; aTDFAttr = aBuilder->FindOrCreateAttribute(aSubSO, "AttributeUserID"); if(aTDFAttr) { std::cout << "Attribute UserID was created succesfully : id = " << dynamic_cast(aTDFAttr)->Value() << std::endl; } else std::cout << "Can't create AttributeUserID" << std::endl; std::string id = "0e1c36e6-379b-4d90-ab3b-17a14310e648"; dynamic_cast(aTDFAttr)->SetValue(id); std::cout << "SetValue id = " << dynamic_cast(aTDFAttr)->Value() << std::endl; std::string id2 = "0e1c36e6-379b-4d90-ab3b-18a14310e648"; aTDFAttr = aBuilder->FindOrCreateAttribute(aSubSO, "AttributeUserID"+id2); if(aTDFAttr) { std::cout << "Attribute UserID was created succesfully : id = " << dynamic_cast(aTDFAttr)->Value() << std::endl; } else std::cout << "Can't create AttributeUserID" << std::endl; std::cout << "Check AttributeTreeNode " << std::endl; aTDFAttr = aBuilder->FindOrCreateAttribute(aSO, "AttributeTreeNode"); std::cout << dynamic_cast(aTDFAttr)->Type() << std::endl; std::cout << "Check AttributeTreeNode : done " << std::endl; aTDFAttr = aBuilder->FindOrCreateAttribute(aSO, "AttributeParameter"); std::cout << dynamic_cast(aTDFAttr)->Type() << std::endl; std::cout << "Check the attributes on SObject" << std::endl; std::vector aSeq = aSO.GetAllAttributes(); for(int i = 0; i < aSeq.size(); i++) std::cout << "Found: " << dynamic_cast(aSeq[i])->Type() << std::endl; std::cout << "Check UseCase" << std::endl; SALOMEDSImpl_UseCaseBuilder* ucb = aStudy->GetUseCaseBuilder(); ucb->AddUseCase("use_case1"); ucb->AddUseCase("use_case2"); SALOMEDSImpl_UseCaseIterator ucitr = ucb->GetUseCaseIterator(SALOMEDSImpl_SObject()); ucitr.Init(false); std::cout << "More? : " << ucitr.More() << std::endl; std::cout << "Check AttributeParameter " << std::endl; SALOMEDSImpl_AttributeParameter* AP = dynamic_cast(aTDFAttr); std::cout << "AttributeParameter with type : " << AP->Type() << std::endl; AP->SetInt("1", 123); std::cout << "IsSet for int: " << AP->IsSet("1", PT_INTEGER) << " value : " << AP->GetInt("1") << std::endl; //for(int i = 2; i < 5; i++) AP->SetInt(i, i*i); AP->SetReal("1", 123.123); std::cout << "IsSet for real: " << AP->IsSet("1", PT_REAL) << " value : " << AP->GetReal("1") << std::endl; //for(int i = 2; i < 5; i++) AP->SetReal(i, 0.1); AP->SetString("1", "value is 123.123!"); std::cout << "IsSet for string: " << AP->IsSet("1", PT_STRING) << " value : " << AP->GetString("1") << std::endl; /* for(int i = 2; i < 5; i++) { std::string s((double)(1.0/i)); std::cout << "Setting for " << i << " value : " << s << std::endl; AP->SetString(i, s); } */ AP->SetBool("1", true); std::cout << "IsSet for bool: " << AP->IsSet("1", PT_BOOLEAN) << " value : " << AP->GetBool("1") << std::endl; //for(int i = 2; i < 5; i++) AP->SetBool(i, 0); std::vector v; v.push_back(111.111); v.push_back(222.22222); v.push_back(333.3333333); AP->SetRealArray("1", v); std::cout << "IsSet for array: " << AP->IsSet("1", PT_REALARRAY); std::vector v2 = AP->GetRealArray("1"); std::cout.precision(10); std::cout << " values : "; for(int i = 0; iSetRealArray("2", v); std::vector vi; vi.push_back(1); vi.push_back(2); AP->SetIntArray("2", vi); std::vector vs; vs.push_back("hello, "); vs.push_back("world!"); AP->SetStrArray("3", vs); std::string as = AP->Save(); std::cout << "AS = " << as << std::endl; AP->Load(as); std::cout << "Restored string with id = 1 is: " << AP->GetString("1") << std::endl; std::cout << "Restored int with id = 2 is: " << AP->GetInt("1") << std::endl; std::cout << "Restored real with id = 3 is: " << AP->GetReal("1") << std::endl; std::cout << "Restored bool with id = 1 is: " << AP->GetBool("1") << std::endl; v2 = AP->GetRealArray("2"); std::cout << "Restored real array with id = 2 is: "; for(int i = 0; iGetIntArray("2"); std::cout << "Restored int array with id = 2 is: "; for(int i = 0; iGetStrArray("3"); std::cout << "Restored string array with id = 2 is: "; for(int i = 0; iRemoveID("1", PT_INTEGER); std::cout << "IsSet with id = 1, type = PT_INTEGER : " << AP->IsSet("1", PT_INTEGER) << std::endl; std::cout << "Check RemoveID is done" << std::endl; std::cout << "Check AttributeParameter : done" << std::endl; SALOMEDSImpl_SComponent tst = aBuilder->NewComponent("TEST2"); aSO = aBuilder->NewObject(tst); SALOMEDSImpl_SObject ss = aBuilder->NewObjectToTag(aSO, 3); aBuilder->NewObjectToTag(ss, 1); aBuilder->NewObjectToTag(ss, 3); SALOMEDSImpl_SObject ss2 = aBuilder->NewObjectToTag(aSO, 2); aBuilder->NewObjectToTag(ss, 2); SALOMEDSImpl_ChildIterator ci=aStudy->NewChildIterator(tst); for(ci.InitEx(true); ci.More(); ci.Next()) std::cout << "######## " << ci.Value().GetID() << std::endl; DF_ChildIterator dci(tst.GetLabel(), true); for(; dci.More(); dci.Next()) std::cout << "###### DF: " << dci.Value().Entry() << std::endl; std::cout << "Test finished " << std::endl; return 0; } salome-kernel-6.5.0/src/SALOMELocalTrace/000077500000000000000000000000001177004724000177635ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMELocalTrace/BaseTraceCollector.cxx000077500000000000000000000047261177004724000242230ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : BaseTraceCollector.cxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/BaseTraceCollector.cxx,v 1.6.30.2.12.1 2012-04-12 14:05:30 vsr Exp $ // #include #include #include #include #include "BaseTraceCollector.hxx" #include "LocalTraceBufferPool.hxx" // Class attributes initialisation, for class method BaseTraceCollector::run BaseTraceCollector* BaseTraceCollector::_singleton = 0; #ifndef WIN32 pthread_mutex_t BaseTraceCollector::_singletonMutex; #else pthread_mutex_t BaseTraceCollector::_singletonMutex = PTHREAD_MUTEX_INITIALIZER; #endif sem_t BaseTraceCollector::_sem; int BaseTraceCollector::_threadToClose = 0; pthread_t* BaseTraceCollector::_threadId = 0; // used to control single run // ============================================================================ /*! * Destructor: virtual, implemented in derived classes. * Wait until printing thread ends (BaseTraceCollector::run) */ // ============================================================================ BaseTraceCollector:: ~BaseTraceCollector() { } // ============================================================================ /*! * Constructor: no need of LocalTraceBufferPool object initialization here, * thread safe singleton used in LocalTraceBufferPool::instance() * See derived classes. */ // ============================================================================ BaseTraceCollector::BaseTraceCollector() { } salome-kernel-6.5.0/src/SALOMELocalTrace/BaseTraceCollector.hxx000077500000000000000000000034011177004724000242150ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : BaseTraceCollector.hxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/BaseTraceCollector.hxx,v 1.5.30.2.12.1 2012-04-12 14:05:30 vsr Exp $ // #ifndef _BASETRACECOLLECTOR_HXX_ #define _BASETRACECOLLECTOR_HXX_ #include "SALOME_LocalTrace.hxx" #include #include //! See derived Classes in SALOMELocalTrace for usage without CORBA, //! see derived Classes in SALOMETraceCollector for usage with CORBA. class SALOMELOCALTRACE_EXPORT BaseTraceCollector { public: virtual ~BaseTraceCollector(); protected: BaseTraceCollector(); static int _threadToClose; static BaseTraceCollector* _singleton; static pthread_mutex_t _singletonMutex; static pthread_t* _threadId; static sem_t _sem; }; #endif salome-kernel-6.5.0/src/SALOMELocalTrace/FileTraceCollector.cxx000077500000000000000000000160741177004724000242270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : FileTraceCollector.cxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/FileTraceCollector.cxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #include #include #include #include //#define _DEVDEBUG_ #include "FileTraceCollector.hxx" // Class attributes initialisation, for class method FileTraceCollector::run std::string FileTraceCollector::_fileName = ""; // ============================================================================ /*! * This class is for use without CORBA, inside or outside SALOME. * SALOME uses SALOMETraceCollector, to allow trace collection via CORBA. * Type of trace (and corresponding class) is choosen in LocalTraceBufferPool. * * Guarantees a unique object instance of the class (singleton thread safe) * a separate thread for loop to print traces is launched. */ // ============================================================================ BaseTraceCollector* FileTraceCollector::instance(const char *fileName) { if (_singleton == 0) // no need of lock when singleton already exists { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton == 0) // another thread may have got { // the lock after the first test DEVTRACE("FileTraceCollector:: instance()"); BaseTraceCollector* myInstance = new FileTraceCollector(); _fileName = fileName; DEVTRACE(" _fileName: " << _fileName); sem_init(&_sem,0,0); // to wait until run thread is initialized pthread_t traceThread; int bid = 0; pthread_create(&traceThread, NULL, FileTraceCollector::run, &bid); sem_wait(&_sem); _singleton = myInstance; // _singleton known only when init done DEVTRACE("FileTraceCollector:: instance()-end"); } ret = pthread_mutex_unlock(&_singletonMutex); // release lock } return _singleton; } // ============================================================================ /*! * In a separate thread, loop to print traces. * Mutex garantees intialisation on instance method is done and only one run * allowed (double check ...) * Loop until there is no more buffer to print, * and no ask for end from destructor. * Get a buffer. If type = ABORT then exit application with message. */ // ============================================================================ void* FileTraceCollector::run(void *bid) { //DEVTRACE("init run"); _threadId = new pthread_t; *_threadId = pthread_self(); sem_post(&_sem); // unlock instance LocalTraceBufferPool* myTraceBuffer = LocalTraceBufferPool::instance(); LocalTrace_TraceInfo myTrace; // --- opens a file with append mode // so, several processes can share the same file std::ofstream traceFile; const char *theFileName = _fileName.c_str(); DEVTRACE("try to open trace file "<< theFileName); traceFile.open(theFileName, std::ios::out | std::ios::app); if (!traceFile) { std::cerr << "impossible to open trace file "<< theFileName << std::endl; exit (1); } // --- Loop until there is no more buffer to print, // and no ask for end from destructor. DEVTRACE("Begin loop"); while ((!_threadToClose) || myTraceBuffer->toCollect() ) { if (_threadToClose) { DEVTRACE("FileTraceCollector _threadToClose"); //break; } myTraceBuffer->retrieve(myTrace); if (myTrace.traceType == ABORT_MESS) { #ifndef WIN32 traceFile << "INTERRUPTION from thread " << myTrace.threadId << " : " << myTrace.trace; #else traceFile << "INTERRUPTION from thread " << (void*)(&myTrace.threadId) << " : " << myTrace.trace; #endif traceFile.close(); std::cout << std::flush ; #ifndef WIN32 std::cerr << "INTERRUPTION from thread " << myTrace.threadId << " : " << myTrace.trace; #else std::cerr << "INTERRUPTION from thread " << (void*)(&myTrace.threadId) << " : " << myTrace.trace; #endif std::cerr << std::flush ; exit(1); } else { #ifndef WIN32 traceFile << "th. " << myTrace.threadId << " " << myTrace.trace; #else traceFile << "th. " << (void*)(&myTrace.threadId) << " " << myTrace.trace; #endif } } DEVTRACE("traceFile.close()"); traceFile.close(); DEVTRACE("traceFile.close()_end"); pthread_exit(NULL); } // ============================================================================ /*! * Destructor: wait until printing thread ends (FileTraceCollector::run) */ // ============================================================================ FileTraceCollector:: ~FileTraceCollector() { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton) { DEVTRACE("FileTraceCollector:: ~FileTraceCollector()"); LocalTraceBufferPool* myTraceBuffer = LocalTraceBufferPool::instance(); _threadToClose = 1; myTraceBuffer->insert(NORMAL_MESS,"end of trace\n"); // to wake up thread if (_threadId) { int ret = pthread_join(*_threadId, NULL); if (ret) std::cerr << "error close FileTraceCollector : "<< ret << std::endl; else DEVTRACE("FileTraceCollector destruction OK"); delete _threadId; _threadId = 0; _threadToClose = 0; } _singleton = 0; } ret = pthread_mutex_unlock(&_singletonMutex); // release lock } // ============================================================================ /*! * Constructor: no need of LocalTraceBufferPool object initialization here, * thread safe singleton used in LocalTraceBufferPool::instance() */ // ============================================================================ FileTraceCollector::FileTraceCollector() { _threadId=0; _threadToClose = 0; } salome-kernel-6.5.0/src/SALOMELocalTrace/FileTraceCollector.hxx000077500000000000000000000034511177004724000242270ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : FileTraceCollector.hxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/FileTraceCollector.hxx,v 1.5.30.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #ifndef _FILETRACECOLLECTOR_HXX_ #define _FILETRACECOLLECTOR_HXX_ #include "SALOME_LocalTrace.hxx" #include #include "LocalTraceBufferPool.hxx" #include "BaseTraceCollector.hxx" //! See also other derived Classes in SALOMELocalTrace for usage without CORBA, //! see also derived Classes in SALOMETraceCollector for usage with CORBA. class SALOMELOCALTRACE_EXPORT FileTraceCollector : public BaseTraceCollector { public: static BaseTraceCollector* instance(const char *fileName); static void *run(void *bid); ~FileTraceCollector(); protected: FileTraceCollector(); static std::string _fileName; }; #endif salome-kernel-6.5.0/src/SALOMELocalTrace/LocalTraceBufferPool.cxx000077500000000000000000000275161177004724000245220ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/LocalTraceBufferPool.cxx,v 1.12.2.2.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // Cf. C++ Users Journal, June 2004, Tracing Application Execution, Tomer Abramson // #include #include #include #include #include #ifndef WIN32 #include #else #include #endif //#define _DEVDEBUG_ #include "LocalTraceBufferPool.hxx" #include "BaseTraceCollector.hxx" #include "LocalTraceCollector.hxx" #include "FileTraceCollector.hxx" #include "utilities.h" // In case of truncated message, end of trace contains "...\n\0" #define TRUNCATED_MESSAGE "...\n" #define MAXMESS_LENGTH MAX_TRACE_LENGTH-5 // Class static attributes initialisation LocalTraceBufferPool* LocalTraceBufferPool::_singleton = 0; //#ifndef WIN32 //pthread_mutex_t LocalTraceBufferPool::_singletonMutex; //#else pthread_mutex_t LocalTraceBufferPool::_singletonMutex = PTHREAD_MUTEX_INITIALIZER; //#endif BaseTraceCollector *LocalTraceBufferPool::_myThreadTrace = 0; // ============================================================================ /*! * Guarantees a unique object instance of the class (singleton thread safe). * When the LocalTraceBufferPool instance is created, the trace collector is * also created (singleton). Type of trace collector to create depends on * environment variable "SALOME_trace": * - "local" implies standard err trace, LocalTraceCollector is launched. * - "file" implies trace in /tmp/tracetest.log * - "file:pathname" implies trace in file pathname * - anything else like "other" : try to load dynamically a library named * otherTraceCollector, and invoque C method instance() to start a singleton * instance of the trace collector. Example: with_loggerTraceCollector, for * CORBA Log. */ // ============================================================================ LocalTraceBufferPool* LocalTraceBufferPool::instance() { if (_singleton == 0) // no need of lock when singleton already exists { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton == 0) // another thread may have got { // the lock after the first test DEVTRACE("New buffer pool"); LocalTraceBufferPool* myInstance = new LocalTraceBufferPool(); new DESTRUCTOR_OF (*myInstance); _singleton = myInstance; // --- start a trace Collector char* traceKind = getenv("SALOME_trace"); if ( !traceKind || strcmp(traceKind,"local")==0 ) // mkr : 27.11.2006 : PAL13967 - Distributed supervision graphs - Problem with "SALOME_trace" { _myThreadTrace = LocalTraceCollector::instance(); } else if (strncmp(traceKind,"file",strlen("file"))==0) { const char *fileName; if (strlen(traceKind) > strlen("file")) fileName = &traceKind[strlen("file")+1]; else fileName = "/tmp/tracetest.log"; _myThreadTrace = FileTraceCollector::instance(fileName); } else // --- try a dynamic library { #ifndef WIN32 void* handle; std::string impl_name = std::string ("lib") + traceKind + std::string("TraceCollector.so"); handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ; #else HINSTANCE handle; std::string impl_name = std::string ("lib") + traceKind + std::string(".dll"); handle = LoadLibrary( impl_name.c_str() ); #endif if ( handle ) { typedef BaseTraceCollector * (*FACTORY_FUNCTION) (void); #ifndef WIN32 FACTORY_FUNCTION TraceCollectorFactory = (FACTORY_FUNCTION) dlsym(handle, "SingletonInstance"); #else FACTORY_FUNCTION TraceCollectorFactory = (FACTORY_FUNCTION)GetProcAddress(handle, "SingletonInstance"); #endif if ( !TraceCollectorFactory ) { std::cerr << "Can't resolve symbol: SingletonInstance" < #include #include "BaseTraceCollector.hxx" #include "BasicsGenericDestructor.hxx" #define ABORT_MESS 1 // for traceType field in struct LocalTrace_TraceInfo #define NORMAL_MESS 0 struct SALOMELOCALTRACE_EXPORT LocalTrace_TraceInfo { char trace[MAX_TRACE_LENGTH]; pthread_t threadId; int traceType; // normal or abort int position; // to check sequence }; class SALOMELOCALTRACE_EXPORT LocalTraceBufferPool : public PROTECTED_DELETE { public: static LocalTraceBufferPool* instance(); int insert(int traceType, const char* msg); int retrieve(LocalTrace_TraceInfo& aTrace); unsigned long toCollect(); protected: LocalTraceBufferPool(); virtual ~LocalTraceBufferPool(); unsigned long lockedIncrement(unsigned long& pos); private: static LocalTraceBufferPool* _singleton; static pthread_mutex_t _singletonMutex; static BaseTraceCollector *_myThreadTrace; LocalTrace_TraceInfo _myBuffer[TRACE_BUFFER_SIZE]; sem_t _freeBufferSemaphore; // to wait until there is a free buffer sem_t _fullBufferSemaphore; // to wait until there is a buffer to print pthread_mutex_t _incrementMutex; // to lock position variables for increment unsigned long _position; unsigned long _insertPos; unsigned long _retrievePos; }; #endif salome-kernel-6.5.0/src/SALOMELocalTrace/LocalTraceCollector.cxx000077500000000000000000000136351177004724000244020ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : LocalTraceCollector.cxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/LocalTraceCollector.cxx,v 1.10.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #include #include #include #include #include "LocalTraceCollector.hxx" // ============================================================================ /*! * This class is for use without CORBA, inside or outside SALOME. * SALOME uses SALOMETraceCollector, to allow trace collection via CORBA. * Type of trace (and corresponding class) is choosen in LocalTraceBufferPool. * * Guarantees a unique object instance of the class (singleton thread safe) * a separate thread for loop to print traces is launched. */ // ============================================================================ BaseTraceCollector* LocalTraceCollector::instance() { if (_singleton == 0) // no need of lock when singleton already exists { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton == 0) // another thread may have got { // the lock after the first test BaseTraceCollector* myInstance = new LocalTraceCollector(); sem_init(&_sem,0,0); // to wait until run thread is initialized pthread_t traceThread; pthread_create(&traceThread, NULL, LocalTraceCollector::run, NULL); sem_wait(&_sem); _singleton = myInstance; // _singleton known only when init done } ret = pthread_mutex_unlock(&_singletonMutex); // release lock } return _singleton; } // ============================================================================ /*! * In a separate thread, loop to print traces. * Mutex garantees intialisation on instance method is done and only one run * allowed (double check ...) * Loop until there is no more buffer to print, * and no ask for end from destructor. * Get a buffer. If type = ABORT then exit application with message. */ // ============================================================================ void* LocalTraceCollector::run(void *bid) { _threadId = new pthread_t; *_threadId = pthread_self(); sem_post(&_sem); // unlock instance LocalTraceBufferPool* myTraceBuffer = LocalTraceBufferPool::instance(); LocalTrace_TraceInfo myTrace; // --- Loop until there is no more buffer to print, // and no ask for end from destructor. while ((!_threadToClose) || myTraceBuffer->toCollect() ) { if (_threadToClose) { DEVTRACE("FileTraceCollector _threadToClose"); //break; } myTraceBuffer->retrieve(myTrace); if (myTrace.traceType == ABORT_MESS) { std::cout << std::flush ; #ifndef WIN32 std::cerr << "INTERRUPTION from thread " << myTrace.threadId << " : " << myTrace.trace; #else std::cerr << "INTERRUPTION from thread " << (void*)(&myTrace.threadId) << " : " << myTrace.trace; #endif std::cerr << std::flush ; exit(1); } else { std::cout << std::flush ; #ifndef WIN32 std::cerr << "th. " << myTrace.threadId << " " << myTrace.trace; #else std::cerr << "th. " << (void*)(&myTrace.threadId) << " " << myTrace.trace; #endif std::cerr << std::flush ; } } pthread_exit(NULL); return NULL; } // ============================================================================ /*! * Destructor: wait until printing thread ends (LocalTraceCollector::run) */ // ============================================================================ LocalTraceCollector:: ~LocalTraceCollector() { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton) { DEVTRACE("LocalTraceCollector:: ~LocalTraceCollector()"); LocalTraceBufferPool* myTraceBuffer = LocalTraceBufferPool::instance(); _threadToClose = 1; myTraceBuffer->insert(NORMAL_MESS,"end of trace\n"); // to wake up thread if (_threadId) { int ret = pthread_join(*_threadId, NULL); if (ret) std::cerr << "error close LocalTraceCollector : "<< ret << std::endl; else DEVTRACE("LocalTraceCollector destruction OK"); delete _threadId; _threadId = 0; _threadToClose = 0; } _singleton = 0; } ret = pthread_mutex_unlock(&_singletonMutex); // release lock } // ============================================================================ /*! * Constructor: no need of LocalTraceBufferPool object initialization here, * thread safe singleton used in LocalTraceBufferPool::instance() */ // ============================================================================ LocalTraceCollector::LocalTraceCollector() { _threadId=0; _threadToClose = 0; } salome-kernel-6.5.0/src/SALOMELocalTrace/LocalTraceCollector.hxx000077500000000000000000000033511177004724000244010ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : LocalTraceCollector.hxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/LocalTraceCollector.hxx,v 1.8.30.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #ifndef _LOCALTRACECOLLECTOR_HXX_ #define _LOCALTRACECOLLECTOR_HXX_ #include "SALOME_LocalTrace.hxx" #include "LocalTraceBufferPool.hxx" #include "BaseTraceCollector.hxx" //! See also other derived Classes in SALOMELocalTrace for usage without CORBA, //! see also derived Classes in SALOMETraceCollector for usage with CORBA. class SALOMELOCALTRACE_EXPORT LocalTraceCollector : public BaseTraceCollector { public: static BaseTraceCollector* instance(); static void *run(void *bid); ~LocalTraceCollector(); protected: LocalTraceCollector(); }; #endif salome-kernel-6.5.0/src/SALOMELocalTrace/Makefile.am000077500000000000000000000035451177004724000220310ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume BOULANT (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/Makefile.am,v 1.5.30.2.12.1 2012-04-12 14:05:31 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am salomeinclude_HEADERS = \ utilities.h \ LocalTraceBufferPool.hxx \ BaseTraceCollector.hxx \ SALOME_LocalTrace.hxx lib_LTLIBRARIES = libSALOMELocalTrace.la libSALOMELocalTrace_la_SOURCES = \ BaseTraceCollector.cxx \ BaseTraceCollector.hxx \ LocalTraceCollector.cxx \ LocalTraceCollector.hxx \ FileTraceCollector.cxx \ FileTraceCollector.hxx \ LocalTraceBufferPool.cxx \ LocalTraceBufferPool.hxx \ SALOME_LocalTrace.hxx libSALOMELocalTrace_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMELocalTrace_la_CPPFLAGS = -I$(srcdir)/../Basics libSALOMELocalTrace_la_LIBADD = ../Basics/libSALOMEBasics.la salome-kernel-6.5.0/src/SALOMELocalTrace/Makefile.in000077500000000000000000001034031177004724000220340ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/SALOMELocalTrace ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSALOMELocalTrace_la_DEPENDENCIES = ../Basics/libSALOMEBasics.la am_libSALOMELocalTrace_la_OBJECTS = \ libSALOMELocalTrace_la-BaseTraceCollector.lo \ libSALOMELocalTrace_la-LocalTraceCollector.lo \ libSALOMELocalTrace_la-FileTraceCollector.lo \ libSALOMELocalTrace_la-LocalTraceBufferPool.lo libSALOMELocalTrace_la_OBJECTS = $(am_libSALOMELocalTrace_la_OBJECTS) libSALOMELocalTrace_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libSALOMELocalTrace_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSALOMELocalTrace_la_SOURCES) DIST_SOURCES = $(libSALOMELocalTrace_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume BOULANT (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/Makefile.am,v 1.5.30.2.12.1 2012-04-12 14:05:31 vsr Exp $ # salomeinclude_HEADERS = \ utilities.h \ LocalTraceBufferPool.hxx \ BaseTraceCollector.hxx \ SALOME_LocalTrace.hxx lib_LTLIBRARIES = libSALOMELocalTrace.la libSALOMELocalTrace_la_SOURCES = \ BaseTraceCollector.cxx \ BaseTraceCollector.hxx \ LocalTraceCollector.cxx \ LocalTraceCollector.hxx \ FileTraceCollector.cxx \ FileTraceCollector.hxx \ LocalTraceBufferPool.cxx \ LocalTraceBufferPool.hxx \ SALOME_LocalTrace.hxx libSALOMELocalTrace_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMELocalTrace_la_CPPFLAGS = -I$(srcdir)/../Basics libSALOMELocalTrace_la_LIBADD = ../Basics/libSALOMEBasics.la all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMELocalTrace/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMELocalTrace/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSALOMELocalTrace.la: $(libSALOMELocalTrace_la_OBJECTS) $(libSALOMELocalTrace_la_DEPENDENCIES) $(libSALOMELocalTrace_la_LINK) -rpath $(libdir) $(libSALOMELocalTrace_la_OBJECTS) $(libSALOMELocalTrace_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMELocalTrace_la-BaseTraceCollector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMELocalTrace_la-FileTraceCollector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMELocalTrace_la-LocalTraceBufferPool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMELocalTrace_la-LocalTraceCollector.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSALOMELocalTrace_la-BaseTraceCollector.lo: BaseTraceCollector.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMELocalTrace_la-BaseTraceCollector.lo -MD -MP -MF $(DEPDIR)/libSALOMELocalTrace_la-BaseTraceCollector.Tpo -c -o libSALOMELocalTrace_la-BaseTraceCollector.lo `test -f 'BaseTraceCollector.cxx' || echo '$(srcdir)/'`BaseTraceCollector.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMELocalTrace_la-BaseTraceCollector.Tpo $(DEPDIR)/libSALOMELocalTrace_la-BaseTraceCollector.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BaseTraceCollector.cxx' object='libSALOMELocalTrace_la-BaseTraceCollector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMELocalTrace_la-BaseTraceCollector.lo `test -f 'BaseTraceCollector.cxx' || echo '$(srcdir)/'`BaseTraceCollector.cxx libSALOMELocalTrace_la-LocalTraceCollector.lo: LocalTraceCollector.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMELocalTrace_la-LocalTraceCollector.lo -MD -MP -MF $(DEPDIR)/libSALOMELocalTrace_la-LocalTraceCollector.Tpo -c -o libSALOMELocalTrace_la-LocalTraceCollector.lo `test -f 'LocalTraceCollector.cxx' || echo '$(srcdir)/'`LocalTraceCollector.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMELocalTrace_la-LocalTraceCollector.Tpo $(DEPDIR)/libSALOMELocalTrace_la-LocalTraceCollector.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LocalTraceCollector.cxx' object='libSALOMELocalTrace_la-LocalTraceCollector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMELocalTrace_la-LocalTraceCollector.lo `test -f 'LocalTraceCollector.cxx' || echo '$(srcdir)/'`LocalTraceCollector.cxx libSALOMELocalTrace_la-FileTraceCollector.lo: FileTraceCollector.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMELocalTrace_la-FileTraceCollector.lo -MD -MP -MF $(DEPDIR)/libSALOMELocalTrace_la-FileTraceCollector.Tpo -c -o libSALOMELocalTrace_la-FileTraceCollector.lo `test -f 'FileTraceCollector.cxx' || echo '$(srcdir)/'`FileTraceCollector.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMELocalTrace_la-FileTraceCollector.Tpo $(DEPDIR)/libSALOMELocalTrace_la-FileTraceCollector.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FileTraceCollector.cxx' object='libSALOMELocalTrace_la-FileTraceCollector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMELocalTrace_la-FileTraceCollector.lo `test -f 'FileTraceCollector.cxx' || echo '$(srcdir)/'`FileTraceCollector.cxx libSALOMELocalTrace_la-LocalTraceBufferPool.lo: LocalTraceBufferPool.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMELocalTrace_la-LocalTraceBufferPool.lo -MD -MP -MF $(DEPDIR)/libSALOMELocalTrace_la-LocalTraceBufferPool.Tpo -c -o libSALOMELocalTrace_la-LocalTraceBufferPool.lo `test -f 'LocalTraceBufferPool.cxx' || echo '$(srcdir)/'`LocalTraceBufferPool.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMELocalTrace_la-LocalTraceBufferPool.Tpo $(DEPDIR)/libSALOMELocalTrace_la-LocalTraceBufferPool.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LocalTraceBufferPool.cxx' object='libSALOMELocalTrace_la-LocalTraceBufferPool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTrace_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMELocalTrace_la-LocalTraceBufferPool.lo `test -f 'LocalTraceBufferPool.cxx' || echo '$(srcdir)/'`LocalTraceBufferPool.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMELocalTrace/SALOME_LocalTrace.hxx000077500000000000000000000025731177004724000235770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_LocalTrace.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOME_LOCALTRACE_HXX_ #define _SALOME_LOCALTRACE_HXX_ #ifdef WIN32 # if defined SALOMELOCALTRACE_EXPORTS || defined SALOMELocalTrace_EXPORTS # define SALOMELOCALTRACE_EXPORT __declspec( dllexport ) # else # define SALOMELOCALTRACE_EXPORT __declspec( dllimport ) # endif #else # define SALOMELOCALTRACE_EXPORT #endif #endif salome-kernel-6.5.0/src/SALOMELocalTrace/Test/000077500000000000000000000000001177004724000207025ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMELocalTrace/Test/Makefile.am000077500000000000000000000051571177004724000227510ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/Test/Makefile.am,v 1.5.2.1.18.2.12.1 2012-04-12 14:05:31 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # This directory defines the subdirectory src in the top source directory. SRCROOT=$(srcdir)/../.. # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMELocalTraceTest.hxx # Executable scripts to be installed dist_salomescript_PYTHON = TestSALOMELocalTrace.py # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMELocalTraceTest.la libSALOMELocalTraceTest_la_SOURCES = SALOMELocalTraceTest.cxx libSALOMELocalTraceTest_la_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(SRCROOT)/SALOMELocalTrace \ -I$(SRCROOT)/Basics libSALOMELocalTraceTest_la_LIBADD = \ @CPPUNIT_LIBS@ \ ../../SALOMELocalTrace/libSALOMELocalTrace.la # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestSALOMELocalTrace TestSALOMELocalTrace_SOURCES = TestSALOMELocalTrace.cxx TestSALOMELocalTrace_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(SRCROOT)/Basics/Test TestSALOMELocalTrace_LDADD = \ @CPPUNIT_LIBS@ \ libSALOMELocalTraceTest.la \ ../../SALOMELocalTrace/libSALOMELocalTrace.la \ ../../Basics/libSALOMEBasics.la salome-kernel-6.5.0/src/SALOMELocalTrace/Test/Makefile.in000077500000000000000000001113511177004724000227540ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestSALOMELocalTrace$(EXEEXT) subdir = src/SALOMELocalTrace/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSALOMELocalTraceTest_la_DEPENDENCIES = \ ../../SALOMELocalTrace/libSALOMELocalTrace.la am_libSALOMELocalTraceTest_la_OBJECTS = \ libSALOMELocalTraceTest_la-SALOMELocalTraceTest.lo libSALOMELocalTraceTest_la_OBJECTS = \ $(am_libSALOMELocalTraceTest_la_OBJECTS) PROGRAMS = $(bin_PROGRAMS) am_TestSALOMELocalTrace_OBJECTS = \ TestSALOMELocalTrace-TestSALOMELocalTrace.$(OBJEXT) TestSALOMELocalTrace_OBJECTS = $(am_TestSALOMELocalTrace_OBJECTS) TestSALOMELocalTrace_DEPENDENCIES = libSALOMELocalTraceTest.la \ ../../SALOMELocalTrace/libSALOMELocalTrace.la \ ../../Basics/libSALOMEBasics.la DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSALOMELocalTraceTest_la_SOURCES) \ $(TestSALOMELocalTrace_SOURCES) DIST_SOURCES = $(libSALOMELocalTraceTest_la_SOURCES) \ $(TestSALOMELocalTrace_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/Test/Makefile.am,v 1.5.2.1.18.2.12.1 2012-04-12 14:05:31 vsr Exp $ # # This directory defines the subdirectory src in the top source directory. SRCROOT = $(srcdir)/../.. # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMELocalTraceTest.hxx # Executable scripts to be installed dist_salomescript_PYTHON = TestSALOMELocalTrace.py # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMELocalTraceTest.la libSALOMELocalTraceTest_la_SOURCES = SALOMELocalTraceTest.cxx libSALOMELocalTraceTest_la_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(SRCROOT)/SALOMELocalTrace \ -I$(SRCROOT)/Basics libSALOMELocalTraceTest_la_LIBADD = \ @CPPUNIT_LIBS@ \ ../../SALOMELocalTrace/libSALOMELocalTrace.la TestSALOMELocalTrace_SOURCES = TestSALOMELocalTrace.cxx TestSALOMELocalTrace_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(SRCROOT)/Basics/Test TestSALOMELocalTrace_LDADD = \ @CPPUNIT_LIBS@ \ libSALOMELocalTraceTest.la \ ../../SALOMELocalTrace/libSALOMELocalTrace.la \ ../../Basics/libSALOMEBasics.la all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMELocalTrace/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMELocalTrace/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSALOMELocalTraceTest.la: $(libSALOMELocalTraceTest_la_OBJECTS) $(libSALOMELocalTraceTest_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libSALOMELocalTraceTest_la_OBJECTS) $(libSALOMELocalTraceTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestSALOMELocalTrace$(EXEEXT): $(TestSALOMELocalTrace_OBJECTS) $(TestSALOMELocalTrace_DEPENDENCIES) @rm -f TestSALOMELocalTrace$(EXEEXT) $(CXXLINK) $(TestSALOMELocalTrace_OBJECTS) $(TestSALOMELocalTrace_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMELocalTraceTest_la-SALOMELocalTraceTest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSALOMELocalTraceTest_la-SALOMELocalTraceTest.lo: SALOMELocalTraceTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTraceTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMELocalTraceTest_la-SALOMELocalTraceTest.lo -MD -MP -MF $(DEPDIR)/libSALOMELocalTraceTest_la-SALOMELocalTraceTest.Tpo -c -o libSALOMELocalTraceTest_la-SALOMELocalTraceTest.lo `test -f 'SALOMELocalTraceTest.cxx' || echo '$(srcdir)/'`SALOMELocalTraceTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMELocalTraceTest_la-SALOMELocalTraceTest.Tpo $(DEPDIR)/libSALOMELocalTraceTest_la-SALOMELocalTraceTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMELocalTraceTest.cxx' object='libSALOMELocalTraceTest_la-SALOMELocalTraceTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMELocalTraceTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMELocalTraceTest_la-SALOMELocalTraceTest.lo `test -f 'SALOMELocalTraceTest.cxx' || echo '$(srcdir)/'`SALOMELocalTraceTest.cxx TestSALOMELocalTrace-TestSALOMELocalTrace.o: TestSALOMELocalTrace.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMELocalTrace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMELocalTrace-TestSALOMELocalTrace.o -MD -MP -MF $(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Tpo -c -o TestSALOMELocalTrace-TestSALOMELocalTrace.o `test -f 'TestSALOMELocalTrace.cxx' || echo '$(srcdir)/'`TestSALOMELocalTrace.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Tpo $(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMELocalTrace.cxx' object='TestSALOMELocalTrace-TestSALOMELocalTrace.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMELocalTrace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMELocalTrace-TestSALOMELocalTrace.o `test -f 'TestSALOMELocalTrace.cxx' || echo '$(srcdir)/'`TestSALOMELocalTrace.cxx TestSALOMELocalTrace-TestSALOMELocalTrace.obj: TestSALOMELocalTrace.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMELocalTrace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMELocalTrace-TestSALOMELocalTrace.obj -MD -MP -MF $(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Tpo -c -o TestSALOMELocalTrace-TestSALOMELocalTrace.obj `if test -f 'TestSALOMELocalTrace.cxx'; then $(CYGPATH_W) 'TestSALOMELocalTrace.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMELocalTrace.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Tpo $(DEPDIR)/TestSALOMELocalTrace-TestSALOMELocalTrace.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMELocalTrace.cxx' object='TestSALOMELocalTrace-TestSALOMELocalTrace.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMELocalTrace_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMELocalTrace-TestSALOMELocalTrace.obj `if test -f 'TestSALOMELocalTrace.cxx'; then $(CYGPATH_W) 'TestSALOMELocalTrace.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMELocalTrace.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMELocalTrace/Test/SALOMELocalTraceTest.cxx000077500000000000000000000124721177004724000252110ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMELocalTraceTest.hxx" #include #include #include #include #include "LocalTraceBufferPool.hxx" #include "utilities.h" // ============================================================================ /*! * */ // ============================================================================ void SALOMELocalTraceTest::setUp() { } // ============================================================================ /*! * */ // ============================================================================ void SALOMELocalTraceTest::tearDown() { } #define TRACEFILE "/tmp/traceUnitTest.log" // ============================================================================ /*! * Open and close a trace on a file, test singleton */ // ============================================================================ void SALOMELocalTraceTest::testSingletonBufferPool() { // --- trace on file const char *theFileName = TRACEFILE; std::string s = "file:"; s += theFileName; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite std::ofstream traceFile; traceFile.open(theFileName, std::ios::out | std::ios::app); CPPUNIT_ASSERT(traceFile); // file created empty, then closed traceFile.close(); LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); LocalTraceBufferPool* bp2 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1 == bp2); bp1->deleteInstance(bp1); } #define NUM_THREADS 2 #define NUM_MESSAGES 5 void *PrintHello(void *threadid); // ============================================================================ /*! * open a trace on console, multithread writing on file, close */ // ============================================================================ void SALOMELocalTraceTest::testLoadBufferPoolLocal() { std::string s = "local"; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite // --- numThread thread creation for trace generation. int numThread = 2; pthread_t threads[numThread]; int rc, t; for(t=0;tdeleteInstance(bp1); } // ============================================================================ /*! * open a trace on a file, multithread writing on file, close */ // ============================================================================ void SALOMELocalTraceTest::testLoadBufferPoolFile() { const char *theFileName = TRACEFILE; std::string s = "file:"; s += theFileName; //s = "local"; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite std::ofstream traceFile; traceFile.open(theFileName, std::ios::out | std::ios::trunc); CPPUNIT_ASSERT(traceFile); // file created empty, then closed traceFile.close(); // --- NUM_THREADS thread creation for trace generation. pthread_t threads[NUM_THREADS]; int rc, t; for(t=0;tdeleteInstance(bp1); } // ============================================================================ /*! * NUM_THREAD are created with function PrintHello, * which produces NUM_MESSAGES traces. */ // ============================================================================ void *PrintHello(void *threadid) { #if defined(_DEBUG_) || defined(_DEBUG) long id_thread = (long)threadid; for (int i=0; i class SALOMELocalTraceTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( SALOMELocalTraceTest ); CPPUNIT_TEST( testSingletonBufferPool ); CPPUNIT_TEST( testLoadBufferPoolLocal ); CPPUNIT_TEST( testLoadBufferPoolFile ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testSingletonBufferPool(); void testLoadBufferPoolLocal(); void testLoadBufferPoolFile(); }; #endif salome-kernel-6.5.0/src/SALOMELocalTrace/Test/TestSALOMELocalTrace.cxx000077500000000000000000000023601177004724000252040ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all Unit Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMELocalTraceTest ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/SALOMELocalTrace/Test/TestSALOMELocalTrace.py000077500000000000000000000025361177004724000250370ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import setenv # get SALOME environment : # here we need KERNEL_ROOT_DIR, PATH, LD_LIBRARY_PATH args, modules_list, modules_root_dir = setenv.get_config() setenv.set_env(args, modules_list, modules_root_dir) # execute Unit Test command = ['TestSALOMELocalTrace'] ret = os.spawnvp(os.P_WAIT, command[0], command) # no process to kill salome-kernel-6.5.0/src/SALOMELocalTrace/utilities.h000077500000000000000000000126211177004724000221540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : utilities.h // Author : Antoine YESSAYAN, Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMELocalTrace/utilities.h,v 1.8.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // /* --- Definition macros file to print informations if _DEBUG_ is defined --- */ #ifndef UTILITIES_H #define UTILITIES_H #include #include #include #include "LocalTraceBufferPool.hxx" /*! * For each message to put in the trace, a specific ostingstream object is * created and destroyed automatically at the end of the message macro. * The insert function of LocalTraceBufferPool class gets a buffer in a * buffer pool (unique with the help of mutexes and semaphores) and copy the * message in the buffer. * This buffer is read later by a specific thread in charge of trace print. * Order of trace entries is globally respected. Nevertheless, if there are * several threads waiting for a free buffer to trace, the order of * thread waken up is not garanteed (no fifo or priority rules in Linux Kernel) */ #define MESS_INIT(deb) std::ostringstream os; os<insert(NORMAL_MESS, os.str().c_str()); #define MESS_ABORT std::endl; LocalTraceBufferPool::instance()->insert(ABORT_MESS, os.str().c_str()); // Macroses for messages with separated structure in c++ file in _DUBUG mode #define MESSAGE_BEGIN(msg) {std::ostringstream ss; ss <<__FILE__ <<" ["<<__LINE__<<"] : "<< msg; LocalTraceBufferPool::instance()->insert(NORMAL_MESS, ss.str().c_str());} #define MESSAGE_ADD(msg) {std::ostringstream ss; ss << msg; LocalTraceBufferPool::instance()->insert(NORMAL_MESS, ss.str().c_str());} #define MESSAGE_END(msg) {std::ostringstream ss; ss << msg << std::endl; LocalTraceBufferPool::instance()->insert(NORMAL_MESS, ss.str().c_str());} // --- Some macros are always defined (without _DEBUG_): for use with release version #define INFOS(msg) {MESS_BEGIN("- Trace ") << msg << MESS_END} #define PYSCRIPT(msg) {MESS_INIT("---PYSCRIPT--- ") << msg << MESS_END} #define INTERRUPTION(msg) {MESS_BEGIN("- INTERRUPTION: ")<< msg << MESS_ABORT} #ifdef WIN32 #define IMMEDIATE_ABORT(code) {std::cout < #include #include #include #include #include #include "SALOMETraceCollector.hxx" #include "TraceCollector_WaitForServerReadiness.hxx" #include #include CORBA_CLIENT_HEADER(Logger) // Class attributes initialisation, for class method SALOMETraceCollector::run CORBA::ORB_ptr SALOMETraceCollector::_orb = 0; // ============================================================================ /*! * This class is for use with CORBA, inside SALOME. * Type of trace (and corresponding class) is choosen in LocalTraceBufferPool. * * Guarantees a unique object instance of the class (singleton thread safe) * a separate thread for loop to print traces is launched. */ // ============================================================================ BaseTraceCollector* SALOMETraceCollector::instance() { if (_singleton == 0) // no need of lock when singleton already exists { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton == 0) // another thread may have got { // the lock after the first test BaseTraceCollector* myInstance = new SALOMETraceCollector(); int argc=0; char *_argv=0; char ** argv = &_argv; _orb = CORBA::ORB_init (argc, argv); sem_init(&_sem,0,0); // to wait until run thread is initialized pthread_t traceThread; int bid = 0; pthread_create(&traceThread, NULL, SALOMETraceCollector::run, &bid); sem_wait(&_sem); _singleton = myInstance; // _singleton known only when init done } ret = pthread_mutex_unlock(&_singletonMutex); // release lock } return _singleton; } // ============================================================================ /*! * In a separate thread, loop to print traces. * Mutex garantees intialisation on instance method is done and only one run * allowed (double check ...) * Loop until there is no more buffer to print, * and no ask for end from destructor. * Get a buffer. If type = ABORT then exit application with message. */ // ============================================================================ void* SALOMETraceCollector::run(void *bid) { _threadId = new pthread_t; *_threadId = pthread_self(); sem_post(&_sem); // unlock instance LocalTraceBufferPool* myTraceBuffer = LocalTraceBufferPool::instance(); LocalTrace_TraceInfo myTrace; SALOME_Logger::Logger_var m_pInterfaceLogger; CORBA::Object_var obj; obj = TraceCollector_WaitForServerReadiness(_orb,"Logger"); if (!CORBA::is_nil(obj)) m_pInterfaceLogger = SALOME_Logger::Logger::_narrow(obj); if (CORBA::is_nil(m_pInterfaceLogger)) { std::cerr << "Logger server not found ! Abort" << std::endl; std::cerr << std::flush ; exit(1); } else { CORBA::String_var LogMsg = CORBA::string_dup("\n---Init logger trace---\n"); m_pInterfaceLogger->putMessage(LogMsg); DEVTRACE("Logger server found"); } // --- Loop until there is no more buffer to print, // and no ask for end from destructor. while ((!_threadToClose) || myTraceBuffer->toCollect() ) { if (_threadToClose) { DEVTRACE("SALOMETraceCollector _threadToClose"); //break; } myTraceBuffer->retrieve(myTrace); if (!CORBA::is_nil(_orb)) { if (myTrace.traceType == ABORT_MESS) { std::stringstream abortMessage(""); #ifndef WIN32 abortMessage << "INTERRUPTION from thread " << myTrace.threadId << " : " << myTrace.trace; #else abortMessage << "INTERRUPTION from thread " << (void*)&myTrace.threadId << " : " << myTrace.trace; #endif CORBA::String_var LogMsg = CORBA::string_dup(abortMessage.str().c_str()); m_pInterfaceLogger->putMessage(LogMsg); exit(1); } else { std::stringstream aMessage(""); #ifndef WIN32 aMessage << "th. " << myTrace.threadId #else aMessage << "th. " << (void*)&myTrace.threadId #endif << " " << myTrace.trace; CORBA::String_var LogMsg = CORBA::string_dup(aMessage.str().c_str()); m_pInterfaceLogger->putMessage(LogMsg); } } } pthread_exit(NULL); return NULL; } // ============================================================================ /*! * Destructor: wait until printing thread ends (SALOMETraceCollector::run) */ // ============================================================================ SALOMETraceCollector:: ~SALOMETraceCollector() { int ret; ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone if (_singleton) { DEVTRACE("SALOMETraceCollector:: ~SALOMETraceCollector()"); LocalTraceBufferPool* myTraceBuffer = LocalTraceBufferPool::instance(); _threadToClose = 1; myTraceBuffer->insert(NORMAL_MESS,"end of trace\n"); // to wake up thread if (_threadId) { int ret = pthread_join(*_threadId, NULL); if (ret) std::cerr << "error close SALOMETraceCollector : "<< ret << std::endl; else DEVTRACE("SALOMETraceCollector destruction OK"); delete _threadId; _threadId = 0; _threadToClose = 0; } _singleton = 0; } ret = pthread_mutex_unlock(&_singletonMutex); // release lock } // ============================================================================ /*! * Constructor: no need of LocalTraceBufferPool object initialization here, * thread safe singleton used in LocalTraceBufferPool::instance() */ // ============================================================================ SALOMETraceCollector::SALOMETraceCollector() { _threadId=0; _threadToClose = 0; } // ============================================================================ /*! * */ // ============================================================================ extern "C" { SALOMETRACECOLLECTOR_EXPORT BaseTraceCollector *SingletonInstance(void) { BaseTraceCollector *instance = SALOMETraceCollector::instance(); return instance; } } salome-kernel-6.5.0/src/SALOMETraceCollector/SALOMETraceCollector.hxx000077500000000000000000000037721177004724000252320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMETraceCollector.hxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMETraceCollector/SALOMETraceCollector.hxx,v 1.7.2.1.20.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #ifndef _SALOMETRACECOLLECTOR_HXX_ #define _SALOMETRACECOLLECTOR_HXX_ #include #include #include "BaseTraceCollector.hxx" #include "LocalTraceBufferPool.hxx" //! See LocalTraceCollector instead of SALOMETraceCollector, //! for usage without CORBA #ifdef WIN32 # if defined SALOMETRACECOLLECTOR_EXPORTS || defined with_loggerTraceCollector_EXPORTS # define SALOMETRACECOLLECTOR_EXPORT __declspec( dllexport ) # else # define SALOMETRACECOLLECTOR_EXPORT # endif #else # define SALOMETRACECOLLECTOR_EXPORT #endif class SALOMETRACECOLLECTOR_EXPORT SALOMETraceCollector: public BaseTraceCollector { public: static BaseTraceCollector* instance(); static void *run(void *bid); ~SALOMETraceCollector(); protected: SALOMETraceCollector(); private: static CORBA::ORB_ptr _orb; }; #endif salome-kernel-6.5.0/src/SALOMETraceCollector/Test/000077500000000000000000000000001177004724000215765ustar00rootroot00000000000000salome-kernel-6.5.0/src/SALOMETraceCollector/Test/Makefile.am000077500000000000000000000064371177004724000236470ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ####################################### library # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMETraceCollector/Test/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:31 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= SALOMETraceCollectorTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestSALOMETraceCollector.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test\ -I$(srcdir)/$(RPATH)/SALOMETraceCollector # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ @CPPUNIT_LIBS@ \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/Basics/libSALOMEBasics.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMETraceCollectorTest.la libSALOMETraceCollectorTest_la_SOURCES = SALOMETraceCollectorTest.cxx libSALOMETraceCollectorTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSALOMETraceCollectorTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMETraceCollectorTest_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestSALOMETraceCollector TestSALOMETraceCollector_SOURCES = TestSALOMETraceCollector.cxx TestSALOMETraceCollector_CPPFLAGS = $(COMMON_CPPFLAGS) TestSALOMETraceCollector_LDADD = libSALOMETraceCollectorTest.la $(COMMON_LIBS) salome-kernel-6.5.0/src/SALOMETraceCollector/Test/Makefile.in000077500000000000000000001142221177004724000236500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestSALOMETraceCollector$(EXEEXT) subdir = src/SALOMETraceCollector/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/Basics/libSALOMEBasics.la libSALOMETraceCollectorTest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libSALOMETraceCollectorTest_la_OBJECTS = \ libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.lo libSALOMETraceCollectorTest_la_OBJECTS = \ $(am_libSALOMETraceCollectorTest_la_OBJECTS) libSALOMETraceCollectorTest_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(libSALOMETraceCollectorTest_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_TestSALOMETraceCollector_OBJECTS = \ TestSALOMETraceCollector-TestSALOMETraceCollector.$(OBJEXT) TestSALOMETraceCollector_OBJECTS = \ $(am_TestSALOMETraceCollector_OBJECTS) TestSALOMETraceCollector_DEPENDENCIES = \ libSALOMETraceCollectorTest.la $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSALOMETraceCollectorTest_la_SOURCES) \ $(TestSALOMETraceCollector_SOURCES) DIST_SOURCES = $(libSALOMETraceCollectorTest_la_SOURCES) \ $(TestSALOMETraceCollector_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules ####################################### library # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMETraceCollector/Test/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:31 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMETraceCollectorTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestSALOMETraceCollector.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test\ -I$(srcdir)/$(RPATH)/SALOMETraceCollector # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ @CPPUNIT_LIBS@ \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/Basics/libSALOMEBasics.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSALOMETraceCollectorTest.la libSALOMETraceCollectorTest_la_SOURCES = SALOMETraceCollectorTest.cxx libSALOMETraceCollectorTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSALOMETraceCollectorTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSALOMETraceCollectorTest_la_LIBADD = $(COMMON_LIBS) TestSALOMETraceCollector_SOURCES = TestSALOMETraceCollector.cxx TestSALOMETraceCollector_CPPFLAGS = $(COMMON_CPPFLAGS) TestSALOMETraceCollector_LDADD = libSALOMETraceCollectorTest.la $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/SALOMETraceCollector/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/SALOMETraceCollector/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSALOMETraceCollectorTest.la: $(libSALOMETraceCollectorTest_la_OBJECTS) $(libSALOMETraceCollectorTest_la_DEPENDENCIES) $(libSALOMETraceCollectorTest_la_LINK) -rpath $(libdir) $(libSALOMETraceCollectorTest_la_OBJECTS) $(libSALOMETraceCollectorTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestSALOMETraceCollector$(EXEEXT): $(TestSALOMETraceCollector_OBJECTS) $(TestSALOMETraceCollector_DEPENDENCIES) @rm -f TestSALOMETraceCollector$(EXEEXT) $(CXXLINK) $(TestSALOMETraceCollector_OBJECTS) $(TestSALOMETraceCollector_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.lo: SALOMETraceCollectorTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMETraceCollectorTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.lo -MD -MP -MF $(DEPDIR)/libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.Tpo -c -o libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.lo `test -f 'SALOMETraceCollectorTest.cxx' || echo '$(srcdir)/'`SALOMETraceCollectorTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.Tpo $(DEPDIR)/libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMETraceCollectorTest.cxx' object='libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSALOMETraceCollectorTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSALOMETraceCollectorTest_la-SALOMETraceCollectorTest.lo `test -f 'SALOMETraceCollectorTest.cxx' || echo '$(srcdir)/'`SALOMETraceCollectorTest.cxx TestSALOMETraceCollector-TestSALOMETraceCollector.o: TestSALOMETraceCollector.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMETraceCollector_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMETraceCollector-TestSALOMETraceCollector.o -MD -MP -MF $(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Tpo -c -o TestSALOMETraceCollector-TestSALOMETraceCollector.o `test -f 'TestSALOMETraceCollector.cxx' || echo '$(srcdir)/'`TestSALOMETraceCollector.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Tpo $(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMETraceCollector.cxx' object='TestSALOMETraceCollector-TestSALOMETraceCollector.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMETraceCollector_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMETraceCollector-TestSALOMETraceCollector.o `test -f 'TestSALOMETraceCollector.cxx' || echo '$(srcdir)/'`TestSALOMETraceCollector.cxx TestSALOMETraceCollector-TestSALOMETraceCollector.obj: TestSALOMETraceCollector.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMETraceCollector_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSALOMETraceCollector-TestSALOMETraceCollector.obj -MD -MP -MF $(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Tpo -c -o TestSALOMETraceCollector-TestSALOMETraceCollector.obj `if test -f 'TestSALOMETraceCollector.cxx'; then $(CYGPATH_W) 'TestSALOMETraceCollector.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMETraceCollector.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Tpo $(DEPDIR)/TestSALOMETraceCollector-TestSALOMETraceCollector.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestSALOMETraceCollector.cxx' object='TestSALOMETraceCollector-TestSALOMETraceCollector.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestSALOMETraceCollector_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSALOMETraceCollector-TestSALOMETraceCollector.obj `if test -f 'TestSALOMETraceCollector.cxx'; then $(CYGPATH_W) 'TestSALOMETraceCollector.cxx'; else $(CYGPATH_W) '$(srcdir)/TestSALOMETraceCollector.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/SALOMETraceCollector/Test/SALOMETraceCollectorTest.cxx000077500000000000000000000063121177004724000267750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "SALOMETraceCollectorTest.hxx" #include #include #include #include #include "LocalTraceBufferPool.hxx" #include "utilities.h" // ============================================================================ /*! * */ // ============================================================================ void SALOMETraceCollectorTest::setUp() { } // ============================================================================ /*! * */ // ============================================================================ void SALOMETraceCollectorTest::tearDown() { } #define NUM_THREADS 20 #define NUM_MESSAGES 20 void *PrintHello(void *threadid); // ============================================================================ /*! * open a trace on a CORBA, multithread writing on file, close */ // ============================================================================ void SALOMETraceCollectorTest::testLoadBufferPoolCORBA() { std::string s = "with_logger"; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite // --- NUM_THREADS thread creation for trace generation. pthread_t threads[NUM_THREADS]; int rc, t; for(t=0;tdeleteInstance(bp1); } // ============================================================================ /*! * NUM_THREAD are created with function PrintHello, * which produces NUM_MESSAGES traces. */ // ============================================================================ void *PrintHello(void *threadid) { #if defined(_DEBUG_) || defined(_DEBUG) long id_thread = (long)threadid; for (int i=0; i class SALOMETraceCollectorTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( SALOMETraceCollectorTest ); CPPUNIT_TEST( testLoadBufferPoolCORBA ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testLoadBufferPoolCORBA(); }; #endif salome-kernel-6.5.0/src/SALOMETraceCollector/Test/TestSALOMETraceCollector.cxx000077500000000000000000000025251177004724000267770ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all Unit Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" #include "SALOMETraceCollectorTest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMELocalTraceTest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMETraceCollectorTest ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/SALOMETraceCollector/Test/TestSALOMETraceCollector.py000077500000000000000000000030301177004724000266150ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = runSalome.get_config() runSalome.set_env(args, modules_list, modules_root_dir) # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # execute Unit Test command = ['TestSALOMETraceCollector'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/SALOMETraceCollector/TraceCollector_WaitForServerReadiness.cxx000077500000000000000000000116001177004724000307710ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : TraceCollector_WaitForServerReadiness.cxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMETraceCollector/TraceCollector_WaitForServerReadiness.cxx,v 1.5.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #include "TraceCollector_WaitForServerReadiness.hxx" #include #include #ifdef WIN32 #include #endif // ============================================================================ /*! * Wait until a server is registered in naming service. * \param serverName name of the server to find. * When SALOME_NamingService is available, * use NamingService_WaitForServerReadiness instead. * This function is needed when macro MESSAGE used by SALOME_NamingService * is not available (inside LocalTrace methods, for instance !). * Direct access to CORBA Name Service. Look for serverName at Name service * Root without extensions. */ // ============================================================================ CORBA::Object_ptr TraceCollector_WaitForServerReadiness(CORBA::ORB_ptr orb, std::string serverName) { long TIMESleep = 500000000; int NumberOfTries = 40; timespec ts_req; ts_req.tv_nsec=TIMESleep; ts_req.tv_sec=0; timespec ts_rem; ts_rem.tv_nsec=0; ts_rem.tv_sec=0; CORBA::Object_var obj; try { // NB. You can't use SALOME_NamingService class because // it uses MESSAGE macro // Otherwise, you will get segmentation fault. CosNaming::NamingContext_var inc; CosNaming::Name name; name.length(1); name[0].id = CORBA::string_dup(serverName.c_str()); CORBA::Object_var theObj=CORBA::Object::_nil(); for (int itry=0; itry < NumberOfTries; itry++) { try { if(!CORBA::is_nil(orb)) theObj = orb->resolve_initial_references("NameService"); if (!CORBA::is_nil(theObj)) inc = CosNaming::NamingContext::_narrow(theObj); } catch( CORBA::SystemException& ) { std::cout << "TraceCollector_WaitForServerReadiness: " << "CORBA::SystemException: " << "Unable to contact the Naming Service" << std::endl; } catch(...) { std::cout << "TraceCollector_WaitForServerReadiness: " << "Unknown exception dealing with Naming Service" << std::endl; } obj=CORBA::Object::_nil(); if(!CORBA::is_nil(inc)) { try { obj = inc->resolve(name); if (!CORBA::is_nil(obj)) { //cout << "TraceCollector_WaitForServerReadiness: " // << serverName << " found in CORBA Name Service" << endl; break; } } catch (const CosNaming::NamingContext::NotFound&) { std::cout << "Caught exception: Naming Service can't found Logger"; } } #ifndef WIN32 nanosleep(&ts_req,&ts_rem); #else Sleep(TIMESleep / 1000000); #endif std::cout << "TraceCollector_WaitForServerReadiness: retry look for" << serverName << std::endl; } } catch (const CosNaming::NamingContext::NotFound&) { std::cout << "Caught exception: Naming Service can't found Logger"; } catch (CORBA::COMM_FAILURE&) { std::cout << "Caught CORBA::SystemException CommFailure."; } catch (CORBA::SystemException&) { std::cout << "Caught CORBA::SystemException."; } catch (CORBA::Exception&) { std::cout << "Caught CORBA::Exception."; } catch (...) { std::cout << "Caught unknown exception."; } return obj._retn(); } salome-kernel-6.5.0/src/SALOMETraceCollector/TraceCollector_WaitForServerReadiness.hxx000077500000000000000000000030701177004724000310000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : LocalTrace_WaitForServerReadiness.hxx // Author : Paul RASCLE (EDF) // Module : KERNEL // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/SALOMETraceCollector/TraceCollector_WaitForServerReadiness.hxx,v 1.4.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #ifndef _TRACECOLLECTOR_WAITFORSERVERREADINESS_HXX_ #define _TRACECOLLECTOR_WAITFORSERVERREADINESS_HXX_ #include #include #include CORBA::Object_ptr TraceCollector_WaitForServerReadiness(CORBA::ORB_ptr theOrb, std::string serverName); #endif salome-kernel-6.5.0/src/TOOLSDS/000077500000000000000000000000001177004724000162005ustar00rootroot00000000000000salome-kernel-6.5.0/src/TOOLSDS/Makefile.am000077500000000000000000000045721177004724000202470ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMEDS_Tool.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../Utils \ -I$(srcdir)/../SALOMELocalTrace \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ @HDF5_INCLUDES@ \ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Utils/libOpUtil.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libTOOLSDS.la libTOOLSDS_la_SOURCES = \ SALOMEDS_Tool.cxx libTOOLSDS_la_CPPFLAGS = $(COMMON_CPPFLAGS) libTOOLSDS_la_LDFLAGS = -no-undefined -version-info=0:0:0 libTOOLSDS_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # # Nothing to build salome-kernel-6.5.0/src/TOOLSDS/Makefile.in000077500000000000000000000724451177004724000202640ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/TOOLSDS ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libTOOLSDS_la_DEPENDENCIES = $(COMMON_LIBS) am_libTOOLSDS_la_OBJECTS = libTOOLSDS_la-SALOMEDS_Tool.lo libTOOLSDS_la_OBJECTS = $(am_libTOOLSDS_la_OBJECTS) libTOOLSDS_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libTOOLSDS_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libTOOLSDS_la_SOURCES) DIST_SOURCES = $(libTOOLSDS_la_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = SALOMEDS_Tool.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../Utils \ -I$(srcdir)/../SALOMELocalTrace \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ \ @HDF5_INCLUDES@ \ @BOOST_CPPFLAGS@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Utils/libOpUtil.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libTOOLSDS.la libTOOLSDS_la_SOURCES = \ SALOMEDS_Tool.cxx libTOOLSDS_la_CPPFLAGS = $(COMMON_CPPFLAGS) libTOOLSDS_la_LDFLAGS = -no-undefined -version-info=0:0:0 libTOOLSDS_la_LIBADD = $(COMMON_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/TOOLSDS/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/TOOLSDS/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libTOOLSDS.la: $(libTOOLSDS_la_OBJECTS) $(libTOOLSDS_la_DEPENDENCIES) $(libTOOLSDS_la_LINK) -rpath $(libdir) $(libTOOLSDS_la_OBJECTS) $(libTOOLSDS_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libTOOLSDS_la-SALOMEDS_Tool.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libTOOLSDS_la-SALOMEDS_Tool.lo: SALOMEDS_Tool.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libTOOLSDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libTOOLSDS_la-SALOMEDS_Tool.lo -MD -MP -MF $(DEPDIR)/libTOOLSDS_la-SALOMEDS_Tool.Tpo -c -o libTOOLSDS_la-SALOMEDS_Tool.lo `test -f 'SALOMEDS_Tool.cxx' || echo '$(srcdir)/'`SALOMEDS_Tool.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libTOOLSDS_la-SALOMEDS_Tool.Tpo $(DEPDIR)/libTOOLSDS_la-SALOMEDS_Tool.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOMEDS_Tool.cxx' object='libTOOLSDS_la-SALOMEDS_Tool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libTOOLSDS_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libTOOLSDS_la-SALOMEDS_Tool.lo `test -f 'SALOMEDS_Tool.cxx' || echo '$(srcdir)/'`SALOMEDS_Tool.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # # =============================================================== # Executables targets # =============================================================== # # Nothing to build # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/TOOLSDS/SALOMEDS_Tool.cxx000077500000000000000000000373161177004724000211450ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Tool.cxx // Created : Mon Oct 21 16:24:34 2002 // Author : Sergey RUIN // Project : SALOME // Module : SALOMEDS // #include "SALOMEDS_Tool.hxx" #include "utilities.h" #include "Basics_DirUtils.hxx" #ifndef WIN32 #include #include #include #include #include #else #include #include #endif #include #include #include #include #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) bool Exists(const std::string thePath) { #ifdef WIN32 if ( GetFileAttributes ( thePath.c_str() ) == 0xFFFFFFFF ) { if ( GetLastError () == ERROR_FILE_NOT_FOUND ) { return false; } } #else int status = access ( thePath.c_str() , F_OK ); if (status != 0) return false; #endif return true; } //============================================================================ // function : GetTempDir // purpose : Return a temp directory to store created files like "/tmp/sub_dir/" //============================================================================ std::string SALOMEDS_Tool::GetTmpDir() { return Kernel_Utils::GetTmpDirByEnv("SALOME_TMP_DIR"); //Find a temporary directory to store a file /*string aTmpDir = ""; char *Tmp_dir = getenv("SALOME_TMP_DIR"); if(Tmp_dir != NULL) { aTmpDir = string(Tmp_dir); #ifdef WIN32 if(aTmpDir[aTmpDir.size()-1] != '\\') aTmpDir+='\\'; #else if(aTmpDir[aTmpDir.size()-1] != '/') aTmpDir+='/'; #endif } else { #ifdef WIN32 aTmpDir = string("C:\\"); #else aTmpDir = string("/tmp/"); #endif } srand((unsigned int)time(NULL)); int aRND = 999 + (int)(100000.0*rand()/(RAND_MAX+1.0)); //Get a random number to present a name of a sub directory char buffer[127]; sprintf(buffer, "%d", aRND); string aSubDir(buffer); if(aSubDir.size() <= 1) aSubDir = string("123409876"); aTmpDir += aSubDir; //Get RND sub directory string aDir = aTmpDir; if(Exists(aDir)) { for(aRND = 0; Exists(aDir); aRND++) { sprintf(buffer, "%d", aRND); aDir = aTmpDir+buffer; //Build a unique directory name } } #ifdef WIN32 if(aDir[aDir.size()-1] != '\\') aDir+='\\'; #else if(aDir[aTmpDir.size()-1] != '/') aDir+='/'; #endif #ifdef WIN32 CreateDirectory(aDir.c_str(), NULL); #else mkdir(aDir.c_str(), 0x1ff); #endif return aDir;*/ } //============================================================================ // function : RemoveTemporaryFiles // purpose : Removes files listed in theFileList //============================================================================ void SALOMEDS_Tool::RemoveTemporaryFiles(const std::string& theDirectory, const SALOMEDS::ListOfFileNames& theFiles, const bool IsDirDeleted) { std::string aDirName = theDirectory; int i, aLength = theFiles.length(); for(i=1; i<=aLength; i++) { std::string aFile(aDirName); aFile += theFiles[i-1]; if(!Exists(aFile)) continue; #ifdef WIN32 DeleteFile(aFile.c_str()); #else unlink(aFile.c_str()); #endif } if(IsDirDeleted) { if(Exists(aDirName)) { #ifdef WIN32 RemoveDirectory(aDirName.c_str()); #else rmdir(aDirName.c_str()); #endif } } } //============================================================================ // function : PutFilesToStream // purpose : converts the files from a list 'theFiles' to the stream //============================================================================ namespace { SALOMEDS::TMPFile* PutFilesToStream(const std::string& theFromDirectory, const SALOMEDS::ListOfFileNames& theFiles, const SALOMEDS::ListOfFileNames& theFileNames, const int theNamesOnly) { int i, aLength = theFiles.length(); if(aLength == 0) return (new SALOMEDS::TMPFile); //Get a temporary directory for saved a file std::string aTmpDir = theFromDirectory; long aBufferSize = 0; long aCurrentPos; int aNbFiles = 0; int* aFileNameSize= new int[aLength]; long* aFileSize= new long[aLength]; //Determine the required size of the buffer for(i=0; i(theFiles[i].in()); if(!Exists(aFullPath)) continue; #ifdef WIN32 std::ifstream aFile(aFullPath.c_str(), std::ios::binary); #else std::ifstream aFile(aFullPath.c_str()); #endif aFile.seekg(0, std::ios::end); aFileSize[i] = aFile.tellg(); aBufferSize += aFileSize[i]; //Add a space to store the file } aFileNameSize[i] = strlen(theFileNames[i])+1; aBufferSize += aFileNameSize[i]; //Add a space to store the file name aBufferSize += (theNamesOnly)?4:12; //Add 4 bytes: a length of the file name, // 8 bytes: length of the file itself aNbFiles++; } if ( aNbFiles == 0 ) return (new SALOMEDS::TMPFile); aBufferSize += 4; //4 bytes for a number of the files that will be written to the stream; unsigned char* aBuffer = new unsigned char[aBufferSize]; if(aBuffer == NULL) return (new SALOMEDS::TMPFile); //Initialize 4 bytes of the buffer by 0 memset(aBuffer, 0, 4); //Copy the number of files that will be written to the stream memcpy(aBuffer, &aNbFiles, ((sizeof(int) > 4) ? 4 : sizeof(int))); aCurrentPos = 4; for(i=0; i(theFiles[i].in()); if(!Exists(aFullPath)) continue; #ifdef WIN32 aFile = new std::ifstream(aFullPath.c_str(), std::ios::binary); #else aFile = new std::ifstream(aFullPath.c_str()); #endif } //Initialize 4 bytes of the buffer by 0 memset((aBuffer + aCurrentPos), 0, 4); //Copy the length of the file name to the buffer memcpy((aBuffer + aCurrentPos), (aFileNameSize + i), ((sizeof(int) > 4) ? 4 : sizeof(int))); aCurrentPos += 4; //Copy the file name to the buffer memcpy((aBuffer + aCurrentPos), theFileNames[i], aFileNameSize[i]); aCurrentPos += aFileNameSize[i]; if (!theNamesOnly) { // mpv 15.01.2003: we don't copy file content to the buffer if !theNamesOnly //Initialize 8 bytes of the buffer by 0 memset((aBuffer + aCurrentPos), 0, 8); //Copy the length of the file to the buffer memcpy((aBuffer + aCurrentPos), (aFileSize + i), ((sizeof(long) > 8) ? 8 : sizeof(long))); aCurrentPos += 8; aFile->seekg(0, std::ios::beg); aFile->read((char *)(aBuffer + aCurrentPos), aFileSize[i]); aFile->close(); delete(aFile); aCurrentPos += aFileSize[i]; } } delete[] aFileNameSize; delete[] aFileSize; CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer; return (new SALOMEDS::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1)); } } SALOMEDS::TMPFile* SALOMEDS_Tool::PutFilesToStream(const std::string& theFromDirectory, const SALOMEDS::ListOfFileNames& theFiles, const int theNamesOnly) { SALOMEDS::ListOfFileNames aFileNames(theFiles); return ::PutFilesToStream(theFromDirectory,theFiles,aFileNames,theNamesOnly); } SALOMEDS::TMPFile* SALOMEDS_Tool::PutFilesToStream(const SALOMEDS::ListOfFileNames& theFiles, const SALOMEDS::ListOfFileNames& theFileNames) { return ::PutFilesToStream("",theFiles,theFileNames,0); } //============================================================================ // function : PutStreamToFile // purpose : converts the stream "theStream" to the files //============================================================================ SALOMEDS::ListOfFileNames_var SALOMEDS_Tool::PutStreamToFiles(const SALOMEDS::TMPFile& theStream, const std::string& theToDirectory, const int theNamesOnly) { SALOMEDS::ListOfFileNames_var aFiles = new SALOMEDS::ListOfFileNames; if(theStream.length() == 0) return aFiles; //Get a temporary directory for saving a file std::string aTmpDir = theToDirectory; unsigned char *aBuffer = (unsigned char*)theStream.NP_data(); if(aBuffer == NULL) return aFiles; long aFileSize, aCurrentPos = 4; int i, aFileNameSize, aNbFiles = 0; //Copy the number of files in the stream memcpy(&aNbFiles, aBuffer, sizeof(int)); aFiles->length(aNbFiles); for(i=0; i 4) ? 4 : sizeof(int))); aCurrentPos += 4; char *aFileName = new char[aFileNameSize]; //Put a file name to aFileName memcpy(aFileName, (aBuffer + aCurrentPos), aFileNameSize); #ifdef WIN32 for (int i = 0; i < strlen(aFileName); i++) { if (aFileName[i] == ':') aFileName[i] = '_'; } #endif aCurrentPos += aFileNameSize; //Put a length of the file to aFileSize if (!theNamesOnly) { memcpy(&aFileSize, (aBuffer + aCurrentPos), ((sizeof(long) > 8) ? 8 : sizeof(long))); aCurrentPos += 8; std::string aFullPath = aTmpDir + aFileName; #ifdef WIN32 std::ofstream aFile(aFullPath.c_str(), std::ios::binary); #else std::ofstream aFile(aFullPath.c_str()); #endif aFile.write((char *)(aBuffer+aCurrentPos), aFileSize); aFile.close(); aCurrentPos += aFileSize; } aFiles[i] = CORBA::string_dup(aFileName); delete[] aFileName; } return aFiles; } //============================================================================ // function : GetNameFromPath // purpose : Returns the name by the path //============================================================================ std::string SALOMEDS_Tool::GetNameFromPath(const std::string& thePath) { if (thePath.empty()) return ""; std::string aPath = thePath; bool isFound = false; int pos = aPath.rfind('/'); if(pos > 0) { aPath = aPath.substr(pos+1, aPath.size()); isFound = true; } if(!isFound) { pos = aPath.rfind('\\'); if(pos > 0) { aPath = aPath.substr(pos+1, aPath.size()); isFound = true; } } if(!isFound) { pos = aPath.rfind('|'); if(pos > 0) aPath = aPath.substr(pos+1, aPath.size()); } pos = aPath.rfind('.'); if(pos > 0) aPath = aPath.substr(0, pos); //Remove extension return aPath; } //============================================================================ // function : GetDirFromPath // purpose : Returns the dir by the path //============================================================================ std::string SALOMEDS_Tool::GetDirFromPath(const std::string& thePath) { if (thePath.empty()) return ""; int pos = thePath.rfind('/'); std::string path; if(pos > 0) { path = thePath.substr(0, pos+1); } if(path.empty()) { pos = thePath.rfind('\\'); if(pos > 0) path = thePath.substr(0, pos+1); } if(path.empty()) { pos = thePath.rfind('|'); if(pos > 0) path = thePath.substr(0, pos+1); } if(path.empty()) { path = thePath+"/"; } #ifdef WIN32 //Check if the only disk letter is given as path if(path.size() == 2 && path[1] == ':') path +='\\'; #endif for(int i = 0, len = path.size(); i_is_nil() && theObj->FindAttribute( anAttr, "AttributeFlags" ) ) { SALOMEDS::AttributeFlags_var aFlags = SALOMEDS::AttributeFlags::_narrow( anAttr ); return aFlags->Get( theFlag ); } return false; } //======================================================================= // name : SetFlag // Purpose : Set/Unset specified flaf from "AttributeFlags" attribute //======================================================================= bool SALOMEDS_Tool::SetFlag( const int theFlag, SALOMEDS::Study_var theStudy, const std::string& theEntry, const bool theValue ) { SALOMEDS::SObject_var anObj = theStudy->FindObjectID(theEntry.c_str()); if ( !anObj->_is_nil() ) { SALOMEDS::GenericAttribute_var aGAttr; if ( anObj->FindAttribute( aGAttr, "AttributeFlags" ) ) { SALOMEDS::AttributeFlags_var anAttr = SALOMEDS::AttributeFlags::_narrow( aGAttr ); anAttr->Set( theFlag, theValue ); } else if ( theValue ) { SALOMEDS::StudyBuilder_var aBuilder = theStudy->NewBuilder(); SALOMEDS::AttributeFlags_var anAttr = SALOMEDS::AttributeFlags::_narrow( aBuilder->FindOrCreateAttribute( anObj, "AttributeFlags" ) ); anAttr->Set( theFlag, theValue ); } return true; } return false; } //======================================================================= // name : getAllChildren // Purpose : Get all children of object. // If theObj is null all objects of study are returned //======================================================================= void SALOMEDS_Tool::GetAllChildren( SALOMEDS::Study_var theStudy, SALOMEDS::SObject_var theObj, std::list& theList ) { if ( theObj->_is_nil() ) { SALOMEDS::SComponentIterator_var anIter = theStudy->NewComponentIterator(); for ( ; anIter->More(); anIter->Next() ) { SALOMEDS::SObject_var anObj = SALOMEDS::SObject::_narrow( anIter->Value() ); if ( !anObj->_is_nil() ) { theList.push_back( anObj ); GetAllChildren( theStudy, anObj, theList ); } } } else { SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator( theObj ); for ( ; anIter->More(); anIter->Next() ) { SALOMEDS::SObject_var anObj = anIter->Value(); SALOMEDS::SObject_var aRef; if ( !anObj->ReferencedObject( aRef ) ) { theList.push_back( anObj ); GetAllChildren( theStudy, anObj, theList ); } } } } salome-kernel-6.5.0/src/TOOLSDS/SALOMEDS_Tool.hxx000077500000000000000000000104521177004724000211420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOMEDS_Tool.hxx // Created : Mon Oct 21 16:24:50 2002 // Author : Sergey RUIN // Project : SALOME // Module : SALOMEDS // #ifndef __SALOMEDS_Tool_H__ #define __SALOMEDS_Tool_H__ #include #include // IDL headers #include "SALOMEconfig.h" #include CORBA_SERVER_HEADER(SALOMEDS) #ifdef WIN32 # if defined TOOLSDS_EXPORTS # define TOOLSDS_EXPORT __declspec( dllexport ) # else # define TOOLSDS_EXPORT __declspec( dllimport ) # endif #else # define TOOLSDS_EXPORT #endif class TOOLSDS_EXPORT SALOMEDS_Tool { public: // Returns the unique temporary directory, that is defined in SALOME_TMP_DIR if this variable is set // otherwise return /tmp/something/ for Unix or c:\something\ for WIN32 static std::string GetTmpDir(); // Removes files which are in , the files for deletion are listed in // if is true is also deleted if it is empty static void RemoveTemporaryFiles(const std::string& theDirectory, const SALOMEDS::ListOfFileNames& theFiles, const bool IsDirDeleted); // Converts files listed in which are in into a byte sequence TMPFile static SALOMEDS::TMPFile* PutFilesToStream(const std::string& theFromDirectory, const SALOMEDS::ListOfFileNames& theFiles, const int theNamesOnly = 0); // Converts files listed in which will be named as pointed in the into a byte sequence TMPFile static SALOMEDS::TMPFile* PutFilesToStream(const SALOMEDS::ListOfFileNames& theFiles, const SALOMEDS::ListOfFileNames& theFileNames); // Converts a byte sequence to files and places them in static SALOMEDS::ListOfFileNames_var PutStreamToFiles(const SALOMEDS::TMPFile& theStream, const std::string& theToDirectory, const int theNamesOnly = 0); // Returns the name by the path // for an example: if thePath = "/tmp/aaa/doc1.hdf" the function returns "doc1" static std::string GetNameFromPath(const std::string& thePath); // Returns the directory by the path // for an example: if thePath = "/tmp/aaa/doc1.hdf" the function returns "/tmp/aaa" static std::string GetDirFromPath(const std::string& thePath); // Retrieves specified flaf from "AttributeFlags" attribute static bool GetFlag( const int theFlag, SALOMEDS::Study_var theStudy, SALOMEDS::SObject_var theObj ); // Sets/Unsets specified flaf from "AttributeFlags" attribute static bool SetFlag( const int theFlag, SALOMEDS::Study_var theStudy, const std::string& theEntry, const bool theValue ); // Get all children of object. If theObj is null all objects of study are returned static void GetAllChildren( SALOMEDS::Study_var theStudy, SALOMEDS::SObject_var theObj, std::list& theList ); }; #endif salome-kernel-6.5.0/src/TestContainer/000077500000000000000000000000001177004724000176335ustar00rootroot00000000000000salome-kernel-6.5.0/src/TestContainer/Makefile.am000077500000000000000000000075231177004724000217010ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME TestContainer : test of container creation and its life cycle # File : Makefile.in # Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/Makefile.am,v 1.5.2.2.14.4.12.1 2012-04-12 14:05:31 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files # Scripts to be installed dist_salomescript_PYTHON = \ SALOME_TestComponentPy.py \ TestComponentPy.py \ TestLogger.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../GenericObj \ -I$(srcdir)/../Container \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Container/libSalomeContainer.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeTestComponentEngine.la libSalomeTestComponentEngine_la_SOURCES = \ SALOME_TestComponent.hxx \ SALOME_TestComponent_i.cxx \ SALOME_TestComponent_i.hxx libSalomeTestComponentEngine_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeTestComponentEngine_la_LIBADD = $(COMMON_LIBS) #LIB_CLIENT_IDL = SALOME_Component.idl SALOME_TestComponent.idl SALOME_Exception.idl # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestContainer TestLogger TestContainer_SOURCES = TestContainer.cxx TestContainer_CPPFLAGS = $(COMMON_CPPFLAGS) TestContainer_LDADD = libSalomeTestComponentEngine.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(CORBA_LIBS) TestLogger_SOURCES = TestLogger.cxx TestLogger_CPPFLAGS = $(COMMON_CPPFLAGS) TestLogger_LDADD = libSalomeTestComponentEngine.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(CORBA_LIBS) salome-kernel-6.5.0/src/TestContainer/Makefile.in000077500000000000000000001162471177004724000217160ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestContainer$(EXEEXT) TestLogger$(EXEEXT) subdir = src/TestContainer ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libSalomeTestComponentEngine_la_DEPENDENCIES = $(COMMON_LIBS) am_libSalomeTestComponentEngine_la_OBJECTS = \ libSalomeTestComponentEngine_la-SALOME_TestComponent_i.lo libSalomeTestComponentEngine_la_OBJECTS = \ $(am_libSalomeTestComponentEngine_la_OBJECTS) PROGRAMS = $(bin_PROGRAMS) am_TestContainer_OBJECTS = TestContainer-TestContainer.$(OBJEXT) TestContainer_OBJECTS = $(am_TestContainer_OBJECTS) am__DEPENDENCIES_1 = TestContainer_DEPENDENCIES = libSalomeTestComponentEngine.la \ $(COMMON_LIBS) ../Basics/libSALOMEBasics.la \ $(am__DEPENDENCIES_1) am_TestLogger_OBJECTS = TestLogger-TestLogger.$(OBJEXT) TestLogger_OBJECTS = $(am_TestLogger_OBJECTS) TestLogger_DEPENDENCIES = libSalomeTestComponentEngine.la \ $(COMMON_LIBS) ../Basics/libSALOMEBasics.la \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeTestComponentEngine_la_SOURCES) \ $(TestContainer_SOURCES) $(TestLogger_SOURCES) DIST_SOURCES = $(libSalomeTestComponentEngine_la_SOURCES) \ $(TestContainer_SOURCES) $(TestLogger_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME TestContainer : test of container creation and its life cycle # File : Makefile.in # Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/Makefile.am,v 1.5.2.2.14.4.12.1 2012-04-12 14:05:31 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files # Scripts to be installed dist_salomescript_PYTHON = \ SALOME_TestComponentPy.py \ TestComponentPy.py \ TestLogger.py # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../GenericObj \ -I$(srcdir)/../Container \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Container/libSalomeContainer.la \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeTestComponentEngine.la libSalomeTestComponentEngine_la_SOURCES = \ SALOME_TestComponent.hxx \ SALOME_TestComponent_i.cxx \ SALOME_TestComponent_i.hxx libSalomeTestComponentEngine_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeTestComponentEngine_la_LIBADD = $(COMMON_LIBS) TestContainer_SOURCES = TestContainer.cxx TestContainer_CPPFLAGS = $(COMMON_CPPFLAGS) TestContainer_LDADD = libSalomeTestComponentEngine.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(CORBA_LIBS) TestLogger_SOURCES = TestLogger.cxx TestLogger_CPPFLAGS = $(COMMON_CPPFLAGS) TestLogger_LDADD = libSalomeTestComponentEngine.la \ $(COMMON_LIBS) \ ../Basics/libSALOMEBasics.la \ $(CORBA_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/TestContainer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/TestContainer/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeTestComponentEngine.la: $(libSalomeTestComponentEngine_la_OBJECTS) $(libSalomeTestComponentEngine_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libSalomeTestComponentEngine_la_OBJECTS) $(libSalomeTestComponentEngine_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestContainer$(EXEEXT): $(TestContainer_OBJECTS) $(TestContainer_DEPENDENCIES) @rm -f TestContainer$(EXEEXT) $(CXXLINK) $(TestContainer_OBJECTS) $(TestContainer_LDADD) $(LIBS) TestLogger$(EXEEXT): $(TestLogger_OBJECTS) $(TestLogger_DEPENDENCIES) @rm -f TestLogger$(EXEEXT) $(CXXLINK) $(TestLogger_OBJECTS) $(TestLogger_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestContainer-TestContainer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestLogger-TestLogger.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeTestComponentEngine_la-SALOME_TestComponent_i.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeTestComponentEngine_la-SALOME_TestComponent_i.lo: SALOME_TestComponent_i.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeTestComponentEngine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeTestComponentEngine_la-SALOME_TestComponent_i.lo -MD -MP -MF $(DEPDIR)/libSalomeTestComponentEngine_la-SALOME_TestComponent_i.Tpo -c -o libSalomeTestComponentEngine_la-SALOME_TestComponent_i.lo `test -f 'SALOME_TestComponent_i.cxx' || echo '$(srcdir)/'`SALOME_TestComponent_i.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeTestComponentEngine_la-SALOME_TestComponent_i.Tpo $(DEPDIR)/libSalomeTestComponentEngine_la-SALOME_TestComponent_i.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SALOME_TestComponent_i.cxx' object='libSalomeTestComponentEngine_la-SALOME_TestComponent_i.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeTestComponentEngine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeTestComponentEngine_la-SALOME_TestComponent_i.lo `test -f 'SALOME_TestComponent_i.cxx' || echo '$(srcdir)/'`SALOME_TestComponent_i.cxx TestContainer-TestContainer.o: TestContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestContainer-TestContainer.o -MD -MP -MF $(DEPDIR)/TestContainer-TestContainer.Tpo -c -o TestContainer-TestContainer.o `test -f 'TestContainer.cxx' || echo '$(srcdir)/'`TestContainer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestContainer-TestContainer.Tpo $(DEPDIR)/TestContainer-TestContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestContainer.cxx' object='TestContainer-TestContainer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestContainer-TestContainer.o `test -f 'TestContainer.cxx' || echo '$(srcdir)/'`TestContainer.cxx TestContainer-TestContainer.obj: TestContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestContainer-TestContainer.obj -MD -MP -MF $(DEPDIR)/TestContainer-TestContainer.Tpo -c -o TestContainer-TestContainer.obj `if test -f 'TestContainer.cxx'; then $(CYGPATH_W) 'TestContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/TestContainer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestContainer-TestContainer.Tpo $(DEPDIR)/TestContainer-TestContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestContainer.cxx' object='TestContainer-TestContainer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestContainer-TestContainer.obj `if test -f 'TestContainer.cxx'; then $(CYGPATH_W) 'TestContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/TestContainer.cxx'; fi` TestLogger-TestLogger.o: TestLogger.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLogger_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestLogger-TestLogger.o -MD -MP -MF $(DEPDIR)/TestLogger-TestLogger.Tpo -c -o TestLogger-TestLogger.o `test -f 'TestLogger.cxx' || echo '$(srcdir)/'`TestLogger.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestLogger-TestLogger.Tpo $(DEPDIR)/TestLogger-TestLogger.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestLogger.cxx' object='TestLogger-TestLogger.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLogger_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestLogger-TestLogger.o `test -f 'TestLogger.cxx' || echo '$(srcdir)/'`TestLogger.cxx TestLogger-TestLogger.obj: TestLogger.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLogger_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestLogger-TestLogger.obj -MD -MP -MF $(DEPDIR)/TestLogger-TestLogger.Tpo -c -o TestLogger-TestLogger.obj `if test -f 'TestLogger.cxx'; then $(CYGPATH_W) 'TestLogger.cxx'; else $(CYGPATH_W) '$(srcdir)/TestLogger.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestLogger-TestLogger.Tpo $(DEPDIR)/TestLogger-TestLogger.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestLogger.cxx' object='TestLogger-TestLogger.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestLogger_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestLogger-TestLogger.obj `if test -f 'TestLogger.cxx'; then $(CYGPATH_W) 'TestLogger.cxx'; else $(CYGPATH_W) '$(srcdir)/TestLogger.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-dist_salomescriptPYTHON uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/TestContainer/SALOME_TestComponent.hxx000077500000000000000000000025731177004724000242400ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME TestContainer : test of container creation and its life cycle // File : SALOME_TestComponent.hxx // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // #ifndef SALOME_TESTCOMPONENT_HXX #define SALOME_TESTCOMPONENT_HXX #ifdef WIN32 # if defined TESTCONTAINER_EXPORTS || defined SalomeTestComponentEngine_EXPORTS # define TESTCONTAINER_EXPORT __declspec( dllexport ) # else # define TESTCONTAINER_EXPORT __declspec( dllimport ) # endif #else # define TESTCONTAINER_EXPORT #endif #endif // SALOME_TESTCOMPONENT_HXX salome-kernel-6.5.0/src/TestContainer/SALOME_TestComponentPy.py000077500000000000000000000037221177004724000243670ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME TestContainer : test of container creation and its life cycle # File : SALOME_TestComponentPy.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/SALOME_TestComponentPy.py,v 1.6.2.1.14.2.12.1 2012-04-12 14:05:31 vsr Exp $ # import sys from omniORB import CORBA, PortableServer import CosNaming import Engines, Engines__POA from SALOME_ComponentPy import * class SALOME_TestComponentPy( Engines__POA.TestComponent, SALOME_ComponentPy_i): def Coucou(self, val): print "SALOME_TestComponentPy Coucou ", val result = "result from SALOME_TestComponentPy Coucou " + `val` return result def __init__(self, orb, poa, contID, containerName, instanceName, interfaceName): notif = 0 SALOME_ComponentPy_i.__init__(self, orb, poa, contID, containerName, instanceName, interfaceName, notif) print "SALOME_TestComponentPy::__init__" salome-kernel-6.5.0/src/TestContainer/SALOME_TestComponent_i.cxx000077500000000000000000000103361177004724000245370ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME TestContainer : test of container creation and its life cycle // File : SALOME_TestComponent_i.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/SALOME_TestComponent_i.cxx,v 1.10.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #ifndef WIN32 # define private protected #endif #include "utilities.h" #include "SALOME_TestComponent_i.hxx" #include #include #include Engines_TestComponent_i::Engines_TestComponent_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName) : Engines_Component_i(orb, poa, contId, instanceName, interfaceName) { MESSAGE("activate object"); _thisObj = this ; _id = _poa->activate_object(_thisObj); //does not work with 4.0.6 (too bad) //SCRUTE(_pd_refCount); //SCRUTE(_refcount_value()); } Engines_TestComponent_i::Engines_TestComponent_i() { } Engines_TestComponent_i::~Engines_TestComponent_i() { MESSAGE("~Engines_TestComponent_i()"); } char* Engines_TestComponent_i::Coucou(CORBA::Long L) { char s[100]; sprintf(s, "TestComponent_i : L = %ld", (long) L); //does not work with 4.0.6 (too bad) //SCRUTE(_pd_refCount); //SCRUTE(_refcount_value()); return CORBA::string_dup(s); } void Engines_TestComponent_i::Setenv() { // bool overwrite = true; std::map::iterator it; MESSAGE("set environment associated with keys in map _fieldsDict"); for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++) { std::string cle((*it).first); if ((*it).second.type()->kind() == CORBA::tk_string) { const char* value; (*it).second >>= value; //CCRT porting : setenv not defined in stdlib.h std::string s(cle); s+='='; s+=value; //char* cast because 1st arg of linux putenv function is not a const char* !!! putenv((char *)s.c_str()); //End of CCRT porting //int ret = setenv(cle.c_str(), value, overwrite); MESSAGE("--- setenv: "<getId() ; } } salome-kernel-6.5.0/src/TestContainer/SALOME_TestComponent_i.hxx000077500000000000000000000040521177004724000245420ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME TestContainer : test of container creation and its life cycle // File : SALOME_TestComponent_i.hxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/SALOME_TestComponent_i.hxx,v 1.6.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #ifndef _SALOME_TESTCOMPONENT_I_HXX_ #define _SALOME_TESTCOMPONENT_I_HXX_ #include "SALOME_TestComponent.hxx" #include #include "SALOME_Component_i.hxx" #include #include CORBA_SERVER_HEADER(SALOME_TestComponent) class TESTCONTAINER_EXPORT Engines_TestComponent_i: public POA_Engines::TestComponent, public Engines_Component_i { public: Engines_TestComponent_i(); Engines_TestComponent_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName); virtual ~Engines_TestComponent_i(); char* Coucou(CORBA::Long L); void Setenv(); private: }; #endif salome-kernel-6.5.0/src/TestContainer/TestComponentPy.py000077500000000000000000000046361177004724000233340ustar00rootroot00000000000000#! /usr/bin/env python # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME TestContainer : test of container creation and its life cycle # File : TestComponentPy.py # Author : Paul RASCLE, EDF # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/TestComponentPy.py,v 1.9.30.2.12.1 2012-04-12 14:05:31 vsr Exp $ # import os import sys import string from omniORB import CORBA import CosNaming import Engines from Utils_Identity import getShortHostName #initialise the ORB orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID) #obtain a reference to the root naming context obj = orb.resolve_initial_references("NameService") rootContext = obj._narrow(CosNaming.NamingContext) if rootContext is None: print "Name Service Reference is invalid" sys.exit(1) #resolve the name /Containers.dir/FactoryServerPy.object machineName=getShortHostName() containerName = "FactoryServerPy" name = [CosNaming.NameComponent("Containers","dir"), CosNaming.NameComponent(machineName,"dir"), CosNaming.NameComponent(containerName,"object")] try: obj = rootContext.resolve(name) except CosNaming.NamingContext.NotFound, ex: print containerName , " not found in Naming Service" sys.exit(1) container = obj._narrow(Engines.Container) print container.getHostName() comp = container.load_impl("SALOME_TestComponentPy","SALOME_TestComponentPy") print comp._get_instanceName() comp.ping() comptest = comp._narrow(Engines.TestComponent) if comptest is None: print "probleme cast" print comptest.Coucou(1) salome-kernel-6.5.0/src/TestContainer/TestContainer.cxx000077500000000000000000000162531177004724000231530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME TestContainer : test of container creation and its life cycle // File : TestContainer.cxx // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestContainer/TestContainer.cxx,v 1.15.2.1.10.2.12.1 2012-04-12 14:05:31 vsr Exp $ // #include "utilities.h" #include #ifndef WIN32 #include #endif #include #include CORBA_CLIENT_HEADER(SALOME_Component) #include CORBA_CLIENT_HEADER(SALOME_TestComponent) #include "SALOME_NamingService.hxx" #include "NamingService_WaitForServerReadiness.hxx" #include "Basics_Utils.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" #include "Utils_SALOME_Exception.hxx" #include "Utils_CommException.hxx" static std::ostream& operator<<(std::ostream& os, const CORBA::Exception& e) { CORBA::Any tmp; tmp<<= e; CORBA::TypeCode_var tc = tmp.type(); const char *p = tc->name(); os<<"Test blocking exception was catch of the kind : "; if ( *p != '\0' ) { os<id(); } return os; } Engines::TestComponent_ptr create_instance(Engines::Container_ptr iGenFact, std::string componenttName) { char* reason; #if defined(_DEBUG_) || defined(_DEBUG) bool isLib = iGenFact->load_component_Library(componenttName.c_str(),reason); ASSERT(isLib); #else iGenFact->load_component_Library(componenttName.c_str(),reason); #endif CORBA::string_free(reason); CORBA::Object_var obj = iGenFact->create_component_instance(componenttName.c_str(), 0); Engines::TestComponent_var anInstance = Engines::TestComponent::_narrow(obj); MESSAGE("create anInstance"); SCRUTE(anInstance->instanceName()); return anInstance._retn(); } int main (int argc, char * argv[]) { // Initializing omniORB ORB_INIT &init = *SINGLETON_::Instance() ; CORBA::ORB_ptr orb = init( argc , argv ) ; // LocalTraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); try { SALOME_NamingService _NS(orb) ; std::string containerName = "/Containers/" ; std::string hostName = Kernel_Utils::GetHostname(); containerName += hostName + "/FactoryServer"; NamingService_WaitForServerReadiness(&_NS,containerName); CORBA::Object_var obj = _NS.Resolve(containerName.c_str()) ; Engines::Container_var iGenFact = Engines::Container::_narrow(obj); iGenFact->ping() ; int nbInstances = 5; std::vector instances(nbInstances); MESSAGE("------------------------------- create instances "); for (int iter = 0; iter < nbInstances ; iter++) { instances[iter] = create_instance(iGenFact,"SalomeTestComponent"); } MESSAGE("------------------------------ set env instances "); for (int iter = 0; iter < nbInstances ; iter++) { Engines::TestComponent_var anInstance = instances[iter]; SCRUTE(anInstance->instanceName()); Engines::FieldsDict_var dico = new Engines::FieldsDict; dico->length(3); dico[0].key=CORBA::string_dup("key_0"); dico[0].value <<="value_0"; dico[1].key=CORBA::string_dup("key_1"); dico[1].value <<=(CORBA::UShort)72; dico[2].key=CORBA::string_dup("key_2"); dico[2].value <<=(CORBA::ULong)iter; anInstance->setProperties(dico); MESSAGE("Coucou " << anInstance->Coucou(iter)); anInstance->Setenv(); } MESSAGE("---------------------------------- get instances "); for (int iter = 0; iter < nbInstances ; iter++) { Engines::TestComponent_var anInstance = instances[iter]; SCRUTE(anInstance->instanceName()); Engines::FieldsDict_var dico2 = anInstance->getProperties(); for (CORBA::ULong i=0; ilength(); i++) { MESSAGE("dico2["<instanceName()); iGenFact->remove_impl(anInstance) ; //iGenFact->finalize_removal() ; // unpredictable results ... } MESSAGE("------------------------------- PYTHON "); { // bool isLib = // iGenFact->load_component_Library("SALOME_TestComponentPy"); // ASSERT(isLib); // CORBA::Object_var obj = // iGenFact->create_component_instance("SALOME_TestComponentPy", // 0); // Engines::TestComponent_var anInstance = // Engines::TestComponent::_narrow(obj); // MESSAGE("create anInstance"); // SCRUTE(anInstance->instanceName()); MESSAGE("------------------------------- create instances "); for (int iter = 0; iter < nbInstances ; iter++) { instances[iter] = create_instance(iGenFact,"SALOME_TestComponentPy"); } MESSAGE("---------------------------------- get instances "); for (int iter = 0; iter < nbInstances ; iter++) { Engines::TestComponent_var anInstance = instances[iter]; SCRUTE(anInstance->instanceName()); MESSAGE("Coucou " << anInstance->Coucou(iter)); } } // Clean-up. iGenFact->finalize_removal() ; orb->shutdown(0); } catch(CORBA::COMM_FAILURE& ex) { INFOS("Caught system exception COMM_FAILURE -- unable to contact the object.") } catch(CORBA::SystemException& e) { INFOS("Caught a CORBA::SystemException."< #ifndef WIN32 #include #endif #include #include "SALOME_NamingService.hxx" #include "OpUtil.hxx" int main (int argc, char * argv[]) { MESSAGE("It's OK"); return 0; } salome-kernel-6.5.0/src/TestContainer/TestLogger.py000077500000000000000000000020321177004724000222640ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # from SALOME_utilities import * MESSAGE("TestLogger.py : It's OK") salome-kernel-6.5.0/src/TestMPIContainer/000077500000000000000000000000001177004724000202015ustar00rootroot00000000000000salome-kernel-6.5.0/src/TestMPIContainer/Makefile.am000077500000000000000000000075351177004724000222520ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME MPIContainer : implemenation of container based on MPI libraries # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestMPIContainer/Makefile.am,v 1.5.2.1.14.3.12.1 2012-04-12 14:05:31 vsr Exp $ # =============================================================== # _CS_gbo Caution !! This package may not work. I didn't test it # because no mpi soft is installed on my computer. To be checked. # =============================================================== # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = TestMPIComponentEngine.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. # _CS_gbo See wether it can be shared by all packages in a common include!! COMMON_CPPFLAGS=\ @MPI_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../Container \ -I$(srcdir)/../MPIContainer \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../Container/libSalomeContainer.la \ ../MPIContainer/libSalomeMPIContainer.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeTestMPIComponentEngine.la libSalomeTestMPIComponentEngine_la_SOURCES = TestMPIComponentEngine.cxx libSalomeTestMPIComponentEngine_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeTestMPIComponentEngine_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeTestMPIComponentEngine_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestMPIContainer TestMPIContainer_SOURCES = TestMPIContainer.cxx TestMPIContainer_LDADD = libSalomeTestMPIComponentEngine.la $(COMMON_LIBS) @MPI_LIBS@ TestMPIContainer_CPPFLAGS = $(COMMON_CPPFLAGS) salome-kernel-6.5.0/src/TestMPIContainer/Makefile.in000077500000000000000000001110451177004724000222530ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(salomeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestMPIContainer$(EXEEXT) subdir = src/TestMPIContainer ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../Container/libSalomeContainer.la \ ../MPIContainer/libSalomeMPIContainer.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la libSalomeTestMPIComponentEngine_la_DEPENDENCIES = \ $(am__DEPENDENCIES_1) am_libSalomeTestMPIComponentEngine_la_OBJECTS = \ libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.lo libSalomeTestMPIComponentEngine_la_OBJECTS = \ $(am_libSalomeTestMPIComponentEngine_la_OBJECTS) libSalomeTestMPIComponentEngine_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(libSalomeTestMPIComponentEngine_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_TestMPIContainer_OBJECTS = \ TestMPIContainer-TestMPIContainer.$(OBJEXT) TestMPIContainer_OBJECTS = $(am_TestMPIContainer_OBJECTS) TestMPIContainer_DEPENDENCIES = libSalomeTestMPIComponentEngine.la \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSalomeTestMPIComponentEngine_la_SOURCES) \ $(TestMPIContainer_SOURCES) DIST_SOURCES = $(libSalomeTestMPIComponentEngine_la_SOURCES) \ $(TestMPIContainer_SOURCES) HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME MPIContainer : implemenation of container based on MPI libraries # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestMPIContainer/Makefile.am,v 1.5.2.1.14.3.12.1 2012-04-12 14:05:31 vsr Exp $ # =============================================================== # _CS_gbo Caution !! This package may not work. I didn't test it # because no mpi soft is installed on my computer. To be checked. # =============================================================== # # # =============================================================== # Header to be installed # =============================================================== # # header files salomeinclude_HEADERS = TestMPIComponentEngine.hxx # # =============================================================== # Local definitions # =============================================================== # # This local variable defines the list of CPPFLAGS common to all target in this package. # _CS_gbo See wether it can be shared by all packages in a common include!! COMMON_CPPFLAGS = \ @MPI_INCLUDES@ \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../NamingService \ -I$(srcdir)/../Utils \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ -I$(srcdir)/../Container \ -I$(srcdir)/../MPIContainer \ -I$(srcdir)/../GenericObj \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la \ ../Utils/libOpUtil.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../Basics/libSALOMEBasics.la \ ../Container/libSalomeContainer.la \ ../MPIContainer/libSalomeMPIContainer.la \ ../GenericObj/libSalomeGenericObj.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libSalomeTestMPIComponentEngine.la libSalomeTestMPIComponentEngine_la_SOURCES = TestMPIComponentEngine.cxx libSalomeTestMPIComponentEngine_la_CPPFLAGS = $(COMMON_CPPFLAGS) libSalomeTestMPIComponentEngine_la_LDFLAGS = -no-undefined -version-info=0:0:0 libSalomeTestMPIComponentEngine_la_LIBADD = $(COMMON_LIBS) TestMPIContainer_SOURCES = TestMPIContainer.cxx TestMPIContainer_LDADD = libSalomeTestMPIComponentEngine.la $(COMMON_LIBS) @MPI_LIBS@ TestMPIContainer_CPPFLAGS = $(COMMON_CPPFLAGS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/TestMPIContainer/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/TestMPIContainer/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSalomeTestMPIComponentEngine.la: $(libSalomeTestMPIComponentEngine_la_OBJECTS) $(libSalomeTestMPIComponentEngine_la_DEPENDENCIES) $(libSalomeTestMPIComponentEngine_la_LINK) -rpath $(libdir) $(libSalomeTestMPIComponentEngine_la_OBJECTS) $(libSalomeTestMPIComponentEngine_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestMPIContainer$(EXEEXT): $(TestMPIContainer_OBJECTS) $(TestMPIContainer_DEPENDENCIES) @rm -f TestMPIContainer$(EXEEXT) $(CXXLINK) $(TestMPIContainer_OBJECTS) $(TestMPIContainer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestMPIContainer-TestMPIContainer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.lo: TestMPIComponentEngine.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeTestMPIComponentEngine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.lo -MD -MP -MF $(DEPDIR)/libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.Tpo -c -o libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.lo `test -f 'TestMPIComponentEngine.cxx' || echo '$(srcdir)/'`TestMPIComponentEngine.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.Tpo $(DEPDIR)/libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestMPIComponentEngine.cxx' object='libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libSalomeTestMPIComponentEngine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libSalomeTestMPIComponentEngine_la-TestMPIComponentEngine.lo `test -f 'TestMPIComponentEngine.cxx' || echo '$(srcdir)/'`TestMPIComponentEngine.cxx TestMPIContainer-TestMPIContainer.o: TestMPIContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestMPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestMPIContainer-TestMPIContainer.o -MD -MP -MF $(DEPDIR)/TestMPIContainer-TestMPIContainer.Tpo -c -o TestMPIContainer-TestMPIContainer.o `test -f 'TestMPIContainer.cxx' || echo '$(srcdir)/'`TestMPIContainer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestMPIContainer-TestMPIContainer.Tpo $(DEPDIR)/TestMPIContainer-TestMPIContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestMPIContainer.cxx' object='TestMPIContainer-TestMPIContainer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestMPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestMPIContainer-TestMPIContainer.o `test -f 'TestMPIContainer.cxx' || echo '$(srcdir)/'`TestMPIContainer.cxx TestMPIContainer-TestMPIContainer.obj: TestMPIContainer.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestMPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestMPIContainer-TestMPIContainer.obj -MD -MP -MF $(DEPDIR)/TestMPIContainer-TestMPIContainer.Tpo -c -o TestMPIContainer-TestMPIContainer.obj `if test -f 'TestMPIContainer.cxx'; then $(CYGPATH_W) 'TestMPIContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/TestMPIContainer.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestMPIContainer-TestMPIContainer.Tpo $(DEPDIR)/TestMPIContainer-TestMPIContainer.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestMPIContainer.cxx' object='TestMPIContainer-TestMPIContainer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestMPIContainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestMPIContainer-TestMPIContainer.obj `if test -f 'TestMPIContainer.cxx'; then $(CYGPATH_W) 'TestMPIContainer.cxx'; else $(CYGPATH_W) '$(srcdir)/TestMPIContainer.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/TestMPIContainer/TestMPIComponentEngine.cxx000077500000000000000000000070071177004724000252320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //============================================================================= // File : TestMPIComponentEngine.cxx // Created : mer jui 4 12:28:26 CEST 2003 // Author : Bernard SECHER, 2003 // Project : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestMPIContainer/TestMPIComponentEngine.cxx,v 1.9.2.1.10.3.12.1 2012-04-12 14:05:32 vsr Exp $ //============================================================================= // #include #include "utilities.h" #include "TestMPIComponentEngine.hxx" TestMPIComponentEngine::TestMPIComponentEngine(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool regist) : Engines_Component_i(orb, poa, contId, instanceName, interfaceName,true,regist) { MESSAGE("activate object") _thisObj = this ; _id = _poa->reference_to_id(_thisObj->_this()); } TestMPIComponentEngine::TestMPIComponentEngine() { } TestMPIComponentEngine::~TestMPIComponentEngine() { } void TestMPIComponentEngine::Coucou(CORBA::Long L) { if(_numproc==0) for(int ip=1;ip<_nbproc;ip++) Engines::TestMPIComponent::_narrow((*_tior)[ip])->SPCoucou(L); SPCoucou(L); } void TestMPIComponentEngine::SPCoucou(CORBA::Long L) { BEGIN_OF("[" << _numproc << "] TestMPIComponentEngine::Coucou()"); MESSAGE("[" << _numproc << "] TestMPIComponentEngine : L = " << L); END_OF("[" << _numproc << "] TestMPIComponentEngine::Coucou()"); MPI_Barrier(MPI_COMM_WORLD); } extern "C" { PortableServer::ObjectId * TestMPIComponentEngine_factory( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName) { int numproc; bool regist; TestMPIComponentEngine * myTestMPIComponent; MESSAGE("[" << numproc << "] PortableServer::ObjectId * TestMPIComponentEngine_factory()"); SCRUTE(interfaceName); MPI_Comm_rank( MPI_COMM_WORLD, &numproc ); if(numproc==0) regist = true; else regist = false; myTestMPIComponent = new TestMPIComponentEngine(orb, poa, contId, instanceName, interfaceName,regist); return myTestMPIComponent->getId() ; } } salome-kernel-6.5.0/src/TestMPIContainer/TestMPIComponentEngine.hxx000077500000000000000000000042751177004724000252430ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //============================================================================= // File : TestMPIComponentEngine.hxx // Created : mer jui 4 12:28:30 CEST 2003 // Author : Bernard SECHER, CEA // Project : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestMPIContainer/TestMPIComponentEngine.hxx,v 1.8.2.2.10.3.12.1 2012-04-12 14:05:32 vsr Exp $ //============================================================================= // #ifndef _SALOME_TESTCOMPONENT_I_HXX_ #define _SALOME_TESTCOMPONENT_I_HXX_ #include #include #include CORBA_SERVER_HEADER(SALOME_TestMPIComponent) #include "SALOME_Component_i.hxx" #include "MPIObject_i.hxx" class TestMPIComponentEngine: public POA_Engines::TestMPIComponent, public Engines_Component_i, public MPIObject_i { public: TestMPIComponentEngine(); TestMPIComponentEngine(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId, const char *instanceName, const char *interfaceName, bool regist); virtual ~TestMPIComponentEngine(); void Coucou(CORBA::Long L); void SPCoucou(CORBA::Long L); }; #endif salome-kernel-6.5.0/src/TestMPIContainer/TestMPIContainer.cxx000077500000000000000000000117751177004724000240730ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //============================================================================= // File : TestMPIContainer.cxx // Created : mer jui 4 13:11:27 CEST 2003 // Author : Bernard SECHER, 2003 // Project : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/TestMPIContainer/TestMPIContainer.cxx,v 1.12.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ //============================================================================= // #include "utilities.h" #include #include #include #include #include CORBA_CLIENT_HEADER(SALOME_MPIContainer) #include CORBA_CLIENT_HEADER(SALOME_TestMPIComponent) #include "Basics_Utils.hxx" # include "Utils_ORB_INIT.hxx" # include "Utils_SINGLETON.hxx" #include "SALOME_NamingService.hxx" #include "OpUtil.hxx" int main (int argc, char * argv[]) { // Initializing omniORB ORB_INIT &init = *SINGLETON_::Instance() ; CORBA::ORB_var &orb = init( argc , argv ) ; // SALOMETraceCollector *myThreadTrace = SALOMETraceCollector::instance(orb); BEGIN_OF(argv[0]) try{ int status; if( argc != 3 || strcmp(argv[1],"-np") ){ std::cout << "Usage: TestMPIContainer -np nbproc" << std::endl; exit(0); } // Obtain a reference to the root POA CORBA::Object_var obj = orb->resolve_initial_references("RootPOA") ; PortableServer::POA_var poa = PortableServer::POA::_narrow(obj) ; // Use Name Service to find container SALOME_NamingService NS(orb) ; std::string containerName = "/Containers/" ; std::string hostName = Kernel_Utils::GetHostname(); containerName += hostName + "/MPIFactoryServer_" + argv[2]; std::string dirn(getenv("KERNEL_ROOT_DIR")); dirn += "/lib/salome/libSalomeTestMPIComponentEngine.so"; // Try to resolve MPI Container obj = NS.Resolve(containerName.c_str()) ; Engines::MPIContainer_var iGenFact = Engines::MPIContainer::_narrow(obj); if(CORBA::is_nil(iGenFact)){ // Launch MPI Container std::string cmd("mpirun -np "); cmd += argv[2]; cmd += " "; cmd += getenv("KERNEL_ROOT_DIR"); cmd += "/bin/salome/SALOME_MPIContainer MPIFactoryServer_"; cmd += argv[2]; cmd += " &"; MESSAGE(cmd); status = system(cmd.c_str()); if (status == -1) { INFOS("TestMPIContainer launch MPI Container failed (system command status -1)") ; } else if (status == 217) { INFOS("TestMPIContainer launch MPI Container failed (system command status 217)") ; } // Try to resolve MPI Container int it = 0; do{ sleep(1); obj = NS.Resolve(containerName.c_str()) ; iGenFact = Engines::MPIContainer::_narrow(obj); MESSAGE("Waiting for MPI Container " << containerName << " : it = " << it ); }while( CORBA::is_nil(iGenFact) && (it++<15) ); } if(CORBA::is_nil(iGenFact)){ MESSAGE("launching container failed"); exit(1); } Engines::TestMPIComponent_var m1; // for (int iter = 0; iter < 1 ; iter++){ // MESSAGE("----------------------------------------------------" << iter); obj = iGenFact->load_impl("TestMPIComponent",dirn.c_str()); INFOS("Get Handle on MPI Component"); m1 = Engines::TestMPIComponent::_narrow(obj); if(CORBA::is_nil(m1)){ INFOS("getting handle on MPI component failed"); } else{ m1->Coucou(1L); // // sleep(5); INFOS("Unload MPI Component"); iGenFact->remove_impl(m1) ; } // } // // Clean-up. // // iGenFact->finalize_removal() ; // // sleep(5); iGenFact->Shutdown(); // INFOS("shut down corba server for Test MPI Container"); // orb->destroy(); } catch(CORBA::COMM_FAILURE& ex) { INFOS("Caught system exception COMM_FAILURE -- unable to contact the object."); } catch(CORBA::SystemException&) { INFOS("Caught a CORBA::SystemException."); } catch(CORBA::Exception&) { INFOS("Caught CORBA::Exception."); } catch(...) { INFOS("Caught unknown exception."); } END_OF(argv[0]); // delete myThreadTrace; return 0 ; } salome-kernel-6.5.0/src/UnitTests/000077500000000000000000000000001177004724000170135ustar00rootroot00000000000000salome-kernel-6.5.0/src/UnitTests/Makefile.am000077500000000000000000000063701177004724000210600ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/UnitTests/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:32 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # Executable scripts to be installed dist_salomescript_PYTHON = UnitTests.py # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = UnitTests UnitTests_SOURCES = UnitTests.cxx UnitTests_CPPFLAGS =\ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/../Basics -I$(srcdir)/../Basics/Test \ -I$(srcdir)/../SALOMELocalTrace -I$(srcdir)/../SALOMELocalTrace/Test if CORBA_GEN UnitTests_CPPFLAGS +=\ -DWITH_CORBA \ -I$(srcdir)/../SALOMETraceCollector -I$(srcdir)/../SALOMETraceCollector/Test \ -I$(srcdir)/../NamingService -I$(srcdir)/../NamingService/Test \ -I$(srcdir)/../Utils -I$(srcdir)/../Utils/Test \ -I$(srcdir)/../LifeCycleCORBA -I$(srcdir)/../LifeCycleCORBA/Test \ -I$(srcdir)/../SALOMDESImpl -I$(srcdir)/../SALOMEDSImpl/Test \ -I$(srcdir)/../SALOMDES -I$(srcdir)/../SALOMEDS/Test \ -I$(top_builddir)/idl \ -I$(srcdir)/../Registry \ -I$(srcdir)/../Notification \ -I$(srcdir)/../ResourcesManager \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ endif UnitTests_LDADD =\ @CPPUNIT_LIBS@ \ ../Basics/libSALOMEBasics.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la ../SALOMELocalTrace/Test/libSALOMELocalTraceTest.la if CORBA_GEN UnitTests_LDADD +=\ ../Registry/libRegistry.la \ ../Notification/libSalomeNotification.la \ ../ResourcesManager/libSalomeResourcesManager.la \ ../NamingService/libSalomeNS.la ../NamingService/Test/libNamingServiceTest.la \ ../Container/libSalomeContainer.la \ ../SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ ../Utils/libOpUtil.la ../Utils/Test/libUtilsTest.la \ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la ../LifeCycleCORBA/Test/libLifeCycleCORBATest.la \ ../SALOMEDSImpl/libSalomeDSImpl.la ../SALOMEDSImpl/Test/libSALOMEDSImplTest.la \ ../SALOMEDS/libSalomeDS.la ../SALOMEDS/Test/libSALOMEDSTest.la \ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_LIBS@ endif salome-kernel-6.5.0/src/UnitTests/Makefile.in000077500000000000000000001025401177004724000210650ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = UnitTests$(EXEEXT) @CORBA_GEN_TRUE@am__append_1 = \ @CORBA_GEN_TRUE@ -DWITH_CORBA \ @CORBA_GEN_TRUE@ -I$(srcdir)/../SALOMETraceCollector -I$(srcdir)/../SALOMETraceCollector/Test \ @CORBA_GEN_TRUE@ -I$(srcdir)/../NamingService -I$(srcdir)/../NamingService/Test \ @CORBA_GEN_TRUE@ -I$(srcdir)/../Utils -I$(srcdir)/../Utils/Test \ @CORBA_GEN_TRUE@ -I$(srcdir)/../LifeCycleCORBA -I$(srcdir)/../LifeCycleCORBA/Test \ @CORBA_GEN_TRUE@ -I$(srcdir)/../SALOMDESImpl -I$(srcdir)/../SALOMEDSImpl/Test \ @CORBA_GEN_TRUE@ -I$(srcdir)/../SALOMDES -I$(srcdir)/../SALOMEDS/Test \ @CORBA_GEN_TRUE@ -I$(top_builddir)/idl \ @CORBA_GEN_TRUE@ -I$(srcdir)/../Registry \ @CORBA_GEN_TRUE@ -I$(srcdir)/../Notification \ @CORBA_GEN_TRUE@ -I$(srcdir)/../ResourcesManager \ @CORBA_GEN_TRUE@ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @CORBA_GEN_TRUE@am__append_2 = \ @CORBA_GEN_TRUE@ ../Registry/libRegistry.la \ @CORBA_GEN_TRUE@ ../Notification/libSalomeNotification.la \ @CORBA_GEN_TRUE@ ../ResourcesManager/libSalomeResourcesManager.la \ @CORBA_GEN_TRUE@ ../NamingService/libSalomeNS.la ../NamingService/Test/libNamingServiceTest.la \ @CORBA_GEN_TRUE@ ../Container/libSalomeContainer.la \ @CORBA_GEN_TRUE@ ../SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ @CORBA_GEN_TRUE@ ../Utils/libOpUtil.la ../Utils/Test/libUtilsTest.la \ @CORBA_GEN_TRUE@ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la ../LifeCycleCORBA/Test/libLifeCycleCORBATest.la \ @CORBA_GEN_TRUE@ ../SALOMEDSImpl/libSalomeDSImpl.la ../SALOMEDSImpl/Test/libSALOMEDSImplTest.la \ @CORBA_GEN_TRUE@ ../SALOMEDS/libSalomeDS.la ../SALOMEDS/Test/libSALOMEDSTest.la \ @CORBA_GEN_TRUE@ $(top_builddir)/idl/libSalomeIDLKernel.la\ @CORBA_GEN_TRUE@ @CORBA_LIBS@ subdir = src/UnitTests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" PROGRAMS = $(bin_PROGRAMS) am_UnitTests_OBJECTS = UnitTests-UnitTests.$(OBJEXT) UnitTests_OBJECTS = $(am_UnitTests_OBJECTS) @CORBA_GEN_TRUE@am__DEPENDENCIES_1 = ../Registry/libRegistry.la \ @CORBA_GEN_TRUE@ ../Notification/libSalomeNotification.la \ @CORBA_GEN_TRUE@ ../ResourcesManager/libSalomeResourcesManager.la \ @CORBA_GEN_TRUE@ ../NamingService/libSalomeNS.la \ @CORBA_GEN_TRUE@ ../NamingService/Test/libNamingServiceTest.la \ @CORBA_GEN_TRUE@ ../Container/libSalomeContainer.la \ @CORBA_GEN_TRUE@ ../SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ @CORBA_GEN_TRUE@ ../Utils/libOpUtil.la \ @CORBA_GEN_TRUE@ ../Utils/Test/libUtilsTest.la \ @CORBA_GEN_TRUE@ ../LifeCycleCORBA/libSalomeLifeCycleCORBA.la \ @CORBA_GEN_TRUE@ ../LifeCycleCORBA/Test/libLifeCycleCORBATest.la \ @CORBA_GEN_TRUE@ ../SALOMEDSImpl/libSalomeDSImpl.la \ @CORBA_GEN_TRUE@ ../SALOMEDSImpl/Test/libSALOMEDSImplTest.la \ @CORBA_GEN_TRUE@ ../SALOMEDS/libSalomeDS.la \ @CORBA_GEN_TRUE@ ../SALOMEDS/Test/libSALOMEDSTest.la \ @CORBA_GEN_TRUE@ $(top_builddir)/idl/libSalomeIDLKernel.la UnitTests_DEPENDENCIES = ../Basics/libSALOMEBasics.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(UnitTests_SOURCES) DIST_SOURCES = $(UnitTests_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/UnitTests/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:32 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # Executable scripts to be installed dist_salomescript_PYTHON = UnitTests.py UnitTests_SOURCES = UnitTests.cxx UnitTests_CPPFLAGS = @CPPUNIT_INCLUDES@ -I$(srcdir)/../Basics \ -I$(srcdir)/../Basics/Test -I$(srcdir)/../SALOMELocalTrace \ -I$(srcdir)/../SALOMELocalTrace/Test $(am__append_1) UnitTests_LDADD = @CPPUNIT_LIBS@ ../Basics/libSALOMEBasics.la \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ ../SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(am__append_2) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/UnitTests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/UnitTests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list UnitTests$(EXEEXT): $(UnitTests_OBJECTS) $(UnitTests_DEPENDENCIES) @rm -f UnitTests$(EXEEXT) $(CXXLINK) $(UnitTests_OBJECTS) $(UnitTests_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnitTests-UnitTests.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< UnitTests-UnitTests.o: UnitTests.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(UnitTests_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UnitTests-UnitTests.o -MD -MP -MF $(DEPDIR)/UnitTests-UnitTests.Tpo -c -o UnitTests-UnitTests.o `test -f 'UnitTests.cxx' || echo '$(srcdir)/'`UnitTests.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UnitTests-UnitTests.Tpo $(DEPDIR)/UnitTests-UnitTests.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='UnitTests.cxx' object='UnitTests-UnitTests.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(UnitTests_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UnitTests-UnitTests.o `test -f 'UnitTests.cxx' || echo '$(srcdir)/'`UnitTests.cxx UnitTests-UnitTests.obj: UnitTests.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(UnitTests_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UnitTests-UnitTests.obj -MD -MP -MF $(DEPDIR)/UnitTests-UnitTests.Tpo -c -o UnitTests-UnitTests.obj `if test -f 'UnitTests.cxx'; then $(CYGPATH_W) 'UnitTests.cxx'; else $(CYGPATH_W) '$(srcdir)/UnitTests.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UnitTests-UnitTests.Tpo $(DEPDIR)/UnitTests-UnitTests.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='UnitTests.cxx' object='UnitTests-UnitTests.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(UnitTests_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UnitTests-UnitTests.obj `if test -f 'UnitTests.cxx'; then $(CYGPATH_W) 'UnitTests.cxx'; else $(CYGPATH_W) '$(srcdir)/UnitTests.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am \ install-dist_salomescriptPYTHON install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-dist_salomescriptPYTHON # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/UnitTests/UnitTests.cxx000077500000000000000000000034411177004724000215060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all Unit Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" #ifdef WITH_CORBA #include "SALOMETraceCollectorTest.hxx" #include "UtilsTest.hxx" #include "NamingServiceTest.hxx" #include "LifeCycleCORBATest.hxx" #include "SALOMEDSImplTest.hxx" #include "SALOMEDSTest.hxx" #endif // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMELocalTraceTest ); #ifdef WITH_CORBA CPPUNIT_TEST_SUITE_REGISTRATION( SALOMETraceCollectorTest ); CPPUNIT_TEST_SUITE_REGISTRATION( UtilsTest ); CPPUNIT_TEST_SUITE_REGISTRATION( NamingServiceTest ); CPPUNIT_TEST_SUITE_REGISTRATION( LifeCycleCORBATest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMEDSImplTest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMEDSTest ); #endif // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/UnitTests/UnitTests.py000077500000000000000000000047151177004724000213410ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import setenv import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = setenv.get_config() setenv.set_env(args, modules_list, modules_root_dir) # set environment for trace in logger # (with file, servers may be killed before the write to the file...) #os.environ["SALOME_trace"] = "file:/tmp/traceUnitTest.log" #os.environ["SALOME_trace"] = "local" os.environ["SALOME_trace"] = "with_logger" # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # launch notify server myServer=runSalome.NotifyServer(args,modules_root_dir) myServer.run() # launch registry server myServer=runSalome.RegistryServer(args) myServer.run() clt.waitNS("/Registry") # launch module catalog server cataServer=runSalome.CatalogServer(args) cataServer.setpath(modules_list,modules_root_dir) cataServer.run() clt.waitNS("/Kernel/ModulCatalog") # launch container manager server myCmServer = runSalome.LauncherServer(args) myCmServer.setpath(modules_list,modules_root_dir) myCmServer.run() clt.waitNS("/SalomeLauncher") # execute Unit Test command = ['UnitTests'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill containers created by the Container Manager import Engines launcher = clt.waitNS("/SalomeLauncher",Engines.SalomeLauncher) launcher.Shutdown() # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/Utils/000077500000000000000000000000001177004724000161515ustar00rootroot00000000000000salome-kernel-6.5.0/src/Utils/Makefile.am000077500000000000000000000044261177004724000202160ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Utils : general SALOME's definitions and tools # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:32 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # header files salomeinclude_HEADERS =\ OpUtil.hxx \ Utils_Timer.hxx \ Utils_CorbaException.hxx \ Utils_CommException.hxx \ Utils_SALOME_Exception.hxx \ Utils_ORB_INIT.hxx \ Utils_Identity.hxx \ Utils_SINGLETON.hxx \ Utils_DESTRUCTEUR_GENERIQUE.hxx \ Utils_ExceptHandlers.hxx \ Utils_Mutex.hxx \ SALOME_Utils.hxx # Scripts to be exported dist_salomescript_PYTHON =\ Utils_Identity.py \ SALOME_utilities.py # Libraries targets lib_LTLIBRARIES = libOpUtil.la libOpUtil_la_SOURCES =\ Utils_Timer.cxx \ duplicate.cxx \ Utils_CommException.cxx \ Utils_SALOME_Exception.cxx \ Utils_Identity.cxx Utils_ORB_INIT.cxx \ Utils_DESTRUCTEUR_GENERIQUE.cxx \ Utils_ExceptHandlers.cxx \ Utils_Mutex.cxx libOpUtil_la_LDFLAGS = -no-undefined -version-info=0:0:0 libOpUtil_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libOpUtil_la_LIBADD = \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ salome-kernel-6.5.0/src/Utils/Makefile.in000077500000000000000000001222721177004724000202270ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am subdir = src/Utils ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomescriptdir)" \ "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libOpUtil_la_DEPENDENCIES = \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la am_libOpUtil_la_OBJECTS = libOpUtil_la-Utils_Timer.lo \ libOpUtil_la-duplicate.lo libOpUtil_la-Utils_CommException.lo \ libOpUtil_la-Utils_SALOME_Exception.lo \ libOpUtil_la-Utils_Identity.lo libOpUtil_la-Utils_ORB_INIT.lo \ libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.lo \ libOpUtil_la-Utils_ExceptHandlers.lo \ libOpUtil_la-Utils_Mutex.lo libOpUtil_la_OBJECTS = $(am_libOpUtil_la_OBJECTS) libOpUtil_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libOpUtil_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libOpUtil_la_SOURCES) DIST_SOURCES = $(libOpUtil_la_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules # SALOME Utils : general SALOME's definitions and tools # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Makefile.am,v 1.5.2.2.14.2.12.1 2012-04-12 14:05:32 vsr Exp $ # # header files salomeinclude_HEADERS = \ OpUtil.hxx \ Utils_Timer.hxx \ Utils_CorbaException.hxx \ Utils_CommException.hxx \ Utils_SALOME_Exception.hxx \ Utils_ORB_INIT.hxx \ Utils_Identity.hxx \ Utils_SINGLETON.hxx \ Utils_DESTRUCTEUR_GENERIQUE.hxx \ Utils_ExceptHandlers.hxx \ Utils_Mutex.hxx \ SALOME_Utils.hxx # Scripts to be exported dist_salomescript_PYTHON = \ Utils_Identity.py \ SALOME_utilities.py # Libraries targets lib_LTLIBRARIES = libOpUtil.la libOpUtil_la_SOURCES = \ Utils_Timer.cxx \ duplicate.cxx \ Utils_CommException.cxx \ Utils_SALOME_Exception.cxx \ Utils_Identity.cxx Utils_ORB_INIT.cxx \ Utils_DESTRUCTEUR_GENERIQUE.cxx \ Utils_ExceptHandlers.cxx \ Utils_Mutex.cxx libOpUtil_la_LDFLAGS = -no-undefined -version-info=0:0:0 libOpUtil_la_CPPFLAGS = \ -I$(srcdir)/../Basics \ -I$(srcdir)/../SALOMELocalTrace \ -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ libOpUtil_la_LIBADD = \ ../SALOMELocalTrace/libSALOMELocalTrace.la \ $(top_builddir)/idl/libSalomeIDLKernel.la \ @CORBA_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Utils/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Utils/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libOpUtil.la: $(libOpUtil_la_OBJECTS) $(libOpUtil_la_DEPENDENCIES) $(libOpUtil_la_LINK) -rpath $(libdir) $(libOpUtil_la_OBJECTS) $(libOpUtil_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_CommException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_ExceptHandlers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_Identity.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_Mutex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_ORB_INIT.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_SALOME_Exception.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-Utils_Timer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libOpUtil_la-duplicate.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libOpUtil_la-Utils_Timer.lo: Utils_Timer.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_Timer.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_Timer.Tpo -c -o libOpUtil_la-Utils_Timer.lo `test -f 'Utils_Timer.cxx' || echo '$(srcdir)/'`Utils_Timer.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_Timer.Tpo $(DEPDIR)/libOpUtil_la-Utils_Timer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_Timer.cxx' object='libOpUtil_la-Utils_Timer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_Timer.lo `test -f 'Utils_Timer.cxx' || echo '$(srcdir)/'`Utils_Timer.cxx libOpUtil_la-duplicate.lo: duplicate.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-duplicate.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-duplicate.Tpo -c -o libOpUtil_la-duplicate.lo `test -f 'duplicate.cxx' || echo '$(srcdir)/'`duplicate.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-duplicate.Tpo $(DEPDIR)/libOpUtil_la-duplicate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='duplicate.cxx' object='libOpUtil_la-duplicate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-duplicate.lo `test -f 'duplicate.cxx' || echo '$(srcdir)/'`duplicate.cxx libOpUtil_la-Utils_CommException.lo: Utils_CommException.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_CommException.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_CommException.Tpo -c -o libOpUtil_la-Utils_CommException.lo `test -f 'Utils_CommException.cxx' || echo '$(srcdir)/'`Utils_CommException.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_CommException.Tpo $(DEPDIR)/libOpUtil_la-Utils_CommException.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_CommException.cxx' object='libOpUtil_la-Utils_CommException.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_CommException.lo `test -f 'Utils_CommException.cxx' || echo '$(srcdir)/'`Utils_CommException.cxx libOpUtil_la-Utils_SALOME_Exception.lo: Utils_SALOME_Exception.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_SALOME_Exception.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_SALOME_Exception.Tpo -c -o libOpUtil_la-Utils_SALOME_Exception.lo `test -f 'Utils_SALOME_Exception.cxx' || echo '$(srcdir)/'`Utils_SALOME_Exception.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_SALOME_Exception.Tpo $(DEPDIR)/libOpUtil_la-Utils_SALOME_Exception.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_SALOME_Exception.cxx' object='libOpUtil_la-Utils_SALOME_Exception.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_SALOME_Exception.lo `test -f 'Utils_SALOME_Exception.cxx' || echo '$(srcdir)/'`Utils_SALOME_Exception.cxx libOpUtil_la-Utils_Identity.lo: Utils_Identity.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_Identity.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_Identity.Tpo -c -o libOpUtil_la-Utils_Identity.lo `test -f 'Utils_Identity.cxx' || echo '$(srcdir)/'`Utils_Identity.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_Identity.Tpo $(DEPDIR)/libOpUtil_la-Utils_Identity.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_Identity.cxx' object='libOpUtil_la-Utils_Identity.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_Identity.lo `test -f 'Utils_Identity.cxx' || echo '$(srcdir)/'`Utils_Identity.cxx libOpUtil_la-Utils_ORB_INIT.lo: Utils_ORB_INIT.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_ORB_INIT.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_ORB_INIT.Tpo -c -o libOpUtil_la-Utils_ORB_INIT.lo `test -f 'Utils_ORB_INIT.cxx' || echo '$(srcdir)/'`Utils_ORB_INIT.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_ORB_INIT.Tpo $(DEPDIR)/libOpUtil_la-Utils_ORB_INIT.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_ORB_INIT.cxx' object='libOpUtil_la-Utils_ORB_INIT.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_ORB_INIT.lo `test -f 'Utils_ORB_INIT.cxx' || echo '$(srcdir)/'`Utils_ORB_INIT.cxx libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.lo: Utils_DESTRUCTEUR_GENERIQUE.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.Tpo -c -o libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.lo `test -f 'Utils_DESTRUCTEUR_GENERIQUE.cxx' || echo '$(srcdir)/'`Utils_DESTRUCTEUR_GENERIQUE.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.Tpo $(DEPDIR)/libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_DESTRUCTEUR_GENERIQUE.cxx' object='libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_DESTRUCTEUR_GENERIQUE.lo `test -f 'Utils_DESTRUCTEUR_GENERIQUE.cxx' || echo '$(srcdir)/'`Utils_DESTRUCTEUR_GENERIQUE.cxx libOpUtil_la-Utils_ExceptHandlers.lo: Utils_ExceptHandlers.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_ExceptHandlers.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_ExceptHandlers.Tpo -c -o libOpUtil_la-Utils_ExceptHandlers.lo `test -f 'Utils_ExceptHandlers.cxx' || echo '$(srcdir)/'`Utils_ExceptHandlers.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_ExceptHandlers.Tpo $(DEPDIR)/libOpUtil_la-Utils_ExceptHandlers.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_ExceptHandlers.cxx' object='libOpUtil_la-Utils_ExceptHandlers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_ExceptHandlers.lo `test -f 'Utils_ExceptHandlers.cxx' || echo '$(srcdir)/'`Utils_ExceptHandlers.cxx libOpUtil_la-Utils_Mutex.lo: Utils_Mutex.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libOpUtil_la-Utils_Mutex.lo -MD -MP -MF $(DEPDIR)/libOpUtil_la-Utils_Mutex.Tpo -c -o libOpUtil_la-Utils_Mutex.lo `test -f 'Utils_Mutex.cxx' || echo '$(srcdir)/'`Utils_Mutex.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libOpUtil_la-Utils_Mutex.Tpo $(DEPDIR)/libOpUtil_la-Utils_Mutex.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils_Mutex.cxx' object='libOpUtil_la-Utils_Mutex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libOpUtil_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libOpUtil_la-Utils_Mutex.lo `test -f 'Utils_Mutex.cxx' || echo '$(srcdir)/'`Utils_Mutex.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_salomescriptPYTHON install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-salomeincludeHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Utils/OpUtil.hxx000077500000000000000000000022741177004724000201260ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : OpUtil.hxx // Module : SALOME // #ifndef _OPUTIL_HXX #define _OPUTIL_HXX #include "SALOME_Utils.hxx" UTILS_EXPORT const char *duplicate(const char * const); #endif salome-kernel-6.5.0/src/Utils/SALOME_Utils.hxx000077500000000000000000000024651177004724000210540ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : SALOME_Utils.hxx // Author : Alexander A. BORODIN // Module : SALOME // #ifndef _SALOME_UTILS_HXX_ #define _SALOME_UTILS_HXX_ #ifdef WIN32 # if defined UTILS_EXPORTS || defined OpUtil_EXPORTS # define UTILS_EXPORT __declspec( dllexport ) # else # define UTILS_EXPORT __declspec( dllimport ) # endif #else # define UTILS_EXPORT #endif #endif salome-kernel-6.5.0/src/Utils/SALOME_utilities.py000077500000000000000000000035541177004724000216100ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Utils : general SALOME's definitions and tools # File : SALOME_utilities.py # Module : SALOME # import SALOME_Trace GLogger = SALOME_Trace.SALOME_Trace() from launchConfigureParser import verbose def MYTRACE (): if verbose(): str = "- Trace " GLogger.putMessage(str + " : ") def REPERE(): if verbose(): GLogger.putMessage(" -------------- \n") def BEGIN_OF(msg): if verbose(): REPERE(); MYTRACE(); GLogger.putMessage("Begin of : "+ str(msg) + "\n") REPERE(); def END_OF(msg): if verbose(): REPERE(); MYTRACE(); GLogger.putMessage("Normale end of : "+ str(msg) + "\n") REPERE(); def MESSAGE(msg): if verbose(): MYTRACE() GLogger.putMessage(str(msg) + "\n") def SCRUTE(var_name, var_value): MYTRACE(); GLogger.putMessage(var_name + " = " + str(var_value) + "\n") salome-kernel-6.5.0/src/Utils/Test/000077500000000000000000000000001177004724000170705ustar00rootroot00000000000000salome-kernel-6.5.0/src/Utils/Test/Makefile.am000077500000000000000000000064311177004724000211330ustar00rootroot00000000000000# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ####################################### library # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Test/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:32 vsr Exp $ # include $(top_srcdir)/salome_adm/unix/make_common_starter.am # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS= UtilsTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestUtils.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH=../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS=\ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS =\ @CPPUNIT_LIBS@ \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/Basics/libSALOMEBasics.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libUtilsTest.la libUtilsTest_la_SOURCES = UtilsTest.cxx libUtilsTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libUtilsTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libUtilsTest_la_LIBADD = $(COMMON_LIBS) # # =============================================================== # Executables targets # =============================================================== # bin_PROGRAMS = TestUtils TestUtils_SOURCES = TestUtils.cxx TestUtils_CPPFLAGS = $(COMMON_CPPFLAGS) TestUtils_LDADD = libUtilsTest.la $(COMMON_LIBS) $(CORBA_LIBS) salome-kernel-6.5.0/src/Utils/Test/Makefile.in000077500000000000000000001111571177004724000211460ustar00rootroot00000000000000# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # The following is to avoid PACKAGE_... env variable # redefinition compilation warnings # ============================================================ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(dist_salomescript_PYTHON) $(salomeinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/salome_adm/unix/make_common_starter.am bin_PROGRAMS = TestUtils$(EXEEXT) subdir = src/Utils/Test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/salome_adm/unix/config_files/ac_check_sizeof_fortran.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_depend_flag.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_have_sstream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_namespaces.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_option.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_template_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_cxx_warnings.m4 \ $(top_srcdir)/salome_adm/unix/config_files/ac_linker_options.m4 \ $(top_srcdir)/salome_adm/unix/config_files/acx_pthread.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_boost.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_calcium.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_corba.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_cppunit.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_f77.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_hdf5.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_htmlgen.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_lam.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libbatch.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_libxml.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_mpich.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_omniorb.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_openmpi.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_paco++.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sockets.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_sphinx.m4 \ $(top_srcdir)/salome_adm/unix/config_files/check_swig.m4 \ $(top_srcdir)/salome_adm/unix/config_files/enable_pthreads.m4 \ $(top_srcdir)/salome_adm/unix/config_files/hack_libtool.m4 \ $(top_srcdir)/salome_adm/unix/config_files/local_install.m4 \ $(top_srcdir)/salome_adm/unix/config_files/production.m4 \ $(top_srcdir)/salome_adm/unix/config_files/python.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \ $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/Basics/libSALOMEBasics.la libUtilsTest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libUtilsTest_la_OBJECTS = libUtilsTest_la-UtilsTest.lo libUtilsTest_la_OBJECTS = $(am_libUtilsTest_la_OBJECTS) libUtilsTest_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libUtilsTest_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) am_TestUtils_OBJECTS = TestUtils-TestUtils.$(OBJEXT) TestUtils_OBJECTS = $(am_TestUtils_OBJECTS) am__DEPENDENCIES_2 = TestUtils_DEPENDENCIES = libUtilsTest.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/salome_adm/unix/config_files/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libUtilsTest_la_SOURCES) $(TestUtils_SOURCES) DIST_SOURCES = $(libUtilsTest_la_SOURCES) $(TestUtils_SOURCES) py_compile = $(top_srcdir)/salome_adm/unix/config_files/py-compile HEADERS = $(salomeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ BOOST_LIBS = @BOOST_LIBS@ BOOST_LIBSUFFIX = @BOOST_LIBSUFFIX@ BOOST_LIB_REGEX = @BOOST_LIB_REGEX@ BOOST_LIB_SIGNALS = @BOOST_LIB_SIGNALS@ BOOST_LIB_SYSTEM = @BOOST_LIB_SYSTEM@ BOOST_LIB_THREAD = @BOOST_LIB_THREAD@ BOOST_PROGRAM_OPTIONS_LIB = @BOOST_PROGRAM_OPTIONS_LIB@ CALCIUM_CORBA_INT_F77 = @CALCIUM_CORBA_INT_F77@ CALCIUM_IDL_INT_F77 = @CALCIUM_IDL_INT_F77@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ CORBA_INCLUDES = @CORBA_INCLUDES@ CORBA_LIBS = @CORBA_LIBS@ CORBA_ROOT = @CORBA_ROOT@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPUNIT_INCLUDES = @CPPUNIT_INCLUDES@ CPPUNIT_LIBS = @CPPUNIT_LIBS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXTMPDPTHFLAGS = @CXXTMPDPTHFLAGS@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ CYGPATH_W = @CYGPATH_W@ C_DEPEND_FLAG = @C_DEPEND_FLAG@ DEFS = @DEFS@ DEPCC = @DEPCC@ DEPCXX = @DEPCXX@ DEPCXXFLAGS = @DEPCXXFLAGS@ DEPDIR = @DEPDIR@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ DVIPS = @DVIPS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GLOBAL_INSTALL = @GLOBAL_INSTALL@ GREP = @GREP@ HAVE_SSTREAM = @HAVE_SSTREAM@ HDF5HOME = @HDF5HOME@ HDF5_INCLUDES = @HDF5_INCLUDES@ HDF5_LIBS = @HDF5_LIBS@ HDF5_MT_LIBS = @HDF5_MT_LIBS@ IDL = @IDL@ IDLCXXFLAGS = @IDLCXXFLAGS@ IDLPYFLAGS = @IDLPYFLAGS@ IDL_CLN_CXX = @IDL_CLN_CXX@ IDL_CLN_H = @IDL_CLN_H@ IDL_CLN_OBJ = @IDL_CLN_OBJ@ IDL_SRV_CXX = @IDL_SRV_CXX@ IDL_SRV_H = @IDL_SRV_H@ IDL_SRV_OBJ = @IDL_SRV_OBJ@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ LDFLAGS = @LDFLAGS@ LIBBATCH_INCLUDES = @LIBBATCH_INCLUDES@ LIBBATCH_LIBS = @LIBBATCH_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML_INCLUDES = @LIBXML_INCLUDES@ LIBXML_LIBS = @LIBXML_LIBS@ LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ LIPO = @LIPO@ LN_S = @LN_S@ LONG_OR_INT = @LONG_OR_INT@ LTLIBOBJS = @LTLIBOBJS@ MACHINE = @MACHINE@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MODULE_NAME = @MODULE_NAME@ MPI_INCLUDES = @MPI_INCLUDES@ MPI_LIBS = @MPI_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ OMNIORB_LIBS = @OMNIORB_LIBS@ OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ OMNIORB_ROOT = @OMNIORB_ROOT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ PACOPATH = @PACOPATH@ PACO_IDL = @PACO_IDL@ PACO_INCLUDES = @PACO_INCLUDES@ PACO_LIBS = @PACO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PYLOGLEVEL = @PYLOGLEVEL@ PYTHON = @PYTHON@ PYTHONHOME = @PYTHONHOME@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_INCLUDES = @PYTHON_INCLUDES@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE = @PYTHON_SITE@ PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ ROOT_BUILDDIR = @ROOT_BUILDDIR@ ROOT_SRCDIR = @ROOT_SRCDIR@ RST2HTML = @RST2HTML@ SED = @SED@ SETX = @SETX@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKETFLAGS = @SOCKETFLAGS@ SOCKETLIBS = @SOCKETLIBS@ SPHINX = @SPHINX@ STDLIB = @STDLIB@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_FLAGS = @SWIG_FLAGS@ VERSION = @VERSION@ VERSION_DEV = @VERSION_DEV@ WITHMPI = @WITHMPI@ XVERSION = @XVERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = $(prefix)/bin/salome build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cppunit_ok = @cppunit_ok@ datadir = @datadir@ datarootdir = @datarootdir@ # Documentation directory docdir = $(datadir)/doc/salome dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ mpi2_ok = @mpi2_ok@ mpi_ok = @mpi_ok@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WITHONLYLAUNCHER_FALSE@AM_CXXFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CXXFLAGS = @WITHONLYLAUNCHER_FALSE@AM_CPPFLAGS = -I$(top_builddir)/salome_adm/unix -include SALOMEconfig.h @WITHONLYLAUNCHER_TRUE@AM_CPPFLAGS = # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ # Standard directory for installation # salomeincludedir = $(includedir)/salome salomescriptdir = $(bindir) # _GBO_SALOME_PYTHON_PACKAGING_ # Maybe we could try to suppress on stage in this folder path, for # example by installing by default the python files in site-packages # folder. Then, python packages could be installed in the # site-packages/salome folder (main package containing the root # __init__.py file). This could be done by replacing salomepythondir # and salomepyexecdir by pythondir and pyexecdir respectively (TO BE # DONE) salomepythondir = $(pythondir)/salome salomepyexecdir = $(pyexecdir)/salome salomepypkgdir = $(salomepythondir)/salome # Directory for installing idl files salomeidldir = $(prefix)/idl/salome # Directory for installing resource files salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directory for installation cmake files salome_cmakedir = $(prefix)/salome_adm/cmake_files # Directories for installing admin files salomeadmdir = $(prefix)/salome_adm salomeadmuxdir = $(salomeadmdir)/unix salomem4dir = $(salomeadmdir)/unix/config_files salome4deprdir = $(salomeadmdir)/unix/config_files/DEPRECATED # Shared modules installation directory sharedpkgpythondir = $(salomepythondir)/shared_modules ####################################### library # SALOMELocalTrace : log on local machine # File : Makefile.am # Author : Guillaume Boulant (CSSI) # Module : KERNEL # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Test/Makefile.am,v 1.5.2.2.14.3.12.1 2012-04-12 14:05:32 vsr Exp $ # # # =============================================================== # Files to be installed # =============================================================== # # header files salomeinclude_HEADERS = UtilsTest.hxx # Scripts to be installed dist_salomescript_PYTHON = TestUtils.py # # =============================================================== # Local definitions # =============================================================== # # This directory defines the subdirectory src in the top source directory. RPATH = ../.. # This local variable defines the list of CPPFLAGS common to all target in this package. COMMON_CPPFLAGS = \ @CPPUNIT_INCLUDES@ \ -I$(srcdir)/$(RPATH)/Basics -I$(srcdir)/$(RPATH)/Basics/Test \ -I$(srcdir)/$(RPATH)/SALOMELocalTrace -I$(srcdir)/$(RPATH)/SALOMELocalTrace/Test \ -I$(srcdir)/$(RPATH)/SALOMETraceCollector -I$(srcdir)/$(RPATH)/SALOMETraceCollector/Test \ -I$(srcdir)/$(RPATH)/Utils -I$(srcdir)/$(RPATH)/Utils/Test # This local variable defines the list of dependant libraries common to all target in this package. COMMON_LIBS = \ @CPPUNIT_LIBS@ \ $(RPATH)/Utils/libOpUtil.la \ $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \ $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \ $(RPATH)/Basics/libSALOMEBasics.la # # =============================================================== # Libraries targets # =============================================================== # lib_LTLIBRARIES = libUtilsTest.la libUtilsTest_la_SOURCES = UtilsTest.cxx libUtilsTest_la_CPPFLAGS = $(COMMON_CPPFLAGS) libUtilsTest_la_LDFLAGS = -no-undefined -version-info=0:0:0 libUtilsTest_la_LIBADD = $(COMMON_LIBS) TestUtils_SOURCES = TestUtils.cxx TestUtils_CPPFLAGS = $(COMMON_CPPFLAGS) TestUtils_LDADD = libUtilsTest.la $(COMMON_LIBS) $(CORBA_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/salome_adm/unix/make_common_starter.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Utils/Test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Utils/Test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libUtilsTest.la: $(libUtilsTest_la_OBJECTS) $(libUtilsTest_la_DEPENDENCIES) $(libUtilsTest_la_LINK) -rpath $(libdir) $(libUtilsTest_la_OBJECTS) $(libUtilsTest_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list TestUtils$(EXEEXT): $(TestUtils_OBJECTS) $(TestUtils_DEPENDENCIES) @rm -f TestUtils$(EXEEXT) $(CXXLINK) $(TestUtils_OBJECTS) $(TestUtils_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestUtils-TestUtils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libUtilsTest_la-UtilsTest.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libUtilsTest_la-UtilsTest.lo: UtilsTest.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libUtilsTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libUtilsTest_la-UtilsTest.lo -MD -MP -MF $(DEPDIR)/libUtilsTest_la-UtilsTest.Tpo -c -o libUtilsTest_la-UtilsTest.lo `test -f 'UtilsTest.cxx' || echo '$(srcdir)/'`UtilsTest.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libUtilsTest_la-UtilsTest.Tpo $(DEPDIR)/libUtilsTest_la-UtilsTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='UtilsTest.cxx' object='libUtilsTest_la-UtilsTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libUtilsTest_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libUtilsTest_la-UtilsTest.lo `test -f 'UtilsTest.cxx' || echo '$(srcdir)/'`UtilsTest.cxx TestUtils-TestUtils.o: TestUtils.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestUtils_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestUtils-TestUtils.o -MD -MP -MF $(DEPDIR)/TestUtils-TestUtils.Tpo -c -o TestUtils-TestUtils.o `test -f 'TestUtils.cxx' || echo '$(srcdir)/'`TestUtils.cxx @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestUtils-TestUtils.Tpo $(DEPDIR)/TestUtils-TestUtils.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestUtils.cxx' object='TestUtils-TestUtils.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestUtils_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestUtils-TestUtils.o `test -f 'TestUtils.cxx' || echo '$(srcdir)/'`TestUtils.cxx TestUtils-TestUtils.obj: TestUtils.cxx @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestUtils_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestUtils-TestUtils.obj -MD -MP -MF $(DEPDIR)/TestUtils-TestUtils.Tpo -c -o TestUtils-TestUtils.obj `if test -f 'TestUtils.cxx'; then $(CYGPATH_W) 'TestUtils.cxx'; else $(CYGPATH_W) '$(srcdir)/TestUtils.cxx'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestUtils-TestUtils.Tpo $(DEPDIR)/TestUtils-TestUtils.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TestUtils.cxx' object='TestUtils-TestUtils.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TestUtils_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestUtils-TestUtils.obj `if test -f 'TestUtils.cxx'; then $(CYGPATH_W) 'TestUtils.cxx'; else $(CYGPATH_W) '$(srcdir)/TestUtils.cxx'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_salomescriptPYTHON: $(dist_salomescript_PYTHON) @$(NORMAL_INSTALL) test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" @list='$(dist_salomescript_PYTHON)'; dlist=; list2=; test -n "$(salomescriptdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(salomescriptdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(salomescriptdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ if test -z "$(DESTDIR)"; then \ PYTHON=$(PYTHON) $(py_compile) --basedir "$(salomescriptdir)" $$dlist; \ else \ PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(salomescriptdir)" $$dlist; \ fi; \ else :; fi uninstall-dist_salomescriptPYTHON: @$(NORMAL_UNINSTALL) @list='$(dist_salomescript_PYTHON)'; test -n "$(salomescriptdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ filesc=`echo "$$files" | sed 's|$$|c|'`; \ fileso=`echo "$$files" | sed 's|$$|o|'`; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$files || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$filesc ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$filesc || exit $$?; \ echo " ( cd '$(DESTDIR)$(salomescriptdir)' && rm -f" $$fileso ")"; \ cd "$(DESTDIR)$(salomescriptdir)" && rm -f $$fileso install-salomeincludeHEADERS: $(salomeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(salomeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(salomeincludedir)" @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(salomeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(salomeincludedir)" || exit $$?; \ done uninstall-salomeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(salomeinclude_HEADERS)'; test -n "$(salomeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(salomeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(salomeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_salomescriptPYTHON \ install-salomeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_salomescriptPYTHON \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-salomeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_salomescriptPYTHON \ uninstall-libLTLIBRARIES uninstall-salomeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: salome-kernel-6.5.0/src/Utils/Test/TestUtils.cxx000077500000000000000000000026341177004724000215640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // --- include all Unit Test from basics until the present directory // #include "SALOMELocalTraceTest.hxx" #include "SALOMETraceCollectorTest.hxx" #include "UtilsTest.hxx" // --- Registers the fixture into the 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( SALOMELocalTraceTest ); CPPUNIT_TEST_SUITE_REGISTRATION( SALOMETraceCollectorTest ); CPPUNIT_TEST_SUITE_REGISTRATION( UtilsTest ); // --- generic Main program from Basic/Test #include "BasicMainTest.hxx" salome-kernel-6.5.0/src/Utils/Test/TestUtils.py000077500000000000000000000030111177004724000214000ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # import sys, os,signal,string,commands import runSalome import orbmodule import TestKiller # get SALOME environment : args, modules_list, modules_root_dir = runSalome.get_config() runSalome.set_env(args, modules_list, modules_root_dir) # launch CORBA naming server clt=orbmodule.client() # launch CORBA logger server myServer=runSalome.LoggerServer(args) myServer.run() clt.waitLogger("Logger") # execute Unit Test command = ['TestUtils'] ret = os.spawnvp(os.P_WAIT, command[0], command) # kill Test process TestKiller.killProcess(runSalome.process_id) salome-kernel-6.5.0/src/Utils/Test/UtilsTest.cxx000077500000000000000000000064251177004724000215660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "UtilsTest.hxx" #include #include #include #include #include "Utils_SALOME_Exception.hxx" #include "utilities.h" #define TRACEFILE "/tmp/traceUnitTest.log" // ============================================================================ /*! * Set Trace mecanism * - delete preexisting trace classes if any * - set trace on file */ // ============================================================================ void UtilsTest::setUp() { LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); bp1->deleteInstance(bp1); // --- trace on file const char *theFileName = TRACEFILE; std::string s = "file:"; s += theFileName; CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite std::ofstream traceFile; traceFile.open(theFileName, std::ios::out | std::ios::app); CPPUNIT_ASSERT(traceFile); // file created empty, then closed traceFile.close(); bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); } // ============================================================================ /*! * - delete trace classes */ // ============================================================================ void UtilsTest::tearDown() { LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance(); CPPUNIT_ASSERT(bp1); bp1->deleteInstance(bp1); } int genExcept() { throw SALOME_Exception("a message"); }; // ============================================================================ /*! * Check basic SALOME_exception mecanism */ // ============================================================================ void UtilsTest::testSALOME_ExceptionThrow() { CPPUNIT_ASSERT_THROW(genExcept(), SALOME_Exception); } // ============================================================================ /*! * Check message on catch */ // ============================================================================ void UtilsTest::testSALOME_ExceptionMessage() { #define EXAMPLE_EXCEPTION_MESSAGE "something for the end user" try { throw SALOME_Exception(EXAMPLE_EXCEPTION_MESSAGE); } catch (const SALOME_Exception &ex) { std::string expectedMessage = EXAMPLE_EXCEPTION_MESSAGE; std::string actualMessage = ex.what(); CPPUNIT_ASSERT(actualMessage.find(expectedMessage) != std::string::npos); } } salome-kernel-6.5.0/src/Utils/Test/UtilsTest.hxx000077500000000000000000000025721177004724000215720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _UTILSTEST_HXX_ #define _UTILSTEST_HXX_ #include class UtilsTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( UtilsTest ); CPPUNIT_TEST( testSALOME_ExceptionThrow ); CPPUNIT_TEST( testSALOME_ExceptionMessage ); CPPUNIT_TEST_SUITE_END(); public: void setUp(); void tearDown(); void testSALOME_ExceptionThrow(); void testSALOME_ExceptionMessage(); }; #endif salome-kernel-6.5.0/src/Utils/Utils_CommException.cxx000077500000000000000000000030611177004724000226320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_CommException.cxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_CommException.cxx,v 1.8.30.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # include "Utils_CommException.hxx" CommException::CommException( void ): SALOME_Exception( "CommException" ) { } CommException::CommException( const char *texte ): SALOME_Exception( texte ) { } CommException::CommException( const CommException &ex ): SALOME_Exception( ex ) { } CommException::~CommException() throw () { } salome-kernel-6.5.0/src/Utils/Utils_CommException.hxx000077500000000000000000000032461177004724000226440ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_CommException.hxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_CommException.hxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # if !defined ( __Utils_CommException_H__ ) # define __Utils_CommException_H__ ) #include "SALOME_Utils.hxx" #include "Utils_SALOME_Exception.hxx" class UTILS_EXPORT CommException : public SALOME_Exception { public : CommException( void ); CommException( const char *texte ); CommException( const CommException &ex ); ~CommException() throw (); } ; # endif /* # if ( !defined __Utils_CommException_H__ ) */ salome-kernel-6.5.0/src/Utils/Utils_CorbaException.hxx000077500000000000000000000044141177004724000227750ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_CorbaException.hxx // Author : Paul RASCLE, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_CorbaException.hxx,v 1.9.30.2.12.1 2012-04-12 14:05:32 vsr Exp $ // #ifndef _UTILS_CORBAEXCEPTION_HXX_ #define _UTILS_CORBAEXCEPTION_HXX_ #include "SALOME_Utils.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Exception) /*! * To raise a CORBA exception from a CORBA servant. */ # define THROW_SALOME_CORBA_EXCEPTION(chain, typex) \ {\ SALOME::ExceptionStruct ExDescription; \ ExDescription.text = CORBA::string_dup(chain); \ ExDescription.type = typex; \ ExDescription.sourceFile = CORBA::string_dup(__FILE__); \ ExDescription.lineNumber = __LINE__; \ throw SALOME::SALOME_Exception(ExDescription); \ } #include //Dump the CORBA exception type. inline std::ostream& operator<<(std::ostream& os, const CORBA::Exception& e) { CORBA::Any tmp; tmp<<= e; CORBA::TypeCode_var tc = tmp.type(); const char *p = tc->name(); os<<"CORBA Exception was catch of the kind : "; if ( *p != '\0' ) { os<id(); } return os; } #endif salome-kernel-6.5.0/src/Utils/Utils_DESTRUCTEUR_GENERIQUE.cxx000077500000000000000000000140351177004724000233000ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_DESTRUCTEUR_GENERIQUE.cxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_DESTRUCTEUR_GENERIQUE.cxx,v 1.12.2.1.10.3.12.1 2012-04-12 14:05:32 vsr Exp $ // # include # include extern "C" { # include } # include "Utils_DESTRUCTEUR_GENERIQUE.hxx" //# include "utilities.h" # include "LocalTraceBufferPool.hxx" void Nettoyage(); #ifdef _DEBUG_ // static int MYDEBUG = 0; #else // static int MYDEBUG = 0; #endif std::list *DESTRUCTEUR_GENERIQUE_::Destructeurs=0 ; /*! \class ATEXIT_ * * Mecanisme pour faire executer une seule fois DESTRUCTEUR_GENERIQUE_::Nettoyage * a la fin du traitement : creation d'un singleton statique de l'objet * tres specialise ATEXIT_. * * La creation d'un objet de type ATEXIT_ entraine l'inscription de la fonction * Nettoyage() par atexit(). Il suffit donc de creer un singleton statique du type ATEXIT_ * pour effectuer cet enregistrement une seule fois independament de l'utilisateur. */ //CCRT static bool ATEXIT_Done = false ; //CCRT class ATEXIT_ { public : /*! * Allocation dynamique de Destructeurs, une liste chainee de DESTRUCTEUR_GENERIQUE_* et enregistrement * de la fonction Nettoyage() par atexit(). * * La liste chainee Destructeurs est detruite dans la fonction Nettoyage. */ //CCRT ATEXIT_( void ) ATEXIT_( bool Make_ATEXIT ) { //CCRT if ( Make_ATEXIT && !ATEXIT_Done ) { //CCRT assert (DESTRUCTEUR_GENERIQUE_::Destructeurs==0); //cerr << "ATEXIT_::ATEXIT_ Construction ATEXIT" << endl;// message necessaire pour utiliser logger dans Nettoyage (cf.BUG KERNEL4561) DESTRUCTEUR_GENERIQUE_::Destructeurs = new std::list ; // Destructeur alloue dynamiquement (cf. ci-dessous) , // il est utilise puis detruit par la fonction Nettoyage //To be sure the trace singleton will be the last one to be destroyed initialize it here before calling atexit LocalTraceBufferPool::instance(); #ifndef _DEBUG_ atexit( Nettoyage ); // execute Nettoyage lors de exit, aprs la destruction des donnees statiques ! #else int cr = atexit( Nettoyage ); // execute Nettoyage lors de exit, aprs la destruction des donnees statiques ! assert(cr==0) ; #endif ATEXIT_Done = true ; } } ~ATEXIT_( ) { //cerr << "ATEXIT_::~ATEXIT_ Destruction ATEXIT" << endl; } }; static ATEXIT_ nettoyage = ATEXIT_( false ); /* singleton statique */ /*! * traitement effectue : * -# execution de tous les objets de type DESTRUCTEUR_DE_ stockes dans la liste Destructeurs (ce qui detruit les * singletons correspondant) ; * -# puis destruction de tous les objets de type DESTRUCTEUR_DE_ stockes dans la liste Destructeurs; * -# destruction de la liste Destructeurs. */ void Nettoyage( void ) { //cerr << "Nettoyage()" << endl; //if(MYDEBUG) BEGIN_OF("Nettoyage( void )") ; assert(DESTRUCTEUR_GENERIQUE_::Destructeurs) ; //if(MYDEBUG) SCRUTE( DESTRUCTEUR_GENERIQUE_::Destructeurs->size() ) ; if( DESTRUCTEUR_GENERIQUE_::Destructeurs->size() ) { std::list::iterator it = DESTRUCTEUR_GENERIQUE_::Destructeurs->end() ; do { //if(MYDEBUG) MESSAGE( "DESTRUCTION d'un SINGLETON"); it-- ; DESTRUCTEUR_GENERIQUE_* ptr = *it ; //DESTRUCTEUR_GENERIQUE_::Destructeurs->remove( *it ) ; (*ptr)() ; delete ptr ; }while( it!= DESTRUCTEUR_GENERIQUE_::Destructeurs->begin() ) ; DESTRUCTEUR_GENERIQUE_::Destructeurs->clear() ; //if(MYDEBUG) SCRUTE( DESTRUCTEUR_GENERIQUE_::Destructeurs->size() ) ; assert( DESTRUCTEUR_GENERIQUE_::Destructeurs->size()==0 ) ; assert( DESTRUCTEUR_GENERIQUE_::Destructeurs->empty() ) ; } delete DESTRUCTEUR_GENERIQUE_::Destructeurs; DESTRUCTEUR_GENERIQUE_::Destructeurs=0; //if(MYDEBUG) END_OF("Nettoyage( void )") ; return ; } /*! * Adds a destruction object to the list of actions to be performed at the end * of the process */ const int DESTRUCTEUR_GENERIQUE_::Ajout( DESTRUCTEUR_GENERIQUE_ &objet ) { // N.B. : l'ordre de creation des SINGLETON etant important // on n'utilise pas deux fois la meme position pour // les stocker dans la pile des objets. //CCRT if ( !ATEXIT_Done ) { nettoyage = ATEXIT_( true ) ; } //CCRT assert(Destructeurs) ; Destructeurs->push_back( &objet ) ; return Destructeurs->size() ; } salome-kernel-6.5.0/src/Utils/Utils_DESTRUCTEUR_GENERIQUE.hxx000077500000000000000000000116241177004724000233060ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_DESTRUCTEUR_GENERIQUE.hxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_DESTRUCTEUR_GENERIQUE.hxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # if !defined( __DESTRUCTEUR_GENERIQUE__H__ ) # define __DESTRUCTEUR_GENERIQUE__H__ #include #include "SALOME_Utils.hxx" #include #include #include #include //# include "utilities.h" /*!\class DESTRUCTEUR_GENERIQUE_ * * Definition * * The DESTRUCTEUR_GENERIQUE_ abstract class describes the comportement of any destruction object. * Tis type is used to create a list of miscellaneous destruction object. * * Usage * * The only way to use the DESTRUCTEUR_GENERIQUE_ class is inheritance : * class DESTRUCTEUR_SPECIFIQUE_ : public DESTRUCTEUR_GENERIQUE_ * * Design description * * A generic destructor supply two functionalities : * -# a static method to add a destruction (objetct) to be performed DESTRUCTEUR_GENERIQUE_::Ajout( * DESTRUCTEUR_GENERIQUE_ &objet) ; * The Destruction object is stored in a list of pointer to DESTRUCTEUR_GENERIQUE_ objects. * -# an object method to execute the destruction : operator()(). */ class UTILS_EXPORT DESTRUCTEUR_GENERIQUE_ { public : static std::list *Destructeurs; virtual ~DESTRUCTEUR_GENERIQUE_() {}//!< virtual destructor static const int Ajout( DESTRUCTEUR_GENERIQUE_ &objet );//!< adds a destruction object to the list of destructions virtual void operator()( void )=0 ;//!< performs the destruction }; /*!\class DESTRUCTEUR_DE_ * * Purpose * * The DESTRUCTEUR_DE_ class allows the user to program - at any moment - the destruction of an object * at the end of the process. * * Usage * * In this example the POINT_ ptrPoint will be destroyed at the end of the process (atexit). * * POINT_ *ptrPoint = new POINT_ ;
* DESTRUCTEUR_DE_ *ptrDestruction = new DESTRUCTEUR_DE_( *ptrPoint ) ; * * Note that neither ptrPoint, nor ptrDestruction should be destroyed by the user. * * Design description * * The destruction object must be created dynamicaly because it suscribes himself in the list of * destruction to be performed at the end of the process. * */ template class DESTRUCTEUR_DE_ : public DESTRUCTEUR_GENERIQUE_ { public : /* Programs the destruction at the end of the process, of the object objet. This method records in _PtrObjet the address of an object to be destroyed at the end of the process */ DESTRUCTEUR_DE_(TYPE &objet): _PtrObjet( &objet ) { assert(DESTRUCTEUR_GENERIQUE_::Ajout( *this ) >= 0) ; } /* Performs the destruction of the object. This method really destroys the object pointed by _PtrObjet. It should be called at the end of the process (i.e. at exit). */ virtual void operator()(void){ typedef PortableServer::ServantBase TServant; if(_PtrObjet){ if(dynamic_cast(_PtrObjet)){ // std::cerr << "WARNING: automatic destruction for servant is no more used. It's too late in exit. Use explicit call" << std::endl; /* if(TServant* aServant = dynamic_cast(_PtrObjet)){ PortableServer::POA_var aPOA = aServant->_default_POA(); PortableServer::ObjectId_var anObjectId = aPOA->servant_to_id(aServant); aPOA->deactivate_object(anObjectId.in()); aServant->_remove_ref(); */ }else{ //cerr << "DESTRUCTEUR_GENERIQUE_::operator() deleting _PtrObjet" << endl; TYPE* aPtr = static_cast(_PtrObjet); delete aPtr; } _PtrObjet = NULL ; } } virtual ~DESTRUCTEUR_DE_(){ assert(!_PtrObjet) ; } private : TYPE *_PtrObjet ; }; # endif /* # if !defined( __DESTRUCTEUR_GENERIQUE__H__ ) */ salome-kernel-6.5.0/src/Utils/Utils_ExceptHandlers.cxx000077500000000000000000000027401177004724000227740ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: Utils_ExceptHandler.cxx // Created: Mon Mar 15 10:23:41 2004 // Author: Oksana TCHEBANOVA // // #include "Utils_ExceptHandlers.hxx" #include "Utils_CorbaException.hxx" #include "Utils_SALOME_Exception.hxx" #include #include CORBA_SERVER_HEADER(SALOME_Exception) void SalomeException () { throw SALOME_Exception("Salome Exception"); } void SALOME_SalomeException() { THROW_SALOME_CORBA_EXCEPTION("INTERNAL ERROR", SALOME::INTERNAL_ERROR); } salome-kernel-6.5.0/src/Utils/Utils_ExceptHandlers.hxx000077500000000000000000000047171177004724000230070ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // KERNEL Utils : common utils for KERNEL // File : Utils_ExceptHandlers.hxx // Author : Oksana Tchebanova // Module : KERNEL // $Header: // #ifndef Utils_ExceptHandlers_HeaderFile #define Utils_ExceptHandlers_HeaderFile #include "SALOME_Utils.hxx" #include typedef void (*PVF)(); class UTILS_EXPORT Unexpect { //save / retrieve unexpected exceptions treatment PVF old; public : #ifndef WIN32 Unexpect( PVF f ) { old = std::set_unexpected(f); } ~Unexpect() { std::set_unexpected(old); } #else Unexpect( PVF f ) { old = ::set_unexpected(f); } ~Unexpect() { ::set_unexpected(old); } #endif }; class UTILS_EXPORT Terminate {//save / retrieve terminate function PVF old; public : #ifndef WIN32 Terminate( PVF f ) { old = std::set_terminate(f); } ~Terminate() { std::set_terminate(old); } #else Terminate( PVF f ) { old = ::set_terminate(f); } ~Terminate() { ::set_terminate(old); } #endif }; #define UNEXPECT_CATCH(FuncName, ExceptionConstructor) \ inline void FuncName () {\ throw ExceptionConstructor (); \ } //Example of the usage // void DTC_NotFound () { // throw (SALOME_DataTypeCatalog::NotFound()); // } // or the same : // // UNEXPECT_CATCH( DTC_NotFound , SALOME_DataTypeCatalog::NotFound) // in the function body : // .... // Unexpect aCatch(DTC_NotFound) // redefinition of the unexpect exceptions handler // .... //Definitions : UTILS_EXPORT extern void SalomeException(); UTILS_EXPORT extern void SALOME_SalomeException(); #endif salome-kernel-6.5.0/src/Utils/Utils_Identity.cxx000077500000000000000000000175461177004724000216660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_Identity.cxx // Author : Pascale NOYRET, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_Identity.cxx,v 1.9.2.2.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # include # include "utilities.h" # include "Utils_Identity.hxx" extern "C" { # include #ifndef WIN32 /* unix functionality */ # include #endif } #ifndef WIN32 /* unix functionality */ # include # include # include # include const char* duplicate( const char *const str ) ; const struct utsname get_uname( void ) { struct utsname hostid; #if defined(_DEBUG_) || defined(_DEBUG) const int retour=uname(&hostid); ASSERT(retour>=0); #else uname(&hostid); #endif return hostid ; } const char* get_adip( void ) { struct utsname hostid; #if defined(_DEBUG_) || defined(_DEBUG) const int retour=uname(&hostid); ASSERT(retour>=0); #else uname(&hostid); #endif const hostent* pour_adip=gethostbyname(hostid.nodename); ASSERT(pour_adip!=NULL); const in_addr ip_addr=*(struct in_addr*)(pour_adip->h_addr) ; return duplicate(inet_ntoa(ip_addr)); } const char* const get_pwname( void ) { struct passwd *papa = getpwuid(getuid()); return papa->pw_name ; } #else /* Windows functionality */ #include #include #include const char* duplicate( const char *const str ) ; const char* get_uname( void ) { static std::string hostName(256, 0); static DWORD nSize = hostName.length(); static int res = ::GetComputerNameEx(ComputerNameDnsFullyQualified, &hostName[0], &nSize); ASSERT( res ); return hostName.c_str(); } const char* get_adip( void ) { //#include //#include //static GUID sType = SVCID_HOSTNAME; //static CSADDR_INFO* ips = new CSADDR_INFO[8]; // in case multiple IP addresses are returned //static DWORD nSize = 1024; //static std::string uname = get_uname(); //static int res = ::GetAddressByName( NS_DEFAULT, &sType, &uname[0], 0, 0, 0, ips, &nSize, 0, 0 ); //if ( res ) // return ips[0].LocalAddr.lpSockaddr->sa_data; static hostent* he = ::gethostbyname( get_uname() ); if ( he && he->h_addr_list && he->h_length >0 ) { static char str[16]; unsigned i1 = (unsigned char)he->h_addr_list[0][0]; unsigned i2 = (unsigned char)he->h_addr_list[0][1]; unsigned i3 = (unsigned char)he->h_addr_list[0][2]; unsigned i4 = (unsigned char)he->h_addr_list[0][3]; sprintf ( str, "%03u.%03u.%03u.%03u", i1, i2, i3, i4 ); return str; } return ""; } const char* const get_pwname( void ) { static std::string retVal(256, 0); static DWORD dwSize = retVal.length() + 1; static int res = GetUserName( &retVal[0], &dwSize ); ASSERT( res ); return retVal.c_str(); } PSID getuid() { PSID retVal = NULL; HANDLE hProcessToken = INVALID_HANDLE_VALUE; PTOKEN_OWNER pTKowner = NULL; LPVOID buffer = NULL; DWORD dwsize = 0; if ( !OpenProcessToken ( GetCurrentProcess (), TOKEN_QUERY, &hProcessToken )) return 0; if (!GetTokenInformation(hProcessToken, TokenOwner, buffer, dwsize, &dwsize)) return 0; pTKowner = (PTOKEN_OWNER)buffer; if ( pTKowner != NULL ) { retVal = pTKowner->Owner; } if ( hProcessToken != INVALID_HANDLE_VALUE ) CloseHandle ( hProcessToken ); return retVal; } #define getcwd _getcwd #define getpid _getpid #endif /* WIN32 */ Identity::Identity( const char *name ): _name(duplicate(name)),\ _hostid(get_uname()),\ _adip(get_adip()),\ _uid(getuid()) ,\ _pwname(get_pwname()) ,\ _dir(getcwd(NULL,256)),\ _pid(getpid()) ,\ _start(time(NULL)),\ _cstart(ctime(&_start)) //CCRT { ASSERT(strlen(_dir)<256); } Identity::~Identity(void) { delete [] (char*)_name ; (char*&)_name = NULL ; //delete [] (char*)_dir ; //(char*&)_dir = NULL ; free((char*)_dir); #ifndef WIN32 // free the memory only on Unix // becasue at Windows it is the same static variable // (function get_adip() returns the same char* as get_uname() ) delete [] (char*)_adip ; #endif (char*&)_adip = NULL ; } /*------------*/ /* Accessors */ /*------------*/ const char* const Identity::name (void) const { return _name ; } #ifndef WIN32 const pid_t& Identity::pid(void) const #else const DWORD& Identity::pid(void) const #endif { return _pid ; } #ifndef WIN32 const struct utsname &Identity::hostid(void) const #else const char* const Identity::hostid(void) const #endif { return _hostid ; } #ifndef WIN32 const uid_t& Identity::uid(void) const #else const PSID& Identity::uid(void) const #endif { return _uid ; } const time_t &Identity::start(void) const { return _start ; } const char* const Identity::rep (void) const { return _dir ; } const char* const Identity::pwname (void) const { return _pwname ; } const char* const Identity::adip (void) const { return _adip ; } /*------------------*/ /* Other methods */ /*------------------*/ const char* Identity::host_char( void ) const { #ifndef WIN32 return _hostid.nodename; #else return _hostid; #endif } const char* Identity::start_char(void) const { return ctime(&_start) ; } std::ostream & operator<< ( std::ostream& os , const Identity& monid ) { ASSERT(monid._name!=NULL) ; os << "Identity :" << std::endl ; os << '\t' << "Component name : " << monid._name << std::endl ; os << '\t' << "Numero de PID : " << monid._pid << std::endl; os << '\t' << "Uid utilisateur : " << monid._uid << std::endl; os << '\t' << "nom utilisateur : " << monid._pwname << std::endl; #ifndef WIN32 os << '\t' << "Nom de machine : " << monid._hostid.nodename << std::endl; #else os << '\t' << "Nom de machine : " << monid._hostid << std::endl; #endif os << '\t' << "Adresse IP : " << monid._adip << std::endl; os << '\t' << "Heure de lancement : " << monid._cstart ; //ctime(&monid._start) ; os << '\t' << "Dans le repertoire : " << monid._dir << std::endl; return os ; } salome-kernel-6.5.0/src/Utils/Utils_Identity.hxx000077500000000000000000000057611177004724000216670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_Identity.hxx // Author : Pascale NOYRET, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_Identity.hxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # if !defined( __IDENTITE_H__ ) # define __IDENTITE_H__ #include "SALOME_Utils.hxx" extern "C" { # include # include #ifndef WIN32 # include # include #else # include #endif } class UTILS_EXPORT Identity { protected : const char* const _name ; const char* const _adip; // Internet address #ifndef WIN32 const struct utsname _hostid; const pid_t _pid ; const uid_t _uid ; #else const char* const _hostid; const DWORD _pid ; const PSID _uid ; #endif const char* const _pwname ; const char* const _dir ; const time_t _start; const char* const _cstart ; private : Identity( void ); Identity( const Identity &monid ); public : Identity(const char *name); ~Identity(); friend std::ostream & operator<< ( std::ostream& os , const Identity& monid ); #ifndef WIN32 const pid_t& pid(void) const; const struct utsname& hostid(void) const; const uid_t& uid(void) const; #else const DWORD& pid(void) const; const char* const hostid(void) const; const PSID& uid(void) const; #endif const char* const name( void ) const; const char* const adip(void) const; const char* const pwname(void) const; const time_t& start(void) const; const char* const rep (void) const; const char* host_char(void ) const; const char* start_char(void) const; } ; # endif /* # if !defined( __IDENTITE_H__ ) */ salome-kernel-6.5.0/src/Utils/Utils_Identity.py000077500000000000000000000055431177004724000215060ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # SALOME Utils : general SALOME's definitions and tools # File : Utils_Identity.py # Author : Estelle Deville, CEA # Module : SALOME # $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_Identity.py,v 1.8.2.4.14.3.12.1 2012-04-12 14:05:32 vsr Exp $ ## @package Utils_Identity # \brief Module to get information about user and version # import sys import os import socket if not sys.platform == "win32": import pwd import time import string def getShortHostName(): """ gives Hostname without domain extension. SALOME naming service needs short Hostnames (without domain extension). HOSTNAME is not allways defined in environment, socket.gethostname() gives short or complete Hostname, depending on defined aliases. """ return string.split(socket.gethostname(),'.')[0] class Identity: def __init__(self,name): self._name = name self._pid = os.getpid() self._machine = socket.gethostname() self._adip = socket.gethostbyname(self._machine) # IP adress if sys.platform == "win32": self._uid = os.getpid() self._pwname = os.environ["USERNAME"] else: self._uid = os.getuid() list = pwd.getpwuid(self._uid) self._pwname = list[0] # user name self._tc_start = time.time() self._cstart = time.ctime(self._tc_start) self._cdir = os.getcwd() def getapplipath(): """ Gives short application path (the complete path is $HOME/$APPLI) """ return os.environ.get("APPLI",".salome_"+versnb) try: file = open(os.path.join(os.environ["KERNEL_ROOT_DIR"],"bin","salome","VERSION"), "r") s = file.readline() versnb = string.strip(string.split(s, ":")[1]) dirname=".salome_"+versnb except: versnb = "" dirname=".salome" def version(): """ Gives salome version number """ return versnb salome-kernel-6.5.0/src/Utils/Utils_Mutex.cxx000077500000000000000000000046711177004724000211720ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File: Utils_Mutex.cxx // Author: Sergey ANIKIN // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_Mutex.cxx,v 1.5.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // #include "Utils_Mutex.hxx" Utils_Mutex::Utils_Mutex() : myCount( 0 ) { pthread_mutex_init( &myMutex, 0 ); pthread_mutex_init( &myHelperMutex, 0 ); } Utils_Mutex::~Utils_Mutex() { pthread_mutex_destroy( &myHelperMutex ); pthread_mutex_destroy( &myMutex ); } void Utils_Mutex::lock() { pthread_mutex_lock( &myHelperMutex ); #ifndef WIN32 if ( myCount > 0 && myThread == pthread_self() ) { #else if ( myCount > 0 && myThread.p == pthread_self().p ) { #endif myCount++; } else { pthread_mutex_unlock( &myHelperMutex ); pthread_mutex_lock( &myMutex ); pthread_mutex_lock( &myHelperMutex ); myCount = 1; myThread = pthread_self(); } pthread_mutex_unlock( &myHelperMutex ); } void Utils_Mutex::unlock() { pthread_mutex_lock( &myHelperMutex ); #ifndef WIN32 if ( myThread == pthread_self() ) { #else if ( myThread.p == pthread_self().p ) { #endif if ( myCount && (--myCount) < 1 ) { myCount = 0; pthread_mutex_unlock( &myMutex ); } } pthread_mutex_unlock( &myHelperMutex ); } Utils_Locker::Utils_Locker( Utils_Mutex* mutex ) : myMutex( mutex ) { if ( myMutex ) myMutex->lock(); } Utils_Locker::~Utils_Locker() { if ( myMutex ) myMutex->unlock(); } salome-kernel-6.5.0/src/Utils/Utils_Mutex.hxx000077500000000000000000000033211177004724000211660ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File: Utils_Mutex.hxx // Author: Sergey ANIKIN // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_Mutex.hxx,v 1.5.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // #ifndef Utils_Mutex_HeaderFile #define Utils_Mutex_HeaderFile #include "SALOME_Utils.hxx" #include class UTILS_EXPORT Utils_Mutex { public: Utils_Mutex(); ~Utils_Mutex(); void lock(); void unlock(); private: pthread_mutex_t myMutex; pthread_mutex_t myHelperMutex; pthread_t myThread; int myCount; }; class UTILS_EXPORT Utils_Locker { public: Utils_Locker( Utils_Mutex* ); virtual ~Utils_Locker(); private: Utils_Mutex* myMutex; }; #endif salome-kernel-6.5.0/src/Utils/Utils_ORB_INIT.cxx000077500000000000000000000045701177004724000213330ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_ORB_INIT.cxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_ORB_INIT.cxx,v 1.9.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # include "Utils_ORB_INIT.hxx" # include "utilities.h" # include "SALOMEconfig.h" ORB_INIT::ORB_INIT( void ): _orb( CORBA::ORB::_nil() ) { } ORB_INIT::~ORB_INIT() { if ( ! CORBA::is_nil( _orb ) ) { MESSAGE("WARNING: orb destroy is no more called at exit. Use explicit call."); //std::cerr << "appel _orb->destroy()" << std::endl; /* try { _orb->destroy() ; } catch(...) { MESSAGE("Caught CORBA::Exception."); } */ //std::cerr << "retour _orb->destroy()" << std::endl; } } CORBA::ORB_var &ORB_INIT::operator() ( int argc , char **argv ) throw( CommException ) { try { if ( CORBA::is_nil( _orb ) ) { try { #if OMNIORB_VERSION >= 4 _orb = CORBA::ORB_init( argc, argv, "omniORB4" ) ; #else _orb = CORBA::ORB_init( argc, argv, "omniORB3" ) ; #endif } catch( const CORBA::Exception & ) { throw CommException( "Unable to create an ORB connexion" ) ; } } return _orb ; } catch ( CommException& e) {throw e;} catch (...) { throw CommException( "ORB_INIT::operator() : Unknown exception was caught" ) ;} } salome-kernel-6.5.0/src/Utils/Utils_ORB_INIT.hxx000077500000000000000000000040061177004724000213320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_ORB_INIT.hxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_ORB_INIT.hxx,v 1.7.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # if ! defined( __ORB_INIT_HXX__ ) # define __ORB_INIT_HXX__ #include #include "SALOME_Utils.hxx" #include "omniORB4/CORBA.h" #include "Utils_CommException.hxx" #ifdef WNT #pragma warning(disable:4251) // Warning DLL Interface ... #pragma warning(disable:4290) // Warning Exception ... #endif /*! * Ce composant prend en charge la connexion et la deconnexion a l'orb * Il est souhaitable de l'utiliser dans un SINGLETON. */ class UTILS_EXPORT ORB_INIT { private : CORBA::ORB_var _orb ; public : ORB_INIT( void ); virtual ~ORB_INIT(); CORBA::ORB_var & operator() ( int argc , char **argv ) throw( CommException ) ; inline CORBA::ORB_var &orb( void ); } ; inline CORBA::ORB_var &ORB_INIT::orb( void ) { return _orb ; } # endif salome-kernel-6.5.0/src/Utils/Utils_SALOME_Exception.cxx000077500000000000000000000064721177004724000230670ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_SALOME_Exception.cxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_SALOME_Exception.cxx,v 1.10.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // #include #include "Utils_SALOME_Exception.hxx" #include "utilities.h" #ifndef WIN32 extern "C" { #endif #include #include #include #ifndef WIN32 } #endif const char* duplicate( const char *const str ) ; SALOME_Exception::SALOME_Exception( void ): exception() , _text(0) { MESSAGE( "You must use the standard builder: SALOME_Exception::SALOME_Exception( const char *text )" ) ; INTERRUPTION(1) ; } const char *makeText( const char *text, const char *fileName, const unsigned int lineNumber ) { char *newText = 0 ; ASSERT(text) ; const size_t l1 = 1+strlen(text) ; ASSERT(l1>1) ; const char* prefix = "Salome Exception" ; const size_t l0 = 2+strlen(prefix) ; if ( fileName ) { const size_t l2 = 4+strlen(fileName) ; ASSERT(l2>4) ; ASSERT(lineNumber>=1) ; const size_t l3 = 4+int(log10(float(lineNumber))) ; newText = new char [ 1+l0+l1+l2+l3 ] ; sprintf( newText , "%s in %s [%u] : %s" , prefix, fileName, lineNumber, text ) ; } else { newText = new char [ 1+l0+l1 ] ; sprintf( newText , "%s : %s" , prefix, text ) ; } ASSERT(newText) ; return newText ; } SALOME_Exception::SALOME_Exception( const char *text, const char *fileName, const unsigned int lineNumber ) : exception(), _text( makeText( text , fileName , lineNumber ) ) { } SALOME_Exception::~SALOME_Exception() throw () { if ( _text ) { delete [] ((char*)_text); char** pRef = (char**)&_text; *pRef = 0; } ASSERT(_text==NULL) ; } SALOME_Exception::SALOME_Exception( const SALOME_Exception &ex ): _text(duplicate(ex._text)) { ; } std::ostream & operator<<( std::ostream &os , const SALOME_Exception &ex ) { os << ex._text ; return os ; } const char* SALOME_Exception::what( void ) const throw () { return _text ; } salome-kernel-6.5.0/src/Utils/Utils_SALOME_Exception.hxx000077500000000000000000000055101177004724000230640ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_SALOME_Exception.hxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_SALOME_Exception.hxx,v 1.10.2.4.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // #if !defined( __Utils_SALOME_Exception_hxx__ ) #define __Utils_SALOME_Exception_hxx__ //#include "SALOME_Utils.hxx" # include # include #ifdef LOCALIZED #undef LOCALIZED #endif #if defined(_DEBUG_) || defined(_DEBUG) # define LOCALIZED(message) #message , __FILE__ , __LINE__ #else # define LOCALIZED(message) #message #endif //swig tool on Linux doesn't pass defines from header SALOME_Utils.hxx //therefore (temporary solution) defines are placed below #ifdef WIN32 # if defined UTILS_EXPORTS || defined OpUtil_EXPORTS # define UTILS_EXPORT __declspec( dllexport ) # else # define UTILS_EXPORT __declspec( dllimport ) # undef LOCALIZED # define LOCALIZED(message) #message # endif #else # define UTILS_EXPORT #endif class SALOME_Exception; UTILS_EXPORT std::ostream& operator<<( std::ostream&, const SALOME_Exception& ); UTILS_EXPORT const char *makeText( const char *text, const char *fileName, const unsigned int lineNumber ); class UTILS_EXPORT SALOME_Exception : public std::exception { private : SALOME_Exception( void ); protected : const char* _text ; // non constant pointer but read only char variable public : SALOME_Exception( const char *text, const char *fileName=0, const unsigned int lineNumber=0 ); SALOME_Exception( const SALOME_Exception &ex ); virtual ~SALOME_Exception() throw (); UTILS_EXPORT friend std::ostream & operator<<( std::ostream &os , const SALOME_Exception &ex ); virtual const char *what( void ) const throw () ; } ; #endif /* #if !defined( __Utils_SALOME_Exception_hxx__ ) */ salome-kernel-6.5.0/src/Utils/Utils_SINGLETON.hxx000077500000000000000000000133061177004724000214320ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_SINGLETON.hxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/Utils_SINGLETON.hxx,v 1.9.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // # if !defined( __SINGLETON__H__ ) # define __SINGLETON__H__ #include "SALOME_Utils.hxx" # include "Utils_DESTRUCTEUR_GENERIQUE.hxx" # include /*!\class SINGLETON_ * * Definition * * A singleton is a data which is created and deleted only once in the application. * The C++ compiler allow the user to create static data before the first executable statement. * They are deleted after the last statement.statement. * * The SINGLETON_ template class deals with dynamic singleton. It is useful for functor objects. * For example, an object which, when created, connects the application to a system and * disconnects the application at deletion. * * * Usage * * To create a single instance a POINT_ object : * * # include "Utils_SINGLETON.hxx" * ... * ptrPoint = SINGLETON_::Instance() ; * * * Design description * * -# the user creates an object of class TYPE By using a class method : SINGLETON_::Instance() which * returns a pointer to the single object ; * -# this class method uses the default constructor to create an object ; * -# at the same time, this class method reate a destructor object which is added to the generic list * of destructors objects to be executed at the end of the application (atexit) ; * -# at the end of the application process all the deletions are performed by the Nettoyage() C function * which execute the destructions objects then deletes the destructions objects themselves ; * -# the Nettoyage() C function is recorded using atexit() C function through the creation of a static * single object ATEXIT_(). */ template class SINGLETON_ { public : static TYPE *Instance( void ); //!< Singleton dynamic creation using the default builder static bool IsAlreadyExisting( void ); //!< returns True if the singleton is already existing static int Destruction( void ); //!< destroys the Singleton before the end of the application process private : TYPE _Instance ; static SINGLETON_ *PtrSingleton ; SINGLETON_( void ); ~SINGLETON_(); } ; /* class SINGLETON_ */ template SINGLETON_ *SINGLETON_::PtrSingleton=NULL ; /*! * The class method Instance : * -# creates an object of class TYPE ; * -# creates a destruction object DESTRUCTEUR_DE_ which is appended to the list of destruction objects to be * executed ; * -# returns a pointer to the created object. * * Note that the two created objects are deleted at the end of the process in the function Nettoyage(). */ template TYPE *SINGLETON_::Instance( void ) { if ( ! PtrSingleton ) { //MESSAGE("SINGLETON_::Instance( void )") ; PtrSingleton = new SINGLETON_ ; new DESTRUCTEUR_DE_( PtrSingleton->_Instance ) ; } return &PtrSingleton->_Instance ; } template bool SINGLETON_::IsAlreadyExisting( void ) { return PtrSingleton ? true : false ; } template SINGLETON_::SINGLETON_( void ) { //MESSAGE("CREATION d'un SINGLETON_") ; } /*! The method SINGLETON_::Destruction can be called by the user. If it is not the function nettoyage() calls it atexit. N.B. : the singleton objects are destroyed in the reverse order of there creation. */ template int SINGLETON_::Destruction( void ) { int k = - 1 ; //BEGIN_OF("SINGLETON_::Destruction( void )") ; if ( PtrSingleton ) { //MESSAGE("Destruction du SINGLETON_") ; std::list::iterator k ; for( k=DESTRUCTEUR_GENERIQUE_::Destructeurs->begin() ; k!=DESTRUCTEUR_GENERIQUE_::Destructeurs->end();k++) { if ( *k == PtrSingleton->_Instance ) { DESTRUCTEUR_GENERIQUE_::Destructeurs->erase( k ) ; break ; } } delete PtrSingleton ; PtrSingleton = NULL ; } //END_OF("SINGLETON_::Destruction( void )") ; return k ; } template SINGLETON_::~SINGLETON_() { //MESSAGE("passage dans SINGLETON_::~SINGLETON_( void )") ; } # endif /* # if !defined( __SINGLETON__H__ ) */ salome-kernel-6.5.0/src/Utils/Utils_Timer.cxx000077500000000000000000000067171177004724000211530ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_Timer.cxx // Module : SALOME // # include "Utils_Timer.hxx" # include #include "utilities.h" #ifndef WIN32 static struct timezone *tz=(struct timezone*) malloc(sizeof(struct timezone)); #else //timezone *tz=_timezone; #endif #ifndef CLK_TCK # define CLK_TCK CLOCKS_PER_SEC #endif Utils_Timer::Utils_Timer() { #ifndef WIN32 RefToInitialTMS = new tms; RefToCurrentTMS = new tms; RefToInitialTimeB = new timeval; RefToCurrentTimeB = new timeval; #else RefToInitialTMS = new FILETIME; RefToCurrentTMS = new FILETIME; RefToInitialTimeB = new time_t; RefToCurrentTimeB = new time_t; #endif Cumul_user = Cumul_sys = 0.; Stopped = 1; } Utils_Timer::~Utils_Timer() { delete RefToInitialTMS ; delete RefToCurrentTMS ; delete RefToInitialTimeB ; delete RefToCurrentTimeB ; } void Utils_Timer::Start() { if (Stopped) { Stopped = 0; #ifndef WIN32 times(RefToInitialTMS); gettimeofday(RefToInitialTimeB,tz); #else SYSTEMTIME st; GetSystemTime(&st); SystemTimeToFileTime(&st, RefToInitialTMS); time(RefToCurrentTimeB); #endif } } void Utils_Timer::Stop() { if (!Stopped) { #ifndef WIN32 times(RefToCurrentTMS); int diffr_user = RefToCurrentTMS->tms_utime - RefToInitialTMS->tms_utime; int diffr_sys = RefToCurrentTMS->tms_stime - RefToInitialTMS->tms_stime; gettimeofday(RefToCurrentTimeB,tz); Cumul_user += (double) diffr_user / CLK_TCK ; Cumul_sys += (double) diffr_sys / CLK_TCK ; #else SYSTEMTIME st; GetSystemTime(&st); SystemTimeToFileTime(&st, RefToCurrentTMS); Cumul_user += (int)(((ULARGE_INTEGER*)(RefToCurrentTMS))->QuadPart - ((ULARGE_INTEGER*)(RefToInitialTMS))->QuadPart) / 10000000; Cumul_sys = Cumul_user; time(RefToCurrentTimeB); #endif Stopped = 1; } } void Utils_Timer::Show() { bool StopSav = Stopped; if (!StopSav) Stop(); MESSAGE("CPU user time: " << Cumul_user << " seconds "); MESSAGE("CPU system time: " << Cumul_sys << " seconds "); if (!StopSav) Start(); } void Utils_Timer::Reset() { Stopped = 1; Cumul_user = Cumul_sys = 0. ; } void Utils_Timer::ShowAbsolute(){ #if defined(_DEBUG_) || defined(_DEBUG) #ifndef WIN32 unsigned long Absolute_user = (unsigned long) ((timeval*)RefToCurrentTimeB)->tv_sec ; #else unsigned long Absolute_user = (unsigned long) *RefToCurrentTimeB; #endif MESSAGE("Absolute time: " << Absolute_user << " seconds "); #endif } salome-kernel-6.5.0/src/Utils/Utils_Timer.hxx000077500000000000000000000033711177004724000211510ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : Utils_Timer.hxx // Module : SALOME // #include "SALOME_Utils.hxx" #include #include #ifndef WIN32 # include # include # include #else # include # include # include #define _POSIX_ #endif class UTILS_EXPORT Utils_Timer { public: Utils_Timer(); virtual ~Utils_Timer(); void Start(); void Stop(); void Reset(); void Show(); void ShowAbsolute(); protected: double Cumul_user; double Cumul_sys; bool Stopped; #ifndef WIN32 tms *RefToCurrentTMS, *RefToInitialTMS; timeval *RefToCurrentTimeB, *RefToInitialTimeB; #else FILETIME *RefToCurrentTMS, *RefToInitialTMS; time_t *RefToCurrentTimeB, *RefToInitialTimeB; #endif }; salome-kernel-6.5.0/src/Utils/duplicate.cxx000077500000000000000000000034451177004724000206600ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SALOME Utils : general SALOME's definitions and tools // File : duplicate.cxx // Author : Antoine YESSAYAN, EDF // Module : SALOME // $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/Utils/duplicate.cxx,v 1.9.2.1.10.2.12.1 2012-04-12 14:05:32 vsr Exp $ // /*! * This function can be changed by strdup() if strdup() is ANSI. * It is strongly (and only) used in the Registry environment * (RegistryService, RegistryConnexion, Identity, ...) */ extern "C" { #include #include } #include "utilities.h" #include "OpUtil.hxx" const char* duplicate( const char *const str ) { ASSERT(str!=NULL) ; const size_t length = strlen( str ) ; ASSERT(length>0) ; char *new_str = new char[ 1+length ] ; ASSERT(new_str) ; strcpy( new_str , str ) ; return new_str ; } salome-kernel-6.5.0/src/win32pm/000077500000000000000000000000001177004724000163505ustar00rootroot00000000000000salome-kernel-6.5.0/src/win32pm/setup.py000077500000000000000000000022151177004724000200650ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # from distutils.core import setup, Extension module1 = Extension('win32pm', libraries = ['kernel32'], sources = ['win32pm.c']) setup (name = 'win32pm', version = '1.0', description = 'Win32 process managment package', ext_modules = [module1]) salome-kernel-6.5.0/src/win32pm/win32pm.c000077500000000000000000000125001177004724000200140ustar00rootroot00000000000000// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License. // // 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include #include static PyObject * win32pm_spawnhandle( PyObject *self, PyObject *args ) { char *argv; char *flags; STARTUPINFO si; PROCESS_INFORMATION pi; DWORD dwProcessFlags = CREATE_NEW_CONSOLE; /* Default value as in Python sources: CREATE_NEW_CONSOLE has been known to cause random failures on win9x. Specifically a dialog: "Your program accessed mem currently in use at xxx" and a hopeful warning about the stability of your system. Cost is Ctrl+C wont kill children, but anyone who cares can have a go! */ if (!PyArg_ParseTuple(args, "s|s", &argv, &flags)) return NULL; if ( flags && !strcmp( flags, "-nc" ) ) // no console dwProcessFlags = 0; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); if ( !CreateProcess( NULL, argv, NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. TRUE, dwProcessFlags, // Creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) ) // Pointer to PROCESS_INFORMATION structure. return NULL; return Py_BuildValue("i", pi.hProcess); } static PyObject * win32pm_spawnpid( PyObject *self, PyObject *args ) { char* argv; char *flags; STARTUPINFO si; PROCESS_INFORMATION pi; DWORD dwProcessFlags = CREATE_NEW_CONSOLE; /* Default value as in Python sources: CREATE_NEW_CONSOLE has been known to cause random failures on win9x. Specifically a dialog: "Your program accessed mem currently in use at xxx" and a hopeful warning about the stability of your system. Cost is Ctrl+C wont kill children, but anyone who cares can have a go! */ if (!PyArg_ParseTuple(args, "s|s", &argv, &flags)) return NULL; if ( flags && !strcmp( flags, "-nc" ) ) // no console dwProcessFlags = 0; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); if ( !CreateProcess( NULL, argv, NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. TRUE, dwProcessFlags, // Creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) ) // Pointer to PROCESS_INFORMATION structure. return NULL; return Py_BuildValue("i", pi.dwProcessId); } static PyObject * win32pm_handle( PyObject *self, PyObject *args ) { int argv1 = 0; int argv2 = 0; HANDLE ph = 0; int pid = 0; if (!PyArg_ParseTuple(args, "i|i", &argv1, &argv2)) return NULL; ph = OpenProcess( 1, (BOOL)argv2, argv1 ); return Py_BuildValue("i", (int)ph ); } static PyObject * win32pm_killpid( PyObject *self, PyObject *args ) { int pid = 0; int exitCode = 0; HANDLE ph = 0; BOOL stat = 0; if (!PyArg_ParseTuple(args, "i|i", &pid, &exitCode)) return NULL; ph = OpenProcess( 1, 0, pid ); stat = TerminateProcess( ph, exitCode ); return Py_BuildValue("i", (int)stat ); } static PyObject * win32pm_killhandle( PyObject *self, PyObject *args ) { int phId = 0; int exitCode = 0; BOOL stat = 0; if (!PyArg_ParseTuple(args, "i|i", &phId, &exitCode)) return NULL; stat = TerminateProcess( (void*)phId, exitCode ); return Py_BuildValue("i", (int)stat ); } static PyMethodDef win32pmMethods[] = { {"spawnhandle", win32pm_spawnhandle, METH_VARARGS, "Creates new process. Returns windows handle of new process."}, {"spawnpid", win32pm_spawnpid, METH_VARARGS, "Creates new process. Returns PID of new process."}, {"handle", win32pm_handle, METH_VARARGS, "Returns windows handle of indicated process PID."}, {"killpid", win32pm_killpid, METH_VARARGS, "Terminate process by PID."}, {"killhandle", win32pm_killhandle, METH_VARARGS, "Terminate process by windows process handle."}, {NULL, NULL, 0, NULL} /* Sentinel */ }; PyMODINIT_FUNC initwin32pm(void) { Py_InitModule("win32pm", win32pmMethods); }